[SR-Users] t_check_trans() exits route execution if transaction is found

Sebastian Damm damm at sipgate.de
Thu Jul 7 09:59:12 CEST 2016


Hi,

on one of our systems we are checking a few times whether a
transaction already exists. We noticed that route execution stops if
the transaction is found. And after looking into the code, we found
that it seems to be intended like this.

>From tm.c:
        int t_check_trans(struct sip_msg* msg)
        {
                if (msg->first_line.type==SIP_REPLY) {
               [..]
                } else {
                        switch(t_check_msg(msg, 0)){
                                [..]
                                case 1: /* found */
                                       [..]
                                       return 0; /* exit from the script */
                        }
                }
        }

Can anybody explain, why script execution should stop when a running
transaction is found? I would expect that then the function returns 1
so I can use it in my if statement and continue with my routing
script.

Thanks already for an explanation,
Sebastian



More information about the sr-users mailing list