Hi,
In RFC 3261 [16.6 (8)] it says that, for loop detection at proxy,
we should calculate the branch using top most Via header also.
I guess while using top-most Via header we should avoid using the branch.
If branch is also used, the loop can go undetected as
the branch could be unique, even when the request has looped.
(8.1.1.7 Says branch has to be unique across space and time).
Hope I got it right. If I have missed anything please let me
know.
Thanks
Sachin
16.6 (8)
"This is to ensure that if the
request is routed back to the proxy and one of those fields
changes, it is treated as a spiral and not a loop (see Section
16.3). A common way to create this value is to compute a
cryptographic hash of the To tag, From tag, Call-ID header
field, the Request-URI of the request received (before
translation), *the topmost Via header*, and the sequence number
from the CSeq header field, in addition to any Proxy-Require
and Proxy-Authorization header fields that may be present."
