Руководство по эксплуатации: интеграция по протоколу SMPP 3.4
- Руководство по эксплуатации: интеграция по протоколу SMPP 3.4
1. Описание протокола
SMPP — (Short Message Peer-to-Peer) короткие сообщения однора нговой Сети.
Протокол SMPP является открытым стандартом, который разработан, чтобы обеспечить интерфейс для передачи коротких сообщений между устройствами, приложениями, СМС-шлюзами и СМС-центрами.
В данной статье для ознакомления доступно два варианта описания протокола — на английском (оригинал) и русском (перевод) языках.
В русскоязычном варианте описания протокола SMPP можно встретить неточности перевода и неверную трактовку некоторых терминов, поэтому рекомендуем использовать только оригинальную версию на английском языке.
2. Ограничения
В рамках взаимодействия с партнерами, протокол SMPP используется по части подключения, обмена, получения, отправки сообщений и поддержания сессий.
Не предусмотрена функциональность, реализующая пакетную отправку, замену и отмену отправленных сообщений.
В данном документе представлены базовые термины, необходимые для запуска сервиса, с полным описанием можно ознакомится непосредственно в спецификации SMPP v3.4.
3. Требования по взаимодействию
Описание | Значение |
---|---|
Версия SMPP | 3.4 |
Количество сессий по-умолчанию | 1 |
Количество сессий по-согласованию | до 20 |
Режим работы подключения по-умолчанию | Transceiver |
Режим работы подключения по-согласованию | Transmitter, Receiver |
Интервалы между Enquire_link | 30 секунд |
Таймаут для переподключения после потери SMPP | не менее 60 секунд |
data_coding для передачи символов латиницы | 0 |
data_coding для передачи символов юникод | 8 |
4. Установка соединения (BIND)
Для установки соединения необходимо послать BIND_TRANSCEIVER (или BIND_TRANSMITTER, или BIND_RECEIVER), в команде должны быть следующие поля:
Параметр | Описание | Пример |
---|---|---|
system_id | Идентификатор подключения. Допустимые символы 0...9a...zA...Z_ Максимальная длина 16 символов | client_1 |
password | Пароль, максимальная длина 9 символов | yh5rC23K |
system_type | Тип подключения. Необходимо оставить пустым |
Ответ будет передан командой BIND_TRANSCEIVER_RESP (или BIND_TRANSMITTER_RESP, или BIND_RECEIVER_RESP), в поле command_status будет передано одно из значений из справочника.
5. Разрыв соединения (UNBIND)
При необходимости разорвать подключение необходимо послать команду UNBIND, в ответ будет передана команда UNBIND_RESP и закрыто TCP-соединение.
6. Поддержание соеди нения (ENQUIRE_LINK)
Как клиент, так и сервер (платформа SevenTech) должны регулярно проверять связность между собой посылом команды ENQUIRE_LINK.
Интервал посыла команды ENQUIRE_LINK должен находится в промежутке от 30 до 180 секунд.
Каждая из сторон при получении ENQUIRE_LINK должна ответить ENQUIRE_LINK_RESP в течение 30 секунд.
Событие | Действие |
---|---|
Клиент не получил ENQUIRE_LINK_RESP от сервера | Послать команду UNBIND, получить UNBIND_RESP, после чего, не разрывая TCP-соединение, выждав 60 секунд, установить соединение, послав команду BIND. Если результат не получен, закрыть TCP-соединение и выполнить подключения заново. |
Клиент не вернул ENQUIRE_LINK_RESP серверу | Сервер закрывает соединение с клиентом. Клиент восстанавливает соединение самостоятельно. |
7. Отправка сообщений (SUBMIT_SM)
Для отправки сообщений абоненту необходимо выполнить команду SUBMIT_SM, используемые параметры:
Параметр | Описание |
---|---|
source_addr | Имя отправителя. Сообщение абоненту будет отправлено с номера, указанного в данном параметре. Допустимая длина 2-11 символов. Допустимые символы: 0...9a...zA...Z!@#$%^&*()/';:,+-_ и пробел. |
destination_addr | Номер абонента в международном формате. Пример 79031234567 |
esm_class | Режим работы и тип сообщения |
data_coding | Тип кодирования сообщения. Рекомендуем использовать 0 для латинских сообщений и 8 для передачи символов юникода. |
registered_delivery | Флаг для запроса отчета о статусе доставки. 0 — отчет не нужен, 1 — передать отчет |