Pole SMPP DCS (a kódování znaků v SMPP)
Tato stránka poskytuje informace o tom, jak zakódovat pole SMPP DCS.
Jak Ozeki SMS Gateway kóduje pole SMPP DCS
Ve většině scénářů nemusíte pole DCS v SMPP PDU ručně konfigurovat. Ozeki SMS Gateway to udělá za vás. Chcete-li ovládat, jak Ozeki SMS Gateway provádí kódování, můžete nastavit výchozí abecedu v konfiguračním formuláři SMPP klienta (Obrázek 1).
V tomto formuláři můžete nastavit preferovanou znakovou sadu nebo můžete požádat Ozeki SMS Gateway, aby použil pevnou hodnotu pro parametr DCS v SMS PDU.
Co je pole SMPP DCS?
Data Coding Scheme (DCS) v SMPP (Short Message Peer-to-Peer Protocol) je 1bajtové pole v rámci SMPP PDU (Protocol Data Units). Definuje, jak je kódována zpráva, což umožňuje správnou interpretaci přijímající stranou. DCS specifikuje:
- Kódování znaků (např. GSM-7, UCS2, 8bitové binární)
- Třídu zprávy (např. Flash SMS)
- Příznaky komprese
Struktura DCS a bitová maska
DCS je bitová maska, kde každá skupina bitů slouží specifickému účelu:
| Bity | Popis |
|---|---|
| 7-6 | Skupina kódování: Určuje obecný typ kódování. |
| 5-4 | Abeceda: Specifikuje znakovou sadu (pokud Skupina kódování = 00). |
| 3-0 | Třída zprávy/Příznaky: Označuje typ zprávy (např. Flash) nebo kompresi. |
Hodnoty skupiny kódování
| Skupina kódování (Bity 7-6) | Popis |
|---|---|
| 00 | Obecné kódování dat (abeceda specifikována v bitech 5-4) |
| 01 | Rezervováno |
| 10 | UCS2 kódování (16bitové) |
| 11 | Kódování dat/Třída zprávy (např. Flash SMS) |
Příklad hodnot DCS
| DCS (Hex) | Popis | Binární |
|---|---|---|
| 0x00 | GSM-7 výchozí abeceda | 00000000 |
| 0x04 | 8bitová binární data | 00000100 |
| 0x08 | UCS2 (Unicode) | 00001000 |
| 0x10 | Flash SMS (GSM-7) | 00010000 |
| 0xF0 | Flash SMS (UCS2) | 11110000 |
Příklad SMPP PDU s DCS
Příklad 1: SubmitSM s kódováním GSM-7 (DCS=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 // Třída ESM
00 // ID protokolu
00 // Priorita
00 // Čas doručení
00 // Platnost
00 // Registrované doručení
00 // Nahradit, pokud existuje
00 // Kódování dat (DCS=0x00)
00 // Výchozí ID zprávy
07 // Délka zprávy (7 septetů)
C8329BFD06DDDF72 // Krátká zpráva ("Hello!")
Příklad 2: SubmitSM s kódováním UCS2 (DCS=0x08)
00000024 // Délka příkazu (36 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")
00 // Třída ESM
00 // ID protokolu
00 // Priorita
00 // Čas doručení
00 // Platnost
00 // Registrované doručení
00 // Nahradit, pokud existuje
08 // Kódování dat (DCS=0x08)
00 // Výchozí ID zprávy
0C // Délka zprávy (12 bajtů)
00480065006C006C006F0021 // "Hello!" v UCS2
Příklad 3: Flash SMS (DCS=0x10)
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")
00 // Třída ESM
00 // ID protokolu
00 // Priorita
00 // Čas doručení
00 // Platnost
00 // Registrované doručení
00 // Nahradit, pokud existuje
10 // Kódování dat (DCS=0x10: Flash SMS)
00 // Výchozí ID zprávy
07 // Délka zprávy (7 septetů)
C8329BFD06DDDF72 // Krátká zpráva ("Hello!")
Závěr
Pole DCS je klíčové pro zajištění správného kódování a zobrazení SMS zpráv. Implementace se mohou lišit, proto pro přesné detaily bitové masky konzultujte specifikaci SMPP (v3.4 nebo v5.0). Správné použití DCS zabraňuje chybám v kódování a zajišťuje kompatibilitu napříč SMSC.