Re: [SIP] harmonized SUBSCRIBE/NOTIFY behavior
"rahnkp" <rahnkp@email.msn.com> Tue, 11 July 2000 02:45 UTC
Received: from lists.bell-labs.com (share.research.bell-labs.com [204.178.16.58]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id WAA05971 for <sip-archive@odin.ietf.org>; Mon, 10 Jul 2000 22:45:22 -0400 (EDT)
Received: from share.research.bell-labs.com (localhost.localdomain [127.0.0.1]) by lists.bell-labs.com (Postfix) with ESMTP id 17DCD443B6; Mon, 10 Jul 2000 22:45:01 -0400 (EDT)
Delivered-To: sip@lists.bell-labs.com
Received: from smtp.email.msn.com (cpimssmtpu10.smtp.email.msn.com [207.46.181.60]) by lists.bell-labs.com (Postfix) with ESMTP id AF46344339 for <sip@lists.bell-labs.com>; Mon, 10 Jul 2000 22:44:58 -0400 (EDT)
Received: from computer - 63.14.43.104 by email.msn.com with Microsoft SMTPSVC; Mon, 10 Jul 2000 19:44:30 -0700
Message-ID: <000701bfeae2$1de02300$4025fea9@computer>
From: rahnkp <rahnkp@email.msn.com>
To: sip@lists.bell-labs.com, Rohan Mahy <rohan@cisco.com>
References: <4.2.0.58.20000706104920.00de0af0@lint.cisco.com>
Subject: Re: [SIP] harmonized SUBSCRIBE/NOTIFY behavior
Date: Mon, 10 Jul 2000 20:35:34 -0600
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2615.200
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200
Sender: sip-admin@lists.bell-labs.com
Errors-To: sip-admin@lists.bell-labs.com
X-Mailman-Version: 1.1
Precedence: bulk
List-Id: IETF SIP Mailing List <sip.lists.bell-labs.com>
X-BeenThere: sip@lists.bell-labs.com
Content-Transfer-Encoding: 7bit
Please do not send this stuff to me. It's all very interesting, but I am not connected to you folks... Thanks ----- Original Message ----- From: Rohan Mahy <rohan@cisco.com> To: <sip@lists.bell-labs.com> Sent: Thursday, July 06, 2000 1:16 PM Subject: [SIP] harmonized SUBSCRIBE/NOTIFY behavior > Hi, > > I'm looking for some consistent direction on SUBSCRIBE/NOTIFY. Since we > have the SUBSCRIBE/NOTIFY draft, PINT, and IMPP for presence, all doing > stuff differently. > > I can see valid reasons for each of these cases: > > a subscribe to ongoing state, I already know the current state > b subscribe to ongoing state, plus get current state > c refresh subscription, I know the current state > d refresh subscription, plus get current state > e fetch the current state > f unsubscribe > > Hopefully Jonathan Rosenberg, Scott Petrack, and Adam Roach have all talked > about this somewhere. > My interetation of the currently available documents is that they can do this: > > SUB/NFY a, c, f > PINT a, c, e, f > IMPP b, c, e, f > > Perhaps we need a new header/parameter used in a SUBSCRIBE that indicates > whether to send back immediate status? > > Also, the use of an Event header, Call-ID usage, and body handling are not > consistent, but this seems like less of an issue. > > Anyone care to clarify? Will the three documents be harmonized (apologies > for using an ITU term) at some point? > > Relevant sections of the documents are included below. Also, a short > comment on IMPP inline... > > thanks, > -rohan > > > In draft-roach-sip-subscribe-notify-00.txt, the author asks: > > >Should cancelling a subscription be performed with the UNSUBSCRIBE method > >defined in PINT for the sake of consistency, or is the REGISTER model of > >"Expires: 0" preferable? > > There is no mention of the SUBSCRIBE response carrying back any state. In > the companion document, draft-roach-sip-acb-00.txt, a SUBSCRIBE to the > "terminal-free" event does not necessarily need state in the reply, because > presumably, the subscriber already assumed the terminal wan't free, because > they got a busy signal. > > In RFC2848, the authors state: > > >When a SUBSCRIBE request is sent to a PINT Server, it indicates that a > >user wishes to receive information about the status of a service session. > >The request identifies the session of interest by including the original > >session description along with the request, using the SDP > >global-session-id that forms part of the origin-field to identify the > >service session uniquely. > > >Rather than have two different methods of identifying the "session of > >interest" the choice is to use the origin-field of the SDP sub-part > >included both in the original INVITE and in this SUBSCRIBE request. > > > >Note that the request MUST NOT include any sub-parts other than the > >session description, even if these others were present in the original > >INVITE request. A server MUST ignore whatever sub-parts are included > >within a SUBSCRIBE request with the sole exception of the enclosed session > >description. The request MAY contain a "Contact:" header, specifying the > >PINT User Agent Server to which such information should be sent. > > > >In addition, it SHOULD contain an Expires: header, which indicates for how > >long the PINT Requestor wishes to receive notification of the session > >status. We refer to the period of time before the expiration of the > >SUBSCRIBE request as the "subscription period". See section 5.1.4. for > >security considerations, particularly privacy implications. > > > >A value of 0 within the Expires: header indicates a desire to receive one > >single immediate response (i.e. the request expires immediately). It is > >possible for a sequence of monitoring sessions to be opened, exist, and > >complete, all relating to the same service session. > > > >A successful response to the SUBSCRIBE request includes the session > >description, according to the Gateway. Normally this will be identical to > >the last cached response that the Gateway returned to any request > >concerning the same SDP global session id (see [2], section 6, o= field). > >The t= line may be altered to indicate the actual start or stop time, > >however. The Gateway might add an i= line to the session description to > >indicate such information as how many fax pages were sent. The Gateway > >SHOULD include an Expires: header indicating how long it is willing to > >maintain the monitoring session. If this is unacceptable to the PINT > >Requestor, then it can close the session by sending an immediate > >UNSUBSCRIBE message (see 3.5.3.3). > > > >At some point, either the Client's representative User Agent Server or the > >Gateway may decide to terminate the monitoring session. This is achieved > >by sending an UNSUBSCRIBE request to the correspondent server. Such a > >request indicates that the sender intends to close the monitoring session > >immediately, and, on receipt of the final response from the receiving > >server, the session is deemed over. > > > >Note that unlike the SUBSCRIBE request, which is never sent by a PINT > >gateway, an UNSUBSCRIBE request can be sent by a PINT gateway to the User > >Agent Server to indicate that the monitoring session is closed. (This is > >analogous to the fact that a gateway never sends an INVITE, although it > >can send a BYE to indicate that a telephone call has ended.) > > > >If the Gateway initiates closure of the monitoring session by sending an > >UNSUBSCRIBE message, it SHOULD include an "Expires:" header showing for > >how much longer after this monitoring session is closed it is willing to > >store information on the service session. This acts as a minimum time > >within which the Client can send a new SUBSCRIBE message to open another > >monitoring session; after the time indicated in the Expires: header the > >Gateway is free to dispose of any record of the service session, so that > >subsequent SUBSCRIBE requests can be rejected with a "606" response. > > > >If the subscription period specified by the Client has expired, then the > >Gateway may send an immediate UNSUBSCRIBE request to the Client's > >representative User Agent Server. This ensures that the monitoring session > >always completes with a UNSUBSCRIBE/response exchange, and that the > >representative User Agent Server can avoid maintaining state in certain > >circumstances. > > > In draft-rosenberg-impp-presence-00.txt, the authors state: > > >A SUBSCRIBE request MUST contain a Contact header. This indicates the > >address(es) (as a SIP URL) to which the client would like to receive > >notifications. This MUST be be one or more SIP addresses, containing the > >fully qualified domain names for the host generating the subscription, or > >the IP address of the host generating the subscription. Other addresses > >are possible, supporting third party subscriptions. If it contains > >multiple addresses, notifications will be sent to each address. If no > >Contact header is present, no notifications will be sent. > > Jonathan, instead of the first sentence I propose something like this: > > "A SUBSCRIBE request MUST contain a Contact header, unless the SUBSCRIBE > request is used for Fetching currect state only (see section 5.8)." OR > > "An ordinary SUBSCRIBE request MUST contain a Contact header. A SUBSCRIBE > request without a Contact is used for Fetching current state only, and does > not cause notifications." > > >[When replying to a new subscription,] The 200 OK response SHOULD also > >contain a copy of the current presence state of the presentity. > > >A subscriber may unsubscribe by sending a SUBSCRIBE request with an > >Expires header of 0. The Contact header indicates the particular address > >that is being unsubscribed. This MAY be a *, indicating that all Contacts > >for that particular subscription (as identified by the Call-ID, To, and > >From) are to be removed. If all Contacts are removed, the PA deletes the > >subscription. > > >Fetching is similar to a subscribing, in that it returns the current > >presence state. However, no notifications are sent for future changes in > >the presence state. Rather than inventing a new method for this, it is > >readily accomplished with a SUBSCRIBE along with an Expires: 0 header and > >no Contact header. The absence of any Contact header is what distinguishes > >it from the similar operation of unsubscribing. The advantage of using > >SUBSCRIBE is that the server can simply process the request independently > >of whether its a fetch or longer lived subscription; the authorization and > >processing steps are identical. The only difference is whether an actual > >subscription is instantiated for the user or not. > > > >This parallels how fetching of registrations is done in SIP. Note that > >fetching has no effect on existing subscriptions. > > > thanks, > -rohan > > > > _______________________________________________ > SIP mailing list > SIP@lists.bell-labs.com > http://lists.bell-labs.com/mailman/listinfo/sip > > _______________________________________________ SIP mailing list SIP@lists.bell-labs.com http://lists.bell-labs.com/mailman/listinfo/sip
- Re: 2nd: [SIP] harmonized SUBSCRIBE/NOTIFY behaviā¦ Jonathan Rosenberg
- [SIP] harmonized SUBSCRIBE/NOTIFY behavior Rohan Mahy
- Re: [SIP] harmonized SUBSCRIBE/NOTIFY behavior rahnkp
- 2nd: [SIP] harmonized SUBSCRIBE/NOTIFY behavior Rohan Mahy