<?xml version="1.0" encoding="iso-8859-1"?>
<!-- comment -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes" ?>
<?rfc compact="yes" ?>
<?rfc sortrefs="no" ?>
<rfc category="info"
     docName="draft-mohali-dispatch-originating-cdiv-parameter-02"
     ipr="trust200902" submissionType="IETF" updates="5502" xml:lang="en">
  <front>
    <title abbrev="orig-cdiv session case">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 abbrev="Orange">Orange</organization>

      <address>
        <postal>
          <street>Orange Gardens, 44 avenue de la République</street>

          <city>Chatillon</city>

          <region/>

          <code>92326</code>

          <country>France</country>
        </postal>

        <email>marianne.mohali@orange.com</email>
      </address>
    </author>

    <date day="27" month="September" year="2016"/>

    <area>Transport</area>

    <keyword>5502</keyword>

    <keyword>P-</keyword>

    <keyword>3GPP</keyword>

    <keyword>IMS</keyword>

    <abstract>
      <t>This specification defines a new Session Initiation Protocol (SIP)
      P-Served-User header field parameter, "orig-cdiv-param", which defines
      the session case used by a proxy when handling an originating session
      after Call Diversion (CDIV) services has been invoked for the served
      user. The P-Served-User header field is defined in RFC5502. The
      P-Served-User header field conveys the identity of the served user and
      the session case that applies to this particular communication session
      and application invocation.<vspace/>This document updates RFC5502 in
      order to add the originating after CDIV session case.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <section title="General">
        <t>The P-Served-User header field was defined in <xref
        target="RFC5502"/> to address an issue that was found in the 3rd
        Generation Partnership Project (3GPP) IMS (IP Multimedia Subsystem)
        between an S-CSCF (Serving Call Session Control Function) and an AS
        (Application Server) on the ISC (IMS Service Control) interface. For
        more information on the IMS, a detailed description can be found in
        <xref target="TS.3GPP.24.229"/>.<vspace/>This header field conveys the
        identity of the served user and the session case that applies to this
        particular communication session and application
        invocation.<vspace/><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.<vspace/> The generic-param of the P-Served-User is
        extended by the "orig-cdiv-param" created as a new parameter for this
        Originating_CDIV session case.<vspace blankLines="1"/> The following
        section defines the orig-cdiv-param P-Served-User header field
        parameter usage, Section 2 specifies the proxy behavior for the new
        header field parameter handling, and Section 3 discusses the
        applicability and scope of this new header field parameter. Section 4
        descibes the Syntax, Section 5 registers the orig-cdiv header field
        parameter with the IANA, and Section 6 discusses the security
        properties of the environment where this new header field parameter is
        intended to be used.</t>
      </section>

      <section title="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 allocated 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 allocated to that user.<vspace blankLines="1"/> At the
        moment that an S-CSCF is allocated for a specific user, a user profile
        is downloaded to the S-CSCF from the HSS (Home Subscriber Server), see
        <xref target="TS.3GPP.29.228"/>.<vspace blankLines="1"/>To be able to
        determine which responsibilities the S-CSCF and the Application Server
        haves to perform and on which user&rsquo;s behalf, it is necessary to
        know in which situation is the session and who is the current served
        user.<xref target="RFC5502"/> defines the originating and terminating
        session cases.<vspace blankLines="1"/>In the case of a call diversion
        service, the received request is first considered as a terminating
        session case and the terminating iFC configured in the S-CSCF are
        performed. Receiving the call initiation request, the Application
        Server is able to determine the served user 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, the Application Server changes the target (Request-URI) of
        the session and a new call leg is created. This new call leg could be
        considered as an originating call leg but this is not the case.
        Indeed, the originating user remains the same and the diverting
        user&rsquo;s originating services do not have to be triggered as if it
        was an originating call. For instance, the originating user identity
        should not be hidden because the diverting user has a privacy service
        for his/her own identity. In the same manner, some specific services
        may be triggered when performing a call diversion that would not be
        for a normal originating call.<vspace/> For this particular use case,
        this document created a new parameter to be embedded in the
        P-Served-User header field.</t>
      </section>
    </section>

    <section title="Proxy behavior and parameter handling">
      <t>The orig-cdiv-param header filed parameter can be used inside a trust
      domain by proxies that are processing call diversion services. The
      following section illustrates how this header field parameter can be
      used in a 3GPP network.<vspace blankLines="1"/>For a terminating call,
      when receiving the initial INVITE request, the S-CSCF will determines
      that the session case is for a terminating user as described in <xref
      target="RFC5502"/>, then it determines the served user by looking at the
      Request-URI and saves this Request-URI. Then, the S-CSCF starts the iFC
      processing and triggers the served user Application Server for the
      terminating services to be executed.<vspace blankLines="1"/>Based on
      some criteria, the diversion service concludes that the request needs to
      be diverted to another user or application and the received Request-URI
      is replaced with the new diverted-to address. The Application Server
      stores the Request-URI(s) by adding one or two new History-Info header
      field entry(ies) <xref target="RFC7044"/>. The served user address is
      tagged thanks to the mp-param header field parameter added in the
      History-Info entry associated to the diverted-to address created.
      <vspace/>Then the AS forwards the INVITE request back to the S-CSCF.
      <vspace blankLines="1"/>When the S-CSCF receives the INVITE, it can see
      that the topmost Route header field contains its own hostname but the
      Request-URI does not match the saved Request-URI. In that case, the
      S-CSCF updates the P-Served-User header field content by removing both
      "sescase" and "regstate" header field parameters and inserting the
      "orig-cdiv" header field parameter.<vspace blankLines="1"/>Then the
      procedure would continue forwarding the INVITE request over to an AS
      that hosts the originating services of the served user that specifically
      need to be executed on the forwarded leg after a call diversion service.
      <vspace blankLines="1"/>When the AS receives the INVITE request, it
      determines that the session case is for "orig-cdiv" session case and
      will perform the originating services to be executed after retargeting
      for the served user.</t>
    </section>

    <section title="Applicability">
      <t>The use of the P-Served-User header field extensions is only
      applicable inside a Trust Domain for served user. 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 title="Syntax">
      <section title="General">
        <t>The orig-cdiv-param parameter is defined as an instance of
        generic-param from the current served-user-param component of
        P-Served-User header field.<vspace blankLines="1"/>Following is a
        reminder of the P-Served-User syntax as defined in <xref
        target="RFC5502"/>: <vspace blankLines="1"/></t>

        <figure>
          <artwork> 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"
 registration-state-param = "regstate" EQUAL "unreg" / "reg"</artwork>
        </figure>

        <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"/>.<vspace/>The existing P-Served-User header field
        ABNF syntax is extended as follows:<vspace blankLines="1"/></t>

        <figure>
          <artwork>   served-user-param        =/ orig-cdiv-param

   orig-cdiv-param          = "orig-cdiv"
