> -----Original Message-----
> From: Bhavsar, Vikram - C [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, February 22, 2001 4:03 PM
> To: [EMAIL PROTECTED]
> Subject: [Sip-implementors] Forking proxy question
>
>
> If my proxy has forked a request to 2 clients, and the both
> the clients have
> eventually responded with the following messages:
>
> (from client x to proxy p)
> X->P: SIP/2.0 200 OK
> Via: SIP/2.0/UDP sip.ieee.org ;branch=3d8a50dbf5a28d.3
> Via: SIP/2.0/UDP c.bell-tel.com
> From: A. Bell <sip:[EMAIL PROTECTED]>;tag=3
> To: T. Watson <sip:[EMAIL PROTECTED]> ;tag=192137601
> Call-ID: [EMAIL PROTECTED]
> CSeq: 1 INVITE
> Contact: sip:[EMAIL PROTECTED]
>
> (from client y to proxy p)
> Y->P: SIP/2.0 200 OK
> Via: SIP/2.0/UDP sip.ieee.org ;branch=3d8a50dbf5a28d.4
> Via: SIP/2.0/UDP c.bell-tel.com
> Contact: sip:[EMAIL PROTECTED]
> From: A. Bell <sip:[EMAIL PROTECTED]>;tag=3
> To: T. Watson <sip:[EMAIL PROTECTED]> ;tag=35253448
> Call-ID: [EMAIL PROTECTED]
> CSeq: 1 INVITE
>
> How will the proxy be able to distinguish where each message
> has originated
> from?
>
The via branch parameter. From section 6.47.6 of bis:
The "branch" parameter is included by every proxy. The token MUST be unique
for each distinct
request. The precise format of the token is implementation-defined. In order
to be able to both detect
loops and associate responses with the corresponding request, the parameter
SHOULD consist of two parts
separable by the implementation. One part, used for loop detection (Section
12.3.1), MAY be computed
as a cryptographic hash of the To, From, Call-ID header fields, the
Request-URI of the request received
(before translation) and the sequence number from the CSeq header field. The
algorithm used to compute
the hash is implementation-dependent, but MD5 [36], expressed in
hexadecimal, is a reasonable choice.
(Note that base64 is not permissible for a token.) The other part, used for
matching responses to requests, is
a globally unique function of the branch taken, for example, a hash of a
sequence number, local IP address
and request-URI of the request sent on the branch.
> Or is it simply the value of the branch param in the Via
> which was inserted
> by my proxy which forked the request.
Yes. Proxies use the branch param.
A UAC would differentiate multiple 200 OK using the tag in the To field.
-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