Hi Bob,

Based on the excerpt of RFC 3261 you provided, your interpretation makes
sense to me. Thanks for all the people that has helped me understand this.

Regards,
Yong

-----Original Message-----
From: Bob Penfield [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, March 28, 2007 2:44 PM
To: [EMAIL PROTECTED]; 'Jerry Yin'; [email protected]
Subject: Re: [Sip-implementors] SIP Contact header

>
>> 2) How about PRACK or UPDATE request which is sent from UAC
>>    to UAS before the dialog is established (i.e.: 200 ok to
>>    INVITE is not sent by UAS yet)? (I assume same as the ACK
>>    for non-200 response).
>>
>
> When you send PRACK, it means you have received a reliable 1xx 
> response, which will create an early dialog. As someone said, early 
> dialog is a dialog. Therefore, the PRACK will be sent to the "contact" 
> address in 1xx response. Since you shouldn't send "UPDATE" before the 
> PRACK, therefore the UPDATE is also sent to the contact address in the 
> early dialog. That's my understanding.
>
> [Yong]: You're right, this is an early dialog. However, I incline to 
> agree with what Indresh has said that the remote-target-uri has not 
> been updated at this moment, so the PRACK should be still sent to the 
> same address where the original INVITE was sent. I could not find a 
> statement in the RFC 3261 spec that says the remote-target-uri can be 
> updated after receiving 1xx response. Do you agree?
>
The remote-target-uri is set from the Contact in the 1xx response. The PRACK
is sent that URI.

Section 12.1 of RFC 3261 says:

   Within this specification, only 2xx and 101-199 responses with a To tag,
   where the request was INVITE, will establish a dialog.

and Section 12.1.2 says:

   When a UAC receives a response that establishes a dialog, it
   constructs the state of the dialog.  This state MUST be maintained
   for the duration of the dialog.

   If the request was sent over TLS, and the Request-URI contained a
   SIPS URI, the "secure" flag is set to TRUE.

   The route set MUST be set to the list of URIs in the Record-Route
   header field from the response, taken in reverse order and preserving
   all URI parameters.  If no Record-Route header field is present in
   the response, the route set MUST be set to the empty set.  This route
   set, even if empty, overrides any pre-existing route set for future
   requests in this dialog.  The remote target MUST be set to the URI
   from the Contact header field of the response.


Thus the 1xx (assuming it had a To tag) is a "response that establishes a
dialog", therefore the remote target is set from the Contact in the
response.

cheers,
(-:bob

Robert F. Penfield
Chief Software Architect
Acme Packet, Inc.
71 Third Avenue
Burlington, MA 01803
[EMAIL PROTECTED]

_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to