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.

More information