Razumevanje polja SMPP PID

Kaj je polje SMPP PID?

Protokolni identifikator (PID) v SMPP (Short Message Peer-to-Peer Protocol) je 1-bajtno polje znotraj SMPP PDU (Protocol Data Units). Identificira protokol, ki ga uporablja izvorni sistem, ali zagotavlja posebna navodila za obdelavo sporočil. Polje PID je definirano v operacijah submit_sm, deliver_sm in data_sm ter je ključno za:

  • Določanje protokolov višjih plasti (npr. X.400, Telnet)
  • Sprožanje posebnih vrst sporočil (npr. obvestila o govorni pošti)
  • Obdelavo zamenjave sporočil (npr. prepisovanje obstoječih sporočil)

Struktura in bitna maska PID

PID je bitna maska, kjer specifični biti nadzorujejo obnašanje protokola. Njegova struktura je skladna s specifikacijami GSM 03.40:

Bit Opis
7-5 Vrsta protokola: Označuje protokol (npr. GSM, Telex ali SMS).
4-0 Navodila/Zastavice: Posebna obdelava (npr. zamenjava sporočila, govorna pošta).

Ključne vrednosti PID in njihova interpretacija

PID (Hex) Binarno Opis
0x00 00000000 Privzeto (brez posebnega protokola)
0x01 00000001 Telex (zastarelo)
0x03 00000011 X.400 (zastarelo)
0x40 01000000 Sporočilo o povratnem klicu (obdelava SIM kartice)
0x41 01000001 Zamenjava kratkega sporočila (prepisovanje obstoječega)
0x42 01000010 Obvestilo o govorni pošti
0x7F 01111111 Rezervirano za prihodnjo uporabo
Opomba: Vrednosti, kot so 0x40–0x7F, so odvisne od omrežja in se lahko razlikujejo glede na SMSC. Vedno preverite pri svojem ponudniku.

Primeri uporabe in scenariji

1. Zamenjava sporočila (PID=0x41)

Uporablja se za prepisovanje obstoječega sporočila, shranjenega na napravi prejemnika. Običajno v sistemih z enkratnim geslom (OTP), kjer novo geslo nadomesti starega.

2. Obvestilo o govorni pošti (PID=0x42)

Sproži vizualno/zvočno opozorilo na napravi prejemnika za novo govorno pošto. Telo SMS-a je pogosto prazno, saj je PID sam sprožilec.

3. Prenos podatkov na SIM (PID=0x40)

Navede SIM kartico, naj obdela sporočilo (npr. posodobitev vnaprej nastavljenih nastavitev).

Primeri SMPP PDU z PID

Primer 1: Privzeti PID (0x00)

0000001D  // Dolžina ukaza (29 bajtov)
00000004  // ID ukaza (SubmitSM)
00000001  // Zaporedna številka
00        // Vir TON
00        // Vir NPI
736F7572636500  // Naslov pošiljatelja ("source")
00        // Cilj TON
00        // Cilj NPI
36353433323100  // Naslov prejemnika ("654321")
00        // Razred ESM
00        // Protokolni ID (PID=0x00)
00        // Prioritetna zastavica
00        // Čas načrtovane dostave
00        // Obdobje veljavnosti
00        // Registrirana dostava
00        // Zamenjava, če je prisotna
00        // Shema kodiranja podatkov (DCS=0x00)
00        // Privzeti ID sporočila SM
07        // Dolžina SM (7 septetov)
C8329BFD06DDDF72  // Nosečina ("Hello!")
    

Primer 2: Obvestilo o govorni pošti (PID=0x42)

0000001D  // Dolžina ukaza (29 bajtov)
00000004  // ID ukaza (SubmitSM)
00000002  // Zaporedna številka
00        // Vir TON
00        // Vir NPI
736F7572636500  // Naslov pošiljatelja ("source")
00        // Cilj TON
00        // Cilj NPI
36353433323100  // Naslov prejemnika ("654321")
00        // Razred ESM
42        // Protokolni ID (PID=0x42: Govorna pošta)
00        // Prioritetna zastavica
00        // Čas načrtovane dostave
00        // Obdobje veljavnosti
00        // Registrirana dostava
00        // Zamenjava, če je prisotna
00        // Kodiranje podatkov (DCS=0x00)
00        // Privzeti ID sporočila SM
00        // Dolžina SM (0 bajtov: Brez nosečine)
    

Primer 3: Zamenjava obstoječega sporočila (PID=0x41)

0000001D  // Dolžina ukaza (29 bajtov)
00000004  // ID ukaza (SubmitSM)
00000003  // Zaporedna številka
00        // Vir TON
00        // Vir NPI
736F7572636500  // Naslov pošiljatelja ("source")
00        // Cilj TON
00        // Cilj NPI
36353433323100  // Naslov prejemnika ("654321")
00        // Razred ESM
41        // Protokolni ID (PID=0x41: Zamenjava)
00        // Prioritetna zastavica
00        // Čas načrtovane dostave
00        // Obdobje veljavnosti
01        // Registrirana dostava (zahtevano potrdilo)
00        // Zamenjava, če je prisotna
00        // Kodiranje podatkov (DCS=0x00)
00        // Privzeti ID sporočila SM
07        // Dolžina SM (7 septetov)
C8329BFD06DDDF72  // Nosečina ("New OTP: 1234")
    

Interakcija PID s TP-Protocol-Identifier (GSM)

V omrežjih GSM se PID preslika v TP-Protocol-Identifier v SMS TPDU. Ključne preslikave vključujejo:

  • 0x41: Ukaz za zamenjavo (GSM 03.40 TP-PID=0x41)
  • 0x42: Govorna pošta (GSM 03.40 TP-PID=0x42)

Pogoste pasti

  • Uporaba rezerviranih vrednosti PID (npr. 0x7F) brez podpore SMSC.
  • Neujemanje PID in DCS (npr. uporaba kodiranja UCS2 za podatke SIM).
  • Ignoriranje pravil, specifičnih za omrežje (npr. PID=0x40 lahko zahteva posebno konfiguracijo SMSC).

Zaključek

Polje PID je bistveno za napredno usmerjanje in obdelavo SMS-ov. Čeprav je pogosto nastavljeno na 0x00 (privzeto), njegove specializirane vrednosti omogočajo funkcije, kot so zamenjava sporočil, posodobitve SIM in opozorila o govorni pošti. Vedno preizkusite konfiguracijo PID s svojim SMSC in se za natančno obnašanje sklicujte na specifikacije GSM 03.40 ali SMPP v5.0.

More information