There are a couple of reasons you might not want to use internal storage. The first is that its wiped out when Kannel restarts, so if there is a problem, or you want to add a new SMSC into the configuration any outstanding DLRs are lost.

okay, so if you had say, 100,000 messages that were 'buffered' by the smsc that you were waiting for completion on, and you restarted kannel, then you'd just never know for those messages whether they were delivered or not.

Correct.


The second would be if you had 2 Kannel boxes running and there was the possibility of a DLR coming back into the other Kannel box from the one that sent it. You would need to have a single database that both boxes shared.

couldn't achieve the same result by using the same dlr-url for both boxes?

The dlr-url is stored in the internal storage, so if the DLR came into the second Kannel box it would have no way of knowing what the dlr-url was because it would be in the first Kannel boxes internal storage not the second. So the second Kannel box would just ignore the DLR that came in.


Its quite possible that people have phones switched off in meetings, on flights, go on an underground train etc. So whilst most messages are delivered quickly its possible with a large volume of messages to see outstanding DLRs for quite some time.

yes i can definately see the 'restarting kannel' part as being a problem here. if you had loads of messages with interim dlr states, and had to wait til the entire queue was empty in order to restart that would be a pain.

however, doesn't the dlr-url get called everytime kannel receives a dlr (if you have dlr-mask = 31)?

Ah, a slight misunderstanding, which explains your thoughts on the same DLR above. You really should specify a unique dlr-url with each message, otherwise you can't be sure which message DLR caused the call back of the dlr-url.

The default dlr-url as specified in the config file is used only when one is not given with the message at the time of submission. It is then stored with the message details in the whatever dlr storage method you have chosen.

When a new DLR comes the url is always taken from the storage, never from the config file.


so really the only cause to use mysql or postgresql storage would be if you had dlr-mask < 31

cheers

iain

Regards

Ben


Reply via email to