BroadNet
SMPP Тематический обзор

SMPP простыми словами

Определение

SMPP (Short Message Peer-to-Peer) — это открытый протокол TCP, который передает A2P SMS между приложением (ESME) и SMSC мобильного оператора. ESME открывает постоянную привязку, отправляет сообщения в виде бинарных submit_sm PDUs и получает отчёты о доставке через тот же сокет.

Кратко по материалу: Как работает протокол SMPP?

Последнее обновление Ключевых терминов: 9

Как это работает

  1. 1

    Bind (Привязка)

    ESME открывает TCP-соединение (в идеале TLS) и отправляет bind_transceiver с system_id и паролем. Привязка может быть типа Transmitter, Receiver или Transceiver; современным стандартом является Transceiver-привязка через SMPP 3.4.

    Читать полный ответ
  2. 2

    Submit (Отправка)

    Каждое сообщение отправляется как submit_sm PDU, а SMSC подтверждает получение с помощью submit_sm_resp, содержащего message_id. Окно — количество PDUs, которые могут находиться в процессе отправки без подтверждения — чаще всего является ограничивающим фактором реальной пропускной способности.

    Читать полный ответ
  3. 3

    Получение отчётов о доставке

    Отчёты о доставке приходят асинхронно в виде deliver_sm PDUs через тот же сокет и сопоставляются с исходным сообщением по message_id.

    Читать полный ответ
  4. 4

    Поддержание сессии

    enquire_link-heartbeat каждые 30 секунд поддерживает привязку; клиент переподключается с использованием экспоненциальной задержки (exponential backoff), а unbind корректно закрывает сессию. В случае ошибки отправки возвращается числовой command_status для декодирования.

    Читать полный ответ

Ключевые термины

Для каждого термина предусмотрена отдельная страница с подробным объяснением.

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

В каких случаях следует отдавать предпочтение SMPP перед REST?

Выбирайте SMPP, если вы стабильно отправляете несколько сотен сообщений в секунду или вам нужны постоянные bind-сессии (пропускная способность на bind согласовывается с вашей командой по работе с клиентами), используете критичные к задержке OTP, где каждая миллисекунда на счету, или интегрируетесь в экосистему операторов/агрегаторов, которая уже повсеместно поддерживает SMPP. В остальных случаях REST SMS API (в BroadNet нет фиксированных лимитов скорости на аккаунт) проще в эксплуатации и доставляет по тем же маршрутам. См.

Читать полный ответ

Стоит ли использовать SMPP 5.0 для новой интеграции?

Практически никогда. Используйте SMPP 3.4 поверх TLS, если только конкретный контрагент не требует версии 5.0. Вся установленная база, инструменты и поддержка операторов основаны на версии 3.4, а версия 5.0 не дает никаких преимуществ в плане доставки на коммерческих маршрутах A2P.

Читать полный ответ

Обеспечивает ли SMPP 5.0 более качественную передачу сообщений, чем SMPP 3.4?

Нет. Доставляемость зависит от маршрута оператора, а не от версии SMPP. Улучшения, внесенные в версию 5.0 (заголовки Unicode, TLV для выставления счетов), обычно обрабатываются на уровне приложения поверх версии 3.4.

Читать полный ответ

Как отправить текст на арабском языке или эмодзи через SMPP 3.4?

Установите data_coding в UCS-2 (0x08) или передавайте тело сообщения в TLV message_payload. Версия 3.4 корректно обрабатывает контент Unicode; для этого не требуется версия 5.0.

Читать полный ответ

Какой тип привязки и какой порт мне следует использовать?

Стандартом для A2P является привязка приемопередатчика по TLS — он отправляет submit_sm и принимает DLR на одном сокете. BroadNet предлагает привязку SMPP 3.4; хост, порт и учетные данные предоставляются вместе с тестовым доступом.

Читать полный ответ