Re: [sipcore] draft-ietf-sipcore-keep - Peter's comments

Paul Kyzivat <pkyzivat@cisco.com> Tue, 03 August 2010 15:40 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 B858A3A6857 for <sipcore@core3.amsl.com>; Tue, 3 Aug 2010 08:40:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.469
X-Spam-Level:
X-Spam-Status: No, score=-10.469 tagged_above=-999 required=5 tests=[AWL=0.130, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
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 TfSRNiQvWV94 for <sipcore@core3.amsl.com>; Tue, 3 Aug 2010 08:40:27 -0700 (PDT)
Received: from rtp-iport-2.cisco.com (rtp-iport-2.cisco.com [64.102.122.149]) by core3.amsl.com (Postfix) with ESMTP id 896893A6925 for <sipcore@ietf.org>; Tue, 3 Aug 2010 08:40:27 -0700 (PDT)
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: AvsEAPLUV0xAZnwM/2dsb2JhbACgEXGoKptQhTkEiQ4
X-IronPort-AV: E=Sophos;i="4.55,309,1278288000"; d="scan'208";a="142810004"
Received: from rtp-core-1.cisco.com ([64.102.124.12]) by rtp-iport-2.cisco.com with ESMTP; 03 Aug 2010 15:40:55 +0000
Received: from [10.86.245.127] ([10.86.245.127]) by rtp-core-1.cisco.com (8.13.8/8.14.3) with ESMTP id o73FetUi015358; Tue, 3 Aug 2010 15:40:55 GMT
Message-ID: <4C583887.8030700@cisco.com>
Date: Tue, 03 Aug 2010 11:40:55 -0400
From: Paul Kyzivat <pkyzivat@cisco.com>
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
To: Christer Holmberg <christer.holmberg@ericsson.com>
References: <7F2072F1E0DE894DA4B517B93C6A05850B5C23@ESESSCMS0356.eemea.ericsson.se> <7F2072F1E0DE894DA4B517B93C6A05850CA572@ESESSCMS0356.eemea.ericsson.se>, <4C5821D6.6030907@cisco.com> <7F2072F1E0DE894DA4B517B93C6A05850B5C3B@ESESSCMS0356.eemea.ericsson.se>
In-Reply-To: <7F2072F1E0DE894DA4B517B93C6A05850B5C3B@ESESSCMS0356.eemea.ericsson.se>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: SIPCORE <sipcore@ietf.org>, Peter Musgrave <peter.musgrave@magorcorp.com>
Subject: Re: [sipcore] draft-ietf-sipcore-keep - Peter's comments
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: Tue, 03 Aug 2010 15:40:29 -0000

at end

Christer Holmberg wrote:
> Hi Paul,
> 
>>>>> I have read draft-ietf-sipcore-keep in detail for the first time.
>>>>>
>>>>> I have one questions and some Nits.
>>>>>
>>>>> Question: 7.3 Should the TRYING (not shown) from P1 to Alice have
>>>>> keep=30 in it? What if the 200 OK takes e.g. longer than 30sec and the
>>>>> NAT pinhole closes?
>>>> It is true that the flow only shows the 200 OK, but the text
>>>> in section 4.4 responses in general.
>>>>
>>>> I guess we could add some text that points out that the keep
>>>> value should be sent as soon as possible, as it may take a
>>>> while before the final response is sent.
>>> What about the following new text in section 4.4.
>>>
>>>       "In the case of an INVITE request, if a SIP entity sends or forwards multiple responses (provisional and final) associated with the
>>>       request, and it indicates willingness to receive keep-alives, it only needs to insert a "keep" parameter value in one of the responses. The
>>>       SIP entity SHOULD indicate the willingess to receive keep-alives as soon as possible."
>> You really need to consider reliable and unreliable provisionals separately.
>>
>> Either restrict to reliable responses (provisional or final), or else
>> allow in unreliable provisionals preceding a reliable response. (Which
>> might get it going sooner.)
>>
>> As we have seen with o/a, allowing in unreliable provisionals introduces
>> complications, especially when changing values are used.
> 
> You are right. I was thinking about that, but must have forgot when I put the text together...
> 
> The text should say that the parameter needs to be inserted in at least one response that is sent reliably. I see no reason to forbid to, in addition, also include it in unreliable responses.
> 
> So, something like:
> 
>        "In the case of an INVITE request, if a SIP entity sends or forwards multiple responses (provisional and final) associated with the
>        request, and it indicates willingness to receive keep-alives, it only needs to insert a "keep" parameter value in one response that is sent 
>        reliably. The SIP entity MAY insert the parameter value also in other responses (relaible and unreliable) associated with the request. 
>       The SIP entity SHOULD indicate the willingess to receive keep-alives as soon as possible."

You have to be very careful with the wording here.
(Speaking after bad experience with o/a.) The above doesn't say that the 
value must be the same if sent more than once, or what should happen if 
it is not the same. How about:

"A SIP entity receiving an initial INVITE request and wishing to 
indicate a willingness to receive keep-alives, MUST insert a "keep" 
parameter value in one reliable response to the INVITE. The SIP entity 
MAY insert an identical "keep" parameter value in other responses to the 
same INVITE. The SIP entity MUST NOT insert "keep" parameters with 
differing values in responses to a single INVITE. The SIP entity SHOULD 
indicate the willingness to receive keep-alives as soon as possible."

	Thanks,
	Paul