BroadNet
кодирование SMSКодирование данных

Схема кодирования данных (DCS)

Обновлено 2 мин чтенияна основе стандартов
Прямой ответ

Схема кодирования данных (DCS) — это однооктетное поле (data_coding в SMPP, TP-DCS в GSM), сообщающее сети, как закодировано тело сообщения и опционально его класс. Три значимых значения — 0x00 (GSM-7 по умолчанию), 0x04 (8-битный двоичный) и 0x08 (UCS-2/Unicode). Более старшие группы кодирования добавляют поведение класса сообщения и flash.

§01

Три значения, используемые ежедневно

Почти для всего текстового трафика A2P DCS равен одному из трёх значений. 0x00 выбирает алфавит по умолчанию GSM-7. 0x04 выбирает 8-битный двоичный формат (используется для OTA, WAP push и других данных, не для человеческого текста). 0x08 выбирает UCS-2 для Unicode. Неверное значение вызывает крякозябры и неправильную сегментацию, поэтому оно должно соответствовать тому, как вы фактически закодировали short_message.

Распространённые значения data_coding / DCS
ЗначениеКодировкаИспользовать
0x00Алфавит GSM-7 по умолчаниюSMS со стандартным латинским текстом
0x01IA5 / ASCIIРедко используется
0x03Latin-1 (ISO-8859-1)Некоторые западноевропейские маршруты
0x048-битный двоичный кодБинарные / OTA / WAP push полезные нагрузки
0x08UCS-2 (UTF-16BE)Unicode / нелатинские символы / emoji
§02

Группы кодирования GSM 03.38

Октет DCS — это не плоский перечень: его старший полубайт выбирает группу кодирования, которая переопределяет младшие биты. Общая группа кодирования данных (0x0X) несёт индикатор алфавита (биты 3-2: 00 = GSM-7, 01 = 8-бит, 10 = UCS-2) и опциональные флаги сжатия и класса. Группа кодирования данных/класса сообщения (0xFX) используется для сообщений немедленного отображения (flash).

Структура групп кодирования DCS (выборка)
Старший полубайтГруппаЗначение младших битов
0x0XОбщее кодирование данныхАлфавит (GSM-7 / 8-бит / UCS-2), сжатие, флаг класса
0x1XОбщая, класс указанКак указано выше, с классом сообщения в битах 1-0
0xCXОжидающее сообщение — отброситьГруппы голосовой почты/индикаторов
0xDX / 0xEXОжидающее сообщение — сохранитьГруппы индикаторов GSM-7 / UCS-2
0xFXКодирование данных / класс сообщенийАлфавит во 2-м бите, класс в битах 1-0 (flash = класс 0)
§03

Классы сообщений

Когда DCS указывает класс сообщения, биты 1-0 выбирают, куда сообщение попадёт. Класс 0 — это flash SMS, отображаемое немедленно на экране без сохранения. Класс 1 нацелен на аппарат (ME), класс 2 — на SIM (SIM Toolkit / OTA), а класс 3 — на внешнее оконечное оборудование. Большая часть A2P-текста не несёт класса; flash (класс 0, например DCS 0xF0 для GSM-7) используется для оповещений, которые должны появиться мгновенно.

Классы сообщений SMS
КлассНазначениеПоведение
Class 0ЭкранFlash — отображается мгновенно, не сохраняется автоматически
Class 1Мобильное оборудование (ME)Сохранено в памяти телефона
Class 2SIMSIM Toolkit / OTA-провижининг
Class 3Терминальное оборудование (TE)Перенаправлено на внешнее оборудование
Часто задаваемые вопросы

Часто задаваемые вопросы

Что такое схема кодирования данных в SMS?

Это однооктетное поле (data_coding в SMPP, TP-DCS в GSM), сообщающее сети, как закодировано тело сообщения — GSM-7, 8-бит или UCS-2 — и опционально его класс. Оно должно соответствовать тому, как фактически была закодирована полезная нагрузка.

Какое значение data_coding использовать для GSM-7 и для Unicode?

Используйте 0x00 для текста в алфавите GSM-7 и 0x08 для UCS-2 Unicode. 0x04 используйте только для 8-битных двоичных данных вроде OTA или WAP push, никогда для человекочитаемого текста.

Что такое flash SMS?

Flash SMS — это сообщение класса 0, которое появляется немедленно на экране получателя без сохранения во входящих. Оно задаётся через биты класса сообщения в DCS (например, 0xF0 для flash в GSM-7).

Почему моё сообщение пришло искажёнными символами?

Почти всегда это несоответствие DCS: значение data_coding не совпало с фактической кодировкой short_message. Например, отправка байтов UTF-16 с data_coding 0x00 (GSM-7) даёт крякозябры. Устанавливайте data_coding в соответствии с отправляемыми байтами.

Ссылки

Технические характеристики источника

На этой странице представлены опубликованные стандарты, на которых они основаны. (Открывается в новой вкладке)

BNПоддерживается инженерной командой BroadNet·Обмен сообщениями операторского класса с 2003 года.
Прикрепите это к проводу

Разработано с использованием реального SMPP подключения и REST API.

Запросите тестовый доступ с реальными тестовыми ключами: сначала отправьте их на свой подтвержденный номер, а затем, после утверждения вашей личности отправителя и маршрутов, переходите к использованию в производственной среде более чем в 200 странах.