# SMPP-PDU-Decoder.

- Kanonische URL: https://www.broadnet.me/de/tools/smpp-pdu-decoder
- Sprache: de
- Zuletzt aktualisiert: 2026-10-21
- Herausgeber: BroadNet (https://www.broadnet.me)
- Markdown-Fassung der Seite, aus der ausgelieferten Seite erzeugt.

SMPP v3.4 · läuft in Ihrem Browser

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

16 0x00000010

command_id

enquire_link 0x00000015

command_status

0x00000000

ESME_ROK — No error

sequence_number

1 0x00000001

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

| Bytes | Feld | Bedeutung |
|---|---|---|
| 0–3 | command_length | Gesamtlänge des PDU in Oktetten, Header eingeschlossen. |
| 4–7 | command_id | Identifiziert die Operation (z. B. 0x00000004 = submit_sm). |
| 8–11 | command_status | Ergebniscode; 0 = ESME_ROK. Nur bei Antworten bedeutsam. |
| 12–15 | sequence_number | Verknü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.

| Feld | Typ | Bedeutung |
|---|---|---|
| service_type | C-Octet String | Gibt den SMS-Anwendungsdienst an (null = Standard). |
| source_addr_ton | Integer (1) | Nummerntyp des Absenders. |
| source_addr_npi | Integer (1) | Nummerierungsplan-Indikator des Absenders. |
| source_addr | C-Octet String | Adresse des Nachrichtenurhebers. |
| dest_addr_ton | Integer (1) | Nummerntyp des Empfängers. |
| dest_addr_npi | Integer (1) | Nummerierungsplan-Indikator des Empfängers. |
| destination_addr | C-Octet String | Ziel-MSISDN / Kurzwahl. |
| esm_class | Integer (1) | Nachrichtenmodus & -typ (z. B. 0x04 = Zustellbericht). |
| protocol_id | Integer (1) | Protokollkennung (netzwerkspezifisch). |
| priority_flag | Integer (1) | Prioritätsstufe der Nachricht. |
| schedule_delivery_time | C-Octet String | Geplante Zustellzeit (null = sofort). |
| validity_period | C-Octet String | Gültigkeitsdauer der Nachricht (null = Standard). |
| registered_delivery | Integer (1) | Ob ein Zustellbericht (DLR) angefordert wird. |
| replace_if_present_flag | Integer (1) | Eine vorhandene Nachricht ersetzen, falls vorhanden. |
| data_coding | Integer (1) | Kodierungsschema (0 = GSM-7, 8 = UCS-2). |
| sm_default_msg_id | Integer (1) | Vordefinierte Nachrichtenkennung. |
| sm_length | Integer (1) | Länge des short_message-Felds in Oktetten. |
| short_message | Octet String | Die 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.

[SMPP-Fehlercodes Durchsuchen Sie jeden command_status-Wert mit Ursache und Behebung.](https://www.broadnet.me/de/tools/smpp-error-codes) [SMPP-DLR-Decoder Dekodieren Sie einen Zustellbericht aus einem deliver_sm-PDU.](https://www.broadnet.me/de/tools/dlr-decoder) [SMPP-Protokoll Wie Binds, Fenster und PDUs zusammenpassen.](https://www.broadnet.me/de/answers/smpp-protocol)

## 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.

[Entwicklerbereich](https://www.broadnet.me/de/developers) [Vertrieb kontaktieren](https://www.broadnet.me/de/contact)
