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)

Slika 1 - Postavka ESM class polja

Š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
Napomena: Mnogi SMSC-ovi ignoriraju rezervirane bitove (1-0). Razine prioriteta (bitovi 3-2) ovise o mreži.

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.
Zaključak

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.

More information