Az SMPP PID mező megértése
Mi az SMPP PID mező?
A Protocol Identifier (PID) az SMPP (Short Message Peer-to-Peer Protocol) protokollban egy 1 bájtos mező az SMPP PDU-k (Protocol Data Units) belül.
Azonosítja a forrásrendszer által használt protokollt, vagy speciális utasításokat ad az üzenetkezeléshez. A PID mező a
submit_sm
, deliver_sm
és data_sm
műveletekben van definiálva, és kritikus szerepet játszik a következőkben:
- Magasabb rétegbeli protokollok meghatározása (pl. X.400, Telnet)
- Speciális üzenettípusok aktiválása (pl. hangpostával kapcsolatos értesítések)
- Üzenetfelülírás kezelése (pl. meglévő üzenetek felülírása)
A PID szerkezete és bitmaszkja
A PID egy bitmaszk, ahol bizonyos bitek szabályozzák a protokoll viselkedését. Szerkezete a GSM 03.40 specifikációval összhangban van:
Bitek | Leírás |
---|---|
7-5 | Protokoll típus: A protokollt jelöli (pl. GSM, Telex vagy SMS). |
4-0 | Utasítások/Flag-ek: Speciális kezelés (pl. üzenet felülírása, hangposta). |
Kulcsfontosságú PID értékek és értelmezésük
PID (Hex) | Bináris | Leírás |
---|---|---|
0x00 | 00000000 | Alapértelmezett (nincs speciális protokoll) |
0x01 | 00000001 | Telex (elavult) |
0x03 | 00000011 | X.400 (elavult) |
0x40 | 01000000 | Visszahívási üzenet (SIM kártya kezelés) |
0x41 | 01000001 | Üzenet felülírása (meglévő üzenet felülírása) |
0x42 | 01000010 | Hangposta értesítés |
0x7F | 01111111 | Fenntartva a jövőbeli használatra |
Használati esetek és forgatókönyvek
1. Üzenet felülírása (PID=0x41)
A címzett eszközén tárolt meglévő üzenet felülírására szolgál. Gyakori az OTP (One-Time Password) rendszerekben, ahol az új jelszó felülírja a régit.
2. Hangposta értesítés (PID=0x42)
Vizuális/hangos riasztást vált ki a címzett eszközén egy új hangposta érkezésekor. Az SMS törzse gyakran üres, mivel maga a PID váltja ki a riasztást.
3. SIM adatletöltés (PID=0x40)
Utasítja a SIM kártyát az üzenet feldolgozására (pl. előre beállított beállítások frissítése).
Példa SMPP PDU-k PID-del
1. példa: Alapértelmezett PID (0x00)
0000001D // Parancs hossza (29 bájt) 00000004 // Parancs azonosító (SubmitSM) 00000001 // Sorszám 00 // Forrás TON 00 // Forrás NPI 736F7572636500 // Forráscím ("source") 00 // Cél TON 00 // Cél NPI 36353433323100 // Címzett cím ("654321") 00 // ESM osztály 00 // Protokoll azonosító (PID=0x00) 00 // Prioritás flag 00 // Ütemezett kézbesítési idő 00 // Érvényességi időtartam 00 // Regisztrált kézbesítés 00 // Felülírás, ha jelen van 00 // Adatkódolási séma (DCS=0x00) 00 // SM alapértelmezett üzenet azonosító 07 // SM hossz (7 szettes) C8329BFD06DDDF72 // Tartalom ("Hello!")
2. példa: Hangposta értesítés (PID=0x42)
0000001D // Parancs hossza (29 bájt) 00000004 // Parancs azonosító (SubmitSM) 00000002 // Sorszám 00 // Forrás TON 00 // Forrás NPI 736F7572636500 // Forráscím ("source") 00 // Cél TON 00 // Cél NPI 36353433323100 // Címzett cím ("654321") 00 // ESM osztály 42 // Protokoll azonosító (PID=0x42: Hangposta) 00 // Prioritás flag 00 // Ütemezett kézbesítési idő 00 // Érvényességi időtartam 00 // Regisztrált kézbesítés 00 // Felülírás, ha jelen van 00 // Adatkódolás (DCS=0x00) 00 // SM alapértelmezett üzenet azonosító 00 // SM hossz (0 bájt: Nincs tartalom)
3. példa: Meglévő üzenet felülírása (PID=0x41)
0000001D // Parancs hossza (29 bájt) 00000004 // Parancs azonosító (SubmitSM) 00000003 // Sorszám 00 // Forrás TON 00 // Forrás NPI 736F7572636500 // Forráscím ("source") 00 // Cél TON 00 // Cél NPI 36353433323100 // Címzett cím ("654321") 00 // ESM osztály 41 // Protokoll azonosító (PID=0x41: Felülírás) 00 // Prioritás flag 00 // Ütemezett kézbesítési idő 00 // Érvényességi időtartam 01 // Regisztrált kézbesítés (visszaigazolás kért) 00 // Felülírás, ha jelen van 00 // Adatkódolás (DCS=0x00) 00 // SM alapértelmezett üzenet azonosító 07 // SM hossz (7 szettes) C8329BFD06DDDF72 // Tartalom ("New OTP: 1234")
A PID és a TP-Protocol-Identifier (GSM) kapcsolata
A GSM hálózatokban a PID a TP-Protocol-Identifier
-re képeződik le az SMS TPDU-kban. Fontos leképezések:
- 0x41: Felülírási parancs (GSM 03.40 TP-PID=0x41)
- 0x42: Hangposta (GSM 03.40 TP-PID=0x42)
Gyakori buktatók
- Fenntartott PID értékek használata (pl. 0x7F) SMSC támogatás nélkül.
- A PID és a DCS eltérése (pl. UCS2 kódolás használata SIM adatokhoz).
- Hálózatspecifikus szabályok figyelmen kívül hagyása (pl. a PID=0x40 speciális SMSC konfigurációt igényelhet).
Összegzés
A PID mező elengedhetetlen a fejlett SMS-útválasztáshoz és -kezeléshez. Bár gyakran 0x00-ra (alapértelmezett) van állítva, speciális értékei lehetővé teszik olyan funkciókat, mint az üzenetfelülírás, SIM frissítések és hangposta értesítések. Mindig tesztelje a PID beállításokat az SMSC-vel, és a pontos viselkedésért tekintse meg a GSM 03.40 vagy SMPP v5.0 specifikációkat.
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