[OpenSIPS-Devel] [OpenSIPS-Users] Why the best response is 408 instead of 486 when parallel forking?

Dan Pascu dan at ag-projects.com
Mon Oct 27 23:49:52 CET 2008


On Monday 27 October 2008, Klaus Darilion wrote:
> > It doesn't matter who sends the 6xx (device, proxy, gateway, ...).
> > Once you use parallel forking, 6xx should never be used IMO. 6xx
> > means that some device/proxy/gateway _knows_ that _no other device_
> > can answer the call for whatever reason. Now if you used parallel
> > forking and you also receive a 4xx/3xx from another device, than it
> > is obvious that the other device didn't agree with the assumption the
> > first device made. Which means that the 6xx reply was a bad
> > assumption. Even more, at some point you cannot know if an upstream
> > device did parallel forking or not. So even if you are sure you do
> > not do parallel forking and you can assume you know there is a final
> > global 6xx answer, you have no idea if that won't clash with a
> > 3xx/4xx somewhere upstream.
>
> I wonder how there can be a clash (except in race conditions)? If one
> branch replies with 6xx, the other branches will be canceled (at least
> they should be cancelled).

It is a conflict not a race condition. A conceptual conflict as one device 
says 6xx, i.e. takes a decision that concerns all devices, but it doesn't 
seem to have the authority to do so. The RFC says that 6xx responses 
should be given when there is a global failure to process the call, i.e. 
you know that no other device is able to take the call. But that is 
obviously contradicted by another device giving a non-6xx answer.

Unfortunately this 6xx problem is a systemic one introduced by the RFC and 
abused by devices who do not understand the consequences of using a 6xx 
answer. As I said I consider to be very few real uses of 6xx answers, but 
unfortunately they bring root for a lot of abuses, which makes the 6xx 
class a misdesign.

-- 
Dan



More information about the Devel mailing list