Kako staviti podatke u SMPP SM polje
U SMPP (Short Message Peer-to-Peer), sadržaj kratke poruke (SM) je stvarni tekst (ili binarni podaci) SMS poruke koja se prenosi. Kako bi se osigurala ispravna interpretacija ovog sadržaja, polje data_coding u PDU igra ključnu ulogu jer označava format kodiranja poruke.
Uobičajena SMPP kodiranja
Polje data_coding
je 1 bajt i obavještava SMSC kako interpretirati sadržaj poruke.
Hex | Decimal | Kodiranje | Opis |
---|---|---|---|
0x00 | 0 | GSM 7-bit zadano | Standardni SMS skup znakova |
0x01 | 1 | ASCII | 8-bit ASCII (Latin-1 podskup) |
0x03 | 3 | Latin-1 (ISO 8859-1) | Zapadnoeuropski skup znakova |
0x08 | 8 | UCS2 | Unicode (16-bit, big-endian) |
0x04 | 4 | Binarno | Neobrađeni 8-bitni binarni podaci |
Primjeri kodiranih poruka
1. GSM 7-bit (data_coding = 0x00)
Standardno SMS kodiranje. Učinkovito (do 160 znakova u jednoj poruci).
Tekst: "Hello" GSM 7-bit Packed: C8 32 9B FD 06
2. UCS2 (data_coding = 0x08)
Koristi se za nelatinske skripte (npr. arapski, kineski, emojije). Podržava 70 znakova po poruci.
Tekst: "مرحبا" UCS2 Hex: 0645 0631 062D 0628 0627 Bajtovi (hex): 06 45 06 31 06 2D 06 28 06 27
3. ASCII (data_coding = 0x01)
Samo osnovni latinični znakovi, manje učinkovito od GSM 7-bit.
Tekst: "Hello" ASCII Hex: 48 65 6C 6C 6F
Primjer SMPP PDU s UCS2 kodiranjem
Evo SMPP submit_sm
PDU-a koji prenosi Unicode poruku:
0000004B // Duljina naredbe (75 bajtova) 00000004 // ID naredbe (submit_sm) 00000000 // Status naredbe 00000001 // Redni broj 74657374 // service_type: "test" 01 // source_addr_ton: Međunarodni 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 bajtova 06450631 // Poruka u UCS2 (npr. "مر") 062D0628
Kodiranje i spajanje
Duge poruke se dijele na dijelove koristeći UDH (User Data Header). Ovo smanjuje maksimalnu veličinu sadržaja:
- GSM 7-bit: 160 → 153 znaka po dijelu
- UCS2: 70 → 67 znakova po dijelu
Primjer UDH-a za dio poruke:
05 00 03 CC 02 01 // 05: duljina zaglavlja // 00 03: IEI za spajanje // CC: Referenca poruke // 02: ukupno dijelova // 01: trenutni dio
Sažetak
SMPP nudi fleksibilne opcije kodiranja kroz polje data_coding
. Ispravno kodiranje osigurava kompatibilnost diljem globalnih mreža, posebno pri rukovanju višejezičnim tekstom ili binarnim podacima. Programeri moraju uskladiti vrste kodiranja sa sadržajem i očekivanim primateljima kako bi izbjegli oštećenje poruka.
Reference
- SMPP 3.4 Specifikacija
- GSM 03.38 Skup znakova
- Unicode Standard
More information
- Kako konfigurirati polje SMPP vrsta usluge
- Kako konfigurirati polja SMPP telefonskih brojeva
- Kako konfigurirati polje SMPP ESM klasa
- Kako konfigurirati polje SMPP PID
- Kako konfigurirati polje SMPP prioritet
- Kako konfigurirati polje SMPP planirano vrijeme
- Kako konfigurirati polje SMPP rok valjanosti
- Kako konfigurirati polje SMPP registrirana isporuka
- Kako konfigurirati polje SMPP zamijeni ako postoji
- Kako konfigurirati polje sm_default_msg_id
- Kako konfigurirati polje SMPP DCS
- Kako izračunati polje SMPP SM duljina
- Kako staviti podatke u SMPP SM polje