Hi,
In our config we don't use presence, but I do have a question about transactions.
We're using dialogs as well as transactions in the routing. To keep things simplyfied, let's assume we have the following stripped out route setup:
request_route {
if (is_method("CANCEL")) { if (t_check_trans()) { t_relay(); } exit; }
# As stated in documentation, this call could stop further # routing from here on out t_check_trans();
if (is_method("INVITE")) { if (ds_is_from_list()) { setflag(DLG_FLAG); } setflag(FLT_ACC); }
if (lookup("loction") == -1 ) {
if(load_gws(1)) { t_newtran();
t_on_failure("TFAIL"); } } }
route[TFAIL] { xlog("L_ERR", "Failed setting up transaction"); }
What I'd like to know is when or even if we need to be releasing the transaction at some point. From what I understand in the presence example I should be releasing a transaction when I use t_newtran, but I haven't found any evidence of needing it when working with t_relay or t_check_trans.
For example, could it be needed to do a t_release() on a dialog_terminated or dialog_end event?
In the above example, would it just be enough to add t_release() to the failure route TFAIL?
Further details about how and/or when the transactions are cleaned up internally would be greatly appreciated!