ESME_RINVMSGLEN dans SMPP

Qu'est-ce que ESME_RINVMSGLEN ?

ESME_RINVMSGLEN (Code d'erreur : 0x00000004) est une erreur SMPP qui indique une longueur de message invalide dans une requête SMPP.

Causes possibles

  • La longueur du message dépasse la limite autorisée (généralement 254 ou 160 caractères pour certains encodages).
  • La longueur du message est zéro (message vide).
  • Un encodage incorrect entraînant un calcul de longueur inattendu.
  • Une PDU (Unité de Données de Protocole) corrompue ou malformée envoyée.
  • Une concaténation incorrecte de messages longs (problèmes de segmentation).

Quand cela se produit-il ?

Cette erreur se produit lors de l'envoi d'une PDU SMPP (par exemple, submit_sm, data_sm) où le paramètre de longueur du message ne respecte pas les contraintes de longueur attendues par le SMSC.

Exemple de transaction PDU SMPP

Voici un exemple d'une PDU submit_sm incorrecte qui pourrait déclencher l'erreur ESME_RINVMSGLEN :

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

Problème : Le champ de longueur du message est défini à zéro, ce qui entraîne une erreur de longueur de message invalide.

Une autre PDU incorrecte où le message dépasse la longueur autorisée :

00000100 00000004 00000000 00000002 
74657374 000101 35363137 38363530 
30303000 0000 0000 0000 00000000 
00000100 (Trop long)

Comment résoudre ce problème ?

  • Vérifiez que la longueur du message est dans les limites autorisées (vérifiez les restrictions du SMSC).
  • Validez l'encodage (par exemple, les messages UCS2 prennent 2 octets par caractère).
  • Assurez-vous d'une concaténation correcte des messages longs en utilisant sar_msg_ref_num, sar_total_segments, etc.
  • Vérifiez l'absence de messages vides avant l'envoi.
  • Contrôlez le format de la PDU pour vous assurer qu'elle est correctement structurée.

Si le problème persiste, activez le débogage SMPP sur votre client ou passerelle SMS pour inspecter les PDUs brutes transmises.

More information