Das SMPP DCS-Feld (und SMPP-Zeichenkodierung)
Diese Seite bietet Informationen zur Kodierung des SMPP DCS-Felds.
Wie kodiert Ozeki SMS Gateway das SMPP DCS-Feld?
In den meisten Fällen müssen Sie das DCS-Feld von SMPP PDUs nicht manuell konfigurieren. Ozeki SMS Gateway übernimmt dies für Sie. Um zu steuern, wie Ozeki SMS Gateway die Kodierung vornimmt, können Sie das Standardalphabet im SMPP-Client-Konfigurationsformular festlegen (Abbildung 1).
In diesem Formular können Sie den bevorzugten Zeichensatz einstellen oder Ozeki SMS Gateway anweisen, einen festen Wert für den DCS-Parameter in der SMS PDU zu verwenden.
Was ist das SMPP DCS-Feld?
Das Data Coding Scheme (DCS) in SMPP (Short Message Peer-to-Peer Protocol) ist ein 1-Byte-Feld innerhalb von SMPP PDUs (Protocol Data Units). Es definiert, wie die Nachrichtennutzlast kodiert ist, um eine korrekte Interpretation durch den Empfänger zu ermöglichen. Das DCS spezifiziert:
- Zeichenkodierung (z.B. GSM-7, UCS2, 8-Bit-Binärdaten)
- Nachrichtenklasse (z.B. Flash-SMS)
- Komprimierungsflags
DCS-Struktur und Bitmaske
Das DCS ist eine Bitmaske, bei der jede Bitgruppe einen bestimmten Zweck erfüllt:
| Bits | Beschreibung |
|---|---|
| 7-6 | Kodierungsgruppe: Bestimmt den allgemeinen Kodierungstyp. |
| 5-4 | Alphabet: Gibt den Zeichensatz an (wenn Kodierungsgruppe = 00). |
| 3-0 | Nachrichtenklasse/Flags: Gibt den Nachrichtentyp (z.B. Flash) oder Komprimierung an. |
Kodierungsgruppenwerte
| Kodierungsgruppe (Bits 7-6) | Beschreibung |
|---|---|
| 00 | Allgemeine Datenkodierung (Alphabet in Bits 5-4 angegeben) |
| 01 | Reserviert |
| 10 | UCS2-Kodierung (16-Bit) |
| 11 | Datenkodierung/Nachrichtenklasse (z.B. Flash-SMS) |
Beispiel-DCS-Werte
| DCS (Hex) | Beschreibung | Binär |
|---|---|---|
| 0x00 | GSM-7-Standardalphabet | 00000000 |
| 0x04 | 8-Bit-Binärdaten | 00000100 |
| 0x08 | UCS2 (Unicode) | 00001000 |
| 0x10 | Flash-SMS (GSM-7) | 00010000 |
| 0xF0 | Flash-SMS (UCS2) | 11110000 |
Beispiel-SMPP-PDUs mit DCS
Beispiel 1: SubmitSM mit GSM-7-Kodierung (DCS=0x00)
0000001D // Befehlslänge (29 Bytes)
00000004 // Befehls-ID (SubmitSM)
00000001 // Sequenznummer
00 // Quell-TON
00 // Quell-NPI
736F7572636500 // Quelladresse ("source")
00 // Ziel-TON
00 // Ziel-NPI
36353433323100 // Zieladresse ("654321")
00 // ESM-Klasse
00 // Protokoll-ID
00 // Priorität
00 // Zeitplan für Zustellung
00 // Gültigkeitsdauer
00 // Registrierte Zustellung
00 // Ersetzen falls vorhanden
00 // Datenkodierung (DCS=0x00)
00 // Standard-Nachrichten-ID
07 // Nachrichtenlänge (7 Septets)
C8329BFD06DDDF72 // Kurznachricht ("Hello!")
Beispiel 2: SubmitSM mit UCS2-Kodierung (DCS=0x08)
00000024 // Befehlslänge (36 Bytes)
00000004 // Befehls-ID (SubmitSM)
00000002 // Sequenznummer
00 // Quell-TON
00 // Quell-NPI
736F7572636500 // Quelladresse ("source")
00 // Ziel-TON
00 // Ziel-NPI
36353433323100 // Zieladresse ("654321")
00 // ESM-Klasse
00 // Protokoll-ID
00 // Priorität
00 // Zeitplan für Zustellung
00 // Gültigkeitsdauer
00 // Registrierte Zustellung
00 // Ersetzen falls vorhanden
08 // Datenkodierung (DCS=0x08)
00 // Standard-Nachrichten-ID
0C // Nachrichtenlänge (12 Bytes)
00480065006C006C006F0021 // "Hello!" in UCS2
Beispiel 3: Flash-SMS (DCS=0x10)
0000001D // Befehlsänge (29 Bytes)
00000004 // Befehls-ID (SubmitSM)
00000003 // Sequenznummer
00 // Quell-TON
00 // Quell-NPI
736F7572636500 // Quelladresse ("source")
00 // Ziel-TON
00 // Ziel-NPI
36353433323100 // Zieladresse ("654321")
00 // ESM-Klasse
00 // Protokoll-ID
00 // Priorität
00 // Zeitplan für Zustellung
00 // Gültigkeitsdauer
00 // Registrierte Zustellung
00 // Ersetzen falls vorhanden
10 // Datenkodierung (DCS=0x10: Flash-SMS)
00 // Standard-Nachrichten-ID
07 // Nachrichtenlänge (7 Septets)
C8329BFD06DDDF72 // Kurznachricht ("Hello!")
Fazit
Das DCS-Feld ist entscheidend, um sicherzustellen, dass SMS-Nachrichten korrekt kodiert und angezeigt werden. Implementierungen können variieren, daher sollten Sie die SMPP-Spezifikation (v3.4 oder v5.0) für genaue Bitmaskendetails konsultieren. Die korrekte Verwendung von DCS vermeidet Kodierungsfehler und gewährleistet Kompatibilität über SMSCs hinweg.