Razumijevanje SMPP PID polja
Što 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).
Identificira protokol korišten od strane izvornog sustava ili daje posebne upute za rukovanje porukama. PID polje je definirano u
submit_sm
, deliver_sm
, i data_sm
operacijama i ključno je za:
- Određivanje protokola višeg sloja (npr. X.400, Telnet)
- Pokretanje posebnih tipova poruka (npr. obavijesti o govornoj pošti)
- Rukovanje zamjenom poruka (npr. zamjena postojećih poruka)
Struktura PID-a i bitmask
PID je bitmask gdje specifični bitovi kontroliraju 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 | Upute/Zastavice: Posebno rukovanje (npr. zamjena poruke, govorna pošta). |
Ključne PID vrijednosti i interpretacija
PID (Hex) | Binarno | Opis |
---|---|---|
0x00 | 00000000 | Zadano (bez posebnog protokola) |
0x01 | 00000001 | Telex (zastarjelo) |
0x03 | 00000011 | X.400 (zastarjelo) |
0x40 | 01000000 | Poruka povratnog poziva (rukovanje SIM karticom) |
0x41 | 01000001 | Zamijeni kratku poruku (zamjena postojeće) |
0x42 | 01000010 | Obavijest o govornoj pošti |
0x7F | 01111111 | Rezervirano za buduću upotrebu |
Primjeri upotrebe i scenariji
1. Zamjena poruke (PID=0x41)
Koristi se za zamjenu postojeće poruke pohranjene na uređaju primatelja. Uobičajeno u OTP (One-Time Password) sustavima gdje nova lozinka zamjenjuje staru.
2. Obavijest o govornoj pošti (PID=0x42)
Pokreće vizualni/zvučni alarm na uređaju primatelja za novu govornu poštu. Tijelo SMS-a je često prazno, jer je sam PID okidač.
3. Preuzimanje podataka na SIM (PID=0x40)
Uputa SIM kartici za obradu poruke (npr. ažuriranje unaprijed postavljenih postavki).
Primjeri SMPP PDU-a s PID-om
Primjer 1: Zadani PID (0x00)
0000001D // Duljina naredbe (29 bajtova) 00000004 // ID naredbe (SubmitSM) 00000001 // Redni broj 00 // Izvorni TON 00 // Izvorni NPI 736F7572636500 // Izvorna adresa ("source") 00 // Odredišni TON 00 // Odredišni NPI 36353433323100 // Odredišna adresa ("654321") 00 // ESM klasa 00 // Protokol ID (PID=0x00) 00 // Zastavica prioriteta 00 // Vrijeme isporuke 00 // Valjanost 00 // Registrirana isporuka 00 // Zamijeni-ako-postoji 00 // Shema kodiranja podataka (DCS=0x00) 00 // Zadani ID poruke 07 // Duljina poruke (7 septeta) C8329BFD06DDDF72 // Sadržaj ("Hello!")
Primjer 2: Obavijest o govornoj pošti (PID=0x42)
0000001D // Duljina naredbe (29 bajtova) 00000004 // ID naredbe (SubmitSM) 00000002 // Redni broj 00 // Izvorni TON 00 // Izvorni NPI 736F7572636500 // Izvorna adresa ("source") 00 // Odredišni TON 00 // Odredišni NPI 36353433323100 // Odredišna adresa ("654321") 00 // ESM klasa 42 // Protokol ID (PID=0x42: Govorna pošta) 00 // Zastavica prioriteta 00 // Vrijeme isporuke 00 // Valjanost 00 // Registrirana isporuka 00 // Zamijeni-ako-postoji 00 // Kodiranje podataka (DCS=0x00) 00 // Zadani ID poruke 00 // Duljina poruke (0 bajtova: Bez sadržaja)
Primjer 3: Zamjena postojeće poruke (PID=0x41)
0000001D // Duljina naredbe (29 bajtova) 00000004 // ID naredbe (SubmitSM) 00000003 // Redni broj 00 // Izvorni TON 00 // Izvorni NPI 736F7572636500 // Izvorna adresa ("source") 00 // Odredišni TON 00 // Odredišni NPI 36353433323100 // Odredišna adresa ("654321") 00 // ESM klasa 41 // Protokol ID (PID=0x41: Zamijeni) 00 // Zastavica prioriteta 00 // Vrijeme isporuke 00 // Valjanost 01 // Registrirana isporuka (potvrda zatražena) 00 // Zamijeni-ako-postoji 00 // Kodiranje podataka (DCS=0x00) 00 // Zadani ID poruke 07 // Duljina poruke (7 septeta) C8329BFD06DDDF72 // Sadržaj ("Novi OTP: 1234")
Interakcija PID-a s TP-Protocol-Identifier (GSM)
U GSM mrežama, PID se preslikava na TP-Protocol-Identifier
u SMS TPDU. Ključna preslikavanja uključuju:
- 0x41: Naredba zamjene (GSM 03.40 TP-PID=0x41)
- 0x42: Govorna pošta (GSM 03.40 TP-PID=0x42)
Uobičajene zamke
- Korištenje rezerviranih PID vrijednosti (npr. 0x7F) bez podrške SMSC-a.
- Neusklađenost PID-a i DCS-a (npr. korištenje UCS2 kodiranja za SIM podatke).
- Zanemarivanje mrežno specifičnih pravila (npr. PID=0x40 može zahtijevati posebnu konfiguraciju SMSC-a).
Zaključak
PID polje je ključno za napredno usmjeravanje i rukovanje SMS-ovima. Iako je često postavljeno na 0x00 (zadano), njegove specijalizirane vrijednosti omogućuju značajke poput zamjene poruka, ažuriranja SIM-a i obavijesti o govornoj pošti. Uvijek testirajte PID konfiguracije sa svojim SMSC-om i referirajte se na GSM 03.40 ili SMPP v5.0 specifikacije za precizno ponašanje.
More information
- Kako konfigurirati polje SMPP vrsta usluge
- Kako konfigurirati polja SMPP telefonskih brojeva
- Kako konfigurirati polje SMPP ESM klasa
- Kako konfigurirati polje SMPP PID
- Kako konfigurirati polje SMPP prioritet
- Kako konfigurirati polje SMPP planirano vrijeme
- Kako konfigurirati polje SMPP rok valjanosti
- Kako konfigurirati polje SMPP registrirana isporuka
- Kako konfigurirati polje SMPP zamijeni ako postoji
- Kako konfigurirati polje sm_default_msg_id
- Kako konfigurirati polje SMPP DCS
- Kako izračunati polje SMPP SM duljina
- Kako staviti podatke u SMPP SM polje