Re: [sipcore] Required normative revisions to support 199 response

Christer Holmberg <christer.holmberg@ericsson.com> Wed, 08 December 2010 13:41 UTC

Return-Path: <christer.holmberg@ericsson.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 0E0253A693D for <sipcore@core3.amsl.com>; Wed, 8 Dec 2010 05:41:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.454
X-Spam-Level:
X-Spam-Status: No, score=-6.454 tagged_above=-999 required=5 tests=[AWL=0.145, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
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 S3LNP2qQBHlO for <sipcore@core3.amsl.com>; Wed, 8 Dec 2010 05:41:04 -0800 (PST)
Received: from mailgw10.se.ericsson.net (mailgw10.se.ericsson.net [193.180.251.61]) by core3.amsl.com (Postfix) with ESMTP id 29BC03A6783 for <sipcore@ietf.org>; Wed, 8 Dec 2010 05:41:04 -0800 (PST)
X-AuditID: c1b4fb3d-b7ceeae0000031e4-5e-4cff8b470db9
Received: from esessmw0197.eemea.ericsson.se (Unknown_Domain [153.88.253.125]) by mailgw10.se.ericsson.net (Symantec Mail Security) with SMTP id 69.C0.12772.74B8FFC4; Wed, 8 Dec 2010 14:42:31 +0100 (CET)
Received: from ESESSCMS0356.eemea.ericsson.se ([169.254.1.175]) by esessmw0197.eemea.ericsson.se ([153.88.115.87]) with mapi; Wed, 8 Dec 2010 14:42:30 +0100
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: "DRAGE, Keith (Keith)" <keith.drage@alcatel-lucent.com>, Paul Kyzivat <pkyzivat@cisco.com>, SIPCORE <sipcore@ietf.org>
Date: Wed, 08 Dec 2010 14:42:29 +0100
Thread-Topic: [sipcore] Required normative revisions to support 199 response
Thread-Index: AcuVsFP3DYAm/1VWSUaLuAtw0x4AbQAlpvDVACO+SPAAAfG1IA==
Message-ID: <7F2072F1E0DE894DA4B517B93C6A058503155208@ESESSCMS0356.eemea.ericsson.se>
References: <4CFD9187.3090207@cisco.com> <7F2072F1E0DE894DA4B517B93C6A058502C7190C@ESESSCMS0356.eemea.ericsson.se> <EDC0A1AE77C57744B664A310A0B23AE21E3D63CC@FRMRSSXCHMBSC3.dc-m.alcatel-lucent.com>
In-Reply-To: <EDC0A1AE77C57744B664A310A0B23AE21E3D63CC@FRMRSSXCHMBSC3.dc-m.alcatel-lucent.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Brightmail-Tracker: AAAAAA==
Subject: Re: [sipcore] Required normative revisions to support 199 response
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: Wed, 08 Dec 2010 13:41:06 -0000

Hi Keith, 

>>"The UAC MUST, even if it has required provisional responses to be 
>>sent reliably, be prepared to receive unreliably sent provisional 
>>response, as such responses might have been sent by SIP proxies."
>>
> 
>How about: 
>
>"The UAC MUST support reception of all provisional responses, 
>sent reliably or unreliably; use of the option tag value 
>"100rel" in a Require header field does not change this requirement."

Looks good to me.

Regards,

Christer



> > -----Original Message-----
> > From: sipcore-bounces@ietf.org
> > [mailto:sipcore-bounces@ietf.org] On Behalf Of Christer Holmberg
> > Sent: Tuesday, December 07, 2010 8:18 PM
> > To: Paul Kyzivat; SIPCORE
> > Subject: Re: [sipcore] Required normative revisions to support 199 
> > response
> > 
> > Hi,
> > 
> > >In offline discussions, Robert, Cullen (and maybe others?) have 
> > >questioned whether draft-ietf-sipcore-199-02.txt requires a
> > normative
> > >change to RFC 3262 (100rel). We've gotten deep enough into
> > this that it
> > >seemed proper to bring it back to the list for further discussion.
> > >
> > >The issue is that this draft, as currently written, 
> requires that the
> > >199 response be sent *un*reliably even if Require:100rel was
> > specified
> > >by the UAC. It is (partially) mitigated by the 
> introduction of a new 
> > >'199' option tag. If Supported:199 is not present in the 
> request, the
> > >199 response can't be sent. So the draft makes the argument
> > that there
> > >is no backward compatibility issue, making this an 
> extension rather 
> > >than a change.
> > >
> > >BUT, there is still a potential backward compatibility issue
> > for other
> > >proxies that don't know about the 199 option. A
> > dialog-stateful proxy
> > >upstream of the 199-sender might observe the unreliable 199
> > and not it
> > >to be inconsistent with the Require:100rel.
> > >
> > >In addition, I realized that this draft also extends RFC
> > 3261, in that
> > >it for the first time introduces a case where a *proxy* may
> > *originate*
> > >(not just forward) a response in the context of an 
> existing (early) 
> > >dialog. According to 3261 a proxy that initiates a response
> > is actually
> > >doing so in the role of a UAS, and so must add its own 
> to-tag, thus 
> > >creating a new dialog.
> > >
> > >So, I have proposed that the specification for what goes on when 
> > >sending
> > >199 be tweaked, in a way that is trivially different from an 
> > >implementation perspective but that is conceptually
> > significant. Namely:
> > >
> > >- There should be no exception from Require:100rel. When a 
> UAS sends
> > >   a 199, if Require:100rel is in effect it MUST send the
> > 199 reliably.
> > 
> > I know that people (including me) wanted to allow a UAS to 
> always send 
> > 199 unreliably.
> > 
> > However, I can live with Paul's suggestion (partly because I don't 
> > think Require:100rel is very often used in real deployments).,
> > 
> > >- When a *proxy* *originates*a 199, it is considered to be 
> operating
> > >   as a *proxy*, not as a UAS. Hence it is not bound by
> > Require:100rel.
> > >   Rather it is bound by Proxy-Require:100rel. The proposal is to
> > >   make a revision to 3262 that says 100rel MUST NOT be used in
> > >   Proxy-Require. And as now the proxy MUST NOT send the 199
> > reliably.
> > >   That ensures there won't be a PRACK that would then possibly be
> > >   forwarded on to the UAS that doesn't expect it.
> > >
> > >   But the proxy is *originating* the 199 response in the
> > context of the
> > >   existing (early) dialog. It must make a response that is
> > valid in that
> > >   context. (E.g. the to-tag.)
> > >
> > >This does not eliminate the impact on upstream proxies. They
> > will still
> > >see an unreliable provisional response that might be 
> surprising. So 
> > >this still requires a revision to 3262. I really hated the idea of 
> > >making a special case for the single 199 response code. So
> > my proposal is:
> > >
> > >- in any case where a proxy is permitted to originate a provisional
> > >   response within an existing dialog (early or not) it must do so
> > >   unreliably. (For now the only case this applies to is 199.)
> > 
> > I had a look at 3262, and the follwoing statement could be added to 
> > section 4 (UAC behavior) of RFC 3262:
> > 
> > "The UAC MUST, even if it has required provisional responses to be 
> > sent reliably, be prepared to receive unreliably sent provisional 
> > response, as such responses might have been sent by SIP proxies."
> > 
> > 
> > >- the 100rel option MUST NOT be sent (ever) in Proxy-Require.
> > 
> > I had a look at 3262, and one could argue that the usage of 
> > Proxy-Require isn't defined in the first place.
> > 
> > But, if we want to be explicit, the following statement could 
> > be added to section 4 (UAC behavior) of RFC 3262:
> > 
> > "A UAC MUST NOT insert a Proxy-Require header field with the 
> > option tag 100rel into the request."
> > 
> > 
> > >The effect of this is that UACs and proxies may see unreliable 
> > >provisionals even when Require:100rel is in effect. This is a 
> > >(hopefully
> > >insignificant) backward incompatibility from 3262.
> > >
> > >*** I'm requesting feedback on the above approach.
> > >*** Are you happy with it?
> > >*** Do you have a better idea?
> > 
> > I am ok with the approach.
> > 
> > -----
> > 
> > >While writing this I thought of another issue that needs 
> discussion.
> > >When the proxy is constructing the 199, to be in the 
> context of the 
> > >dialog, how should it be constructed? The following are 
> questionable:
> > >
> > >- Contact address
> > >- Record-Route
> > >- History-Info
> > >- (did I forget any that matter?)
> > >
> > >The straightforward answer is that these should all be 
> > copied from the 
> > >final response that triggered the sending of the 199. An 
> alternative 
> > >might be to copy from the response that the proxy 
> considers to have 
> > >established the early dialog. These *might* not be the same.
> > >
> > >Alternatively, perhaps the proxy should generate the 199 response 
> > >without the Contact since the contact does not reflect the 
> sender of 
> > >the response. But that would be contrary to some discussions that 
> > >occurred a couple of years ago (aug 2008) on the 
> > sip-implementors list, 
> > >which concluded (IMO) that 3261 implies Contact is required in all 
> > >provisional responses.
> > 
> > I think this has been discussed before, and as far as I 
> > remember none of the header fields above are required to be 
> > present in a provisional response - unless the response is 
> > used to create a dialog, which is not the case with 199.
> > 
> > So, unless I'm wrong, I would not like to re-open that 
> > discussion, because it is not part of what was supposed to be 
> > be brought to the list for discussion.
> > 
> > (From a debugging perspective, I actually think it could be 
> > good if the response from the proxy does not contain the 
> > header fields, which gives a hint that the response might 
> > have been generated by a proxy).
> > 
> > Regards,
> > 
> > Christer
> > _______________________________________________
> > sipcore mailing list
> > sipcore@ietf.org
> > https://www.ietf.org/mailman/listinfo/sipcore
> >