summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc3455.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc3455.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc3455.txt')
-rw-r--r--doc/rfc/rfc3455.txt1907
1 files changed, 1907 insertions, 0 deletions
diff --git a/doc/rfc/rfc3455.txt b/doc/rfc/rfc3455.txt
new file mode 100644
index 0000000..131f0a4
--- /dev/null
+++ b/doc/rfc/rfc3455.txt
@@ -0,0 +1,1907 @@
+
+
+
+
+
+
+Network Working Group M. Garcia-Martin
+Request for Comments: 3455 Ericsson
+Category: Informational E. Henrikson
+ Lucent
+ D. Mills
+ Vodafone
+ January 2003
+
+
+ Private Header (P-Header) Extensions to the Session Initiation
+ Protocol (SIP) for the 3rd-Generation Partnership Project (3GPP)
+
+Status of this Memo
+
+ This memo provides information for the Internet community. It does
+ not specify an Internet standard of any kind. Distribution of this
+ memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2003). All Rights Reserved.
+
+Abstract
+
+ This document describes a set of private Session Initiation Protocol
+ (SIP) headers (P-headers) used by the 3rd-Generation Partnership
+ Project (3GPP), along with their applicability, which is limited to
+ particular environments. The P-headers are for a variety of purposes
+ within the networks that the partners use, including charging and
+ information about the networks a call traverses.
+
+Table of Contents
+
+ 1. Overall Applicability . . . . . . . . . . . . . . . . . . . . 3
+ 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3
+ 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3
+ 4. SIP Private Headers . . . . . . . . . . . . . . . . . . . . . 3
+ 4.1 The P-Associated-URI header. . . . . . . . . . . . . . . . 3
+ 4.1.1 Applicability statement for the
+ P-Associated-URI header. . . . . . . . . . . . . . . 4
+ 4.1.2 Usage of the P-Associated-URI header . . . . . . . . 4
+ 4.2 The P-Called-Party-ID header . . . . . . . . . . . . . . . 6
+ 4.2.1 Applicability statement for the
+ P-Called-Party-ID header. . . . . . . . . . . . . . . 9
+ 4.2.2 Usage of the P-Called-Party-ID header. . . . . . . . 10
+ 4.3 The P-Visited-Network-ID header. . . . . . . . . . . . . . 11
+ 4.3.1 Applicability statement for the
+ P-Visited-Network-ID header. . . . . . . . . . . . . 11
+
+
+
+Garcia-Martin, et. al. Informational [Page 1]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ 4.3.2 Usage of the P-Visited-Network-ID header . . . . . . 12
+ 4.4 The P-Access-Network-Info header . . . . . . . . . . . . . 15
+ 4.4.1 Applicability Statement for the
+ P-Access-Network-Info header . . . . . . . . . . . . 16
+ 4.4.2 Usage of the P-Access-Network-Info header . . . . . 17
+ 4.5 The P-Charging-Function-Addresses header . . . . . . . . . 18
+ 4.5.1 Applicability Statement for the
+ P-Charging-Function-Addresses header . . . . . . . . 18
+ 4.5.2 Usage of the P-Charging-Function-Addresses
+ headerd. . . . . . . . . . . . . . . . . . . . . . . 19
+ 4.6 The P-Charging-Vector header . . . . . . . . . . . . . . . 21
+ 4.6.1 Applicability Statement for the
+ P-Charging-Vector header . . . . . . . . . . . . . . 22
+ 4.6.2 Usage of the P-Charging-Vector header . . . . . . . 23
+ 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 25
+ 5.1 P-Associated-URI header syntax . . . . . . . . . . . . . . 25
+ 5.2 P-Called-Party-ID header syntax. . . . . . . . . . . . . . 25
+ 5.3 P-Visited-Network-ID header syntax . . . . . . . . . . . . 25
+ 5.4 P-Access-Network-Info header syntax. . . . . . . . . . . . 25
+ 5.5 P-Charging-Function-Addresses header syntax. . . . . . . . 26
+ 5.6 P-Charging-Vector header syntax. . . . . . . . . . . . . . 26
+ 5.7 Table of new headers . . . . . . . . . . . . . . . . . . . 27
+ 6. Security Considerations . . . . . . . . . . . . . . . . . . . 28
+ 6.1 P-Associated-URI . . . . . . . . . . . . . . . . . . . . . 28
+ 6.2 P-Called-Party-ID. . . . . . . . . . . . . . . . . . . . . 28
+ 6.3 P-Visited-Network-ID . . . . . . . . . . . . . . . . . . . 28
+ 6.4 P-Access-Network-Info. . . . . . . . . . . . . . . . . . . 29
+ 6.5 P-Charging-Function-Addresses. . . . . . . . . . . . . . . 30
+ 6.6 P-Charging-Vector. . . . . . . . . . . . . . . . . . . . . 30
+ 7. IANA Considerations. . . . . . . . . . . . . . . . . . . . . 30
+ 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 31
+ 9. Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . 32
+ 10. Normative References . . . . . . . . . . . . . . . . . . . . 32
+ 11. Informative References . . . . . . . . . . . . . . . . . . . 32
+ Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33
+ Full Copyright Statement . . . . . . . . . . . . . . . . . . . . 34
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 2]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+1. Overall Applicability
+
+ The SIP extensions specified in this document make certain
+ assumptions regarding network topology, linkage between SIP and lower
+ layers, and the availability of transitive trust. These assumptions
+ are generally NOT APPLICABLE in the Internet as a whole. The
+ mechanisms specified here were designed to satisfy the requirements
+ specified in the 3GPP Release 5 requirements on SIP [4] for which
+ either no general-purpose solution was planned, where insufficient
+ operational experience was available to understand if a general
+ solution is needed, or where a more general solution is not yet
+ mature. For more details about the assumptions made about these
+ extensions, consult the Applicability subsection for each extension.
+
+2. Conventions
+
+ 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 BCP 14, RFC 2119 [2].
+
+3. Overview
+
+ The Third Generation Partnership Project (3GPP) has selected SIP as
+ the protocol used to establish and tear down multimedia sessions in
+ the context of its IP Multimedia Subsystem (IMS). (For more
+ information on the IMS, a detailed description can be found in 3GPP
+ TS 23.228 [14] and 3GPP TS 24.229 [15]). 3GPP notified the IETF SIP
+ and SIPPING working groups that existing SIP documents provided
+ almost all the functionality needed to satisfy the requirements of
+ the IMS, but that they required some additional functionality in
+ order to use SIP for this purpose. These requirements [4] are
+ documented in an Internet Draft which was submitted to the SIPPING
+ Working Group. Some of these requirements are satisfied by chartered
+ extensions, while other requirements were applicable to SIP, but not
+ sufficiently general for the SIP Working Group to adopt. This
+ document describes private extensions to address those requirements.
+ Each extension, or set of related extensions is described in its own
+ section below.
+
+4. SIP Private Headers
+
+4.1 The P-Associated-URI header
+
+ This extension allows a registrar to return a set of associated URIs
+ for a registered address-of-record. We define the P-Associated-URI
+ header field, used in the 200 OK response to a REGISTER request. The
+ P-Associated-URI header field transports the set of Associated URIs
+ to the registered address-of-record.
+
+
+
+Garcia-Martin, et. al. Informational [Page 3]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ An associated URI is a URI that the service provider has allocated to
+ a user for his own usage. A registrar contains information that
+ allows an address-of-record URI to be associated with zero or more
+ URIs. Usually, all these URIs (the address-of-record URI and the
+ associated URIs) are allocated for the usage of a particular user.
+ This extension to SIP allows the UAC to know, upon a successful
+ authenticated registration, which other URIs, if any, the service
+ provider has associated to an address-of-record URI.
+
+ Note that, generally speaking, the registrar does not register the
+ associated URIs on behalf of the user. Only the address-of-record
+ which is present in the To header field of the REGISTER is registered
+ and bound to the contact address. The only information conveyed is
+ that the registrar is aware of other URIs to be used by the same
+ user.
+
+ It may be possible, however, that an application server (or even the
+ registrar itself) registers any of the associated URIs on behalf of
+ the user by means of a third party registration. However, this third
+ party registration is out of the scope of this document. A UAC MUST
+ NOT assume that the associated URIs are registered.
+
+ If a UAC wants to check whether any of the associated URIs is
+ registered, it can do so by mechanisms specified outside this
+ document, e.g., the UA may send a REGISTER request with the To header
+ field value set to any of the associated URIs and without a Contact
+ header. The 200 OK response will include a Contact header with the
+ list of registered contact addresses. If the associated URI is not
+ registered, the UA MAY register it prior to its utilization.
+
+4.1.1 Applicability statement for the P-Associated-URI header
+
+ The P-Associated-URI header is applicable in SIP networks where the
+ SIP provider is allocating the set of identities that a user can
+ claim (in headers like the From field) in requests that the UA
+ generates. It furthermore assumes that the provider knows the entire
+ set of identities that a user can legitimately claim, and that the
+ user is willing to restrict its claimed identities to that set. This
+ is in contrast to normal SIP usage, where the From field is
+ explicitly an end-user specified field.
+
+4.1.2 Usage of the P-Associated-URI header
+
+ The registrar inserts the P-Associated-URI header field into the 200
+ OK response to a REGISTER request. The header field value is
+ populated with a list containing zero or more URIs that are
+ associated to the address-of-record.
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 4]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ If the registrar supports the P-Associated-URI header extension, then
+ the registrar MUST always insert the P-Associated-URI header field in
+ all the 200 OK responses to a REGISTER request, regardless of whether
+ the REGISTER was an initial registration, re-registration, or
+ de-registration and regardless of whether there are zero or more
+ associated URIs.
+
+4.1.2.1 Procedures at the UA
+
+ A UAC may receive a P-Associated-URI header field in the 200 OK
+ response for a REGISTER. The presence of the header field in the 200
+ OK response for a REGISTER request implies that the extension is
+ supported at the registrar.
+
+ The header value contains a list of zero or more associated URIs to
+ the address-of-record URI. The UAC MAY use any of the associated
+ URIs to populate the From header value, or any other SIP header value
+ that provides information of the identity of the calling party, in a
+ subsequent request.
+
+ The UAC MAY check whether the associated URI is registered or not.
+ This check can be done, e.g., by populating the To header value in a
+ REGISTER sent to the registrar and without a Contact header. The 200
+ OK response will include a Contact header with the list of registered
+ contact addresses. As described in SIP [1], the 200 OK response may
+ contain a Contact header field with zero or more values (zero meaning
+ the address-of-record is not registered).
+
+4.1.2.2 Procedures at the registrar
+
+ A registrar that receives and authorizes a REGISTER request, may
+ associate zero or more URIs with the address-of-record.
+
+ A registrar that supports this specification MUST include a
+ P-Associated-URI header field in the 200 OK response to a REGISTER
+ request. The header MUST be populated with a comma-separated list of
+ SIP or SIPS URIs which are associated to the address-of-record under
+ registration.
+
+ In case the address-of-record under registration does not have any
+ other SIP or SIPS URIs associated, the registrar MUST include an
+ empty P-Associated-URI header value.
+
+4.1.2.3 Procedures at the proxy
+
+ This memo does not define any procedure at the proxy.
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 5]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+4.2 The P-Called-Party-ID header
+
+ A proxy server inserts a P-Called-Party-ID header, typically in an
+ INVITE request, en-route to its destination. The header is populated
+ with the Request-URI received by the proxy in the request. The UAS
+ identifies which address-of-record, out of several registered
+ address-of-records, the invitation was sent to (for example, the user
+ may be simultaneously using a personal and a business SIP URIs to
+ receive invitation to sessions). The UAS may use the information to
+ render different distinctive audiovisual alerting tones, depending on
+ the URI used to receive the invitation to the session.
+
+ Users in the 3GPP IP Multimedia Subsystem (IMS) may get one or
+ several SIP URIs (address-of-record) to identify the user. For
+ instance, a user may get a business SIP URI and a personal one. As
+ an example of utilization, the user may make available the business
+ SIP URI to co-workers and may make available the personal SIP URI to
+ members of the family.
+
+ At a certain point in time, both the business SIP URI and the
+ personal SIP URI are registered in the SIP registrar, so both URIs
+ can receive invitations to new sessions. When the user receives an
+ invitation to join a session, he/she should be aware of which of the
+ several registered SIP URIs this session was sent to.
+
+ This requirement is stated in the 3GPP Release 5 requirements on SIP
+ [4].
+
+ The problem arises during the terminating side of a session
+ establishment, when the SIP proxy that is serving a UA gets an
+ INVITE, and the SIP server retargets the SIP URI which is present in
+ the Request-URI field, and replaces it by the SIP URI published by
+ the user in the Contact header field of the REGISTER request at
+ registration time. When the UAS receives the SIP INVITE, it cannot
+ determine which address-of-record the request was sent to.
+
+ One can argue that the To header field conveys the semantics of the
+ called user, and therefore, this extension to SIP is not needed.
+ Although the To header field in SIP may convey the called party ID in
+ most situations, there are two particular cases when the above
+ assumption is not correct:
+
+ 1. The session has been forwarded, redirected, etc., by previous SIP
+ proxies, before arriving to the proxy which is serving the called
+ user.
+
+ 2. The UAC builds an INVITE request and the To header field is not
+ the same as the Request-URI.
+
+
+
+Garcia-Martin, et. al. Informational [Page 6]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ The problem of using the To header field is that this field is
+ populated by the UAC and not modified by proxies in the path. If the
+ UAC, for any reason, did not populate the To header field with the
+ address-of-record of the destination user, then the destination user
+ is not able to distinguish which address-of-record the session was
+ destined.
+
+ Another possible solution to the problem is built upon the
+ differentiation of the Contact header value between different
+ address-of-record at registration time. The UA can differentiate
+ each address-of-record it registers by assigning a different Contact
+ header value. For instance, when the UA registers the address-of-
+ record sip:id1, the Contact header value can be sip:id1@ua; the
+ registration of sip:id2 can be bound to the Contact value sip:id2@ua.
+
+ The solution described above assumes that the UA explicitly registers
+ each of its address-of-record URIs, and therefore, it has full
+ control over the contact address values assigned to each
+ registration. However, in the case the UA does not have full control
+ of its registered address-of-record, because of, e.g., a third party
+ registration, the solution does not work. This may be the case of
+ the 3GPP registration, where the UA may have previously indicated the
+ network, by means outside of SIP, that some other address-of-record
+ URIs may be automatically registered when the UA registers a
+ particular address-of-record. The requirement is covered in the 3GPP
+ Release 5 requirements on SIP [4].
+
+ In the next paragraphs we show an example of the problem, in the case
+ there has been some sort of call forwarding in the session, so that
+ the UAC is not aware of the intended destination URI in the current
+ INVITE.
+
+ We assume that a User Agent (UA) is registering to his proxy (P1).
+
+ Scenario UA --- P1
+
+ F1 Register UA -> P1
+ REGISTER sip:example.com SIP/2.0
+ Via: SIP/2.0/UDP 192.0.2.4:5060;branch=z9hG4bKnashds7
+ To: sip:user1-business@example.com
+ From: sip:user1-business@example.com;tag=456248
+ Call-ID: 843817637684230998sdasdh09
+ CSeq: 1826 REGISTER
+ Contact: <sip:user1@192.0.2.4>
+
+ The user also registers his personal URI to his/her registrar.
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 7]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ F2 Register UA -> P1
+ REGISTER sip:example.com SIP/2.0
+ Via: SIP/2.0/UDP 192.0.2.4:5060;branch=z9hG4bKnashdt8
+ To: sip:user1-personal@example.com
+ From: sip:user1-personal@example.com;tag=346249
+ Call-ID: 2Q3817637684230998sdasdh10
+ CSeq: 1827 REGISTER
+ Contact: <sip:user1@192.0.2.4>
+
+ Later, the proxy/registrar (P1) receives an INVITE from another proxy
+ (P2) destined to the user's business SIP address-of-record. We
+ assume that this SIP INVITE has undergone some sort of forwarding in
+ the past, and as such, the To header field is not populated with the
+ SIP URI of the user. In this case we assume that the session was
+ initially addressed to sip:other-user@othernetwork.com. The SIP
+ server at othernetwork.com has forwarded this session to
+ sip:user1-business@example.com
+
+ Scenario UA --- P1 --- P2
+
+ F3 Invite P2 -> P1
+ INVITE sip:user1-business@example.com SIP/2.0
+ Via: SIP/2.0/UDP 192.0.2.20:5060;branch=z9hG4bK03djaoe1
+ To: sip:other-user@othernetwork.com
+ From: sip:another-user@anothernetwork.com;tag=938s0
+ Call-ID: 843817637684230998sdasdh09
+ CSeq: 101 INVITE
+
+ The proxy P1 retargets the user and replaces the Request-URI with the
+ SIP URI published during registration time in the Contact header
+ value.
+
+ F4 Invite P1 -> UA
+ INVITE sip:user1@192.0.2.4 SIP/2.0
+ Via: SIP/2.0/UDP 192.0.2.10:5060;branch=z9hG4bKg48sh128
+ Via: SIP/2.0/UDP 192.0.2.20:5060;branch=z9hG4bK03djaoe1
+ To: sip:other-user@othernetwork.com
+ From: sip:another-user@anothernetwork.com;tag=938s0
+ Call-ID: 843817637684230998sdasdh09
+ CSeq: 101 INVITE
+
+ When the UAS receives the INVITE, it cannot determine whether it got
+ the session invitation due to his registration of the business or the
+ personal address-of-record. Neither the UAS nor proxies or
+ application servers can provide this user a service based on the
+ destination address-of-record of the session.
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 8]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ We solve this problem by allowing the proxy that is responsible for
+ the home domain (as defined in SIP) of the user to insert a
+ P-Called-Party-ID header that identifies the address-of-record to
+ which this session is destined.
+
+ If this SIP extension is used, the proxy serving the called user will
+ get the message flow F5, it will populate the P-Called-Party-ID
+ header in message flow F6 with the contents of the Request-URI in F4.
+ This is show in flows F5 and F6 below:
+
+ F5 Invite P2 -> P1
+ INVITE sip:user1-business@example.com SIP/2.0
+ Via: SIP/2.0/UDP 192.0.2.20:5060;branch=z9hG4bK03djaoe1
+ To: sip:other-user@othernetwork.com
+ From: sip:another-user@anothernetwork.com;tag=938s0
+ Call-ID: 843817637684230998sdasdh09
+ CSeq: 101 INVITE
+
+ F6 Invite P1 -> UA
+ INVITE sip:user1@192.0.2.4 SIP/2.0
+ Via: SIP/2.0/UDP 192.0.2.10:5060;branch=z9hG4bKg48sh128
+ Via: SIP/2.0/UDP 192.0.2.20:5060;branch=z9hG4bK03djaoe1
+ To: sip:other-user@othernetwork.com
+ From: sip:another-user@anothernetwork.com;tag=938s0
+ Call-ID: 843817637684230998sdasdh09
+ P-Called-Party-ID: sip:user1-business@example.com
+ CSeq: 101 INVITE
+
+ When the UA receives the INVITE request F6 it can determine the
+ intended address-of-record of the session, and apply whatever service
+ is needed for that address-of-record.
+
+4.2.1 Applicability statement for the P-Called-Party-ID header
+
+ The P-Called-Party-ID is applicable when the UAS needs to be aware of
+ the intended address-of-record that was present in the Request-URI of
+ the request, before the proxy retargets to the contact address. The
+ UAS may be interested in applying different audiovisual alerting
+ effects or other filtering services, depending on the intended
+ destination of the request. It is specially valuable when the UAS
+ has registered several address-of-record URIs to his registrar, and
+ therefore, the UAS is not aware of the address-of-record that was
+ present in the INVITE request when it hit his proxy/registrar, unless
+ this extension is used.
+
+ Requirements for a more general solution are proposed in [12], but
+ have not been adopted by SIP, nor a solution has been developed.
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 9]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+4.2.2 Usage of the P-Called-Party-ID header
+
+ The P-Called-Party-ID header field provides proxies and the UAS with
+ the address-of-record that was present in the Request-URI of the
+ request, before a proxy retargets the request. This information is
+ intended to be used by subsequent proxies in the path or by the UAS.
+
+ Typically, a SIP proxy inserts the P-Called-Party-ID header prior to
+ retargetting the Request-URI in the SIP request. The header value is
+ populated with the contents of Request-URI, prior to replacing it
+ with the Contact address.
+
+4.2.2.1 Procedures at the UA
+
+ A UAC MUST NOT insert a P-Called-Party-ID header field in any SIP
+ request or response.
+
+ A UAS may receive a SIP request that contains a P-Called-Party-ID
+ header field. The header will be populated with the address-of-
+ record received by the proxy in the Request-URI of the request, prior
+ to its forwarding to the UAS.
+
+ The UAS may use the value in the P-Called-Party-ID header field to
+ provide services based on the called party URI, such as, e.g.,
+ filtering of calls depending on the date and time, distinctive
+ presentation services, distinctive alerting tones, etc.
+
+4.2.2.2 Procedures at the proxy
+
+ A proxy that has access to the Contact information of the user, MAY
+ insert a P-Called-Party-ID header field in any of the requests
+ indicated in the Table 1 (Section 5.7). The proxy MUST populate the
+ header value with the contents of the Request-URI present in the SIP
+ request that the proxy received.
+
+ It is necessary that the proxy which inserts the P-Called-Party-ID
+ header has information about the user, in order to prevent a wrong
+ delivery of the called party ID. This information may have been
+ learned through a registration process, for instance.
+
+ A proxy or application server that receives a request containing a
+ P-Called-Party-ID header may use the contents of the header to
+ provide a service to the user based on the URI of that header value.
+
+ A SIP proxy MUST NOT insert a P-Called-Party-ID header in REGISTER
+ requests.
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 10]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+4.3 The P-Visited-Network-ID header
+
+ 3GPP networks are composed of a collection of so called home
+ networks, visited networks and subscribers. A particular home
+ network may have roaming agreements with one or more visited
+ networks. This has the effect that when a mobile terminal is
+ roaming, it can use resources provided by the visited network in a
+ transparent fashion.
+
+ One of the conditions for a home network to accept the registration
+ of a UA roaming to a particular visited network, is the existence of
+ a roaming agreement between the home and the visited network. There
+ is a need to indicate to the home network which one is the visited
+ network that is providing services to the roaming UA.
+
+ 3GPP user agents always register to the home network. The REGISTER
+ request is proxied by one or more proxies located in the visited
+ network towards the home network. For the sake of a simple approach,
+ it seems sensible that the visited network includes an identification
+ that is known at the home network. This identification should be
+ globally unique, and takes the form of a quoted text string or a
+ token. The home network may use this identification to verify the
+ existence of a roaming agreement with the visited network, and to
+ authorize the registration through that visited network.
+
+4.3.1 Applicability statement for the P-Visited-Network-ID header
+
+ The P-Visited-Network-ID is applicable whenever the following
+ circumstances are met:
+
+ 1. There is transitive trust in intermediate proxies between the UA
+ and the home network proxy via established relationships between
+ the home network and the visited network, and generally supported
+ by the use of standard security mechanisms, e.g., IPsec, AKA, or
+ TLS.
+
+ 2. An endpoint is using resources provided by one or more visited
+ networks (a network to which the user does not have a direct
+ business relationship).
+
+ 3. A proxy that is located in one of the visited networks wants to be
+ identified at the user's home network.
+
+ 4. There is no requirement that every visited network needs to be
+ identified at the home network. Those networks that want to be
+ identified make use of the extension defined in this document.
+ Those networks that do not want to be identified do nothing.
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 11]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ 5. A commonly pre-agreed text string or token identifies the visited
+ network at the home network.
+
+ 6. The UAC sends a REGISTER or dialog-initiating request (e.g.,
+ INVITE) or a standalone request outside a dialog (e.g., OPTIONS)
+ to a proxy in a visited network.
+
+ 7. The request traverses, en route to its destination, a first proxy
+ located in the visited network, and a second proxy located in the
+ home network or its destination is the registrar in the home
+ network.
+
+ 8. The registrar or home proxy verifies and authorizes the usage of
+ resources (e.g., proxies) in the visited network.
+
+4.3.2 Usage of the P-Visited-Network-ID header
+
+ The P-Visited-Network-ID header field is used to convey to the
+ registrar or home proxy in the home network the identifier of a
+ visited network. The identifier is a text string or token that is
+ known by both the registrar or the home proxy at the home network and
+ the proxies in the visited network.
+
+ Typically, the home network authorizes the UA to roam to a particular
+ visited network. This action requires an existing roaming agreement
+ between the home and the visited network.
+
+ While it is possible for a home network to identify one or more
+ visited networks by inspecting the domain name in the Via header
+ fields, this approach has a heavy dependency on DNS. It is an option
+ for a proxy to populate the via header with an IP address, for
+ example, and in the absence of a reverse DNS entry, the IP address
+ will not convey the desired information.
+
+ Any SIP proxy that receives any of the requests indicated in Table 1
+ (Section 5.7) MAY insert a P-Visited-Network-ID header when it
+ forwards the request. In case a REGISTER or other request is
+ traversing different administrative domains (e.g., different visited
+ networks), a SIP proxy MAY insert a new P-Visited-Network-ID header
+ if the request does not contain a P-Visited-Network-ID header with
+ the same network identifier as its own network identifier (e.g., if
+ the request has traversed other different administrative domains).
+
+ Note also that, there is not requirement for the header value to be
+ readable in the proxies. Therefore, a first proxy may insert an
+ encrypted header that only the registrar can decrypt. If the request
+ traverses a second proxy located in the same administrative domain as
+ the first proxy, the second proxy may not be able to read the
+
+
+
+Garcia-Martin, et. al. Informational [Page 12]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ contents of the P-Visited-Network-ID header. In this situation, the
+ second proxy will consider that its visited network identifier is not
+ already present in the value of the header, and therefore, it will
+ insert a new P-Visited-Network-ID header value (hopefully with the
+ same identifier that the first proxy inserted, although perhaps, not
+ encrypted). When the request arrives at the registrar or proxy in
+ the home network, it will notice that the header value is repeated
+ (both the first and the second proxy inserted it). The decrypted
+ values should be the same, because both proxies where part of the
+ same administrative domain. While this situation is not desirable,
+ it does not create any harm at the registrar or proxy in the home
+ network.
+
+ The P-Visited-Network-ID is normally used at registration. However,
+ this extension does not preclude other usages. For instance, a proxy
+
+ located in a visited network that does not maintain registration
+ state may insert a P-Visited-Network-ID header into any standalone
+ request outside a dialog or a request that creates a dialog. At the
+ time of writing this document, the only requests that create dialogs
+ are INVITE [1], SUBSCRIBE [6] and REFER [11].
+
+ In order to avoid conflicts with identifiers, especially when the
+ number of roaming agreements between networks increase, care must be
+ taken when selecting the value of the P-Visited-Network-ID. The
+ identifier should be a globally unique to avoid duplications.
+ Although there are many mechanism to create globally unique
+ identifiers across networks, one of such as mechanisms is already in
+ operation, and that is DNS. The P-Visited-Network-ID does not have
+ any connection to DNS, but the values in the header can be chosen
+ from the own DNS entry representing the domain name of the network.
+ This guarantees the uniqueness of the value.
+
+4.3.2.1 Procedures at the UA
+
+ User agent clients SHOULD NOT insert a P-Visited-Network-ID header in
+ any SIP message.
+
+4.3.2.2 Procedures at the registrar and proxy
+
+ A SIP proxy which is located in a visited network MAY insert a
+ P-Visited-Network-ID header field in any of the requests indicated in
+ the Table 1 (Section 5.7). The header MUST be populated with the
+ contents of a text string or a token that identifies the
+ administrative domain of the network where the proxy is operating at
+ the user's home network.
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 13]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ A SIP proxy or registrar which is located in the home network may use
+ the contents of the P-Visited-Network-ID as an identifier of one or
+ more visited networks that the request traversed. The proxy or
+ registrar in the home network may take local policy driven actions
+ based on the existence or not of a roaming agreement between the home
+ and the visited networks. This means, for instance, authorize the
+ actions of the request based on the contents of the
+ P-Visited-Network-ID header.
+
+ A SIP proxy which is located in the home network MUST delete this
+ header when forwarding the message outside the home network
+ administrative domain, in order to retain the user's privacy.
+
+ A SIP proxy which is located in the home network SHOULD delete this
+ header when the home proxy has used the contents of the header or the
+ request is routed based on the called party, even when the request is
+ not forwarded outside the home network administrative domain.
+
+4.3.2.3 Examples of Usage
+
+ We present example in the context of the scenario presented in the
+ following network diagram:
+
+ Scenario UA --- P1 --- P2 --- REGISTRAR
+
+ This example shows the message sequence for an REGISTER transaction
+ originating from UA1 eventually arriving at REGISTRAR. P1 is an
+ outbound proxy for UA1. In this case P1 also inserts the
+ P-Visited-Network-ID header. P1 then routes the REGISTER request to
+ the Registrar via P2.
+
+ Message sequence for REGISTER using P-Visited-Network-ID header:
+
+ F1 Register UA -> P1
+ REGISTER sip:example.com SIP/2.0
+ Via: SIP/2.0/UDP 192.0.2.4:5060;branch=z9hG4bKnashds7
+ To: sip:user1-business@example.com
+ From: sip:user1-business@example.com;tag=456248
+ Call-ID: 843817637684230998sdasdh09
+ CSeq: 1826 REGISTER
+ Contact: <sip:user1@192.0.2.4>
+
+ In flow F2, proxy P2 adds its own identifier to the
+ P-Visited-Network-ID header.
+
+
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 14]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ F2 Register P1 -> P2
+ REGISTER sip:example.com SIP/2.0
+ Via: SIP/2.0/UDP p1.visited.net;branch=z9hG4bK203igld
+ Via: SIP/2.0/UDP 192.0.2.4:5060;branch=z9hG4bKnashdt8
+ To: sip:user1-personal@example.com
+ From: sip:user1-personal@example.com;tag=346249
+ Call-ID: 2Q3817637684230998sdasdh10
+ CSeq: 1826 REGISTER
+ Contact: <sip:user1@192.0.2.4>
+ P-Visited-Network-ID: "Visited network number 1"
+
+ Finally, in flow F3, proxy P2 decides to insert his own identifier,
+ derived from its own domain name.
+
+ F3 Register P2 -> REGISTRAR
+ REGISTER sip:example.com SIP/2.0
+ Via: SIP/2.0/UDP p2.other.net;branch=z9hG4bK2bndnvk
+ Via: SIP/2.0/UDP p1.visited.net;branch=z9hG4bK203igld
+ Via: SIP/2.0/UDP 192.0.2.4:5060;branch=z9hG4bKnashdt8
+ To: sip:user1-personal@example.com
+ From: sip:user1-personal@example.com;tag=346249
+ Call-ID: 2Q3817637684230998sdasdh10
+ CSeq: 1826 REGISTER
+ Contact: <sip:user1@192.0.2.4>
+ P-Visited-Network-ID: other.net, "Visited network number 1"
+
+4.4 The P-Access-Network-Info header
+
+ This section describes the P-Access-Network-Info header. This header
+ is useful in SIP-based networks that also provide layer 2/layer 3
+ connectivity through different access technologies. SIP User Agents
+ may use this header to relay information about the access technology
+ to proxies that are providing services. The serving proxy may then
+ use this information to optimize services for the UA. For example, a
+ 3GPP UA may use this header to pass information about the access
+ network such as radio access technology and radio cell identity to
+ its home service provider.
+
+ For the purpose of this extension, we define an access network as the
+ network providing the layer 2/layer 3 IP connectivity which in turn
+ provides a user with access to the SIP capabilities and services
+ provided.
+
+ In some cases, the SIP server that provides the user with services
+ may wish to know information about the type of access network that
+ the UA is currently using. Some services are more suitable or less
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 15]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ suitable depending on the access type, and some services are of more
+ value to subscribers if the access network details are known by the
+ SIP proxy which provides the user with services.
+
+ In other cases, the SIP server that provides the user with services
+ may simply wish to know crude location information in order to
+ provide certain services to the user. For example, many of the
+ location based services available in wireless networks today require
+ the home network to know the identity of the cell the user is being
+ served by.
+
+ Some regulatory requirements exist mandating that for cellular radio
+ systems, the identity of the cell where an emergency call is
+ established is made available to the emergency authorities.
+
+ The SIP server that provides services to the user may desire
+ knowledge about the access network. This is achieved by defining a
+ new private SIP extension header, P-Access-Network-Info. This header
+ carries information relating to the access network between the UAC
+ and its serving proxy in the home network.
+
+4.4.1 Applicability Statement for the P-Access-Network-Info header
+
+ This mechanism is appropriate in environments where SIP services are
+ dependent on SIP elements knowing details about the IP and lower
+ layer technologies used by a UA to connect to the SIP network.
+ Specifically, the extension requires that the UA know the access
+ technology it is using, and that a proxy desires such information to
+ provide services. Generally, SIP is built on the "Everything over IP
+ and IP over everything" principle, where the access technology is not
+ relevant for the operation of SIP. Since SIP systems generally
+ should not care or even know about the access technology, this SIP
+ extension is not for general SIP usage.
+
+ The information revealed in the P-Access-Network-Info header is
+ potentially very sensitive. Proper protection of this information
+ depends on the existence of specific business and security
+ relationships amongst the proxies that will see SIP messages
+ containing this header. It also depends on explicit knowledge of the
+ UA of the existence of those relationships. Therefore, this
+ mechanism is only suitable in environments where the appropriate
+ relationships are in place, and the UA has explicit knowledge that
+ they exist.
+
+
+
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 16]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+4.4.2 Usage of the P-Access-Network-Info header
+
+ When a UA generates a SIP request or response which it knows is going
+ to be securely sent to its SIP proxy that is providing services, the
+ UA inserts a P-Access-Network-Info header into the SIP message. This
+ header contains information on the access network that the UA is
+ using to get IP connectivity. The header is typically ignored by
+ intermediate proxies between the UA and the SIP proxy that is
+ providing services. The proxy providing services can inspect the
+ header and make use of the information contained there to provide
+ appropriate services, depending on the value of the header. Before
+ proxying the request onwards, this proxy strips the header from the
+ message.
+
+4.4.2.1 UA behavior
+
+ A UA that supports this extension and is willing to disclose the
+ related parameters MAY insert the P-Access-Network-Info header in any
+ SIP request or response.
+
+ The UA inserting this information MUST trust the proxy that is
+ providing services to protect its privacy by deleting the header
+ before forwarding the message outside of the proxy's domain. This
+ proxy is typically located in the home network.
+
+ In order to do the deletion of the header, there must also be a
+ transitive trust in intermediate proxies between the UA and the proxy
+ that provides the services. This trust is established by business
+ agreements between the home network and the access network, and
+ generally supported by the use of standard security mechanisms, e.g.,
+ IPsec, AKA, and TLS.
+
+4.4.2.2 Proxy behavior
+
+ A proxy MUST NOT insert or modify the value of the
+ P-Access-Network-Info header.
+
+ A proxy which is providing services to the UA, may act upon any
+ information present in the P-Access-Network-Info header value, if is
+ present, to provide a different service depending on the network or
+ the location through which the UA is accessing the server. For
+ example, for cellular radio access networks the SIP proxy located in
+ the home network may use the cell ID to provide basic localized
+ services.
+
+ A proxy that provides services to the user, the proxy typically
+ located in the home network, and therefore trusted, MUST delete the
+ header when the SIP signaling is forwarded to a SIP server located in
+
+
+
+Garcia-Martin, et. al. Informational [Page 17]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ a non-trusted administrative network domain. The SIP server
+ providing services to the UA uses the access network information and
+ is of no interest to other proxies located in different
+ administrative domains.
+
+4.5 The P-Charging-Function-Addresses header
+
+ 3GPP has defined a distributed architecture that results in multiple
+ network entities becoming involved in providing access and services.
+ There is a need to inform each SIP proxy involved in a transaction
+ about the common charging functional entities to receive the
+ generated charging records or charging events.
+
+ The solution provided by 3GPP is to define two types of charging
+ functional entities: Charging Collection Function (CCF) and Event
+ Charging Function (ECF). CCF is used for off-line charging (e.g.,
+ for postpaid account charging). ECF is used for on-line charging
+ (e.g., for pre-paid account charging). There may be more than a
+ single instance of CCF and ECF in a network, in order to provide
+ redundancy in the network. In case there are more than a single
+ instance of either the CCF or the ECF addresses, implementations
+ SHOULD attempt sending the charging data to the ECF or CCF address,
+ starting with the first address of the sequence (if any) in the
+ P-Charging-Function-Addresses header. The CCF and ECF addresses may
+ be passed during the establishment of a dialog or in a standalone
+ transaction. More detailed information about charging can be found
+ in 3GPP TS 32.200 [16] and 3GPP TS 32.225 [17].
+
+ We define the SIP private header P-Charging-Function-Addresses. A
+ proxy MAY include this header, if not already present, in either the
+ initial request or response for a dialog, or in the request and
+ response of a standalone transaction outside a dialog. Only one
+ instance of the header MUST be present in a particular request or
+ response.
+
+ The mechanisms by which a SIP proxy collects the values to populate
+ the P-Charging-Function-Addresses header values are outside the scope
+ of this document. However, as an example, a SIP proxy may have
+ preconfigured these addresses, or may obtain them from a subscriber
+ database.
+
+4.5.1 Applicability Statement for the P-Charging-Function-Addresses
+ header
+
+ The P-Charging-Function-Addresses header is applicable within a
+ single private administrative domain where coordination of charging
+ is required, for example, according to the architecture specified in
+ 3GPP TS 32.200 [16].
+
+
+
+Garcia-Martin, et. al. Informational [Page 18]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ The P-Charging-Function-Addresses header is not included in a SIP
+ message sent outside of the own administrative domain. The header is
+ not applicable if the administrative domain does not provide a
+ charging function.
+
+ The P-Charging-Function-Addresses header is applicable whenever the
+ following circumstances are met:
+
+ 1. A UA sends a REGISTER or dialog-initiating request (e.g., INVITE)
+ or a standalone transaction request outside a dialog to a proxy
+ located in the administrative domain of a private network.
+
+ 2. A registrar, proxy or UA that is located in the administrative
+ domain of the private network wants to generate charging records.
+
+ 3. A registrar, proxy or UA that is located in the private network
+ has access to the addresses of the charging function entities for
+ that network.
+
+ 4. There are other proxies located in the same administrative domain
+ of the private network, that are generated charging records or
+ charging events. The proxies want to send, by means outside SIP,
+ the charging information to the same charging collecting entities
+ than the first proxy.
+
+4.5.2 Usage of the P-Charging-Function-Addresses header
+
+ A SIP proxy that receives a SIP request may insert a
+ P-Charging-Function-Addresses header prior to forwarding the request,
+ if the header was not already present in the SIP request. The header
+ value contains one or more parameters that contain the hostnames or
+ IP addresses of the nodes that are willing to receive charging
+ information.
+
+ A SIP proxy that receives a SIP request that includes a
+ P-Charging-Function-Addresses may use the hostnames or IP addresses
+ included in the value, as the destination of charging information or
+ charging events. The means to send those charging information or
+ events are outside the scope of this document, and usually, do not
+ use SIP for that purpose.
+
+4.5.2.1 Procedures at the UA
+
+ This document does not specify any procedure at the UA, with regard
+ to the P-Charging-Function-Addresses header. UAs need not understand
+ this header.
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 19]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ However, it might be possible that a UA is located within the
+ administrative domain of a private network (e.g., a PSTN gateway, or
+ conference mixer), and it may have access to the addresses of the
+ charging entities. In this cases, a UA MAY insert the
+ P-Charging-Function-Addresses header in a SIP request or response
+ when the next hop for the message is a proxy located in the same
+ administrative domain.
+
+4.5.2.2 Procedures at the Proxy
+
+ A SIP proxy that supports this extension and receives a request or
+ response without the P-Charging-Function-Addresses MAY insert a
+ P-Charging-Function-Addresses header prior to forwarding the message.
+ The header is populated with a list of the addresses of one or more
+ charging entities where the proxy should send charging related
+ information.
+
+ If a proxy that supports this extension receives a request or
+ response with the P-Charging-Function-Addresses, it may retrieve the
+ information from the header value to use with application specific
+ logic, i.e., charging. If the next hop for the message is within the
+ administrative domain of the proxy, then the proxy SHOULD include the
+ P-Charging-Function-Addresses header in the outbound message.
+ However, if the next hop for the message is outside the
+ administrative domain of the proxy, then the proxy MUST remove the
+ P-Charging-Function-Addresses header.
+
+4.5.2.3 Examples of Usage
+
+ We present example in the context of the scenario presented in the
+ following network diagram:
+
+ Scenario UA1 --- P1 --- P2 --- UA2
+
+ In the scenario we assume that P1 and P2 belong to the same
+ administrative domain.
+
+ The example below 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:
+
+
+
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 20]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ F1 Invite UA1 -> P1
+ INVITE sip:ua2@home1.net SIP/2.0
+ Via: SIP/2.0/UDP 192.0.2.4:5060;branch=z9hG4bKnashds7
+ To: sip:ua2@home1.net
+ From: sip:ua1@home1.net;tag=456248
+ Call-ID: 843817637684230998sdasdh09
+ CSeq: 18 INVITE
+ Contact: sip:ua1@192.0.2.4
+
+ F2 Invite P1 -> P2
+ INVITE sip:ua2@home1.net SIP/2.0
+ Via: SIP/2.0/UDP p1.home1.net:5060;branch=z9hG4bK34ghi7ab04
+ Via: SIP/2.0/UDP 192.0.2.4:5060;branch=z9hG4bKnashds7
+ To: sip:ua2@home1.net
+ From: sip:ua1home1.net;tag=456248
+ Call-ID: 843817637684230998sdasdh09
+ CSeq: 18 INVITE
+ Contact: sip:ua1@192.0.2.4
+ P-Charging-Function-Addresses: ccf=192.1.1.1; ccf=192.1.1.2;
+ ecf=192.1.1.3; ecf=192.1.1.4
+
+ Now both P1 and P2 are aware of the IP addresses of the entities that
+ collect charging record or charging events. Both proxies can send
+ the charging information to the same entities.
+
+4.6 The P-Charging-Vector header
+
+ 3GPP has defined a distributed architecture that results in multiple
+ network entities becoming involved in providing access and services.
+ Operators need the ability and flexibility to charge for the access
+ and services as they see fit. This requires coordination among the
+ network entities (e.g., SIP proxies), which includes correlating
+ charging records generated from different entities that are related
+ to the same session.
+
+ The correlation information includes, but it is not limited to, a
+ globally unique charging identifier that makes easy the billing
+ effort.
+
+ A charging vector is defined as a collection of charging information.
+ The charging vector may be filled in during the establishment of a
+ dialog or standalone transaction outside a dialog. The information
+ inside the charging vector may be filled in by multiple network
+ entities (including SIP proxies) and retrieved by multiple network
+ entities. There are three types of correlation information to be
+ transferred: the IMS Charging Identity (ICID) value, the address of
+ the SIP proxy that creates the ICID value, and the Inter Operator
+ Identifiers (IOI).
+
+
+
+Garcia-Martin, et. al. Informational [Page 21]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ ICID is a charging value that identifies a dialog or a transaction
+ outside a dialog. It is used to correlate charging records. ICID
+ MUST be a globally unique value. One way to achieve globally
+ uniqueness is to generate the ICID using two components: a locally
+ unique value and the host name or IP address of the SIP proxy that
+ generated the locally unique value.
+
+ The IOI identifies both the originating and terminating networks
+ involved in a SIP dialog or transaction outside a dialog. 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., UMTS radio access network or IEEE 802.11b). The details of
+ the information for each type of network are not described in this
+ memo.
+
+ We define the SIP private header P-Charging-Vector. A proxy MAY
+ include this header, if not already present, in either the initial
+ request or response for a dialog, or in the request and response of a
+ standalone transaction outside a dialog. Only one instance of the
+ header MUST be present in a particular request or response.
+
+ The mechanisms by which a SIP proxy collects the values to populate
+ in the P-Charging-Vector are outside the scope of this document.
+
+4.6.1 Applicability Statement for the P-Charging-Vector header
+
+ The P-Charging-Vector header is applicable within a single private
+ administrative domain or between different administrative domains
+ where there is a trust relationship between the domains.
+
+ The P-Charging-Vector header is not included in a SIP message sent to
+ another network if there is no trust relationship. The header is not
+ applicable if the administrative domain manages charging in a way
+ that does not require correlation of records from multiple network
+ entities (e.g., SIP proxies).
+
+ The P-Charging-Vector header is applicable whenever the following
+ circumstances are met:
+
+ 1. A UA sends a REGISTER or dialog-initiating request (e.g., INVITE)
+ or a standalone transaction request outside a dialog to a proxy
+ located in the administrative domain of a private network.
+
+ 2. A registrar, proxy or UA that is located in the administrative
+ domain of the private network wants to generate charging records.
+
+
+
+Garcia-Martin, et. al. Informational [Page 22]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ 3. A proxy or UA that is located in the administrative domain of the
+ private network has access to the charging correlation information
+ for that network.
+
+ 4. Optionally, a registrar, proxy or UA that is part of a second
+ administrative domain in another private network, whose SIP
+ request and responses are traversed through, en-route to the first
+ private network, wants to generate charging records and correlate
+ those records with those of the first private network. This
+ assumes that there is a trust relationship between both private
+ networks.
+
+4.6.2 Usage of the P-Charging-Vector header
+
+ The P-Charging-Vector header is used to convey charging related
+ information, such as the globally unique IMS charging identifier
+ (ICID) value.
+
+ Typically, a SIP proxy that receives a SIP request that does not
+ contain a P-Charging-Vector header may insert it, with those
+ parameters that are available at the SIP proxy.
+
+ A SIP proxy that receives a SIP request that contains a
+ P-Charging-Vector header may use the values, such as the globally
+ unique ICID, to produce charging records.
+
+4.6.2.1 Procedures at the UA
+
+ This document does not specify any procedure at the UA, with regard
+ to the P-Charging-Vector header. UAs need not understand this
+ header.
+
+4.6.2.2 Procedures at the Proxy
+
+ A SIP proxy that supports this extension and receives a request or
+ response without the P-Charging-Vector header MAY insert a
+ P-Charging-Vector header prior to forwarding the message. The header
+ is populated with one ore more parameters, as described in the
+ syntax, including but not limited to, a globally unique charging
+ identifier.
+
+ If a proxy that supports this extension receives a request or
+ response with the P-Charging-Vector header, it may retrieve the
+ information from the header value to use with application specific
+ logic, i.e., charging. If the next hop for the message is within the
+ trusted domain, then the proxy SHOULD include the P-Charging-Vector
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 23]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ header in the outbound message. If the next hop for the message is
+ outside the trusted domain, then the proxy MAY remove the
+ P-Charging-Function-Addresses header.
+
+ Per local application specific logic, the proxy MAY modify the
+ contents of the P-Charging-Vector header prior to sending the
+ message.
+
+4.6.2.3 Examples of Usage
+
+ We present example in the context of the scenario presented in the
+ following network diagram:
+
+ 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-Vector:
+
+ F1 Invite UA1 -> P1
+ INVITE sip:joe@example.com SIP/2.0
+ Via: SIP/2.0/UDP 192.0.2.4:5060;branch=z9hG4bKnashds7
+ To: sip:joe@example.com
+ From: sip:ua1@home1.net;tag=456248
+ Call-ID: 843817637684230998sdasdh09
+ CSeq: 18 INVITE
+ Contact: sip:ua1@192.0
+
+ F2 Invite P1 -> P2
+ INVITE sip:joe@example.com SIP/2.0
+ Via: SIP/2.0/UDP P1.home1.net:5060;branch=z9hG4bK34ghi7a
+ Via: SIP/2.0/UDP 192.0.2.4:5060;branch=z9hG4bKnashds7
+ To: sip:joe@example.com
+ From: sip:ua1@home1.net;tag=456248
+ Call-ID: 843817637684230998sdasdh09
+ CSeq: 18 INVITE
+ Contact: sip:ua1@192.0.2.4
+ P-Charging-Vector: icid-value=1234bc9876e;
+ icid-generated-at=192.0.6.8;
+ orig-ioi=home1.net
+
+
+
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 24]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+5. Formal Syntax
+
+ All of the mechanisms specified in this document are described in
+ both prose and an augmented Backus-Naur Form (BNF) defined in RFC
+ 2234 [3]. 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.
+
+5.1 P-Associated-URI header syntax
+
+ The syntax of the P-Associated-URI header is described as follows:
+
+ P-Associated-URI = "P-Associated-URI" HCOLON
+ (p-aso-uri-spec)
+ *(COMMA p-aso-uri-spec)
+ p-aso-uri-spec = name-addr *(SEMI ai-param)
+ ai-param = generic-param
+
+5.2 P-Called-Party-ID header syntax
+
+ The syntax of the P-Called-Party-ID header is described as follows:
+
+ P-Called-Party-ID = "P-Called-Party-ID" HCOLON
+ called-pty-id-spec
+ called-pty-id-spec = name-addr *(SEMI cpid-param)
+ cpid-param = generic-param
+
+5.3 P-Visited-Network-ID header syntax
+
+ The syntax of the P-Visited-Network-ID header is described as
+ follows:
+
+ P-Visited-Network-ID = "P-Visited-Network-ID" HCOLON
+ vnetwork-spec
+ *(COMMA vnetwork-spec)
+ vnetwork-spec = (token / quoted-string)
+ *(SEMI vnetwork-param)
+ vnetwork-param = generic-param
+
+5.4 P-Access-Network-Info header syntax
+
+ The syntax of the P-Access-Network-Info header is described as
+ follows:
+
+ P-Access-Network-Info = "P-Access-Network-Info" HCOLON
+ access-net-spec
+ access-net-spec = access-type *(SEMI access-info)
+
+
+
+Garcia-Martin, et. al. Informational [Page 25]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ access-type = "IEEE-802.11a" / "IEEE-802.11b" /
+ "3GPP-GERAN" / "3GPP-UTRAN-FDD" /
+ "3GPP-UTRAN-TDD" /
+ "3GPP-CDMA2000" / token
+ access-info = cgi-3gpp / utran-cell-id-3gpp /
+ extension-access-info
+ extension-access-info = gen-value
+ cgi-3gpp = "cgi-3gpp" EQUAL
+ (token / quoted-string)
+ utran-cell-id-3gpp = "utran-cell-id-3gpp" EQUAL
+ (token / quoted-string)
+
+ The access-info may contain additional information relating to the
+ access network. The values for "cgi-3gpp" and "utran-cell-id-3gpp"
+ are defined in 3GPP TS 24.229 [15].
+
+5.5 P-Charging-Function-Addresses header syntax
+
+ The syntax for the P-Charging-Function-Addresses header is described
+ as follows:
+
+ P-Charging-Addr = "P-Charging-Function-Addresses" HCOLON
+ charge-addr-params
+ *(SEMI charge-addr-params)
+ charge-addr-params = ccf / ecf / generic-param
+ ccf = "ccf" EQUAL gen-value
+ ecf = "ecf" EQUAL gen-value
+
+5.6 P-Charging-Vector header syntax
+
+ The syntax for the P-Charging-Vector header is described as
+ follows:
+
+ P-Charging-Vector = "P-Charging-Vector" HCOLON icid-value
+ *(SEMI charge-params)
+ charge-params = icid-gen-addr / orig-ioi /
+ term-ioi / generic-param
+ icid-value = "icid-value" EQUAL gen-value
+ icid-gen-addr = "icid-generated-at" EQUAL host
+ orig-ioi = "orig-ioi" EQUAL gen-value
+ term-ioi = "term-ioi" EQUAL gen-value
+
+ The P-Charging-Vector contains icid-value mandatory parameter. The
+ icid-value represents the IMS charging ID, and contains an identifier
+ used for correlating charging records and events. The first proxy
+ that receives the request generates this value.
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 26]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ The icid-gen-addr parameter contains the host name or IP address of
+ the proxy that generated the icid-value.
+
+ The orig-ioi and term-ioi parameters represent, respectively, the
+ originating and terminating interoperator identifiers. They are used
+ to correlate charging records between different operators. The
+ originating ioi represents the network responsible for the charging
+ records in the originating part of the session or standalone request.
+ Similarly, the terminating ioi represents the network responsible for
+ the charging records in the terminating part of the session or
+ standalone request.
+
+5.7 Table of new headers
+
+ Table 1 extends the headers defined in this document to Table 2 in
+ SIP [1], section 7.1 of the SIP-specific event notification [6],
+ tables 1 and 2 in the SIP INFO method [8], tables 1 and 2 in
+ Reliability of provisional responses in SIP [7], tables 1 and 2 in
+ the SIP UPDATE method [9], tables 1 and 2 in the SIP extension for
+ Instant Messaging [10], and table 1 in the SIP REFER method [11]:
+
+ Header field where proxy ACK BYE CAN INV OPT REG
+ ___________________________________________________________
+ P-Associated-URI 2xx - - - - - o
+ P-Called-Party-ID R amr - - - o o -
+ P-Visited-Network-ID R ad - - - o o o
+ P-Access-Network-Info dr - o - o o o
+ P-Charging-Vector admr - o - o o o
+ P-Charging-Function- adr - o - o o o
+ Addresses
+
+ Header field SUB NOT PRA INF UPD MSG REF
+ ___________________________________________________________
+ P-Associated-URI - - - - - - -
+ P-Called-Party-ID o - - - - o o
+ P-Visited-Network-ID o - - - - o o
+ P-Access-Network-Info o o o o o o o
+ P-Charging-Vector o o o o o o o
+ P-Charging-Function- o o o o o o o
+ Addresses
+
+ Table 1: Header field support
+
+
+
+
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 27]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+6. Security Considerations
+
+6.1 P-Associated-URI
+
+ The information returned in the P-Associated-URI header is not viewed
+ as particularly sensitive. Rather, it is simply informational in
+ nature, providing openness to the UAC with regard to the automatic
+ association performed by the registrar. If end-to-end protection is
+ not used at the SIP layer, it is possible for proxies between the
+ registrar and the UA to modify the contents of the header value.
+ This attack, while potentially annoying, should not have significant
+ impacts.
+
+ The lack of encryption, either end-to-end or hop-by-hop, may lead to
+ leak some privacy regarding the list of authorized identities. For
+ instance, a user who registers an address-of-record of
+ sip:user1@example.com may get another SIP URI associated as
+ sip:first.last@example.com returned in the P-Associated-URI header
+ value. An eavesdropper could collect this information. If the user
+ does not want to disclose the associated URIs, the eavesdropper could
+ have gain access to private URIs. Therefore it is RECOMMENDED that
+ this extension is used in a secured environment, where encryption of
+ SIP messages is provided either end-to-end or hop-by-hop.
+
+6.2 P-Called-Party-ID
+
+ Due to the nature of the P-Called-Party-ID header, this header does
+ not introduce any significant security concern. It is possible for
+ an attacker to modify the contents of the header. However, this
+ modification will not cause any harm to the session establishment.
+
+ An eavesdropper may collect the list of identities a user is
+ registered. This may have privacy implications. To mitigate this
+ problem, this extension SHOULD only be used in a secured environment,
+ where encryption of SIP messages is provided either end-to-end or
+ hop-by-hop.
+
+6.3 P-Visited-Network-ID
+
+ The P-Visited-Network-ID header assumes that there is trust
+ relationship between a home network and one or more transited visited
+ networks. It is possible for other proxies between the proxy in the
+ visited network that inserts the header, and the registrar or the
+ home proxy, to modify the value of P-Visited-Network-ID header.
+ Therefore intermediaries participating in this mechanism MUST apply a
+ hop-by-hop integrity protection mechanism such us IPsec or other
+ available mechanisms in order to prevent such attacks.
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 28]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+6.4 P-Access-Network-Info
+
+ A Trust Domain is formally defined in the Short term requirements for
+ Network Asserted Identity [13] document. For the purpose of this
+ document, we refer to the 3GPP trust domain as the collection of SIP
+ proxies and application servers that are operated by a 3GPP network
+ operator and are compliant with the requirements expressed in 3GPP TS
+ 24.229 [15].
+
+ This extension assumes that the access network is trusted by the UA
+ (because the UA's home network has a trust relationship with the
+ access network), as described earlier in this document.
+
+ This extension assumes that the information added to the header by
+ the UAC should be sent only to trusted entities and should not be
+ used outside of the trusted administrative network domain.
+
+ The SIP proxy that provides services to the user, utilizes the
+ information contained in this header to provide additional services
+ and UAs are expected to provide correct information. However, there
+ are no security problems resulting from a UA inserting incorrect
+ information. Networks providing services based on the information
+ carried in the P-Access-Network-Info header will therefore need to
+ trust the UA sending the information. A rogue UA sending false
+ access network information will do no more harm than to restrict the
+ user from using certain services.
+
+ The mechanism provided in this document is designed primarily for
+ private systems like 3GPP. Most security requirements are met by way
+ of private standardized solutions.
+
+ For instance, 3GPP will use the P-Access-Network-Info header to carry
+ relatively sensitive information like the cell ID. Therefore the
+ information MUST NOT be sent outside of the 3GPP domain.
+
+ The UA is aware - if it is a 3GPP UA - that it is operating within a
+ trusted domain.
+
+ The 3GPP UA is aware of whether or not a secure association to the
+ home network domain for transporting SIP signaling, is currently
+ available, and as such the sensitive information carried in the
+ P-Access-Network-Info header SHOULD NOT be sent in any initial
+ unauthenticated and unprotected requests (e.g., REGISTER).
+
+ Any UA that is using this extension and is not part of a private
+ trusted domain should not consider the mechanism as secure and as
+ such SHOULD NOT send sensitive information in the
+ P-Access-Network-Info header.
+
+
+
+Garcia-Martin, et. al. Informational [Page 29]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ Any proxy that is operating in a private trust domain where the
+ P-Access-Network-Info header is supported is required to delete the
+ header, if it is present, from any message prior to forwarding it
+ outside of the trusted domain.
+
+ Therefore, a network that requires its UA to send information in the
+ P-Access-Network-Info header must ensure that either that information
+ is not of a sensitive nature or that the information is not sent
+ outside of the trust domain.
+
+ A proxy receiving a message containing the P-Access-Network-Info
+ header from a non-trusted entity is not able to guarantee the
+ validity of the contents.
+
+6.5 P-Charging-Function-Addresses
+
+ It is expected as normal behavior that proxies within a closed
+ network will modify the values of the P-Charging-Function-Addresses
+ and insert it into a SIP request or response. However, these proxies
+ that share this information MUST have a trust relationship.
+
+ If an untrusted entity were inserted between trusted entities, it
+ could potentially substitute a different charging function address.
+ Therefore, an integrity protection mechanism such as IPsec or other
+ available mechanisms MUST be applied in order to prevent such
+ attacks. Since each trusted proxy may need to view or modify the
+ values in the P-Charging-Function-Addresses header, the protection
+ should be applied on a hop-by-hop basis.
+
+6.6 P-Charging-Vector
+
+ It is expected as normal behavior that proxies within a closed
+ network will modify the values of the P-Charging-Vector and insert it
+ into a SIP request or response. However, these proxies that share
+ this information MUST have a trust relationship.
+
+ If an untrusted entity were inserted between trusted entities, it
+ could potentially interfere with the charging correlation mechanism.
+ Therefore, an integrity protection mechanism such as IPsec or other
+ available mechanisms MUST be applied in order to prevent such
+ attacks. Since each trusted proxy may need to view or modify the
+ values in the P-Charging-Vector header, the protection should be
+ applied on a hop-by-hop basis.
+
+7. IANA Considerations
+
+ This document defines several private SIP extension header fields
+ (beginning with the prefix "P-" ).
+
+
+
+Garcia-Martin, et. al. Informational [Page 30]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ These extension headers have been included in the registry of SIP
+ header fields defined in SIP [1]. Expert review as required for this
+ process was provided by the SIP Working Group.
+
+ The following extensions are registered as private extension header
+ fields:
+
+ RFC Number: RFC3455
+ Header Field Name: P-Associated-URI
+ Compact Form: none
+
+
+ RFC Number: RFC3455
+ Header Field Name: P-Called-Party-ID
+ Compact Form: none
+
+
+ RFC Number: RFC3455
+ Header Field Name: P-Visited-Network-ID
+ Compact Form: none
+
+
+ RFC Number: RFC3455
+ Header Field Name: P-Access-Network-Info
+ Compact Form: none
+
+
+ RFC Number: RFC3455
+ Header Field Name: P-Charging-Function-Addresses
+ Compact Form: none
+
+
+ RFC Number: RFC3455
+ Header Field Name: P-Charging-Vector
+ Compact Form: none
+
+8. Contributors
+
+ The extensions described in this document were originally specified
+ in several documents. Miguel Garcia-Martin authored the
+ P-Associated-URI, P-Called-Party-ID, and P-Visited-Network-ID
+ headers. Duncan Mills authored the P-Access-Network-Info header.
+ Eric Henrikson authored the P-Charging-Function-Addresses and
+ P-Charging-Vector headers. Rohan Mahy assisted in the incorporation
+ of these extensions into a single document.
+
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 31]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+9. Acknowledgments
+
+ The authors would like to thank Andrew Allen, Gabor Bajko, Gonzalo
+ Camarillo, Keith Drage, Georg Mayer, Dean Willis, Rohan Mahy,
+ Jonathan Rosenberg, Ya-Ching Tan and the 3GPP CN1 WG members for
+ their comments on this document.
+
+10. Normative References
+
+ [1] 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.
+
+ [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
+ Levels", BCP 14, RFC 2119, March 1997.
+
+ [3] Crocker, D. and P. Overell, "Augmented BNF for Syntax
+ Specifications: ABNF", RFC 2234, November 1997.
+
+11. Informative References
+
+ [4] Garcia-Martin, M., "3rd-Generation Partnership Project (3GPP)
+ Release 5 requirements on the Session Initiation Protocol
+ (SIP)", Work in Progress.
+
+ [5] 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.
+
+ [6] Roach, A., "Session Initiation Protocol (SIP)-Specific Event
+ Notification", RFC 3265, June 2002.
+
+ [7] Rosenberg, J. and H. Schulzrinne, "Reliability of Provisional
+ Responses in Session Initiation Protocol (SIP)", RFC 3262, June
+ 2002.
+
+ [8] Donovan, S., "The SIP INFO Method", RFC 2976, October 2000.
+
+ [9] Rosenberg, J., "The Session Initiation Protocol (SIP) UPDATE
+ Method", RFC 3311, October 2002.
+
+ [10] Campbell, B., Editor, Rosenberg, J., Schulzrinne, H., Huitema,
+ C. and D. Gurle, "Session Initiation Protocol (SIP) Extension
+ for Instant Messaging", RFC 3428, December 2002.
+
+ [11] Sparks, R., "The SIP Refer Method", Work in Progress.
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 32]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+ [12] Barnes, M., "SIP Generic Request History Capability
+ Requirements", Work in Progress.
+
+ [13] Watson, M., "Short Term Requirements for Network Asserted
+ Identity", RFC 3324, November 2002.
+
+ [14] 3GPP, "TS 23.228: IP Multimedia Subsystem (IMS); Stage 2
+ (Release 5)", 3GPP 23.228, September 2002, <ftp://ftp.3gpp.org/
+ Specs/archive/23_series/23.228/>.
+
+ [15] 3GPP, "TS 24.229: IP Multimedia Call Control Protocol based on
+ SIP and SDP; Stage 3 (Release 5)", 3GPP 24.229, September 2002,
+ <ftp://ftp.3gpp.org/Specs/archive/24_series/24.229/>.
+
+ [16] 3GPP, "TS 32.200: Telecommunication Management; Charging
+ management; Charging principles (Release 5)", 3GPP 32.200, June
+ 2002, <ftp://ftp.3gpp.org/Specs/archive/32_series/32.200/>.
+
+ [17] 3GPP, "TS 32.225: Telecommunication Management; Charging
+ management; Charging Data Description for IP Multimedia
+ Subsystem (Release 5)", 3GPP 32.225, September 2002, <ftp://
+ ftp.3gpp.org/Specs/archive/32_series/32.225/>.
+
+Authors' Addresses
+
+ Miguel A. Garcia-Martin
+ Ericsson
+ Hirsalantie 11
+ Jorvas FIN-02420
+ Finland
+ EMail: miguel.a.garcia@ericsson.com
+
+ Eric Henrikson
+ Lucent
+ 11601 Willows Rd, Suite 100
+ Redmond, WA 98052
+ USA
+ EMail: ehenrikson@lucent.com
+
+ Duncan Mills
+ Vodafone
+ The Courtyard, 2-4 London Road
+ Newbury, Berkshire RG14 1JX
+ UK
+ EMail: duncan.mills@vf.vodafone.co.uk
+
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 33]
+
+RFC 3455 3GPP SIP P-Header Extensions January 2003
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (2003). 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.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Garcia-Martin, et. al. Informational [Page 34]
+