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.

More information