BroadNet
SMPP-v3.4-Referenz · command_status

SMPP-Fehlercodes.

Jeder command_status in der SMPP-v3.4-Spezifikation definierte Wert — Hex-Code, symbolischer Name, klare Bedeutung sowie wahrscheinliche Ursache und Behebung. Suchen Sie nach Code oder Name, um einen Bind- oder submit_sm-Fehler schnell zu beheben.

48 von 48 Codes
SMPP v3.4 command_status error codes
HexSymbolischer NameBedeutung & wahrscheinliche Ursache/Behebung
0x00000000ESME_ROKKein Fehler. Die PDU wurde akzeptiert. Bei submit_sm bedeutet dies nur, dass das SMSC die Nachricht zur Verarbeitung angenommen hat, nicht dass sie zugestellt wurde — verfolgen Sie die Zustellung über den Zustellbericht (DLR) in deliver_sm.
0x00000001ESME_RINVMSGLENUngültige Nachrichtenlänge. short_message bzw. message_payload ist für die verwendete Kodierung zu lang oder leer. Segmentieren Sie lange Inhalte oder verwenden Sie das TLV message_payload; prüfen Sie, ob data_coding zur Byte-Länge passt.
0x00000002ESME_RINVCMDLENUngültige Kommandolänge. Der command_length im PDU-Header stimmt nicht mit den tatsächlich gesendeten Bytes überein. Fast immer ein Fehler im PDU-Encoder des Clients oder ein Framing-/Puffergrenzenfehler.
0x00000003ESME_RINVCMDIDUngültige Kommando-ID. Die command_id ist unbekannt oder wird vom SMSC nicht unterstützt. Prüfen Sie, ob Sie eine gültige Operation und die richtige SMPP-Version senden.
0x00000004ESME_RINVBNDSTSFalscher BIND-Status für das gegebene Kommando. Operation im aktuellen Bind-Modus nicht erlaubt — z. B. submit_sm bei einem Receiver-Bind oder eine Anfrage vor Abschluss des Binds. Zuerst als Transmitter oder Transceiver binden.
0x00000005ESME_RALYBNDESME ist bereits im gebundenen Zustand. Ein zweiter Bind wurde auf einer bereits gebundenen Sitzung ausgeführt. Nutzen Sie die bestehende Sitzung weiter oder führen Sie vor dem erneuten Bind ein Unbind durch.
0x00000006ESME_RINVPRTFLGUngültiges Prioritäts-Flag. priority_flag liegt außerhalb des vom SMSC akzeptierten Bereichs 0–3. Verwenden Sie einen unterstützten Wert (üblicherweise 0).
0x00000007ESME_RINVREGDLVFLGUngültiges Flag für registrierte Zustellung. registered_delivery enthält einen nicht unterstützten Wert. Verwenden Sie eine vom SMSC unterstützte Bitmaske (z. B. 0x01 für einen finalen DLR).
0x00000008ESME_RSYSERRSystemfehler. Allgemeiner Fehler auf SMSC-Seite, der die Verarbeitung verhindert. Vorübergehend — mit Backoff erneut versuchen; bei anhaltendem Fehler den Anbieter kontaktieren.
0x0000000AESME_RINVSRCADRUngültige Quelladresse. source_addr (die Absender-ID) ist fehlerhaft oder nicht zulässig — falsche Länge, unzulässige Zeichen oder eine nicht registrierte alphanumerische Absender-ID. Absender registrieren bzw. freigeben.
0x0000000BESME_RINVDSTADRUngültige Zieladresse. destination_addr ist fehlerhaft oder nicht routbar — falsches MSISDN-Format, fehlende Landesvorwahl oder gesperrter Bereich. Auf E.164 normalisieren.
0x0000000CESME_RINVMSGIDUngültige Nachrichten-ID. Die message_id in einem query_sm, cancel_sm oder replace_sm passt zu keiner bekannten Nachricht. Verwenden Sie die exakte, in submit_sm_resp zurückgegebene ID.
0x0000000DESME_RBINDFAILBind fehlgeschlagen. Die Bind-Anfrage wurde aus einem anderen Grund als den Zugangsdaten abgelehnt — z. B. IP nicht freigegeben, TLS erforderlich oder Bind-Typ für das Konto nicht zulässig.
0x0000000EESME_RINVPASWDUngültiges Passwort. Das Passwort in der Bind-PDU ist falsch oder abgelaufen. Zugangsdaten prüfen; das Feld ist in SMPP 3.4 auf 8 Oktette begrenzt.
0x0000000FESME_RINVSYSIDUngültige System-ID. Die system_id (Benutzername) ist dem SMSC unbekannt. Kontokennung und deren Aktivierung prüfen.
0x00000011ESME_RCANCELFAILCancel SM fehlgeschlagen. cancel_sm konnte die Nachricht nicht entfernen — sie wurde möglicherweise bereits zugestellt oder ist abgelaufen. Kein erneuter Versuch nötig.
0x00000013ESME_RREPLACEFAILReplace SM fehlgeschlagen. replace_sm konnte die Nachricht nicht aktualisieren, meist weil sie die Warteschlange bereits verlassen hat. Stattdessen eine neue Nachricht senden.
0x00000014ESME_RMSGQFULNachrichtenwarteschlange voll. Die Store-and-Forward-Warteschlange des SMSC ist ausgelastet. Sendetempo drosseln und mit Backoff erneut versuchen.
0x00000015ESME_RINVSERTYPUngültiger Diensttyp. Der Wert von service_type wird nicht erkannt oder ist nicht zulässig. Leer lassen oder einen mit dem Anbieter vereinbarten Wert verwenden.
0x00000033ESME_RINVNUMDESTSUngültige Anzahl von Zielen. number_of_dests in einer submit_multi-PDU liegt außerhalb des zulässigen Bereichs. Innerhalb des vom SMSC festgelegten Ziel-Limits pro PDU bleiben.
0x00000034ESME_RINVDLNAMEUngültiger Verteilerlistenname. Die in submit_multi referenzierte Verteilerliste existiert auf dem SMSC nicht. Liste anlegen oder an explizite Adressen senden.
0x00000040ESME_RINVDESTFLAGZielkennzeichen ungültig. In submit_multi ist das dest_flag eines Eintrags weder eine SME-Adresse (1) noch eine Verteilerliste (2). Kennzeichen je Ziel korrigieren.
0x00000042ESME_RINVSUBREPUngültige 'Submit with Replace'-Anfrage. replace_if_present_flag wurde bei einer Operation gesetzt, die dies nicht unterstützt, oder mit Verteilerlisten kombiniert. Flag entfernen.
0x00000043ESME_RINVESMCLASSUngültige Daten im Feld esm_class. esm_class enthält eine nicht unterstützte Kombination — z. B. ein UDHI- oder Zustellbericht-Bit, das der SMSC ablehnt. Modus-/Typ-Bits der Nachricht erneut prüfen.
0x00000044ESME_RCNTSUBDLSenden an Verteilerliste nicht möglich. Das Konto ist nicht berechtigt, an die angegebene Verteilerliste zu senden. Direkte Adressierung verwenden oder Berechtigung anfordern.
0x00000045ESME_RSUBMITFAILsubmit_sm oder submit_multi fehlgeschlagen. Allgemeiner Sendefehler auf SMSC-Seite. Oft vorübergehend (Routing/Kapazität) — mit Backoff erneut versuchen; TLVs auf einen genaueren Grund prüfen.
0x00000048ESME_RINVSRCTONUngültiger TON der Quelladresse. source_addr_ton passt nicht zum Absenderformat — z. B. wird TON 5 (alphanumerisch) für eine Text-Absender-ID benötigt, es wurde aber ein numerischer TON gesendet.
0x00000049ESME_RINVSRCNPIUngültiger NPI der Quelladresse. source_addr_npi ist ungültig oder inkonsistent mit dem TON. NPI 0 bei alphanumerischen Absendern und NPI 1 (E.164) bei MSISDNs verwenden.
0x00000050ESME_RINVDSTTONUngültiger TON der Zieladresse. dest_addr_ton ist für das Ziel ungültig. TON 1 (international) mit einer MSISDN im E.164-Format verwenden.
0x00000051ESME_RINVDSTNPIUngültiger NPI der Zieladresse. dest_addr_npi ist ungültig oder inkonsistent mit dem TON. NPI 1 (ISDN/E.164) ist der übliche Wert für Mobilfunknummern.
0x00000053ESME_RINVSYSTYPUngültiges Feld system_type. Der system_type in der Bind-PDU wird nicht akzeptiert. Leer lassen oder den vom Anbieter zugewiesenen exakten Wert verwenden.
0x00000054ESME_RINVREPFLAGUngültiges Flag replace_if_present. replace_if_present_flag ist auf einen anderen Wert als 0 oder 1 gesetzt. Ein gültiges boolesches Flag senden.
0x00000055ESME_RINVNUMMSGSUngültige Anzahl von Nachrichten. Das Feld sm_count / Anzahl der Nachrichten liegt außerhalb des Bereichs. Wert in der PDU korrigieren.
0x00000058ESME_RTHROTTLEDDrosselungsfehler — Nachrichtenlimit überschritten. Sie senden schneller als die für das Konto erlaubte Rate (Nachrichten pro Sekunde). Sendeschleife drosseln und mit Backoff erneut versuchen. Vorübergehender, wiederholbarer Zustand.
0x00000061ESME_RINVSCHEDUngültige geplante Zustellzeit. schedule_delivery_time ist fehlerhaft formatiert oder liegt in der Vergangenheit. Das absolute/relative SMPP-Zeitformat (YYMMDDhhmmsstnnp) verwenden oder das Feld leer lassen.
0x00000062ESME_RINVEXPIRYUngültige Gültigkeitsdauer der Nachricht. validity_period ist fehlerhaft formatiert oder liegt außerhalb des zulässigen Fensters. Das SMPP-Zeitformat verwenden oder für den SMSC-Standardwert leer lassen.
0x00000063ESME_RINVDFTMSGIDVordefinierte Nachricht ungültig oder nicht gefunden. sm_default_msg_id verweist auf eine vorgefertigte Nachricht, die der SMSC nicht besitzt. Vollständigen Text oder eine gültige vordefinierte ID senden.
0x00000064ESME_RX_T_APPNTemporärer Anwendungsfehlercode des ESME-Empfängers. Wird von Ihrem ESME (oder einem vorgelagerten System) zurückgegeben, um einen temporären Anwendungsfehler bei der Verarbeitung von deliver_sm/data_sm zu signalisieren. Der SMSC kann die Zustellung später erneut versuchen.
0x00000065ESME_RX_P_APPNPermanenter Anwendungsfehlercode des ESME-Empfängers. Die empfangende Anwendung lehnt die Nachricht dauerhaft ab. Der SMSC wiederholt den Versuch nicht — den nachgelagerten Handler oder den Ablehnungsgrund beheben.
0x00000066ESME_RX_R_APPNFehlercode für Nachrichtenablehnung des ESME-Empfängers. Die empfangende Anwendung bittet den SMSC, die Nachricht abzulehnen. Wird verwendet, um bestimmte eingehende Inhalte abzulehnen.
0x00000067ESME_RQUERYFAILquery_sm-Anfrage fehlgeschlagen. Die Statusabfrage konnte nicht abgeschlossen werden — die message_id ist möglicherweise unbekannt oder im SMSC-Speicher abgelaufen. ID prüfen.
0x000000C0ESME_RINVOPTPARSTREAMFehler im optionalen Teil des PDU-Bodys. Der TLV-Stream (optionaler Parameter) ist fehlerhaft — falsche Länge oder abgeschnitten. TLV-Encoder im Client korrigieren.
0x000000C1ESME_ROPTPARNOTALLWDOptionaler Parameter nicht zulässig. Ein TLV wurde gesendet, das diese Operation oder der SMSC nicht zulässt. Den nicht unterstützten optionalen Parameter entfernen.
0x000000C2ESME_RINVPARLENUngültige Parameterlänge. Die angegebene Länge eines TLV stimmt nicht mit seinem Wert überein. Das Längenfeld des optionalen Parameters korrigieren.
0x000000C3ESME_RMISSINGOPTPARAMErwarteter optionaler Parameter fehlt. Ein für diese Operation erforderliches TLV wurde nicht mitgeliefert (z. B. message_payload, wenn short_message leer ist). Den erforderlichen optionalen Parameter hinzufügen.
0x000000C4ESME_RINVOPTPARAMVALUngültiger Wert des optionalen Parameters. Ein TLV enthält einen Wert außerhalb des zulässigen Bereichs. Die SMPP-Spezifikation zu den zulässigen Werten dieses Parameters prüfen.
0x000000FEESME_RDELIVERYFAILUREZustellfehler (data_sm_resp). Wird mit data_sm verwendet, um anzuzeigen, dass die Nachricht nicht an das Endgerät zugestellt werden konnte. Wie einen fehlgeschlagenen DLR behandeln und Netz/Route prüfen.
0x000000FFESME_RUNKNOWNERRUnbekannter Fehler. Sammelcode, wenn der SMSC keinen spezifischen Code hat. Einmal mit Backoff erneut versuchen; bei anhaltendem Problem beim Anbieter mit einem PDU-Beispiel melden.

