Kako izračunati SMPP SM Length polje
U SMPP protokolu, polje sm_length
određuje dužinu u bajtima sadržaja kratke poruke koji se nalazi u polju short_message
PDU-ova kao što su submit_sm
, deliver_sm
i data_sm
.
Detalji polja
- Naziv polja: sm_length
- Veličina: 1 bajt (neoznačen ceo broj)
- Opseg: 0–254 (maksimum dozvoljen u SMPP 3.4)
- Lokacija: Neposredno ispred polja
short_message
- Svrha: Označava broj bajtova u
short_message
sadržaju
Ključno ponašanje
Vrednost sm_length
zavisi od korišćenog kodiranja:
Kodiranje | Karaktera po SMS-u | Veličina u bajtovima | Napomene |
---|---|---|---|
GSM 7-bit | Do 160 | Do 140 | Pakirani bitovi; stvarna veličina u bajtovima zavisi od sadržaja |
UCS2 | Do 70 | 2 × broj karaktera | Svaki karakter je 2 bajta |
8-bit binarno | N/A | Do 140 | Sirova dužina u bajtovima |
Primer: ASCII poruka
Jednostavna poruka koristeći podrazumevano 7-bitno kodiranje:
Tekst: "Hello" Kodiranje: GSM 7-bit Pakirani bajtovi (Hex): C8 32 9B FD 06 Dužina u bajtovima: 5 sm_length: 5
Primer: UCS2 kodirana poruka
Unikod poruka koristeći UCS2 kodiranje (data_coding = 0x08):
Tekst: "Hi" UCS2 Hex: 0048 0069 Bajt niz: 00 48 00 69 Dužina u bajtovima: 4 sm_length: 4
SMPP PDU primer (submit_sm)
0000003B // Dužina komande (59 bajtova) 00000004 // ID komande: submit_sm 00000000 // Status komande 00000001 // Redni broj 00 // service_type 01 // source_addr_ton 01 // source_addr_npi 31323334 // source_addr ("1234") 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 04 // sm_length: 4 00480069 // short_message: "Hi" u UCS2
Važne napomene
sm_length
se odnosi na dužinu u bajtovima, ne na broj karaktera.- Ako je sadržaj poruke podeljen na više poruka (konkatenacija), svaki deo ima svoj
sm_length
. - Ne mešati
sm_length
sa ukupnom dužinom poruke (PDU dužina).
Podela i spajanje poruka
Kada poruka premašuje maksimalnu veličinu sadržaja, deli se na delove koristeći UDH (User Data Header). sm_length
u takvim slučajevima uključuje i UDH:
Primer: UDH (6 bajtova) + 67 UCS2 bajtova = 73 sm_length = 73
Zaključak
Polje sm_length
je ključno u SMPP porukama jer definiše koliko bajtova SMSC treba da pročita za stvarni sadržaj poruke. Razumevanje kako kodiranje utiče na ovo polje obezbeđuje tačnu i uspešnu isporuku poruka.
Reference
- SMPP 3.4 Specifikacija
- GSM 03.38 Skup karaktera
- Unikod UCS2 Kodiranje
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