Наши телефоны
mirsms.rumirsms.ru → API

Рассылка СМС через SMPP протокол

SMPP (аббревиатура: Short message peer-to-peer protocol) в переводе с английского означает «Короткое сообщение равноправных узлов» и позволяет описать взаимодействие между SMS сервером и конечным клиентом. Данный протокол относится к числу наиболее популярных у SMS-провайдеров, использующих его для обмена текстовыми сообщениями между СМС центрами с равными правами. Для работы с SMPP протоколом необходимо наличие постоянно включенного сервера и соответствующего ПО, совместимого с SMS-шлюзом провайдера.

Популярность SMPP протокола для рассылки SMS связана с его широкими возможностями, среди которых можно выделить следующие:

Протокол незаменим для регулярной отправки большого объема сообщений по надежному и высокоскоростному каналу. Поэтому SMS провайдер обычно использует данный протокол для обмена SMS и USSD сообщениями в системах VAS, для подключения различных внешних систем и т.д. Узнать подробнее о протоколе SMPP и о том, как существляется рассылка, Вы сможете, обратившись к нашим специалистам.

Содержание раздела

Версия 1.0 предназначена только для рассылки сообщений и получения статуса доставки. Прием сообщений в данный момент не поддерживается.

Расшифровку ошибок можно найти в спецификации SMPP 3.4.

Внимание: Вам необходимо прислать список IP адресов, с которых Вы будете
подключаться, перед тем как начать использовать SMPP.



Параметры подключения с использованием SMPP



Поддерживаемые команды по протоколу SMPP

Команда Описание
BIND_TRANSMITTER Подключиться как TRANSMITTER
BIND_TRANSCEIVER Подключиться как TRANSCEIVER
SUBMIT_SM Отправить сообщение
QUERY_SM Запросить статус сообщения
DELIVER_SM Отправка Delivery Receipt
ENQUIRE_LINK Проверка связи
GENERIC_NAK Ошибочная команда
UNBIND Отключение


На неподдерживаемые команды будут приходить GENERIC_NAK сообщения с кодом ошибки ESME_RINVCMDID.



Параметры отправки сообщения (SUBMIT_SM) по протоколу smpp

Параметр Значения
source_addr_ton 0x01 (для номеров) или 0x00 (для остального)
source_addr_npi 0x01 (для номеров) или 0x05 (для остального)
dest_addr_ton
dest_addr_npi
esm_class
0x01
0x01
0x00 или 0x40 при использовании UDH
registered_delivery
data_coding
0x00 или 0x01
0x01 - ASCII или 0x08 - UCS2




Правила работы с SMPP подключением

При установке подключения клиенту дается 10 секунд, что бы отправить команду BIND_TRANSMITTER или BIND_TRANSCEIVER, в противном случае соединение будет разорвано.

Клиент обязан отвечать на все пакеты, полученные через шлюз соответствующим resp пакетом в течение 1 минуты, иначе соединение будет разорвано без отсылки UNBIND.

После установки подключения и авторизации сервер будет отправлять ENQUIRE_LINK пакеты каждую минуту. На этот пакет клиент также обязан ответить в течение 1 минуты.



Получение статуса доставки сообщения

Есть две возможности получения статуса доставки по протоколу smpp (активный и пассивный). Пассивный вариант является предпочтительным.

Пассивный вариант предусматривает установку флага registered_delivery пакета SUBMIT_SM.
После перехода сообщения в финальное состояние сервер отправит DELIVER_SM пакет с Delivery Receipt сообщением. Формат Delivery Receipt сообщения ниже.

Активный вариант предусматривает периодический опрос статуса сообщения отсылкой
QUERY_SM.



Формат Delivery Receipt

"id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm
stat:DDDDDDD err:E Text: . . . . . . . . ."



Поле Описание
id ID сообщения
sub
dlvrd
Количество отправленных сообщений
Количество доставленных сообщений
submit date
done date
Время отправки сообщения
Время перехода сообщение в финальное состояние
stat
err
Статус сообщения (расшифровка статусов см. ниже)
Может содержать код ошибки в случае не доставки сообщения
text Первые 20 байт сообщения


Статус Описание
delivrd Доставлено
expired
deleted
Не доставлено из-за истечения периода ожидания доставки
Удалено
undeliv
acceptd
Не может быть доставлено
Принято на обработку
unknown rejectd Статус не известен (поле err может содержать код ошибки)
Сообщение отвергнуто




Зарезервированные коды ошибок при smpp соединении

Код Описание
0x0400
(1024)
Кодировка не распознана
0x0401
(1025)
Слишком большой текст сообщения. Максимальная длина не должна превышать 160
байт.
0x0402
(1026)
Ошибка регистрации сообщения на отправку. При возникновении этой ошибки
обратитесь в службу поддержки.
0x0403
(1027)
Не прошла проверка текста сообщения на наличие недопустимых слов и/или фраз
0x0404
(1028)
Отправитель или получатель в черном списке
0x0453
(1107)
Сработало ограничение по отправке одинакового текста на один и тот же номер в течение небольшого промежутка времени. Обратитесь в поддержку, если хотите отключить или уменьшить период.
0x043C
(1084)
Нет доступного тарифа для запрашиваемого направления.
0x043F
(1087)
Нет подходящего тарифа у вышестоящего контрагента.
0x045A
(1114)
Политика маршрутизации не найдена.
0x0446
(1094)
Ошибка транспорта. При возникновении этой ошибки обратитесь в службу
поддержки.
0x433
(1075)
Недостаточно средств на счете.