Re: [Sipping] draft-york-sipping-p-charge-info-12: ABNF

Dan York <dan-ietf@danyork.org> Tue, 29 November 2011 19:38 UTC

Return-Path: <dan-ietf@danyork.org>
X-Original-To: sipping@ietfa.amsl.com
Delivered-To: sipping@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4CC1D21F8CBC for <sipping@ietfa.amsl.com>; Tue, 29 Nov 2011 11:38:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.398
X-Spam-Level:
X-Spam-Status: No, score=-2.398 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_23=0.6, J_CHICKENPOX_57=0.6, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 33gpv9BCjxLZ for <sipping@ietfa.amsl.com>; Tue, 29 Nov 2011 11:38:06 -0800 (PST)
Received: from mail-qy0-f172.google.com (mail-qy0-f172.google.com [209.85.216.172]) by ietfa.amsl.com (Postfix) with ESMTP id 0F90F21F8CBB for <sipping@ietf.org>; Tue, 29 Nov 2011 11:38:05 -0800 (PST)
Received: by qyk32 with SMTP id 32so5238509qyk.31 for <sipping@ietf.org>; Tue, 29 Nov 2011 11:38:05 -0800 (PST)
Received: by 10.229.68.196 with SMTP id w4mr5656950qci.256.1322595485436; Tue, 29 Nov 2011 11:38:05 -0800 (PST)
Received: from pc-00141.lodestar2.local (cpe-66-65-247-87.mass.res.rr.com. [66.65.247.87]) by mx.google.com with ESMTPS id o15sm38684057qaz.19.2011.11.29.11.38.03 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 29 Nov 2011 11:38:04 -0800 (PST)
Mime-Version: 1.0 (Apple Message framework v1251.1)
Content-Type: multipart/alternative; boundary="Apple-Mail=_F82C0C6A-D69F-4BD0-BC94-28B2FF769182"
From: Dan York <dan-ietf@danyork.org>
In-Reply-To: <7FF1E5E16911C54BB2D57D4C4A2ED35A0C1267A0F5@EXMBXCLUS01.citservers.local>
Date: Tue, 29 Nov 2011 14:38:02 -0500
Message-Id: <E4BBC312-18FF-46AC-A076-7FC34A75DC47@danyork.org>
References: <7FF1E5E16911C54BB2D57D4C4A2ED35A0C1267A0F5@EXMBXCLUS01.citservers.local>
To: Brett Tate <brett@broadsoft.com>
X-Mailer: Apple Mail (2.1251.1)
Cc: John Haluska <jhaluska@telcordia.com>, sipping@ietf.org
Subject: Re: [Sipping] draft-york-sipping-p-charge-info-12: ABNF
X-BeenThere: sipping@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "SIPPING Working Group \(applications of SIP\)" <sipping.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sipping>, <mailto:sipping-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sipping>
List-Post: <mailto:sipping@ietf.org>
List-Help: <mailto:sipping-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipping>, <mailto:sipping-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 29 Nov 2011 19:38:07 -0000

Brett, (and replying from a slightly different address so that it will go to the SIPPING list)

Thank you for the feedback and question.  The ABNF in the draft has evolved over the past almost-4 years as various people more literate than I in ABNF have given us feedback and we've updated the draft.

In the ABNF section, "chargeparam" is intended to represent that you could optionally have the "noa", "npi" parameters - or any other generic parameters found in RFC 3261(such as "user=phone")

Originally, the ABNF read:

         P-Charge-Info = "P-Charge-Info" HCOLON (name-addr / addr-spec)*
                 (SEMI charge-param)
                 ; name-addr and addr-spec are specified in RFC 3261
             charge-param = npi-param / noa-param / generic-param

I thought that was fairly clear and made sense.  However, I changed the ABNF in rev -10 in October 2010 to more simply:

         P-Charge-Info = "P-Charge-Info" HCOLON (name-addr / addr-spec)
                 ; name-addr and addr-spec are specified in RFC 3261
             charge-param = npi-param / noa-param / generic-param

after someone strongly made the case that the "* (SEMI charge-param)" was not required because it was a "userinfo parameter" to the name-addr/addr-spec element.  Unfortunately, the email exchange about this seems to have NOT taken place on the mailing list but rather in a private email exchange - and I no longer have access to the archives of the email account where that occurred (I am no longer with Voxeo) - so I don't know who it was that argued for this change.

I'm directly cc'ing John Haluska as he was involved in with a number of those exchanges and can perhaps clarify this.

In reviewing section 19.1.1 of RFC 3261 ( http://tools.ietf.org/html/rfc3261#section-19.1.1 ) and sections 19.1.2, 19.1.3, and 19.1.6 as well as the ABNF in section 25,  I am guessing that the rationale was because the "charge-param" does fit into the "user" section of the URI.

So that's a roundabout way of saying that it is part of "user", as I interpret the ABNF in RFC 3261.

Do you have suggestions for how to make this clearer in the draft?  Would the original ABNF be more useful to you?  Should the sentence "charge-param is used as a userinfo parameter in P-Charge-Info" indicate that it is the "user" part of the "userinfo" field?

Thanks,
Dan

P.S. After not receiving any feedback for many, many months I suddenly have received two email questions/comments about P-Charge-Info today. I don't know if this is as a result of the mention on a mailing list that Richard Shockey mentioned... but I was surprised. 

On Nov 29, 2011, at 1:35 PM, Brett Tate wrote:

> Howdy,
> 
> Draft-york-sipping-p-charge-info-12 includes the following ABNF without explicitly indicating if the charge-param is part of user, telephone-subscriber, or both.  I'm not sure how to interpret the charge-param statement since userinfo has no parameters (although user and telephone-subscriber can have them).
> 
> Is charge-param part of user, telephone-subscriber, or both?  I recommend updating section 7 to remove the ambiguity.
> 
> Thanks,
> Brett
> 
> 
> ------
> 
> Draft-york-sipping-p-charge-info-12:
> 
> "The syntax of the P-Charge-Info header is described as follows:
> 
>         P-Charge-Info = "P-Charge-Info" HCOLON (name-addr / addr-spec)
>                 ; name-addr and addr-spec are specified in RFC 3261
>             charge-param = npi-param / noa-param / generic-param
>             npi-param = ";npi" EQUAL npi-value
>                 ; generic-param is specifed in RFC 3261
>             npi-value = gen-value
>             noa-param = ";noa" EQUAL noa-value
>             noa-value = gen-value
> 
>   The SIP URI contained in the name-addr/addr-spec is the billing
>   indicator that is passed between the parties.
> 
>   charge-param is used as a userinfo parameter in P-Charge-Info."
> 
> 
> RFC 3261:
> 
> userinfo =  ( user / telephone-subscriber ) [ ":" password ] "@"
> user     =  1*( unreserved / escaped / user-unreserved )
> 
> RFC 2806:
> 
> telephone-subscriber  = global-phone-number / local-phone-number
> 

-- 
Dan York  dyork@lodestar2.com
Phone: +1-802-735-1624  skype:danyork
http://www.danyork.com/  
http://twitter.com/danyork



-- 
Dan York  dyork@lodestar2.com
http://www.danyork.com/   skype:danyork
Phone: +1-802-735-1624
Twitter - http://twitter.com/danyork
--------------------------------------------------------
All comments and opinions are entirely my own and have no connection whatsoever to any employer, past or present. Indeed, by tomorrow even I might be disavowing these comments.
--------------------------------------------------------