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


_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to