Kako izračunati polje SMPP SM Length
V protokolu SMPP polje sm_length
določa dolžino v bajtih vsebine kratkega sporočila, ki je vključena v polje short_message
PDU-jev, kot so submit_sm
, deliver_sm
in data_sm
.
Podrobnosti polja
- Ime polja: sm_length
- Velikost: 1 bajt (neznano število)
- Obseg: 0–254 (največ, kar dovoljuje SMPP 3.4)
- Lokacija: Neposredno pred poljem
short_message
- Namen: Označuje število bajtov v nosilcu
short_message
Ključno vedenje
Vrednost sm_length
je odvisna od uporabljenega kodiranja:
Kodiranje | Znakov na SMS | Velikost v bajtih | Opombe |
---|---|---|---|
GSM 7-bit | Do 160 | Do 140 | Pakirani biti; dejanska velikost v bajtih je odvisna od vsebine |
UCS2 | Do 70 | 2 × število znakov | Vsak znak je 2 bajta |
8-bitno binarno | N/A | Do 140 | Surova dolžina v bajtih |
Primer: Sporočilo v ASCII
Preprost sporočil z uporabo privzetega 7-bitnega kodiranja:
Besedilo: "Hello" Kodiranje: GSM 7-bit Pakirani bajti (Hex): C8 32 9B FD 06 Dolžina v bajtih: 5 sm_length: 5
Primer: Sporočilo kodirano z UCS2
Unicode sporočilo z uporabo kodiranja UCS2 (data_coding = 0x08):
Besedilo: "Hi" UCS2 Hex: 0048 0069 Bajtni niz: 00 48 00 69 Dolžina v bajtih: 4 sm_length: 4
Primer SMPP PDU (submit_sm)
0000003B // Dolžina ukaza (59 bajtov) 00000004 // ID ukaza: submit_sm 00000000 // Status ukaza 00000001 // Zaporedna številka 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" v UCS2
Pomembne opombe
sm_length
se nanaša na dolžino v bajtih, ne na število znakov.- Če je vsebina sporočila razdeljena na več sporočil (združevanje), ima vsak del svoj
sm_length
. - Ne zamenjujte
sm_length
s skupno dolžino sporočila (dolžina PDU).
Razdeljevanje in združevanje sporočil
Ko sporočilo presega največjo dovoljeno velikost nosilca, se razdeli na dele z uporabo UDH (User Data Header). V takih primerih sm_length
vključuje tudi UDH:
Primer: UDH (6 bajtov) + 67 UCS2 bajtov = 73 sm_length = 73
Zaključek
Polje sm_length
je ključnega pomena pri sporočilih SMPP, saj določa, koliko bajtov naj SMSC prebere za dejansko telo sporočila. Razumevanje, kako kodiranje vpliva na to polje, zagotavlja natančno in uspešno dostavo sporočil.
Reference
- Specifikacija SMPP 3.4
- Nabor znakov GSM 03.38
- Kodiranje Unicode UCS2
More information
- Kako konfigurirati polje Vrsta storitve SMPP
- Kako konfigurirati polja Telefonske številke SMPP
- Kako konfigurirati polje SMPP ESM Class
- Kako konfigurirati polje SMPP PID
- Kako konfigurirati polje SMPP Prioritetnost
- Kako konfigurirati polje SMPP Načrtovani čas
- Kako konfigurirati polje SMPP Veljavnost
- Kako konfigurirati polje SMPP Registrirana dostava
- Kako konfigurirati polje SMPP Zamenjaj, če je prisoten
- Kako konfigurirati polje sm_default_msg_id
- Kako konfigurirati polje SMPP DCS
- Kako izračunati polje SMPP Dolžina SM
- Kako vnesti podatke v polje SMPP SM