ESME_RINVTLVLEN dans SMPP

Qu'est-ce que ESME_RINVTLVLEN ?

ESME_RINVTLVLEN (Code d'erreur : 0x000000C2) est une erreur SMPP indiquant qu'un paramètre Tag-Length-Value (TLV) dans la requête a une longueur invalide, ce qui signifie que la longueur spécifiée ne correspond pas à la longueur réelle des données.

Causes possibles

  • Le champ de longueur TLV ne correspond pas à la taille attendue pour le tag TLV donné.
  • La longueur fournie est plus courte ou plus longue que celle requise par la spécification SMPP.
  • La structure TLV est corrompue ou malformée.
  • Erreurs d'encodage dans le champ TLV.

Quand cela se produit-il ?

Cette erreur se produit lorsqu'un ESME envoie une requête SMPP contenant un paramètre TLV où le champ de longueur ne correspond pas correctement à la taille réelle de la valeur.

Exemple de transaction PDU SMPP

PDU de requête (submit_sm) envoyée par l'ESME avec une longueur TLV invalide

00000040 (Longueur)
00000004 (ID de commande pour submit_sm)
00000000 (Statut de commande)
00000001 (Numéro de séquence)
00 (Type de service)
01 (TON de l'adresse source - International)
01 (NPI de l'adresse source - ISDN)
31323334 00 (Adresse source : "1234")
01 (TON de l'adresse de destination - International)
01 (NPI de l'adresse de destination - ISDN)
39383736 00 (Adresse de destination : "9876")
00 (Classe ESM)
00 (ID de protocole)
00 (Drapeau de priorité)
00000000 (Heure de livraison planifiée - Non définie)
00000000 (Période de validité - Non définie)
00 (Drapeau de remplacement si présent)
00 (ID de message par défaut Sm)
0005 (Longueur du message)
48656C6C 6F (Message : "Hello")
0421 0004 01 (TLV invalide : Longueur spécifiée 4, Données réelles 1 octet)

PDU de réponse (submit_sm_resp) avec ESME_RINVTLVLEN

00000010 (Longueur)
80000004 (ID de commande pour submit_sm_resp)
000000C2 (Statut de commande - ESME_RINVTLVLEN)
00000001 (Numéro de séquence)

Problème : Le TLV (Tag 0x0421) spécifie une longueur de 4 octets, mais la valeur réelle fournie n'est que de 1 octet.

Comment le résoudre ?

  • Vérifiez la spécification SMPP pour confirmer les exigences de longueur TLV correctes.
  • Assurez-vous que le champ de longueur reflète avec précision la taille réelle des données.
  • Validez la structure TLV avant d'envoyer la requête.
  • Utilisez un simulateur SMPP ou un analyseur de paquets pour inspecter la structure PDU.
  • Supprimez ou corrigez le TLV problématique et testez à nouveau.

Corriger le champ de longueur TLV pour qu'il corresponde à la taille réelle de la valeur résoudra ce problème.

More information