Kako postaviti podatke u SMPP SM polje
U SMPP (Short Message Peer-to-Peer), Short Message (SM) sadržaj je stvarni tekst (ili binarni podaci) SMS poruke koja se prenosi. Da 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 obaveštava SMSC kako da interpretira sadržaj poruke.
Hex | Decimal | Kodiranje | Opis |
---|---|---|---|
0x00 | 0 | GSM 7-bit podrazumevano | Standardni SMS skup karaktera |
0x01 | 1 | ASCII | 8-bit ASCII (Latin-1 podskup) |
0x03 | 3 | Latin-1 (ISO 8859-1) | Zapadnoevropski skup karaktera |
0x08 | 8 | UCS2 | Unicode (16-bit, big-endian) |
0x04 | 4 | Binarno | Neobrađeni 8-bit binarni podaci |
Primeri kodiranih poruka
1. GSM 7-bit (data_coding = 0x00)
Standardno SMS kodiranje. Efikasno (do 160 karaktera u jednoj poruci).
Tekst: "Hello" GSM 7-bit Packed: C8 32 9B FD 06
2. UCS2 (data_coding = 0x08)
Koristi se za ne-latinučke skripte (npr. arapski, kineski, emoji). Podržava 70 karaktera 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čki karakteri, manje efikasno u pogledu prostora od GSM 7-bit.
Tekst: "Hello" ASCII Hex: 48 65 6C 6C 6F
SMPP PDU primer sa UCS2 kodiranjem
Evo SMPP submit_sm
PDU-a koji nosi Unicode poruku:
0000004B // Dužina komande (75 bajtova) 00000004 // ID komande (submit_sm) 00000000 // Status komande 00000001 // Redni broj sekvence 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 dele na delove koristeći UDH (User Data Header). Ovo smanjuje maksimalnu veličinu sadržaja:
- GSM 7-bit: 160 → 153 karaktera po delu
- UCS2: 70 → 67 karaktera po delu
Primer UDH-a za deo poruke:
05 00 03 CC 02 01 // 05: dužina zaglavlja // 00 03: IEI za spajanje // CC: Referenca poruke // 02: ukupno delova // 01: trenutni deo
Sažetak
SMPP pruža fleksibilne opcije kodiranja kroz polje data_coding
. Ispravno kodiranje osigurava kompatibilnost širom globalnih mreža, posebno kada se radi sa višejezičkim tekstom ili binarnim podacima. Programeri moraju uskladiti tipove kodiranja sa sadržajem i očekivanim primalacima kako bi izbegli oštećenje poruka.
Reference
- SMPP 3.4 Specifikacija
- GSM 03.38 Skup karaktera
- Unicode Standard
More information
- Kako konfigurisati SMPP Tip usluge polje
- Kako konfigurisati SMPP polja za telefonske brojeve
- Kako konfigurisati SMPP ESM Class polje
- Kako konfigurisati SMPP PID polje
- Kako konfigurisati SMPP Prioritet polje
- Kako konfigurisati SMPP Zakazano vreme polje
- Kako konfigurisati SMPP Period važenja polje
- Kako konfigurisati SMPP Registrovana isporuka polje
- Kako konfigurisati SMPP Zameni ako postoji polje
- Kako konfigurisati sm_default_msg_id polje
- Kako konfigurisati SMPP DCS polje
- Kako izračunati SMPP SM Dužina polje
- Kako uneti podatke u SMPP SM polje