ESME_RINVEXPIRY en SMPP
¿Qué es ESME_RINVEXPIRY?
ESME_RINVEXPIRY (Código de Error: 0x00000062) es un error de SMPP que indica que el campo validity_period
en una solicitud submit_sm
contiene un formato o valor inválido.
Posibles Causas
- El campo
validity_period
tiene un formato incorrecto. - La fecha y hora proporcionadas están en un formato no soportado.
- El período de validez está en el pasado o excede el límite máximo del SMSC.
- El SMSC no soporta el formato de expiración proporcionado.
¿Cuándo Ocurre?
Este error ocurre cuando un ESME envía un SMS con un campo validity_period
inválido, lo que hace que el SMSC rechace la solicitud.
Ejemplo de Transacción SMPP PDU
PDU submit_sm
Incorrecta (Período de Validez Inválido)
0000003F (Longitud) 00000004 (ID de Comando para submit_sm) 00000000 (Estado del Comando) 00000001 (Número de Secuencia) 00 (Tipo de Servicio) 01 (TON de Dirección de Origen - Internacional) 01 (NPI de Dirección de Origen - ISDN) 31323334 00 (Dirección de Origen: "1234") 01 (TON de Dirección de Destino - Internacional) 01 (NPI de Dirección de Destino - ISDN) 39383736 00 (Dirección de Destino: "9876") 00 (Clase ESM) 00 (ID de Protocolo) 00 (Bandera de Prioridad) 00000000 (Tiempo de Entrega Programado - No Establecido) 31323039 3031303030303030 00 (Período de Validez Inválido) 00 (Bandera Reemplazar Si Presente) 00 (ID de Mensaje Predeterminado) 0005 (Longitud del Mensaje) 48656C6C 6F (Mensaje: "Hello")
PDU de Respuesta (submit_sm_resp
) con ESME_RINVEXPIRY
00000010 (Longitud) 80000004 (ID de Comando para submit_sm_resp) 00000062 (Estado del Comando - ESME_RINVEXPIRY) 00000001 (Número de Secuencia)
Problema: El campo validity_period
tiene un formato incorrecto, lo que hace que el SMSC rechace el mensaje.
¿Cómo Solucionarlo?
- Asegúrate de que el
validity_period
siga el formato de tiempo absoluto o relativo de SMPP: - Formato de Tiempo Absoluto:
YYMMDDhhmmss000R
(ej.,240211153000000R
para 11 de Feb, 2024, 15:30:00 UTC) - Formato de Tiempo Relativo:
000001000000000R
(válido por 1 hora desde ahora) - Asegúrate de que el tiempo de expiración sea en el futuro.
- Consulta con el proveedor del SMSC si hay límites en los períodos de validez.
- Usa caracteres de terminación correctos (ej.,
00
para cadenas terminadas en NULL).
Si el problema persiste, activa el modo de depuración SMPP y verifica el formato del validity_period
en la solicitud.