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 -- Daniel-Constantin Mierla http://www.asipto.com - http://www.kamailio.org http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda _______________________________________________ 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