Hi Guys,
I'd like to try and add the functionality to be able to CANCEL an early dialog when dlg_end_dlg is called. At the moment we cannot terminate an early dialog through MI interface. Do any of you have any tips/pointers/ideas before I start?
Cheers jason
Hey Jason,
On 11.08.2010 07:48, Jason Penton wrote:
I'd like to try and add the functionality to be able to CANCEL an early dialog when dlg_end_dlg is called. At the moment we cannot terminate an early dialog through MI interface. Do any of you have any tips/pointers/ideas before I start?
You may want to take a look at the new dialog module proposal
http://www.kamailio.com/dokuwiki/doku.php/modules-new-design:dialog-module-d...
especially the section on "proxy-initiated dialog termination"
http://www.kamailio.com/dokuwiki/doku.php/modules-new-design:dialog-module-d...
Basically, what you'd need to do in the first place is have the dialog module keep track of all early dialogs being established. When you issue a CANCEL, the module should iterate through the list of early dialogs and send out a CANCEL for each.
I haven't sorted out the gory details myself yet and I'm a little pressed on time right now so I have to leave you with this for the moment. I'll try to get back to this as soon as time permits.
Cheers,
--Timo
On 11.08.2010 10:34, Timo Reimann wrote:
On 11.08.2010 07:48, Jason Penton wrote:
I'd like to try and add the functionality to be able to CANCEL an early dialog when dlg_end_dlg is called. At the moment we cannot terminate an early dialog through MI interface. Do any of you have any tips/pointers/ideas before I start?
Basically, what you'd need to do in the first place is have the dialog module keep track of all early dialogs being established. When you issue a CANCEL, the module should iterate through the list of early dialogs and send out a CANCEL for each.
I haven't sorted out the gory details myself yet and I'm a little pressed on time right now so I have to leave you with this for the moment. I'll try to get back to this as soon as time permits.
I have just taken a look at Iñaki's latest comment in the proposal: If I get him right, you could possibly cancel an early dialog by means of having the tm module cancel the transaction. That would make the task of keeping track of all existing branches unnecessary and save a lot of work.
So one reasonable approach would be to check how easily one can harness the tm module to cancel a transaction and send back a specific SIP code to the UAC.
Cheers,
--Timo