BroadNet
SMPPFehler

SMPP-command_status-Fehlercodes

Aktualisiert am 2 Min. LesezeitStandardsbasiert
Direkte Antwort

command_status ist das 4-Byte-Header-Feld, das das Ergebnis einer Operation meldet. In einem Request ist es 0 (ESME_ROK); in einer Response trägt es einen ESME_R*-Fehlercode. 0x00000000 ist Erfolg; Werte ungleich null zeigen konkrete Störungen an, etwa ein ungültiges Passwort, Drosselung oder eine volle Nachrichtenwarteschlange.

§01

Wie command_status funktioniert

Jede Response-PDU spiegelt die sequence_number des Requests wider und setzt command_status auf das Ergebnis. ESME_ROK (0) bedeutet Erfolg. Jeder andere Wert ist ein Fehler, dessen Zahlencode auf eine benannte ESME_R*-Konstante in der Spezifikation abbildet. Codes 0x00000100–0x000003FF sind für SMPP-Erweiterungen und 0x00000400–0x000004FF für SMSC-herstellerspezifische Fehler reserviert, behandeln Sie unbekannte Codes daher stets kulant.

§02

Die Codes, die Sie tatsächlich sehen werden

Eine kleine Gruppe von Codes deckt den größten Teil der praktischen Behandlung ab. Gruppieren Sie sie nach Reaktion: erneut versuchen nach Backoff (Drosselung, Warteschlange voll, Systemfehler), Request korrigieren (ungültige Adresse, TON/NPI, data_coding, Nachrichtenlänge) und fatal für die Sitzung (ungültiges Passwort oder System-ID, Bind-Fehler).

Häufig auftretende command_status-Codes
WertNameBedeutungTypische Reaktion
0x00000000ESME_ROKKein FehlerErfolgreich
0x00000001ESME_RINVMSGLENUngültige NachrichtenlängePayload / Segment korrigieren
0x00000005ESME_RALYBNDBind bereits aktivNicht erneut binden; Sitzung wiederverwenden
0x0000000AESME_RINVSRCADRUngültige QuelladresseAbsender / TON / NPI korrigieren
0x0000000BESME_RINVDSTADRUngültige ZieladresseMSISDN des Empfängers korrigieren
0x0000000DESME_RBINDFAILBind fehlgeschlagenBackoff, Zugangsdaten prüfen
0x0000000EESME_RINVPASWDUngültiges PasswortSchwerwiegender Fehler – Zugangsdaten korrigieren
0x0000000FESME_RINVSYSIDUngültige System-IDSchwerwiegender Fehler – Zugangsdaten korrigieren
0x00000014ESME_RMSGQFULNachrichtenwarteschlange vollBackoff und erneut versuchen
0x00000043ESME_RINVESMCLASSUngültiges esm_classesm_class-Bits korrigieren
0x00000058ESME_RTHROTTLEDDrosselung – Rate überschrittenLangsamer senden, Backoff mit Jitter
0x00000062ESME_RINVEXPIRYUngültiges validity_periodGültigkeitsformat korrigieren
0x000000FEESME_RDELIVERYFAILUREZustellungsfehler (data_sm)Gemäß Richtlinie prüfen/wiederholen
0x000000FFESME_RUNKNOWNERRUnbekannter FehlerProtokollieren, alarmieren, vorsichtig erneut versuchen
§03

Reservierte und Hersteller-Bereiche

Nicht jeder Code, den Sie erhalten, steht in der Kernspezifikation. Die Spezifikation reserviert 0x00000100–0x000003FF für künftige SMPP-Nutzung und 0x00000400–0x000004FF für SMSC-spezifische Codes, sodass Ihr Anbieter einen Wert zurückgeben kann, den nur seine Dokumentation erklärt. Bilden Sie anbieterspezifische Codes auf eine normalisierte interne Taxonomie ab (ungültige Nummer, gesperrt, gedrosselt, temporärer Fehler), damit die routenübergreifende Qualität vergleichbar bleibt.

command_status-reservierte Bereiche
BereichReserviert für
0x00000100 – 0x000003FFSMPP-Protokollerweiterungen
0x00000400 – 0x000004FFSMSC-herstellerspezifische Fehler
0x00000500 – 0xFFFFFFFFReserviert
Häufig gestellte Fragen

Häufig gestellte Fragen

Was bedeutet ESME_RTHROTTLED und wie sollte ich damit umgehen?

ESME_RTHROTTLED (0x00000058) bedeutet, dass Sie Ihre zulässige Nachrichtenrate überschritten haben. Erhöhen Sie die Last nicht weiter, pausieren Sie Submits und warten Sie mit Backoff und Jitter, bevor Sie erneut senden. Bei gleicher Rate weiterzumachen riskiert, dass der Anbieter den Bind abbaut.

Ist ESME_RINVPASWD behebbar?

Nein, nicht zur Laufzeit. ESME_RINVPASWD (0x0000000E) weist auf falsche Zugangsdaten hin. Loopen Sie den Bind nicht heiß; korrigieren Sie die system_id/password-Konfiguration und verbinden Sie erneut. Wiederholt fehlgeschlagene Binds können eine IP-Sperre auslösen.

Was ist der Unterschied zwischen ESME_RMSGQFUL und ESME_RTHROTTLED?

ESME_RMSGQFUL (0x00000014) bedeutet, dass die Warteschlange des SMSC vorübergehend voll ist; ESME_RTHROTTLED (0x00000058) bedeutet, dass Sie Ihr Ratenlimit überschritten haben. Beide erfordern Backoff, aber Drosselung betrifft Ihre TPS, während „Warteschlange voll" die Kapazität des SMSC betrifft.

Ich habe einen Fehlercode erhalten, der nicht in der Spezifikation steht — warum?

SMPP reserviert 0x400–0x4FF für SMSC-herstellerspezifische Codes, sodass Ihr Anbieter einen nur von ihm dokumentierten Wert zurückgeben kann. Ziehen Sie die Fehlertabelle des Anbieters heran und bilden Sie ihn auf Ihre interne Taxonomie ab.

Referenzen

Quellenspezifikationen

Diese Seite basiert auf den veröffentlichten Standards. (Wird in einem neuen Tab geöffnet.)

BNWird vom BroadNet -Entwicklungsteam betreut.·Messaging in Carrier-Qualität seit 2003
Hänge es an den Draht

Entwicklung mit echtem SMPP Binding und REST-API.

Fordern Sie Testzugriff mit echten Testschlüsseln an: Senden Sie zunächst an Ihre eigene verifizierte Nummer und gehen Sie dann in über 200 Ländern zum Produktivbetrieb über, sobald Ihre Absenderidentität und die Routen genehmigt wurden.