ESME_RMISSINGTLV in SMPP
Was ist ESME_RMISSINGTLV?
ESME_RMISSINGTLV (Fehlercode: 0x000000C3) ist ein SMPP-Fehler, der anzeigt, dass ein obligatorischer Tag-Length-Value (TLV)-Parameter in der Anfrage fehlt.
Mögliche Ursachen
- Ein erforderlicher TLV-Parameter wurde in der SMPP-PDU weggelassen.
- Die Anfragestruktur entspricht nicht der SMPP-Spezifikation.
- Die Anwendung, die die Anfrage sendet, fügt einen notwendigen TLV nicht ein.
Wann tritt es auf?
Dieser Fehler tritt auf, wenn eine ESME eine SMPP-Anfrage sendet, die einen spezifischen TLV erfordert, aber der TLV nicht in der PDU enthalten ist.
Beispiel einer SMPP-PDU-Transaktion
Anfrage-PDU (submit_sm
) von der ESME ohne einen obligatorischen TLV
0000003C (Länge) 00000004 (Befehls-ID für submit_sm) 00000000 (Befehlsstatus) 00000001 (Sequenznummer) 00 (Service-Typ) 01 (Quelladresse TON - International) 01 (Quelladresse NPI - ISDN) 31323334 00 (Quelladresse: "1234") 01 (Zieladresse TON - International) 01 (Zieladresse NPI - ISDN) 39383736 00 (Zieladresse: "9876") 00 (ESM-Klasse) 00 (Protokoll-ID) 00 (Prioritätsflag) 00000000 (Geplante Lieferzeit - Nicht gesetzt) 00000000 (Gültigkeitsdauer - Nicht gesetzt) 00 (Ersetzen falls vorhanden Flag) 00 (Sm Default Msg ID) 0005 (Nachrichtenlänge) 48656C6C 6F (Nachricht: "Hello")
Antwort-PDU (submit_sm_resp
) mit ESME_RMISSINGTLV
00000010 (Länge) 80000004 (Befehls-ID für submit_sm_resp) 000000C3 (Befehlsstatus - ESME_RMISSINGTLV) 00000001 (Sequenznummer)
Problem: Ein obligatorischer TLV (z.B. message_payload
oder source_subaddress
) ist erforderlich, fehlt aber in der Anfrage.
Wie lässt es sich lösen?
- Überprüfen Sie die SMPP-Spezifikation auf obligatorische TLVs für den Befehl.
- Stellen Sie sicher, dass die Anwendung alle erforderlichen TLV-Parameter enthält.
- Verwenden Sie einen SMPP-Simulator oder Paketanalysator, um die PDU-Struktur zu überprüfen.
- Modifizieren Sie die Anfrage, um den fehlenden TLV einzufügen, und wiederholen Sie den Vorgang.
Das Hinzufügen des erforderlichen TLV-Parameters behebt dieses Problem.