ESME_RINVMSGLEN in SMPP

Was ist ESME_RINVMSGLEN?

ESME_RINVMSGLEN (Fehlercode: 0x00000004) ist ein SMPP-Fehler, der eine ungültige Nachrichtenlänge in einer SMPP-Anfrage anzeigt.

Mögliche Ursachen

  • Die Nachrichtenlänge überschreitet das erlaubte Limit (typischerweise 254 oder 160 Zeichen für bestimmte Kodierungen).
  • Die Nachrichtenlänge ist null (leere Nachricht).
  • Falsche Kodierung führt zu einer unerwarteten Längenberechnung.
  • Beschädigte oder fehlerhafte PDU (Protocol Data Unit) wird gesendet.
  • Falsche Verkettung langer Nachrichten (Probleme beim Aufteilen).

Wann tritt es auf?

Dieser Fehler tritt auf, wenn eine SMPP-PDU (z.B. submit_sm, data_sm) übermittelt wird, bei der der Nachrichtenlängenparameter nicht den vom SMSC festgelegten Längenbeschränkungen entspricht.

Beispiel einer SMPP-PDU-Transaktion

Das folgende Beispiel zeigt eine fehlerhafte submit_sm-PDU, die den ESME_RINVMSGLEN-Fehler auslösen könnte:

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

Problem: Das Nachrichtenlängenfeld ist auf null gesetzt, was zu einem Fehler wegen ungültiger Nachrichtenlänge führt.

Eine weitere fehlerhafte PDU, bei der die Nachricht die erlaubte Länge überschreitet:

00000100 00000004 00000000 00000002 
74657374 000101 35363137 38363530 
30303000 0000 0000 0000 00000000 
00000100 (Zu lang)

Wie lässt es sich beheben?

  • Sicherstellen, dass die Nachrichtenlänge innerhalb der erlaubten Grenzen liegt (SMSC-Beschränkungen prüfen).
  • Kodierung validieren (z.B. benötigen UCS2-Nachrichten 2 Bytes pro Zeichen).
  • Richtige Verkettung langer Nachrichten mit sar_msg_ref_num, sar_total_segments usw. sicherstellen.
  • Vor dem Senden auf leere Nachrichten prüfen.
  • Das PDU-Format überprüfen, um sicherzustellen, dass es korrekt strukturiert ist.

Wenn das Problem weiterhin besteht, aktivieren Sie das SMPP-Debugging auf Ihrem Client oder SMS-Gateway, um die rohen PDUs zu untersuchen, die übertragen werden.

More information