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.
More information
- How to configure the SMPP Service Type field
- How to configure the SMPP Phone Number fields
- How to configure the SMPP ESM Class field
- How to configure the SMPP PID field
- How to configure the SMPP Prioirity field
- How to configure the SMPP Scheduled Time field
- How to configure the SMPP Validity Period field
- How to configure the SMPP Registered Delivery field
- How to configure the SMPP Replace if Present field
- How to configure the sm_default_msg_id field
- How to configure the SMPP DCS field
- How to calculate the SMPP SM Length field
- How to put data into the SMPP SM field