Re: [Sip] querying the current event state of a publication
Jonathan Rosenberg <jdrosen@dynamicsoft.com> Tue, 03 February 2004 06:49 UTC
Received: from optimus.ietf.org ([132.151.1.19]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id BAA11333 for <sip-archive@odin.ietf.org>; Tue, 3 Feb 2004 01:49:43 -0500 (EST)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1AnuN1-0005Pp-GW for sip-archive@odin.ietf.org; Tue, 03 Feb 2004 01:49:15 -0500
Received: (from exim@localhost) by www1.ietf.org (8.12.8/8.12.8/Submit) id i136nFrx020811 for sip-archive@odin.ietf.org; Tue, 3 Feb 2004 01:49:15 -0500
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1AnuMn-0005OZ-LJ; Tue, 03 Feb 2004 01:49:01 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1AnuM0-0005LO-KT for sip@optimus.ietf.org; Tue, 03 Feb 2004 01:48:12 -0500
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id BAA11293 for <sip@ietf.org>; Tue, 3 Feb 2004 01:48:10 -0500 (EST)
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 1AnuLx-0006Xt-00 for sip@ietf.org; Tue, 03 Feb 2004 01:48:09 -0500
Received: from exim by ietf-mx with spam-scanned (Exim 4.12) id 1AnuKy-0006SW-00 for sip@ietf.org; Tue, 03 Feb 2004 01:47:09 -0500
Received: from [63.113.44.69] (helo=mail3.dynamicsoft.com) by ietf-mx with esmtp (Exim 4.12) id 1AnuKI-0006Iv-00 for sip@ietf.org; Tue, 03 Feb 2004 01:46:26 -0500
Received: from dynamicsoft.com ([63.113.46.124]) by mail3.dynamicsoft.com (8.12.8/8.12.1) with ESMTP id i136k49W014324; Tue, 3 Feb 2004 01:46:05 -0500 (EST)
Message-ID: <401F43A0.2040305@dynamicsoft.com>
Date: Tue, 03 Feb 2004 01:45:52 -0500
From: Jonathan Rosenberg <jdrosen@dynamicsoft.com>
Organization: dynamicsoft
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: "Niemi Aki (Nokia-M/Helsinki)" <aki.niemi@nokia.com>
CC: sip@ietf.org
Subject: Re: [Sip] querying the current event state of a publication
References: <4012E741.5000809@dynamicsoft.com> <4017C622.2050507@nokia.com>
In-Reply-To: <4017C622.2050507@nokia.com>
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on ietf-mx.ietf.org
X-Spam-Status: No, hits=0.1 required=5.0 tests=AWL autolearn=no version=2.60
Content-Transfer-Encoding: 7bit
Sender: sip-admin@ietf.org
Errors-To: sip-admin@ietf.org
X-BeenThere: sip@ietf.org
X-Mailman-Version: 2.0.12
Precedence: bulk
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/sip>, <mailto:sip-request@ietf.org?subject=unsubscribe>
List-Id: Session Initiation Protocol <sip.ietf.org>
List-Post: <mailto:sip@ietf.org>
List-Help: <mailto:sip-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/sip>, <mailto:sip-request@ietf.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Firstly, I'm inclined to back away from my prior suggesting of using URIs instead of etags, primarily because I think we are just too far along here and "if it aint broke, don't fix it". We can probably get the missing piece of functionality - finding out who else is publishing - in ways that dont change what we have documented. Your suggestion below is reasonable towards that end, but makes me nervous that it introduces a behavior that is *like* registration, but isnt the same (no contacts in the publish request, for example). Another possible idea is to create a new event package which is the "esc" event package. When you subscribe to a URI for that package, you get notified of all published documents made against that URI. The current state of the resource for that package is a list of the currently active documents for that URI. By doing this as an event package, we can leave PUBLISH alone, and add this functionality in the future, as a separate item. -Jonathan R. Niemi Aki (Nokia-M/Helsinki) wrote: > Hi, > > Inline. > > ext Jonathan Rosenberg wrote: > >> In draft-ietf-sip-publish-02, section 5.7 proposes a way to query a >> specific published event state. It recommends subscribing to the AOR >> to learn it. However, it gives this caveat: >> >> Note that a subscription to the event package will likely deliver >> results of the event composition process of the state agent, which >> may be a subset or a superset of the current published event >> state. >> >> which is another way of saying, that subscribing to the aor doesnt >> really allow you to query for a specific published event state. >> >> If we want this functionality, I have an idea for an alternative >> approach that works much better, triggered by some conversations I had >> with Ben C. recently. >> >> In the response to a PUBLISH request, the ESC returns a URI that >> identifies that particular event state publication (effectively, a URI >> that is bound to the AOR+event+etag of a publication). This URI is >> basically a GRUU. If a user wishes to learn the state of this >> particular event state, they merely subscribe to that URI. Indeed, a >> particularly interestinig way to do this is to define sIP etags as >> URIs, rather than reusing the definition from http. I think that >> having an etag as a URI is far more elegant, as it would allow for >> things like this function in a natural way. The alternative would be >> to possibly use the Contact header field, as the meaning is the same >> as in a 2xx to INVITE - identifying the specific *instance* to which >> you were connected when you contacted the AOR. This makes sense if you >> think of the event state publication URI as a GRUU. > > > But a PUA has to know the state it just published, simply because it was > the source of that state in the first place. What it can't learn is the > state of the other active PUAs. > > And this is actually something currently missing from PUBLISH. A given > PUA can't find out about publications other than thiose it itself has > made. As a consequence, it can't for example, override the publications > of a zombie PUA (a use case we have discussed in the past at length). > > In order to enable a PUA to find out about the *other* publications to a > given resource, the ESC would have to return not only a pointer to this > PUAs publication, but to all active publications for that AoR. This is > very similar to a registrar returning all active address bindings of an > AoR. > >> Indeed, one might even then PUBLISH to that URI, and it would have the >> exact result you would expect - that particular event state is >> updated. In such a case the server woould NOT return an etag or >> another URI in the response. > > > When you add the feature I describe above, etags would still be needed > since it would allow two PUAs to publish to the same instance of state. > Etags would be needed for versioning in that case. > > <snip /> > >> This would mean we wouldnt need the SIP-If-match. >> >> Another alternative is to say that we are simply too far along in >> PUBLISH, and the time has passed for major changes as this would be. > > > I do think we are quite far along in PUBLISH for adding this sort of > functionality. However, I see some low-hanging fruit here, and to be > honest, it has always bothered me a bit that there is no way for a PUA > to know about the state other PUAs are publishing. > > There is a requirement that calls for basically exactly this in > draft-ietf-simple-publish-reqs-00 and it states: > > 14. PUAs must have a capability that allows them to query for the > identifiers of all of the segments of presence information that > have currently been published for a presentity (provided that > the PUA is authorized to receive this information). > > Using the register-like behavior for returning the set of active state > in the 2xx response to PUBLISH + having this set be a set of GRUUs would > fulfill the above. The PUA would be able to query the state (using > SUBSCRIBE), but also override it (using PUBLISH). This is also a > requireemnt in the reqs draft: > > 15. It must be possible for the publication of presence information > for a particular segment to overwrite existing information for > that segment, even if the existing information had been > published by a different PUA. ... > > So I would be willing to add this functionality simply because it would > make the solution more complete. As far as adding complexity, sure, but > an ESC whose policy doesn't allow cross PUA state could always just > refuse to send the publication contacts in the PUBLISH response. > > Does this sound reasonable? > > Cheers, > Aki > > P.S. I added an example message flow to illustrate the above ramblings... > > --- > > PUA publishes its (initial) state: > > PUBLISH sip:presentity@example.com SIP/2.0 > To: <sip:presentity@example.com> > From: <sip:presentity@example.com>;tag=54321mm > Expires: 3600 > Event: presence > ... > > ESC returns with an etag for that state, plus all active publications in > the form of URIs: > > SIP/2.0 200 OK > To: <sip:presentity@example.com>;tag=effe22aa > From: <sip:presentity@example.com>;tag=54321mm > SIP-ETag: qwi982ks > Expires: 3600 > Contact: sip:kaskjsdh@pa.example.com;etag=qwi982ks;expires=3600 > Contact: sip:jhsk23jj@pa.example.com;etag=hh3j4kll;expires=3229 > Contact: sip:hhfkjhjk@pa.example.com;etag=3ihy4hhk;expires=1200 > > >> Thoughts? >> >> -Jonathan R. >> > -- Jonathan D. Rosenberg, Ph.D. 600 Lanidex Plaza Chief Technology Officer Parsippany, NJ 07054-2711 dynamicsoft jdrosen@dynamicsoft.com FAX: (973) 952-5050 http://www.jdrosen.net PHONE: (973) 952-5000 http://www.dynamicsoft.com _______________________________________________ Sip mailing list https://www1.ietf.org/mailman/listinfo/sip This list is for NEW development of the core SIP Protocol Use sip-implementors@cs.columbia.edu for questions on current sip Use sipping@ietf.org for new developments on the application of sip
- [Sip] querying the current event state of a publi… Jonathan Rosenberg
- Re: [Sip] querying the current event state of a p… Niemi Aki (Nokia-M/Helsinki)
- Re: [Sip] querying the current event state of a p… Jonathan Rosenberg
- Re: [Sip] querying the current event state of a p… Paul Kyzivat
- Re: [Sip] querying the current event state of a p… Jonathan Rosenberg
- Re: [Sip] querying the current event state of a p… Paul Kyzivat