Jak nakonfigurovat pole pro telefonní čísla v SMPP

SMPP (Short Message Peer-to-Peer) je protokol používaný telekomunikačními systémy pro výměnu SMS zpráv mezi SMSC (Short Message Service Centers) a ESME (External Short Messaging Entities). Klíčovou součástí protokolu je způsob, jakým kóduje telefonní čísla (zdrojové a cílové adresy) v SMPP PDU (Protocol Data Unit).

Parametry adresy v SMPP

Hlavní pole používaná k definování telefonního čísla v SMPP jsou:

  • addr_ton (Type of Number)
  • addr_npi (Numbering Plan Indicator)
  • address_range nebo source_addr/destination_addr

Type of Number (TON)

Toto pole definuje formát čísla. Běžné hodnoty zahrnují:

HodnotaTONPopis
0NeznámýNeznámý formát
1MezinárodníČíslo obsahuje kód země
2NárodníMístní formát čísla
5AlfanumerickýPoužívá se pro jména odesílatelů jako "MojeFirma"

Numbering Plan Indicator (NPI)

Toto pole určuje formát číslování. Běžné hodnoty:

HodnotaNPIPopis
0NeznámýNeznámý formát
1ISDN (E.164)Standardní mezinárodní formát telefonního čísla
3DataDatová síť (X.121)

Kódování adresy

Při kódování telefonního čísla v SMPP systém odešle číslo jako řetězec ukončený nulou v ASCII, doplněný o příslušné hodnoty TON a NPI.

Příklad:

Telefonní číslo: +14155552671
TON: 1 (Mezinárodní)
NPI: 1 (ISDN/E.164)
Zakódováno jako: 31 34 31 35 35 35 35 32 36 37 31 00  (ASCII "14155552671" + NULL)

Příklad SMPP PDU

Níže je příklad submit_sm PDU, který obsahuje cílové číslo:

0000003F  // Délka příkazu (63 bajtů)
00000004  // ID příkazu (submit_sm)
00000000  // Stav příkazu
00000001  // Pořadové číslo
74657374  // service_type: "test"
01        // source_addr_ton: Mezinárodní
01        // source_addr_npi: ISDN
31323334  // source_addr: "1234" (ASCII)
00        // NULL terminator
01        // dest_addr_ton: Meziná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 (default GSM)
00        // sm_default_msg_id
0D        // sm_length (13)
48656C6C  // Krátká zpráva ("Hello, World!")
6F2C2057
6F726C64
2100

Příklad alfanumerického odesílatele

Při použití alfanumerického jména odesílatele (běžné pro jednosměrné hromadné SMS):

Odesílatel: "MojeZnačka"
TON: 5 (Alfanumerický)
NPI: 0 (Neznámý nebo irelevantní)
Zakódováno: ASCII řetězec "MojeZnačka" + NULL terminator

Důležité poznámky

  • Alfanumerická ID odesílatele musí mít 11 nebo méně znaků.
  • Alfanumerické adresy nejsou podporovány ve všech zemích.
  • Vždy správně přiřaďte TON a NPI k formátu adresy, abyste předešli problémům s směrováním.

Závěr

Kódování čísel v SMPP je klíčové pro zajištění správného doručení zpráv. Nastavením správných hodnot TON, NPI a správným kódováním adresy v ASCII (ukončené nulou) mohou vývojáři zajistit kompatibilitu s SMSC a mobilními sítěmi.

More information