Интеграция по SMPP
Подключение происходит через наш SMS-шлюз, с помощью которого можно отправлять сообщения по протоколу SMPP версий 3.4 и 5.0.
Адрес SMPP-сервера: smpp.unibell.ru
Порт: 5070
Поддерживаются подключения в режиме BOUND_TRX.
Множественные подключения
Сервер допускает только одно активное подключение с каждого логина, чтобы обеспечить корректную передачу статусов. Поэтому при новом подключении ранее установленная сессия с тем же логином автоматически завершается. При этом одновременно могут работать несколько подключений с разными логинами, привязанными к одному личному кабинету и одному счету.
Отправка SMS-сообщения
Для отправки SMS-сообщения используйте команду SUBMIT_SM согласно спецификации.
Поддерживаются следующие кодировки:
- 7-битная GSM для латинского текста с поддержкой европейских символов (data_coding=0);
- 8-битная ISO-8859-1 (ASCII) для латинского текста или бинарных данных (data_coding = 1);
- UCS2 (UCS-2BE или UTF-16BE) для национальных алфавитов (data_coding=8).
Для SMS-сообщения поле esm_class в SUBMIT_SM должно быть равно 0.
Скорость передачи не должна превышать 100 сообщений в секунду, в случае превышения лимита в SUBMIT_SM_RESP будет возвращаться ошибка THROTTLING. При необходимости более высокой скорости отправки должно быть организовано несколько входящих подключений с разными логинами.
При автоматическом возврате статуса в команде DELIVER_SM передаются стандартные TLV-параметры:
| Параметр | Описание |
|---|---|
| receipted_message_id | Идентификатор SMS-сообщения |
| message_state | Статус SMS-сообщения (подробнее см. Message state) |
| network_error_code | Код ошибки (подробнее см. Коды ошибок в статусе) |
Отправка HLR-запроса
Для отправки HLR-запроса используйте команду SUBMIT_SM. Значение полей sourceAddr и shortMessage должны быть HLR.
Результат запроса приходит в обычном DELIVER_SM, который можно получить по SMPP-подключению, где передаются стандартные TLV-параметры:
| Параметр | Описание |
|---|---|
| receipted_message_id | Идентификатор HLR-запроса |
| message_state | Статус HLR-запроса (подробнее см. Message state) |
| network_error_code | Код ошибки (подробнее см. Коды ошибок в статусе) |
Статусы в message_state
| Значение | Message state | Описание |
|---|---|---|
| 1 | EVROUTE | Сообщение находится в состоянии доставки (в пути) |
| 2 | DELIVERED | Сообщение доставлено получателю |
| 3 | EXPIRED | Истек срок действия сообщения, оно не может быть доставлено |
| 4 | DELETED | Сообщение было удалено |
| 5 | UNDELIVERABLE | Сообщение не может быть доставлено |
| 6 | ACCEPTED | Сообщение принято (например, вручную прочитано от имени абонента службой поддержки) |
| 7 | UNKNOWN | Сообщение находится в недействительном/неизвестном состоянии |
| 8 | REJECTED | Сообщение отклонено |
Коды ошибок в статусе
Возможные коды ошибок в статусе SMS-сообщений или HLR-запросов (значения networkErrCode).
| Код | Название | Описание |
|---|---|---|
| 0 | Нет ошибки | Абонент существует и доступен |
| 1 | Абонент не существует | Указанный номер телефона не существует |
| 6 | Абонент не в сети | Телефон абонента отключен или находится вне зоны действия сети |
| 11 | Нет услуги SMS | Означает, что абонент не может принять SMS-сообщение. Например, услуга не подключена, или абонент находится в роуминге, где не активирован прием сообщений, или у оператора абонента не налажен обмен SMS с текущим роуминговым оператором. Также это может быть городской номер без приема сообщений |
| 12 | Ошибка в телефоне абонента | Не удается доставить сообщение абоненту из-за ошибки в телефонном аппарате или SIM-карте |
| 13 | Абонент заблокирован | Возникает, например, если на счету абонента нулевой или отрицательный баланс, и он находится в роуминге, или заблокирован оператором за продолжительную неуплату либо добровольно самим абонентом. Также данная ошибка может возвращаться при повреждении SIM-карты либо неправильном вводе PIN и PUK-кодов SIM-карты |
| 21 | Нет поддержки сервиса | Аппарат абонента не поддерживает работу с данной услугой (сервисом) |