<?xml version="1.0" encoding="US-ASCII"?>
<?xml-stylesheet type='text/xsl'
             href='http://xml.resource.org/authoring/rfc2629.xslt' ?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "http://xml.resource.org/authoring/rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2629 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC3427 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3427.xml">
<!ENTITY RFC3455 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3455.xml">

]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="info" docName="draft-york-sipping-p-charge-info-01" ipr="full3978">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
      <title abbrev="P-Charge-Info, a SIP Private Header">P-Charge-Info - A Private Header (P-Header) Extension to the Session Initiation
      Protocol (SIP)</title>

    <author fullname="Dan York" initials="D." surname="York">
	    <organization abbrev="Voxeo">Voxeo Corporation</organization>

      <address>
        <postal>
          <street></street>
          <city>Burlington</city>
          <region>VT</region>
          <code></code>
          <country>USA</country>
        </postal>

        <phone>+1-407-455-5859</phone>

        <email>dyork@voxeo.com</email>

	<uri>http://www.voxeo.com/</uri>
      </address>
    </author>
    <author fullname="Tolga Asveren" initials="T." surname="Asveren">
                <organization abbrev="Sonus">Sonus Networks</organization>
      <address>
        <postal>
          <street> 3 Paragon Way</street>
          <city>Freehold </city>
          <region>NJ</region>
          <code>07728</code>
          <country>USA</country>
        </postal>
        <email>tasveren@sonusnet.com</email>
      </address>
    </author>
    
    <date year="2008" />

    <!-- Meta-data Declarations -->

    <area>General</area>

    <workgroup>SIPPING</workgroup>
	 <keyword>p-header</keyword>

    <abstract>
       <t>This document describes 'P-Charge-Info', a private Session Initiation Protocol
       (SIP) header (P-header) used by a number of equipment vendors and
       carriers to convey simple billing information.</t>
    </abstract>
  </front>

  <middle>
    <section title="Overview">
        <t>In certain network configurations, it is desirable to decouple
	the Caller ID from the number used for billing purposes.  This
	document describes the current usage of 'P-Charge-Info', a private
	SIP header, to provide simple billing information and requests the
	registration of this header with IANA as required by section 4.1 of
	 <xref target="RFC3427">RFC 3427</xref>.</t>
	
	<t>In a
	typical configuration, "Caller ID" is derived from one of the
	following SIP headers:<list style="symbols">
	   <t>Remote-Party-ID</t>
	   <t>P-Asserted-Identity</t>
	   <t>From (in the absence of the other two)</t>
	</list>This number is typically presented to the receiving UA where
	it is usually displayed for the end user.  It is also typically
	used for billing purposes by the network entities involved in
	carrying the session.  </t>
	<t>However, in a distributed environment the "Caller ID" presented
	to the receiving UA may not reflect the actual reality of the
	underlying network in terms of costs incurred on the PSTN. This may
	result in excessive charging of one carrier by another based on the
	erroneous assumption that the call was originating from a different
	point on the PSTN.</t>

	<t>There exists a need for a way to pass an additional billing
	identifier that can be used between network entities in order to
	correctly bill for services.  At least one equipment provider,
	Sonus Networks, and several carriers have been using the
	"P-Charge-Info" header for the last 2-3 years as a simple 
	mechanism to exchange this billing identifier.</t>

        <t>It should be noted that the 3GPP has also recognized the need for such a billing
	identifier and in section 4.6 of <xref target="RFC3455">RFC
	3455</xref> established a SIP P-Header, "P-Charging-Vector",
	to provide similar information.  This header, though, is designed
	for use within 3GPP environments and thus includes parameters
	appropriate within a 3GPP context. It also allows for the use of
	any general value as the billing identifier whereas P-Charge-Info,
	as noted below, specifically requires a SIP URI as the content.</t>


    </section>

      <section title="Requirements Language">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
        document are to be interpreted as described in RFC 2119.</t>
      </section>

    <section anchor="P-Charge-Info" title="The P-Charge-Info Header">

       <section anchor="applicability" title="Applicability Statement for the P-Charge-Info header">
          <t>The P-Charge-Info header is applicable within a single private
	  administrative domain or between different administrative domains
	  where there is a trust relationship between the domains.</t>
       </section>

       <section anchor="usage" title="Usage of the P-Charge-Info header">
         <t>The P-Charge-Info header is used to convey information related
	 to billing record for a particular call.  The P-Charge-Info header
	 is typically inserted by the SIP proxy on the originating network.</t>

            <section anchor="usage-ua" title="Procedures at the UA">
	      <t>The P-Charge-Info header may be inserted by PSTN gateways
	      acting as a SIP UA, either through local policy or as a
	      result of information received via PSTN signaling, e.g. the
	      charge parameter in an ISUP IAM message.</t>
	      <t>The P-Charge-Info header is not used/interpreted by a
	      regular (i.e. non-gateway) UA and should not normally be seen
	      by such a UA. If the header is transmitted to such a UA, the UA
	      should ignore the header.</t>
	    </section>
	    <section anchor="usage-proxies" title="Procedures at the Proxy">
	    <t>A SIP proxy that supports this extension and receives a
	    request, typically a SIP INVITE, without the P-Charge-Info
	    header MAY insert a P-Charge-Info header. The contents of the
	    inserted header may be decided based on local policy or by
	    querying an external entity.</t>
	    <t>A SIP proxy that does not support this extension will pass
	    any received P-Charge-Info header unmodified in compliance with
	    RFC 3261.</t>
	    </section>
       </section>

       <section anchor="example" title="Examples of Usage">
       <t>The content of the P-Charge-Info header is typically simply a SIP URI used
       as a billing indicator.  As such, an example would be as simple as:</t>
       <t>P-Charge-Info: &lt;sip:4075555555@1.2.3.4&gt;</t>
       <t>Any other applicable SIP URI could be used.</t>

       <t>P-Charge-Info optionally includes the numbering plan indicator as an
       additional parameter.  This is used when an ISUP message is built from a
       SIP message for scenarios where SIP is used to connect two PSTN segments
       and needs to pass charging information between them. An example of
       the usage of the optional header is:</t>
       <t>P-Charge-Info: &lt;sip:6835555555;npi=ISDN@10.10.7.21&gt;</t>
       </section>

    </section>
    <section anchor="formalsyntax" title="Formal Syntax">
       <t>The Private Header specified in this document is described in
   both prose and an augmented Backus-Naur Form (BNF) defined in RFC
   2234.  Further, several BNF definitions are inherited from SIP
   and are not repeated here.  Implementors need to be familiar with the
   notation and contents of SIP [1] and RFC 2234 [3] to understand this
   document.</t>
       <t>The syntax of the P-Charge-Info header is described as follows:</t>
       <figure><artwork><![CDATA[
    P-Charge-Info = "P-Charge-Info" HCOLON charge-param * (SEMI 
            charge-param)
        charge-param = (addr-spec) * (SEMI charge-params)
        charge-params = (("npi" EQUAL npi-value))
        npi-value = ("ISDN" / "DATA" / "TELEX" / "PRIVATE" / "SPARE0" / 
                 "SPARE1" / "SPARE2" / "SPARE3" / "SPARE4" / "SPARE5" /
                 "SPARE6" / "SPARE7" )
       ]]></artwork></figure>


    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document defines a private SIP extension header field
      (beginning with the prefixe "P-").</t>
      <t>The extension is registered as a private extension field:</t>
      <t>RFC Number:	RFCXXXX [Note to IANA: Please fill in with the RFC number
      of this specification.</t>
      <t>Header Field Name:  P-Charge-Info</t>
      <t>Compact Form:  none</t>

    </section>

    <section anchor="Security" title="Security Considerations">
       <t>Given that the information contained in the P-Charge-Info header
       will be used for billing purposes the proxies that share this
       information MUST have a trust relationship.</t>
       <t>If an untrusted entity were inserted between the trusted
       entities, it could potentially interfere with the billing records
       for the call.  If the SIP connections are not made over a private
       WAN, a mechanism for securing the confidentiality and integrity of
       the SIP connection should be used to protect the information.</t>
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>

    <references title="Normative References">
      <!-- Here we use entities that we defined at the beginning. -->

    &RFC3427;

    </references>

    <references title="Informative References">
      <!-- Here we use entities that we defined at the beginning. -->

    &RFC3455;

    </references>

  </back>
</rfc>
