Ako vložiť dáta do poľa SM v SMPP

V SMPP (Short Message Peer-to-Peer) je užitočné zaťaženie krátkej správy (SM) skutočný text (alebo binárne dáta) SMS správy, ktorá sa prenáša. Na zabezpečenie správnej interpretácie tohto obsahu zohráva pole data_coding v PDU kritickú úlohu tým, že označuje formát kódovania správy.

Bežné kódovania SMPP

Pole data_coding má 1 bajt a informuje SMSC o tom, ako interpretovať užitočné zaťaženie správy.

HexDesiatkovéKódovaniePopis
0x000GSM 7-bit defaultŠtandardná znaková sada SMS
0x011ASCII8-bit ASCII (podmnožina Latin-1)
0x033Latin-1 (ISO 8859-1)Západnoeurópska znaková sada
0x088UCS2Unicode (16-bit, big-endian)
0x044BinárneSurové 8-bit binárne dáta

Príklady zakódovaných správ

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

Štandardné kódovanie SMS. Efektívne (až 160 znakov v jednej správe).

Text: "Hello"
GSM 7-bit Packed: C8 32 9B FD 06

2. UCS2 (data_coding = 0x08)

Používa sa pre nelatinské písma (napr. arabské, čínske, emoji). Podporuje 70 znakov na správu.

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

3. ASCII (data_coding = 0x01)

Základné latinské znaky, menej priestorovo efektívne ako GSM 7-bit.

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

Príklad PDU SMPP s kódovaním UCS2

Tu je PDU submit_sm SMPP nesúce Unicode správu:

0000004B  // Dĺžka príkazu (75 bajtov)
00000004  // ID príkazu (submit_sm)
00000000  // Stav príkazu
00000001  // Poradové číslo
74657374  // service_type: "test"
01        // source_addr_ton: Medzinárodné
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  // Správa v UCS2 (napr. "مر")
062D0628

Kódovanie a zreťazenie

Dlhé správy sa rozdelia na časti pomocou UDH (User Data Header). Toto znižuje maximálnu veľkosť užitočného zaťaženia:

  • GSM 7-bit: 160 → 153 znakov na časť
  • UCS2: 70 → 67 znakov na časť

Príklad UDH pre časť správy:

05 00 03 CC 02 01
// 05: dĺžka hlavičky
// 00 03: Concatenation IEI
// CC: Referencia správy
// 02: celkový počet častí
// 01: aktuálna časť

Zhrnutie

SMPP poskytuje flexibilné možnosti kódovania prostredníctvom poľa data_coding. Správne kódovanie zabezpečuje kompatibilitu medzi globálnymi sieťami, najmä pri spracovaní viacjazyčného textu alebo binárnych dát. Vývojári musia zosúladiť typy kódovania s obsahom a očakávanými príjemcami, aby sa vyhli poškodeniu správ.

Referencie

  • Špecifikácia SMPP 3.4
  • Znaková sada GSM 03.38
  • Štandard Unicode

More information