Alex Balashov writes:
3. Proxy bifurcates the call into two branches
'branch A' (to A) and
'branch B' (to B). Rewrites RURI, relays INVITE.
4. A answers with 200 OK.
5. B answers with 200 OK.
6. Proxy passes back 200 OK to SBC for A. Then for B.
7. SBC issues in-dialog end-to-end ACK for that 200 OK; proxy decides
to forward it only to A as per the ONREPLY-ROUTE. No replies are
forwarded to B. It is here that I think things go wrong.
8. B keeps sending 200 OKs and getting no ACKs for them, and eventually
gives up and kills the session.
So, it looks like not all replies are being statefully relayed to both
branches.
Additionally, it looks like the following is happening:
- At step #6 above, the 200 OK passed to the SBC is for A only.
canceling of b branch should happen already after step 4, but perhaps 4 and
5 take place almost simultaneously and there is some race condition
related bug in tm module.
-- juha