Чтение ошибок DLR канала

У меня есть канал SMPP (kannel.org) и я получаю смс статусы по параметру:% d

А вот таблица:

16 = не доставлено на smsc 8 = вы отправили на smsc. то есть smsc сообщает kannel, что у него есть сообщение 4 = сообщение находится в очереди smsc. т.е. smsc сообщает kannel, что он поставил сообщение в свою очередь. 2 = не удалось 1 = доставлено на телефон

Но здесь очень мало информации. Как я могу получить дополнительную информацию о (неправильный номер или что-то в этом роде)? Сейчас это просто провал, и все, если мы хотим знать, почему потерпели неудачу, мы должны обратиться за поддержкой к нашим партнерам.


person Community    schedule 30.03.2012    source источник


Ответы (2)


Более подробную информацию об ошибке доставки вы можете получить из следующих источников:

  • network_error_code TLV (0x0423) - см. стр. 5.3.2.31 спецификации SMPP v3.4
  • текстовая часть сообщения DLR (% A в dlr-url)
  • command_status в случае отклонения (представлен как "NACK / $ code"

Пример текстовой части в DLR:

id: 0832095221 sub: 001 dlvrd: 000 дата отправки: 1203311115 дата завершения: 1204010436 stat: UNDELIV err: 011 текст: текст здесь

Здесь вы можете увидеть код ошибки 011 в недоставленном сообщении.

Однако с каждым новым SMSC необходимо обнаруживать множество проблем, связанных с конкретными поставщиками. И никаких жестких требований в спецификации SMPP к информации, представленной в DLR.

person michael.bochkaryov    schedule 01.04.2012
comment
Спасибо, Майкл! Я использую параметр% A для получения дополнительной информации и выглядит нормально. Где я могу получить таблицу кодов ошибок, например err: 011 is undeliverable message? - person ; 03.04.2012
comment
Эту информацию лучше запросить у поставщика SMSC (или у вашего оператора связи). Некоторые коды должны присутствовать на www.3gpp.org (попробуйте найти ссылки в 3GPP TS 03.40). - person michael.bochkaryov; 03.04.2012

Для вашего URL-адреса DLR добавьте это: dlr_mask = 31 dlr_url = ....? Answer =% A & status =% d

Где битовая маска DLR означает: 1: получено по телефону 2: не удалось доставить на телефон 4: поставлено в очередь на доставку 8: принято другим SMSC 16: отклонено другим SMSC

Если вы получите 16 или 2, это будет выглядеть так: status = ‹2 или 16 здесь> answer = NACK //

Получить от оператора связи таблицу, отображающую hex_code в его значение, зависящее от поставщика.

person gfunk    schedule 21.08.2013