Сервис SMSC предназначен для передачи SMS-сообщений. Сервис работает на основе протокола SMPP 3.4.
Для работы по протоколу SMPP требуется клиент. Для большинства популярных языков программирования имеются свободно распространяемые SMPP-клиенты, реализованные в виде специализированных библиотек.
В последующих разделах приводятся инструкции и рекомендации по работе с SMSC i-Digital.
В таблице ниже указаны обязательные параметры, необходимые для подключения к 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, тем самым увеличивая количество тарифицируемых частей сообщения.
Согласно спецификации протокола 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 для каждой из частей, кроме последней, передаётся:
Реальный статус доставки многосоставного сообщения передаётся на последнюю полученную часть. Для неё в после short_message передаётся
В таблице ниже перечислены коды ошибок, которые 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 | Текст сообщения содержит запрещённые слова |