Razumevanje SMPP PID polja
Šta je SMPP PID polje?
Protokol identifikator (PID) u SMPP (Short Message Peer-to-Peer Protocol) je 1-bajtno polje unutar SMPP PDU (Protocol Data Units).
Ono identifikuje protokol korišćen od strane izvornog sistema ili daje posebne instrukcije za rukovanje porukama. PID polje je definisano u
submit_sm
, deliver_sm
, i data_sm
operacijama i kritično je za:
- Određivanje protokola višeg sloja (npr. X.400, Telnet)
- Pokretanje posebnih tipova poruka (npr. obaveštenja o govornoj pošti)
- Rukovanje zamjenom poruka (npr. prepisivanje postojećih poruka)
Struktura PID-a i bitmask
PID je bitmask gde specifični bitovi kontrolišu ponašanje protokola. Njegova struktura je usklađena sa GSM 03.40 specifikacijama:
Bitovi | Opis |
---|---|
7-5 | Tip protokola: Označava protokol (npr. GSM, Telex, ili SMS). |
4-0 | Instrukcije/Flagovi: Posebno rukovanje (npr. zamena poruke, govorna pošta). |
Ključne PID vrednosti i interpretacija
PID (Hex) | Binarno | Opis |
---|---|---|
0x00 | 00000000 | Podrazumevano (bez posebnog protokola) |
0x01 | 00000001 | Telex (zastarelo) |
0x03 | 00000011 | X.400 (zastarelo) |
0x40 | 01000000 | Poruka povratnog poziva (rukovanje SIM karticom) |
0x41 | 01000001 | Zamena kratke poruke (prepisivanje postojeće) |
0x42 | 01000010 | Obaveštenje o govornoj pošti |
0x7F | 01111111 | Rezervisano za buduću upotrebu |
Primeri upotrebe i scenariji
1. Zamena poruke (PID=0x41)
Koristi se za prepisivanje postojeće poruke sačuvane na uređaju primaoca. Uobičajeno u OTP (One-Time Password) sistemima gde novi password zamenjuje stari.
2. Obaveštenje o govornoj pošti (PID=0x42)
Pokreće vizuelni/zvučni alarm na uređaju primaoca za novu govornu poštu. Telo SMS-a je često prazno, jer sam PID je okidač.
3. Preuzimanje podataka na SIM (PID=0x40)
Instruiše SIM karticu da obradi poruku (npr. ažuriranje unapred konfigurisanih postavki).
Primeri SMPP PDU sa PID-om
Primer 1: Podrazumevani PID (0x00)
0000001D // Dužina komande (29 bajtova) 00000004 // ID komande (SubmitSM) 00000001 // Redni broj sekvence 00 // Source TON 00 // Source NPI 736F7572636500 // Source Address ("source") 00 // Dest TON 00 // Dest NPI 36353433323100 // Destination Address ("654321") 00 // ESM Class 00 // Protocol ID (PID=0x00) 00 // Priority Flag 00 // Schedule Delivery Time 00 // Validity Period 00 // Registered Delivery 00 // Replace-if-Present 00 // Data Coding Scheme (DCS=0x00) 00 // SM Default Message ID 07 // SM Length (7 septeta) C8329BFD06DDDF72 // Payload ("Zdravo!")
Primer 2: Obaveštenje o govornoj pošti (PID=0x42)
0000001D // Dužina komande (29 bajtova) 00000004 // ID komande (SubmitSM) 00000002 // Redni broj sekvence 00 // Source TON 00 // Source NPI 736F7572636500 // Source Address ("source") 00 // Dest TON 00 // Dest NPI 36353433323100 // Destination Address ("654321") 00 // ESM Class 42 // Protocol ID (PID=0x42: Govorna pošta) 00 // Priority Flag 00 // Schedule Delivery Time 00 // Validity Period 00 // Registered Delivery 00 // Replace-if-Present 00 // Data Coding (DCS=0x00) 00 // SM Default Message ID 00 // SM Length (0 bajtova: Bez sadržaja)
Primer 3: Zamena postojeće poruke (PID=0x41)
0000001D // Dužina komande (29 bajtova) 00000004 // ID komande (SubmitSM) 00000003 // Redni broj sekvence 00 // Source TON 00 // Source NPI 736F7572636500 // Source Address ("source") 00 // Dest TON 00 // Dest NPI 36353433323100 // Destination Address ("654321") 00 // ESM Class 41 // Protocol ID (PID=0x41: Zamena) 00 // Priority Flag 00 // Schedule Delivery Time 00 // Validity Period 01 // Registered Delivery (zahtevan prijem) 00 // Replace-if-Present 00 // Data Coding (DCS=0x00) 00 // SM Default Message ID 07 // SM Length (7 septeta) C8329BFD06DDDF72 // Payload ("Novi OTP: 1234")
Interakcija PID-a sa TP-Protocol-Identifier (GSM)
U GSM mrežama, PID se mapira na TP-Protocol-Identifier
u SMS TPDU. Ključna mapiranja uključuju:
- 0x41: Komanda zamene (GSM 03.40 TP-PID=0x41)
- 0x42: Govorna pošta (GSM 03.40 TP-PID=0x42)
Uobičajene greške
- Korišćenje rezervisanih PID vrednosti (npr. 0x7F) bez podrške SMSC.
- Neusklađenost PID-a i DCS (npr. korišćenje UCS2 kodiranja za SIM podatke).
- Ignorisanje mrežno specifičnih pravila (npr. PID=0x40 može zahtevati posebnu konfiguraciju SMSC).
Zaključak
PID polje je ključno za napredno rutiranje i rukovanje SMS porukama. Iako je često postavljeno na 0x00 (podrazumevano), njegove specijalizovane vrednosti omogućavaju funkcije poput zamene poruka, ažuriranja SIM-a i obaveštenja o govornoj pošti. Uvek testirajte PID konfiguracije sa svojim SMSC i konsultujte GSM 03.40 ili SMPP v5.0 specifikacije za precizno ponašanje.
More information
- Kako konfigurisati SMPP Tip usluge polje
- Kako konfigurisati SMPP polja za telefonske brojeve
- Kako konfigurisati SMPP ESM Class polje
- Kako konfigurisati SMPP PID polje
- Kako konfigurisati SMPP Prioritet polje
- Kako konfigurisati SMPP Zakazano vreme polje
- Kako konfigurisati SMPP Period važenja polje
- Kako konfigurisati SMPP Registrovana isporuka polje
- Kako konfigurisati SMPP Zameni ako postoji polje
- Kako konfigurisati sm_default_msg_id polje
- Kako konfigurisati SMPP DCS polje
- Kako izračunati SMPP SM Dužina polje
- Kako uneti podatke u SMPP SM polje