SMPP Документация

Документация SMPP
Подключение

Через наш SMS-шлюз возможна отправка сообщений по протоколу SMPP версии 3.4 и 5.0.

Для активации этого способа:

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

Параметр Применение Описание
login Обязательно. Логин с которыми ваш SMPP-клиент будет подключаться к шлюзу SMS Aero.
password Обязательно. Пароль с которыми ваш SMPP-клиент будет подключаться к шлюзу SMS Aero.
IP-адрес Обязательно. IP-адрес на котором установлен/работает ваш SMPP-клиент.
Канал рассылки Обязательно. Канал рассылки, по которому будет поддерживать данный SMPP-аккаунт.
При необходимости можно создать/использовать несколько SMPP-аккаунтов/подключений для разных каналов рассылки.

2. После настройки SMPP-аккаунта в личном кабинете, произведите соответствующие настройки в вашем SMPP-клиенте.

Основные параметры:

Параметр Значение Применение Описание
smsc-username "login" Обязательно. Указанный в пункте 1 логин для настраиваемого SMPP-подключения.
smsc-password "password" Обязательно. Указанный в пункте 1 пароль.
host smpp.smsaero.ru Обязательно. Адрес для подключения к SMPP-шлюзу SMS Aero.
port 2775 Обязательно. Порт подключения.

Дополнительные:

Параметр Значение
interface-version 34
source-addr-autodetect yes
source-addr-ton 5
source-addr-npi 1
dest-addr-ton 1
dest-addr-npi 1
Поддерживаемые команды

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

Команда Описание
BIND_RECEIVER Подключиться как RECEIVER — клиент может только получать сообщения от SMSC.
BIND_TRANSMITTER Подключиться как TRANSMITTER — клиент может только отправлять сообещения на SMSC.
BIND_TRANSCEIVER Подключиться как TRANSCEIVER — клиент осуществляет двухстороннюю передачу сообщений.
SUBMIT_SM Отправить сообщение.
QUERY_SM Запросить статус сообщения.
DELIVER_SM Отправка Delivery Receipt сервером.
ENQUIRE_LINK Проверка связи.
GENERIC_NAK Ошибочная команда.
UNBIND Отключение.
На неподдерживаемые команды сервер будет отвечать сообщением GENERIC_NAK с кодом ошибки ESME_RINVCMDID.

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

Параметр Описание Значения
source_addr_ton Type of Number (TON) — тип номера отправителя.

0x00 — Неизвестный (Unknown).
0x01 — Международный (International).
0x02 — Государственный (National).
0x03 — Сетевой Специальный (Network Specific). 
0x04 — Номер Абонента (Subscriber Number).
0x05 — Алфавитно-цифровой (Alphanumeric).
0x06 — Сокращенный (Abbreviated).

source_addr_npi Numbering Plan Indicator (NPI) — идентификатор плана нумерации отправителя. 0x00 — Unknown
0x01 — ISDN (E163/E164)
0x02 — Data (X.121)
0x03 — Telex (F.69)
0x04 — Land Mobile (E.212)
0x05 — National
0x06 — Private
0x07 — ERMES
0x08 — Internet (IP).
0x09 — WAP Client Id (его должен определять WAP Forum).
dest_addr_ton Type of Number (TON) — тип номера получателя. 0x01 — Международный (International).
dest_addr_npi Numbering Plan Indicator (NPI) — идентификатор плана нумерации получателя. 0x01 — ISDN (E163/E164) (для номеров).
0x02 — National (для остального).
esm_class Указывает Message Mode & Message Type. Используется для определения специальных аттрибутов короткого сообщения. 0x00 — Тип сообщения по умолчанию.
0x40 — UDHI индикатор установлен User Data. Header Indicator — Указатель заголовка пользовательских данных.
registered_delivery Параметр запроса статуса. 0x00 — флаг запроса статуса отключен.
0x01 — флаг запроса статуса включен.
data_coding Определяет схему кодировки пользовательских данных короткого сообщения. 0x01 — IA5(CCITT T.50)/ASCII (ANSI X3.4). латинский алфавит 7 бит на 1 символ, максимальная длина одного сообщения 160 символов.
0x07 — Latin/Hebrew(ISO-8859-8) латинский алфавит 8 бит на 1 символ, максимальная длина сообщения 140 символов.
0x08 — UCS2(ISO/IEC-10646) для национальных алфавитов (например, русского), максимальная длина сообщения 70 символов.
Отправка сообщений

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

Управление кодировками отправляемых сообщений производится через параметр подключения data_coding.

Значения параметра data_coding:

Значение Формат Описание
data_coding 0x01 IA5(CCITT T.50)/ASCII (ANSI X3.4) латинский алфавит 7 бит на 1 символ, максимальная длина сообщения 160 символов.
data_coding 0x07 Latin/Hebrew(ISO-8859-8) латинский алфавит 8 бит на 1 символ, максимальная длина сообщения 140 символов.
data_coding 0x08 UCS2(ISO/IEC-10646) для национальных алфавитов (например, русского), максимальная длина сообщения 70 символов.

Для использования кодировки ISO-8859-1 (ASCII) в параметрах подключения в вашем SMPP-клиенте нужно указать system-type="ISO" (вместо дефолтного значения “GSM”).

Проверка статуса

Получать статус доставки отправленного SMS-сообщения по SMPP-протоколу можно либо в автоматическом (пассивном) режиме, получая от шлюза ответную команду DELIVER_SM сразу после изменения статуса; либо в режиме по запросу (активном) - отдельной командой QUERY_SM.

Для автоматического получения статуса необходимо устанавливать подключение в режиме transceiver или receiver и при отправке SMS указывать флаг запроса статуса registered_delivery в пакете SUBMIT_SM.

Отправляемый шлюзом DELIVER_SM пакет содержит Delivery Receipt сообщение со следующими параметрами:

id ID сообщения.
sub Количество отправленных сообщений.
dlvrd Количество доставленных сообщений.
submit date Время отправки сообщения.
done date Время перехода сообщение в финальное состояние.
status Статус сообщения.
err Может содержать код ошибки в случае не доставки сообщения.

Расшифровка значений поля status (статус сообщения)

delivrd Доставлено.
expired Не доставлено из-за превышения периода ожидания доставки.
deleted Удалено.
undeliv Не может быть доставлено.
acceptd Принято на обработку.
unknown Статус не известен (поле err может содержать код ошибки).
rejected Сообщение отвергнуто.