The internal dlr storage is called "internal" for a reason I dont know,
I assume the developers called it in such way because it keeps
the internal Kannel statuses of the message in the
internal Kannel queue, as SENT, FAILED, QUEUED.

Quick overview for you.

When a message is submitted to an SMSC that you have asked for a DLR on, the details of the message need to be saved (i.e. the URL its going to call, the mask, some way of identifying the specific message). When the SMSC sends a DLR back to kannel, all the saved messages are checked to see which one the DLR matches (if any), then the mask is checked and the URL called if required.

Once a final DLR is received, such as delivered the message details are removed.

Now the default internal dlr storage is done in memory and has no persistence (i.e. when you restart kannel it looses all the saved messages, which means that when a DLR comes in from a previous message you won't get your URL called). There are other DLR storage schemes using databases such as PostgreSQL or MySQL etc, which obviously are not lost when kannel restarts.

Hope that helps.

Ben

Reply via email to