Nicht aufgeführte Werte sind reserviert. Gemäß SMPP-v3.4-Spezifikation: 0x00000100–0x000003FF ist für SMPP-Protokollerweiterungen reserviert, 0x00000400–0x000004FF für SMSC-anbieterspezifische Fehler, und 0x00000500–0xFFFFFFFF ist reserviert. Einzelne Lücken unterhalb von 0xFF (z. B. 0x09, 0x10) sind laut Standard reserviert.

Die kurze Antwort

Was ist ein SMPP-Fehlercode?

Ein SMPP-Fehlercode ist der Wert im Feld command_status jeder SMPP-Antwort-PDU. Er teilt dem Client (ESME) mit, ob das SMSC die Operation akzeptiert hat — 0x00000000 (ESME_ROK) bedeutet Erfolg, und jeder von null verschiedene Wert gibt an, warum ein Bind, submit_sm, query_sm oder eine andere Anfrage fehlgeschlagen ist. Die Codes sind in der SMPP-v3.4-Spezifikation definiert und über konforme SMSCs hinweg konsistent.

Ein erfolgreiches submit_sm_resp mit ESME_ROK bestätigt nur, dass das SMSC die Nachricht zur Verarbeitung angenommen hat — die endgültige Zustellung an das Gerät wird separat im Zustellbericht (deliver_sm) gemeldet. Behandeln Sie Sende- und Zustellfehler als zwei unterschiedliche Ebenen.

