BroadNet
SMPP v3.4 · läuft in Ihrem Browser

SMPP-PDU-Decoder.

Fügen Sie den Hex-Wert eines SMPP-v3.4-PDU ein, um dessen 16-Byte-Header zu dekodieren — command_length, command_id (mit Namen), command_status und sequence_number — und das verpflichtende Body-Feldlayout für submit_sm und deliver_sm zu sehen. Nichts verlässt Ihr Gerät.

16 Bytes
Beispiel ausprobieren
command_length
160x00000010
command_id
enquire_link0x00000015
command_status
0x00000000

ESME_ROK — No error

sequence_number
10x00000001
Body (0 Bytes nach dem 16-Byte-Header)

Nur-Header-PDU — kein Body (typisch für enquire_link, unbind und die meisten _resp-Bestätigungen).

Kurz gesagt

Was ist ein SMPP-PDU?

Ein PDU (Protocol Data Unit) ist eine einzelne SMPP-Nachricht auf der Leitung. Jedes PDU — ein Bind, ein submit_sm, ein Zustellbericht, ein enquire_link — beginnt mit demselben 16-Byte-Header aus vier 32-Bit-Big-Endian-Ganzzahlen: command_length (die Gesamtbytelänge einschließlich Header), command_id (welche Operation es ist), command_status (das Ergebnis, das bei einer erfolgreichen Antwort 0 / ESME_ROK ist) und sequence_number (dient dem Abgleich einer Antwort mit ihrer Anfrage). Etwaige Body-Felder folgen dem Header.

Das 16-Byte-Header-Layout

SMPP v3.4 PDU header fields
BytesFeldBedeutung
0–3command_lengthGesamtlänge des PDU in Oktetten, Header eingeschlossen.
4–7command_idIdentifiziert die Operation (z. B. 0x00000004 = submit_sm).
8–11command_statusErgebniscode; 0 = ESME_ROK. Nur bei Antworten bedeutsam.
12–15sequence_numberVerknüpft eine Anfrage mit ihrer Antwort.

submit_sm-/deliver_sm-Body-Felder

Nach dem Header trägt ein submit_sm oder deliver_sm seine verpflichtenden Felder in fester Reihenfolge, optional gefolgt von TLV-Parametern (optional). Dieses Tool listet die Reihenfolge auf; es parst die variabel langen C-Octet-Strings nicht vollständig, da deren Grenzen von Null-Terminierungen und dem sm_length-Feld abhängen.

submit_sm / deliver_sm mandatory body fields
FeldTypBedeutung
service_typeC-Octet StringGibt den SMS-Anwendungsdienst an (null = Standard).
source_addr_tonInteger (1)Nummerntyp des Absenders.
source_addr_npiInteger (1)Nummerierungsplan-Indikator des Absenders.
source_addrC-Octet StringAdresse des Nachrichtenurhebers.
dest_addr_tonInteger (1)Nummerntyp des Empfängers.
dest_addr_npiInteger (1)Nummerierungsplan-Indikator des Empfängers.
destination_addrC-Octet StringZiel-MSISDN / Kurzwahl.
esm_classInteger (1)Nachrichtenmodus & -typ (z. B. 0x04 = Zustellbericht).
protocol_idInteger (1)Protokollkennung (netzwerkspezifisch).
priority_flagInteger (1)Prioritätsstufe der Nachricht.
schedule_delivery_timeC-Octet StringGeplante Zustellzeit (null = sofort).
validity_periodC-Octet StringGültigkeitsdauer der Nachricht (null = Standard).
registered_deliveryInteger (1)Ob ein Zustellbericht (DLR) angefordert wird.
replace_if_present_flagInteger (1)Eine vorhandene Nachricht ersetzen, falls vorhanden.
data_codingInteger (1)Kodierungsschema (0 = GSM-7, 8 = UCS-2).
sm_default_msg_idInteger (1)Vordefinierte Nachrichtenkennung.
sm_lengthInteger (1)Länge des short_message-Felds in Oktetten.
short_messageOctet StringDie Nachrichten-Payload (bis zu 254 Oktette).

Häufig gestellte Fragen

Welche vier Felder enthält der SMPP-Header?

Jedes SMPP-PDU beginnt mit einem 16-Byte-Header aus vier 32-Bit-Big-Endian-Ganzzahlen: command_length (Gesamt-PDU-Länge in Oktetten einschließlich Header), command_id (die Operation, z. B. 0x00000004 für submit_sm), command_status (der Ergebniscode, 0 = ESME_ROK) und sequence_number (verknüpft eine Antwort mit ihrer ursprünglichen Anfrage).

Warum ist command_status bei meinen Anfragen meist 0?

command_status ist nur bei Antwort- und generic_nack-PDUs bedeutsam. Bei Anfrage-PDUs (submit_sm, bind, enquire_link) ist es reserviert und sollte auf 0 gesetzt werden. Ein Wert ungleich null bei einem _resp weist auf einen Fehler hin — 0x00000058 ist beispielsweise ESME_RTHROTTLED.

Sind SMPP-Ganzzahlen Big-Endian?

Ja. SMPP kodiert mehr-oktettige Ganzzahlen in Netzwerk-Byte-Reihenfolge (Big-Endian, höchstwertiges Byte zuerst). Dieser Decoder liest jedes 4-Byte-Header-Feld als vorzeichenlose 32-Bit-Big-Endian-Ganzzahl.

Dekodiert dieses Tool den Nachrichtentext?

Es dekodiert den festen 16-Byte-Header und listet die Body-Feldreihenfolge für submit_sm und deliver_sm auf, parst aber den variabel langen Body nicht in Einzelwerte. C-Octet-Strings sind null-terminiert, und die short_message-Länge wird in sm_length geführt — eine vollständige Body-Analyse hängt daher von diesen Grenzen ab; dieses Tool beschränkt sich auf das standardbasierte Header-Layout.

Wo kann ich einen unbekannten command_status nachschlagen?

Nutzen Sie die SMPP-Fehlercode-Referenz, die jeden command_status-Wert von SMPP v3.4 nach Hex- und symbolischem Namen mit einer klaren Bedeutung sowie der wahrscheinlichen Ursache und Behebung auflistet.

Benötigen Sie einen echten SMPP-Bind?

BroadNet bietet direkte SMPP-3.4-Binds neben einer REST-API und Zustell-Webhooks in 200+ Ländern. Sprechen Sie mit unserem Team über Durchsatz und Routing.