Finally I found the issue. In ims_auth module >  cxdx_mar.c > 
async_cdp_callback function, within the done label, there is a call to 
t_continue function that should find the transaction and execute the callback 
for ims_www_challenge (REG_MAR_REPLY  route),
tmb.t_continue(data->tindex, data->tlabel, data->act);

however because the transaction is already put on wait by calling 
put_on_wait(trans); inside _reply_light function in tm module, the transaction 
is in terminated phase and that's the reason why the callback is never executed.
Strangely, for SAR requests, instead of t_continue, t_continue_skip_timer 
function is called t_continue_skip_timer:
tmb.t_continue_skip_timer(data->tindex, data->tlabel, data->act);

That effectively ignores the transaction state, and calls the respective 
callback function.
I checked the newer version and didn't find any change in the function calls. 

I used t_continue_skip_timer for MAR request and everything worked as expected.
Can I use the t_continue_skip_timer instead of t_continue for MAR requests too 
without any concern? Is there any side effect? what about unreleased 
transactions and memory leak?
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions -- 
[email protected]
To unsubscribe send an email to [email protected]
Important: keep the mailing list in the recipients, do not reply only to the 
sender!

Reply via email to