Kako vstaviti podatke v polje SM SMPP

V SMPP (Short Message Peer-to-Peer) je kratko sporočilo (SM) dejansko besedilo (ali binarni podatki) SMS sporočila, ki se prenaša. Za zagotovitev pravilne interpretacije te vsebine igra polje data_coding v PDU ključno vlogo, saj označuje obliko kodiranja sporočila.

Pogosta kodiranja SMPP

Polje data_coding je 1 bajt in obvešča SMSC, kako interpretirati vsebino sporočila.

HexDecimalnoKodiranjeOpis
0x000GSM 7-bit privzetoStandardni nabor znakov SMS
0x011ASCII8-bit ASCII (podmnožica Latin-1)
0x033Latin-1 (ISO 8859-1)Zahodnoevropski nabor znakov
0x088UCS2Unicode (16-bit, big-endian)
0x044BinarnoSurovi 8-bitni binarni podatki

Primeri kodiranih sporočil

1. GSM 7-bit (data_coding = 0x00)

Standardno kodiranje SMS. Učinkovito (do 160 znakov v enem sporočilu).

Besedilo: "Hello"
GSM 7-bit Pakirano: C8 32 9B FD 06

2. UCS2 (data_coding = 0x08)

Uporablja se za nelatinske pisave (npr. arabščina, kitajščina, emoji). Podpira 70 znakov na sporočilo.

Besedilo: "مرحبا"
UCS2 Hex: 0645 0631 062D 0628 0627
Bajti (hex): 06 45 06 31 06 2D 06 28 06 27

3. ASCII (data_coding = 0x01)

Le osnovni latinični znaki, manj prostorsko učinkovito kot GSM 7-bit.

Besedilo: "Hello"
ASCII Hex: 48 65 6C 6C 6F

Primer SMPP PDU z UCS2 kodiranjem

Tukaj je SMPP submit_sm PDU, ki prenaša Unicode sporočilo:

0000004B  // Dolžina ukaza (75 bajtov)
00000004  // ID ukaza (submit_sm)
00000000  // Status ukaza
00000001  // Zaporedna številka
74657374  // service_type: "test"
01        // source_addr_ton: Mednarodno
01        // source_addr_npi: ISDN
31323334  // source_addr: "1234" (ASCII)
00
01        // dest_addr_ton
01        // dest_addr_npi
35363738  // destination_addr: "5678"
00
00        // esm_class
00        // protocol_id
00        // priority_flag
00        // schedule_delivery_time
00        // validity_period
00        // registered_delivery
00        // replace_if_present_flag
08        // data_coding: UCS2
00        // sm_default_msg_id
0A        // sm_length: 10 bajtov
06450631  // Sporočilo v UCS2 (npr. "مر")
062D0628

Kodiranje in združevanje

Dolga sporočila so razdeljena na dele z UDH (User Data Header). To zmanjša največjo velikost nosilca:

  • GSM 7-bit: 160 → 153 znakov na del
  • UCS2: 70 → 67 znakov na del

Primer UDH za del sporočila:

05 00 03 CC 02 01
// 05: dolžina glave
// 00 03: Združevalni IEI
// CC: Referenca sporočila
// 02: skupni deli
// 01: trenutni del

Povzetek

SMPP ponuja prilagodljive možnosti kodiranja prek polja data_coding. Pravilno kodiranje zagotavlja združljivost med globalnimi omrežji, zlasti pri obdelavi večjezičnega besedila ali binarnih podatkov. Razvijalci morajo uskladiti vrste kodiranja z vsebino in pričakovanimi prejemniki, da se izognejo pokvarjenju sporočil.

Reference

  • SMPP 3.4 Specifikacija
  • GSM 03.38 Nabor znakov
  • Unicode Standard

More information