NOTE: This patch was superseded by another one I’ve wrote that adds smsc-admin-id instead. The smsc-admin-id patch was already commited to CVS so the use of the smsc-dlr-alias is now officially deprecated.
A problem you may have faced with dlrs on Kannel: If you’re using dlrs and have more than one bind to a given carrier, you need to name them all the same. Otherwise, if the dlr come back over a different bind than the one you’ve used to send the MT message in the first place, Kannel won’t be able to match them, since they won’t share the same “smsc” field.
This is usually OK. However, you lose the ability to control the binds independently: you cannot shutdown a single bind, for example. The problem worsens yet more if your binds are to different data centers (some carriers have redundant SMSC’s on geographycally distant places).
That’s why I’ve created this patch that adds a new configuration option to SMSC groups:
Using this parameter, you can define an alias to use when storing dlrs, so they will match despite being sent/received over different binds.
…#carrier link 1group = smscsmsc = smppsmsc-id = “link1″smsc-dlr-alias = “myalias”allowed-smsc-id = “link1;mylink”host = “126.96.36.199”…#carrier link 2group = smscsmsc = smppsmsc-id = “link2″smsc-dlr-alias = “myalias”allowed-smsc-id = “link2;mylink”host = “188.8.131.52”…
Using this configuration, you just have to use the “&smsc=mylink” parameter on your send-sms url. The dlr will be stored using the alias “myalias” no matter which of these 2 routes the message takes. When getting the response back, again, it will be matched against “myalias”.
Download the patch here.
Please try it and let me know what you think.