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: <sip:4075555555@1.2.3.4>
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: <sip:6835555555;npi=ISDN@10.10.7.21>
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]