Subject: Using branch in Via headers by a forking proxy

From: "Anoop Tripathi" <[email-masked]>
Date: Tue, 14 Sep 1999 10:19:40 -0500

Can anyone shed some light as to why to do we use a branch field in the Via
header ?

This has lots of things to remember.
The response to the INVITE contain the branches in the Via field as well as the
tag in the To header.
So the proxy has to associate the endpoints using branches for sometime and then
needs to use the tag field in future.

Would it not be easier if we said:

The tag in the "To" field is added by the forking proxy and not by the endpoint.

Thanks,

Anoop

---

From: Jonathan Rosenberg <[email-masked]>
Date: Tue, 14 Sep 1999 13:51:29 -0400

> needs to use the tag field in future.

No. When a proxy forks, it generates N instances of the request, each
with an identical To, From, Call-ID and CSeq. Each has a different
branch parameter, used to match responses to the request at that proxy
only. You CANNOT use the tag to match forked requests with their
responses. This is because each proxy may fork, and so each proxy needs
a local identifier to match the responses up. This is why the branch ID
is used. Each proxy gets its own branch ID's for matching. Branch ID's
are for local matching at a proxy, and tags in the To field are for end
to end matching in user agents.
 
> The tag in the "To" field is added by the forking proxy and not by the endpoint.

This doesn't work, as I argue above.

-Jonathan R.

-- 
Jonathan D. Rosenberg                       Lucent Technologies
Member of Technical Staff                   101 Crawfords Corner Rd.
High Speed Networks Research                Holmdel, NJ 07733
FAX:   (732) 834-5379                       Rm. 4C-526
EMAIL: [email-masked]
URL: http://www.cs.columbia.edu/~jdrosen