Сервис получения статусов доставки#

Специфика передачи отчётов доставки#

Сервис-провайдер передаёт Партнёру статус доставки и дату прочтения отдельными пакетами deliver_sm.

При необходимости, в состав пакета deliver_sm могут быть включены дополнительные TLV-параметры, содержащие расширенную информацию о сообщении.

Статус доставки сообщения передаётся в TLV-параметре message_state.

Предупреждение

Внимание! Для SMS-сообщений, отправленных абонентам оператора Мегафон, с 01.03.2023 прекращена передача статусов DELIVRD и UNDELIV.

Количество отчётов о доставке сообщений, которое Сервис-провайдер отправит Партнёру, зависит от сценария и настроенного режима доотправки (см. TLV-параметры запроса).

В таблице приведены примеры для ситуации, когда настроена комбинация отправки VK → SMS.

Сценарий

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

Примечание

VK-сообщение было доставлено до абонента, затем прочитано абонентом в пределах времени жизни сообщения.

N — не производить доотправку

Будут переданы два отчета:

  1. VK-сообщение доставлено.

  2. VK-сообщение прочитано.

За время жизни VK-сообщения Сервис-провайдер не получил от VK ни одного статуса.

N — не производить доотправку

Отчёты не передаются.

VK-cообщение не доставлено до абонента (Сервис-провайдер получил ошибку от VK).

N — не производить доотправку

Будет передан один отчёт: VK-сообщение не доставлено.

Y — производить доотправку по получению статуса недоставлено

Будет передан один отчёт: SMS-сообщение доставлено или не доставлено.

VK-сообщение было доставлено до абонента, но не было прочитано абонентом в пределах времени жизни сообщения.

S — то же, что и Y, плюс производить доотправку по неполучению статуса просмотрено в течение срока жизни сообщения

Будут переданы два отчета:

  1. VK-сообщение доставлено.

  2. SMS-сообщение доставлено или не доставлено.

Настройки для получения статусов#

Для получения уведомления о статусах доставки сообщений необходимо при отправке пакета 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

При передаче уведомления о статусе доставки esm_class = 4.

Дополнительные 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

Статус доставки сообщения.
Возможные значения:
  • ENROUTE(1) — сообщение отправлено;

  • DELIVRD(2) — сообщение доставлено;

  • EXPIRED(3) — сообщение удалено из очереди по истечении времени жизни;

  • DELETED(4) — сообщение удалено;

  • UNDELIV(5) — все остальные случаи недоставки;

  • ACCEPTD(6) — сообщение принято платформой для последующей передачи абоненту;

  • UNKNOWN(7) — платформа Сервис-провайдера в течение установленного времени не получила ответа от оператора;

  • REJECTD(8) — сообщение отклонено на этапе отправки (текст сообщения не прошел модерацию);

Если сообщение прочитано абонентом, Партнёру передается статус DELIVRD с дополнительным TLV-параметром seen_date в формате “YYMMDDhhmm”.

message_type

Tag

2

Integer

id = 0x1440

Length

2

Integer

Длина параметра в октетах.

Value

6 или 4

Octet String

Тип сообщения.
Возможные значения:
  • VIBER;

  • VK;

  • SMS;

  • FLASHINGCALL;

  • PUSH.

Значение оканчивается 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

На стороне оператора сработал СПАМ-фильтр по тексту сообщения.