SIPPING D. York
Internet-Draft Voxeo
Intended status: Informational T. Asveren
Expires: February 15, 2010 Sonus
August 14, 2009
P-Charge-Info - A Private Header (P-Header) Extension to the Session
Initiation Protocol (SIP)
draft-york-sipping-p-charge-info-07
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and 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 February 15, 2010.
Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents in effect on the date of
publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document.
Abstract
This document describes 'P-Charge-Info', a private Session Initiation
York & Asveren Expires February 15, 2010 [Page 1]
Internet-Draft P-Charge-Info, a SIP Private Header August 2009
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 and RFC 3968. This
P-Header may also be used in some situations to carry the ISUP Charge
Number parameter for PSTN interconnection.
Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4
3. Purpose of this Document . . . . . . . . . . . . . . . . . . . 4
4. Examples of the Problem . . . . . . . . . . . . . . . . . . . 4
4.1. Use Case - Billing Identifier . . . . . . . . . . . . . . 4
4.2. Use Case - ISUP Charge Number . . . . . . . . . . . . . . 4
4.3. Use Case - Distributed Enterprise . . . . . . . . . . . . 4
4.4. Use Case - Hosted Telephony Provider . . . . . . . . . . . 5
5. Alternatives . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.1. P-Charging-Vector . . . . . . . . . . . . . . . . . . . . 6
5.2. P-DCS-Billing-Info . . . . . . . . . . . . . . . . . . . . 6
5.3. P-Asserted-Identity . . . . . . . . . . . . . . . . . . . 7
6. The P-Charge-Info Header . . . . . . . . . . . . . . . . . . . 7
6.1. Applicability Statement for the P-Charge-Info header . . . 7
6.2. Usage of the P-Charge-Info header . . . . . . . . . . . . 7
6.2.1. Procedures at the UA . . . . . . . . . . . . . . . . . 8
6.2.2. Procedures at the Proxy . . . . . . . . . . . . . . . 8
6.3. Examples of Usage . . . . . . . . . . . . . . . . . . . . 8
7. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 9
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
9. Security Considerations . . . . . . . . . . . . . . . . . . . 10
9.1. Trust Relationship . . . . . . . . . . . . . . . . . . . . 10
9.2. Untrusted Peers . . . . . . . . . . . . . . . . . . . . . 10
9.2.1. Ingress from Untrusted Peers . . . . . . . . . . . . . 10
9.2.2. Egress to Untrusted Peers . . . . . . . . . . . . . . 10
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 10
11. Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
12.1. Normative References . . . . . . . . . . . . . . . . . . . 12
12.2. Informative References . . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12
York & Asveren Expires February 15, 2010 [Page 2]
Internet-Draft P-Charge-Info, a SIP Private Header August 2009
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] and section 3 of RFC 3968 [RFC3968]..
In a typical configuration, the identity of the caller, commonly
referred to as "Caller ID" by end users, 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.)
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 some network configurations the "Caller ID" presented to
the receiving UA may be different from the number desired to be used
for billing purposes.
For example, the "Caller ID" 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.
Another example would be where a gateway to the Public Switched
Telephone Network (PSTN) receives the ISUP "Charge Number" in the
PSTN signaling which designates the number to be billed. The gateway
needs to pass this information along to a SIP entity associated with
billing.
In both these examples, 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.
York & Asveren Expires February 15, 2010 [Page 3]
Internet-Draft P-Charge-Info, a SIP Private Header August 2009
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.
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. Examples of the Problem
4.1. Use Case - Billing Identifier
The simplest use case for P-Charge-Info could be an enterprise
environment where each SIP endpoint has a direct number that is
passed by the enterprise SIP proxy across to a SIP proxy at a SIP
Service Provider who provides PSTN connectivity. Rather than cause
the SIP Service Provider to have to track each individual direct
number for billing purposes, the enterprise SIP proxy could send in
the P-Charge-Info header a single billing identifier that the SIP
Service Provider uses for billing purposes.
4.2. Use Case - ISUP Charge Number
A second use case is one in which a PSTN gateway receives PSTN
signaling that includes an ISUP Charge Number parameter and the PSTN
gateway needs to send that ISUP Charge Number via SIP to other
servers. In this instance, the PSTN gateway will insert the ISUP
Charge Number into the P-Charge-Info SIP header.
4.3. Use Case - Distributed Enterprise
A third and common use case is a large enterprise with a widely
distributed SIP network to designate the specific point at which PSTN
York & Asveren Expires February 15, 2010 [Page 4]
Internet-Draft P-Charge-Info, a SIP Private Header August 2009
interconnection occurs. Consider an enterprise with a work force and
offices distributed over a wide geographic area and linked by a
common internal network over which voice traffic is sent. Users
across the network may be able to contact each other directly via SIP
sessions, but there may only be a relatively few points in the
network where interconnection occurs to the PSTN. Consider this
case:
o A branch office in Massachusetts has a series of IP phones that
are connected via SIP to systems in the main office in Colorado
and from there via SIP connections to the PSTN through a SIP
service provider.
o The phones in the Massachusetts office have each been assigned a
direct, local phone number in the US area code of 617.
o This local 617 phone number is presented to callers on the PSTN as
the "Caller ID" based on its inclusion in the From and/or
P-Asserted-Identity SIP headers.
o This local 617 phone number may also be used by the SIP service
provider as the billing identifier and the call will be charged to
the enterprise according to the relevant rates.
o However, the call actually connected to the PSTN via the SIP
connection in the Colorado office where the USA area code is 303.
Rather than use the direct numbers of each SIP endpoint for
generating the billing information, the enterprise might choose to
instead pass the SIP URI of the PSTN interconnection point in the
P-Charge-Info header, either for simplicity or potentially to obtain
better rates from the SIP service provider.
4.4. Use Case - Hosted Telephony Provider
Similar to the third use case of a large enterprise, a hosted
telephony provider or hosted voice application provider may have a
large SIP network with customers distributed over a very large
geographic area using local market PSTN numbers but with only a very
few actual PSTN interconnection points.
As with the branch office earlier, the customer may have all local
phone numbers yet outgoing calls are actually being routed across a
SIP network and out specific PSTN gateways or across specific SIP
connections to SIP service providers. The hosted provider may want
to pass a billing identifier to its SIP service providers again
either for the purpose of simplicity in billing or to obtain better
rates from the SIP service providers.
York & Asveren Expires February 15, 2010 [Page 5]
Internet-Draft P-Charge-Info, a SIP Private Header August 2009
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
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-DCS-Billing-Info
P-DCS-Billing-Info is defined in section 7 of RFC 3603 [RFC3603] and
used for passing billing information between trusted entities in the
PacketCable Distributed Call Signaling Architecture. For many
billing situations, particularly the very large-scale residential
telephone networks for which this header is designed, P-DCS-Billing-
Info is an excellent solution. However, this ability to address a
range of situations adds complexity. According to RFC 3603, each use
of the P-DCS-Billing-Info header MUST include in the header the
following:
o Billing-Correlation-ID, a globally unique identifier
o Financial-Entity-ID
o RKS-Group-ID (record keeping server
and may include a variety of additional parameters.
While this may work well in many billing scenarios, there are other
billing scenarios that do not at all need this level of complexity.
In those simpler scenarios all that is needed is simply a number to
use for billing. P-Charge-Info provides this simple solution for
simple billing scenarios.
Additionally, section 7.3 of RFC 3603 mandates that a UA MUST create
a Billing-Correlation-ID and insert this into the P-DCS-Billing-Info
header (along with the other required information) sent in the
initial SIP INVITE. This again makes sense for the residential
York & Asveren Expires February 15, 2010 [Page 6]
Internet-Draft P-Charge-Info, a SIP Private Header August 2009
telephone service environment for which this header is designed. In
contrast, P-Charge-Info is designed to be used among proxies and not
to be used at all by normal user agents. (P-Charge-Info may, though,
by used by user agents associated with PSTN gateways.)
5.3. 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 one of the following:
o the SIP proxy on the originating network;
o a PSTN gateway acting as a SIP UA; or
o an application server generating billing information.
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.
York & Asveren Expires February 15, 2010 [Page 7]
Internet-Draft P-Charge-Info, a SIP Private Header August 2009
6.2.1. Procedures at the UA
The P-Charge-Info header may be inserted by PSTN gateways or
application servers acting as a SIP UA, either through local policy
or as a result of information received via PSTN signaling, e.g. the
Charge Number parameter in an ISUP IAM message.
The P-Charge-Info header is not used/interpreted by a regular 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 PSTN gateway or application server acting as a 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 PSTN
gateway or application server acting as a 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.
A proxy supporting this extension SHOULD remove the P-Charge-Info
header before sending a request to a UA that is not acting as a PSTN
gateway or appropriate application server.
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>
York & Asveren Expires February 15, 2010 [Page 8]
Internet-Draft P-Charge-Info, a SIP Private Header August 2009
Any other applicable SIP URI could be used.
P-Charge-Info optionally includes the additional parameters of the
"Numbering Plan Indicator" and "Nature of Address". These are used
when the ISUP Charge Number value needs to be passed as part of
P-Charge-Info. For instance, this might be required in 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:
P-Charge-Info: <sip:6835555555@10.10.7.21>;npi=ISDN;noa=3
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-param / noa-param / generic-param
npi-param = "npi" EQUAL npi-value
; generic-param is specifed in RFC 3261
npi-value = ("ISDN" / "DATA" / "TELEX" / "PRIVATE" /
"SPARE0" / "SPARE1" / "SPARE2" / "SPARE3" /
"SPARE4" / "SPARE5" / "SPARE6" / "SPARE7" / "UNKNOWN" )
noa-param = "noa" EQUAL noa-value
noa-value = gen-value
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
York & Asveren Expires February 15, 2010 [Page 9]
Internet-Draft P-Charge-Info, a SIP Private Header August 2009
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.
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, Jonathan Rosenberg, Juha
Heinanen and Sumit Garg.
York & Asveren Expires February 15, 2010 [Page 10]
Internet-Draft P-Charge-Info, a SIP Private Header August 2009
For revision -05, the authors thank John Haluska who provided a range
of comments and specific information related to interworking with the
ISUP Charge Number.
11. Changes
NOTE TO RFC EDITOR - Please remove this "Changes" section prior to
publication. Thank you.
Revision -07 was updated to the "trust200902" IPR statement and added
references to RFC 3968. At this point all comments have been
incorporated and publication will be requested.
Revision -06 had only a minor correction to the second usage example.
The IPR statement was also updated to comply with RFC 5378.
Revision -05 included the following modifications:
o The usage of P-Charge-Info for carrying the ISUP Charge Number
parameter was formally incorporated into the draft. Previous
revisions had mentioned it as a possible use case but had not
really explicitly included it.
o The examples/use cases section was expanded to include further
examples of where P-Charge-Info may be used.
o The original use case which discussed inter/intra-state billing
practices was changed as the geographical references were clouding
the more fundamental issue.
o The "UNKNOWN" value was added to the ABNF for the "npi-value"
parameter as that was identified as missing but required for ISUP
interworking.
o The optional "Nature of Address" parameter was added to support
interworking with the ISUP Charge Number.
Revision -04 corrected a major error in the example where the
parameter was placed inside the angle brackets. The P-DCS-Billing-
Info header was also added as an alternative and a few minor edits
were made.
12. References
York & Asveren Expires February 15, 2010 [Page 11]
Internet-Draft P-Charge-Info, a SIP Private Header August 2009
12.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.
[RFC3968] Camarillo, G., "The Internet Assigned Number Authority
(IANA) Header Field Parameter Registry for the Session
Initiation Protocol (SIP)", BCP 98, RFC 3968,
December 2004.
12.2. Informative References
[RFC3325] Jennings, C., Peterson, J., and M. Watson, "Private
Extensions to the Session Initiation Protocol (SIP) for
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.
[RFC3603] Marshall, W. and F. Andreasen, "Private Session Initiation
Protocol (SIP) Proxy-to-Proxy Extensions for Supporting
the PacketCable Distributed Call Signaling Architecture",
RFC 3603, October 2003.
Authors' Addresses
Dan York
Voxeo Corporation
Keene, NH
USA
Phone: +1-407-455-5859
Email: dyork@voxeo.com
URI: http://www.voxeo.com/
York & Asveren Expires February 15, 2010 [Page 12]
Internet-Draft P-Charge-Info, a SIP Private Header August 2009
Tolga Asveren
Sonus Networks
3 Paragon Way
Freehold, NJ 07728
USA
Email: tasveren@sonusnet.com
York & Asveren Expires February 15, 2010 [Page 13]