SIPPING D. York Internet-Draft Voxeo Intended status: Informational T. Asveren Expires: November 14, 2008 Sonus May 13, 2008 P-Charge-Info - A Private Header (P-Header) Extension to the Session Initiation Protocol (SIP) draft-york-sipping-p-charge-info-03 Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on November 14, 2008. Copyright Notice Copyright (C) The IETF Trust (2008). Abstract This document describes 'P-Charge-Info', a private Session Initiation Protocol (SIP) header (P-header) used to convey billing information about the party to be charged. This P-Header is currently in production usage by a number of equipment vendors and carriers and this document is submitted to request the registration of this header with IANA as required by section 4.2 of RFC 3427. York & Asveren Expires November 14, 2008 [Page 1] Internet-Draft P-Charge-Info, a SIP Private Header May 2008 Table of Contents 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 3. Purpose of this Document . . . . . . . . . . . . . . . . . . . 4 4. Explanation of the Problem . . . . . . . . . . . . . . . . . . 4 5. Alternatives . . . . . . . . . . . . . . . . . . . . . . . . . 5 5.1. P-Charging-Vector . . . . . . . . . . . . . . . . . . . . 5 5.2. P-Asserted-Identity . . . . . . . . . . . . . . . . . . . 6 6. The P-Charge-Info Header . . . . . . . . . . . . . . . . . . . 6 6.1. Applicability Statement for the P-Charge-Info header . . . 6 6.2. Usage of the P-Charge-Info header . . . . . . . . . . . . 6 6.2.1. Procedures at the UA . . . . . . . . . . . . . . . . . 6 6.2.2. Procedures at the Proxy . . . . . . . . . . . . . . . 7 6.3. Examples of Usage . . . . . . . . . . . . . . . . . . . . 7 7. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 8 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 9. Security Considerations . . . . . . . . . . . . . . . . . . . 8 9.1. Trust Relationship . . . . . . . . . . . . . . . . . . . . 8 9.2. Untrusted Peers . . . . . . . . . . . . . . . . . . . . . 9 9.2.1. Ingress from Untrusted Peers . . . . . . . . . . . . . 9 9.2.2. Egress to Untrusted Peers . . . . . . . . . . . . . . 9 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9 11.1. Normative References . . . . . . . . . . . . . . . . . . . 9 11.2. Informative References . . . . . . . . . . . . . . . . . . 9 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 10 Intellectual Property and Copyright Statements . . . . . . . . . . 11 York & Asveren Expires November 14, 2008 [Page 2] Internet-Draft P-Charge-Info, a SIP Private Header May 2008 1. Overview In certain network configurations, it is desirable to decouple the identity of the caller (what is normally thought of as "Caller ID") from the identity/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.2 of RFC 3427 [RFC3427]. In a typical configuration, the identity of the caller, typically referred to as "Caller ID", is derived from one of the following SIP headers: o P-Asserted-Identity o From (in the absence of P-Asserted-Identity) (NOTE: Some service providers today also use the "Remote-Party-ID" header but this was replaced by P-Asserted-Identity in RFC 3325 and should no longer be used.) This identity/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. 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. An example of this is included in an upcoming section. 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. 2. Requirements Language 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. York & Asveren Expires November 14, 2008 [Page 3] Internet-Draft P-Charge-Info, a SIP Private Header May 2008 3. Purpose of this Document This document has been prepared to comply with section 4.2 of RFC 3427 [RFC3427] which states very clearly: All implemented P-headers SHOULD meet the P-Header requirements in 4.1. Any P-header used outside of a very restricted research or teaching environment (such as a student lab on implementing extensions) MUST meet those requirements and MUST be documented in an RFC and be IANA registered. This document is submitted to comply with the process outlined in section RFC 3427 Section 4.1 and the registration requirements in Section 4.2. 4. Explanation of the Problem One common use case for the P-Charge-Info header is to address the current North American PSTN billing practice of charging different per-minute call rates for intrastate calls (i.e. calls within a single U.S. state) and interstate calls (i.e. calls between U.S. states) where interstate calls are often times significantly cheaper than intrastate calls. There is a disconnect between this practice and the network topology enabled by SIP where PSTN phone numbers are no longer related to the geographic points at which PSTN interconnection occurs. Consider the following example: o A company in Massachusetts with phone number 617-555-1111 calls a customer also in Massachusetts with phone number 617-555-2222. o The Caller ID presented to the receiving party is 617-555-1111. o The company calling is billed the intrastate rate because the call appears to have originated and terminated within Massachusetts. For this example, let's say the call at intrastate rates would have cost $5. o However, the company in MA was actually using a hosted telephony service and while the call appears to have originated from Massachusetts based on the CallerID presented to the user (and transmitted in SIP as something like "6175551111@sipgw.carrier.com" in the From and/or P-Asserted- Identity headers), the number actually entered the PSTN from a data center in New York with the number 212-555-1111. York & Asveren Expires November 14, 2008 [Page 4] Internet-Draft P-Charge-Info, a SIP Private Header May 2008 o Had the calling company presented their billing identifier as 212- 555-1111, they would have been billed the interstate rate for calling and for this example let say that the call would have only cost $3. o Naturally, the calling company wants to present its Caller ID to the end user as its own number of 617-555-1111 but it is contracting with the SIP telephony hosting provider to get cheaper rates. The hosting provider would naturally like to be billed at the *interstate* rate versus the *intrastate* rate when the calls enter the PSTN from their data centers. o The solution - Continue to pass the company's number as the SIP From address (or P-Asserted-Identity) so that the Caller ID displayed to the end user shows the company's number, but use P-Charge-Info to pass the SIP URI of the point where the call actually enters the PSTN. o The service providers/carriers handling the call now bill the hosting provider based on the SIP URI in P-Charge-Info which means that calls which might have been charged at the higher intrastate rate now are charged at the lower interstate rate. o Note that there is a trade-off that would need to be calculated prior to the decision to use this P-header. In the example above, all calls into New York would now be charged at the more expensive intrastate rate. Calling traffic patterns would need to be analyzed by a company prior to deciding to implement the usage of this P-header. In this use case, P-Charge-Info is used to provide the identity of the SIP-to-PSTN interconnect point so that this identity can be used for the purposes of billing. 5. Alternatives 5.1. P-Charging-Vector P-Charging-Vector is defined in section 4.6 of RFC 3455 [RFC3455] and used by the 3GPP to carry information related to the charging of a session. There are, however, some differences in the semantics associated with P-Charging-Vector and P-Charge-Info. P-Charging- Vector is mainly used to carry information for correlation of multiple charging records generated for a single session. On the other hand, P-Charge-Info is used to convey information about the party to be billed for a call. Furthermore, P-Charging-Vector has a mandatory icid-value parameter which is a globally unique value to York & Asveren Expires November 14, 2008 [Page 5] Internet-Draft P-Charge-Info, a SIP Private Header May 2008 identify the session for which the charging information is generated. Such a globally-unique identifier is not necessary when carrying information about the user to be billed when it is attached to the corresponding session-related signaling. 5.2. P-Asserted-Identity Early reviewers of this document asked why the "P-Asserted-Identity" header documented in RFC 3325 [RFC3325] could not be used. As mentioned in the use case example above, P-Asserted-Identity is used to indicate the identity of the calling party. However, in this instance, the requirement is to provide an additional identity of the SIP-to-PSTN interconnect point. It would be typical to find both P-Asserted-Identity and P-Charge- Info used in a SIP exchange. P-Asserted-Identity would be used to provide the caller identity which would be displayed to the end user as "Caller ID" while P-Charge-Info would provide the billing identifier used for the billing associated with the call. 6. The P-Charge-Info Header 6.1. Applicability Statement for the P-Charge-Info header 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. 6.2. Usage of the P-Charge-Info header The P-Charge-Info header is used to convey information about the identity of the party to be charged. The P-Charge-Info header is typically inserted by the SIP proxy on the originating network. P-Charge-Info is to be consumed by the SIP entity that provides billing services for a session. This could be an entity generating billing records or an entity interacting with another enitity generating billing records. Upon receipt of an INVITE request with P-Charge-Info header, such an entity SHOULD use the value present in the P-Charge-Info as indicating the party responsible for the charges associated with the session. 6.2.1. Procedures at the UA 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 York & Asveren Expires November 14, 2008 [Page 6] Internet-Draft P-Charge-Info, a SIP Private Header May 2008 message. 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. A gateway UA MAY use the content of the P-Charge-Info header present in an INVITE request it received for billing related procedures, e.g. in a billing record or during interaction with another entity generating billing records, as the identity of the party to be charged for the session. A gateway UA MAY use the content of the P-Charge-Info header to populate information about the identity of the party to charge in another type of signaling, e.g. ISUP. 6.2.2. Procedures at the Proxy 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 to determine the identity of the party to be charged. A proxy MAY use the content of the P-Charge-Info header present in an INVITE request it received for billing related procedures, e.g. in a billing record or during interaction with another entity generating billing records. A SIP proxy that does not support this extension will pass any received P-Charge-Info header unmodified in compliance with RFC 3261. An edge proxy supporting this extension SHOULD remove the P-Charge- Info header before send a request to a non-gateway UA. 6.3. Examples of Usage 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: P-Charge-Info: Any other applicable SIP URI could be used. 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: York & Asveren Expires November 14, 2008 [Page 7] Internet-Draft P-Charge-Info, a SIP Private Header May 2008 P-Charge-Info: 7. Formal Syntax 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. The syntax of the P-Charge-Info header is described as follows: 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" EQUAL npi-value) / generic-param) ; generic-param is specifed in RFC 3261 npi-value = ("ISDN" / "DATA" / "TELEX" / "PRIVATE" / "SPARE0" / "SPARE1" / "SPARE2" / "SPARE3" / "SPARE4" / "SPARE5" / "SPARE6" / "SPARE7" ) 8. IANA Considerations This document defines a private SIP extension header field (beginning with the prefixe "P-"). The extension is registered as a private extension field: RFC Number: RFCXXXX [Note to IANA: Please fill in with the RFC number of this specification. Header Field Name: P-Charge-Info Compact Form: none 9. Security Considerations 9.1. Trust Relationship Given that the information contained in the P-Charge-Info header will be used for billing purposes the proxies and other SIP entities that share this information MUST have a trust relationship. If an untrusted entity were inserted between the trusted entities, it could potentially interfere with the billing records for the call. York & Asveren Expires November 14, 2008 [Page 8] Internet-Draft P-Charge-Info, a SIP Private Header May 2008 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. One such mechanism could be TLS-encryption of the SIP signaling stream. 9.2. Untrusted Peers 9.2.1. Ingress from Untrusted Peers If the P-Charge-Info header was accepted by a SIP entity from an untrusted peer, there is the potential for fraud if the untrusted entity sent incorrect information, either inadvertently or maliciously. Therefore a SIP entity MUST remove and ignore the P-Charge-Info header when it is received from an untrusted entity. 9.2.2. Egress to Untrusted Peers If the P-Charge-Info header was sent by a SIP entity to an untrusted peer, there is the potential exposure of network information that is internal to a trust domain. For instance, the untrusted entity may learn the identities of public SIP proxies used within the trust domain which could then potentially be directly attacked. Therefore a SIP entity MUST remove the P-Charge-Info header when it is sent to an untrusted entity. 10. Acknowledgements The authors thank the following people for their comments, criticism, suggestions and assistance with ABNF notation: Keith Drage, Miguel Garcia, Christer Holmberg, Paul Kyzivat and Jonathan Rosenberg. 11. References 11.1. Normative References [RFC3427] Mankin, A., Bradner, S., Mahy, R., Willis, D., Ott, J., and B. Rosen, "Change Process for the Session Initiation Protocol (SIP)", BCP 67, RFC 3427, December 2002. 11.2. Informative References [RFC3325] Jennings, C., Peterson, J., and M. Watson, "Private Extensions to the Session Initiation Protocol (SIP) for York & Asveren Expires November 14, 2008 [Page 9] Internet-Draft P-Charge-Info, a SIP Private Header May 2008 Asserted Identity within Trusted Networks", RFC 3325, November 2002. [RFC3455] Garcia-Martin, M., Henrikson, E., and D. Mills, "Private Header (P-Header) Extensions to the Session Initiation Protocol (SIP) for the 3rd-Generation Partnership Project (3GPP)", RFC 3455, January 2003. Authors' Addresses Dan York Voxeo Corporation Burlington, VT USA Phone: +1-407-455-5859 Email: dyork@voxeo.com URI: http://www.voxeo.com/ Tolga Asveren Sonus Networks 3 Paragon Way Freehold, NJ 07728 USA Email: tasveren@sonusnet.com York & Asveren Expires November 14, 2008 [Page 10] Internet-Draft P-Charge-Info, a SIP Private Header May 2008 Full Copyright Statement Copyright (C) The IETF Trust (2008). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). York & Asveren Expires November 14, 2008 [Page 11]