Konfiguration des SMPP ESM Class Feldes

Ozeki SMS Gateway ESM Class Einstellungen

Ozeki SMS Gateway ermöglicht die manuelle Konfiguration des ESM Class Feldes (Abbildung 1)

Abbildung 1 - ESM Class Feld Einstellung

Was ist das ESM Class Feld?

Das Extended Service Message (ESM) Class Feld in SMPP ist ein 1-Byte Feld in SMPP PDUs, das erweiterte Nachrichtenverarbeitungsfunktionen steuert. Es wird in submit_sm, deliver_sm und data_sm Operationen verwendet, um folgendes anzugeben:

  • Nachrichtentypen (z.B. SMS, Zustellbestätigung)
  • Verhalten der Zustellbestätigung
  • UDH (User Data Header) Präsenz
  • Nachrichtenpriorität und Routing-Flags

ESM Class Struktur und Bitmask

Die ESM Class ist eine Bitmask, bei der jedes Bit oder Gruppen von Bits spezifische Funktionen aktiviert:

Bits Beschreibung
7 Messaging Mode: 0 = Standard, 1 = Datagram
6 Nachrichtentyp: 0 = Normal, 1 = Zustellbestätigung
5 UDHI Indicator: 1 = UDH im Payload vorhanden
4 Reply Path: 1 = Antwortpfad angefordert
3-2 Nachrichtenpriorität (00 = Normal, 01 = Interaktiv, 10 = Dringend, 11 = Notfall)
1-0 Reserviert

Häufige ESM Class Werte

ESM (Hex) Binär Beschreibung
0x00 00000000 Standard (keine spezielle Behandlung)
0x04 00000100 UDHI Flag gesetzt (UDH vorhanden)
0x08 00001000 Antwortpfad angefordert
0x20 00100000 Zustellbestätigung (Bit 6 = 1)
0x30 00110000 Dringende Priorität + Zustellbestätigung
0x60 01100000 Datagram Modus + Zustellbestätigung
Hinweis: Viele SMSCs ignorieren reservierte Bits (1-0). Prioritätsstufen (Bits 3-2) sind netzwerkabhängig.

Wichtige Anwendungsfälle

1. Zusammengesetzte SMS (UDHI Flag)

Beim Senden von mehrteiligen Nachrichten, setzen Sie Bit 5 (UDHI=1) und fügen Sie einen User Data Header (UDH) im Payload hinzu. Beispiel für eine 3-teilige Nachricht:

ESM Class: 0x40 (binär 01000000: UDHI aktiviert)
Payload: 
05 00 03 02 01  // UDH (5 Bytes: IEI=00, IEDL=03, Teil 1 von 2)
C8329BFD06       // GSM-7 Payload ("Hallo")

2. Zustellbestätigungsanfragen

Setzen Sie Bit 6 (0x20), um eine Zustellbestätigung anzufordern. Oft kombiniert mit dem registered_delivery Feld:

ESM Class: 0x20 (binär 00100000)
registered_delivery: 0x01 (Bestätigung anfordern)

3. Priorisierte Nachrichten

Verwenden Sie Bits 3-2, um Nachrichten zu priorisieren. Beispiel für dringende Priorität:

ESM Class: 0x10 (binär 00010000: Dringende Priorität)

Beispiel SMPP PDUs

Beispiel 1: Grundlegende SMS (ESM=0x00)

0000001D  // Befehlslänge (29 Bytes)
00000004  // Befehls-ID (SubmitSM)
00000001  // Sequenznummer
00        // Source TON
00        // Source NPI
736F7572636500  // Quelladresse ("source")
00        // Dest TON
00        // Dest NPI
36353433323100  // Zieladresse ("654321")
00        // ESM Class (0x00: Standard)
00        // Protokoll-ID (PID)
00        // Priorität
00        // Geplante Lieferzeit
00        // Gültigkeitsdauer
00        // Registrierte Lieferung
00        // Ersetzen falls vorhanden
00        // Datenkodierung (DCS=0x00)
00        // Standard-Nachrichten-ID
07        // SM Länge (7 Septets)
C8329BFD06DDDF72  // Payload ("Hallo!")

Beispiel 2: Zusammengesetzte SMS (ESM=0x40)

00000025  // Befehlslänge (37 Bytes)
00000004  // Befehls-ID (SubmitSM)
00000002  // Sequenznummer
00        // Source TON
00        // Source NPI
736F7572636500  // Quelladresse ("source")
00        // Dest TON
00        // Dest NPI
36353433323100  // Zieladresse ("654321")
40        // ESM Class (0x40: UDHI aktiviert)
00        // Protokoll-ID (PID)
00        // Priorität
00        // Geplante Lieferzeit
00        // Gültigkeitsdauer
00        // Registrierte Lieferung
00        // Ersetzen falls vorhanden
00        // Datenkodierung (DCS=0x00)
00        // Standard-Nachrichten-ID
0C        // SM Länge (12 Bytes)
0500030201C8329BFD06DDDF72  // UDH + "Hallo" (Teil 1/2)

Beispiel 3: Zustellbestätigung (ESM=0x20)

0000001D  // Befehlslänge (29 Bytes)
00000004  // Befehls-ID (SubmitSM)
00000003  // Sequenznummer
00        // Source TON
00        // Source NPI
736F7572636500  // Quelladresse ("source")
00        // Dest TON
00        // Dest NPI
36353433323100  // Zieladresse ("654321")
20        // ESM Class (0x20: Zustellbestätigung)
00        // Protokoll-ID (PID)
00        // Priorität
00        // Geplante Lieferzeit
00        // Gültigkeitsdauer
01        // Registrierte Lieferung (Bestätigung angefordert)
00        // Ersetzen falls vorhanden
00        // Datenkodierung (DCS=0x00)
00        // Standard-Nachrichten-ID
07        // SM Länge (7 Septets)
C8329BFD06DDDF72  // Payload ("Hallo!")

Interaktionen mit anderen Feldern

  • UDHI (ESM) + DCS: Wenn UDHI gesetzt ist, stellen Sie sicher, dass die DCS UDH unterstützt (z.B. GSM-7 oder 8-Bit).
  • ESM Class + registered_delivery: Verwenden Sie beide, um Zustellbestätigungen explizit anzufordern.
  • Prioritätsbits + Prioritätsflag: Einige SMSCs priorisieren Nachrichten basierend auf ESM Bits anstelle des separaten Prioritätsfelds.

Häufige Fallstricke

  • UDHI setzen, ohne einen gültigen User Data Header einzufügen.
  • Zustellbestätigungsflags (ESM=0x20) verwenden, ohne registered_delivery zu setzen.
  • ESM Prioritätsbits mit dem separaten priority_flag Feld nicht übereinstimmend.
Fazit

Die ESM-Klasse ist ein leistungsstarkes Werkzeug zur Steuerung des Nachrichtenverhaltens in SMPP. Ihr Bitmasken-Design ermöglicht Funktionen wie Verkettung, Empfangsbestätigungen und Priorisierung. Überprüfen Sie stets die SMSC-Unterstützung für erweiterte Flags und testen Sie Konfigurationen gründlich. Für verbindliche Details konsultieren Sie die SMPP-Spezifikation v3.4 oder v5.0.

More information