Re: [dispatch] Two week review: Progressing draft-mohali-dispatch-originating-cdiv-parameter as AD sponsored
worley@ariadne.com (Dale R. Worley) Tue, 11 October 2016 22:00 UTC
Return-Path: <worley@alum.mit.edu>
X-Original-To: dispatch@ietfa.amsl.com
Delivered-To: dispatch@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C846C1295B6 for <dispatch@ietfa.amsl.com>; Tue, 11 Oct 2016 15:00:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.934
X-Spam-Level:
X-Spam-Status: No, score=-1.934 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_SOFTFAIL=0.665] autolearn=no 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 JrS6flq8Uxxk for <dispatch@ietfa.amsl.com>; Tue, 11 Oct 2016 14:59:58 -0700 (PDT)
Received: from resqmta-po-04v.sys.comcast.net (resqmta-po-04v.sys.comcast.net [IPv6:2001:558:fe16:19:96:114:154:163]) (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 9DEF31293E8 for <dispatch@ietf.org>; Tue, 11 Oct 2016 14:59:58 -0700 (PDT)
Received: from resomta-po-18v.sys.comcast.net ([96.114.154.242]) by resqmta-po-04v.sys.comcast.net with SMTP id u55LbuBQEGkXBu55Zb5VPw; Tue, 11 Oct 2016 21:59:57 +0000
Received: from hobgoblin.ariadne.com ([73.16.37.18]) by resomta-po-18v.sys.comcast.net with SMTP id u55Xbce2YDkKEu55YbnZQi; Tue, 11 Oct 2016 21:59:56 +0000
Received: from hobgoblin.ariadne.com (hobgoblin.ariadne.com [127.0.0.1]) by hobgoblin.ariadne.com (8.14.7/8.14.7) with ESMTP id u9BLxslc012723 for <dispatch@ietf.org>; Tue, 11 Oct 2016 17:59:54 -0400
Received: (from worley@localhost) by hobgoblin.ariadne.com (8.14.7/8.14.7/Submit) id u9BLxrlt012720; Tue, 11 Oct 2016 17:59:53 -0400
X-Authentication-Warning: hobgoblin.ariadne.com: worley set sender to worley@alum.mit.edu using -f
From: worley@ariadne.com
To: dispatch@ietf.org
In-Reply-To: <CAHBDyN54gbTkcJpfPouUzRX4DswJw=gNc6hh2RXs-Zw3=_7mpg@mail.gmail.com> (mary.ietf.barnes@gmail.com)
Sender: worley@ariadne.com
Date: Tue, 11 Oct 2016 17:59:53 -0400
Message-ID: <87bmyqzgva.fsf@hobgoblin.ariadne.com>
X-CMAE-Envelope: MS4wfAsLnok928814H50mnhLnyKc+4/hhN9qo1EN0qjAiErEp6esONtXfTLM5YAKw3T83jKH/0OEiNOzwj8OK8zqzv7qwYpCxCtwszzj+vfXTK0WQ/9ukS4k nI5RlRcbth4u0gUR/V7xXyVzRMmhp/owDv44AzFNXDtpg3j4BewQfwGI
Archived-At: <https://mailarchive.ietf.org/arch/msg/dispatch/SSHqzrdIShTkOPXo2ctW3_XIc-0>
Subject: Re: [dispatch] Two week review: Progressing draft-mohali-dispatch-originating-cdiv-parameter as AD sponsored
X-BeenThere: dispatch@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: DISPATCH Working Group Mail List <dispatch.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dispatch>, <mailto:dispatch-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dispatch/>
List-Post: <mailto:dispatch@ietf.org>
List-Help: <mailto:dispatch-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dispatch>, <mailto:dispatch-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 11 Oct 2016 22:00:01 -0000
Review of draft-mohali-dispatch-originating-cdiv-parameter-02 Since 3GPP has a need for this work, and since it is compatible with general SIP usage, I support progressing this document once the following technical issues are resolved. Dale ---------------------------------------------------------------------- These comments are based on my understanding of how the P-Served-User header is used. If my understanding is incorrect, it would probably be useful to revise the text to clarifying the misunderstanding. Technical: - There has been discussion on the Dispatch mailing list of the possibility of multiple P-Served-User headers in one request. But it appears to me that semantically there should never be more then one P-Served-User header field value because the "orig", "orig-cdiv", and "term" session cases are mutually exclusive for a particular session at a particular time. Indeed, since an AS uses P-Served-User to determine the session case, having more than one in a request makes the AS unable to determine the correct behavior. I believe this is why RFC 5502 does not authorize repeating P-Served-User, and why its ABNF does not allow a comma-separated list of values. However, RFC 5502 does not forbid repeating P-Served-User, either. I think it would be useful to either file an erratum to RFC 5502 specifying that P-Served-User cannot be repeated, or insert a clause in this draft updating RFC 5502 in that manner. - It seems that once the originating S-CSCF is done performing the originating services, it must remove the P-Served-User header from the INVITE before sending the INVITE to the transit/terminating proxy, even if that proxy is within the same trust domain. Otherwise, the next proxy will have to obey the P-Served-User header: RFC 5502 section 7.2 A proxy that supports the header MUST, upon receiving from a trusted node the P-Served-User header in initial requests for a dialog or in standalone requests, take the value of the P-Served-User header to represent the served user in operations that require such information. However, this behavior is not specified in RFC 5502 section 7.2, which only described removing P-Served-User when the request crosses a Trust Domain boundary. How does my expectation compare to the behavior of 3GPP systems? Do RFC 5502 sections 7.1 and 7.2 completely describe how 3GPP adds and removes P-Served-User headers? - It seems natural to me for "orig-cdiv" to be an alternative value of the "sescase" parameter. I.e., to change RFC 5502 to sessioncase-param = "sescase" EQUAL ( "orig" / "orig-cdiv" / "term" ) "orig", "term", and "orig-cdiv" are mutually exclusive states of a session, and that fact is naturally expressed by alternative values of a single parameter. (Of course, this change requires numerous small edits in the document.) - This example is given in section 4.2: P-Served-User: <sip:user@example.com>; orig-cdiv; regstate=reg However, the description in section 2 of the proxy behavior that creates a P-Served-User header with "orig-cdiv" is: In that case, the S-CSCF updates the P-Served-User header field content by removing both "sescase" and "regstate" header field parameters and inserting the "orig-cdiv" header field parameter. which can never create a P-Served-User header with both "orig-cdiv" and "regstate". The example should be updated to what can occur in correct processing. - The ABNF in RFC 5502 is incorrect: sessioncase-param = "sescase" EQUAL "orig" / "term" registration-state-param = "regstate" EQUAL "unreg" / "reg" As written, it means: sessioncase-param = ( "sescase" EQUAL "orig" ) / "term" registration-state-param = ( "regstate" EQUAL "unreg" ) / "reg" (because concatenation binds tighter than alternation) whereas what is intended is: sessioncase-param = "sescase" EQUAL ( "orig" / "term" ) registration-state-param = "regstate" EQUAL ( "unreg" / "reg" ) I have filed this as erratum 4827 to 5502 (since 5502 as written did not specify what was intended). Perhaps this draft should normatively update 5502 to fix this. - In section 2, "Proxy behavior and parameter handling", is: In that case, the S-CSCF updates the P-Served-User header field content by removing both "sescase" and "regstate" header field parameters and inserting the "orig-cdiv" header field parameter. However, it seems to me that the URI (PServedUser-value) will also have to be changed. Before diversion, during terminating processing, the header is P-Served-User: sip:terminating-user;sescase=term After diversion, during Originating CDIV processing, the header has to be P-Served-User: sip:originating-user;orig-cdiv Editorial: - The use of the "vspace" element in draft-mohali-dispatch-originating-cdiv-parameter-02.xml is unusual. In places, '<vspace blankLines="1"/>' is used to generate what appears to be a paragraph break, but (from the point of view of XML2RFC) is not. In other places, '<vspace/>' is used to break the line but not insert a blank line, although the locations where that is done appear to me to be good places for paragraph breaks. That usage is uncommon in the formatting of RFCs. It seems to me that in both cases, replacing the vspace with a paragraph break (in practice, changing it to "</t><t>" or "</t>{line break}</t>") would use XML2RFC in a way more consonant with common usage. - In regard to keywords, "5502" is listed in the XML, but it seems that the format "RFC5502" is the more common format. You might want to add the keyword "served user", as that seems to be the standard 3GPP term for the user identity on whose behalf services are being executed. (Or is that unnecessary because "served user" appears in the Abstract?) It would also help if the parameter itself, orig-cdiv, appeared as a keyword. - The long title, "P-Served-User Header Field Parameter for Originating CDIV session case in [SIP]", is correct but hard to read. One alternative is "A P-Served-User Header Field Parameter for the Originating CDIV session case in [SIP]", or "The orig-cdiv parameter of the P-Served-User Header Field for the Originating CDIV session case in [SIP]". Similarly, the start of the Abstract is hard to read: 'This specification defines a new Session Initiation Protocol (SIP) P-Served-User header field parameter, "orig-cdiv-param", which defines the session case ...' I think it would be easier to read as 'This specification defines the "orig-cdiv" parameter of the P-Served-User header field in the Session Initiation Protocol (SIP), which defines the session case...'. - The short title, "orig-cdiv session case" is difficult to understand without the draft as context. Perhaps "P-Served-User parameter orig-cdiv". - The phrase "orig-cdiv-param" and variants of it are used in various places to describe the "orig-cdiv" parameter of the P-Served-User header field. It would be clearer and more correct to use the words '"orig-cdiv" parameter', as "orig-cdiv-param" is only used as a nonterminal in the ABNF. - In section 1.2, "Use Case", is: Indeed, the originating user remains the same and the diverting user's originating services do not have to be triggered as if it was an originating call. For instance, the originating user identity should not be hidden because the diverting user has a privacy service for his/her own identity. In the same manner, some specific services may be triggered when performing a call diversion that would not be for a normal originating call. Reading this text, I am not sure if IMS always processes diversions in a one particular way, and that way is triggered by "orig-cdiv", or if there are alternative ways that IMS allows. (The words "Indeed ... remains ..." implies that a diverted call is always treated as orig-cdiv, but the words "do not have to be triggered", "because the diverting user has a privacy service", "may be triggered" suggest that there are alternative processing choices.) I suspect that there are two allowed alternatives: (1) treat the session as an originating call by the diverting user ("P-Served-User: sip:diverting-user;sescase=orig"), or (2) treat the call as a call-diversion origination by the originating user ("P-Served-User: sip:originating-user;orig-cdiv"). In either case, the text should make it clearer what possibilities are allowed in IMS. - Section 5, "IANA Considerations", is: This specification defines a new P-Served-User header field parameter called orig-cdiv-param in the "Header Field Parameters and Parameter Values" sub-registry as per the registry created by [RFC3968]. The syntax is defined in Section 4. The required information is: Header Name References -------------- ------------------ P-Served-User [RFC5502][RFCXXXX] The shown "required information" does not match the structure of the "Header Field Parameters and Parameter Values" registry, which is: Header Field Parameter Name Predefined Values Reference ------------ -------------- ----------------- --------- Accept q No [RFC3261] Accept-Encoding q No [RFC3261] ... However, the original error is in RFC 5502, which did not specify that entries for P-Served-User be put into that registry. (P-Served-User is in the registry "Header Fields", however.) It is not clear to me what the correct way to fix this is, but ultimately, the "Header Field Parameters and Parameter Values" registry must contain these three rows that it does not now contain: Header Field Parameter Name Predefined Values Reference ------------ -------------- ----------------- --------- P-Served-User sescase Yes [RFC5502] P-Served-User regstate Yes [RFC5502] P-Served-User orig-cdiv No [RFC5502] Either this draft could provide all of these registrations, or an erratum for RFC 5502 could provide the first two, and the last one is provided by this draft. In any case, the listed "required information" in this draft needs to be revised. Nits: Abstract This document updates RFC5502 in order to add the originating after CDIV session case. I think this could be clarified by adding double-quotes here: This document updates RFC5502 in order to add the "originating after CDIV" session case. 1.1. General This document extends the P-Served- User header field to include the session case for a forwarded leg when a call diversion service (CDIV) has been invoked. Does this processing apply to all call diversions or only some of them? If it applies in only some cases, I think the sentence needs to be extended as "has been invoked and [certain conditions]." The generic-param of the P-Served-User is extended by the "orig-cdiv- param" created as a new parameter for this Originating_CDIV session case. This isn't quite correct and isn't really how you want to phrase it. Perhaps: The generic-param of the P-Served-User is extended by defining a parameter "orig-cdiv" for the Originating_CDIV session case. But "Originating_CDIV" is used nowhere else in the draft, though "Originating CDIV" (without the underscore) is used in the title. Is this the best term to use, and what is the standard punctuation to use? header field parameter usage, Section 2 specifies the proxy behavior for the new header field parameter handling, and Section 3 discusses I think this reads better if "handling" is moved: "... the proxy behavior for handling the new header field parameter, ..." Section 4 describes the Syntax, s/Syntax/syntax/ header field parameter with the IANA s/the IANA/IANA/ 1.2. Use Case To be able to determine which responsibilities the S-CSCF and the Application Server haves to perform and on which user's behalf, it is necessary to know in which situation is the session and who is the current served user.[RFC5502] defines the originating and terminating session cases. This could be made clearer, and also, it could define "session case": To be able to determine which responsibilities the S-CSCF and the Application Server have to perform and on which user's behalf, it is necessary to know the "session case", which is the current situation of the session, and the current "served user", which is the user on whose behalf originating or terminating services are being performed.[RFC5502] 2. Proxy behavior and parameter handling The orig-cdiv-param header filed parameter can be used inside a trust s/filed/field/ In that case, the S-CSCF updates the P-Served-User header field content by removing both "sescase" and "regstate" header field parameters and inserting the "orig-cdiv" header field parameter. I think it would be clearer if this sentence specified what value is placed (or remains) in the PServedUser-value. However, there is a technical issue above regarding what that value should be. Then the procedure would continue forwarding the INVITE request over to an AS The use of the subjunctive "would" does not match the rest of the section. Better would be "Then the procedure continues by forwarding ...". When the AS receives the INVITE request, it determines that the session case is for "orig-cdiv" session case and will perform the originating services to be executed after retargeting for the served user. It would probably be clearer to add "... the served user, which is the originating user, not the diverting user." 3. Applicability The use of the P-Served-User header field extensions is only applicable inside a Trust Domain for served user. I think the phrase "Trust Domain for served user" is intended to be "Trust Domain for P-Served-User". Both phrases are used in RFC 5502, but the first one appears to be incorrect: If one proxy trusts another proxy, it trusts it for all values of P-Served-User, it does not trust different sets of proxies for different served users -- as is explained the next sentence of the section. 6. Security Considerations As the orig-cdiv-param P-Served-User header field parameter can be This would be easier to read as "As the orig-cdiv-param parameter of P-Served-User can be ...". [END]
- [dispatch] Two week review: Progressing draft-moh… Mary Barnes
- Re: [dispatch] Two week review: Progressing draft… Dale R. Worley
- Re: [dispatch] Two week review: Progressing draft… marianne.mohali
- Re: [dispatch] Two week review: Progressing draft… Dale R. Worley
- Re: [dispatch] Two week review: Progressing draft… Paul Kyzivat
- Re: [dispatch] Two week review: Progressing draft… Dale R. Worley
- Re: [dispatch] Two week review: Progressing draft… Paul Kyzivat
- Re: [dispatch] Two week review: Progressing draft… Dale R. Worley
- Re: [dispatch] Two week review: Progressing draft… Paul Kyzivat