Das SMPP-PID-Feld verstehen
Was ist das SMPP-PID-Feld?
Der Protocol Identifier (PID) in SMPP (Short Message Peer-to-Peer Protocol) ist ein 1-Byte-Feld innerhalb von SMPP-PDUs (Protocol Data Units).
Es identifiziert das vom Ursprungssystem verwendete Protokoll oder gibt spezielle Anweisungen für die Nachrichtenbehandlung. Das PID-Feld ist in den
Operationen submit_sm, deliver_sm und data_sm definiert und ist entscheidend für:
- Die Angabe von Protokollen höherer Schichten (z.B. X.400, Telnet)
- Das Auslösen spezieller Nachrichtentypen (z.B. Voicemail-Benachrichtigungen)
- Die Behandlung von Nachrichtenersetzung (z.B. Überschreiben vorhandener Nachrichten)
Aufbau und Bitmaske des PID
Der PID ist eine Bitmaske, bei der bestimmte Bits das Protokollverhalten steuern. Seine Struktur orientiert sich an den GSM-03.40-Spezifikationen:
| Bits | Beschreibung |
|---|---|
| 7-5 | Protokolltyp: Gibt das Protokoll an (z.B. GSM, Telex oder SMS). |
| 4-0 | Anweisungen/Flags: Spezielle Behandlung (z.B. Nachricht ersetzen, Voicemail). |
Wichtige PID-Werte und ihre Bedeutung
| PID (Hex) | Binär | Beschreibung |
|---|---|---|
| 0x00 | 00000000 | Standard (kein spezielles Protokoll) |
| 0x01 | 00000001 | Telex (veraltet) |
| 0x03 | 00000011 | X.400 (veraltet) |
| 0x40 | 01000000 | Rückrufnachricht (SIM-Karten-Behandlung) |
| 0x41 | 01000001 | Kurzmitteilung ersetzen (vorhandene überschreiben) |
| 0x42 | 01000010 | Voicemail-Benachrichtigung |
| 0x7F | 01111111 | Für zukünftige Verwendung reserviert |
Anwendungsfälle und Szenarien
1. Nachrichtenersetzung (PID=0x41)
Wird verwendet, um eine vorhandene Nachricht auf dem Gerät des Empfängers zu überschreiben. Häufig in OTP-Systemen (One-Time Password), bei denen ein neues Passwort das alte ersetzt.
2. Voicemail-Benachrichtigung (PID=0x42)
Löst eine visuelle/akustische Warnung auf dem Gerät des Empfängers für eine neue Voicemail aus. Der SMS-Text ist oft leer, da der PID selbst der Auslöser ist.
3. SIM-Daten-Download (PID=0x40)
Weist die SIM-Karte an, die Nachricht zu verarbeiten (z.B. Aktualisierung vorkonfigurierter Einstellungen).
Beispiel-SMPP-PDUs mit PID
Beispiel 1: Standard-PID (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 (PID=0x00)
00 // Prioritätsflag
00 // Zeitplan für Zustellung
00 // Gültigkeitsdauer
00 // Registrierte Zustellung
00 // Ersetzen falls vorhanden
00 // Datenkodierungsschema (DCS=0x00)
00 // Standard-Nachrichten-ID
07 // Nachrichtenlänge (7 Septets)
C8329BFD06DDDF72 // Nutzlast ("Hallo!")
Beispiel 2: Voicemail-Benachrichtigung (PID=0x42)
0000001D // Befehlslänge (29 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
42 // Protokoll-ID (PID=0x42: Voicemail)
00 // Prioritätsflag
00 // Zeitplan für Zustellung
00 // Gültigkeitsdauer
00 // Registrierte Zustellung
00 // Ersetzen falls vorhanden
00 // Datenkodierung (DCS=0x00)
00 // Standard-Nachrichten-ID
00 // Nachrichtenlänge (0 Bytes: Keine Nutzlast)
Beispiel 3: Vorhandene Nachricht ersetzen (PID=0x41)
0000001D // Befehlslä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
41 // Protokoll-ID (PID=0x41: Ersetzen)
00 // Prioritätsflag
00 // Zeitplan für Zustellung
00 // Gültigkeitsdauer
01 // Registrierte Zustellung (Empfangsbestätigung angefordert)
00 // Ersetzen falls vorhanden
00 // Datenkodierung (DCS=0x00)
00 // Standard-Nachrichten-ID
07 // Nachrichtenlänge (7 Septets)
C8329BFD06DDDF72 // Nutzlast ("Neues OTP: 1234")
Interaktion des PID mit TP-Protocol-Identifier (GSM)
In GSM-Netzen wird der PID dem TP-Protocol-Identifier in SMS-TPDUs zugeordnet. Wichtige Zuordnungen sind:
- 0x41: Ersetzungsbefehl (GSM 03.40 TP-PID=0x41)
- 0x42: Voicemail (GSM 03.40 TP-PID=0x42)
Häufige Fallstricke
- Verwendung reservierter PID-Werte (z.B. 0x7F) ohne SMSC-Unterstützung.
- Nicht übereinstimmender PID und DCS (z.B. Verwendung von UCS2-Kodierung für SIM-Daten).
- Ignorieren netzwerkspezifischer Regeln (z.B. PID=0x40 erfordert möglicherweise spezielle SMSC-Konfiguration).
Fazit
Das PID-Feld ist entscheidend für erweiterte SMS-Routing- und Behandlungsfunktionen. Obwohl es oft auf 0x00 (Standard) gesetzt ist, ermöglichen seine spezialisierten Werte Funktionen wie Nachrichtenersetzung, SIM-Updates und Voicemail-Benachrichtigungen. Testen Sie PID-Konfigurationen immer mit Ihrem SMSC und beziehen Sie sich auf die GSM-03.40- oder SMPP-v5.0-Spezifikationen für genaues Verhalten.