SMPP простыми словами
SMPP (Short Message Peer-to-Peer) — это открытый протокол TCP, который передает A2P SMS между приложением (ESME) и SMSC мобильного оператора. ESME открывает постоянную привязку, отправляет сообщения в виде бинарных submit_sm PDUs и получает отчёты о доставке через тот же сокет.
Кратко по материалу: Как работает протокол SMPP?
Как это работает
- 1
Bind (Привязка)
ESME открывает TCP-соединение (в идеале TLS) и отправляет bind_transceiver с system_id и паролем. Привязка может быть типа Transmitter, Receiver или Transceiver; современным стандартом является Transceiver-привязка через SMPP 3.4.
Читать полный ответ - 2
Submit (Отправка)
Каждое сообщение отправляется как submit_sm PDU, а SMSC подтверждает получение с помощью submit_sm_resp, содержащего message_id. Окно — количество PDUs, которые могут находиться в процессе отправки без подтверждения — чаще всего является ограничивающим фактором реальной пропускной способности.
Читать полный ответ - 3
Получение отчётов о доставке
Отчёты о доставке приходят асинхронно в виде deliver_sm PDUs через тот же сокет и сопоставляются с исходным сообщением по message_id.
Читать полный ответ - 4
Поддержание сессии
enquire_link-heartbeat каждые 30 секунд поддерживает привязку; клиент переподключается с использованием экспоненциальной задержки (exponential backoff), а unbind корректно закрывает сессию. В случае ошибки отправки возвращается числовой command_status для декодирования.
Читать полный ответ
Ключевые термины
Для каждого термина предусмотрена отдельная страница с подробным объяснением.
- Что такое SMPP?SMPP (Short Message Peer-to-Peer) — это открытый протокол для обмена SMS-сообщениями между SMSC, ESME (External Short Message Entities) и агрегаторами.
- Как работает протокол SMPP?SMPP (Short Message Peer-to-Peer) — это открытый протокол TCP, который обеспечивает передачу SMS-сообщений по принципу «один к одному» (A2P) между приложением — ESME — и SMSC мобильного оператора.
- Что такое ESME?ESME (External Short Messaging Entity) — это термин SMPP, обозначающий любое приложение вне SMSC, которое отправляет или принимает SMS-сообщения.
- Что такое SMSC?Центр обработки коротких сообщений (SMSC) — это основной инфраструктурный компонент мобильной сети, который хранит, пересылает и доставляет SMS-сообщения между мобильными устройствами и внешними приложениями.
- Что такое размер окна SMPP ?«Окно» — это количество SMPP PDU которые ESME может обрабатывать одновременно в рамках одной привязки (отправленных, но еще не подтвержденных).
- SMPP 3.4 против SMPP 5.0 — что изменилось и что использоватьSMPP 3.4 (1999) до сих пор является протоколом межсетевого взаимодействия SMS, используемым практически во всех современных системах A2P-соединения.
- Что такое DLR (отчёт о доставке)?DLR — это асинхронное подтверждение того, что SMS-сообщение было доставлено (или не было доставлено) на мобильный телефон.
- Что такое TPS (транзакции в секунду)?TPS (транзакций в секунду) — также называемый MPS или скоростью отправки — это предельная пропускная способность учетной записи или соединения для обмена сообщениями: сколько PDU submit_sm SMS принимает SMSC в…
- TLS 1.3 в системах обмена сообщениями — что изменилось и почему это важно для SMPPВ стандарте TLS 1.3 (RFC 8446, 2018) стандарт TLS 1.2 был заменен более быстрым рукопожатием, удалены все алгоритмы, которые были взломаны в предыдущем десятилетии, и введено обязательное требование прямой секретности.
Руководства и дополнительные материалы
- Справочный материалОбзор протокола SMPP
- Справочный материалОперации bind и состояния сессии SMPP
- Справочный материалSMPP submit_sm: все обязательные поля
- Справочный материалКоды ошибок command_status в SMPP
- РуководствоЧек-лист интеграции SMPP
- СтатьяСтоимость эксплуатации SMS-интеграции: bind-сессии, веб-хуки и сценарии сбоев
- СтатьяПланирование пропускной способности SMS и количества отправленных сообщений в секунду: расчет параметров SMPP-привязок для кампаний с большим объемом рассылок
- СравнениеSMS API против SMPP
- Документация для разработчиковИнтеграция SMPP
- ИнструментПоиск кодов ошибок SMPP
Часто задаваемые вопросы
В каких случаях следует отдавать предпочтение 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; хост, порт и учетные данные предоставляются вместе с тестовым доступом.
Читать полный ответ