Протокол SMPP

Short message peer-to-peer protocol (SMPP) — протокол, описывающий взаимодействие конечного клиента с SMS-сервером (SMSC).
Используется для передачи SMS и USSD сообщений, как правило в системах VAS.

SMPP был разработан компанией Aldiscon из Ирландии, перекупленной потом компанией Logica.
В 1999 SMPP перешёл под управление SMPP Developers Forum, переименованного позднее в SMSForum.

Протокол базируется на обмене PDU (protocol data units, пакетов данных протокола) передаваемой на уровне 4 OSI (TCP/IP сессии или X.25 SVC3).
PDU имеют бинарное представление для повышения эффективности передачи.

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

SMSForum публикует спецификации протокола.
До недавнего времени последней опубликованной спецификацией была SMPP 3.4, а спецификация SMPP 5.0 долгое время являлась собственностью Logica, но в настоящее время также доступна.
Smartswitch на данный момент поддерживает спецификацию SMPP 3.4.

Каждое SMPP подключение может быть сконфигурировано в одном из режимов:

  • TX (Transmitter) - только передает пакеты
  • RX (Receiver) - только получает пакеты
  • TRX (Transceiver) - и передает и получает пакеты

Эти режимы отображаются на диал-пиры Smartswitch следующим образом:

  • терминатор.
    Может быть либо TX либо TRX.
    Режим TRX нужен для передачи обратно оригинатору Отчета о доставке от терминатора.
    Следует включать этот режим если терминатор поддерживает отчеты о доставке.
  • оригинатор.
    Может быть либо RX либо TRX.
    Режим TRX нужен для передачи обратно оригинатору Отчета о доставке от терминатора.
    Следует включать этот режим если оригинатор поддерживает отчеты о доставке.
  • шлюз.
    Может быть TX, RX либо TRX.

Также для SMPP соединения пары узлов, требуется конфигурирование главного и подчиненного:

  • SMSC (SMS Center) - главный узел.
    Принимает входящие подключения от ESME.
  • ESME (External Short Messaging Entity) - подчиненный узел.
    Выполняет подключение к указанному SMSC.
    При подключении передает на SMSC сконфигурированный режим подключения (TX/RX/TRX)

Обычно оригинатор в Smartswitch - это SMSC, а терминатор - ESME.
Однако, как и в Протоколе SIP с регистрацией, возможны разные варианты.

После успешной доставки сообщения конечному абоненту (или невозможности доставить сообщения) терминатор отправляет оригинатору Отчет о доставке.
Для принятия отчета о доставке подключение должно быть в режиме TRX.

См. также:

English translation

Also available in: PDF HTML TXT