ESME_RINVTLVSTREAM dans SMPP
Qu'est-ce que ESME_RINVTLVSTREAM ?
ESME_RINVTLVSTREAM (Code d'erreur : 0x00000069) est une erreur SMPP indiquant que les champs Tag-Length-Value (TLV) dans la requête sont mal formatés, corrompus ou ne respectent pas la structure attendue.
Causes possibles
- Les paramètres TLV ne sont pas correctement formatés (par exemple, des valeurs de longueur incorrectes).
- Plusieurs champs TLV se chevauchent ou sont mal alignés.
- La requête contient une structure TLV inattendue.
- Données invalides ou corrompues dans la section TLV du PDU.
Quand cela se produit-il ?
Cette erreur se produit lorsqu'un ESME envoie une requête SMPP avec des paramètres TLV mal structurés, ce qui amène le SMSC à rejeter la requête.
Exemple de transaction PDU SMPP
Requête PDU (submit_sm
) envoyée par l'ESME avec un flux 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 0003 0102 (TLV invalide : Longueur incorrecte)
Réponse PDU (submit_sm_resp
) avec ESME_RINVTLVSTREAM
00000010 (Longueur) 80000004 (ID de commande pour submit_sm_resp) 00000069 (Statut de commande - ESME_RINVTLVSTREAM) 00000001 (Numéro de séquence)
Problème : Le TLV (Tag 0x0421) a une longueur incorrecte (3 octets au lieu de 1 ou 2 attendus).
Comment le résoudre ?
- Validez la structure TLV par rapport à la spécification SMPP.
- Assurez-vous que les champs de longueur TLV représentent avec précision la longueur réelle des données.
- Vérifiez les chevauchements de TLV ou les données mal alignées.
- Utilisez un analyseur de paquets ou un simulateur SMPP pour déboguer et inspecter la requête.
- Supprimez les TLV suspects et testez sans eux pour confirmer la cause racine.
Corriger le formatage des TLV et s'assurer d'un encodage correct de la longueur résoudra ce problème.