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.
Hex | Desiatkové | Kódovanie | Popis |
---|---|---|---|
0x00 | 0 | GSM 7-bit default | Štandardná znaková sada SMS |
0x01 | 1 | ASCII | 8-bit ASCII (podmnožina Latin-1) |
0x03 | 3 | Latin-1 (ISO 8859-1) | Západnoeurópska znaková sada |
0x08 | 8 | UCS2 | Unicode (16-bit, big-endian) |
0x04 | 4 | Binárne | Surové 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
- 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