SMPP v5.0 обратно совместима с v3.4 и добавляет сигнализацию управления перегрузкой, операции широковещательной рассылки (broadcast_sm и связанные), дополнительное состояние сообщения (SKIPPED) и новые TLV. Несмотря на это, v3.4 остаётся доминирующим межсетевым интерфейсом, поскольку поддерживается повсеместно; v5.0 применяется только там, где обе стороны её реализуют.
bind_transceiverОткрыть и аутентифицировать сессиюbind_transceiver_respСессия принятаsubmit_smОтправить сообщениеsubmit_sm_respПринято, возвращен ID сообщенияdeliver_smПодтверждение доставки или входящее сообщениеdeliver_sm_respПодтвержденоenquire_linkKeepalive в режиме ожидания
Что добавляет v5.0
v5.0 — это инкрементальная, обратно совместимая ревизия v3.4. Её ключевые добавления — управление перегрузкой (SMSC сообщает о загрузке, чтобы ESME могли замедлиться до троттлинга), семейство операций широковещания для рассылки в стиле cell broadcast, новое состояние сообщения SKIPPED и дополнительные опциональные параметры. Базовый формат PDU, модель bind и submit_sm/deliver_sm не изменились, поэтому ESME на v3.4 может общаться с SMSC на v5.0.
| Область | v3.4 | Дополнение v5.0 |
|---|---|---|
| Управление перегрузкой | Нет (реакция на ограничение скорости) | congestion_state TLV — проактивный |
| Широковещательный | Не поддерживается | broadcast_sm / query_broadcast_sm / cancel_broadcast_sm |
| Состояния сообщения | 8 состояний | Добавлен статус SKIPPED (9) |
| Необязательные параметры | Набор TLV v3.4 | Дополнительные TLV |
| interface_version | 0x34 | 0x50 |
Что осталось прежним
Основы идентичны: 16-байтовый заголовок, кодирование big-endian, три типа bind, состояния сессии, keepalive enquire_link, структуры полей submit_sm/deliver_sm и диапазон ошибок ESME_R* — всё переносится. TLV, введённые в v3.4, остаются механизмом расширения. Эта преемственность намеренна: v5.0 разрабатывалась так, чтобы существующие интеграции v3.4 продолжали работать.
Какую версию использовать
Используйте v3.4, если у вас нет конкретной причины использовать v5.0 и обе стороны её поддерживают. v3.4 — безопасный универсальный выбор по умолчанию для A2P-межсетевого взаимодействия. Обращайтесь к v5.0, когда вам конкретно нужна её сигнализация перегрузки или операции широковещания, а провайдер подтверждает поддержку. Всегда подтверждайте согласованную версию из bind_resp (TLV sc_interface_version), а не предполагайте, что функция доступна.
Часто задаваемые вопросы
Обратно ли совместима SMPP v5.0 с v3.4?
Да. v5.0 сохраняет формат PDU, модель bind и основные операции v3.4, поэтому ESME на v3.4 и SMSC на v5.0 могут взаимодействовать. Версия объявляется в interface_version (0x34 против 0x50).
Почему SMPP v3.4 всё ещё самая распространённая версия?
Потому что она реализована повсеместно и полностью покрывает потребности A2P-рассылки. Добавления v5.0 — управление перегрузкой, широковещание — полезны в конкретных сценариях, но не требуются для стандартного трафика MT/MO, поэтому большинство межсетевых соединений осталось на v3.4.
В чём основная практическая польза v5.0?
Упреждающее управление перегрузкой: TLV congestion_state позволяет SMSC сообщать о своей загрузке, чтобы кооперативный ESME замедлился до жёстких ошибок ESME_RTHROTTLED, обеспечивая более плавную пропускную способность под давлением.
Как узнать, какую версию согласовала сессия?
Прочитайте TLV sc_interface_version, возвращённый в bind_resp. Не предполагайте, что функции v5.0 доступны, лишь потому что вы отправили interface_version 0x50 — SMSC сообщает, что он фактически поддерживает.
Технические характеристики источника
На этой странице представлены опубликованные стандарты, на которых они основаны. (Открывается в новой вкладке)