ESME_RINVMSGLEN en SMPP

¿Qué es ESME_RINVMSGLEN?

ESME_RINVMSGLEN (Código de Error: 0x00000004) es un error de SMPP que indica una longitud de mensaje inválida en una solicitud SMPP.

Causas Posibles

  • La longitud del mensaje excede el límite permitido (normalmente 254 o 160 caracteres para ciertas codificaciones).
  • La longitud del mensaje es cero (mensaje vacío).
  • Codificación incorrecta que causa un cálculo inesperado de la longitud.
  • PDU (Unidad de Datos de Protocolo) corrupta o malformada enviada.
  • Concatenación incorrecta de mensajes largos (problemas de división).

¿Cuándo Ocurre?

Este error ocurre al enviar un PDU de SMPP (ej. submit_sm, data_sm) donde el parámetro de longitud del mensaje no cumple con las restricciones de longitud esperadas por el SMSC.

Ejemplo de Transacción PDU en SMPP

El siguiente es un ejemplo de un PDU submit_sm incorrecto que podría desencadenar el error ESME_RINVMSGLEN:

0000003C 00000004 00000000 00000001 
74657374 000101 35363137 38363530 
30303000 0000 0000 0000 00000000 
00000000 00

Problema: El campo de longitud del mensaje está establecido en cero, lo que resulta en un error de longitud de mensaje inválido.

Otro PDU incorrecto donde el mensaje excede la longitud permitida:

00000100 00000004 00000000 00000002 
74657374 000101 35363137 38363530 
30303000 0000 0000 0000 00000000 
00000100 (Demasiado largo)

¿Cómo Solucionarlo?

  • Asegúrese de que la longitud del mensaje esté dentro de los límites permitidos (verifique las restricciones del SMSC).
  • Valide la codificación (ej. mensajes UCS2 ocupan 2 bytes por carácter).
  • Asegúrese de la concatenación adecuada de mensajes largos usando sar_msg_ref_num, sar_total_segments, etc.
  • Verifique mensajes vacíos antes de enviar.
  • Compruebe el formato del PDU para asegurarse de que esté estructurado correctamente.

Si el problema persiste, active la depuración SMPP en su cliente o puerta de enlace SMS para inspeccionar los PDUs crudos que se están transmitiendo.

More information