I can confirm this behavior. I had a similar scenario when 2 or more branches were setup. First branch timed out, while second branch was being processed a reply from first branch arrived and handled improperly by a routing logic which was configured for the second branch.
I isolated each response from the different branches by parsing the branch ID that Kamailio adds to the via header after processing the request. Through this mean, I managed to handle correctly each reply from different branches no matter when the response was received. Regards. Carlos. On Thu, Oct 11, 2012 at 10:35 AM, Alex Hermann <a...@speakup.nl> wrote: > On Thursday 11 October 2012, Juha Heinanen wrote: > > Alex Hermann writes: > > > 1) set onreply_route to A > > > 2) relay 1st branch > > > 3) 1st branch times out, internal 408 is created > > > 4) tm send CANCEL to 1st branch > > > > > > 5) in failure route, onreply_route is set to B > > > 6) relay 2nd branch > > > 7) 1st branch responds with 487, and goes into reply_route B instead > of A > > > > > > I think each branch should take the reply_route which was set before it > > > got relayed and not pick up later changes meant for other branches. > > > > if first branch already timed out, shouldn't reply in step(7) go to > > garbage pin instead? > > No, let me explain it a bit more. > > At step 2a) a provisional response is received. > > The proxy is configured with a maximum ringtime (fr_inv_timeout). If that > expires, an internal 408 is generated and failure_route is entered (which > will > launch branch 2. > > At (almost) the same time the proxy sends a CANCEL to abort branch 1. The > uas > at the receiving end of branch 1 will however still respond to the INVITE > (as > it should), hence the 487 from step 7. > > I need to do specific processing when branch 1 receives a reply, and do > that > in onreply_route A. Unfortunately, the reply never reaches that code. > > > (In reality, branch 1 is not just 1 branch, but consists of multiple > parallel > branches, all receiving a reply on the cancelled INVITE. Most of them > arrive > before the 2nd branch is relayed, those are handled correctly by > onreply_route > A, but replies that come in later are incorrectly handled by onreply_route > B) > -- > Greetings, > > Alex Hermann > > > _______________________________________________ > 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 >
_______________________________________________ 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