Я настроил канал с помощью 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
это идентификатор сообщения в базе данных. может кто-нибудь помочь?
из http://www.kannel.org/pipermail/users/2011-July/016183.html
«Я не являюсь Kannel Guru, но я видел это много раз, это могло произойти по крайней мере по 4 причинам:
(1) Вы отправили сообщение через другое соединение с другим идентификатором SMSC, DLR обратного вызова не найдет совпадения, например Соединение передачи использует другой идентификатор SMSC, чем соединение приемника, потому что kannel также соответствует ID SMSC !!
(2) Вы отправили сообщение без запроса DLR, например dlr_mask = 0, тогда kannel не будет хранить ссылку на отправленное сообщение. Но перевозчик отправил вам DLR !! это может произойти из-за того, что некоторые операторы отправляют вам DLR, даже если вы этого не просите.
(3) Когда вы отправляете объединенный MT, kannel сохраняет ссылку только для первой части и игнорирует другие части, но некоторые операторы отправляют вам DLR для всех частей, другие части не найдут совпадения.
(4) Этот случай является наиболее важным, некоторые операторы связи отправляют вам DLR перед отправкой ACK! DLR не найдет совпадения, потому что kannel еще не сохранил ссылку на сообщение! он ожидает submit_sm_resp (ACK, NACK, ...) перед сохранением ссылки в хранилище, у Alex есть исправление для этого, но это снижает производительность ".
Что ж, надеюсь, это вам поможет :)
Возможно, ваш канал не сможет обработать dlr, так как он может быть занят. Вы можете использовать базу данных mysql для хранения dlr, ни одна из ваших dlr не потеряется. ссылаться
http://eshaiju.blogspot.in/2013/09/configuring-mysql-dlr-storage.html