Az SMPP PID mező megértése

Mi az SMPP PID mező?

A Protocol Identifier (PID) az SMPP (Short Message Peer-to-Peer Protocol) protokollban egy 1 bájtos mező az SMPP PDU-k (Protocol Data Units) belül. Azonosítja a forrásrendszer által használt protokollt, vagy speciális utasításokat ad az üzenetkezeléshez. A PID mező a submit_sm, deliver_sm és data_sm műveletekben van definiálva, és kritikus szerepet játszik a következőkben:

  • Magasabb rétegbeli protokollok meghatározása (pl. X.400, Telnet)
  • Speciális üzenettípusok aktiválása (pl. hangpostával kapcsolatos értesítések)
  • Üzenetfelülírás kezelése (pl. meglévő üzenetek felülírása)

A PID szerkezete és bitmaszkja

A PID egy bitmaszk, ahol bizonyos bitek szabályozzák a protokoll viselkedését. Szerkezete a GSM 03.40 specifikációval összhangban van:

Bitek Leírás
7-5 Protokoll típus: A protokollt jelöli (pl. GSM, Telex vagy SMS).
4-0 Utasítások/Flag-ek: Speciális kezelés (pl. üzenet felülírása, hangposta).

Kulcsfontosságú PID értékek és értelmezésük

PID (Hex) Bináris Leírás
0x00 00000000 Alapértelmezett (nincs speciális protokoll)
0x01 00000001 Telex (elavult)
0x03 00000011 X.400 (elavult)
0x40 01000000 Visszahívási üzenet (SIM kártya kezelés)
0x41 01000001 Üzenet felülírása (meglévő üzenet felülírása)
0x42 01000010 Hangposta értesítés
0x7F 01111111 Fenntartva a jövőbeli használatra
Megjegyzés: A 0x40–0x7F közötti értékek hálózatspecifikusak, és változhatnak az SMSC-től függően. Mindig ellenőrizze a szolgáltatójával.

Használati esetek és forgatókönyvek

1. Üzenet felülírása (PID=0x41)

A címzett eszközén tárolt meglévő üzenet felülírására szolgál. Gyakori az OTP (One-Time Password) rendszerekben, ahol az új jelszó felülírja a régit.

2. Hangposta értesítés (PID=0x42)

Vizuális/hangos riasztást vált ki a címzett eszközén egy új hangposta érkezésekor. Az SMS törzse gyakran üres, mivel maga a PID váltja ki a riasztást.

3. SIM adatletöltés (PID=0x40)

Utasítja a SIM kártyát az üzenet feldolgozására (pl. előre beállított beállítások frissítése).

Példa SMPP PDU-k PID-del

1. példa: Alapértelmezett PID (0x00)

0000001D  // Parancs hossza (29 bájt)
00000004  // Parancs azonosító (SubmitSM)
00000001  // Sorszám
00        // Forrás TON
00        // Forrás NPI
736F7572636500  // Forráscím ("source")
00        // Cél TON
00        // Cél NPI
36353433323100  // Címzett cím ("654321")
00        // ESM osztály
00        // Protokoll azonosító (PID=0x00)
00        // Prioritás flag
00        // Ütemezett kézbesítési idő
00        // Érvényességi időtartam
00        // Regisztrált kézbesítés
00        // Felülírás, ha jelen van
00        // Adatkódolási séma (DCS=0x00)
00        // SM alapértelmezett üzenet azonosító
07        // SM hossz (7 szettes)
C8329BFD06DDDF72  // Tartalom ("Hello!")
    

2. példa: Hangposta értesítés (PID=0x42)

0000001D  // Parancs hossza (29 bájt)
00000004  // Parancs azonosító (SubmitSM)
00000002  // Sorszám
00        // Forrás TON
00        // Forrás NPI
736F7572636500  // Forráscím ("source")
00        // Cél TON
00        // Cél NPI
36353433323100  // Címzett cím ("654321")
00        // ESM osztály
42        // Protokoll azonosító (PID=0x42: Hangposta)
00        // Prioritás flag
00        // Ütemezett kézbesítési idő
00        // Érvényességi időtartam
00        // Regisztrált kézbesítés
00        // Felülírás, ha jelen van
00        // Adatkódolás (DCS=0x00)
00        // SM alapértelmezett üzenet azonosító
00        // SM hossz (0 bájt: Nincs tartalom)
    

3. példa: Meglévő üzenet felülírása (PID=0x41)

0000001D  // Parancs hossza (29 bájt)
00000004  // Parancs azonosító (SubmitSM)
00000003  // Sorszám
00        // Forrás TON
00        // Forrás NPI
736F7572636500  // Forráscím ("source")
00        // Cél TON
00        // Cél NPI
36353433323100  // Címzett cím ("654321")
00        // ESM osztály
41        // Protokoll azonosító (PID=0x41: Felülírás)
00        // Prioritás flag
00        // Ütemezett kézbesítési idő
00        // Érvényességi időtartam
01        // Regisztrált kézbesítés (visszaigazolás kért)
00        // Felülírás, ha jelen van
00        // Adatkódolás (DCS=0x00)
00        // SM alapértelmezett üzenet azonosító
07        // SM hossz (7 szettes)
C8329BFD06DDDF72  // Tartalom ("New OTP: 1234")
    

A PID és a TP-Protocol-Identifier (GSM) kapcsolata

A GSM hálózatokban a PID a TP-Protocol-Identifier-re képeződik le az SMS TPDU-kban. Fontos leképezések:

  • 0x41: Felülírási parancs (GSM 03.40 TP-PID=0x41)
  • 0x42: Hangposta (GSM 03.40 TP-PID=0x42)

Gyakori buktatók

  • Fenntartott PID értékek használata (pl. 0x7F) SMSC támogatás nélkül.
  • A PID és a DCS eltérése (pl. UCS2 kódolás használata SIM adatokhoz).
  • Hálózatspecifikus szabályok figyelmen kívül hagyása (pl. a PID=0x40 speciális SMSC konfigurációt igényelhet).

Összegzés

A PID mező elengedhetetlen a fejlett SMS-útválasztáshoz és -kezeléshez. Bár gyakran 0x00-ra (alapértelmezett) van állítva, speciális értékei lehetővé teszik olyan funkciókat, mint az üzenetfelülírás, SIM frissítések és hangposta értesítések. Mindig tesztelje a PID beállításokat az SMSC-vel, és a pontos viselkedésért tekintse meg a GSM 03.40 vagy SMPP v5.0 specifikációkat.

More information