Subject: [Sip] NOTIFY establishes a dialog

From: [email-masked]
Date: Wed, 12 Mar 2003 17:37:22 +0200

In RFC3265, it is mentioned that NOTIFY can certainly establish a dialog if it arrives before the 200 of a SUBSCRIBE. What happens when the 200 for the SUBSCRIBE now arrives with record-route headers? Does the route-set get updated? (keeping in mind that the dialog is now in the established state).

Regards,
Hisham
_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email-masked] for questions on current sip
Use [email-masked] for new developments on the application of sip

---

From: [email-masked]
Date: Thu, 20 Mar 2003 05:59:05 +0200

I don't think you have accurately my questions.

The spec says once a dialog is established, you cannot change the route-set. A 180 establishes a dialog, so my assumption is that the 200 ok record-route headers are ignored.

The same goes for NOTIFY (by the way, 200 for SUBSCRIBE in going in the same direction as NOTIFY, not crossing on the wire). NOTIFY establishes a dialog and therefore the route-set delivered in the NOTIFY is lost. Your conclusions below break the rule where a route-set cannot be changed once a dialog has been established.

/Hisham

> -----Original Message-----
> From: ext Arunachalam Venkatraman [mailto:[email-masked]]
> Sent: Thursday, March 20, 2003 3:47 AM
> To: Khartabil Hisham (NMP/Helsinki); [email-masked]
> Subject: RE: [Sip] NOTIFY establishes a dialog
> 
> 
> Hisham
> The reason the Record_Route headers must be sent on the 200 
> is that the 1xx
> is not guaranteed to be delivered, unless they are sent reliably.
> 
> I think in the context of the Notify crossing the 200, the 
> arrival of the
> 200 will establish the Route set for future requests. Each transaction
> completes independently.
> 
> I am copying in a old message on this subject from the sip 
> list below that
> you may find useful - (I think it would have been useful to 
> state this in
> the RFC3261).
> 
> ------------------ Start Of Old Message --------------------------
> 
> >  -----Original Message-----
> > From: 	Arunachalam Venkatraman [mailto:[email-masked]]
> > Sent:	Friday, March 23, 2001 3:39 PM
> > To:	[email-masked]
> > Cc:	Jonathan Rosenberg
> > Subject:	Replace Contact in Route set ?
> >
> > As per the protocol, the Contact header is added to the end 
> of the Route
> header.
> >
> > Suppose a Record-Route was first received in a message with 
> a Contact C1.
> > The UA has built a route set with the Contact C1 at the 
> bottom of the
> Route.
> >
> > If the next request to the UA has a new Contact C2, should 
> C1 in the Route
> Set be replaced
> > with C2?
> >
> 
> Yes. And if there was no Contact, don't change anything.
> 
> Note that if the next request has new record-routes, those do 
> NOT update the
> existing route sets.
> 
> -Jonathan R.
> ---
> Jonathan D. Rosenberg                       72 Eagle Rock Ave.
> Chief Scientist                             First Floor
> dynamicsoft                                 East Hanover, NJ 07936
> [email-masked]                     FAX:   (973) 952-5050
> http://www.cs.columbia.edu/~jdrosen         PHONE: (973) 952-5000
> http://www.dynamicsoft.com
> 
> ---------------------------------End of Old Message 
> ----------------------
> 
> -----Original Message-----
> From: [email-masked] [mailto:[email-masked]]On Behalf Of
> [email-masked]
> Sent: Wednesday, March 19, 2003 4:48 PM
> To: [email-masked]
> Subject: RE: [Sip] NOTIFY establishes a dialog
> 
> 
> I have a few related questions/comments:
> 
> - A 180 response to a request (like INVITE) establishes a 
> dialog. This 180
> response carries record-route headers and therefore sets the 
> route-set. The
> 200 response to the request might also carry record-route headers. The
> dialog transitions to confirmed state, but I assume the 
> route-set does not
> get updated using the record-route headers in the 200 
> response since the
> dialog is established already. Is this a correct assumption? 
> should the UAS
> send record-route headers at all in the 200 if it sent a 1xx already?
> 
> Should there be a mandate that 1xx and 2xx response carry the same
> record-route headers? You would assume that this happens 
> naturally at the
> UAS, but proxies may play around with the record-route headers.
> 
> - In the NOTIFY problem below, the NOTIFY establishes the 
> dialog, but does
> not carry record-route headers. If the same assumption is 
> made as above, the
> record-route headers appearing in the 200 response to the 
> SUBSCRIBE are
> ignored since the dialog is in established state. Isn't this 
> a problem? the
> route-set is lost.
> 
> I appreciate some clarifications.
> 
> Regards,
> Hisham
> 
> 
> > -----Original Message-----
> > From: ext [email-masked]
> > [mailto:[email-masked]]
> > Sent: Wednesday, March 12, 2003 5:37 PM
> > To: [email-masked]
> > Subject: [Sip] NOTIFY establishes a dialog
> >
> >
> > In RFC3265, it is mentioned that NOTIFY can certainly
> > establish a dialog if it arrives before the 200 of a
> > SUBSCRIBE. What happens when the 200 for the SUBSCRIBE now
> > arrives with record-route headers? Does the route-set get
> > updated? (keeping in mind that the dialog is now in the
> > established state).
> >
> > Regards,
> > Hisham

---

From: Adam Roach <[email-masked]>
Date: Thu, 20 Mar 2003 00:15:51 -0600

> From: [email-masked] [mailto:[email-masked]]
> 

Not if it's part of the same dialog as the aforementioned NOTIFY.

In the case that the SUBSCRIBE 200 doesn't match any dialog that's
already been established (e.g. by a NOTIFY), then it *does* establish
a dialog. If the event package doesn't allow forking, such a dialog
conceptually terminates after the the subscriber 481s the corresponding
NOTIFY.

> the NOTIFY establishes the dialog, but does not carry record-route
> headers. If the same assumption is made as above, the record-route
> headers appearing in the 200 response to the SUBSCRIBE are ignored
> since the dialog is in established state. Isn't this a problem? the
> route-set is lost.

Section 3.1.5 of 3265 clearly states:

   If a proxy wishes to see all of the SUBSCRIBE
   and NOTIFY requests for a given dialog, it MUST record-route the
   initial SUBSCRIBE and any dialog-establishing NOTIFY requests. Such
   proxies SHOULD also record-route all other SUBSCRIBE and NOTIFY
   requests.

A consequence of this clause is that a proxy which Record-Routes the
200 response will also Record-Route the NOTIFY in the same dialog.
A further consequence is that the route set in a SUBSCRIBE 200 and
that of a NOTIFY in the same dialog will always be identical.

/a