Häufig gestellte Fragen

Was ist command_status in SMPP?

command_status ist ein 4-Byte-Feld im Header jeder SMPP-Antwort-PDU. In einer Anfrage-PDU ist es auf null gesetzt; in einer Antwort trägt es das Ergebnis — 0x00000000 (ESME_ROK) für Erfolg oder einen von null verschiedenen Fehlercode, der den Fehler angibt. Es ist das primäre Signal, mit dem Ihr Client entscheidet, ob erneut versucht, die PDU korrigiert oder abgebrochen wird.

Was bedeutet ESME_RTHROTTLED (0x00000058)?

Es bedeutet, dass Sie Nachrichten schneller senden, als die für Ihr Konto erlaubte Rate (Nachrichten pro Sekunde) zulässt. Verlangsamen Sie Ihre Sendeschleife, wenden Sie exponentielles Backoff an und bleiben Sie innerhalb des mit Ihrem Anbieter vereinbarten Durchsatzes. Es ist ein vorübergehender, wiederholbarer Zustand.

Was ist der Unterschied zwischen ESME_RINVSRCADR und ESME_RINVDSTADR?

ESME_RINVSRCADR (0x0000000A) bedeutet, dass die Quelladresse — Ihre Absender-ID — fehlerhaft oder nicht zulässig ist, oft ein nicht registrierter alphanumerischer Absender. ESME_RINVDSTADR (0x0000000B) bedeutet, dass die Ziel-MSISDN fehlerhaft oder nicht routbar ist. Normalisieren Sie Adressen auf E.164 und registrieren Sie Absender-IDs, wo erforderlich.

