Câmpul DCS din SMPP (și codarea caracterelor în SMPP)
Această pagină oferă informații despre cum să codificați câmpul DCS din SMPP.
Cum codifică Ozeki SMS Gateway câmpul DCS din SMPP
În majoritatea scenariilor, nu este necesar să configurați manual câmpul DCS al PDU-urilor SMPP. Ozeki SMS Gateway face acest lucru pentru dumneavoastră. Pentru a controla modul în care Ozeki SMS Gateway efectuează codarea, puteți configura alfabetul implicit în formularul de configurare a clientului SMPP (Figura 1).
În acest formular, puteți seta setul de caractere preferat sau puteți cere Ozeki SMS Gateway să folosească o valoare fixă pentru parametrul DCS în PDU-ul SMS.
Ce este câmpul DCS din SMPP?
Schema de codare a datelor (DCS) în SMPP (Protocolul Peer-to-Peer pentru Mesaje Scurte) este un câmp de 1 octet din cadrul PDU-urilor SMPP (Unități de Date de Protocol). Acesta definește modul în care este codată încărcătura mesajului, permițând interpretarea corectă de către entitatea receptoră. DCS specifică:
- Codarea caracterelor (de ex., GSM-7, UCS2, binar pe 8 biți)
- Clasa mesajului (de ex., SMS Flash)
- Indicatori de compresie
Structura și masca de biți a DCS
DCS este o mască de biți în care fiecare grup de biți are un scop specific:
| Biți | Descriere |
|---|---|
| 7-6 | Grupul de codare: Determină tipul general de codare. |
| 5-4 | Alfabet: Specifică setul de caractere (dacă Grupul de codare = 00). |
| 3-0 | Clasa mesajului/Indicatori: Indică tipul mesajului (de ex., Flash) sau compresia. |
Valori ale Grupului de codare
| Grupul de codare (Biții 7-6) | Descriere |
|---|---|
| 00 | Codare generală a datelor (alfabet specificat în biții 5-4) |
| 01 | Rezervat |
| 10 | Codare UCS2 (16 biți) |
| 11 | Codare a datelor/Clasă mesaj (de ex., SMS Flash) |
Exemple de valori DCS
| DCS (Hex) | Descriere | Binar |
|---|---|---|
| 0x00 | Alfabet implicit GSM-7 | 00000000 |
| 0x04 | Date binare pe 8 biți | 00000100 |
| 0x08 | UCS2 (Unicode) | 00001000 |
| 0x10 | SMS Flash (GSM-7) | 00010000 |
| 0xF0 | SMS Flash (UCS2) | 11110000 |
Exemple de PDU-uri SMPP cu DCS
Exemplul 1: SubmitSM cu codare GSM-7 (DCS=0x00)
0000001D // Lungimea comenzii (29 de octeți)
00000004 // ID-ul comenzii (SubmitSM)
00000001 // Numărul de secvență
00 // Sursa TON
00 // Sursa NPI
736F7572636500 // Adresa sursă ("source")
00 // Destinația TON
00 // Destinația NPI
36353433323100 // Adresa destinație ("654321")
00 // Clasa ESM
00 // ID-ul protocolului
00 // Prioritatea
00 // Ora de livrare programată
00 // Perioada de valabilitate
00 // Livrare înregistrată
00 // Înlocuire-dacă-prezentă
00 // Codarea datelor (DCS=0x00)
00 // ID-ul implicit al mesajului SM
07 // Lungimea SM (7 septeți)
C8329BFD06DDDF72 // Mesaj scurt ("Hello!")
Exemplul 2: SubmitSM cu codare UCS2 (DCS=0x08)
00000024 // Lungimea comenzii (36 de octeți)
00000004 // ID-ul comenzii (SubmitSM)
00000002 // Numărul de secvență
00 // Sursa TON
00 // Sursa NPI
736F7572636500 // Adresa sursă ("source")
00 // Destinația TON
00 // Destinația NPI
36353433323100 // Adresa destinație ("654321")
00 // Clasa ESM
00 // ID-ul protocolului
00 // Prioritatea
00 // Ora de livrare programată
00 // Perioada de valabilitate
00 // Livrare înregistrată
00 // Înlocuire-dacă-prezentă
08 // Codarea datelor (DCS=0x08)
00 // ID-ul implicit al mesajului SM
0C // Lungimea SM (12 octeți)
00480065006C006C006F0021 // "Hello!" în UCS2
Exemplul 3: SMS Flash (DCS=0x10)
0000001D // Lungimea comenzii (29 de octeți)
00000004 // ID-ul comenzii (SubmitSM)
00000003 // Numărul de secvență
00 // Sursa TON
00 // Sursa NPI
736F7572636500 // Adresa sursă ("source")
00 // Destinația TON
00 // Destinația NPI
36353433323100 // Adresa destinație ("654321")
00 // Clasa ESM
00 // ID-ul protocolului
00 // Prioritatea
00 // Ora de livrare programată
00 // Perioada de valabilitate
00 // Livrare înregistrată
00 // Înlocuire-dacă-prezentă
10 // Codarea datelor (DCS=0x10: SMS Flash)
00 // ID-ul implicit al mesajului SM
07 // Lungimea SM (7 septeți)
C8329BFD06DDDF72 // Mesaj scurt ("Hello!")
Concluzie
Câmpul DCS este esențial pentru a asigura că mesajele SMS sunt codate și afișate corect. Implementările pot varia, așa că consultați specificația SMPP (v3.4 sau v5.0) pentru detalii precise despre masca de biți. Utilizarea corectă a DCS evită erorile de codare și asigură compatibilitatea între SMSC-uri.