我只是想知道DLR在SMPP Kannel中排队的具体原因是什么?或被拒绝。
设置SMS流程:客户端SMPP - > SMPP - > HTTP - > HTTP合作伙伴 - >最终用户
谢谢!
答案 0 :(得分:1)
排队的DLR可能意味着一些事情,其中2个似乎是最常见的。
第一个原因是您从未收到过SMSC的DLR。这可能意味着消息在某处丢失,或者终端运营商/中间跳不支持DLR。 DLR将在您的平台上“排队”,直到收到DLR或超时。
第二个原因是您没有收到“最终”DLR,而是您正在接收中间DLR。您可能正在返回类型4(排队/缓冲)DLR。对于一些SMSC,这是最接近的“最终”DLR类型,因为运营商通常不报告成功/不成功传送到实际手机,而是他们通过类型= 4 DLR确认他们收到消息,并将尝试交货。
Kannel正在等待DLR或类型1或2(最终),直到将DLR清除出队列。它会在你的bearerbox.log中看起来像这样。
DLR[internal]: Looking for DLR smsc=test, ts=<>, dst=<>, type=4
DLR[internal]: created DLR message for URL <>
DLR[internal]: DLR not destroyed, still waiting for other delivery report
不幸的是,如果第二个原因导致您的问题,您可能需要修改Kannel源代码,因为据我所知,您不能强制Kannel从队列中删除type = 4 DLR。
希望这有帮助。