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