Kako konfigurirati SMPP ESM Class polje
Postavke ESM klase u Ozeki SMS Gatewayu
Ozeki SMS Gateway omogućuje ručno konfiguriranje ESM class polja (Slika 1)
Što je ESM Class polje?
Extended Service Message (ESM) Class u SMPP-u je 1-bajtno polje u SMPP PDU-ovima koje kontrolira napredne značajke rukovanja porukama.
Koristi se u operacijama submit_sm, deliver_sm i data_sm kako bi se specificiralo:
- Vrste poruka (npr. SMS, potvrda o isporuci)
- Ponašanje potvrde o isporuci
- Prisutnost UDH-a (User Data Header)
- Prioritet poruke i zastavice za usmjeravanje
Struktura ESM Classa i bitmask
ESM class je bitmask gdje svaki bit ili grupa bitova aktivira specifične značajke:
| Bitovi | Opis |
|---|---|
| 7 | Način slanja poruka: 0 = Zadano, 1 = Datagram |
| 6 | Vrsta poruke: 0 = Normalna, 1 = Potvrda o isporuci |
| 5 | UDHI indikator: 1 = UDH prisutan u payloadu |
| 4 | Putanja odgovora: 1 = Zahtijevana putanja odgovora |
| 3-2 | Prioritet poruke (00 = Normalan, 01 = Interaktivan, 10 = Hitno, 11 = Hitno) |
| 1-0 | Rezervirano |
Uobičajene vrijednosti ESM Classa
| ESM (Hex) | Binarno | Opis |
|---|---|---|
| 0x00 | 00000000 | Zadano (bez posebnog rukovanja) |
| 0x04 | 00000100 | UDHI zastavica postavljena (UDH prisutan) |
| 0x08 | 00001000 | Zahtijevana putanja odgovora |
| 0x20 | 00100000 | Potvrda o isporuci (bit 6 = 1) |
| 0x30 | 00110000 | Hitni prioritet + potvrda o isporuci |
| 0x60 | 01100000 | Datagram način + potvrda o isporuci |
Ključni slučajevi korištenja
1. Spojeni SMS (UDHI zastavica)
Prilikom slanja višedijelnih poruka, postavite bit 5 (UDHI=1) i uključite User Data Header (UDH) u payload. Primjer za 3-dijelnu poruku:
ESM Class: 0x40 (binarno 01000000: UDHI omogućen)
Payload:
05 00 03 02 01 // UDH (5 bajtova: IEI=00, IEDL=03, dio 1 od 2)
C8329BFD06 // GSM-7 payload ("Hello")
2. Zahtjevi za potvrdom o isporuci
Postavite bit 6 (0x20) kako biste zatražili potvrdu o isporuci. Često se kombinira s poljem registered_delivery:
ESM Class: 0x20 (binarno 00100000) registered_delivery: 0x01 (zahtjev za potvrdom)
3. Poruke s prioritetom
Koristite bitove 3-2 kako biste postavili prioritet poruka. Primjer za hitni prioritet:
ESM Class: 0x10 (binarno 00010000: Hitni prioritet)
Primjeri SMPP PDU-a
Primjer 1: Osnovni SMS (ESM=0x00)
0000001D // Duljina naredbe (29 bajtova)
00000004 // ID naredbe (SubmitSM)
00000001 // Redni broj sekvence
00 // Izvorni TON
00 // Izvorni NPI
736F7572636500 // Izvorna adresa ("source")
00 // Odredišni TON
00 // Odredišni NPI
36353433323100 // Odredišna adresa ("654321")
00 // ESM Class (0x00: Zadano)
00 // ID protokola (PID)
00 // Prioritet
00 // Vrijeme planirane isporuke
00 // Valjanost razdoblja
00 // Registrirana isporuka
00 // Zamijeni-ako-postoji
00 // Kodiranje podataka (DCS=0x00)
00 // Zadani ID poruke
07 // Duljina poruke (7 septeta)
C8329BFD06DDDF72 // Payload ("Hello!")
Primjer 2: Spojeni SMS (ESM=0x40)
00000025 // Duljina naredbe (37 bajtova)
00000004 // ID naredbe (SubmitSM)
00000002 // Redni broj sekvence
00 // Izvorni TON
00 // Izvorni NPI
736F7572636500 // Izvorna adresa ("source")
00 // Odredišni TON
00 // Odredišni NPI
36353433323100 // Odredišna adresa ("654321")
40 // ESM Class (0x40: UDHI omogućen)
00 // ID protokola (PID)
00 // Prioritet
00 // Vrijeme planirane isporuke
00 // Valjanost razdoblja
00 // Registrirana isporuka
00 // Zamijeni-ako-postoji
00 // Kodiranje podataka (DCS=0x00)
00 // Zadani ID poruke
0C // Duljina poruke (12 bajtova)
0500030201C8329BFD06DDDF72 // UDH + "Hello" (Dio 1/2)
Primjer 3: Potvrda o isporuci (ESM=0x20)
0000001D // Duljina naredbe (29 bajtova)
00000004 // ID naredbe (SubmitSM)
00000003 // Redni broj sekvence
00 // Izvorni TON
00 // Izvorni NPI
736F7572636500 // Izvorna adresa ("source")
00 // Odredišni TON
00 // Odredišni NPI
36353433323100 // Odredišna adresa ("654321")
20 // ESM Class (0x20: Potvrda o isporuci)
00 // ID protokola (PID)
00 // Prioritet
00 // Vrijeme planirane isporuke
00 // Valjanost razdoblja
01 // Registrirana isporuka (zahtjev za potvrdom)
00 // Zamijeni-ako-postoji
00 // Kodiranje podataka (DCS=0x00)
00 // Zadani ID poruke
07 // Duljina poruke (7 septeta)
C8329BFD06DDDF72 // Payload ("Hello!")
Interakcije s drugim poljima
- UDHI (ESM) + DCS: Ako je UDHI postavljen, osigurajte da DCS podržava UDH (npr. GSM-7 ili 8-bitni).
- ESM Class + registered_delivery: Koristite oba kako biste eksplicitno zatražili potvrde o isporuci.
- Prioritetni bitovi + Prioritetna zastavica: Neki SMSC-ovi daju prioritet porukama na temelju ESM bitova umjesto zasebnog prioritetnog polja.
Uobičajene zamke
- Postavljanje UDHI-a bez uključivanja valjanog User Data Headera.
- Korištenje zastavica za potvrdu o isporuci (ESM=0x20) bez postavljanja
registered_delivery. - Nepodudaranje ESM prioritetnih bitova sa zasebnim poljem
priority_flag.
ESM klasa je moćan alat za kontrolu ponašanja poruka u SMPP-u. Njen dizajn s bitmaskom omogućuje značajke poput spajanja, potvrda i prioritizacije. Uvijek provjerite podršku SMSC-a za napredne zastavice i temeljito testirajte konfiguracije. Za autoritativne pojedinosti, pogledajte SMPP specifikaciju v3.4 ili v5.0.