Internet Engineering Task Force D. York
Internet-Draft Individual
Intended status: Informational T. Asveren
Expires: August 6, 2018 Ribbon Communications
February 2, 2018
P-Charge-Info - A Private Header (P-Header) Extension to the Session
Initiation Protocol (SIP)
draft-york-p-charge-info-02
Abstract
This text documents the current usage of'P-Charge-Info', an existing
private Session Initiation Protocol (SIP) header (P-header) used to
convey billing information about the party to be charged. This
P-Header is currently used in production by several equipment vendors
and carriers. This document is submitted to request the registration
of this header with IANA.
NOTE: This document is a slimmed-down version of the document
previously known as 'draft-york-dispatch-p-charge-info'.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on August 6, 2018.
Copyright Notice
Copyright (c) 2018 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
(http://trustee.ietf.org/license-info) in effect on the date of
York & Asveren Expires August 6, 2018 [Page 1]
Internet-Draft P-Charge-Info, a SIP Private Header February 2018
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3
3. Purpose of this Document . . . . . . . . . . . . . . . . . . 3
4. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5. Alternatives . . . . . . . . . . . . . . . . . . . . . . . . 4
5.1. P-Charging-Vector . . . . . . . . . . . . . . . . . . . . 4
5.2. P-DCS-Billing-Info . . . . . . . . . . . . . . . . . . . 4
5.3. P-Asserted-Identity . . . . . . . . . . . . . . . . . . . 5
6. The P-Charge-Info Header . . . . . . . . . . . . . . . . . . 5
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. Example of Usage . . . . . . . . . . . . . . . . . . . . 7
7. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 7
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
9. Security Considerations . . . . . . . . . . . . . . . . . . . 8
9.1. Trust Relationship . . . . . . . . . . . . . . . . . . . 8
9.2. Untrusted Peers . . . . . . . . . . . . . . . . . . . . . 8
9.2.1. Ingress from Untrusted Peers . . . . . . . . . 8
9.2.2. Egress to Untrusted Peers . . . . . . . . . . 8
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9
11. Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 12
12.1. Normative References . . . . . . . . . . . . . . . . . . 12
12.2. Informative References . . . . . . . . . . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13
1. Overview
In certain network configurations, several entities have found it
useful 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 records 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 [RFC5727].
York & Asveren Expires August 6, 2018 [Page 2]
Internet-Draft P-Charge-Info, a SIP Private Header February 2018
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 [RFC3325].)
This identity/number is typically presented to the receiving user
agent (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 to be used for
billing purposes.
In this case, 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.
Several carriers and at least one equipment provider, Sonus Networks,
have been using the "P-Charge-Info" header since at least 2007 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.
3. Purpose of this Document
This document has been prepared to document the existing deployed
usage of the P-Charge-Info header and to comply with Section 4 of
[RFC5727] to register this header with IANA. This document was
originally prepared to comply with sections 4.1 and 4.2 of the now
obsolete RFC 3427. It is noted that RFC 5727 specifically deprecates
new usage of "P-" headers, but P-Charge-Info has been in deployment
since prior to 2007 and pre-dates RFC 5727. Given this, the authors
request that P-Charge-Info be admitted as a "grandfathered case" per
Section 4 of RFC 5727.
York & Asveren Expires August 6, 2018 [Page 3]
Internet-Draft P-Charge-Info, a SIP Private Header February 2018
4. Use Cases
The simplest use case for P-Charge-Info is 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 sends in the P-Charge-Info header
a single billing identifier that the SIP service provider uses for
billing purposes.
As another example, 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.
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 either for the purpose of simplicity in billing or
to obtain better rates from the SIP service providers.
5. Alternatives
5.1. P-Charging-Vector
P-Charging-Vector is defined in Section 4.6 of [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 [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-
York & Asveren Expires August 6, 2018 [Page 4]
Internet-Draft P-Charge-Info, a SIP Private Header February 2018
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 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
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 [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
York & Asveren Expires August 6, 2018 [Page 5]
Internet-Draft P-Charge-Info, a SIP Private Header February 2018
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 used 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 or
application servers acting as a SIP UA.
The P-Charge-Info header is ignored by an end-user UA in 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. Similarly, a regular UA
originating a SIP message should not insert this 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.
York & Asveren Expires August 6, 2018 [Page 6]
Internet-Draft P-Charge-Info, a SIP Private Header February 2018
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. Example 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 one of:
P-Charge-Info: <sip:+14075551234@example.net; user=phone>
P-Charge-Info: <sip:+12349874567@example.com>
P-Charge-Info: <sip:1234@example.com>
P-Charge-Info: <sip:user22@example.com>
Any other applicable SIP URI could be used.
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 [RFC3261] and [RFC2234] 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)
; name-addr and addr-spec are specified in RFC 3261
York & Asveren Expires August 6, 2018 [Page 7]
Internet-Draft P-Charge-Info, a SIP Private Header February 2018
The SIP URI contained in the name-addr/addr-spec is the billing
indicator that is passed between the parties.
8. IANA Considerations
This document defines a private SIP extension header field.
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.
If the SIP connections are not made over a private network, 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
York & Asveren Expires August 6, 2018 [Page 8]
Internet-Draft P-Charge-Info, a SIP Private Header February 2018
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: Keith
Drage, Miguel Garcia, Sumit Garg, John Haluska, Juha Heinanen,
Christer Holmberg, Paul Kyzivat, Jonathan Rosenberg, Henning
Schulzrinne, Tom Taylor and Glen Wang.
11. Changes
NOTE TO RFC EDITOR - Please remove this "Changes" section prior to
publication. Thank you.
Revision -02 incorporates a range of feedback provided by Henning
Schulzrinne.
Revision -01 is a refresh as -00 expired. The affiliation of Tolga
Asveren was changed to Ribbon Communications.
Revision -00 strips out the NPI and NOA parameters to focus only on
the usage in a pure SIP-to-SIP environment. Multiple editing changes
were made for readability.
NAME CHANGE - The document is now "draft-york-p-charge-info" to
reflect the fact that the publishing route for the draft is being
determined.
Revision -06 updates the text for 2017 and changes Dan York's
affiliation to "Individual".
Revision -05 is a refresh as -04 expired. Several small tweaks were
also made to narrative text.
Revision -04 is purely a refresh as -03 expired.
Revision -03 is purely a refresh as -02 expired.
Revision -02 is purely a refresh as -01 expired. My hope is to move
this document forward soon to put closure on it.
Revision -01 is purely a refresh as -00 expired. Only a few minor
tweaks to this "Changes" section of the document.
York & Asveren Expires August 6, 2018 [Page 9]
Internet-Draft P-Charge-Info, a SIP Private Header February 2018
Revision -00 is the initial release of "draft-york-dispatch-p-charge-
info" and is identical to "draft-york-sipping-p-charge-info-15"
except for changes to wording to reflect the change to the DISPATCH
working group. The "organization" name for Dan York was also changed
from blank to "DisTel Research" to remove the confusion that it
looked like he was also employed by Sonus Networks.
NAME CHANGE - The document is now "draft-york-dispatch-p-charge-info"
to reflect the fact that the SIPPING Working Group no longer exists.
Revision -15 simply fixes a wording error in the abstract in the
previous revision. This will also be the last version of 'draft-
york-sipping-p-charge-info'. The next version will be 'draft-york-
dispatch-p-charge-info'.
Revision -14 incorporates the following changes:
o Two examples were updated to include a "+1" at the beginning of
the SIP URI.
o An example was changed to use "example.net" to be compliant with
RFC 2606.
o Dan York's organization was updated to "Individual" (from empty)
to indicate that his involvement with this draft is purely as an
individual with no connection to his employer.
o The length of time the header has been used in the Introduction
was changed to 7 years, to reflect the first usage around 2005.
o A note was added to the abstract indicating that this is expected
to be the last version using the name 'draft-york-sipping-p-
charge-info'.
o Informative references were added to RFC 3261 and RFC 2234 to
address missing references in the text.
o Numerous other tweaks to the text for readability.
Revision -13 has no changes to content and was issued as -12 expired.
Discussions are under way coming out of IETF 83 on a plan to move
this draft forward. As the SIPPING working group no longer exists,
the draft name needs to change and there are a couple of other
required changes.
Revision -12 included the following modifications based on feedback
from John Haluska and Glen Wang:
York & Asveren Expires August 6, 2018 [Page 10]
Internet-Draft P-Charge-Info, a SIP Private Header February 2018
o Modification of Appendix B to reflect ANSI T1.113 values.
Revision -11 represents a fairly significant revision responding to a
solid review by Paul Kyzivat and providing additional explanation. A
major shift was the move to using decimal values for the npi-value
parameter versus the text values of previous drafts. Changes
include:
o ABNF definition updated to indicate that npi is now a number vs
text.
o The "npi" and "noa" acronyms were expanded and stated near the
formal syntax definition.
o New section created explicitly mentioning the optional parameters.
o Example of optional parameters updated to have npi use a number vs
text.
o Appendix B added to give examples of NOA parameter.
o Overview text updated to indicate that P-Charge-Info was been in
use now for over 5 years (given that the draft has been in
development for 3 years).
o Several small fixes for readability.
Revision -10 included the following modifications:
o Formal ABNF definition updated.
o In formal syntax, semicolons added to npi-param and noa-param
definitions.
o npi-param changed to a 'gen-value' to use digits vs text. Values
npi-param are shown in Appendix A.
o Corrected example to show proper use of parameters.
o Updated references to RFC 3427 and RFC 3968 to reference RFC 5727.
Revision -09 included the following modifications:
o Re-submitted with only a date change. Discussions are ongoing to
finalize this draft and submit it for expert review.
Revision -08 included the following modifications:
York & Asveren Expires August 6, 2018 [Page 11]
Internet-Draft P-Charge-Info, a SIP Private Header February 2018
o The ABNF for the "npi-value" was modified to conform to the
sequence of possible values stated in ANSI T1.113.
o An Appendix A was created listing the values from ANSI T1.113.
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
12.1. Normative References
[RFC5727] Peterson, J., Jennings, C., and R. Sparks, "Change Process
for the Session Initiation Protocol (SIP) and the Real-
time Applications and Infrastructure Area", BCP 67, RFC
5727, March 2010.
York & Asveren Expires August 6, 2018 [Page 12]
Internet-Draft P-Charge-Info, a SIP Private Header February 2018
12.2. Informative References
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261,
June 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.
[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.
[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.
[RFC2234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", RFC 2234, November 1997.
Authors' Addresses
Dan York
Individual
Keene, NH
USA
Email: dyork@lodestar2.com
Tolga Asveren
Ribbon Communications
NJ
USA
Email: tasveren@rbbn.com
York & Asveren Expires August 6, 2018 [Page 13]