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).

Figura 1 - Codarea DCS în SMPP

Î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