El Wednesday 21 May 2008 13:20:59 Bogdan-Andrei Iancu escribió:
Hi Iñaki,
because it is against RFC3261 - 6xx reply means global failure and no further forking is allowed.
Thanks, I understand what you mean but I'm not sure about it, let me explain:
FAILURE_ROUTE is executed when all the branches have finished, all of them with a negative response. Then the "best" response is chosen by OpenSer and its code is what we can see if we run: t_check_status("XXX") in FAILURE_ROUTE.
So, I don't think that using "append_branch()" into FAILURE_ROUTE is anti-RFC3261, the steps are:
- OpenSer receives an INVITE and forks it to the user locations. - OpenSer receives a 480, 486 and 603. - It chooses 603 as best response. - It runs the FAILURE_ROUTE in which a "append_branch" is executed. - The INVITE is forwarded to a media server.
The new branch has been created **AFTER** choosing the best response from "real" branches. The FAILURE_ROUTE is part of our proxy logic, so IMHO those steps are not anti-RFC3261 at all.
Anyway, with the actual behaviour is then not possible to forward a INVITE to a destination if OpenSer receives a 6XX? any workaround?
Thanks a lot.