Pochopenie poľa PID v SMPP

Čo je pole PID v SMPP?

Protokolový identifikátor (PID) v SMPP (Short Message Peer-to-Peer Protocol) je 1-bajtové pole v rámci SMPP PDU (Protocol Data Units). Identifikuje protokol používaný zdrojovým systémom alebo poskytuje špeciálne inštrukcie pre spracovanie správy. Pole PID je definované v operáciách submit_sm, deliver_sm a data_sm a je kritické pre:

  • Špecifikáciu protokolov vyšších vrstiev (napr. X.400, Telnet)
  • Spustenie špeciálnych typov správ (napr. notifikácie o hlasovej pošte)
  • Spracovanie nahradenia správy (napr. prepísanie existujúcich správ)

Štruktúra PID a bitová maska

PID je bitová maska, kde špecifické bity ovládajú správanie protokolu. Jeho štruktúra je v súlade so špecifikáciami GSM 03.40:

Bity Popis
7-5 Typ protokolu: Označuje protokol (napr. GSM, Telex alebo SMS).
4-0 Inštrukcie/Vlajky: Špeciálne spracovanie (napr. nahradenie správy, hlasová pošta).

Kľúčové hodnoty PID a ich interpretácia

PID (Hex) Binárne Popis
0x00 00000000 Predvolené (žiadny špeciálny protokol)
0x01 00000001 Telex (zastarané)
0x03 00000011 X.400 (zastarané)
0x40 01000000 Správa o spätnom volaní (spracovanie SIM karty)
0x41 01000001 Nahradiť krátku správu (prepísať existujúcu)
0x42 01000010 Notifikácia o hlasovej pošte
0x7F 01111111 Rezervované pre budúce použitie
Poznámka: Hodnoty ako 0x40–0x7F sú špecifické pre sieť a môžu sa líšiť v závislosti od SMSC. Vždy overte u svojho poskytovateľa.

Prípady použitia a scenáre

1. Nahradenie správy (PID=0x41)

Používa sa na prepísanie existujúcej správy uloženej na zariadení príjemcu. Bežné v systémoch OTP (One-Time Password), kde nové heslo nahradí staré.

2. Notifikácia o hlasovej pošte (PID=0x42)

Spustí vizuálny/auditívny alert na zariadení príjemcu pre novú hlasovú poštu. Telo SMS je často prázdne, pretože samotné PID je spúšťač.

3. Sťahovanie dát SIM (PID=0x40)

Inštruuje SIM kartu, aby spracovala správu (napr. aktualizácia prednastavených nastavení).

Príklady SMPP PDU s PID

Príklad 1: Predvolené PID (0x00)

0000001D  // Dĺžka príkazu (29 bajtov)
00000004  // ID príkazu (SubmitSM)
00000001  // Poradové číslo
00        // Zdrojový TON
00        // Zdrojový NPI
736F7572636500  // Zdrojová adresa ("source")
00        // Cieľový TON
00        // Cieľový NPI
36353433323100  // Cieľová adresa ("654321")
00        // Trieda ESM
00        // Protokolový ID (PID=0x00)
00        // Vlajka priority
00        // Čas plánovaného doručenia
00        // Platnosť
00        // Registrované doručenie
00        // Nahradiť, ak je prítomné
00        // Schéma kódovania dát (DCS=0x00)
00        // Predvolené ID správy SM
07        // Dĺžka SM (7 septetov)
C8329BFD06DDDF72  // Payload ("Hello!")

Príklad 2: Notifikácia o hlasovej pošte (PID=0x42)

0000001D  // Dĺžka príkazu (29 bajtov)
00000004  // ID príkazu (SubmitSM)
00000002  // Poradové číslo
00        // Zdrojový TON
00        // Zdrojový NPI
736F7572636500  // Zdrojová adresa ("source")
00        // Cieľový TON
00        // Cieľový NPI
36353433323100  // Cieľová adresa ("654321")
00        // Trieda ESM
42        // Protokolový ID (PID=0x42: Hlasová pošta)
00        // Vlajka priority
00        // Čas plánovaného doručenia
00        // Platnosť
00        // Registrované doručenie
00        // Nahradiť, ak je prítomné
00        // Kódovanie dát (DCS=0x00)
00        // Predvolené ID správy SM
00        // Dĺžka SM (0 bajtov: Žiadny payload)

Príklad 3: Nahradenie existujúcej správy (PID=0x41)

0000001D  // Dĺžka príkazu (29 bajtov)
00000004  // ID príkazu (SubmitSM)
00000003  // Poradové číslo
00        // Zdrojový TON
00        // Zdrojový NPI
736F7572636500  // Zdrojová adresa ("source")
00        // Cieľový TON
00        // Cieľový NPI
36353433323100  // Cieľová adresa ("654321")
00        // Trieda ESM
41        // Protokolový ID (PID=0x41: Nahradiť)
00        // Vlajka priority
00        // Čas plánovaného doručenia
00        // Platnosť
01        // Registrované doručenie (požadovaný potvrdenie)
00        // Nahradiť, ak je prítomné
00        // Kódovanie dát (DCS=0x00)
00        // Predvolené ID správy SM
07        // Dĺžka SM (7 septetov)
C8329BFD06DDDF72  // Payload ("Nové OTP: 1234")

Interakcia PID s TP-Protocol-Identifier (GSM)

V sieťach GSM sa PID mapuje na TP-Protocol-Identifier v SMS TPDU. Kľúčové mapovania zahŕňajú:

  • 0x41: Príkaz na nahradenie (GSM 03.40 TP-PID=0x41)
  • 0x42: Hlasová pošta (GSM 03.40 TP-PID=0x42)

Bežné úskalia

  • Použitie rezervovaných hodnôt PID (napr. 0x7F) bez podpory SMSC.
  • Nesúlad PID a DCS (napr. použitie UCS2 kódovania pre dáta SIM).
  • Ignorovanie pravidiel špecifických pre sieť (napr. PID=0x40 môže vyžadovať špeciálnu konfiguráciu SMSC).

Záver

Pole PID je nevyhnutné pre pokročilé smerovanie a spracovanie SMS. Hoci je často nastavené na 0x00 (predvolené), jeho špecializované hodnoty umožňujú funkcie ako nahradenie správy, aktualizácie SIM a upozornenia na hlasovú poštu. Vždy testujte konfiguráciu PID s vaším SMSC a pre presné správanie sa odporúča pozrieť špecifikácie GSM 03.40 alebo SMPP v5.0.

More information