Jak nakonfigurovat pole ESM Class v SMPP
Nastavení ESM třídy v Ozeki SMS Gateway
Ozeki SMS Gateway umožňuje ruční konfiguraci pole ESM class (Obrázek 1)
Co je pole ESM Class?
Extended Service Message (ESM) Class v SMPP je 1bajtové pole v SMPP PDU, které řídí pokročilé funkce zpracování zpráv.
Používá se v operacích submit_sm, deliver_sm a data_sm k určení:
- Typu zpráv (např. SMS, doručenka)
- Chování doručenky
- Přítomnosti UDH (User Data Header)
- Priorit a směrovacích příznaků zpráv
Struktura ESM Class a bitová maska
ESM class je bitová maska, kde každý bit nebo skupina bitů aktivuje specifické funkce:
| Bity | Popis |
|---|---|
| 7 | Režim zasílání: 0 = Výchozí, 1 = Datagram |
| 6 | Typ zprávy: 0 = Normální, 1 = Doručenka |
| 5 | UDHI indikátor: 1 = UDH přítomno v obsahu |
| 4 | Cesta odpovědi: 1 = Vyžadována cesta odpovědi |
| 3-2 | Priorita zprávy (00 = Normální, 01 = Interaktivní, 10 = Naléhavá, 11 = Nouzová) |
| 1-0 | Rezervováno |
Běžné hodnoty ESM Class
| ESM (Hex) | Binárně | Popis |
|---|---|---|
| 0x00 | 00000000 | Výchozí (žádné speciální zpracování) |
| 0x04 | 00000100 | Nastaven příznak UDHI (UDH přítomno) |
| 0x08 | 00001000 | Vyžádána cesta odpovědi |
| 0x20 | 00100000 | Doručenka (bit 6 = 1) |
| 0x30 | 00110000 | Naléhavá priorita + doručenka |
| 0x60 | 01100000 | Datagramový režim + doručenka |
Klíčové případy použití
1. Skládané SMS (UDHI příznak)
Při odesílání vícedílných zpráv nastavte bit 5 (UDHI=1) a přidejte User Data Header (UDH) do obsahu. Příklad pro 3dílnou zprávu:
ESM Class: 0x40 (binárně 01000000: UDHI povoleno)
Obsah:
05 00 03 02 01 // UDH (5 bajtů: IEI=00, IEDL=03, část 1 z 2)
C8329BFD06 // GSM-7 obsah ("Ahoj")
2. Žádosti o doručenku
Nastavte bit 6 (0x20) pro vyžádání doručenky. Často kombinováno s polem registered_delivery:
ESM Class: 0x20 (binárně 00100000) registered_delivery: 0x01 (žádost o doručenku)
3>Prioritní zasílání zpráv
Použijte bity 3-2 k nastavení priority zpráv. Příklad pro naléhavou prioritu:
ESM Class: 0x10 (binárně 00010000: Naléhavá priorita)
Příklady SMPP PDU
Příklad 1: Základní SMS (ESM=0x00)
0000001D // Délka příkazu (29 bajtů)
00000004 // ID příkazu (SubmitSM)
00000001 // Pořadové číslo
00 // Zdrojový TON
00 // Zdrojový NPI
736F7572636500 // Zdrojová adresa ("source")
00 // Cílový TON
00 // Cílový NPI
36353433323100 // Cílová adresa ("654321")
00 // ESM Class (0x00: Výchozí)
00 // Protokol ID (PID)
00 // Priorita
00 // Čas plánovaného doručení
00 // Platnost
00 // Registrované doručení
00 // Nahradit-pokud-přítomno
00 // Kódování dat (DCS=0x00)
00 // Výchozí ID zprávy SM
07 // Délka SM (7 septetů)
C8329BFD06DDDF72 // Obsah ("Ahoj!")
Příklad 2: Skládané SMS (ESM=0x40)
00000025 // Délka příkazu (37 bajtů)
00000004 // ID příkazu (SubmitSM)
00000002 // Pořadové číslo
00 // Zdrojový TON
00 // Zdrojový NPI
736F7572636500 // Zdrojová adresa ("source")
00 // Cílový TON
00 // Cílový NPI
36353433323100 // Cílová adresa ("654321")
40 // ESM Class (0x40: UDHI povoleno)
00 // Protokol ID (PID)
00 // Priorita
00 // Čas plánovaného doručení
00 // Platnost
00 // Registrované doručení
00 // Nahradit-pokud-přítomno
00 // Kódování dat (DCS=0x00)
00 // Výchozí ID zprávy SM
0C // Délka SM (12 bajtů)
0500030201C8329BFD06DDDF72 // UDH + "Ahoj" (Část 1/2)
Příklad 3: Doručenka (ESM=0x20)
0000001D // Délka příkazu (29 bajtů)
00000004 // ID příkazu (SubmitSM)
00000003 // Pořadové číslo
00 // Zdrojový TON
00 // Zdrojový NPI
736F7572636500 // Zdrojová adresa ("source")
00 // Cílový TON
00 // Cílový NPI
36353433323100 // Cílová adresa ("654321")
20 // ESM Class (0x20: Doručenka)
00 // Protokol ID (PID)
00 // Priorita
00 // Čas plánovaného doručení
00 // Platnost
01 // Registrované doručení (žádost o doručenku)
00 // Nahradit-pokud-přítomno
00 // Kódování dat (DCS=0x00)
00 // Výchozí ID zprávy SM
07 // Délka SM (7 septetů)
C8329BFD06DDDF72 // Obsah ("Ahoj!")
Interakce s dalšími poli
- UDHI (ESM) + DCS: Pokud je UDHI nastaveno, ujistěte se, že DCS podporuje UDH (např. GSM-7 nebo 8-bit).
- ESM Class + registered_delivery: Použijte obojí k explicitnímu vyžádání doručenky.
- Prioritní bity + Prioritní příznak: Některé SMSC upřednostňují zprávy na základě bitů ESM místo samostatného pole priority.
Běžné problémy
- Nastavení UDHI bez zahrnutí platného User Data Header.
- Použití příznaků doručenky (ESM=0x20) bez nastavení
registered_delivery. - Nesoulad prioritních bitů ESM s samostatným polem
priority_flag.
Třída ESM je výkonný nástroj pro ovládání chování zpráv v SMPP. Její bitová maska umožňuje funkce jako spojování, potvrzení o doručení a priorizaci. Vždy ověřte podporu pokročilých příznaků u SMSC a důkladně testujte konfigurace. Pro autoritativní detaily se obraťte na specifikaci SMPP v3.4 nebo v5.0.