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
Hinweis: Werte wie 0x40–0x7F sind netzwerkspezifisch und können je nach SMSC variieren. Immer beim Anbieter verifizieren.

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.

More information