Чтение ошибок канала DLR - PullRequest
1 голос
/ 30 марта 2012

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 01 апреля 2012

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

  • 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 стат: UNDELIV ошибка: 011 текст: текст здесь

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

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

0 голосов
/ 22 августа 2013

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

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

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

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

...