BroadNet
Основы Начинающий

Основы SMS

Как строится, кодируется и сегментируется SMS — от ограничения в 160 символов и GSM 03.38 до отчётов о доставке и различия A2P и P2P.

5 уроки3 мин чтенияОбучение на основе стандартов · в удобном для вас темпе
СхемаКак сообщение A2P доходит до телефона
  1. Ваше приложениеОтправка через REST API или SMPP
  2. Платформа BroadNetВалидация, маршрутизация и тарификация каждого сообщения
  3. SMSC оператораПрямое соединение с оператором
  4. Телефон абонентаСообщение доставлено
Отчет о доставке (DLR) возвращается по тому же пути на ваш webhook
Урок 01

Анатомия SMS

SMS — Short Message Service — была стандартизирована как часть GSM и переносит полезную нагрузку в 140 байт. Именно этот фиксированный размер лежит в основе любого ограничения длины, с которым вы столкнётесь: вся суть длины SMS сводится к тому, чтобы уместиться в 140 байт.

Сообщение передаётся либо как MO (mobile-originated — отправленное с телефона), либо как MT (mobile-terminated — доставленное на телефон). Трафик application-to-person практически весь является MT: ваша платформа отправляет сообщение, а сеть доставляет его абоненту.

Между отправкой и телефоном находится SMSC (Short Message Service Centre), который хранит сообщение и пересылает его, когда получатель становится доступен. Если телефон выключен, SMSC удерживает сообщение до истечения периода действия.

Урок 02

Кодировка: GSM 7-бит против UCS-2

Обычный латинский текст использует стандартный 7-битный алфавит GSM, определённый в GSM 03.38. Поскольку каждый символ занимает 7 бит, в 140 байтах умещается 160 символов — это и есть привычный лимит для одного сегмента.

Несколько распространённых символов (таких как { } [ ] ~ ^ | \ и знак евро) находятся в таблице расширения и стоят по два символа каждый. Легко незаметно превысить границу сегмента, если в тексте есть один из них.

В момент, когда сообщение содержит любой символ вне этого алфавита — арабский, кириллицу, китайский или эмодзи, — всё сообщение переключается на UCS-2, 16-битную кодировку Unicode. Теперь каждый символ занимает 2 байта, поэтому один сегмент вмещает только 70 символов.

Урок 03

Сегментация и конкатенация

Когда текст превышает один сегмент, он разбивается и заново собирается на телефоне. Для этого к каждой части добавляется небольшой заголовок User Data Header (UDH), который занимает часть полезной нагрузки. Именно поэтому конкатенированные сегменты вмещают меньше символов, чем отдельный сегмент.

В GSM 7-бит конкатенированные сегменты вмещают по 153 символа вместо 160; в UCS-2 — по 67 вместо 70. Сообщение на латинице длиной 300 символов — это три сегмента; то же по длине сообщение на арабском — пять. Оплата взимается за сегмент, поэтому кодировка напрямую определяет стоимость.

Частая и легко устранимая ошибка — сообщение, которое лишь немного превышает границу: 161 символ становится двумя сегментами и удваивает цену каждой отправки. Сокращение нескольких слов или удаление символа из таблицы расширения может вдвое снизить счёт в масштабе.

Урок 04

Отчёты о доставке и статусы

Отчёт о доставке (DLR) — это подтверждение сети о том, что произошло с сообщением. Он сообщает конечный статус, такой как «доставлено», «не доставлено», «истёк срок действия» или «отклонено», и часто код ошибки конкретного оператора, объясняющий причину.

DLR необходимы для сверки и оценки качества. Запрос DLR только там, где вы их действительно используете, сохраняет трафик чистым; статус «доставлено» подтверждает, что телефон получил сообщение, а статус «истёк срок действия» означает, что абонент так и не стал доступен в течение периода действия.

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

Урок 05

A2P против P2P

P2P (person-to-person) — это разговорная SMS, которую один человек отправляет другому. A2P (application-to-person) — это программный трафик от приложений: оповещения, OTP, уведомления и маркетинг. На телефоне они выглядят одинаково, но коммерчески и технически принципиально различны.

Операторы тарифицируют и маршрутизируют A2P иначе и ожидают, что он будет поступать по официальным, оплачиваемым каналам. A2P, доставляемый через маршруты P2P ради обхода сборов за терминацию, — это серый маршрут: он дешевле на первый взгляд, но подвержен фильтрации, плохой доставляемости и рискам несоответствия требованиям.

Понимание этого различия — основа всего, что последует дальше: качество маршрутизации, правила sender ID и файрволы существуют потому, что операторам необходимо отличать законный, оплаченный трафик A2P от обхода.

Основные выводы
  • Полезная нагрузка SMS составляет 140 байт; именно поэтому GSM 7-бит вмещает 160 символов, а UCS-2 — только 70.
  • Любой символ вне алфавита GSM (арабский, эмодзи) переключает всё сообщение на UCS-2 и уменьшает лимит.
  • Конкатенированные сегменты «съедают» место под заголовок (153 / 67 символов), и оплата взимается за сегмент.
  • DLR замыкают цикл доставки; A2P и P2P выглядят одинаково, но маршрутизируются и тарифицируются по-разному.
Примените это на практике.

Используйте полученные знания для построения проектов.

Обсудите свою задачу с опытным инженером или откройте документацию для разработчиков и отправьте сообщение, используя описанные в этом курсе способы.

Почему стоит учиться у BroadNet
  • С2003
  • Страны200+
  • Ссылки оператора1,000+