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 |
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.