Получил DLR, но не смог найти сообщение или не интересовался некоторыми сообщениями - kannel
Я настроил Kannel с помощью SMSC. Проблема в том, что я получаю отчеты о доставке для некоторых сообщений, а для некоторых других я получаю:
ERROR: SMPP[XXX]: got DLR but could not find message or was not interested in it id<2691146294> dst<98XXXXXXXXXX>, type<1>
вот моя конфигурация:
group = core
admin-port = 13000
admin-password = 123456
status-password = 654321
admin-deny-ip = "*.*.*.*"
admin-allow-ip = "127.0.0.1"
smsbox-port = 13001
box-deny-ip = "*.*.*.*"
box-allow-ip = "127.0.0.1"
log-file = "/var/log/kannel/bearerbox.log"
log-level = 1
store-type = spool
store-location = "/var/lib/kannel"
store-dump-freq = 60
sms-incoming-queue-limit = 10000000
sms-outgoing-queue-limit = 10000000
sms-resend-freq = 10
sms-resend-retry = -1
access-log = "/var/log/kannel/bearerbox-access.log"
group = smsc
smsc = smpp
smsc-id = my-smsc
host = XXX.XXX.XXX.XXX
port = 5019
receive-port = 5019
system-type = VMA
smsc-username = XXX
smsc-password = XXX
throughput = 1
reconnect-delay = 10
msg-id-type = 0x01
group = smsbox
smsbox-id = my-smsbox
bearerbox-host = 127.0.0.1
sendsms-port = 13013
log-file = "/var/log/kannel/smsbox.log"
log-level = 1
group = smsbox-route
smsbox-id = my-smsbox
smsc-id = my-smsc
group = sendsms-user
username = username
password = password
concatenation = true
max-messages = 100
Я отправляю каждое сообщение с dlr-mask
установить на 3 и dlr-url
как это:
http://10.0.0.1/delivery?id=12345687&type=%d"
id
идентификатор сообщения в базе данных кто-нибудь может помочь?
2 ответа
С sjbotha
"Я не Гуру Каннеля, но я видел это много раз, это могло произойти по крайней мере по четырем причинам:
(1) Вы отправили сообщение через другое соединение с другим идентификатором SMSC, обратный вызов DLR не получит совпадения, например, передающее соединение использует другой идентификатор SMSC, чем соединение получателя, потому что kannel также совпадает с идентификатором SMSC!!
(2) Вы отправили сообщение без запроса DLR, например, dlr_mask = 0, тогда kannel не сохранит ссылку на отправленное сообщение. Но перевозчик прислал вам DLR!! Это может произойти, потому что некоторые операторы отправляют вам DLR, даже если вы не просите об этом.
(3) Когда вы отправляете сцепленный MT, kannel сохраняет ссылку только для первой части и игнорирует другие части, но некоторые операторы отправляют вам DLR для всех частей, другие части не находят соответствия.
(4) Этот случай является наиболее критическим, некоторые операторы отправляют вам DLR перед отправкой ACK! DLR не получит совпадения, потому что kannel еще не сохранил ссылку на сообщение! он ожидает submit_sm_resp (ACK,NACK,...), прежде чем сохранить ссылку в магазине, у Алекса было исправление, но у него есть проблемы с производительностью ".
Ну, я надеюсь, что это поможет вам:)
Ваш канал, возможно, не сможет обработать dlr, так как он может быть занят. Вы можете использовать базу данных mysql для хранения dlr, ни один из ваших dlr не потеряется. обращаться
http://eshaiju.blogspot.in/2013/09/configuring-mysql-dlr-storage.html