ESME_RINVTLVLEN en SMPP

¿Qué es ESME_RINVTLVLEN?

ESME_RINVTLVLEN (Código de Error: 0x000000C2) es un error de SMPP que indica que un parámetro Tag-Length-Value (TLV) en la solicitud tiene una longitud inválida, lo que significa que la longitud especificada no coincide con la longitud real de los datos.

Causas Posibles

  • El campo de longitud del TLV no coincide con el tamaño esperado para la etiqueta TLV dada.
  • La longitud proporcionada es más corta o más larga de lo requerido por la especificación SMPP.
  • La estructura del TLV está corrupta o mal formada.
  • Errores de codificación en el campo TLV.

¿Cuándo Ocurre?

Este error ocurre cuando un ESME envía una solicitud SMPP que contiene un parámetro TLV donde el campo de longitud no coincide correctamente con el tamaño real del valor.

Ejemplo de Transacción PDU en SMPP

PDU de Solicitud (submit_sm) Enviada por ESME con una Longitud TLV Inválida

00000040 (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)
00000000 (Período de Validez - No Establecido)
00 (Bandera de Reemplazo Si Presente)
00 (ID de Mensaje Predeterminado Sm)
0005 (Longitud del Mensaje)
48656C6C 6F (Mensaje: "Hello")
0421 0004 01 (TLV Inválido: Longitud Especificada 4, Datos Reales 1 Byte)

PDU de Respuesta (submit_sm_resp) con ESME_RINVTLVLEN

00000010 (Longitud)
80000004 (ID de Comando para submit_sm_resp)
000000C2 (Estado del Comando - ESME_RINVTLVLEN)
00000001 (Número de Secuencia)

Problema: El TLV (Etiqueta 0x0421) especifica una longitud de 4 bytes, pero el valor real proporcionado es de solo 1 byte.

¿Cómo Solucionarlo?

  • Consulta la especificación SMPP para verificar los requisitos de longitud TLV correctos.
  • Asegúrate de que el campo de longitud refleje con precisión el tamaño real de los datos.
  • Valida la estructura del TLV antes de enviar la solicitud.
  • Utiliza un simulador SMPP o un analizador de paquetes para inspeccionar la estructura PDU.
  • Elimina o corrige el TLV problemático y prueba nuevamente.

Corregir el campo de longitud del TLV para que coincida con el tamaño real del valor resolverá este problema.

More information