Ako nakonfigurovať polia telefónneho čísla v SMPP
SMPP (Short Message Peer-to-Peer) je protokol používaný telekomunikačnými systémami na výmenu SMS správ medzi SMSC (Short Message Service Centers) a ESME (External Short Messaging Entities). Kľúčovou súčasťou protokolu je spôsob, akým kóduje telefónne čísla (zdrojové a cieľové adresy) v SMPP PDU (Protocol Data Unit).
Parametre adresy v SMPP
Kľúčové polia používané na definovanie telefónneho čísla v SMPP sú:
- addr_ton (Type of Number - Typ čísla)
- addr_npi (Numbering Plan Indicator - Indikátor číslovacieho plánu)
- address_range alebo source_addr/destination_addr
Typ čísla (TON)
Toto pole definuje formát čísla. Bežné hodnoty zahŕňajú:
| Hodnota | TON | Popis |
|---|---|---|
| 0 | Neznámy | Neznámy formát |
| 1 | Medzinárodný | Číslo obsahuje predvoľbu krajiny |
| 2 | Národný | Lokálny formát čísla |
| 5 | Alfanumerický | Používa sa pre mená odosielateľov ako "MojaSpoločnosť" |
Indikátor číslovacieho plánu (NPI)
Toto pole indikuje formát číslovania. Bežné hodnoty:
| Hodnota | NPI | Popis |
|---|---|---|
| 0 | Neznámy | Neznámy formát |
| 1 | ISDN (E.164) | Štandardný medzinárodný formát telefónneho čísla |
| 3 | Dáta | Dátová sieť (X.121) |
Kódovanie adresy
Pri kódovaní telefónneho čísla v SMPP systém odosiela číslo ako reťazec ukončený nulou v ASCII, sprevádzaný príslušnými hodnotami TON a NPI.
Príklad:
Telefónne číslo: +14155552671 TON: 1 (Medzinárodný) NPI: 1 (ISDN/E.164) Zakódované ako: 31 34 31 35 35 35 35 32 36 37 31 00 (ASCII "14155552671" + NULL)
Príklad SMPP PDU
Nižšie je príklad submit_sm PDU, ktorý obsahuje cieľové číslo:
0000003F // Dĺžka príkazu (63 bajtov)
00000004 // ID príkazu (submit_sm)
00000000 // Stav príkazu
00000001 // Poradové číslo
74657374 // service_type: "test"
01 // source_addr_ton: Medzinárodný
01 // source_addr_npi: ISDN
31323334 // source_addr: "1234" (ASCII)
00 // NULL terminator
01 // dest_addr_ton: Medzinárodný
01 // dest_addr_npi: ISDN
2B393138 // destination_addr: "+918123456789" (ASCII, bez +)
31323334
35363738
3900 // NULL terminator
00 // esm_class
00 // protocol_id
00 // priority_flag
00 // schedule_delivery_time (null)
00 // validity_period (null)
00 // registered_delivery
00 // replace_if_present_flag
00 // data_coding (predvolené GSM)
00 // sm_default_msg_id
0D // sm_length (13)
48656C6C // Krátka správa ("Hello, World!")
6F2C2057
6F726C64
2100
Príklad alfanumerického odosielateľa
Pri použití alfanumerického mena odosielateľa (bežné pre jednosmerné hromadné SMS):
Odosielateľ: "MojaZnačka" TON: 5 (Alfanumerický) NPI: 0 (Neznámy alebo irelevantný) Zakódované: ASCII reťazec "MojaZnačka" + NULL terminator
Dôležité poznámky
- Alfanumerické ID odosielateľa musia mať 11 znakov alebo menej.
- Alfanumerické adresy nie sú podporované vo všetkých krajinách.
- Vždy správne priraďte TON a NPI k formátu vašej adresy, aby ste sa vyhli problémom s smerovaním.
Záver
Kódovanie čísel v SMPP je kritické pre zabezpečenie správneho doručenia správ. Nastavením správnych hodnôt TON, NPI a správnym zakódovaním adresy v ASCII (ukončené nulou) môžu vývojári zabezpečiť kompatibilitu s SMSC a mobilnými sieťami.