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

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

ВНИМАНИЕ

Для использования данного вида интеграции Вам необходимо
зарегистрироваться
на серверной платформе Stream Telecom, либо зарегистрироваться через менеджера компании. При регистрации Вам присваивается логин, и тестовое имя отправителя SMS Info, которое будет автоматически удалено, после того как Вы запросите новое имя.

Для получения пароля для SMPP, Вам понадобится обратиться в техническую поддержку, с указанием Вашего логина и IP адресов, с которых будет осуществляться отправка

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

Функции

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

Используемый Протокол: SMPP 3.4;

Адрес SMSC: smpp.szk-info.ru

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

Логин/Пароль:выдается индивидуально каждому партнеру при подключении;

Тип подключения: TRANSCEIVER;

Значения для 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, длина одного SMS сообщения составляет 70 символов:

Примечание: Для корректного отображения текста, необходимо указание - Data coding: 0x08 - SMPP Data Coding Scheme: UCS2 (ISO/IEC-10646) (0x08), а также формирование текста в UTF-16ВE (big endian)

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

Примечание: Message_payload – один из опциональных SMPP 3.4 TLV (tag-length-value) параметров, поддерживаемых SMPP сервером. Применяется, например, приотправке сообщений более 254 октетов;‘Messagelength:0’;Optionalparametermessage_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

При формировании длинных сообщений больше 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 и т.д.

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

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

- Таймаут: 1 минута;

- Задержка в случае неудачного переподключения: 1 минута;

- Верификация соединения (enquire_link PDU): 60 сек.;

Примечание: Enquire_link'и обязательны. Если клиент подключается к нам transmitter'ом мы ожидаем от него enquire_link'и, при их отсутствии в течение 2 минут – связь считается нарушенной и принудительно рвется.

Номер абонента всегда должен начинаться с «7» для абонентов России, использовани «8» для отправки по России недопустимо.

Скорость передачи SMS не более 50 SMS в секунду.

Указание адреса, происходит в международном формате, использование специальных символов, таких как «+», ведущих нулей – недопустимо.

Для буквенно-цифрового адреса – ограничение 11 символов;

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

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

В таких пакетах (в отличие от обычных Deliver_sm) поле esm_class будет выставлено в 0x3c.

В поле receipted_message_id будет выставлено то значение, которое вы получили в submit_sm_resp от нашей платформы. В поле strong>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 значение «2» - «Message is delivered to destination»

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

Особенностей 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

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

1035

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

2000

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