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.
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