Протокол SMPP

SMPP — это протокол, описывающий взаимодействие клиента с SMS-сервером платформы, для передачи SMS и USSD сообщений.

Предупреждение

Внимание! Для использования данного вида интеграции необходимо обратиться к своему менеджеру, либо в техническую поддержку support@devinotele.com для настройки доступа.

Точка доступа

Взаимодействие клиента с SMS-сервером платформы осуществляется по адресам:

  • smpp01.integrationapi.net (194.226.179.12) – основной адрес для рекламных рассылок.
  • smpp02.integrationapi.net (194.226.179.13) – резервный адрес для рекламных рассылок.
  • smpp03.integrationapi.net (194.226.179.10) – основной адрес для транзакционных рассылок.
  • smpp04.integrationapi.net (194.226.179.11) – резервный адрес для транзакционных рассылок.

Проверка доступного баланса осуществляется через личный кабинет клиента.

Техническая часть

Настройка SMPP-клиента Для работы с платформой по протоколу SMPP необходимо произвести следующие настройки SMPP-клиента:

Host: 194.226.179.12
Port: 2775

Обязательные параметры:

System_ID: Логин*
Password: Пароль*
Interface_Version: 0x34
System_Type: NULL (Пустое значение)
Src_Addr_TON: 0x05
Src_Addr_NPI: 0x01
Dest_Addr_TON: 0x01
Dest_Addr_NPI: 0x01

Наименование поля описание:

System_ID Логин, присвоенный клиенту
Password Пароль, присвоенный клиенту
Interface_Version версия SMPP
System_Type Тип системы SMSC
Src_Addr_TON Тип адреса источника
Src_Addr_NPI Нумерация адреса источника
Dest_Addr_TON Тип адреса назначения
Dest_Addr_NPI Нумерация адреса назначения

Описание взаимодействия

  • Протокол работы сервиса SMPP 3.4 (TCP/IP/SMPP).

  • Сервис работает в асинхронном режиме. Размер окна определяется клиентом, количество сессий до 4-х.

  • Каждая сессия может работать в любом из режимов: tx (transmitter - только отправка), rx (receiver - только прием отчетов), trx (transceiver - прием/передача в одной сессии).

  • После обрыва сессии по SMPP и TCP/IP необходимо выдержать таймаут не менее 60 секунд, только после этого можно устанавливать TCP/IP сессию и отправлять PDU Bind_transceiver. В случае неудачной попытки соединения таймаут увеличивается до 90 секунд.

  • При получении сообщения отправлять на каждый принятый Deliver_sm подтверждение Deliver_sm_resp (Data_sm_resp) всегда со статусом 0 (ok). Generic_nack не допускаются! В случае отправки будет произведен сброс сессии путем отправки пакета unbind

  • Отправлять запрос Enquire_link следует только в случае отсутствия приёма любых SMPP PDU со стороны SMSC в течение 60 секунд. При отсутствии ответа от SMSC (Enquire_link_resp) следует закрывать SMPP сессию командой Unbind.

  • Сообщения, состоящие более чем из одной части, должны разбиваться на стороне клиента (кроме отправки через Massage Payload) одним из методов отправки составных сообщений:

    1.Использование опционных параметров (SAR метод)

    2.Использование UDH

  • Отправка через Message Payload - разбивка происходит на стороне СМС-центра, тарификация сообщений будет проводиться по сформированным сегментам. В данном случае отчет о доставке будет отправлен только на одну (первую) часть.

  • UDH-заголовок должен занимать 6 байт.

  • В одной части составного сообщения можно передавать 66-67 символов в кириллице и 150-153 в латинице (поле message length должно быть 132-134 байта).

  • Если сервис использует более одного sys_id (несколько аккаунтов), то для корректной склейки все части разбитого сообщения должны отсылаться через один и тот же sys-id (через один и тот же аккаунт).

  • При получении ошибки Invalid Destination Address сообщение необходимо удалить из своей очереди и больше не перепосылать.

  • При получении ошибки Throttling error сообщение нужно вернуть в очередь, но необходимо выдержать таймаут на данном соединении = 1 сек.

  • При получении ошибки Message Queue Full необходимо ставить сообщение, на которое вернулась данная ошибка, в конец очереди и сделать еще 3-5 попыток доставки этого сообщения, каждый раз возвращая это сообщение в конец очереди при получении той же ошибки. Рекомендуется применять прогрессивный метод обработки этой ошибки – при первом получении делать паузу перед отправкой в 5 сек, при второй – 15, третьей – 45 и т.д.

  • Параметр validity period должен быть не менее 60 секунд. Возможны ограничения доставки сообщений с указанием меньшего периода.

  • Платформа поддерживает запросы query_sm, скорость отправки запросов и окно устанавливаются клиентом