Протокол SMPP v.3.4 для рассылки SMS
Для использования данного вида интеграции Вам необходимо зарегистрироваться на серверной платформе Stream Telecom, либо зарегистрироваться через менеджера компании. При регистрации Вам присваивается логин, и тестовое имя отправителя SMS Info, которое будет автоматически удалено, после того как Вы запросите новое имя.
Для получения пароля для SMPP, Вам понадобится обратиться в техническую поддержку, с указанием Вашего логина и IP адресов, с которых будет осуществляться отправка
ФункцииНеобходимые настройки SMPP-клиента, для подключения:
Используемый Протокол: SMPP 3.4;
Адрес SMSC: smpp.szk-info.ru
Порт SMSC: 2222 (резервный порт подключения 3700)
Логин/Пароль:выдается индивидуально каждому партнеру при подключении;
Тип подключения: TRANSCEIVER;
Значения для TON и NPI
Набор символов для сообщений, формирование склеенных сообщений
- 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 представляет собой следующее:
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 соответствует формату: