Протокол SMPP v.3.4 для рассылки SMS
+7 (812) 326 10 75 Наш офис
8 800 333 10 75 Бесплатно по России

Протокол SMPP v.3.4 для рассылки SMS

ВНИМАНИЕ

Для использования данного вида интеграции необходимо
зарегистрироваться
на серверной платформе Stream Telecom.

Для получения пароля для SMPP обратитесь в техническую поддержку. Укажите логин и перечень IP–адресов, с которых будет выполняться отправка.

Спецификация протокола SMPP v3.4.pdf Документация по интеграции Stream Telecom SMPP__1.07.pdf

Функции

Настройки SMPP-клиента, необходимые для подключения

Параметр

Значение

Протокол

SMPP 3.4

Адрес SMSC

smpp.szk-info.ru

Порт SMSC

2222 (резервный порт подключения 3700)

Логин/Пароль

Выдается индивидуально каждому партнеру при подключении

Значения для TON и NPI

src_addr_ton: 0x05
src_addr_npi: 0x01
dest_addr_ton: 0x01
dest_addr_npi: 0x01

Параметры сообщений

Набор символов для сообщений

Для сообщений могут быть использованы следующие кодировки:

  • Default Alphabet (GSM 3.38), 7-bit characters — maximum of 160 characters.
  • Latin 1 (ISO-8859-1), 8-bit characters — limit is 140 characters.
  • Unicode (UTF16/USC-2), 16-bit characters — limit is 70 characters.

Для сообщений на латинице используйте кодировку GSM 03.38. Длина одного сообщения составляет 160 символов. Запрещены символы ^, {, }, \, [, ], ~, |, €.

Для сообщений на кириллице используйте кодировку UTF16. Длина одного сообщения составляет 70 символов.

Для корректного отображения необходимо формирование текста в UTF-16ВE (big endian) и указание параметров:

  • Data coding: 0x08-SMPP.
  • Data Coding Scheme: UCS2 (ISO/IEC-10646) (0x08).

Формирование склеенных сообщений

Отправка длинных (склеенных) сообщений возможна с использованием UDH или message_payload.

Message_payload — один из опциональных SMPP 3.4 TLV (tag-length-value) параметров, поддерживаемых SMPP сервером. Применяется, например, при отправке сообщений более 254 октетов (Message length: 0. Optional parameter: message_payload (0x0424)).

При отправке SMS с UDH необходимо установить значение параметров:

  • ESM_class=0x40.
  • DCS устанавливается согласно тексту сообщения: UCS2 (ISO/IEC-10646) (0x08) для Unicode, DCS=0x00 для GSM-default.

UDH представляет собой:

  • 0x05.
  • 0x00.
  • 0x03.
  • 1 октет — уникальный для данной группы SMS номер.
  • 1 октет — количество SMS для склейки.
  • 1 октет — порядковый номер SMS.

Согласно спецификации, на длину каждой составляющей SMS в составе склеенных сообщений накладываются ограничения. UDH имеет 8-битную структуру, длина текстовой части SMS не должна превышать 134 октетов (140 - 6). В GSM-default длина текста каждого SMS в несжатом виде должна быть не более 153 символов (134х8/7=153), а в Unicode — 67 символов (134 /2=67).

При формировании сообщений больше 160 символов латиницей и 70 кириллицей, длина сообщения составляет:

  • Латиница — Default Alphabet (GSM 3.38):
    • 1 SMS — 160 символов;
    • 2 SMS — 153 х 2 = 306 символов;
    • 3 SMS — 459 символов и т.д.
  • Unicode (UTF-16ВE):
    • 1 SMS — 70 символов;
    • 2 SMS — 67 х 2 = 134 символов;
    • 3 SMS — 201 символов;
    • 4 SMS — 268 символов и т.д.

Дополнительные параметры

  • Таймаут: 1 минута;
  • Задержка в случае неудачного переподключения: 1 минута;
  • Верификация соединения (enquire_link PDU): 60 сек.
    Enquire_link являются обязательными. При подключении с помощью transmitter ожидается получение enquire_link. При их отсутствии в течение 2 минут связь считается нарушенной и принудительно рвется.
  • Для отправки по России номер абонента должен начинаться с «7».
  • Указание адреса происходит в международном формате. Использование специальных символов, таких как «+», ведущих нулей — недопустимо.
  • Ограничение буквенно-цифрового адреса — 11 символов.
  • Скорость передачи SMS не более 50 SMS в секунду.

Получение конечных статусов

Чтобы получать Deliver_sm PDU c информацией о доставке, в submit_sm PDU необходимо выставить флаг registered_delivery = 0x01.

В таких пакетах будут выставлены следующие значения полей:

  • esm_class: 0x3c.
  • receipted_message_id: значение, полученное в submit_sm_resp от Stream Telecom.
  • receipted_message_state: статус доставки по протоколу SMPP.

Deliver_sm PDU содержит следующую информацию:

  • Operation: Deliver_sm (0x00000005).
  • Message type: 0x0f.
  • В Optional parameters указано Message state: DELIVERED (2).
  • SMSC identifier: напр.: 23456789.
  • В поле Message есть значения submit date и done date.
  • Message_state значение (Значение message_id полученного в submit_sm_resp PDU) – «Message is delivered to destination».

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

PDU определяются протоколом. DR соответствует формату:

Field

Size (octets)

Type

Id

10

C-Octet String (Decimal)

sub

3

C-Octet String Fixed Length (Decimal)

dlvrd

3

C-Octet String Fixed Length (Decimal)

submit date

10

C-Octet String Fixed Length (Decimal)

done date

10

C-Octet String Fixed Length (Decimal)

stat

7

C-Octet String Fixed Length

err

3

C-Octet String Fixed Length

text

var. max. 65

C-Octet String (Decimal)

Статусы SMS (по информации от SMS-центров)

Статус

Значение

Тип

Delivered

Доставлено

Окончательный

Not Delivered

Не доставлено

Окончательный

Expired

Просрочено

Окончательный

Ошибки SMPP

Command status

Значение

10

Не зарегистрировано/ некорректное имя отправителя

11

Некорректная длина номера/ номер в стоп-листе

13

Неверный логин или пароль/ логин заблокирован

69

Ошибка при формировании пакета

1009

Заблокировано модерацией

1010

Лимит SMS превышен

1011

Время отправки не соответствует разрешённому

1035

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

2000

Множественная отправка SMS на один номер с одинаковым текстом