Subject: RE: [SIP] Branch ID

From: Jonathan Rosenberg <[email-masked]>
Date: Fri, 1 Jun 2001 04:16:18 -0400

> -----Original Message-----
> From: Baniel Uri-CUB001 [mailto:[email-masked]]
> Sent: Sunday, May 13, 2001 7:09 AM
> To: [email-masked]
> Subject: [SIP] Branch ID
> 
> 
> 1. Is it true that with or without regard to branch IDs, a 
> forking proxy
> needs to keep a list of network addresses of forked 
> destinations, so it
> knows where to send consecutive requests such as Cancel or ACK to?

Not necessarily. The only requirement is the ACK/CANCEL have the same R-URI
as the original INVITE, and that SRV lookup randomization processes yield
the same result for the same transaction ID. The implication is that the
CANCEL/ACK will go to the same network address. You could, as an
optimization, cache that, buy you might lose some SRV failover benefits if
you do that.

> 2. If the answer to (1) is YES, then is it true that the 
> Branch ID is just
> an elegant (application layer) way to refer to the branches, 
> i.e., if it was
> not there a forking proxy would have still known to tell one 
> branch from
> another by their network addresses?

No. The branch ID serves two purposes. One is to disambiguate *responses* to
forked requests from each other, since the source IP of those responses
won't necessarily be the same as the destination IP of where you sent them.
The second purpose of the branch ID is to differentiate loops from spirals.

-Jonathan R.
---
Jonathan D. Rosenberg, Ph.D.                72 Eagle Rock Ave.
Chief Scientist                             First Floor
dynamicsoft                                 East Hanover, NJ 07936
[email-masked]                     FAX:   (973) 952-5050
http://www.jdrosen.net                      PHONE: (973) 952-5000
http://www.dynamicsoft.com

_______________________________________________
This list is for continuing development of the SIP protocol.
The sip-implementor's list is the place to discuss implementation,
and to receive advice on understanding existing sip.
To subscribe to it, send mail to 
[email-masked] with "subscribe" in the body.