Hello all, We are using Kannel 1.4.3 Stable release in a major installation of one of our clients. Everything is working as expected except SMS delivery report handling (we are using "internal" delivery storage type - for performance reasons). We are facing two problems :
--> After a graceful restart of bearerbox and smsbox all incoming delivery reports, for SMS messages sent before the graceful restart, cannot be handled . The error log is clear "DLR from SMSC<....> for DST<....> not found." Kannel latest documentation (Table 3-1. Core Group Variables) clearly states : "store-type filename Kannel can use store subsystem that means storing messages on hard disk until they are successfully handled. By using this subsystem, no SMS messages are lost in Kannel even by crash, but theoretically some messages can duplicate when system is taken down violently. This variable defines a type of backend used for store subsystem. Now two types are supported: a) file: writes store into one single file b) spool: writes store into spool directory (one file for each message) store-location filename Depends on store-type option used, it is ether file or spool directory. store-dump-freq seconds Approximated frequency how often the memory dump of current pending messages are stored to store-file, providing something has happened. Defaults to 10 seconds if not set." We are using "file" store type. After monitoring the specific file we noticed that records are written for every MT SMS we send, but immediately after sending the SMS (and before the delivery report is received) the relevant record is deleted! It seams like the "store-type" functionality Kannel provides is only for sending MT SMS messages and not for DLRs and DLR information is stored in memory only. Can you clarify that please? --> In some cases DLRs cannot be handled - with no obvious reason, as no WARN, ERROR, FATAL logs are recorded - (no restart of bearerbox and/or smsbox is performed here). We have monitored the log files and pinpoint that the issue is located in "dlr_find" method of "dlr.c" class. In particular for the same worker thread we see the "DLR[%s]: Looking for DLR smsc=%s, ts=%s, dst=%s, type=%d" but never see the "DLR[%s]: created DLR message for URL <%s>" although neither "DLR[%s]: DLR from SMSC<%s> for DST<%s> not found." or "DLR[%s]: Ignoring DLR message because of mask type=%d dlr->mask=%d" are recorded. It seams like the DLR is found but something happens while Kannel trying to create the DLR message for the callback URL! Due to the fact that this is an abnormal case and is not happening for all DLRs, can you please elaborate on the issue and clarify what can go wrong in the creation of the DLR callback URL? Thanx in advance Justin