Re: [sipcore] draft-sparks-sipcore-refer-explicit-subscription-02: comments

Robert Sparks <rjsparks@nostrum.com> Mon, 10 November 2014 21:19 UTC

Return-Path: <rjsparks@nostrum.com>
X-Original-To: sipcore@ietfa.amsl.com
Delivered-To: sipcore@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 699A31A1B15 for <sipcore@ietfa.amsl.com>; Mon, 10 Nov 2014 13:19:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.494
X-Spam-Level:
X-Spam-Status: No, score=-2.494 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.594] autolearn=ham
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 j8p3y8XP893N for <sipcore@ietfa.amsl.com>; Mon, 10 Nov 2014 13:19:17 -0800 (PST)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 87AA61A1B24 for <sipcore@ietf.org>; Mon, 10 Nov 2014 13:19:05 -0800 (PST)
Received: from dhcp-b418.meeting.ietf.org (dhcp-b418.meeting.ietf.org [31.133.180.24]) (authenticated bits=0) by nostrum.com (8.14.9/8.14.7) with ESMTP id sAALJ2YN044083 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 10 Nov 2014 15:19:02 -0600 (CST) (envelope-from rjsparks@nostrum.com)
Message-ID: <54612BC5.5060201@nostrum.com>
Date: Mon, 10 Nov 2014 11:19:01 -1000
From: Robert Sparks <rjsparks@nostrum.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Thunderbird/31.2.0
MIME-Version: 1.0
To: Brett Tate <brett@broadsoft.com>, draft-sparks-sipcore-refer-explicit-subscription@tools.ietf.org, sipcore@ietf.org
References: <af46d0591e501b9f610cf72698549bae@mail.gmail.com> <54610E3E.8030003@nostrum.com> <16c53b2416e5d5ae6e327d9b7d0399ed@mail.gmail.com> <54611ED5.2020809@nostrum.com> <c0010dcb2e7fb51e42cd408576e6d1cb@mail.gmail.com>
In-Reply-To: <c0010dcb2e7fb51e42cd408576e6d1cb@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: http://mailarchive.ietf.org/arch/msg/sipcore/fRDy1AluYqdVRJMVf9MY48dWY2w
Subject: Re: [sipcore] draft-sparks-sipcore-refer-explicit-subscription-02: comments
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sipcore>, <mailto:sipcore-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sipcore/>
List-Post: <mailto:sipcore@ietf.org>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 10 Nov 2014 21:19:20 -0000

On 11/10/14 10:54 AM, Brett Tate wrote:
>>>> Was that text problematic for you?
>>> The proposal continues to mandate that the option-tag only be honored
>>> if received within a Require header of REFER.
>>>
>>> If REFER is received within dialog, mandating that the UAS return a
>>> 421 appears to do nothing but require extra messaging for those
>>> attempting to use it.  I recommend allowing behavior similar to RFC
>>> 3262 so that the option tag can be within Supported of mid-dialog
>>> REFER and Require of REFER's 2xx response.
>> We _specifically_ avoided that design. It takes us into the "I don't
>> know if this will create a subscription or not when I send the REFER"
>> territory.
So, there are two things I think you're trying to talk about. I'm going 
to draw
lines around them just to double-check that I'm hearing you correctly.

First is the suggestion to change how we're using Supported/Require.

I don't understand yet why you would _want_ to send a REFER with
Supported: explicitsub and learn later whether the other side chose
to use an implicit subscription or an explicit subscription, signaled
in the 200 OK to the REFER.

Essentially, you are positing "I don't care as a client, you choose as
the server". I don't think we have a need for that, and trying to support
something like it is what led norefersub to being what it is.

It's even _less_ obvious what the semantic would be if you did this with
nosub.

When you are in a dialog, you have the opportunity to see that the extension
is supported before you start preparing your in-dialog refer by watching 
Supported
in the transactions earlier in the dialog. If your peer hasn't been 
playing nicely and
telling you about what it supports, you can probe by  sending the REFER 
with the
require and see the 421. That is not new behavior defined by this draft 
- it's basic 3261.

Our case here is different from 100rel. The semantic there is that the 
server gets to
invoke _using_ the extension because it's the thing that knows whether the
extension is needed. It's been a fundamental point of this proposal from 
the beginning
that this is a decision that the client is going to make.
> If referrer sends a REFER within dialog without using the Require, they know
> that it might create a subscription since they don't know if the option-tag
> is supported.  The 2xx response can indicate if it did create a subscription
> by supplying Require indicating what occurred.
>
> If the desire is to allow RFC 6665 compliant device to send REFER over
> dialog during GRUU situation, they would need to use the Require (AFAIK).
If I'm reading you correctly, your second comment is that the draft isn't
clear enough that if you are requiring explicitsub (or nosub), the REFER
request itself isn't bound by the requirements of 3265 since its contact
isn't used in setting up a subscription. I'll go look at the draft between
meetings (I'm in other sessions right now), and see if I can pump that up.

>
> I still haven't noticed how the draft avoids RFC 6665 compliant notifier
> from needing to supply GRUU Contact within call dialog.
>
>
>> You have Supported around _before_ you get to sending the REFER
>> require to help you avoid discovering lack of support by trying to
>> require it if you care about that extra messaging.
> If the REFER was sent within dialog, the lack of support/use would be
> observed by receiving REFER's 2xx response without Require option-tag.
>
> The referrer can use Require when REFER sent outside of dialog (or within
> dialog if desired) if they want to avoid ambiguity during forking situation.
>
> Thanks,
> Brett