Cum să configurezi câmpurile pentru numerele de telefon în SMPP
SMPP (Short Message Peer-to-Peer) este un protocol folosit de sistemele de telecomunicații pentru a schimba mesaje SMS între SMSC (Centre de Servicii pentru Mesaje Scurt) și ESME (Entități Externe pentru Mesagerie Scurtă). O componentă cheie a protocolului este modul în care codifică numerele de telefon (adresele sursă și destinație) în PDU-ul SMPP (Unitate de Date Protocol).
Parametrii de Adresă în SMPP
Câmpurile cheie folosite pentru a defini un număr de telefon în SMPP sunt:
- addr_ton (Tipul de Număr)
- addr_npi (Indicatorul Planului de Numerotare)
- address_range sau source_addr/destination_addr
Tipul de Număr (TON)
Acest câmp definește formatul numărului. Valori comune includ:
| Valoare | TON | Descriere |
|---|---|---|
| 0 | Necunoscut | Format necunoscut |
| 1 | Internațional | Număr include codul de țară |
| 2 | Național | Format local |
| 5 | Alfanumeric | Folosit pentru nume de expeditori precum "CompaniaMea" |
Indicatorul Planului de Numerotare (NPI)
Acest câmp indică formatul de numerotare. Valori comune:
| Valoare | NPI | Descriere |
|---|---|---|
| 0 | Necunoscut | Format necunoscut |
| 1 | ISDN (E.164) | Format standard internațional pentru numere de telefon |
| 3 | Date | Rețea de date (X.121) |
Codificarea unei Adrese
Când codifici un număr de telefon în SMPP, sistemul trimite numărul ca un șir ASCII terminat cu NULL, însoțit de valorile TON și NPI corespunzătoare.
Exemplu:
Număr de telefon: +14155552671 TON: 1 (Internațional) NPI: 1 (ISDN/E.164) Codificat ca: 31 34 31 35 35 35 35 32 36 37 31 00 (ASCII "14155552671" + NULL)
Exemplu de PDU SMPP
Mai jos este un exemplu de PDU submit_sm care include un număr de destinație:
0000003F // Lungimea Comenzii (63 de octeți)
00000004 // ID-ul Comenzii (submit_sm)
00000000 // Starea Comenzii
00000001 // Numărul de Secvență
74657374 // service_type: "test"
01 // source_addr_ton: Internațional
01 // source_addr_npi: ISDN
31323334 // source_addr: "1234" (ASCII)
00 // Terminator NULL
01 // dest_addr_ton: Internațional
01 // dest_addr_npi: ISDN
2B393138 // destination_addr: "+918123456789" (ASCII, fără +)
31323334
35363738
3900 // Terminator NULL
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 (implicit GSM)
00 // sm_default_msg_id
0D // sm_length (13)
48656C6C // Mesaj scurt ("Hello, World!")
6F2C2057
6F726C64
2100
Exemplu de Expeditor Alfanumeric
Când folosești un nume de expeditor alfanumeric (comun pentru SMS-uri masive unidirecționale):
Expeditor: "MarcaMea" TON: 5 (Alfanumeric) NPI: 0 (Necunoscut sau irelevant) Codificat: șir ASCII "MarcaMea" + terminator NULL
Note Importante
- ID-urile alfanumerice ale expeditorilor trebuie să aibă maxim 11 caractere.
- Adresele alfanumerice nu sunt acceptate în toate țările.
- Asigură-te că TON și NPI corespund corect cu formatul adresei pentru a evita probleme de rutare.
Concluzie
Codificarea numerelor în SMPP este esențială pentru asigurarea livrării corecte a mesajelor. Prin setarea corectă a TON, NPI și codificarea adresei corect în ASCII (terminată cu NULL), dezvoltatorii pot asigura compatibilitatea cu SMSC-urile și rețelele mobile.