Re: [Stox] AD Evaluation of draft-ietf-stox-7248bis-05

Peter Saint-Andre <stpeter@stpeter.im> Sun, 20 March 2016 22:24 UTC

Return-Path: <stpeter@stpeter.im>
X-Original-To: stox@ietfa.amsl.com
Delivered-To: stox@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C157B12D555; Sun, 20 Mar 2016 15:24:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.903
X-Spam-Level:
X-Spam-Status: No, score=-1.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JZhPTIMITLMf; Sun, 20 Mar 2016 15:24:28 -0700 (PDT)
Received: from stpeter.im (mailhost.stpeter.im [207.210.219.225]) by ietfa.amsl.com (Postfix) with ESMTP id 29E7612D547; Sun, 20 Mar 2016 15:24:25 -0700 (PDT)
Received: from [10.0.0.94] (unknown [73.34.202.214]) (Authenticated sender: stpeter) by stpeter.im (Postfix) with ESMTPSA id B947AE81DD; Sun, 20 Mar 2016 16:30:57 -0600 (MDT)
To: Ben Campbell <ben@nostrum.com>, Peter Saint-Andre - &yet <peter@andyet.net>
References: <CC605F0B-9B8E-4FE0-9DEC-79A3E1162ED5@nostrum.com> <56036577.3000204@andyet.net> <1794408B-8BE1-4F24-8A26-F40B1A0804EF@nostrum.com>
From: Peter Saint-Andre <stpeter@stpeter.im>
Message-ID: <56EF2316.8080501@stpeter.im>
Date: Sun, 20 Mar 2016 16:24:22 -0600
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0
MIME-Version: 1.0
In-Reply-To: <1794408B-8BE1-4F24-8A26-F40B1A0804EF@nostrum.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/stox/d36yJnNHax9QWlT34H6slqYejvU>
Cc: stox@ietf.org, draft-ietf-stox-7248bis.all@ietf.org
Subject: Re: [Stox] AD Evaluation of draft-ietf-stox-7248bis-05
X-BeenThere: stox@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: SIP-TO-XMPP Working Group discussion list <stox.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/stox>, <mailto:stox-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/stox/>
List-Post: <mailto:stox@ietf.org>
List-Help: <mailto:stox-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/stox>, <mailto:stox-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 20 Mar 2016 22:24:30 -0000

Some further thoughts on presence subscriptions below...

On 09/24/2015 11:55 AM, Ben Campbell wrote:
> 
> On 23 Sep 2015, at 22:52, Peter Saint-Andre - &yet wrote:
> 
>> Hi Ben, thanks for the continued careful reviews. Comments inline.
>>
>> On 9/21/15 9:25 PM, Ben Campbell wrote:
> 

<snip/>

>>> -2nd paragraph after example 11:
>>> This also needs a NOTIFY. You mention one in the following paragraph for
>>> the declined case, but you need one in either case.
>>
>> Yes. The XMPP server will generate a presence notification in this
>> case, so that's the primary NOTIFY of interest here, I think.
> 
> I think it's still worth mentioning that it happens. And that brings up
> another question: A RFC 6665 notifier is required to send an "immediate"
> NOTIFY. Do you think the presence stanza will reliably arrive at the
> gateway in time to be considered "immediate"? If there's any likelihood
> of delay, the gateway may need to send a "pending" NOTIFY.
> 
> [...]
> 
>>
>>> - 2nd bullet:
>>> This description is confusing. You aren’t maintaining the SIP
>>> subscription, just the xmpp subscription.
>>
>> "Treat the subscription as if it were long-lived" might be clearer.
>>
> 
> WFM.
> 
>>> -- 2nd bullet, sub-item 2:
>>>
>>> Do I understand this to mean the XMPP gateway infers availability of the
>>> SIP user from the SIP user’s subscription? That should come from a
>>> reciprocal subscription. Just because a SIP user subscribes to someone
>>> else's presence doesn't mean that user is available. Just because he
>>> doesn't doesn't mean he is not.
>>
>> This flow describes what happens when the SIP user ends its presence
>> session. In that case, it seems to me that sending a presence stanza
>> of type "unavailable" to the XMPP user is appropriate (when the
>> gateway treats the subscription as if it were long-lived).
> 
> While it's probably not common in practice, it's perfectly okay
> according to the protocol for a SIP user to stop subscribing to a
> resource, while continuing to send updates to that resource on a
> reciprocal subscription. It might be reasonable to assume the user to be
> unavailable if you have no information to the contrary, but this advice
> seems to suggest overriding presence information sent explicitly by the
> SIP user with presence information inferred from the subscription.
> 
> 
>>
>>> Also, how does this violate the SIP semantic?
>>
>> There's a mismatch in the meaning of subscribe. Treating a SIP
>> subscription as if it were long-lived means the gateway follows the
>> XMPP subscription model, not the SIP subscription model. A gateway
>> implementer needs to choose which model to honor, and if it chooses
>> the XMPP model then it's not honoring the SIP model (and vice-versa).
> 
> I think this depends on the resolution to the previous comment, but I
> would say that if the protoocl behavior expectations of the SIP
> subscriber are met, the semantic has not been violated.

While attempting to improve the text, I've been thinking about this
issue some more. I see two paths.

1. We could add a paragraph such as the following to Section 5.3.2 on
refreshing a presence subscription from SIP to XMPP:

   Note: In SIP there is no necessary connection between a presence
   session and an outbound subscription to a contact's presence; for
   example, a SIP user agent could end its subscription to the contact's
   presence yet still keep sending presence notifications to the
   contact, or it could send a presence notification indicating that it
   is offline (i.e., by sending a PIDF document with a basic status of
   "closed") while still maintaining a subscription to the contact's
   presence.  However, to simplify the description of handling
   notifications and subscriptions this document assumes that if a SIP
   user goes offline it will also terminate its outbound subscriptions.

2. We could remove any mention of presence sessions (i.e., online or
offline state) from Section 5.3.2 and make it purely about presence
subscriptions and not availability.

I'm not sure which way to go. Currently Section 5.3.2 talks about
presence notifications, so removing any mention of a presence session
seems odd (after all, the whole point of presence subscriptions is to
receive presence notifications).

I will ponder this further but for now I will probably include a note
similar to the one shown above until we can determine the best path forward.

Peter