</artwork>
        </figure>

        <t>The following is an example of a P-Served-User header field:
        <vspace blankLines="1"/>P-Served-User: &lt;sip:user@example.com&gt;;
        orig-cdiv; regstate=reg</t>
      </section>
    </section>

    <section title="IANA Considerations">
      <t>This specification defines a new P-Served-User header field parameter
      called orig-cdiv-param in the "Header Field Parameters and Parameter
      Values" sub-registry as per the registry created by <xref
      target="RFC3968"/>.<vspace/>The syntax is defined in Section 4. <vspace
      blankLines="1"/>The required information is:<vspace blankLines="1"/></t>

      <figure>
        <artwork align="center">    Header Name            References
    --------------      ------------------
    P-Served-User       [RFC5502][RFCXXXX]
 </artwork>
      </figure>

      <t>Note to RFC Editor: Please replace XXXX with the RFC number of this
      document.</t>
    </section>

    <section title="Security Considerations">
      <t>The security considerations in <xref target="RFC5502"/> apply.<vspace
      blankLines="1"/>As the orig-cdiv-param P-Served-User header field
      parameter can be used to trigger applications, it is important to ensure
      that the parameter has not been added to the SIP message by an
      unauthorized SIP entity.</t>
    </section>

    <section title="Acknowledgments">
      <t>TBD</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <reference anchor="RFC3261">
        <front>
          <title>SIP: Session Initiation Protocol</title>

          <author/>

          <date month="June" year="2002"/>
        </front>

        <seriesInfo name="RFC" value="3261"/>
      </reference>

      <reference anchor="RFC3968">
        <front>
          <title>The Internet Assigned Number Authority (IANA) Header Field
          Parameter Registry for the Session Initiation Protocol (SIP)</title>

          <author/>

          <date month="December" year="2004"/>
        </front>

        <seriesInfo name="RFC" value="3968"/>
      </reference>

      <reference anchor="RFC5234">
        <front>
          <title>Augmented BNF for Syntax Specifications: ABNF</title>

          <author/>

          <date month="January" year="2008"/>
        </front>

        <seriesInfo name="RFC" value="5234"/>
      </reference>

      <reference anchor="RFC7044">
        <front>
          <title>An Extension to the Session Initiation Protocol (SIP) for
          Request History Information</title>

          <author/>

          <date month="February" year="2014"/>
        </front>

        <seriesInfo name="RFC" value="7044"/>
      </reference>
    </references>

    <references title="Informative References">
      <reference anchor="RFC5502">
        <front>
          <title>The SIP P-Served-User Private-Header (P-Header) for the 3GPP
          IP Multimedia (IM) Core Network (CN) Subsystem</title>

          <author/>

          <date month="April" year="2009"/>
        </front>

        <seriesInfo name="RFC" value="5502"/>
      </reference>

      <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>
