> -----Original Message-----
> From: Jonathan Lennox [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, March 28, 2001 7:13 AM
> To: [EMAIL PROTECTED]
> Subject: [Sip-implementors] Comparison rules for Via headers
>
>
> The consensus, on this list and on the main sip list, was
> that in order to
> detect merged requests, a device has to examine the top Via header of
> incoming requests.
>
> (Review: merged requests are the following case. Consider
> that we're "D".)
>
> --- --- --- ---
> | | | B | | | | |
> | |-->|___|-->| | | |
> | A | ___ | D |-->| E |
> | |-->| C |-->| | | |
> |___| |___| |___| |___|
>
> The thought was that if the top Via headers don't match, you
> consider the
> request to be merged, and send a 4xx (probably a 482) to the
> second merged
> branch you receive.
>
> The question is: what's the definition of "matching" for Via headers?
> Clearly, the Transport, Port, and Branch values must match (and
> protocol-name and protocol-version must be "SIP" and "2.0"
> respectively).
>
> The hard question, though, is the host. Should we require that:
> * The hostname string, as sent by the client, matches literally?
> * The hostname resolves to the same IP address?
> * The IP address we received the request from (i.e. the "received"
> parameter we'd insert) matches?
> * Some combination of these, either as an 'and' or an 'or'?
>
> Also, for multicast requests, do the 'maddr' and 'ttl'
> parameters have to
> match?
>
> My thought is that the hostname should just match
> case-insensiively as a
> string, that maddr should have to match the same way, but
> that ttl should be
> ignored. However, if people feel differently about this, I'd
> be curious to
> know what they think.
To get at the answer, you need to look at why the merged requests need to be
treated differently. The reason is that there are TWO outstanding
transactions in the upstream direction, and so there must be two separate
responses. Therefore, the requests are viewed as different if they represent
requests from two separate transactions. Since retransmissions within a
transaction should never modify the via header at all, if the via header is
different in any way, this probably means a separate transaction. So, I
would argue that they are different if (1) the hostnames are different based
on case-insensitive string match, (2) maddr is different in the same way,
(3) ttl is different, (4) branch ID is different.
-Jonathan R.
---
Jonathan D. Rosenberg 72 Eagle Rock Ave.
Chief Scientist First Floor
dynamicsoft East Hanover, NJ 07936
[EMAIL PROTECTED] FAX: (973) 952-5050
http://www.cs.columbia.edu/~jdrosen PHONE: (973) 952-5000
http://www.dynamicsoft.com
_______________________________________________
Sip-implementors mailing list
[EMAIL PROTECTED]
http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors