Internet DRAFT - draft-henrikson-sip-charging-information
draft-henrikson-sip-charging-information
Internet Draft E. Henrikson
Document: draft-henrikson-sip-charging-information- Lucent
Expires: December 2002 Technologies
Category: Informational
June 2002
Private SIP Extension for Mobile Charging Information
draft-henrikson-sip-charging-information-05
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
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.
Abstract
This memo describes a private extension to SIP in the form of
P-Charging-Function-Addresses and P-Charging-Vector headers. The
former header is used to pass the addresses of entities that
provide a charging function. The latter header is used to pass
charging correlation information. The affected UAs and proxies
associated with a dialog or standalone transaction need to know the
identities or addresses of the appropriate charging entities. They
also need to pass correlation information so that the records
generated and sent to the charging entities may be properly
associated for a coordinated billing effort.
Table of Contents
1. Background....................................................2
2. Discussion of Mechanism.......................................3
3. Applicability Statement.......................................3
4. Syntax and definition.........................................4
4.1 General......................................................4
Henrikson Expires - December 2002 [Page 1]
Private SIP Extension for Mobile Charging Information
June 2002
4.2 P-Charging-Function-Addresses................................4
4.3 P-Charging-Vector............................................5
5. Usage.........................................................6
5.1 Procedures at the UA.........................................6
5.2 Procedures at the Proxy......................................6
5.3 Procedures at the Back to Back UA............................7
5.4 Examples of Usage............................................7
6. Security Considerations.......................................8
7. IANA Considerations...........................................8
8. References....................................................9
8.1 Normative References.........................................9
8.2 Informative References.......................................9
9. Author's Addresses...........................................10
10. Acknowledgements............................................10
11. Full Copyright Statement....................................11
1. Background
Third Generation Partnership Project (3GPP) has selected SIP [1] as
the protocol to establish and tear down multimedia sessions in the
IP Multimedia Subsystem (IMS). A description of the IMS can be
found in 3GPP TS 23.228 [6] and 3GPP TS 24.229 [7].
3GPP has defined a distributed architecture that results in
multiple network entities becoming involved in providing access and
service. Operators need the ability and flexibility to charge for
the access and services as they see fit. This requires
coordination among the network entities, which includes correlating
charging records generated from different entities that are related
to the same session. There is a need to inform each network entity
involved about common charging functions to receive the generated
records.
The solution provided by 3GPP is to define two types of charging
functions: Charging Collection Function (CCF) and Event Charging
Function (ECF). CCF is used for off-line charging and ECF is used
for on-line charging. There may be a primary and secondary CCF and
ECF, for redundancy purposes. The CCF and ECF addresses may be
passed during the establishment of a dialog or standalone
transaction. The details are specified in the 3GPP documents, see
3GPP TS 32.200 [5].
Additionally, a charging vector is defined that may be filled in
during the establishment of a dialog or standalone transaction.
The information inside the charging vector may be filled in by
multiple network entities and retrieved by multiple network
entities. There are three types of correlation information to be
passed: IMS Charging ID (ICID), Inter Operator Identifiers (IOI)
Henrikson Expires - December 2002 [Page 2]
Private SIP Extension for Mobile Charging Information
June 2002
and access network charging information. ICID is a globally unique
value that may be used to correlate charging records. There may an
IOI generated from each side of the dialog to identify the network
associated with each side. There is also expected to be access
network charging information, which consists of network specific
identifiers for the access level (e.g. 3GPP radio access network or
IEEE 802.11b). The details of the information for each type of
network are not described in this memo.
2. Discussion of Mechanism
The provided mechanism uses private headers "P-Charging-Function-
Addresses" and "P-Charging-Vector" in either the initial request or
subsequent response for a dialog or standalone transaction. Only
one instance of each header is allowed in a particular request or
response.
The mechanisms by which an entity determines which values to
populate in the P-Charging-Function-Addresses and P-Charging-Vector
headers are specific to the local implementation and outside the
scope of this document.
3. Applicability Statement
The P-Charging-Function-Addresses and P-Charging-Vector headers are
applicable within a single private network where coordination of
charging is required. For example, according to the architecture
specified in 3GPP TS 32.200 [5]. The P-Charging-Vector header is
also applicable between private networks with a trust relationship.
The P-Charging-Function-Addresses header is not sent outside of a
private network. The P-Charging-Vector header is not sent to
another network if there is no trust relationship. Neither header
is applicable if the private network does not provide a charging
function or manages charging in a way that does not require
correlation of records from multiple network entities.
The P-Charging-Function-Addresses header is applicable whenever the
following circumstances are met:
1. A UAC sends a REGISTER or dialog initiating request (e.g.,
INVITE) or a standalone transaction request to a proxy in
a private network.
2. A registrar, proxy or B2BUA that is located in the private
network wants to generate charging records.
3. A registrar, proxy or B2BUA that is located in the private
network has access to the addresses of the charging
function entities for that network.
Henrikson Expires - December 2002 [Page 3]
Private SIP Extension for Mobile Charging Information
June 2002
The P-Charging-Vector header is applicable whenever the following
circumstances are met:
1. A UAC sends a REGISTER or dialog initiating request (e.g.,
INVITE) or a standalone transaction request to a proxy in
a private network.
2. A registrar, proxy or B2BUA that is located in the private
network wants to generate charging records.
3. A proxy or B2BUA that is located in the private network
has access to the charging correlation information for
that network.
4. Optionally, a registrar, proxy or B2BUA that is part of
the dialog or standalone transaction and is located in
another private network wants to generate charging records
and correlate the records with the other private network.
4. Syntax and definition
4.1 General
All of the mechanisms specified in this document are described in
both prose and an augmented Backus-Naur Form (BNF) defined in RFC
2234 [2]. Further, the BNF definitions from RFC 3261 [1] are
inherited for the P-Charging-Function-Addresses and P-Charging-
Vector headers and are not repeated here. Implementers need to be
familiar with the notation and content of RFC 3261 [2] and RFC 2234
[2] to understand this document.
4.2 P-Charging-Function-Addresses
The syntax for the P-Charging-Function-Addresses header is:
p-charging-addr = "P-Charging-Function-Addresses" HCOLON
charge-addr-params *(SEMI charge-addr-params)
charge-addr-params = ccf1 / ccf2 / ecf1 / ecf2 / generic-param
ccf1 = "ccf1" EQUAL gen-value
ccf2 = "ccf2" EQUAL gen-value
ecf1 = "ecf1" EQUAL gen-value
ecf2 = "ecf2" EQUAL gen-value
Example:
P-Charging-Function-Addresses: ccf1=135.18.232.565;
ccf2=135.18.232.766
A P-Charging-Function-Addresses header may be inserted into a
request or response by any SIP node traversed by that message.
However, there may only be one instance of a P-Charging-Function-
Henrikson Expires - December 2002 [Page 4]
Private SIP Extension for Mobile Charging Information
June 2002
Addresses in a SIP message. Further, a particular instance of P-
Charging-Function-Addresses shall always contain the ccf1 parameter
and may contain one instance of each of the other parameters: ccf2,
ecf1 and ecf2.
The allowable usage of headers is described in Table 2 of SIP [1].
Addition of P-Charging-Function-Addresses to the Table 2 in SIP
[1], section 4.1 of the SIP-specific event notification [8], tables
1 and 2 in the SIP INFO method [9], tables 1 and 2 in Reliability
of provisional responses in SIP [10], tables 1 and 2 in the SIP
UPDATE method [11], tables 1 and 2 in the SIP extension for Instant
Messaging [12] and table 1 in the SIP REFER method [13]:
Header field where proxy ACK BYE CAN INV OPT REG
___________________________________________________________
P-Charging-Function-Addresses ard - o - o o o
Header field SUB NOT PRA INF UPD MES REF
_______________________________________________________________
P-Charging-Function-Addresses o o o o o o o
4.3 P-Charging-Vector
The syntax for the P-Charging-Vector header is:
p-charging-vector = "P-Charging-Vector" HCOLON charge-params
*(SEMI charge-params)
charge-params = icid / orig-ioi / term-ioi / generic-param
icid = "icid" EQUAL gen-value
orig-ioi = "orig-ioi" EQUAL gen-value
term-ioi = "term-ioi" EQUAL gen-value
Example:
P-Charging-Vector: icid=1234bc9876e;orig-ioi=ACCESSDOMAIN
A P-Charging-Vector header may be inserted into a request or
response by any SIP node traversed by that message. However, there
may only be one instance of a P-Charging-Vector in a SIP message.
Further, a particular instance of P-Charging-Vector shall always
contain the icid parameter and may contain one instance of each of
the other parameters: orig-ioi and term-ioi. Lastly, it is
expected that there will be network specific information included
in the extension parameter generic-param.
The allowable usage of headers is described in Table 2 of SIP [1].
Addition of P-Charging-Vector to the Table 2 in SIP [1], section
4.1 of the SIP-specific event notification [8], tables 1 and 2 in
Henrikson Expires - December 2002 [Page 5]
Private SIP Extension for Mobile Charging Information
June 2002
the SIP INFO method [9], tables 1 and 2 in Reliability of
provisional responses in SIP [10], tables 1 and 2 in the SIP UPDATE
method [11], tables 1 and 2 in the SIP extension for Instant
Messaging [12] and table 1 in the SIP REFER method [13]:
Header field where proxy ACK BYE CAN INV OPT REG
___________________________________________________________
P-Charging-Vector ardm - o - o o o
Header field SUB NOT PRA INF UPD MES REF
_______________________________________________________________
P-Charging-Vector o o o o o o o
5. Usage
5.1 Procedures at the UA
The UAC and UAS (originating and terminating UA) behave as usual.
They are not required to understand the P-Charging-Function-
Addresses header, but MAY retrieve the information if received.
The UAC and UAS (originating and terminating UA) behave as usual.
They are not required to understand the P-Charging-Vector header,
but MAY retrieve the information if received.
5.2 Procedures at the Proxy
The P-Charging-Function-Addresses and P-Charging-Vector headers are
treated like any other unknown header by intermediate proxies.
They simply forward it on towards the destination.
If a proxy that supports this extension receives a request or
response without the P-Charging-Function-Addresses or P-Charging-
Vector header, it MAY insert a P-Charging-Function-Addresses or P-
Charging-Vector header prior to forwarding the message.
If a proxy that supports this extension receives a request or
response with the P-Charging-Function-Addresses or P-Charging-
Vector header, it MAY retrieve the information from the header to
use with application specific logic, i.e. charging. The proxy
SHOULD retain the P-Charging-Function-Addresses and P-Charging-
Vector header in the outbound message. Per local application
specific logic, the proxy MAY modify the contents of the P-
Charging-Vector header prior to sending the message. If the next
hop for the message is outside the closed network of the proxy,
then the proxy MUST remove the P-Charging-Function-Addresses header
and MAY remove the P-Charging-Vector header from the message.
Henrikson Expires - December 2002 [Page 6]
Private SIP Extension for Mobile Charging Information
June 2002
5.3 Procedures at the Back to Back UA
If a B2BUA that supports this extension receives a request or
response without the P-Charging-Function-Addresses or P-Charging-
Vector header, it MAY insert a P-Charging-Function-Addresses or P-
Charging-Vector header prior to forwarding the message.
If a B2BUA that supports this extension receives a request/response
with the P-Charging-Function-Addresses or P-Charging-Vector header,
the B2BUA SHOULD copy the headers from the receiving side UA to the
sending side UA. Per local application specific logic, the B2BUA
MAY modify the contents of the P-Charging-Vector header prior to
sending the message.
5.4 Examples of Usage
We present example in the context of the scenario presented in the
Background section earlier in this document. The network diagram
is replicated below:
Scenario
UA1----P1-----P2-----UA2
This example shows the message sequence for an INVITE transaction
originating from UA1 eventually arriving at UA2. P1 is an outbound
proxy for UA1. In this case P1 also inserts charging information.
P1 then routes the call via P2 to UA2.
Message sequence for INVITE using P-Charging-Function-Addresses and
P-Charging-Vector:
F1 INVITE UA1 -> P1
INVITE sip:joe SIP/2.0
Via: SIP/2.0/UDP 192.0.2.4:5060;branch=z9hG4bKnashds7
To: Joe <sip:joe>
From: UA@HOMEDOMAIN <UA@HOMEDOMAIN>;tag=456248
Call-ID: 843817637684230@998sdasdh09
CSeq: 18 INVITE
Contact: <sip:UA@192.0.2.4>
. . .
Henrikson Expires - December 2002 [Page 7]
Private SIP Extension for Mobile Charging Information
June 2002
F2 INVITE P1 -> P2
INVITE sip:joe SIP/2.0
Via: SIP/2.0/UDP P1:5060;branch=z9hG4bK34ghi7ab04
Via: SIP/2.0/UDP 192.0.2.4:5060;branch=z9hG4bKnashds7
To: Joe <sip:joe>
From: UA@HOMEDOMAIN <UA@HOMEDOMAIN>;tag=456248
Call-ID: 843817637684230@998sdasdh09
CSeq: 18 INVITE
Contact: <sip:UA@192.0.2.4>
P-Charging-Function-Addresses: ccf1=135.18.232.565;
ccf2=135.18.232.766
P-Charging-Vector: icid=1234bc9876e;orig-ioi=ACCESSDOMAIN
. . .
6. Security Considerations
It is expected as normal behavior that proxies and B2BUAs within a
closed network will modify the values of P-Charging-Function-
Addresses and P-Charging-Vector and to insert these headers into a
request for a dialog, e.g. INVITE request (or other request or
response). However, these proxies and B2BUAs that share this
information SHOULD have a trust relationship.
If an untrusted entity got inserted between trusted entities, it
could potentially interfere with the charging correlation mechanism
or substitute a different charging function address. Therefore, an
integrity protection mechanism such as IPsec or other available
mechanisms SHOULD be applied in order to prevent such attacks.
Since each trusted proxy or B2BUA may need to view or modify the
values in the P-Charging-Function-Addresses and P-Charging-Vector
headers, the protection should be applied on a hop-by-hop basis.
7. IANA Considerations
This document defines the SIP extension headers "P-Charging-
Function-Addresses" and "P-Charging-Vector" which should be
included in the registry of SIP headers defined in SIP [1]. As
required by the SIP change process draft-tsvarea-sipchange [4] the
SIP extension header name "Charging-Function-Addresses" and
"Charging-Vector" should also be registered in association with
this extension.
The following is the registration for the P-Charging-Function-
Addresses header field:
RFC Number: RFC XXXX [Note to IANA: Fill in with the RFC
number of this specification.]
Header Field Name: P-Charging-Function-Addresses
Henrikson Expires - December 2002 [Page 8]
Private SIP Extension for Mobile Charging Information
June 2002
Compact Form: none
The following is the registration for the Charging-Function-
Addresses header field:
RFC Number: RFC XXXX [Note to IANA: Fill in with the RFC
number of this specification.] (not yet specified,
only reserved)
Header Field Name: Charging-Function-Addresses
Compact Form: none
The following is the registration for the P-Charging-Vector header
field:
RFC Number: RFC XXXX [Note to IANA: Fill in with the RFC
number of this specification.]
Header Field Name: P-Charging-Vector
Compact Form: none
The following is the registration for the Charging-Vector header
field:
RFC Number: RFC XXXX [Note to IANA: Fill in with the RFC
number of this specification.] (not yet specified,
only reserved)
Header Field Name: Charging-Vector
Compact Form: none
8. References
8.1 Normative References
[1] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M., Schooler, E., "SIP: Session
Initiation Protocol, RFC 3261", March 2002.
[2] D. Crocker, Ed., and P. Overell, "Augmented BNF for syntax
specifications: ABNF," RFC 2234, Internet Engineering Task Force,
November 1997.
8.2 Informative References
[3] Garcia, M., et al, "3GPP requirements on SIP, draft-garcia-
sipping-3gpp-reqs-03.txt", March 2002.
[4] Mankin, A., "SIP Change Process draft-tsvarea-sipchange",
March 2002.
Henrikson Expires - December 2002 [Page 9]
Private SIP Extension for Mobile Charging Information
June 2002
[5] 3GPP TS 32.200, Version 5, "Telecommunication Management;
Charging management; Charging principles".
[6] 3GPP TS 23.228 "IP Multimedia Subsystem (IMS) (Stage 2) -
Release 5".
[7] 3GPP TS 24.229 "IP Multimedia Subsystem (IMS) (Stage 3) -
Release 5".
[8] A. Roach, SIP-Specific Event Notification, RFC 3265, March
2002.
[9] S. Donovan, The SIP INFO method, RFC 2976, October 2000.
[10] J. Rosenberg, H. Schulzrinne, Reliability of Provisional
Responses in SIP, RFC 3262, March 2002.
[11] J. Rosenberg, The Session Initiation Protocol UPDATE Method,
draft-ietf-sip-update-02.txt, April 2002, work in progress.
[12] B. Campbell, J. Rosenberg, H. Schulzrinne, C. Huitema, D.
Gurle, Session Initiation Protocol Extension for Instant Messaging,
draft-ietf-sip-message-04, May 2002, work in progress.
[13] R. Sparks, The REFER method, draft-ietf-sip-refer-04.txt, May
2002, work in progress.
9. Author's Addresses
Eric Henrikson
Lucent Technologies
11601 Willows Rd
Suite 100
Redmond, WA 98052
US
Phone: +1 425 497 2442
EMail: ehenrikson@lucent.com
URI: http://www.lucent.com/
10. Acknowledgements
The author would like to thank Keith Drage, Miguel Garcia, Dean
Willis, Rohan Mahy and the 3GPP CN1 Working Group members for their
valuable comments on this document.
Henrikson Expires - December 2002 [Page 10]
Private SIP Extension for Mobile Charging Information
June 2002
11. Full Copyright Statement
Copyright (C) The Internet Society (2002). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain
it or assist in its implementation may be prepared, copied,
published and distributed, in whole or in part, without restriction
of any kind, provided that the above copyright notice and this
paragraph are included on all such copies and derivative works.
However, this document itself may not be modified in any way, such
as by removing the copyright notice or references to the Internet
Society or other Internet organizations, except as needed for the
purpose of developing Internet standards in which case the
procedures for copyrights defined in the Internet Standards process
must be followed, or as required to translate it into languages
other than English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on
an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIMS 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.
Henrikson Expires - December 2002 [Page 11]