One of the main reasons for this feature is if the SMS is not delivered then
you will not get back the
SMSC ID in the deliver_sm. In this case if you query the SMS's status with
some mobile operators they
insist you to give them the SMSC ID. You can't give them your Kannel SMS ID
:) so you need to dig around in the database to try find it, which is
difficult if you have large systems with many SMSs. So to have a patch for
this in CVS would be great.

Kannel already calls the dlr-url when it gets the submit_sm_resp from the
SMSC.
It also gets the SMSC ID from the submit_sm_resp at this point.

So to get the SMSC ID is just a simple change, by allowing Kannel to pass to the dlr-url the SMSC ID when it calls it after getting the submit_sm_resp.

Its only a few lines of code. However, I've been told this will break the abstraction and so to keep Kannel "pure" we have never put this in CVS. Fred sent me a patch for a older version of Kannel which is so simple, I only need to change it for the latest CVS. So if the Kannel CVS maintainers will allow it, I'll test it works for the latest CVS or ask Fred to submit it.

I haven't seen the patch, but would like to, so don't know how it works, but if it allows the ID via a substitution variable like the other ones that can be used in dlr-url I don't see how it can break the abstraction.

Ok so not all smsc protocol give back an ID I guess, but lets face it we have things like %o which is dependent on the SMSC module providing it, so thats not consistent, neither I suspect is %B for the incoming billing identifier. Unlike the %o every DLR stored in the database does have something in the ts field, even if its not a unique ID generated by the smsc, its still something that should be available in the dlr-url.

Regards

Ben




Reply via email to