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