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

Abbildung 1 - SMPP DCS-Kodierung

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.

More information