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!
--
Kind regards,
Dirk Teurlings