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