Bedeutet ESME_ROK, dass die Nachricht zugestellt wurde?

Nein. ESME_ROK bei submit_sm_resp bestätigt nur, dass das SMSC die Nachricht zur Verarbeitung angenommen hat. Die endgültige Zustellung an das Gerät wird später im Zustellbericht (deliver_sm) gemeldet, der einen eigenen Status wie DELIVRD, UNDELIV oder EXPIRED trägt. Gleichen Sie die Sendeannahme immer mit dem DLR ab.

Welche SMPP-Fehler können gefahrlos wiederholt werden?

Vorübergehende, systemseitige Codes sind mit Backoff wiederholbar: ESME_RSYSERR (0x08), ESME_RMSGQFUL (0x14), ESME_RTHROTTLED (0x58), ESME_RSUBMITFAIL (0x45) und ESME_RUNKNOWNERR (0xFF). Validierungsfehler wie ungültige Adressen, TON/NPI, Nachrichtenlänge oder falsche Zugangsdaten sind dauerhaft — beheben Sie die Anfrage oder Konfiguration, anstatt es erneut zu versuchen.

Sind diese Codes bei allen SMSCs gleich?

Die Codes 0x00000000–0x000000FF sind in der SMPP-v3.4-Spezifikation definiert und über konforme SMSCs hinweg konsistent. Die Bereiche 0x00000400–0x000004FF sind für anbieterspezifische Fehler reserviert, sodass ein bestimmtes SMSC dort zusätzliche Codes mit eigener Bedeutung zurückgeben kann — prüfen Sie dafür immer die Dokumentation Ihres Anbieters.

Bauen Sie eine SMPP-Session auf?

BroadNet bietet direkte SMPP-3.4-Binds mit vorhersehbarem Durchsatz und klarer command_status-Behandlung. Sprechen Sie mit unserem Team über eine Verbindung.