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 |
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
- How to configure the SMPP Service Type field
- How to configure the SMPP Phone Number fields
- How to configure the SMPP ESM Class field
- How to configure the SMPP PID field
- How to configure the SMPP Prioirity field
- How to configure the SMPP Scheduled Time field
- How to configure the SMPP Validity Period field
- How to configure the SMPP Registered Delivery field
- How to configure the SMPP Replace if Present field
- How to configure the sm_default_msg_id field
- How to configure the SMPP DCS field
- How to calculate the SMPP SM Length field
- How to put data into the SMPP SM field