質問

I am hoping someone can help me work through an issue I am having regarding DLRs of the "intermediate" type (ie type=4) continuing to queue.

My understanding is that in the US, DLR that are successful and final (ie DELIVERED (1)), are rare while intermediate DLR such as "Queued on SMSC". ACCEPTD, REJECTD are much more common as carriers accept messages on behalf of their customers.

The SMSC we use send back exclusively type=2 for undelivered messages and type=4 DLR for messages that are successfully delivered to the carrier. We are using internal DLR storage in Kannel (not using mysql) and the problem is that a DLR of type=4 is not considered final and thus does not leave the DLR queue. When we get a type=4 DLR back, the following messages are seen in the bearerbox log.

2013-11-05 14:59:06 [15084] [6] DEBUG: DLR[internal]: Looking for DLR smsc=test, ts=4154168431, dst=<censored>, type=4
2013-11-05 14:59:06 [15084] [6] DEBUG: DLR[internal]: created DLR message for URL <http://localhost/dlr.php>
2013-11-05 14:59:06 [15084] [6] DEBUG: DLR[internal]: DLR not destroyed, still waiting for other delivery report

It appears Kannel is waiting for a DLR of type=1 or 2 to come in before it takes the DLR out of its queue.

Is there a Kannel setting to make it so a type=4 DLR is considered a final DLR and thus clear the DLR out of memory? I've messed with the dlr-mask setting in Kannel but I don't think that attribute holds my answer.

Thanks in advance and please let me know if I can provide any further information.

TL;DR: How can I have Kannel consider a DLR of type=4 to be a final DLR.

役に立ちましたか?

解決

You cannot do that without altering the source code. Those values are hardcoded in the Kannel source code and cannot be changed by, say, a configuration value or an URL parameter to the sendsms address.

At least you can be happy that you're getting the DLRs. You could use some kind of external storage for the DLRs, like MySQL, and delete those entries in the DLR table from your application after you don't need them anymore.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top