<?xml version="1.0" encoding="iso-8859-1"?>
<!-- comment -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC0822 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3261 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3261.xml">
<!ENTITY RFC3311 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3261.xml">
<!ENTITY RFC4028 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4028.xml">
<!ENTITY RFC4320 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4320.xml">
<!ENTITY RFC4321 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4321.xml">
]>

<?rfc toc="yes" ?>
<?rfc compact="yes" ?>
<?rfc sortrefs="no" ?>
<rfc category="info" docName="draft-ietf-sipcore-originating-cdiv-parameter-06"
     ipr="pre5378Trust200902" 
	 updates="5502" 
	 submissionType="IETF" 
	 xml:lang="en">
  <front>
    <title abbrev="P-Served-User parameter orig-cdiv">A P-Served-User Header Field
    Parameter for Originating CDIV session case in Session Initiation Protocol
    (SIP)</title>

    <author fullname="Marianne Mohali" initials="M.M." surname="Mohali">
      <organization>Orange</organization>
      <address>
        <postal>
          <street>Orange Gardens, 44 avenue de la Republique</street>
          <city>Chatillon</city>
          <region/>
          <code>92326</code>
          <country>France</country>
        </postal>
        <email>marianne.mohali@orange.com</email>
      </address>
    </author>

    <date day="05" month="November" year="2018"/>

    <area>Transport</area>
    <workgroup>SIPCORE Working Group</workgroup>
    <keyword>SIP</keyword>
    <keyword>RFC5502</keyword>
    <keyword>P-</keyword>
    <keyword>3GPP</keyword>
    <keyword>IMS</keyword>
	<keyword>Served-User</keyword>
	<keyword>orig-cdiv</keyword>

    <abstract>
		<t>
		The	P-Served-User header field is used to convey the 
		identity of the served user	and	the session case that applies to this 
		particular communication session and application invocation.
		This document updates RFC5502 by defining a new P-Served-User header 
		field parameter, "orig-cdiv".  
		The parameter conveys the session case used by a proxy when handling 
		an originating session	after Call Diversion (CDIV) services have been 
		invoked for the served user.
		This document also fixes the ABNF in RFC 5502 and provides more guidance
		for using the P-Served-User header field in IP networks.
		</t>
    </abstract>
  </front>
  <middle>
    <section title="Introduction">
      <section title="General">
        <t>
		The P-Served-User header field <xref target="RFC5502"/> was defined
		based on a requirement from 3rd Generation Partnership 
		Project (3GPP) IMS (IP Multimedia Subsystem) in order to convey the 
		identity of the served user, his/her registration state and the session
		case between an Serving Call Session Control Function (S-CSCF) and an 
		Application Server (AS) on the IMS Service Control (ISC) interface. A 
		session case is metadata that captures the status of the session of a
		served user: whether the served user is registered or not, and whether 
		the session originates or terminates with the served user. For more 
		information on session cases and the IMS, a detailed description can be 
		found in <xref target="TS.3GPP.24.229"/>.  
		</t>
		<t>
		<xref target="RFC5502"/> defines the originating and terminating 
		session cases for a registered or unregistered user.
        This document extends the P-Served-User header field to include the
        session case for a forwarded leg when a call diversion service (CDIV)
        has been invoked and if an originating service of the diverting user 
		has to be triggered.
		</t>
		<t>
		The sessioncase-param parameter of the P-Served-User header field is 
		extended with the "orig-cdiv" parameter for this "originating after 
		CDIV" session case. 
		</t>
		<t>
		The following section defines usage of the "orig-cdiv" parameter of 
		P-Served-User header field, Section 3 discusses the applicability and 
		scope of this new header field parameter, and <xref target="sect.prox"/> 
		specifies the proxy behavior for handling the new header field parameter. 
		<xref target="sect.proc"/> clarifies some of the <xref target="RFC5502"/> 
		procedures, <xref target="sect.syn"/> describes the extended syntax 
		and corrects the syntax of <xref target="RFC5502"/>, <xref target="sect.iana"/> 
		registers the P-Served-User header field parameters with IANA, 
		<xref target="sect.cf"/> gives some examples, and <xref target="sect.secu"/> 
		discusses the security properties of the environment where this new 
		header field parameter is intended to be used.
		</t>
      </section>
	  
      <section title="Basic Use Case">
        <t>
		In the 3GPP IMS (IP Multimedia Subsystem), the S-CSCF (Serving CSCF) 
		is a SIP proxy that serves as a registrar and handles originating and 
		terminating session states for users assigned to it.
        This means that any call that is originated by a specific user or any
        call that is terminated to that specific user will pass through the
        S-CSCF that is assigned to that user.
		</t>
		<t>
		At the moment that an S-CSCF is assigned to a specific user, the 
		user profile is downloaded from the Home Subscriber Server (HSS) to 
		this S-CSCF, see <xref target="TS.3GPP.29.228"/>. The user profile 
		contains the list of actions to be taken by the S-CSCF for the served 
		user depending on the session direction (originating or terminating)
		and the user state (registered or not) in the IMS network. With this 
		user profile, the S-CSCF determines the current case and applies the
		corresponding actions such as forwarding the request to an AS.
		The AS then goes through a similar process of determining who is the 
		current served user, what is his/her "registration state", and what 
		is the "session case" of the session. <xref target="RFC5502"/> defines 
		all those parameters and in particular the originating and terminating
		session cases.
		</t>
		<t>
		In basic call scenarios, there is no particular issue for the S-CSCF and 
		AS to know which scenario needs to be realized, but in case of call 
		diversion services for which the session is re-targeted, the session 
		cases defined in <xref target="RFC5502"/> pose some limitations as 
		described in the following section.
		</t>
	  </section>
	  
	  <section title="Problem Statement">
		<t>
		To illustrate the problem statement, let's imagine Alice trying to call Bob 
		and Bob having a call diversion service activated towards Carol's address.
		In the case of a call diversion service, the received request is first
		treated as a terminating session case (at Bob side), and the terminating filter 
		criteria configured in the S-CSCF are performed. A filter criteria is 
		information in the user profile that determines whether an initial 
		request is sent to a particular AS. When the AS receives 
		the call initiation request, the AS is able to determine the served user (Bob)
		and the session case (here "term") from the received P-Served-User header 
		field content and to execute terminating services. When the call 
		diversion service is executed (as a terminating service of Bob), the AS changes 
		the target (Request-URI) of the session (toward Carol's address) and a new call 
		leg is created. The served user becomes the diverting user.
		This new call leg could be considered as an originating call leg from 
		the diverting user (Bob) but this is not the case. Indeed, the originating 
		user remains the same (Alice), and some of the diverting user's originating 
		services should not be triggered as if it was an originating call. For
		instance, the originating user identity (Alice) should not be restricted 
		because the diverting user (Bob) has a privacy service for his own 
		identity. The privacy of the diverting user should apply to information 
		related to this user only (eg. in the History-Info header field). In the 
		same manner, some specific services will need to be triggered on the 
		outgoing leg after a call diversion.
		Without a dedicated session case for originating after CDIV, the S-CSCF
		cannot trigger an originating service for the diverting user, nor can 
		an AS execute the procedures for this particular session case.  
		</t>
		<t>
		For this use case, this document creates a new parameter for the 
		originating after CDIV session case to be embedded in the 
		P-Served-User header field.
		</t>
      </section>
    </section>
	<section title="Conventions and Terminology">
        <t>
        The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
        NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
        "MAY", and "OPTIONAL" in this document are to be interpreted as
        described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
        when, and only when, they appear in all capitals, as shown here.
		</t>
    </section>
	
	<section title="Applicability">
		<t>
		The use of the P-Served-User header field extensions is only applicable 
		inside a Trust Domain <xref target="RFC3324"/> for the P-Served-User header 
		field. Nodes in such a Trust Domain explicitly trust each other to convey
		the served user and to be responsible for withholding that information 
		outside of the Trust Domain. The means by which the network determines 
		the served user and the policies that are executed for a specific served
		user is outside the	scope of this document.
		</t>
    </section>
	
    <section anchor="sect.prox" title="Proxy behavior and parameter handling">
		<t>
		The	following section illustrates how this header field parameter can 
		be	used in a 3GPP network.
		</t>
		<t>
		For a terminating call, the following steps will be followed:
		<list style="numbers">
			<t>
			The S-CSCF receives the initial INVITE request for a terminating 
			call and determines that the session case is for a terminating 
			user as described in <xref target="RFC5502"/>;
			</t>
			<t>
			The S-CSCF determines who is the served user by looking at the 
			Request-URI and saves the current Request-URI;
			</t>
			<t>
			The S-CSCF analyzes the filter criteria. It then sends the request 
			to the AS of the served user as an INVITE that includes the 
			P-Served-User header field with the "sescase" parameter set to 
			"term" and the "regstate" set to the corresponding value in order 
			to trigger execution of terminating services;
			</t>
			<t>
			Based on some criteria, the AS concludes that the request has to
			be diverted to another target user or application. The AS replaces 
			the received Request-URI with the new diverted-to address and 
			the AS stores the successive Request-URI(s) values by adding one 
			or two History-Info header field entry(ies) <xref target="RFC7044"/> 
			in the outgoing INVITE. In the History-Info header field, the 
			served user address is tagged using the mp-param header field 
			parameter added in entry associated to the diverted-to address 
			created. The AS forwards the INVITE request back to the S-CSCF;
			</t>
			<t>
			When receiving back the INVITE request, the S-CSCF can see that the 
			topmost Route header field contains its own hostname but the 
			Request-URI does not match the saved Request-URI. In this case, the 
			S-CSCF updates the P-Served-User header field content by replacing 
			the "sescase" parameter with the "orig-cdiv" parameter. The 
			P-Served-User header field value remains unchanged;
			</t>
			<t>
			The S-CSCF forwards the INVITE request to an AS that hosts the 
			originating services of the served user (diverting user) that 
			need to be executed on the forwarded leg after a call 
			diversion service;
			</t>
			<t>
			When the AS receives the INVITE request, it	determines that the 
			session case is for "orig-cdiv" session case and performs the 
			originating services to be executed after retargeting for the 
			diverting user (i.e. served user).
			</t>
        </list>
		</t>
    </section>
	
	<section anchor="sect.proc" title="Clarification of RFC5502 procedures">
		<t>
		This document provides the following guidance for the handling of 
		the P-Served-User header field that are missing in <xref target="RFC5502"/>:
		<list hangIndent="0" style="symbols">
            <t>
			The P-Served-User header field MUST NOT be repeated within a request for a 
			particular session at a particular time for the reason that 
			session cases are mutually exclusive. This document updates <xref target="RFC5502"/> 
			to clearly state that the P-Served-User header field MUST NOT contain 
			multiple values either comma-separated or header-separated. This 
			documents also updates the syntax of the header from <xref target="RFC5502"/> 
			to reflect this uniqueness of parameters values.
			</t>
            <t>
			<xref target="RFC5502"/> does not clearly state what to do with 
			the received P-Served-User header field when a call is diverted to 
			another destination. This document highlights that there are several 
			ways of handling the P-Served-User header field: the S-CSCF could 
			store the previous "regstate" value and decide that the same value
			applies; or the "regstate" may no longer be relevant after a 
			diverting service so the S-CSCF removes it; or the regstate could 
			be combined with the orig-cdiv session case to provide different 
			services depending on whether the served user is registered or 
			unregistered. These choices are implementation dependent.
			</t>
        </list>
		</t>
    </section>

    <section anchor="sect.syn" title="Syntax">
      <section title="General">
        <t>
		<xref target="RFC5502"/> defines the P-Served-User header field with 
		the sessioncase-param parameter "sescase" which is specified as having
		"orig" and "term" predefined values. This document defines an 
		additional parameter for the sessioncase-param: "orig-cdiv".
		</t>
		<t>
		Because this document extends the existing sessioncase-param
		parameter, and because errors have been identified in
		the syntax, this document corrects and extends the
		P-Served-User header field.
		</t>
		<t>
		The extension of the sessioncase-param parameter to add the 
		"orig-cdiv" session case is done in a way to fit the parameter format
		introduced in Release 11 of the 3GPP <xref target="TS.3GPP.24.229"/> 
		and to maintain a backward compatibility.
		</t>
        <t>
		"EQUAL", "HCOLON", "SEMI", "name-addr", "addr-spec", and
		"generic-param" are defined in <xref target="RFC3261"/>.
		</t>
      </section>

      <section title="ABNF">
        <t>
		The augmented Backus-Naur Form (ABNF) <xref target="RFC5234"/>
        syntax of the P-Served-User header field is described in <xref
        target="RFC5502"/>.
		</t>
		<t>
		This document updates <xref target="RFC5502"/> to correct the 
		P-Served-User header field ABNF syntax and extend it as following: 
		</t>
        <figure>
			<artwork><![CDATA[
 P-Served-User            = "P-Served-User" HCOLON PServedUser-value
                            *(SEMI served-user-param)
 served-user-param        = sessioncase-param
                            / registration-state-param
                            / generic-param
 PServedUser-value        = name-addr / addr-spec
 sessioncase-param        = "sescase" EQUAL ("orig"/"term")/ orig-cdiv
 registration-state-param = "regstate" EQUAL ("unreg" / "reg")
 orig-cdiv                = "orig-cdiv"
 ]]> 
			</artwork>
        </figure>
		<t>
		Examples of possible P-Served-User header field:
        </t>
		<figure>
			<artwork><![CDATA[
P-Served-User: <sip:user@example.com>; orig-cdiv; regstate=reg
or
P-Served-User: <sip:user@example.com>; orig-cdiv
or
P-Served-User: <sip:user@example.com>; sescase=term; regstate=unreg
 ]]> 
			</artwork>
		</figure>
		<t>
		This document allows choosing between addr-spec and name-addr when
		constructing the header field value. As specified in RFC 8217,
		the "addr-spec" form MUST NOT be used if its value would contain
		a comma, semicolon, or question mark <xref target="RFC8217"/>.
		</t>
      </section>
    </section>

    
    <section anchor="sect.cf" title="Call Flow Examples">
		<section title="Call diversion case">
		<t>
		The following call flow shows a session establishment when Alice
		calls Bob, who has a call diversion service that diverts to Carol
		when Bob is busy.
		</t>
		<figure>
			<artwork align="center" xml:space="preserve"><![CDATA[     
                  proxy           server            UA         
Alice    Bob's...S-CSCF-B..........AS-B.............Bob            Carol  
  |                |                |                |                |
  |   INVITE F1    |                |                |                |
  |--------------->|   INVITE F2    |                |                |
  |                |--------------->|                |                |
  |                |   INVITE F3    |                |                |
  |                |<---------------|  INVITE F4     |                |
  |                |-------------------------------->|                |
  |                |                486   F5         |                |  
  |                |<--------------------------------|                | 
  |                |    486   F6    |                |                |
  |                |--------------->|                |                |
  |                |   INVITE F7    |                |                | 
  |                |<---------------|                |                |
  |                |   INVITE F8    |                |                |
  |                |--------------->|                |                |
  |                |   INVITE F9    |                |                |
  |                |<---------------|      INVITE F10                 |
  |                |------------------------------------------------->|
  |                |                |                |                |
  |                |                |                |    180   F11   |
  |                |                |    180   F12   |<---------------|
  |                |    180   F13   |<---------------|                |
  |    180   F14   |<---------------|                |                |
  |<---------------|                |                |                |
  |                |                |                |                |

[Alice calls Bob]

   F1 INVITE Alice -> S-CSCF-B
   INVITE sip:bob@example.com SIP/2.0
	From: Alice <sip:alice@domaina.com>;tag=1928301774
	To: Bob <sip:bob@example.com>

   F2 INVITE S-CSCF-B -> AS-B
   INVITE sip:bob@example.com SIP/2.0
	From: Alice <sip:alice@domaina.com>;tag=1928301774
	To: Bob <sip:bob@example.com>
	P-Served-User: <sip:bob@example.com>; term; regstate=reg

   F3 INVITE AS-B -> S-CSCF-B
   INVITE sip:bob@example.com SIP/2.0
	From: Alice <sip:alice@domaina.com>;tag=1928301774
	To: Bob <sip:bob@example.com>
	P-Served-User: <sip:bob@example.com>; term; regstate=reg
	
   F4 INVITE S-CSCF-B -> Bob
   INVITE sip:bob@192.0.2.4 SIP/2.0
	From: Alice <sip:alice@domaina.com>;tag=1928301774
	To: Bob <sip:bob@example.com>
	P-Served-User: <sip:bob@example.com>; term; regstate=reg
 
[Bob is busy. His call diversion when busy is invoked towards Carol]

   F5-F6 486 BUSY Bob -> S-CSCF-B  -> AS-B
   486 BUSY
    From: Alice <sip:alice@domaina.com>;tag=1928301774
	To: Bob <sip:bob@example.com>;tag=es43sd

[Alice's call is diverted to Carol]

   F7 INVITE AS-B -> S-CSCF-B
   INVITE sip:carol@domainc.com SIP/2.0
	From: Alice <sip:alice@domaina.com>;tag=1928301774
	To: Bob <sip:bob@example.com>
	P-Served-User: <sip:bob@example.com>; term; regstate=reg

[Forwarded leg to Carol is identified as an originating call after
diversion that should not trigger all Bob's originating services]
  
   F8 INVITE S-CSCF-B -> AS-B
   INVITE sip:carol@domainc.com SIP/2.0
	From: Alice <sip:alice@domaina.com>;tag=1928301774
	To: Bob <sip:bob@example.com>
	P-Served-User: <sip:bob@example.com>; orig-cdiv; regstate=reg

   F9 INVITE AS-B -> S-CSCF-B
   INVITE sip:carol@domainc.com SIP/2.0
	From: Alice <sip:alice@domaina.com>;tag=1928301774
	To: Bob <sip:bob@example.com>
	P-Served-User: <sip:bob@example.com>; orig-cdiv; regstate=reg
	
   F10 INVITE S-CSCF-B -> Carol
   INVITE sip:carol@192.0.2.7 SIP/2.0
	From: Alice <sip:alice@domaina.com>;tag=1928301774
	To: Bob <sip:bob@example.com>
		
             Figure 1: P-Served-User during call diversion service
]]>
			</artwork>
		</figure>
	</section>
	<section title="Call diversion and privacy">
		<t>
		The following call flow shows a call diversion use case for which 
		Alice has no identity restriction service and Bob has an unconditional
		call diversion service towards Carol and an identity presentation 
		restriction service.
		</t>
		<figure>
			<artwork align="center" xml:space="preserve"><![CDATA[   
                  proxy           server            UA         
Alice    Bob's...S-CSCF-B..........AS-B.............Bob            Carol  
  |                |                |                |                |
  |   INVITE F1    |                |                |                |
  |--------------->|   INVITE F2    |                |                |
  |                |--------------->|                |                |
  |                |   INVITE F3    |                |                | 
  |                |<---------------|                |                |
  |                |   INVITE F4    |                |                |
  |                |--------------->|                |                |
  |                |   INVITE F5    |                |                |
  |                |<---------------|      INVITE F6 |                |
  |                |------------------------------------------------->|
  |                |                |                |                |
  |                |                |                |    180   F7    |
  |                |                |    180   F8    |<---------------|
  |                |    180   F9    |<---------------|                |
  |    180   F10   |<---------------|                |                |
  |<---------------|                |                |                |
  |                |                |                |                |

[Alice calls Bob]

   F1 INVITE Alice -> S-CSCF-B
   INVITE sip:bob@example.com SIP/2.0
	From: Alice <sip:alice@domaina.com>;tag=1928301774
	To: Bob <sip:bob@example.com>
	Supported: histinfo
		
   F2 INVITE S-CSCF-B -> AS-B
   INVITE sip:bob@example.com SIP/2.0
	From: Alice <sip:alice@domaina.com>;tag=1928301774
	To: Bob <sip:bob@example.com>
	P-Served-User: <sip:bob@example.com>; term; regstate=reg

[Bob's unconditional call diversion to Carol is triggered]

   F3 INVITE AS-B -> S-CSCF-B
   INVITE sip:carol@domainc.com SIP/2.0
	From: Alice <sip:alice@domaina.com>;tag=1928301774
	To: Carol <sip:carol@domainc.com>
	P-Served-User: <sip:bob@example.com>; term; regstate=reg
	History-Info:
		<sip:bob@example.com>;index=1, 
		<sip:carol@domainc.com;cause=302>;index=1.1;mp=1

[Alice's call is diverted to Carol]	

   F4 INVITE S-CSCF-B -> AS-B
   INVITE sip:carol@domainc.com SIP/2.0
	From: Alice <sip:alice@domaina.com>;tag=1928301774
	To: Carol <sip:carol@domainc.com>
	P-Served-User: <sip:bob@example.com>; orig-cdiv; regstate=reg
	History-Info:
		<sip:bob@example.com>;index=1, 
		<sip:carol@domainc.com;cause=302>;index=1.1;mp=1

   F5 INVITE AS-B -> S-CSCF-B
   INVITE sip:carol@domainc.com SIP/2.0
	From: Alice <sip:alice@domaina.com>;tag=1928301774
	To: Carol <sip:carol@domainc.com>
	P-Served-User: <sip:bob@example.com>; orig-cdiv; regstate=reg
	History-Info:
		<sip:bob@example.com?privacy=history>;index=1, 
		<sip:carol@domainc.com;cause=302>;index=1.1;mp=1

[Forwarded leg to Carol is identified as an originating call after
diversion that allows to apply Bob's privacy request to his identity 
within the Histroy-Info header field]
  
   F6 INVITE S-CSCF-B -> Carol
   INVITE sip:carol@192.0.2.7 SIP/2.0
	From: Alice <sip:alice@domaina.com>;tag=1928301774
	To: Carol <sip:carol@domainc.com>
	History-Info:
		<sip:bob@example.com?privacy=history>;index=1, 
		<sip:carol@domainc.com;cause=302>;index=1.1;mp=1
		<sip:carol@192.0.2.7>;index=1.1.1;rc=1.1
    
            Figure 2: P-Served-User when privacy requested
]]>
				</artwork>
			</figure>
		</section>
    </section>
	<section anchor="sect.iana" title="IANA Considerations">
		<t>
		The syntax of the P-Served-User header field <xref
        target="RFC5502"/> is updated in Section 4 of this document. 
		</t>
		<t>
		This document requests IANA to update the existing row for the 
		P-Served-User header field in the "Header Fields" sub-registry 
		within the "Session Initiation Protocol (SIP) Parameters" registry:
		</t>
	  	<figure>
			<artwork align="center"><![CDATA[
   Header Name        Compact Form        Reference
  -------------       ------------     ----------------
  P-Served-User         none          [RFC5502][RFCXXXX]

Note to RFC Editor: Please replace XXXX with the RFC number of this 
document.			
]]>
			</artwork>
		</figure>
		<t>
		This document requests IANA to add new rows for the	P-Served-User 
		header field parameters in the "Header Field Parameters and Parameter
		Values" sub-registry within the "Session Initiation Protocol (SIP) 
		Parameters" registry: as per the registry created by <xref
		target="RFC3968"/>:
		</t>
		<figure>
			<artwork align="center"><![CDATA[
 Header Field   Parameter Name    Predefined Values      Reference
--------------  ----------------  -----------------  ----------------- 
P-Served-User     sescase              Yes           [RFC5502]
P-Served-User     regstate             Yes           [RFC5502]
P-Served-User     orig-cdiv            No            [RFCXXXX] 
		
Note to RFC Editor: Please replace XXXX with the RFC number of this	
document.
]]>
			</artwork>
		</figure>
    </section>
	
    <section anchor="sect.secu" title="Security Considerations">
		<t>
		The security considerations in <xref target="RFC5502"/> apply.
		</t>
		<t>
		As the "orig-cdiv" parameter of P-Served-User header field can be 
		used to trigger applications when a call is diverted , it is important
		to ensure that the parameter has not been added to the SIP message by
		an unauthorized SIP entity. Thus, the P-Served-User header field is to 
		be used in a trusted environment and proxies MUST NOT insert the header
		unless they have sufficient knowledge that the route set includes another 
		trusted proxy.
		</t>
    </section>

    <section title="Acknowledgments">
		<t>
		The author wishes to thank the 3GPP community for providing guidance,
		input, and comments on the document. Thanks to Dale Worley, Jean Mahoney 
		and Ben Campbell for their careful review of the document. Thanks to 
		Paul Kyzivat and Adam Roach. A special thanks to Christer Holmberg.
		</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
		<?rfc include="reference.RFC.2119"?>
		<?rfc include="reference.RFC.3324"?>
		<?rfc include="reference.RFC.3261"?>
		<?rfc include="reference.RFC.8174"?>
		<?rfc include="reference.RFC.8217"?>
		<?rfc include="reference.RFC.3968"?>
		<?rfc include="reference.RFC.5234"?>
		<?rfc include="reference.RFC.7044"?>
		<?rfc include="reference.RFC.5502"?>
	</references>
	
	<references title="Informative References">
		<reference anchor="TS.3GPP.24.229">
			<front>
			<title>IP multimedia call control protocol based on Session
			Initiation Protocol (SIP) and Session Description Protocol
			(SDP);Stage 3</title>
			<author>
            <organization>3GPP</organization>
			</author>
			<date/>
			</front>
			<seriesInfo name="3GPP TS" value="24.229 v11"/>
			<format target="http://www.3gpp.org/ftp/Specs/html-info/24229.htm"
                type="HTML"/>
		</reference>
		<reference anchor="TS.3GPP.29.228">
			<front>
			<title>IP Multimedia (IM) Subsystem Cx and Dx interfaces; Signalling
			flows and message contents</title>
			<author>
            <organization>3GPP</organization>
			</author>
			<date/>
			</front>
			<seriesInfo name="3GPP TS" value="29.228 v11"/>
			<format target="http://www.3gpp.org/ftp/Specs/html-info/29228.htm"
                type="HTML"/>
		</reference>
    </references>
  </back>
</rfc>
