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
Hello,
this behaviour is intended to absorb the retransmissions -- if the transaction is found, the request was already processed (could be by another application process) and makes no sense to process it again . If you don't use t_check_trans(), it will be anyhow discarded later when t_relay() or t_newtran() is executed, because the transaction is already in memory -- but usually that means you consumed some extra cpu/memory to get there.
Cheers, Daniel
On 07/07/16 09:59, Sebastian Damm wrote:
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
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