Сервис получения статусов доставки#
Специфика передачи отчётов доставки#
Сервис-провайдер передаёт Партнёру статус доставки и дату прочтения отдельными пакетами deliver_sm
.
При необходимости, в состав пакета deliver_sm
могут быть включены дополнительные TLV-параметры, содержащие расширенную информацию о сообщении.
Статус доставки сообщения передаётся в TLV-параметре message_state
.
Предупреждение
Внимание! Для SMS-сообщений, отправленных абонентам оператора Мегафон, с 01.03.2023 прекращена передача статусов DELIVRD
и UNDELIV
.
Количество отчётов о доставке сообщений, которое Сервис-провайдер отправит Партнёру, зависит от сценария и настроенного режима доотправки (см. TLV-параметры запроса).
В таблице приведены примеры для ситуации, когда настроена комбинация отправки VK → SMS.
Сценарий |
Режим доотправки |
Примечание |
---|---|---|
VK-сообщение было доставлено до абонента, затем прочитано абонентом в пределах времени жизни сообщения. |
|
Будут переданы два отчета:
|
За время жизни VK-сообщения Сервис-провайдер не получил от VK ни одного статуса. |
|
Отчёты не передаются. |
VK-cообщение не доставлено до абонента (Сервис-провайдер получил ошибку от VK). |
|
Будет передан один отчёт: VK-сообщение не доставлено. |
|
Будет передан один отчёт: SMS-сообщение доставлено или не доставлено. |
|
VK-сообщение было доставлено до абонента, но не было прочитано абонентом в пределах времени жизни сообщения. |
|
Будут переданы два отчета:
|
Настройки для получения статусов#
Для получения уведомления о статусах доставки сообщений необходимо при отправке пакета submit_sm
указать параметр registered_delivery
= 1.
Для отправки отчёта о доставке от платформы Сервис-провайдера к сервису Партнёра используется пакет deliver_sm
с параметром esm_class
= 0x04. Формат пакета соответствует
спецификации SMPP 3.4, Appendix B.
Количество логических частей сообщения является расчётной величиной, вычисляемой внутри платформы Сервис-провайдера, поэтому на каждый полученный пакет submit_sm
будет
отправлен только один пакет deliver_sm
.
Количество логических частей указывается в поле sub
пакета deliver_sm
. В случае, если разбивка длинного сообщения
производилась на стороне Партнёра, то в каждом поле sub
соответствующего deliver_sm
будет указано количество логических частей для всего (целого) сообщения.
Передаваемые параметры#
В таблице приведены параметры пакета deliver_sm
, передаваемого от Сервис-провайдера Партнёру.
Параметр |
Тип |
Описание |
---|---|---|
source_addr |
string |
Телефон абонента. |
dest_addr |
string |
Сервисное имя. |
short_message |
string |
Отчёт о прочтении.
Отчёт о доставке/прочтении сообщения формируется в виде строки:
id: IIIIIIIIII sub: SSS dlvrd: DDD submit date: YYMMDDhhmm
done date:YYMMDDhhmm stat: DDDDDDD seen date: YYMMDDhhmm err: E text: ... . |
esm_class |
string |
При передаче уведомления о статусе доставки |
Дополнительные TLV-параметры#
TLV-параметр |
Поле |
Размер (октетов) |
Тип |
Описание |
---|---|---|---|---|
receipted_message_id |
Tag |
2 |
Integer |
id = 0x001E |
Length |
2 |
Integer |
Длина параметра в октетах. |
|
Value |
1 — 65 |
Octet String |
Идентификатор сообщения на стороне Сервис-провайдера. |
|
message_state |
Tag |
2 |
Integer |
id = 0x0427 |
Length |
2 |
Integer |
Длина параметра в октетах. |
|
Value |
1 |
Integer |
Статус доставки сообщения.
Возможные значения:
Если сообщение прочитано абонентом, Партнёру передается статус
|
|
message_type |
Tag |
2 |
Integer |
id = 0x1440 |
Length |
2 |
Integer |
Длина параметра в октетах. |
|
Value |
6 или 4 |
Octet String |
Тип сообщения.
Возможные значения:
Значение оканчивается 0x00 байтом. |
|
seen_date |
Tag |
2 |
Integer |
id = 0x1441 |
Length |
2 |
Integer |
Длина параметра в октетах. |
|
Value |
13 |
Octet String |
Дата прочтения сообщения в формате «YYMMDDhhmm». Значение оканчивается 0x00 байтом. |
|
ptag |
Tag |
2 |
Integer |
id = 0x1411 |
Length |
2 |
Integer |
Длина параметра в октетах. |
|
Value |
до 50 |
Octet String |
Идентификатор сообщения в системе Партнёра. Может содержать от 1 до 50 символов.
Допустимые символы: 0…9a…zA…Z-.
Это может быть любой идентификатор в системе Партнёра.
Например, уникальный идентификатор сообщения или идентификатор
подразделения, инициирующего запрос на отправку.
Сервис-провайдер не контролирует значения, переданные в параметре
ptag (проверяется только соответствие формату). |
Описание кодов ошибок (поле err)#
Если сообщение не доставлено, вместе со статусом недоставки в поле err
передается расширенный код ошибки с описанием причины недоставки.
В разделе приведено описание ошибок при отправке сообщений разных типов.
Код |
Описание ошибки |
---|---|
1 |
В процессе доставки сообщения произошла неизвестная платформе ошибка, либо оператор не предоставил ошибку в отчете о доставке. |
2 |
Аппарат абонента был выключен или находился вне зоны действия сети на протяжении всего времени попыток доставки сообщения. |
3 |
Аппарат абонента заблокирован, либо у абонента включен запрет на прием сообщений, либо абонент находится в роуминге с включенным запретом на прием сообщений в роуминге. |
4 |
В процессе доставки сообщения произошла ошибка на транспортном уровне сигнальной сети. |
5 |
Память телефона абонента переполнена. |
6 |
У абонента не подключена услуга приема сообщений. |
7 |
Коммутационное оборудование, на котором зарегистрирован абонент, не отвечает. |
8 |
Некорректный номер абонента, либо телефон абонента был выключен на протяжении очень долгого периода времени. |
9 |
Сообщение было отброшено платформой, так как сработал механизм отсечения дубликатов сообщений. |
10 |
Сообщение было отброшено платформой, так как сработал один из фильтров сообщений, например, спам-фильтр. |
11 |
Ошибка маршрутизации в конфигурации платформы. |
12 |
Номер абонента находится в чёрном списке оператора. |
13 |
Отправка сообщения с незарегистрированного у оператора имени отправителя. |
14 |
На стороне оператора сработал СПАМ-фильтр по тексту сообщения. |
Код |
Описание ошибки |
---|---|
1 |
В процессе доставки сообщения произошла неизвестная платформе ошибка, либо оператор не предоставил ошибку в отчете о доставке. |
3 |
Аппарат абонента заблокирован, либо у абонента включен запрет на прием сообщений, либо абонент находится в роуминге с включенным запретом на прием сообщений в роуминге. |
5 |
Память телефона абонента переполнена. |
6 |
У абонента не подключена услуга приема сообщений. |
7 |
Коммутационное оборудование, на котором зарегистрирован абонент, не отвечает. |
9 |
Сообщение было отброшено платформой, так как сработал механизм отсечения дубликатов сообщений. |
11 |
Ошибка маршрутизации в конфигурации платформы. |
Код |
Описание ошибки |
---|---|
1 |
В процессе доставки сообщения произошла неизвестная платформе ошибка, либо оператор не предоставил ошибку в отчете о доставке. |
3 |
Аппарат абонента заблокирован, либо у абонента включен запрет на прием сообщений, либо абонент находится в роуминге с включенным запретом на прием сообщений в роуминге. |
6 |
У абонента не подключена услуга приема сообщений. |
10 |
Сообщение было отброшено платформой, так как сработал один из фильтров сообщений, например, спам-фильтр. |
11 |
Ошибка маршрутизации в конфигурации платформы. |
Код |
Описание ошибки |
---|---|
1 |
В процессе доставки сообщения произошла неизвестная платформе ошибка, либо оператор не предоставил ошибку в отчете о доставке. |
7 |
Коммутационное оборудование, на котором зарегистрирован абонент, не отвечает. |
8 |
Некорректный номер абонента, либо телефон абонента был выключен на протяжении очень долгого периода времени. |
9 |
Сообщение было отброшено платформой, так как сработал механизм отсечения дубликатов сообщений. |
11 |
Ошибка маршрутизации в конфигурации платформы. |
13 |
Отправка сообщения с незарегистрированного у оператора имени отправителя. |
18 |
Указаны неверные параметры запроса или не указаны обязательные параметры. |
19 |
Не найдена карточка с передаваемым идентификатором абонента. |
20 |
Не найдена карточка с передаваемым номером телефона абонента. |
22 |
Не найдено активных установок мобильного приложения на устройстве пользователя. |
23 |
У пользователя мобильного приложения установлен запрет на получение push-уведомлений на уровне приложения. |
24 |
У пользователя мобильного приложения установлен запрет на получение push-уведомлений на уровне операционной системы. |
26 |
Не найдена установка мобильного приложения на устройстве пользователя. |
27 |
Версия приложения меньше минимально допустимой версии. В текущей реализации актуально только для IOS. |
28 |
Облачный провайдер (APNS, FCM, HMS, RuStore) , через которого выполняется отправка уведомления, вернул ошибку. |
Код |
Описание ошибки |
---|---|
1 |
В процессе доставки сообщения произошла неизвестная платформе ошибка, либо оператор не предоставил ошибку в отчете о доставке. |
2 |
Аппарат абонента был выключен или находился вне зоны действия сети на протяжении всего времени попыток доставки сообщения. |
4 |
В процессе доставки сообщения произошла ошибка на транспортном уровне сигнальной сети. |
6 |
У абонента не подключена услуга приема сообщений. |
16 |
Номер абонента занят. |