我用smscconfiguration了kannel。 问题是我得到了一些消息的交付报告,并得到一些其他的消息:
ERROR: SMPP[XXX]: got DLR but could not find message or was not interested in it id<2691146294> dst<98XXXXXXXXXX>, type<1>
这里是我的configuration:
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是数据库中的消息ID。 谁能帮忙?
从http://www.kannel.org/pipermail/users/2011-July/016183.html
“我不是一个Kannel古鲁,但我已经看过很多次了,至less有四个原因可能会发生:
(1)您通过不同SMSC ID的不同连接发送消息,callbackDLR将不会得到匹配例如传输连接使用与接收方连接不同的SMSC ID,因为信道与SMSC ID匹配!
(2)你发送了一条消息而不询问DLR,例如dlr_mask = 0,那么kannel将不存储对发送消息的引用。 但运营商送你一个DLR! 这种情况可能会发生,因为有些运营商即使没有要求,也会向您发送DLR。
(3)发送连接的MT时,kannel仅保留第一部分的引用,忽略其他部分,但某些操作员将所有部分的DLR发送给您,其他部分不会find匹配。
(4)这种情况是最关键的,有些运营商在发送ACK之前向您发送DLR! DLR将不会得到一个匹配,因为kannel没有保存消息参考! 它在存储引用之前等待submit_sm_resp(ACK,NACK,…),Alex对此有一个修正,但是它有性能的惩罚。
那么,我希望这可以帮助你:)
你可能无法处理dlr,因为它可能很忙。 您可以使用MySQL数据库的dlr存储,您的任何dlr都不会丢失。 参考
http://eshaiju.blogspot.in/2013/09/configuring-mysql-dlr-storage.html