CМС сообщения через протокол smpp 3.4

SMPP — распространенный вид протокола, используемого для приема и передачи sms-сообщений и USSD-запросов. Особенность его является постоянность подключения, что дает одно очень важное преимущество — соединение не разрывается, а рассылка SMS производится с высокой скоростью (до нескольких раз выше, чем при других способах).

Итак, при использовании smpp протокола, вы получаете следующие возможности:

1. доступны различные форматы, в том числе wap push sms;

2. сообщения, отправленные по smpp могут быть не только короткого формата;

3. запрос полной информации по доставленным сообщениям и с отложенным статусом;

4. двухсторонний канал SMS;

5. регулировка скорости.

Как видите, протокол smpp дает большую свободу использования, но, как и у любого средства, здесь есть собственные уникальные особенности, связанные с с настройкой и непосредственно работой. Об этом и поговорим ниже.

Особенности работы с протоколом

На данный момент для рассылки применяется smpp версии 3.4

Для функционирования smpp требуется сервер, который приспособлен для работы по данному протоколу, и специальное программное обеспечение (клиент). Кроме того, необходимо постоянное стабильное соединение со шлюзом провайдера. Поэтому, мы в обязательном порядке проводим тестирование оборудования, которым располагают наши клиенты — сервер должен быть совместим со скоростной рассылкой SMS. Таким образом, мы изначально упрощаем оказание качественных услуг.

Api подходят для сайтов, написанных на любом языка, в том числе, php.

Протестировать работу настроенного smpp канала могут и сами клиенты, для этого предоставляются все возможности еще до начала пользования услугами. Это позволяет понять, как быстро ваши сообщения, отправленные через протокол smpp, будут доставлены получателям.

Сотрудники сервиса smsdirector.ru/ с радостью помогут вам разобраться вам во всех тонкостях работы через протокол smpp, интеграцию при момощи php на ваш сайт, посодействуют в подключении и тестировании всех служб, ответят на любые вопросы.

Параметры для подключения

  • system_id — зарегистрированное в системе имя пользователя вида XXXX.X
  • password — пароль пользователя
  • Адрес — api.smsdirector.ru
  • Порт — 8056

Поддерживаемые команды

Команда

Описание

BIND_TRANSMITTER

Подключиться как TRANSMITTER

BIND_TRANSCEIVER

Подключиться как TRANSCEIVER

SUBMIT_SM

Отправить сообщение

QUERY_SM

Запросить статус сообщения

DELIVER_SM

Отправка Delivery Receipt сервером

ENQUIRE_LINK

Проверка связи

GENERIC_NAK

Ошибочная команда

UNBIND

Отключение

В случае ввода некорректной команды, придет ответ вида GENERIC_NAK, в тексте которого будет код ошибки ESME_RINVCMDID.

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

Параметр

Значения

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

Правила соединения

У клиента есть 10 секунд для установки соединения через шлюз smpp, в течение которых должна быть послана одна из команд: BIND_TRANSCEIVER,  BIND_TRANSMITTER. В противном случае произойдет разрыв соединения.

Также, разрыв произойдет если клиент не ответит на любой пакет, который отправил сервер не позже чем за одну минуту установленным правилами пакетом resp. При подобном разрыве UNBIND не отправляется.

Ежеминутно сервер отправляет авторизованному и соединенному клиенту пакеты  ENQUIRE_LINK, правила ответа клиентом и разрыва smpp подключения на которые точно такое же, как и в предыдущем пункте.

Единовременно допускается smpp соединение лишь от единственного имени пользователя. Все остальные соединения получат ошибку 0x00000005 ESME Already in Bound State. Однако если вам нужно осуществить не одно соединение в рамках вашего кабинета, то для каждого из этих соединений можно создать собственного пользователя.

В случае отсылки Submit_sm, отмеченного при этом флажком registered_delivery, отправка статуса СМС возможна лишь тому пользователю, который отправлял сообщение.

Статус доставки смс

При работе по данному протоколу статус доставки может быть пассивным (желательно) или активным.

Для получения пассивного отчета необходимо пакет SUBMIT_SM отправлять с предварительно включенным флажком registered_delivery.

Текст Delivery Receipt в пакете DELIVER_SM приходит от сервера когда смс переходит на финальный этап рассылки.

При активном отчете статус смс регулярно проверяется при помощи отправки 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 может содержать код ошибки)
Сообщение отвергнуто

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

Код

Описание

0x0400

(1024)

Кодировка не распознана

0x0401

(1025)

Слишком большой текст сообщения. Максимальная длина не должна превышать 160

байт.

0x0402

(1026)

Ошибка регистрации сообщения на отправку. При возникновении этой ошибки
обратитесь в службу поддержки.

0x0403

(1027)

Не прошла проверка текста сообщения на наличие недопустимых слов и/или фраз

0x0404

(1028)

Отправитель или получатель в черном списке

0x0453

(1107)

Сработало ограничение по отправке одинакового текста на один и тот же номер в течение небольшого промежутка времени. Обратитесь в поддержку, если хотите отключить или уменьшить период.

0x043C

(1084)

Нет доступного тарифа для запрашиваемого направления.

0x043F

(1087)

Нет подходящего тарифа у вышестоящего контрагента.

0x045A

(1114)

Политика маршрутизации не найдена.

0x0446

(1094)

Ошибка транспорта. При возникновении этой ошибки обратитесь в службу

поддержки.

0x433

(1075)

Недостаточно средств на счете.

Мобильный оператор «СМАРТС» продан компаниям «Мегафон» и «МТС»

Мобильный оператор «СМАРТС» продан компаниям «Мегафон» и «МТС»

Мобильный оператор "Смартс" с 1 февраля 2016 года присоединился к мобильным операторам "Мегафон" и "МТС".

Изменение цен на СМС рассылку по оператору Мегафон

Изменение цен на СМС рассылку по оператору Мегафон

Компания Мегафон повышает цены на СМС сообщения для коммерческих клиентов.

МТС меняет тарифные планы

МТС меняет тарифные планы

С 1 января 2016 года по инициативе оператора МТС изменяется цена на СМС сообщения для корпоративных клиентов

ТЕЛЕ2 меняет тарифные планы

ТЕЛЕ2 меняет тарифные планы

Компания предлагает своим клиентам отправлять СМС-сообщения на новых условиях