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!
