Re: [Sip] querying the current event state of a publication

"Niemi Aki (Nokia-M/Helsinki)" <aki.niemi@nokia.com> Wed, 28 January 2004 14:33 UTC

Received: from optimus.ietf.org ([132.151.1.19]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id JAA01978 for <sip-archive@odin.ietf.org>; Wed, 28 Jan 2004 09:33:44 -0500 (EST)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1Alqkn-0001pF-CA for sip-archive@odin.ietf.org; Wed, 28 Jan 2004 09:33:17 -0500
Received: (from exim@localhost) by www1.ietf.org (8.12.8/8.12.8/Submit) id i0SEXHL1007011 for sip-archive@odin.ietf.org; Wed, 28 Jan 2004 09:33:17 -0500
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1AlqkX-0001o3-G7; Wed, 28 Jan 2004 09:33:01 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1Alqk5-0001nC-IL for sip@optimus.ietf.org; Wed, 28 Jan 2004 09:32:33 -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 JAA01960 for <sip@ietf.org>; Wed, 28 Jan 2004 09:32:30 -0500 (EST)
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 1Alqk3-0005tB-00 for sip@ietf.org; Wed, 28 Jan 2004 09:32:31 -0500
Received: from exim by ietf-mx with spam-scanned (Exim 4.12) id 1Alqj8-0005pM-00 for sip@ietf.org; Wed, 28 Jan 2004 09:31:35 -0500
Received: from mgw-x4.nokia.com ([131.228.20.27]) by ietf-mx with esmtp (Exim 4.12) id 1AlqiQ-0005lN-00 for sip@ietf.org; Wed, 28 Jan 2004 09:30:50 -0500
Received: from esvir04nok.ntc.nokia.com (esvir04nokt.ntc.nokia.com [172.21.143.36]) by mgw-x4.nokia.com (Switch-2.2.8/Switch-2.2.8) with ESMTP id i0SEUlY03614 for <sip@ietf.org>; Wed, 28 Jan 2004 16:30:48 +0200 (EET)
Received: from esebh001.NOE.Nokia.com (unverified) by esvir04nok.ntc.nokia.com (Content Technologies SMTPRS 4.2.5) with ESMTP id <T6769b49faaac158f24073@esvir04nok.ntc.nokia.com>; Wed, 28 Jan 2004 16:24:36 +0200
Received: from nokia.com ([172.21.11.146]) by esebh001.NOE.Nokia.com with Microsoft SMTPSVC(5.0.2195.6747); Wed, 28 Jan 2004 16:24:33 +0200
Message-ID: <4017C622.2050507@nokia.com>
Date: Wed, 28 Jan 2004 16:24:34 +0200
From: "Niemi Aki (Nokia-M/Helsinki)" <aki.niemi@nokia.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6b) Gecko/20031205 Thunderbird/0.4
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: ext Jonathan Rosenberg <jdrosen@dynamicsoft.com>
CC: sip@ietf.org
Subject: Re: [Sip] querying the current event state of a publication
References: <4012E741.5000809@dynamicsoft.com>
In-Reply-To: <4012E741.5000809@dynamicsoft.com>
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
X-OriginalArrivalTime: 28 Jan 2004 14:24:33.0844 (UTC) FILETIME=[7351AF40:01C3E5AA]
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

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.
> 

_______________________________________________
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