Re: [sipcore] Draft new version: draft-holmberg-sipcore-proxy-feature

Paul Kyzivat <pkyzivat@cisco.com> Thu, 27 January 2011 18:48 UTC

Return-Path: <pkyzivat@cisco.com>
X-Original-To: sipcore@core3.amsl.com
Delivered-To: sipcore@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 6AF6E3A69D1 for <sipcore@core3.amsl.com>; Thu, 27 Jan 2011 10:48:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -110.224
X-Spam-Level:
X-Spam-Status: No, score=-110.224 tagged_above=-999 required=5 tests=[AWL=-0.225, BAYES_00=-2.599, J_CHICKENPOX_38=0.6, RCVD_IN_DNSWL_HI=-8, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id e3pCUmziuUW3 for <sipcore@core3.amsl.com>; Thu, 27 Jan 2011 10:48:18 -0800 (PST)
Received: from rtp-iport-2.cisco.com (rtp-iport-2.cisco.com [64.102.122.149]) by core3.amsl.com (Postfix) with ESMTP id 078863A67F7 for <sipcore@ietf.org>; Thu, 27 Jan 2011 10:48:17 -0800 (PST)
Authentication-Results: rtp-iport-2.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEAGNNQU1AZnwN/2dsb2JhbACkfXOgbJtUgneCWASFF4cQg0Q
Received: from rtp-core-2.cisco.com ([64.102.124.13]) by rtp-iport-2.cisco.com with ESMTP; 27 Jan 2011 18:51:21 +0000
Received: from [10.86.250.39] (bxb-vpn3-551.cisco.com [10.86.250.39]) by rtp-core-2.cisco.com (8.13.8/8.14.3) with ESMTP id p0RIpK6K018714; Thu, 27 Jan 2011 18:51:21 GMT
Message-ID: <4D41BEA8.1000303@cisco.com>
Date: Thu, 27 Jan 2011 13:51:20 -0500
From: Paul Kyzivat <pkyzivat@cisco.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7
MIME-Version: 1.0
To: Christer Holmberg <christer.holmberg@ericsson.com>
References: <7F2072F1E0DE894DA4B517B93C6A058502B84084@ESESSCMS0356.eemea.ericsson.se> <BDBFB6CE314EDF4CB80404CACAEFF5DE07C6C68C@XCH02DFW.rim.net>, <4D3A2C3D.10508@cisco.com> <7F2072F1E0DE894DA4B517B93C6A0585194414F717@ESESSCMS0356.eemea.ericsson.se> <4D3EEC64.2080302@nostrum.com> <7F2072F1E0DE894DA4B517B93C6A05851944155A13@ESESSCMS0356.eemea.ericsson.se> <4D3F2365.2070504@nostrum.com> <7F2072F1E0DE894DA4B517B93C6A0585194427B044@ESESSCMS0356.eemea.ericsson.se> <4D419713.7030000@nostrum.com> <7F2072F1E0DE894DA4B517B93C6A0585194427B199@ESESSCMS0356.eemea.ericsson.se> <4D41A848.1090304@cisco.com> <7F2072F1E0DE894DA4B517B93C6A0585194427B1DC@ESESSCMS0356.eemea.ericsson.se>
In-Reply-To: <7F2072F1E0DE894DA4B517B93C6A0585194427B1DC@ESESSCMS0356.eemea.ericsson.se>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: "sipcore@ietf.org" <sipcore@ietf.org>
Subject: Re: [sipcore] Draft new version: draft-holmberg-sipcore-proxy-feature
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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: Thu, 27 Jan 2011 18:48:19 -0000

On 1/27/2011 12:40 PM, Christer Holmberg wrote:
>
> Hi,
>
>>>> Another hurdle you're going to face is harmonizing your
>>>> proposal with RFC 5897. All three of your examples rely on doing, just about as
>>>> vigorously as possible, precisely what RFC 5897 says not to do.
>>>
>>> Feature tags indicate support of a capability. EVERY
>>> feature tag does that - even if inserted in a Contact header
>>> field by a UA - and the feature tag specification needs to
>>> define the meaning of that capability.
>>>
>>> The important thing is that it cannot be assumed that other
>>> entities understand the meaning of the feature tag in order
>>> to progress a call (in such cases you will also need an
>>> option-tag, inserted in a Require/Proxy-Require header field).
>>>
>>> There was also an extended discussion (battle?), around the
>>> time the callerprefs came out, about the validity of using
>>> feature-tags (capabilities) to identify arbitrary *services* where the
>>> service was to be defined in some external, potentially
>>> restricted document.
>
> 3GPP specifications are as external as IETF RFCs.
>
> It is also important to remember that the proposed work is not about specifying specific feature tags, but a generic mechanism to carry proxy-inserted feature tags.

What I'm still missing is a generic definition of what it means for an 
intermediary in sip signaling (especially a proxy) to have capabilities.

With 3840/3841 I have a general understanding that:
- I can use callerprefs to suggest policies for getting my request
   to a UAS that has the stated capabilities
- that I can use fairly obvious sip signaling to make use of the
   capabilities. (E.g. if the video feature tag is present then I can
   expect that video lines in my offers will at least be understood.)

I'm not getting that level of understanding with this proposal yet. What 
I understand is that a server wanting to announce a capability is 
expected to put the feature tag on its record-route entry. I don't know 
if that is intended to convey information to the UAC or the UAS, or to 
other intermediaries on one side or the other (or both) in the 
transaction? And are these intended to apply for the dialog being 
established, or more broadly? (R-R only applies to the dialog.)

Nor do I understand *how* such features would be invoked? Again, is this 
*within* the dialog? Or is this through a new dialog or a transaction 
outside a dialog?

For instance, I suppose that if the feature were attached to an entry in 
a Service-Route header, then it would be copied into a Route header for 
requests outside an existing dialog, and them *maybe* the UAC could 
infer that something specific might happen to those requests. But that 
is strange to me - I expect that Route headers are used to steer a 
request through a sequence of proxies before getting to a particular 
destination. But I don't expect those proxies to do anything except 
ensure that the request actually reaches the R-URI and then works in 
accord with the request I sent for the UAS.

If the feature was attached to an entry in a Path header, then the same 
considerations might apply but from the perspective of the "proxy" 
associated with the registrar. These would become Route headers on 
requests outbound from it.

While there are certainly feature-specific things to be said, the 
general model of what is going on is still not clear to me.

> I have no problem to include a statement saying that feature tags specifications that use the mechanism MUST be publicly available.
>
>> The crux of the argument was whether capabilities were
>> orthogonal to one another or not. The concern was (and
>> remains) that interoperability is severely limited if there
>> are potentially many ways of specifying the same capability,
>> as part of this service or that service.
>
> Yes, but that relates to most things we do.

And its something we must constantly be mindful of.

>> (IIRC, one of the examples used was video calling, where
>> somebody might describe a capability "video-phone" that
>> implies a particular combination of audio and video. Two UAs
>> that supported this might work well together, but somebody
>> with a UA that supports exactly the same media types and
>> *could* interoperate if connected, might fail to interoperate
>> for lack of specifying the proper feature-tag.)
>>
>> We run a risk of going through the same thing here. That is
>> what 5897 was about too.
>
> The procedures associated with the 3GPP feature tags are very well documented, rather than being something general as "audio" and "video".
>
> And, take sip.instance as an example. It is useless unless entities support procedures associated with it. But, if UA_A inserts sip.instance, and UE_B does not support it, they will still be able to communicate. But, if they want to use features associated with the feature tag, they need to support the procedures defined for that feature. There is nothing in the "SIP signalling" that tells the entities what to do, if the sip.instance e.g. is going to be used outside the dialog (e.g in a REFER request).

sip.instance may have been a mistake. It makes sense as a Contact header 
parameter, but whether it is truly a capability/feature is a bit shaky. 
Even so, its not an "outbound" feature, and its inclusion does not mean 
that you want outbound functionality. It merely says "this is who I am" 
and thus can be used for many things.

	Thanks,
	Paul