Pole DCS w SMPP (i kodowanie znaków w SMPP)

Ta strona zawiera informacje na temat kodowania pola DCS w SMPP.

Jak Ozeki SMS Gateway koduje pole DCS w SMPP

W większości przypadków nie musisz ręcznie konfigurować pola DCS w PDU SMPP. Ozeki SMS Gateway robi to za Ciebie. Aby kontrolować sposób kodowania przez Ozeki SMS Gateway, możesz skonfigurować domyślny alfabet w formularzu konfiguracji klienta SMPP (Rysunek 1).

Rysunek 1 - Kodowanie DCS w SMPP

W tym formularzu możesz ustawić preferowany zestaw znaków lub poprosić Ozeki SMS Gateway o użycie stałej wartości dla parametru DCS w PDU SMS.

Co to jest pole DCS w SMPP?

Data Coding Scheme (DCS) w SMPP (Short Message Peer-to-Peer Protocol) to 1-bajtowe pole w PDU (Protocol Data Units) SMPP. Definiuje sposób kodowania ładunku wiadomości, umożliwiając prawidłową interpretację przez odbiorcę. DCS określa:

  • Kodowanie znaków (np. GSM-7, UCS2, 8-bitowe binarne)
  • Klasę wiadomości (np. Flash SMS)
  • Flagi kompresji

Struktura DCS i maska bitowa

DCS to maska bitowa, w której każda grupa bitów ma określone znaczenie:

Bity Opis
7-6 Grupa kodowania: Określa ogólny typ kodowania.
5-4 Alfabet: Określa zestaw znaków (jeśli Grupa kodowania = 00).
3-0 Klasa wiadomości/Flagi: Wskazuje typ wiadomości (np. Flash) lub kompresję.

Wartości grupy kodowania

Grupa kodowania (Bity 7-6) Opis
00 Ogólne kodowanie danych (alfabet określony w bitach 5-4)
01 Zarezerwowane
10 Kodowanie UCS2 (16-bitowe)
11 Kodowanie danych/Klasa wiadomości (np. Flash SMS)

Przykładowe wartości DCS

DCS (Hex) Opis Binarnie
0x00 Domyślny alfabet GSM-7 00000000
0x04 Dane binarne 8-bitowe 00000100
0x08 UCS2 (Unicode) 00001000
0x10 Flash SMS (GSM-7) 00010000
0xF0 Flash SMS (UCS2) 11110000

Przykładowe PDU SMPP z DCS

Przykład 1: SubmitSM z kodowaniem GSM-7 (DCS=0x00)

0000001D  // Długość polecenia (29 bajtów)
00000004  // ID polecenia (SubmitSM)
00000001  // Numer sekwencji
00        // Źródłowy TON
00        // Źródłowy NPI
736F7572636500  // Adres źródłowy ("source")
00        // Docelowy TON
00        // Docelowy NPI
36353433323100  // Adres docelowy ("654321")
00        // Klasa ESM
00        // ID protokołu
00        // Priorytet
00        // Czas dostawy
00        // Okres ważności
00        // Dostawa zarejestrowana
00        // Zastąp jeśli obecne
00        // Kodowanie danych (DCS=0x00)
00        // Domyślne ID wiadomości
07        // Długość wiadomości (7 septetów)
C8329BFD06DDDF72  // Krótka wiadomość ("Hello!")
    

Przykład 2: SubmitSM z kodowaniem UCS2 (DCS=0x08)

00000024  // Długość polecenia (36 bajtów)
00000004  // ID polecenia (SubmitSM)
00000002  // Numer sekwencji
00        // Źródłowy TON
00        // Źródłowy NPI
736F7572636500  // Adres źródłowy ("source")
00        // Docelowy TON
00        // Docelowy NPI
36353433323100  // Adres docelowy ("654321")
00        // Klasa ESM
00        // ID protokołu
00        // Priorytet
00        // Czas dostawy
00        // Okres ważności
00        // Dostawa zarejestrowana
00        // Zastąp jeśli obecne
08        // Kodowanie danych (DCS=0x08)
00        // Domyślne ID wiadomości
0C        // Długość wiadomości (12 bajtów)
00480065006C006C006F0021  // "Hello!" w UCS2
    

Przykład 3: Flash SMS (DCS=0x10)

0000001D  // Długość polecenia (29 bajtów)
00000004  // ID polecenia (SubmitSM)
00000003  // Numer sekwencji
00        // Źródłowy TON
00        // Źródłowy NPI
736F7572636500  // Adres źródłowy ("source")
00        // Docelowy TON
00        // Docelowy NPI
36353433323100  // Adres docelowy ("654321")
00        // Klasa ESM
00        // ID protokołu
00        // Priorytet
00        // Czas dostawy
00        // Okres ważności
00        // Dostawa zarejestrowana
00        // Zastąp jeśli obecne
10        // Kodowanie danych (DCS=0x10: Flash SMS)
00        // Domyślne ID wiadomości
07        // Długość wiadomości (7 septetów)
C8329BFD06DDDF72  // Krótka wiadomość ("Hello!")
    

Podsumowanie

Pole DCS jest kluczowe dla zapewnienia prawidłowego kodowania i wyświetlania wiadomości SMS. Implementacje mogą się różnić, dlatego należy zapoznać się ze specyfikacją SMPP (wersja 3.4 lub 5.0) w celu uzyskania szczegółowych informacji na temat masek bitowych. Prawidłowe użycie DCS zapobiega błędom kodowania i zapewnia kompatybilność między różnymi SMSC.

More information