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.