Инструкция по работе с SMSC

Введение

Сервис SMSC предназначен для передачи SMS-сообщений. Сервис работает на основе протокола SMPP 3.4.

Для работы по протоколу SMPP требуется клиент. Для большинства популярных языков программирования имеются свободно распространяемые SMPP-клиенты, реализованные в виде специализированных библиотек.

В последующих разделах приводятся инструкции и рекомендации по работе с SMSC i-Digital.

Параметры SMPP

В таблице ниже указаны обязательные параметры, необходимые для подключения к SMSC. Они предоставляются i-Digital и указываются в настройках SMPP-клиента.

Параметр Описание
system_id Имя пользователя (логин) для подключения к SMSC
smsc-password Пароль для подключения к SMSC
host smpp.i-dgtl.ru
port Порт для подключения к SMSC

ВАЖНО:

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

Поддерживаютcя следующие типы подключений:

ВАЖНО:

Если вам нужно получать отчёты о доставке, используйте подключение типа TRANSCEIVER.

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

В SMSC поддерживаются следующие типы пакетов:

Настройки кодировки

Сообщения, отправляемые через SMSC, могут состоять из латинских и кириллических букв, а также включать спецсимволы (русские и латинские буквы с диакритическими знаками, буквы греческого и других алфавитов, специфические знаки препинания, а также непечатные символы). При передаче сообщений рекомендуется использовать настройки, указанные в таблице ниже.

Текст Data coding Кодировка Длина одного сообщения
Кириллица 0x08 UTF-16ВE (big endian) 70 символов
Латиница 0x00 ASCII-8 160 символов

ВАЖНО:

Будьте внимательны при использовании в SMS следующих символов:

£,¥,è,é,ù,ì,ò,Ç,Ø,ø,Å,å,Δ,Φ,Γ,Λ,Ω,Π,Ψ,Σ,Θ,Ξ,Æ,æ,ß,É,¤,¡,Ä,Ö,Ñ,Ü,§ ¿,ä,ö,ñ,ü,à,
NUL,SOH,STX,ETX,EOT,ENQ,ACK,BEL,BS,TAB,VT,SO,SI,DLE,DC1,DC2,DC3,DC4,
NAK,SYN,ETB,CAN,EM,SUB,FS,GS,RS,US,`,DEL. 

Операторы (в зависимости от особенностей их платформы и спецификации) могут не поддерживать эти символы или конвертировать сообщения в Unicode, тем самым увеличивая количество тарифицируемых частей сообщения.

Отправка многосоставных SMS

Согласно спецификации протокола SMPP максимальная длина одного отправляемого SMS составляет:

SMS, длина которых превышает установленный максимум, называются многосоставными и обычно делятся на части при отправке. Размер одной части составляет:

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

С подробной информацией об этих технологиях можно ознакомиться в спецификации протокола SMPP.

ВАЖНО:

В каждой части многосоставного SMS должны совпадать значения следующих полей:

Сообщение не будет доставлено, пока не будут получены все его части.

Время ожидания всех частей многосоставного сообщения составляет 10 минут. Если по истечении этого периода части не будут получены, сообщение не будет отправлено.

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

Чтобы запросить отчёт о доставке, для пакета SUBMIT_SM нужно установить флаг registered_delivery=0x01. В ответ SMSC отправляет пакет DELIVER_SM, содержащий поле short_message c отчётом о доставке.

Пример отчёта о доставке

(sm: enc: ASCII msg: id:50c66532df sub:001 dlvrd:001 submit date:191001000004 done date:191001000005 stat:UNDELIV err:000 text:<r:FINAL>)

Подробное описание параметров, входящих в отчёт, приведено в таблице ниже.

Параметры доставки SMS

Параметр Описание
id ID сообщения
sub количество отправленных сообщений
dlvrd количество доставленных сообщений
submit date время отправки сообщения
done date время финализации сообщения
stat статус сообщения(dlvrd - доставлено или undeliv - не доставлено)
err код ошибки (при наличии)
text состояние сообщения (промежуточное или финализированное)

Получение статусов многосоставных сообщений

При отправке многосоставного сообщения SMSC сразу возвращает статусы доставки на все части, кроме последней. При этом в поле short_message для каждой из частей, кроме последней, передаётся:

text:<r:PROGRESS>

Реальный статус доставки многосоставного сообщения передаётся на последнюю полученную часть. Для неё в после short_message передаётся

text:<r:FINAL>

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

В таблице ниже перечислены коды ошибок, которые SMSC возвращает в ответ на пакеты BIND и SUBMIT_SM.

Код ошибки Текст сообщения об ошибке Описание ошибки
0x00000005 ЕSME already in bound state Сессия с указанным system_id считается активной
0x0000000A Invalid Source Address Некорректное имя отправителя (короткий номер, source address)
0x0000000B Invalid Dest Addr Некорректный номер получателя (MSISDN, dest address)
0x0000000D Bind failed Выбранный тип подключения не поддерживается или неправильно сформирован пакет BIND
0x0000000E Invalid password Неверный пароль для подключения к SMSC
0x0000000F Invalid System ID Указаны неверные параметры подключения
0x00000500 Bad character code Текст сообщения содержит запрещённые слова