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:

ValoareTONDescriere
0NecunoscutFormat necunoscut
1InternaționalNumăr include codul de țară
2NaționalFormat local
5AlfanumericFolosit pentru nume de expeditori precum "CompaniaMea"

Indicatorul Planului de Numerotare (NPI)

Acest câmp indică formatul de numerotare. Valori comune:

ValoareNPIDescriere
0NecunoscutFormat necunoscut
1ISDN (E.164)Format standard internațional pentru numere de telefon
3DateReț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