<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119   PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC5012   PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5012.xml">
<!ENTITY RFC6881   PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6881.xml">
<!ENTITY RFC5069   PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5069.xml">
<!ENTITY RFC5031   PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5031.xml">
<!ENTITY RFC7303   PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7303.xml">
<!ENTITY RFC6838   PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6838.xml">
<!ENTITY RFC6086   PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6086.xml">
<!ENTITY RFC6443   PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6443.xml">
<!ENTITY RFC7378 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7378.xml">
<!ENTITY RFC7852 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7852.xml">
<!ENTITY RFC7090   PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7090.xml">
<!ENTITY RFC3688   PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3688.xml">
<!ENTITY RFC5226   PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
<!ENTITY I-D.ietf-ecrit-car-crash PUBLIC "" "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-ecrit-car-crash.xml">
]>

<?rfc inline="yes"?>
<?rfc toc="yes" ?>
<?rfc tocdepth="4" ?> 
<?rfc symrefs="yes" ?>
<?rfc iprnotified="no" ?>
<?rfc strict="no" ?>
<?rfc compact="no" ?>
<?rfc sortrefs="yes" ?>
<!-- <?rfc colonspace='yes' ?> --> 

<rfc category="std" ipr="trust200902" docName="draft-ietf-ecrit-ecall-20.txt">
<front>
    <title abbrev="Next-Generation eCall">Next-Generation Pan-European eCall</title>

    <author initials="R." surname="Gellens" fullname="Randall Gellens">
      <organization>Core Technology Consulting</organization>
      <address>
        <email>rg+ietf@randy.pensive.org</email>
      </address>
    </author>

    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
            <organization>Individual</organization>
            <address>
                <email>Hannes.Tschofenig@gmx.net</email>
                <uri>http://www.tschofenig.priv.at</uri>
            </address>
    </author>

    <date year="2016"/>
    <area>Applications and Real-Time (ART)</area>
    <workgroup>ECRIT</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>
      <t>This document describes how to use IP-based emergency services mechanisms to support the next generation of the pan European in-vehicle emergency call service defined under the eSafety initiative of the European Commission (generally referred to as "eCall"). eCall is a standardized and mandated system for a special form of emergency calls placed by vehicles, providing real-time communications and an integrated set of related data.</t>

      <t>This document also registers MIME media types and an Emergency Call Additional Data Block for the eCall vehicle data and metadata/control data, and an INFO package to enable carrying this data in INFO requests.</t>  
    </abstract>
</front>

<middle>


<section anchor="terminology" title="Terminology">
      <t>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
          <xref target="RFC2119"/>. </t>
      <t>This document re-uses terminology defined in Section 3 of <xref
          target="RFC5012"/>.</t>
      <t>Additionally, we use the following abbreviations:</t>

        <texttable anchor="abbreviations"
                   style="full"
                   suppress-title="true">
            <ttcol align='left'>Term</ttcol>
            <ttcol align='left'>Expansion</ttcol>
            <c>3GPP</c> <c>3rd Generation Partnership Project</c>
            <c>CEN</c> <c>European Committee for Standardization</c>
            <c>EENA</c> <c>European Emergency Number Association</c> 
            <c>ESInet</c> <c>Emergency Services IP network</c>
            <c>IMS</c> <c>IP Multimedia Subsystem</c>
            <c>IVS</c> <c>In-Vehicle System</c>
            <c>MNO</c> <c>Mobile Network Operator</c>
            <c>MSD</c> <c>Minimum Set of Data</c>
            <c>PSAP</c> <c>Public Safety Answering Point</c>
        </texttable>


</section> <!-- anchor="terminology" -->


<section anchor="scope" title="Document Scope">
        <t>This document is focused on the signaling, data exchange, and protocol needs of next-generation eCall (NG-eCall, also referred to as packet-switched eCall or all-IP eCall) within the SIP framework for emergency calls (as described in <xref target="RFC6443"/> and <xref target="RFC6881"/>).  eCall itself is specified by 3GPP (3rd Generation Partnership Project) and CEN (European Committee for Standardization) and these specifications include far greater scope than is covered here.</t>
        <t>The eCall service operates over cellular wireless communication, but this document does not address cellular-specific details, nor client domain selection (e.g., circuit-switched versus packet-switched).  All such aspects are the purview of their respective standards bodies.  The scope of this document is limited to eCall operating within a SIP-based environment (e.g., 3GPP IMS Emergency Calling <xref target="TS23.167"/>).</t>
        <t>The technical contents of this document also provide a basis for reuse and extension for related emergency call systems (which is why there are extension points), but such reuse is a topic for other documents.</t> 

    <t>Note that vehicles designed for multiple regions might need to support eCall and other Advanced Automatic Crash Notification (AACN) systems (such as described in <xref target="I-D.ietf-ecrit-car-crash"/>), but this is out of scope of this document.</t>
</section> <!-- anchor="scope" -->


<section anchor="intro" title="Introduction">

      <t>Emergency calls made from vehicles (e.g., in the event of a crash) assist in significantly reducing road deaths and injuries by allowing emergency services to be aware of the incident, the state of the vehicle, the location of the vehicle, and to have a voice channel with the vehicle occupants.  This enables a quick and appropriate response.</t>
        
        <t>The European Commission initiative of eCall was conceived in the late 1990s, and has evolved to a European Parliament decision requiring the implementation of a compliant in-vehicle system (IVS) in new vehicles and the deployment of eCall in the European Member States in the very near future.  Other regions are developing eCall-compatible systems.</t>
        
        <t>The pan-European eCall system provides a standardized and mandated mechanism for emergency calls by vehicles.  eCall establishes procedures for such calls to be placed by in-vehicle systems, recognized and processed by the mobile network, and routed to a specialized PSAP where the vehicle data is available to assist the call taker in assessing and responding to the situation.  eCall provides a standard set of vehicle, sensor (e.g., crash related), and location data.</t>

      <t>An eCall can be either user-initiated or automatically triggered.  Automatically triggered eCalls indicate a car crash or some other serious incident.  Manually triggered eCalls might be reports of witnessed crashes or serious hazards.  PSAPs might apply specific operational handling to manual and automatic eCalls.</t>

    <t>Legacy eCall is standardized (by 3GPP <xref target="SDO-3GPP" /> and CEN <xref target="CEN" />) as a 3GPP circuit-switched call  over GSM (2G) or UMTS (3G).  Flags in the call setup mark the call as an eCall, and further indicate if the call was automatically or manually triggered.  The call is routed to an eCall-capable PSAP, a voice channel is established between the vehicle and the PSAP, and an eCall in-band modem is used to carry a defined set of vehicle, sensor (e.g., crash related), and location data (the Minimum Set of Data or MSD) within the voice channel.  The same in-band mechanism is used for the PSAP to acknowledge successful receipt of the MSD, and to request the vehicle to send a new MSD (e.g., to check if the state of or location of the vehicle or its occupants has changed).  NG-eCall moves from circuit switched to all-IP, and carries the vehicle data and eCall signaling as additional data carried with the call.  This document describes how IETF mechanisms for IP-based emergency calls (including <xref target="RFC6443"/> and <xref target="RFC7852"/>) are used to provide the signaling and data exchange of the next generation of pan-European eCall.</t>
    
    <t>The European Telecommunications Standards Institute (ETSI) <xref target="SDO-ETSI" /> has published a Technical Report titled "Mobile Standards Group (MSG); eCall for VoIP" <xref target="MSG_TR" /> that presents findings and recommendations regarding support for eCall in an all-IP environment.  The recommendations include the use of 3GPP IMS emergency calling with additional elements identifying the call as an eCall and as carrying eCall data and with mechanisms for carrying the data and eCall signaling.  3GPP IMS emergency services support multimedia, providing the ability to carry voice, text, and video.  This capability is referred to within 3GPP as Multimedia Emergency Services (MMES).</t>

    <t>A transition period will exist during which time the various entities involved in initiating and handling an eCall might support next-generation eCall, legacy eCall, or both.  The issues of migration and co-existence during the transition period are outside the scope of this document.</t>

      <t>This document indicates how to use IP-based emergency services mechanisms to support next-generation eCall.</t>

      <t>This document also registers MIME media types and an Emergency Call Additional Data Block for the eCall vehicle data (MSD) and metadata/control data, and an INFO package to enable carrying this data in INFO requests.</t>  
    
    <t>The MSD is carried in the MIME type 'application/emergencyCallData.eCall.MSD+per' and the metadata/control block is carried in the MIME type 'application/emergencyCallData.control+xml' (both of which are registered in <xref target="iana"/>)  An INFO package is defined (in <xref target="info"/>) to enable these MIME types to be carried in SIP INFO requests, per <xref target="RFC6086"/>.</t>
    
</section> <!-- anchor="intro" -->

<section anchor="requirements" title="eCall Requirements">

    
    <t>eCall requirements are specified by CEN in <xref target="EN_16072" /> and by 3GPP in <xref target="TS22.101" /> clauses 10.7 and A.27 and <xref target="TS24.229"/> section 4.7.6.  Requirements specific to vehicle data are contained in EN 15722 <xref target="msd"/>.</t>
</section> <!-- anchor="requirements" -->

<section anchor="data" title="Vehicle Data">

<t>Pan-European eCall provides a standardized and mandated set of vehicle related data, known as the Minimum Set of Data (MSD). The European Committee for Standardization (CEN) has specified this data in EN 15722 <xref target="msd"/>, along with both ASN.1 and XML encodings.  Both circuit-switched eCall and this document use the ASN.1 PER encoding, which is specified in Annex A of EN 15722 <xref target="msd"/> (the XML encoding specified in Annex C is not used in this document).</t>

<t>This document registers the 'application/emergencyCallData.eCall.MSD+per' MIME media type to enable the MSD to be carried in SIP.  As an ASN.1 PER encoded object, the data is binary and transported using binary content transfer encoding within SIP messages.  This document also adds the 'eCall.MSD' entry to the Emergency Call Additional Data Blocks registry to enable the MSD to be recognized as such in a SIP-based eCall emergency call.  (See <xref target="RFC7852"/> for more information about the registry and how it is used.)</t>

<t>See <xref target="transport"/> for a discussion of how the MSD vehicle data is conveyed in an NG-eCall.</t>

<!-- 
<t>Should CEN and/or other entities choose to define supplemental or updated sets of data, the steps to enable each data block are very briefly summarized below:

    <?rfc compact="yes" ?>
    <?rfc subcompact="yes"?>
    <list style="symbols">
        <t>A standardized format and encoding (such as XML) is defined and published by a Standards Development Organization (SDO).</t>
        <t>A MIME media type is registered for it (typically under the 'Application' media type and with a sub-type starting with 'emergencyCallData.').</t>
        <t>An entry for the block is added to the Emergency Call Additional Data Blocks sub-registry (established by <xref target="RFC7852"/>); the registry entry is the root of the MIME sub-type (not including the 'emergencyCallData' prefix and any suffix such as '+xml').</t>
    </list>
    <?rfc subcompact="no"?>
    <?rfc compact="yes"?>
</t>
 -->

</section> <!-- title="Vehicle Data" -->

<section anchor="transport" title="Data Transport">

<t><xref target="RFC7852"/> establishes a general mechanism for attaching blocks of data to a SIP emergency call.  This mechanism permits certain emergency call MIME types to be attached to SIP messages.  This document makes use of that mechanism.  This document also registers an INFO package (in <xref target="info"/>) to enable eCall related data blocks to be carried in SIP INFO requests (per <xref target="RFC6086"/>, new INFO usages require the definition of an INFO package).</t>

<t>Note that if other data sets need to be transmitted in the future, the appropriate signalling mechanism for such data needs to be evaluated, including factors such as the size and frequency of such data.</t>

<t>An In-Vehicle System (IVS) transmits an MSD (see <xref target="data"/>) by encoding it per Annex A of EN 15722 <xref target="msd"/> and attaching it to a SIP message as a MIME body part per <xref target="RFC7852"/>. The body part is identified by its MIME media type ('application/emergencyCallData.eCall.MSD+per') in the Content-Type header field of the body part.  The body part is assigned a unique identifier which is listed in a Content-ID header field in the body part.  The SIP message is marked as containing the MSD by adding (or appending to) a Call-Info header field at the top level of the SIP message.  This Call-Info header field contains a CID URL referencing the body part's unique identifier, and a 'purpose' parameter identifying the data as the eCall MSD per the Emergency Call Additional Data Blocks registry entry; the 'purpose' parameter's value is 'emergencyCallData.eCall.MSD'.  Per <xref target="RFC6086"/>, an MSD is carried in a SIP INFO request by using the INFO package defined in <xref target="info"/>.</t>

<t>A PSAP or IVS transmits a metadata/control object (see <xref target="metadata"/>) by encoding it per the description in this document and attaching it to a SIP message as a MIME body part per <xref target="RFC7852"/>. The body part is identified by its MIME media type ('application/emergencyCallData.control+xml') in the Content-Type header field of the body part.  The body part is assigned a unique identifier which is listed in a Content-ID header field in the body part.  The SIP message is marked as containing the metadata/control object by adding (or appending to) a Call-Info header field at the top level of the SIP message.  This Call-Info header field contains a CID URL referencing the body part's unique identifier, and a 'purpose' parameter identifying the data as an eCall metadata/control block per the Emergency Call Additional Data Blocks registry entry; the 'purpose' parameter's value is 'emergencyCallData.control'.  Per <xref target="RFC6086"/>, a metadata/control object is carried in a SIP INFO request by using the INFO package defined in <xref target="info"/>.</t>

<t>An MSD or a metadata/control block is always enclosed in a multipart (normally multipart/mixed) body part (even if it would otherwise be the only body part in the SIP message), since as of the date of this document, the use of Content-ID as a SIP header field is not defined (while it is defined for use as a MIME header field).</t>

<t>A body part containing an MSD or metadata/control object has a Content-Disposition header field value containing "By-Reference".</t>

<t>An In-Vehicle System (IVS) initiating an NG-eCall attaches an MSD to the initial INVITE and optionally attaches a metadata/control object informing the PSAP of its capabilities.  The MSD body part (and metadata/control and PIDF-LO body parts if included) have a Content-Disposition header field with the value "By-Reference; handling=optional".  Specifying "handling=optional" prevents the INVITE from being rejected if it is processed by a legacy element (e.g., a gateway between SIP and circuit-switched environments) that does not understand the MSD (or metadata/control object or PIDF-LO).  The PSAP creates a metadata/control object acknowledging receipt of the MSD and attaches it to the SIP final response to the INVITE.  A metadata/control object is not attached to provisional (e.g., 180) responses.</t>

<t>A PSAP is able to reject a call while indicating that it is aware of the situation by including a metadata/control object acknowledging the MSD and containing "received=true" in a final response using SIP response code 600 (Busy Everywhere), 486 (Busy Here), or 603 (Decline).</t>

<t>If the IVS receives an acknowledgment for an MSD containing "received=false", this indicates that the PSAP was unable to properly decode or process the MSD. The IVS action is not defined (e.g., it might only log an error).  Since the PSAP is able to request an updated MSD during the call, if an initial MSD is unsatisfactory in any way, the PSAP can choose to request another one. </t>

<t>A PSAP can request that the vehicle send an updated MSD during a call (e.g., upon manual request of the PSAP call taker who suspects vehicle state may have changed.)  To do so, the PSAP creates a metadata/control object requesting an MSD and attaches it to a SIP INFO request and sends it within the dialog.  The IVS then attaches an updated MSD to a SIP INFO request and sends it within the dialog.  If the IVS is unable to send an MSD, it instead sends a metadata/control object acknowledging the request with the 'success' parameter set to 'false' and a 'reason' parameter (and optionally a 'details' parameter) indicating why the request could not be accomplished.  Per <xref target="RFC6086"/>, metadata/control objects and MSDs are sent using the INFO package defined in <xref target="info"/> .  In addition, to align with how an MSD or metadata/control block is transmitted in a SIP message other than an INFO request, a Call-Info header field is included in the SIP INFO request to reference the MSD or metadata/control block.  See <xref target="info"/> for information about the use of INFO requests to carry data within an eCall.</t>

<t>The IVS is not expected to send an unsolicited MSD after the initial INVITE.</t>

<t>This document does not mandate support for the data blocks defined in <xref target="RFC7852"/>.</t>


</section> <!-- title="Data Transport" -->

<section anchor="setup" title="Call Setup">

<t>In circuit-switched eCall, the IVS places a special form of a 112 emergency call which carries an eCall flag (indicating that the call is an eCall and also if the call was manually or automatically triggered); the mobile network operator (MNO) recognizes the eCall flag and routes the call to an eCall-capable PSAP; vehicle data is transmitted to the PSAP via the eCall in-band
modem (in the voice channel).</t>
<t>
        <figure anchor="cs-ecall" title="circuit-switched eCall">
          <artwork><![CDATA[
   ///----\\\      112 voice call with eCall flag      +------+
  ||| IVS  |||---------------------------------------->+ PSAP |
   \\\----///   vehicle data via eCall in-band modem   +------+

]]></artwork>
        </figure>
      </t>

<t>For NG-eCall, the IVS establishes an emergency call using a Request-URI indicating a manual or automatic eCall; the MNO (or ESInet) recognizes the eCall URN and routes the call to an NG-eCall capable PSAP; the PSAP interpets the vehicle data sent with the call and makes it available to the call taker.</t>
<t>
        <figure anchor="ng-ecall" title="NG-eCall">
          <artwork><![CDATA[
  ///----\\\     IMS emergency call with eCall URN    +------+
     IVS    ----------------------------------------->+ PSAP |
  \\\----///    vehicle data included in call setup   +------+
]]></artwork>
        </figure>
      </t>

<t>See <xref target="transport"/> for information on how the MSD is transported within an NG-eCall.</t>

   <t>This document registers new service URN children within the "sos" subservice.  These URNs provide the mechanism by which an eCall is identified, and differentiate between manually and automatically triggered eCalls (which might be subject to different treatment, depending on policy). The two service URNs are: urn:service:sos.ecall.automatic and urn:service:sos.ecall.manual, which requests resources associated with an emergency call placed by an in-vehicle system, carrying a standardized set of data related to the vehicle and incident.</t>
   
   <t>Call routing is outside the scope of this document.</t>

</section> <!-- title="Call Setup" -->


<section anchor="test-calls" title="Test Calls">

   <t>eCall requires the ability to place test calls (see <xref target="TS22.101"/> clause 10.7 and <xref target="EN_16062"/> clause 7.2.2).  These are calls that are recognized and treated to some extent as eCalls but are not given emergency call treatment and are not handled by call takers.  The specific handling of test eCalls is not itself standardized; typically, the test call facility allows the IVS or user to verify that an eCall can be successfully established with voice communication.  The IVS might also be able to verify that the MSD was successfully received.</t>
   
   <t>A service URN starting with "test." indicates a test call.  For eCall,
   "urn:service:test.sos.ecall" indicates such a test feature. This functionality is defined in <xref target="RFC6881"/>.</t>
   
   <t>This document registers "urn:service:test.sos.ecall" for eCall test calls.</t>
   
   <t>The CS-eCall test call facility is a non-emergency number so does not get treated as an emergency call.  For NG-eCall, MNOs, emergency authorities, and PSAPs can determine how to treat a vehicle call requesting the "test" service URN so that the desired functionality is tested, but this is outside the scope of this document.</t>

</section> <!-- title="Test Calls" -->


<section anchor="metadata" title="The Metadata/Control Object">
    
    <t>eCall requires the ability for the PSAP to acknowledge successful receipt of an MSD sent by the IVS, and for the PSAP to request that the IVS send an MSD (e.g., the call taker can initiate a request for a new MSD to see if there have been changes in the vehicle's state, e.g., location, direction, number of fastened seatbelts).</t>

    <t>This document defines a block of metadata/control data as an XML structure containing elements used for eCall and other related emergency call systems and extension points.  (This metadata/control block is in effect a high-level protocol between the PSAP and IVS.)  When the PSAP sends a metadata/control block in response to data sent by the IVS in a SIP request other than INFO (e.g., the MSD in the initial INVITE), the metadata/control block is sent in the SIP response to that request (e.g., the response to the INVITE request).  When the PSAP sends a control block in other circumstances (e.g., mid-call), the control block is transmitted from the PSAP to the IVS in a SIP INFO request within the established dialog.  The IVS sends the requested data (the MSD) in a new INFO request (per <xref target="RFC6086"/>). This mechanism flexibly allows the PSAP to send eCall-specific data to the IVS and the IVS to respond.  INFO requests are sent using an appropriate INFO Package.  See <xref target="transport"/> for more information on attaching a metadata/control block to a SIP message.  See <xref target="info"/> for information about the use of INFO requests to carry data within an eCall.</t>

    <t>When the IVS includes an unsolicited MSD in a SIP request (e.g., the initial INVITE), the PSAP sends a metadata/control block indicating successful/unsuccessful receipt of the MSD in the SIP response to the request.  This also informs the IVS that an NG-eCall is in operation.  If the IVS receives a SIP final response without the  metadata/control block, it indicates that the SIP dialog is not an NG-eCall (e.g., some part of the call is being handled as a legacy call).  When the IVS sends a solicited MSD (e.g., in a SIP INFO request sent following receipt of a SIP INFO request containing a metadata/control block requesting an MSD), the PSAP does not send a metadata/control block indicating successful or unsuccessful receipt of the MSD.  (Normal SIP retransmission handles non-receipt of requested data; note that, per <xref target="RFC6086"/>, a 200 OK response to an INFO request indicates only that the receiver has successfully received and accepted the INFO request, it says nothing about the acceptability of the payload.)  If the IVS receives a request to send an MSD but it is unable to do so for any reason, the IVS sends a metadata/control object acknowledging the request and containing "success=false" and "reason" set to an appropriate code.</t>

    <t>This provides flexibility to handle various circumstances.  For example, if a PSAP is unable to accept an eCall (e.g., due to overload or too many calls from the same location), it can reject the INVITE.  Since a metadata/control object is also included in the SIP response that rejects the call, the IVS knows if the PSAP received the MSD, and can inform the vehicle occupants that the PSAP successfully received the vehicle location and information but can't talk to the occupants at that time.  Especially for SIP response codes that indicate an inability to conduct a call (as opposed to a technical inability to process the request), the IVS can also determine that the call was successful on a technical level (e.g., not helpful to retry as a CS-eCall). (Note that there could be edge cases where the PSAP response is not received by the IVS, e.g., if an intermediary sends a CANCEL, and an error response is forwarded towards the IVS before the error response from the PSAP is received, the response will be dropped, but these are unlikely to occur here.)</t>

    <t>The metadata/control block is carried in the MIME type 'application/emergencyCallData.control+xml'.</t>
    
    <t>The metadata/control block is designed for use with pan-European eCall and also eCall-like systems (i.e., in other regions), and has extension points.  Note that eCall-like systems might define their own vehicle data blocks, and so might need to register a new INFO package to accomodate the new data MIME media type and the metadata/control object.</t>


    <section anchor="control_block" title="The Control Block">
    
        <t>The control block is an XML data structure allowing for acknowledgments, requests, and capabilities information.  It is carried in a body part with a specific MIME media type. Three elements are defined for use within a control block:</t>
    
    <t>
    <list style="hanging" hangIndent="14">

    <t hangText="ack">Acknowledges receipt of data or a request.</t>

    <t hangText="capabilities">Used in a control block sent from the IVS to the PSAP (e.g., in the initial INVITE) to inform the PSAP of the vehicle capabilities.  Child elements contain all actions and data types supported by the vehicle.  It is OPTIONAL for the IVS to send this block.  Omitting the block indicates that the IVS supports only the mandatory functionality defined in this document.</t>

    <t hangText="request">Used in a control block sent by the PSAP to the IVS, to request the vehicle to perform an action.</t>

    </list>
    </t>

    <t>
    The &lt;ack&gt; element indicates the object being acknowledged and reports success or failure.
    </t>

    <t>
    The &lt;request&gt; element contains attributes to indicate the request and to supply related information.  The 'action' attribute is mandatory and indicates the specific action.  An IANA registry is created in <xref target="eCall-action-registry" /> to contain the allowed values.
    </t>
    
    <t>
    The &lt;capabilities&gt; element has child &lt;request&gt; elements to indicate the actions supported by the IVS.
    </t>

        <section anchor="ack_element" title="The &lt;ack&gt; element">

        <t>The &lt;ack&gt; element acknowledges receipt of an eCall data object or request.  An &lt;ack&gt; element references the Content-ID of the object being acknowledged.  The PSAP MUST send an &lt;ack&gt; element acknowledging receipt of an unsolicited MSD (e.g., sent by the IVS in the INVITE); this &lt;ack&gt; element indicates if the PSAP considers the MSD successfully received or not.  An &lt;ack&gt; element is not sent for a &lt;capabilities&gt; element.</t>

        <t>The &lt;ack&gt; element has the following attributes:</t>

        <section title="Attributes of the &lt;ack&gt; element">

        <t>
        The &lt;ack&gt; element has the following attributes:
        </t>

        <t>
        <?rfc compact="yes"?>
        <?rfc subcompact="yes"?>
        <list style="hanging">

            <t hangText="Name:">ref</t>
            <t hangText="Usage:">Mandatory</t>
            <t hangText="Type:">anyURI</t>
            <t hangText="Direction:">Sent in either direction</t>
            <t hangText="Description:">References the Content-ID of the body part being acknowledged.</t>
            <t hangText="Example:">&lt;ack received="true" ref="1234567890@atlanta.example.com"/&gt;</t>


            <t></t>
            <t hangText="Name:">received</t>
            <t hangText="Usage:">Conditional: mandatory in an &lt;ack&gt; element sent by a PSAP</t>
            <t hangText="Type:">Boolean</t>
            <t hangText="Direction:">In this document, sent from the PSAP to the IVS</t>
            <t hangText="Description:">Indicates if the referenced object was considered successfully received or not.</t>
            <t hangText="Example:">&lt;ack received="true" ref="1234567890@atlanta.example.com"/&gt;</t>

        </list>
        <?rfc subcompact="no"?>
        <?rfc compact="no"?>
        </t>

        </section> <!-- title="Attributes of the &lt;ack&gt; element" -->

        <section title="Child Element of the &lt;ack&gt; element">

        <t>
        For extensibility, the &lt;ack&gt; element has the following child element:
        </t>

        <t>
        <?rfc compact="yes"?>
        <?rfc subcompact="yes"?>
        <list style="hanging">

            <t hangText="Name:">actionResult</t>
            <t hangText="Usage:">Optional</t>
            <t hangText="Direction:">Sent from the IVS to the PSAP</t>
            <t hangText="Description:">An &lt;actionResult&gt; element indicates the result of an action (other than a successfully executed 'send-data' action).  The &lt;ack&gt; element contains an &lt;actionResult&gt; element for each &lt;request&gt; element that is not a successfully executed 'send-data' action.  The &lt;actionResult&gt; element has the following attributes:</t>

                <t>
                <list style="hanging">

                <t></t>
                <t hangText="Name:">action</t>
                <t hangText="Usage:">Mandatory</t>
                <t hangText="Type:">token</t>
                <t hangText="Description:">Contains the value of the 'action' attribute of the &lt;request&gt; element</t>

                <t></t>
                <t hangText="Name:">success</t>
                <t hangText="Usage:">Mandatory</t>
                <t hangText="Type:">Boolean</t>
                <t hangText="Description:">Indicates if the action was successfully accomplished</t>

                <t></t>
                <t hangText="Name:">reason</t>
                <t hangText="Usage:">Conditional</t>
                <t hangText="Type:">token</t>
                <t hangText="Description:">Used when 'success' is "false", this attribute contains a reason code for a failure.  A registry for reason codes is defined in <xref target="eCall-reason-registry" />.</t>

                <t></t>
                <t hangText="Name:">details</t>
                <t hangText="Usage:">optional</t>
                <t hangText="Type:">string</t>
                <t hangText="Description:">Contains further explanation of the circumstances of a success or failure.  The contents are implementation-specific and human-readable.</t>

                </list>
                <?rfc subcompact="no"?>
                <?rfc compact="no"?>
                </t>

        </list>
        </t>

        </section> <!-- title="Child Element of the &lt;ack&gt; element" -->
        <section anchor="ack_example" title="Ack Examples">

        <figure anchor="ack-example-psap" title="Ack Example from PSAP to IVS">
            <artwork>
                <![CDATA[
    <?xml version="1.0" encoding="UTF-8"?>
    <emergencyCallData.control
        xmlns="urn:ietf:params:xml:ns:EmergencyCallData:control"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <ack received="true" ref="1234567890@atlanta.example.com"/>

    </emergencyCallData.control>
                ]]>
            </artwork>
        </figure>

        </section> <!-- title="Ack Example" -->

        </section> <!-- title="The &lt;ack&gt; element" -->

        <section anchor="capabilities_element" title="The &lt;capabilities&gt; element">

        <t>
        The &lt;capabilities&gt; element is transmitted by the IVS to indicate to the PSAP its capabilities. No attributes for this element are currently defined.  The following child elements are defined:
        </t>

        <section title="Child Elements of the &lt;capabilities&gt; element">

        <t>
        The &lt;capabilities&gt; element has the following child elements:
        </t>

        <t>
        <?rfc compact="yes"?>
        <?rfc subcompact="yes"?>
        <list style="hanging">

            <t hangText="Name:">request</t>
            <t hangText="Usage:">Mandatory</t>
            <t hangText="Description:">The &lt;capabilities&gt; element contains a &lt;request&gt; child element per action supported by the vehicle.</t>

            <?rfc subcompact="no"?>
            <t hangText="Examples:"><vspace/>
                &lt;request action="send-data"                  supported-values="eCall.MSD" /&gt;</t>

        </list>
        <?rfc subcompact="no"?>
        <?rfc compact="no"?>
        </t>
        
        <t>It is OPTIONAL for the IVS to support the &lt;capabilities&gt; element.  If the IVS does not send a &lt;capabilities&gt; element, this indicates that the only &lt;request&gt; action supported by the IVS is 'send-data' with 'datatype' set to 'eCall.MSD'.</t>

        </section> <!-- title="Child Elements of the &lt;capabilities&gt; element" -->

        <section anchor="capabilities_example" title="Capabilities Example">
        <figure anchor="capabilities-example" title="Capabilities Example">
            <artwork>
                <![CDATA[
    <?xml version="1.0" encoding="UTF-8"?>
    <EmergencyCallData.Control
        xmlns="urn:ietf:params:xml:ns:EmergencyCallData:control"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <capabilities>
        <request action="send-data" supported-values="eCall.MSD"/>
    </capabilities>

    </EmergencyCallData.Control>
                ]]>
            </artwork>
        </figure>
        </section> <!-- title="Capabilities Example" -->

        </section> <!-- title="The &lt;capabilities&gt; element" -->

        <section anchor="request_element" title="The &lt;request&gt; element">

        <t>
        A &lt;request&gt; element appears one or more times on its own or as a child of a &lt;capabilities&gt; element.  It allows the PSAP to request that the IVS perform an action.  The only action that MUST be supported is to send an MSD.  The following attributes and child elements are defined:
        </t>

        <section anchor="request_attributes" title="Attributes of the &lt;request&gt; element">

        <t>
        The &lt;request&gt; element has the following attributes:
        </t>

        <t>
        <?rfc compact="yes"?>
        <?rfc subcompact="yes"?>
        <list style="hanging">

            <t hangText="Name:">action</t>
            <t hangText="Usage:">Mandatory</t>
            <t hangText="Type:">token</t>
            <t hangText="Direction:">Sent in either direction</t>
            <t hangText="Description:">Identifies the action that the vehicle is requested to perform (in a &lt;request&gt; element within a &lt;capabilities&gt; element, indicates an action that the vehicle is capable of performing).  An IANA registry is established in <xref target="eCall-action-registry" /> to contain the allowed values.</t>
            <t hangText="Example:">action="send-data"</t>

            <t></t>
            <t hangText="Name:">msgid</t>
            <t hangText="Usage:">Conditional</t>
            <t hangText="Type:">int</t>
            <t hangText="Direction:">Sent in either direction</t>
            <t hangText="Description:">Defined for extensibility.</t>
            <t hangText="Example:">msgid="3"</t>

            <t></t>
            <t hangText="Name:">persistance</t>
            <t hangText="Usage:">Optional</t>
            <t hangText="Type:">duration</t>
            <t hangText="Direction:">Sent in either direction</t>
            <t hangText="Description:">Defined for extensibility.  Specifies how long to carry on the specified action.  If absent, the default is for the duration of the call.</t>
            <t hangText="Example:">persistance="PT1H"</t>

            <t></t>
            <t hangText="Name:">datatype</t>
            <t hangText="Usage:">Conditional</t>
            <t hangText="Type:">token</t>
            <t hangText="Direction:">Sent in either direction</t>
            <t hangText="Description:">Mandatory with a "send-data" action within a &lt;request&gt; element that is not within a &lt;capabilities&gt; element.  Specifies the data block that the IVS is requested to transmit, using the same identifier as in the 'purpose' attribute set in a Call-Info header field to point to the data block.  Permitted values are contained in the 'Emergency Call Data Types' IANA registry established in <xref target="RFC7852"/>.  Only the "eCall.MSD" value is mandatory to support.</t>
            <t hangText="Example:">datatype="eCall.MSD"</t>

            <t></t>
            <t hangText="Name:">supported-values</t>
            <t hangText="Usage:">Conditional</t>
            <t hangText="Type:">string</t>
            <t hangText="Direction:">Sent from the IVS to the PSAP</t>
            <t hangText="Description:">Defined for extensibility.  Used in a &lt;request&gt; element that is a child of a &lt;capability&gt; element, this attribute lists all supported values of the action type.  Permitted values depend on the action value.  Multiple values are separated with a semicolon.</t>

            <t></t>
            <t hangText="Name:">requested-state</t>
            <t hangText="Usage:">Conditional</t>
            <t hangText="Type:">token</t>
            <t hangText="Direction:">Sent from the PSAP to the IVS</t>
            <t hangText="Description:">Defined for extension.  Indicates the requested state of an element associated with the request type.  Permitted values depend on the request type.</t>

            <t></t>
            <t hangText="Name:">element-ID</t>
            <t hangText="Usage:">Conditional</t>
            <t hangText="Type:">token</t>
            <t hangText="Direction:">Sent from the PSAP to the IVS</t>
            <t hangText="Description:">Defined for extension.  Identifies the element to be acted on.  Permitted values depend on the request type.</t>

        </list>
        <?rfc subcompact="no"?>
        <?rfc compact="no"?>
        </t>

        </section>  <!-- title="Attributes of the &lt;request&gt; element" -->



        <section anchor="request_example" title="Request Example">
        <figure anchor="request-example" title="Request Example">
            <artwork>
                <![CDATA[
    <?xml version="1.0" encoding="UTF-8"?>
    <emergencyCallData.control
        xmlns="urn:ietf:params:xml:ns:EmergencyCallData:control"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <request action="send-data" datatype="eCall.MSD"/>

    </emergencyCallData.control>
                ]]>
            </artwork>
        </figure>
        </section> <!-- title="Request Example" -->

        </section> <!-- title="The &lt;request&gt; element" -->

    </section> <!-- title="The Control Block" -->

</section> <!-- "The Metadata/Control Object" -->

<section anchor="info" title="The emergencyCallData.eCall.MSD INFO package">
    <t>
    This document registers the 'emergencyCallData.eCall.MSD' INFO package.</t>
    
    <t>Both endpoints (the IVS and the PSAP equipment) include 'emergencyCallData.eCall.MSD' in a Recv-Info header field per <xref target="RFC6086"/> to indicate ability to receive INFO requests carrying data as described here.
    </t>
    
    <t>
    Support for the 'emergencyCallData.eCall.MSD' INFO package indicates the ability to receive eCall related body parts as specified in [TBD: THIS DOCUMENT].
    </t>
    
    <t>An INFO request message carrying body parts related to an emergency call as described in [TBD: THIS DOCUMENT] has an Info-Package header field set to 'emergencyCallData.eCall.MSD' per <xref target="RFC6086"/>.
    </t>
        
    <t>The requirements of Section 10 of <xref target="RFC6086"/> are addressed in the following sections.</t>
    
        <section title="Overall Description">
        
        <t>This section describes "what type of information is carried in INFO requests associated with the Info Package, and for what types of applications and functionalities UAs can use the Info Package."</t>
        
        <t>INFO requests associated with the emergencyCallData.eCall.MSD INFO package carry data associated with emergency calls as defined in [TBD: THIS DOCUMENT].  The application is vehicle-initiated emergency calls established using SIP.  The functionality is to carry vehicle data and metadata/control information between vehicles and PSAPs.  Refer to [TBD: THIS DOCUMENT] for more information.</t>
        </section>  <!-- title="Overall Description" -->

        <section title="Applicability">
        
        <t>This section describes "why the Info Package mechanism, rather than some other mechanism, has been chosen for the specific use-case...."</t>
        
        <t>The use of INFO is based on an analysis of the requirements against the intent and effects of INFO versus other approaches (which included SIP MESSAGE, SIP OPTIONS, SIP re-INVITE, media plane transport, and non-SIP protocols).  In particular, the transport of emergency call data blocks occurs within a SIP emergency dialog, per <xref target="transport"/>, and is normally carried in the initial INVITE and its response; the use of INFO only occurs when emergency-call-related data needs to be sent mid-call.  While MESSAGE could be used, it is not tied to a SIP dialog as is INFO and thus might not be associated with the dialog.  SIP OPTIONS or re-INVITE could also be used, but is seen as less clean than INFO.  SUBSCRIBE/NOTIFY could be coerced into service, but the semantics are not a good fit, e.g., the subscribe/notify mechanism provides one-way communication consisting of (often multiple) notifications from notifier to subscriber indicating that certain events in notifier have occurred, whereas what's needed here is two-way communication of data related to the emergency dialog.  Use of the media plane mechanisms was discounted because the number of messages needing to be exchanged in a dialog is normally zero or very few, and the size of the data is likewise very small.  The overhead caused by user plane setup (e.g., to use MSRP as transport) would be disproportionately large.</t>

    <t>Based on the the analyses, the SIP INFO method was chosen to provide for mid-call data transport.</t>
    
    </section> <!-- title="Applicability" -->

    <section title="Info Package Name">

    <t>The info package name is emergencyCallData.eCall.MSD</t>
    
    </section> <!-- title="Info Package Name" -->

    <section title="Info Package Parameters">
    
    <t>None</t>
    
    </section> <!-- title="Info Package Parameters" -->
    
    <section title="SIP Option-Tags">
    
    <t>None</t>
    
    </section> <!-- title="SIP Option-Tags" -->

    <section title="INFO Request Body Parts">
    
    <t>The body for an emergencyCallData.eCall.MSD info package is a multipart (normally multipart/mixed) body containing zero or one application/emergencyCallData.eCall.MSD+per part (containing an MSD) and zero or more application/emergencyCallData.control+xml (containing a metadata/control object) parts.  At least one MSD or metadata/control body part is expected; the behavior upon receiving an INFO request with neither is undefined.</t>

    <t>The body parts are sent per <xref target="RFC6086"/>, and in addition, to align with with how these body parts are sent in SIP messages other than INFO requests, each associated body part is referenced by a Call-Info header field at the top level of the SIP message.  The body part has a Content-Disposition header field set to "By-Reference".</t>

    <t>An MSD or metadata/control block is always enclosed in a multipart body part (even if it would otherwise be the only body part in the SIP message), since as of the date of this document, the use of Content-ID as a SIP header field is not defined (while it is defined for use as a MIME header field).  The innermost multipart that contains only body parts associated with the INFO package has a Content-Disposition value of Info-Package.</t>

    <t>See [TBD: THIS DOCUMENT] for more information.</t>
    
    </section> <!-- title="INFO Request Body Parts" -->



    <section title="Info Package Usage Restrictions">
    
    <t>Usage is limited to vehicle-initiated emergency calls as defined in [TBD: THIS DOCUMENT].</t>
    
    </section> <!-- title="Info Package Usage Restrictions" -->

    <section title="Rate of INFO Requests">
    
    <t>The SIP INFO request is used within an established emergency call dialog for the PSAP to request the IVS to send an updated MSD, and for the IVS to send a requested MSD.  Because this is normally done only on manual request of the PSAP call taker (who suspects some aspect of the vehicle state has changed), the rate of SIP INFO requests associated with the emergencyCallData.eCall.MSD info package is normally quite low (most dialogs are likely to contain zero INFO requests, while others might carry an occasional request).</t>
    
    </section> <!-- title="Rate of INFO Requests" -->

    <section title="Info Package Security Considerations">
    
    <t>The MIME media type registations for the data blocks that can be carried using this INFO package contains a discussion of the security and/or privacy considerations specific to that data block.  The "Security Considerations" and "Privacy Considerations" sections of [TBD: THIS DOCUMENT] discuss security and privacy considerations of the data carried in eCalls.</t>
    
    </section> <!-- title="Info Package Security Considerations" -->

    <section title="Implementation Details">
    
    <t>See [TBD: THIS DOCUMENT] for protocol details.</t>
    
    </section> <!-- title="Implementation Details" -->


    <section title="Examples">
    
    <t>See [TBD: THIS DOCUMENT] for protocol examples.</t>
    
    </section> <!-- title="Examples" -->
 
    
</section> <!-- title="The emergencyCallData.eCall.MSD INFO package" -->

<section anchor="example" title="Examples">
    <t>
        <xref target="eCall-picture"/> illustrates an eCall. The call uses the request URI 'urn:service:sos.ecall.automatic' service URN and is recognized as an eCall, and further as one that was invoked automatically by the IVS due to a crash or other serious incident.  In this example, the originating network routes the call to an ESInet which routes the call to the appropriate NG-eCall capable PSAP.  The emergency call is received by the ESInet's Emergency Services Routing Proxy (ESRP), as the entry point into the ESInet. The ESRP routes the call to a PSAP, where it is received by a call taker.
        In deployments where there is no ESInet, the originating network routes the call directly to the appropriate NG-eCall capable PSAP, an illustration of which would be identical to the one below except without an ESInet or ESRP.
    </t>
    <t>
        <figure anchor="eCall-picture" title="Example of NG-eCall Message Flow">
          <artwork><![CDATA[

            +------------+  +---------------------------------------+
            |            |  |                  +-------+            |
            |            |  |                  | PSAP2 |            |
            |            |  |                  +-------+            |
            |            |  |                                       |
            |            |  |  +------+     +-------+               |
  Vehicle-->|            |--+->| ESRP |---->| PSAP1 |--> Call-Taker |
            |            |  |  +------+     +-------+               |
            |            |  |                                       |
            |            |  |                  +-------+            |
            |            |  |                  | PSAP3 |            |
            | Originating|  |                  +-------+            |
            |   Mobile   |  |                                       |
            |  Network   |  |                ESInet                 |
            +------------+  +---------------------------------------+
            ]]></artwork>
        </figure>
    </t>

    <t>
        <xref target="call-flow"/> illustrates an eCall call flow with a mid-call PSAP request for an updated MSD. The call flow shows the IVS initiating an emergency call, including the MSD in the INVITE.  The PSAP includes in the 200 OK response a metadata/control object acknowledging receipt of the MSD.  During the call, the PSAP sends a request for an MSD in an INFO request.  The IVS sends the requested MSD in a new INFO request.
    </t>
    <t>
        <figure anchor="call-flow" title="NG-eCall Call Flow Illustration">
          <artwork><![CDATA[
         IVS                                         PSAP
          |(1) INVITE (eCall MSD)                      |
          |------------------------------------------->|
          |                                            |
          |(2) 200 OK (eCall metadata [ack MSD])       |
          |<-------------------------------------------|
          |                                            |
          |(3) start media stream(s)                   |
          |............................................|
          |                                            |
          |(4) INFO (eCall metadata [request MSD])     |
          |<-------------------------------------------|
          |                                            |
          |(5) 200 OK                                  |
          |------------------------------------------->|
          |                                            |
          |(6) INFO (eCall MSD)                        |
          |------------------------------------------->|
          |                                            |
          |(7) 200 OK                                  |
          |<-------------------------------------------|
          |                                            |
          |(8) BYE                                     |
          |<-------------------------------------------|
          |                                            |
          |(9) end media streams                       |
          |............................................|
          |                                            |
          |(10) 200 OK                                 |
          |------------------------------------------->|
            ]]></artwork>
        </figure>
    </t>

    <t>The example, shown in <xref target="eCall-invite"/>, illustrates a SIP eCall INVITE that contains an MSD.  For simplicity, the example does not show all SIP headers, nor the SDP contents, nor does it show any additional data blocks added by the IVS or the originating mobile network.  Because the MSD is encoded in ASN.1 PER, which is a binary encoding, its contents cannot be included in a text document.
    </t>
    <t>
        <figure anchor="eCall-invite" title="SIP NG-eCall INVITE">
          <artwork><![CDATA[
   INVITE urn:service:sos.ecall.automatic SIP/2.0
   To: urn:service:sos.ecall.automatic 
   From: <sip:+13145551111@example.com>;tag=9fxced76sl
   Call-ID: 3848276298220188511@atlanta.example.com
   Geolocation: <cid:target123@example.com>
   Geolocation-Routing: no
   Call-Info: <cid:1234567890@atlanta.example.com>;
              purpose=emergencyCallData.eCall.MSD
   Accept: application/sdp, application/pidf+xml,
           application/emergencyCallData.control+xml
   CSeq: 31862 INVITE
   Recv-Info: emergencyCallData.eCall.MSD
   Allow: INVITE, ACK, PRACK, INFO, OPTIONS, CANCEL, REFER, BYE,
          SUBSCRIBE, NOTIFY, UPDATE
   Content-Type: multipart/mixed; boundary=boundary1
   Content-Length: ...

   --boundary1
   Content-Type: application/sdp

        ...Session Description Protocol (SDP) goes here...

   --boundary1
   Content-Type: application/pidf+xml
   Content-ID: <target123@example.com>
   Content-Disposition: by-reference;handling=optional

         ...PIDF-LO goes in here

   --boundary1
   Content-Type: application/emergencyCallData.eCall.MSD+per
   Content-ID: <1234567890@atlanta.example.com>
   Content-Disposition: by-reference;handling=optional

        ...MSD in ASN.1 PER encoding goes here...

    --boundary1--
]]></artwork>
        </figure>
    </t>


    <t>Continuing the example, <xref target="eCall-ok"/> illustrates a SIP 200 OK response to the INVITE of <xref target="eCall-invite"/>, containing a control block acknowledging successful receipt of the eCall MSD.  (For simplicity, the example does not show all SIP headers.)
    </t>

    <t>
        <figure anchor="eCall-ok" title="200 OK response to INVITE">
          <artwork><![CDATA[
   SIP/2.0 200 OK
   To: urn:service:sos.ecall.automatic;tag=8gydfe65t0
   From: <sip:+13145551111@example.com>;tag=9fxced76sl
   Call-ID: 3848276298220188511@atlanta.example.com
   Call-Info: <cid:2345678901@atlanta.example.com>;
              purpose=emergencyCallData.control
   Accept: application/sdp, application/pidf+xml,
           application/emergencyCallData.control+xml,
           application/emergencyCallData.eCall.MSD+per
   CSeq: 31862 INVITE
   Recv-Info: emergencyCallData.eCall.MSD
   Allow: INVITE, ACK, PRACK, INFO, OPTIONS, CANCEL, REFER, BYE,
          SUBSCRIBE, NOTIFY, UPDATE
   Content-Type: multipart/mixed; boundary=boundaryX
   Content-Length: ...

   --boundaryX
   Content-Type: application/sdp

        ...Session Description Protocol (SDP) goes here...

   --boundaryX
   Content-Type: application/emergencyCallData.control+xml
   Content-ID: <2345678901@atlanta.example.com>
   Content-Disposition: by-reference

   <?xml version="1.0" encoding="UTF-8"?>
   <emergencyCallData.control
       xmlns="urn:ietf:params:xml:ns:EmergencyCallData:control"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

   <ack received="true" ref="1234567890@atlanta.example.com"/>
   </emergencyCallData.control>

   --boundaryX--
]]></artwork>
        </figure>
    </t>


    <t><xref target="eCall-info-req"/> illustrates a SIP INFO request containing a metadata/control block requesting an eCall MSD.  (For simplicity, the example does not show all SIP headers.)
    </t>
    <t>
        <figure anchor="eCall-info-req" title="INFO requesting MSD">
          <artwork><![CDATA[
   INFO sip:+13145551111@example.com SIP/2.0
   To: <sip:+13145551111@example.com>;tag=9fxced76sl
   From: Exemplar PSAP <urn:service:sos.ecall.automatic>;tag=8gydfe65t0
   Call-ID: 3848276298220188511@atlanta.example.com
   Call-Info: <cid:3456789012@atlanta.example.com>;
              purpose=emergencyCallData.control
   CSeq: 41862 INFO
   Info-Package: emergencyCallData.eCall.MSD
   Allow: INVITE, ACK, PRACK, INFO, OPTIONS, CANCEL, REFER, BYE,
          SUBSCRIBE, NOTIFY, UPDATE
   Content-Type: multipart/mixed; boundary=boundaryZZZ
   Content-Dispositio: Info-Package
   Content-Length: ...

   --boundaryZZZ
   Content-Disposition: by-reference
   Content-Type: application/emergencyCallData.control+xml
   Content-ID: <3456789012@atlanta.example.com>

   <?xml version="1.0" encoding="UTF-8"?>
   <emergencyCallData.control
       xmlns="urn:ietf:params:xml:ns:EmergencyCallData:control"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

   <request action="send-data" datatype="eCall.MSD"/>

   </emergencyCallData.control>
    --boundaryZZZ--
]]></artwork>
        </figure>
    </t>

    <t><xref target="eCall-info-MSD"/> illustrates a SIP INFO request containing an MSD.  For simplicity, the example does not show all SIP headers.  Because the MSD is encoded in ASN.1 PER, which is a binary encoding, its contents cannot be included in a text document.
    </t>
    <t>
        <figure anchor="eCall-info-MSD" title="INFO containing MSD">
          <artwork><![CDATA[
   INFO urn:service:sos.ecall.automatic SIP/2.0
   To: urn:service:sos.ecall.automatic;tag=8gydfe65t0
   From: <sip:+13145551111@example.com>;tag=9fxced76sl
   Call-ID: 3848276298220188511@atlanta.example.com
   Call-Info: <cid:4567890123@atlanta.example.com>;
              purpose=emergencyCallData.eCall.MSD
   CSeq: 51862 INFO
   Info-Package: emergencyCallData.eCall.MSD
   Allow: INVITE, ACK, PRACK, INFO, OPTIONS, CANCEL, REFER, BYE,
          SUBSCRIBE, NOTIFY, UPDATE
   Content-Type: multipart/mixed; boundary=boundaryLine
   Content-Disposition: Info-Package
   Content-Length: ...

   --boundaryLine
   Content-Type: application/emergencyCallData.eCall.MSD+per
   Content-ID: <4567890123@atlanta.example.com>
   Content-Disposition: by-reference

        ...MSD in ASN.1 PER encoding goes here...

   --boundaryLine--
]]></artwork>
        </figure>
    </t>

</section> <!-- title="Examples" -->

<section anchor="security" title="Security Considerations">
      <t>The security considerations described in <xref target="RFC5069"/> apply here.</t>
       
      <t>In addition to any network-provided location (which might be determined solely by the network, or in cooperation with or possibly entirely by the originating device), an eCall carries an IVS-supplied location within the MSD.  This is likely to be useful to the PSAP, especially when no network-provided location is included, or when the two locations are independently determined.  Even in situations where the network-supplied location is limited to the cell site, this can be useful as a sanity check on the device-supplied location contained in the MSD.</t>
      
      <t>The document <xref target="RFC7378"/> discusses trust issues regarding location provided by or determined in cooperation with end devices.</t>
      
      <t>Security considerations specific to the mechanism by which the PSAP sends acknowledgments and requests to the vehicle are discussed in the "Security Considerations" block of <xref target="control.MIME"/>.  Note that an attacker that has access to and is capable of generating a response to the initial INVITE request could generate a 600 (Busy Everywhere), 486 (Busy Here), or 603 (Decline) response that includes a metadata/control object containing a reference to the MSD in the initial INVITE and a "received=true" field, which could result in the IVS perceiving the PSAP to be overloaded and hence not attempting to reinitiate the call.  The risk can be mitigated as discussed in the "Security Considerations" block of <xref target="control.MIME"/>.</t>

    <t>Data received from external sources inherently carries implementation risks.  For example, depending on the platform, buffer overflows can introduce remote code execution vulnerabilities, null characters can corrupt strings, numeric values used for internal calculations can result in underflow/overflow errors, malformed XML objects can expose parsing bugs, etc.  Implementations need to be cognizant of the potential risks, observe best practices (which might include sufficiently capable static code analysis, fuzz testing, component isolation, avoiding use of unsafe coding techniques, third-party attack tests, signed software, over-the-air updates, etc.), and have multiple levels of protection.  Implementors need to be aware that, potentially, the data objects described here and elsewhere might be malformed, might contain unexpected characters, excessively long attribute values, elements, etc.</t>
    
    <t>The security considerations discussed in <xref target="RFC7852"/> apply here (see especially the discussion of TLS, TLS versions, cypher suites, and PKI).</t>

    <t>When vehicle data or control/metadata is contained in a signed or encrypted body part, the enclosing multipart (e.g., multipart/signed or multipart/encrypted) has the same Content-ID as the enclosed data part.  This allows an entity to identify and access the data blocks it is interested in without having to dive deeply into the message structure or decrypt parts it is not interested in.  (The 'purpose' parameter in a Call-Info header field identifies the data and contains a CID URL pointing to the data block in the body, which has a matching Content-ID body part header field).
				</t>

</section> <!-- title="Security Considerations" -->

<section anchor="privacy" title="Privacy Considerations">
    <t>The privacy considerations discussed in <xref target="RFC7852"/> apply here.  The MSD carries some identifying and personal information (mostly about the vehicle and less about the owner), as well as location information, and so needs to be protected against unauthorized disclosure.  Local regulations may impose additional privacy protection requirements.</t>
    
    <t>Privacy considerations specific to the data structure containing vehicle information are discussed in the "Security Considerations" block of <xref target="MSD.MIME"/>.</t>

    <t>Privacy considerations specific to the mechanism by which the PSAP sends acknowledgments and requests to the vehicle are discussed in the "Security Considerations" block of <xref target="control.MIME"/>.</t>
</section>


<section title="XML Schema">

    <t>
    This section defines an XML schema for the control block.  The text description of the control block in <xref target="control_block" /> is normative and supersedes any conflicting aspect of this schema.
    </t>

    <t>
    <figure anchor="control-block-scheme" title="Control Block Schema">
        <artwork>
        <![CDATA[
        <artwork>
        <![CDATA[
    <?xml version="1.0"?>
    <xs:schema
      targetNamespace="urn:ietf:params:xml:ns:EmergencyCallData:control"
      xmlns:xs="http://www.w3.org/2001/XMLSchema"
      xmlns:pi="urn:ietf:params:xml:ns:EmergencyCallData:control"
      xmlns:xml="http://www.w3.org/XML/1998/namespace"
      elementFormDefault="qualified"
      attributeFormDefault="unqualified">

        <xs:import namespace="http://www.w3.org/XML/1998/namespace"/>

        <xs:element name="EmergencyCallData.control"
                    type="pi:controlType"/>

        <xs:complexType name="controlType">
           <xs:complexContent>
              <xs:restriction base="xs:anyType">
                 <xs:choice>
                    <xs:element name="capabilities" 
                                type="pi:capabilitiesType"/>
                    <xs:element name="request" type="pi:requestType"/>
                    <xs:element name="ack" type="pi:ackType"/>
                    <xs:any namespace="##any" processContents="lax"
                            minOccurs="0"
                            maxOccurs="unbounded"/>
                 </xs:choice>
                 <xs:anyAttribute/>
              </xs:restriction>
           </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="ackType">
            <xs:complexContent>
                <xs:restriction base="xs:anyType">
                    <xs:sequence minOccurs="1" maxOccurs="unbounded">
                        <xs:element name="actionResult" minOccurs="0"
                                    maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:attribute name="action"
                                              type="xs:token"
                                              use="required"/>
                                <xs:attribute name="success"
                                              type="xs:boolean"
                                              use="required"/>
                                <xs:attribute name="reason"
                                              type="xs:token">
                                    <xs:annotation>
                                        <xs:documentation>
                                            conditionally mandatory
                                            when @success='false"
                                            to indicate reason code
                                            for a failure
                                        </xs:documentation>
                                    </xs:annotation>
                                </xs:attribute>
                                <xs:attribute name="details"
                                              type="xs:string"/>
                                <xs:anyAttribute
                                    processContents="skip"/>
                            </xs:complexType>
                        </xs:element>
                        <xs:any namespace="##any" processContents="lax"
                                minOccurs="0"
                                maxOccurs="unbounded"/>
                    </xs:sequence>
                    <xs:attribute name="ref"
                                  type="xs:anyURI"
                                  use="required"/>
                    <xs:attribute name="received"
                                  type="xs:boolean"/>
                    <xs:anyAttribute/>
                </xs:restriction>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="capabilitiesType">
            <xs:complexContent>
                <xs:restriction base="xs:anyType">
                    <xs:sequence minOccurs="1" maxOccurs="unbounded">
                        <xs:element name="request"
                                    type="pi:requestType" 
                                    minOccurs="1"
                            maxOccurs="unbounded"/>
                        <xs:any namespace="##any" processContents="lax"
                                 minOccurs="0"
                            maxOccurs="unbounded"/>
                    </xs:sequence>
                    <xs:anyAttribute/>
                </xs:restriction>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="requestType">
            <xs:complexContent>
                <xs:restriction base="xs:anyType">
                    <xs:choice minOccurs="1" maxOccurs="unbounded">
                        <xs:any namespace="##any" processContents="lax"
                                minOccurs="0"
                                maxOccurs="unbounded"/>
                    </xs:choice>
                    <xs:attribute name="action" type="xs:token"
                                  use="required"/>
                    <xs:attribute name="msgid" type="xs:unsignedInt"/>
                    <xs:attribute name="persistence"
                                  type="xs:duration"/>
                    <xs:attribute name="datatype" type="xs:token"/>
                    <xs:attribute name="supported-values"
                                  type="xs:string"/>
                    <xs:attribute name="element-id" type="xs:token"/>
                    <xs:attribute name="requested-state"
                                  type="xs:token"/>
                    <xs:anyAttribute/>
                </xs:restriction>
            </xs:complexContent>
        </xs:complexType>

    </xs:schema>
        ]]>
        </artwork>

    </figure>
    </t>

</section>  <!-- title="XML Schema" -->


<section anchor="iana" title="IANA Considerations">

    <t>This document formalizes the "EmergencyCallData" media (MIME) subtype tree.  This tree is used only for content associated with emergency communications.  New subtypes in this tree can be registered by the IETF or by other standards organizations working with emergency communications, using the "Specification Required" rule, which implies expert review.  The designated expert is the ECRIT working group.</t>
    
    <section title="Service URN Registrations"> 
    
      <t>IANA is requested to register the URN 'urn:service:sos.ecall' under the sub-services 'sos' registry defined in Section 4.2 of <xref target="RFC5031"/>.</t>
      
      <t>This service requests resources associated with an emergency call placed by an in-vehicle system, carrying a standardized set of data related to the vehicle and incident. Two sub-services are registered as well: 
        
        <list style='hanging'> 
        <t hangText="urn:service:sos.ecall.manual"><vspace blankLines="1"/> Used with an eCall invoked due to manual interaction by a vehicle occupant.</t>
        <t hangText="urn:service:sos.ecall.automatic"><vspace blankLines="1"/> Used with an eCall invoked automatically, for example, due to a crash or other serious incident.</t>
        </list> 
        </t>

        <t>IANA is also requested to register the URN 'urn:service:test.sos.ecall' under the sub-service 'test' registry defined in Setcion 17.2 of <xref target="RFC6881"/>.</t>
    </section>  <!-- title="Service URN Registrations" -->
    
    <section anchor="MSD.MIME" title="MIME Media Type Registration for 'application/emergencyCallData.eCall.MSD+per'">
    
					<t>IANA is requested to add application/emergencyCallData.eCall.MSD+per as a MIME media type, with a reference to this document, in accordance to the procedures of RFC 6838 <xref target="RFC6838"/> and guidelines in RFC
   7303 <xref target="RFC7303"/>.</t>
					<t>
						<list style="empty"> 
							<t>MIME media type name:  application</t>

							<t>MIME subtype name:  emergencyCallData.eCall.MSD+per</t>

							<t>Mandatory parameters:  none</t>

							<t>Optional parameters:  none</t>

							<t>Encoding scheme: binary</t>
							
							<t>Encoding considerations: Uses ASN.1 PER, which is a binary encoding; when transported in SIP, binary content transfer encoding is used.</t>

							<t>Security considerations:

 This media type is designed to carry vehicle and incident-related data during an emergency call.

      This data contains personal information including vehicle VIN,
      location, direction, etc.  Appropriate
      precautions need to be taken to limit unauthorized access,
      inappropriate disclosure to third parties, and eavesdropping of
      this information.  In general, it is acceptable for the data to be unprotected while briefly in transit within the Mobile Network Operator (MNO); the MNO is trusted to not permit the data to be accessed by third parties.  Sections 7 and Section 8 of
      <xref target="RFC7852"/> contain more discussion.</t>

							<t>Interoperability considerations:  None</t>

							<t>Published specification: 

      Annex A of EN 15722 <xref target="msd"/></t>

							<t>Applications which use this media type:

      Pan-European eCall compliant systems
							</t>

							<t>Additional information: None</t>

     <t> Magic Number:  None</t>

    <t>  File Extension:  None</t>

    <t>  Macintosh file type code:  'BINA'</t>

							<t>Person and email address for further information:

      Randall Gellens, rg+ietf@randy.pensive.org
							</t>

							<t>Intended usage:  LIMITED USE</t>

							<t>Author:

      The MSD specification was produced by the European Committee For Standardization (CEN).  For contact information, please see &lt;http://www.cen.eu/cen/Pages/contactus.aspx&gt;.
							</t>

							<t>Change controller:

      The European Committee For Standardization (CEN)
							</t>

						</list>
					</t>


    </section>  <!-- title="MIME media type registration for 'application/emergencyCallData.eCall.MSD+per'" -->

    <section anchor="control.MIME" title="MIME Media Type Registration for 'application/emergencyCallData.control+xml'">
    
					<t>IANA is requested to add application/emergencyCallData.control+xml as a MIME media type, with a reference to this document, in accordance to the procedures of RFC 6838 <xref target="RFC6838"/> and guidelines in RFC
   7303 <xref target="RFC7303"/>.</t>
					<t>
						<list style="empty"> 
							<t>MIME media type name:  application</t>

							<t>MIME subtype name:  emergencyCallData.control+xml</t>

							<t>Mandatory parameters:  none</t>

							<t>Optional parameters:  charset</t>
							<t>Indicates the character encoding of the XML content.</t>

							<t>Encoding considerations:

      Uses XML, which can employ 8-bit characters, depending on the
      character encoding used.  
      See Section 3.2 of RFC 7303 <xref target="RFC7303"/>.
							</t>

							<t>Security considerations:

            <list>
                <t>This media type carries metadata and control information and requests, such as from a Public Safety Answering Point (PSAP) to an In-Vehicle System (IVS) during an emergency call.</t>

                <t>Metadata (such as an acknowledgment that data sent by the IVS to the PSAP was successfully received) has limited privacy and security implications.  Control information (such as requests from the PSAP that the vehicle perform an action) has some privacy and security implications.  The privacy concern arises from the ability to request the vehicle to transmit a data set, which as described in <xref target="MSD.MIME" />, can contain personal information.  The security concern is the ability to request the vehicle to perform an action.  Control information needs to originate only from a PSAP or other emergency services provider, and not be modified en-route.  The level of integrity of the cellular network over which the emergency call is placed is a consideration: when the IVS initiates an eCall over a cellular network, in most cases it relies on the MNO to route the call to a PSAP.  (Calls placed using other means, such as Wi-Fi or over-the-top services, generally incur somewhat higher levels of risk than calls placed "natively" using cellular networks.)  A call-back from a PSAP merits additional consideration, since current mechanisms are not ideal for verifying that such a call is indeed a call-back from a PSAP in response to an emergency call placed by the IVS.  See the discussion in <xref target="security" /> and the PSAP Callback document <xref target="RFC7090"/>.  <!--One potential safeguard, applicable regardless of which end initiated the call and the means of the call, is for the PSAP or emergency service provider to sign the body part using a certificate issued by a known emergency services certificate authority and for which the IVS can verify the root certificate; however, this depends on deployed key infrastructure including a recognized certificate authority, certificate revocation mechanisms, etc.--></t>

                <t>Sections 7 and Section 8 of
      <xref target="RFC7852"/> contain more discussion.</t>

            </list>
        </t>

							<t>Interoperability considerations:  None</t>

							<t>Published specification: This document</t>

							<t>Applications which use this media type:

      Pan-European eCall compliant systems
							</t>

							<t>Additional information: None</t>

     <t> Magic Number:  None</t>

    <t>  File Extension:  .xml</t>

    <t>  Macintosh file type code:  'TEXT'</t>

							<t>Person and email address for further information:
        Randall Gellens, rg+ietf@randy.pensive.org
							</t>

							<t>Intended usage:  LIMITED USE</t>

							<t>Author:

        The IETF ECRIT WG.
							</t>

							<t>Change controller:

        The IETF ECRIT WG.
							</t>

						</list>
					</t>


    </section>  <!-- title="MIME Media Type Registration for 'application/emergencyCallData.control+xml'" -->

    <section title="Registration of the 'eCall.MSD' entry in the Emergency Call Additional Data Blocks registry">

    <t>This specification requests IANA to add the 'eCall.MSD' entry to the Emergency Call Additional Data Blocks registry, with a reference to this document.</t>
    
    </section>  <!-- title="Registration of the 'eCall.MSD' entry in the Emergency Call Additional Data Blocks registry" -->
    
    <section title="Registration of the 'control' entry in the Emergency Call Additional Data Blocks registry">

    <t>This specification requests IANA to add the 'control' entry to the Emergency Call Additional Data Blocks registry, with a reference to this document.</t>
    </section>  <!-- title="Registration of the 'control' entry in the Emergency Call Additional Data Blocks registry" -->

    <section title="Registration of the emergencyCallData.eCall Info Package">

   <t>IANA is requested to add emergencyCallData.eCall to the Info Packages Registry under "Session Initiation Protocol (SIP) Parameters", with a reference to this document.</t>
    
    </section>  <!-- title="Registration of the emergencyCallData.eCall Info Package" -->


    <section title="URN Sub-Namespace Registration"> 

        <section anchor="Control" title="Registration for urn:ietf:params:xml:ns:eCall">
        <t> This section registers a new XML namespace, as per the guidelines in RFC 3688 <xref target="RFC3688"/>. </t>
        <t>
            <list style="hanging">
              <t hangText="URI:">urn:ietf:params:xml:ns:eCall</t>
                <t hangText="Registrant Contact:"> IETF, ECRIT working group,
  &lt;ecrit@ietf.org&gt;, as delegated by the IESG
  &lt;iesg@ietf.org&gt;. </t>
                <t hangText="XML:">
                    <figure>
                    <artwork>
                    <![CDATA[
    BEGIN
    <?xml version="1.0"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
        "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-type"
              content="text/html;charset=iso-8859-1"/>
        <title>Namespace for eCall Data</title>
    </head>
    <body>
        <h1>Namespace for eCall Data</h1>
        <p>See [TBD: This document].</p>
    </body>
    </html>
    END
]]>
                    </artwork>
                    </figure>
                </t>
            </list>
            </t>
        </section> <!-- title="Registration for urn:ietf:params:xml:ns:eCall" -->

        <section title="Registration for urn:ietf:params:xml:ns:control">
        <t> This section registers a new XML namespace, as per the guidelines in RFC 3688 <xref target="RFC3688"/>. </t>
        <t>
            <list style="hanging">
            <t hangText="URI:">urn:ietf:params:xml:ns:control</t>
            <t hangText="Registrant Contact:"> IETF, ECRIT working group,
              &lt;ecrit@ietf.org&gt;, as delegated by the IESG
              &lt;iesg@ietf.org&gt;. </t>
            <t hangText="XML:">
            <figure>
            <artwork>
            <![CDATA[
   BEGIN
   <?xml version="1.0"?>
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
        "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
        <meta http-equiv="content-type"
              content="text/html;charset=iso-8859-1"/>
        <title>Namespace for eCall Data: 
               Control Block</title>
   </head>
   <body>
        <h1>Namespace for eCall Data</h1>
        <h2>Control Block</h2>
   <p>See [TBD: This document].</p>
   </body>
   </html>
   END
   ]]>
            </artwork>
            </figure>
            </t>
            </list>
        </t>
        </section>  <!-- title="Registration for urn:ietf:params:xml:ns:control" -->

    </section>  <!-- title="URN Sub-Namespace Registration" -->

    <section anchor="RegCreate" title="Registry Creation">
    <t>This document creates a new registry called "Emergency Call Metadata/Control Data".  The following sub-registries are created for this registry.
    </t>

        <section anchor="eCall-action-registry" title="Emergency Call Action Registry">
        <t>This document creates a new sub-registry called "Emergency Call Action".  As defined in <xref target="RFC5226"/>, this registry
   operates under "Expert Review" rules.  The expert should determine that the proposed action is within the purview of a vehicle, is sufficiently distinguishable from other actions, and the action is clearly and fully described.  In most cases, a published and stable document is referenced for the description of the action.</t>

        <t>The content of this registry includes:

            <list style="hanging">
            <t hangText="Name:"> The identifier to be used in the 'action' attribute of a control &lt;request&gt; element.</t>
            <t hangText="Description:">A description of the action.  In most cases this will be a reference to a published and stable document.  The description MUST specify if any attributes or child elements are optional or mandatory, and describe the action to be taken by the vehicle.</t>
            </list> 
        </t> 

        <t>The initial set of values is listed in <xref target="eCall-action-registry-values"/>.</t>

        <texttable anchor="eCall-action-registry-values" title="Emergency Call Action Registry Initial Values">
    <ttcol align='center'>Name</ttcol>
    <ttcol align='center'>Description</ttcol>
    <c>send-data</c>    <c>See <xref target="request_attributes"/> of this document</c>
        </texttable>

        </section>   <!-- title="Action Registry" -->

                <section anchor="eCall-reason-registry" title="Emergency Call Action Failure Reason Registry">

        <t>This document creates a new sub-registry called "Emergency Call Action Failure Reason" which contains values for the 'reason' attribute of the &lt;actionResult&gt; element.  As defined in <xref target="RFC5226"/>, this registry operates under "Expert Review" rules.  The expert should determine that the proposed reason is sufficiently distinguishable from other reasons and that the proposed description is understandable and correctly worded.</t>

        <t>The content of this registry includes:

            <list style="hanging">
            <t hangText="ID:"> A short string identifying the reason, for use in the 'reason' attribute of an &lt;actionResult&gt; element.</t>
            <t hangText="Description:">A description of the reason.</t>
            </list> 
        </t>

        <t>The initial set of values is listed in <xref target="eCall-reason-registry-values"/>.</t>

        <texttable anchor="eCall-reason-registry-values" title="Emergency Call Action Failure Reason Registry Initial Values">
        <ttcol align='left'>ID</ttcol>
        <ttcol align='left'>Description</ttcol>

        <c>unsupported</c>
        <c>The 'action' value is not supported.</c>

        <c>damaged</c>
        <c>Required components are damaged.</c>

        <c>unable</c>
        <c>The action could not be accomplished (a generic error for use when no other code is appropriate).</c>

        <c>data-unsupported</c>
        <c>The data item referenced in a 'send-data' request is not supported.</c>

        <c>security-failure</c>
        <c>The authenticity of the request or the authority of the requestor could not be verified.</c>
        </texttable>

        </section>   <!-- title="Reason Registry" -->

    </section> <!-- title="Registry creation" -->

</section>  <!-- "IANA Considerations" -->


<section title="Contributors">
      <t>Brian Rosen was a co-author of the original document upon which this document is based.</t>
</section> <!-- title="Contributors" -->


<section title="Acknowledgements">
      <t>We would like to thank Bob Williams and Ban Al-Bakri for their feedback and suggestion; Rex Buddenberg, Lena Chaponniere, Keith Drage, Stephen Edge, Wes George, Allison Mankin, Ivo Sedlacek, and James Winterbottom for their review and comments; Robert Sparks and Paul Kyzivat for their help with the SIP mechanisms; Mark Baker and Ned Freed for their help with the media subtype registration issue.  We would like to thank Michael Montag, Arnoud van Wijk, Gunnar Hellstrom, and Ulrich Dietz for their help with the original document upon which this document is based.  Christer Holmberg deserves special mention for his many detailed reviews.</t>
</section> <!-- title="Acknowledgements" -->


<section title="Changes from Previous Versions">


    <section title="Changes from draft-ietf-19 to draft-ietf-20">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Fixed various nits</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-18 to draft-ietf-19">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Added additional text to "Rate of Info Requests"</t>
            <t>Added additional text to "Security Considerations"</t>
            <t>Further corrected "content type" to "media type"</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-17 to draft-ietf-18">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Added reference to 3GPP TS24.229</t>
            <t>Clarified that an INFO request is expected to have at least one MSD or metadata/control body part</t>
            <t>Fixed minor errors in examples</t>
            <t>Corrected "content type" to "media type"</t>
            <t>Deleted "xsi:schemaLocation" from examples</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-16 to draft-ietf-17">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Clarify Content-Disposition value in INFO requests</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-15 to draft-ietf-16">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Various clarifications and simplifications</t>
            <t>Added reference to 3GPP 23.167</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-14 to draft-ietf-15">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>eCall body parts now always sent enclosed in multipart (even if only body part in SIP message) and hence always have a Content-Disposition of By-Reference</t>
            <t>Fixed errors in attribute directionality text</t>
            <t>Fixed typos.</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-13 to draft-ietf-14">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Added text to the IANA Considerations to formalize the EmergencyCallData media subtree</t>
            <t>Fixed some typos</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-12 to draft-ietf-13">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Clarifications suggested by Christer</t>
            <t>Corrections to Content-Disposition text and examples as suggested by Paul Kyzivat</t>
            <t>Clarifications to Content-Disposition text and examples to clarify that handling=optional is only used in the initial INVITE</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-11 to draft-ietf-12">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Fixed errors in examples found by Dale</t>
            <t>Removed enclosing sub-section of INFO package registration section</t>
            <t>Added text per Christer and Dale's suggestions that the MSD and metadata/control blocks are sent in INFO with a Call-Info header field referencing them</t>
            <t>Deleted Call Routing section (7.1) in favor of a statement that call routing is outside the scope of the document</t>
            <t>Other text changes per comments received from Christer and Ivo.</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-09 to draft-ietf-11">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Renamed INFO package to emergencyCallData.eCall.MSD</t>
            <t>Changed INFO package to only permit MSD and metadata/control MIME types</t>
            <t>Moved &lt;capabilities&gt; element back from car-crash but made it OPTIONAL</t>
            <t>Moved other extension points back from car-crash so that extension points are in base spec (and also to get XML schema to compile)</t>
            <t>Text changes for clarification.</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-08 to draft-ietf-09">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Created a new "Data Transport" section that describes how the MSD and metadata/control blocks are attached, and then referred to that section rather than repeat the information about the CID and Call-Info and so forth, which means most references to the additional-data draft have now been deleted</t>
            <t>Mentioned edge cases where a PSAP response to INVITE isn't received by the IVS</t>
            <t>Reworded description of which status codes are used when a PSAP wishes to reject a call but inform the vehicle occupants that it is aware of the situation to be more definite</t>
            <t>Added examples showing INFO</t>
            <t>Added references for eCall test call requirement</t>
            <t>Described meaning of eCall URNs in <xref target="test-calls"/> as well as in IANA registration</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-07 to draft-ietf-08">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>eCall MSD now encoded as ASN.1 PER, using binary content transfer encoding</t>
            <t>Added text to point out aspects of call handling and metadata/control usage, such as use in rejected calls, and solicited MSDs</t>
            <t>Revised use of INFO to require that when a request for an MSD is sent in INFO, the MSD sent in response is in its own INFO, not the response to the requesting INFO</t>
            <t>Added material to INFO package registation to comply with Section 10 of <xref target="RFC6086"/></t>
            <t>Moved material not required by 3GPP into <xref target="I-D.ietf-ecrit-car-crash"/>, e.g., some of the eCall metadata/control elements, attributes, and values</t>
            <t>Revised test call wording to clarify that specific handling is out of scope</t>
            <t>Revised wording throughout the document to simplify</t>
            <t>Moved new Section 7.1 to be a subsection of 7</t>
            <t>Moved new Section <xref target="info"/> to be a main section instead of a subsection of <xref target="metadata"/></t>
            <t>Revised SIP INFO usage and package registration per advice from Robert Sparks and Paul Kyzivat</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-06 to draft-ietf-07">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Fixed typo in Acknowledgements</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-05 to draft-ietf-06">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Added additional security and privacy clarifications regarding signed and encrypted data</t>
            <t>Additional security and privacy text</t>
            <t>Deleted informative section on ESINets as unnecessary.</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-04 to draft-ietf-05">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Reworked the security and privacy considerations material in the document as a whole and in the MIME registation sections of the MSD and control objects</t>
            <t>Clarified that the &lt;actionResult&gt; element can appear multiple times within an &lt;ack&gt; element</t>
            <t>Fixed IMS definition</t>
            <t>Added clarifying text for the 'msgid' attribute</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-03 to draft-ietf-04">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Added Privacy Considerations section</t>
            <t>Reworded most uses of non-normative "may", "should", "must", and "recommended."</t>
            <t>Fixed nits in examples</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-02 to draft-ietf-03">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Added request to enable cameras</t>
            <t>Improved examples and XML schema</t>
            <t>Clarifications and wording improvements</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-01 to draft-ietf-02">
        <t>
        <?rfc compact="yes" ?>
        <?rfc subcompact="yes" ?>
        <list style="symbols">
            <t>Added clarifying text reinforcing that the data exchange is for small blocks of data infrequently transmitted</t>
            <t>Clarified that dynamic media is conveyed using SIP re-INVITE to establish a one-way media stream</t>
            <t>Clarified that the scope is the needs of eCall within the SIP emergency call environment</t>
            <t>Added informative statement that the document may be suitable for reuse by other ACN systems</t>
            <t>Clarified that normative language for the control block applies to both IVS and PSAP</t>
            <t>Removed 'ref', 'supported-mime', and &lt;media&gt; elements</t>
            <t>Minor wording improvements and clarifications</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-ietf-00 to draft-ietf-01">
        <t>
        <list style="symbols">
            <t>Added further discussion of test calls</t>
            <t>Added further clarification to the document scope</t>
            <t>Mentioned that multi-region vehicles may need to support other crash notification specifications in addition to eCall</t>
            <t>Added details of the eCall metadata and control functionality</t>
            <t>Added IANA registration for the MIME media type for the control object</t>
            <t>Added IANA registries for protocol elements and tokens used in the control object</t>
            <t>Minor wording improvements and clarifications</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-gellens-03 to draft-ietf-00">
        <t>
        <list style="symbols">
            <t>Renamed from draft-gellens- to draft-ietf-.</t>
            <t>Added mention of and reference to ETSI TR "Mobile Standards Group (MSG); eCall for VoIP"</t>
            <t>Added text to Introduction regarding migration/co-existence being out of scope</t>
            <t>Added mention in Security Considerations that even if the network-supplied location is just the cell site, this can be useful as a sanity check on the IVS-supplied location</t>
            <t>Minor wording improvements and clarifications</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-gellens-02 to -03">
        <t>
        <list style="symbols">
            <t>Clarifications and editorial improvements.</t>
        </list>
        </t>
    </section>
      
    <section title="Changes from draft-gellens-01 to -02">
        <t>
        <list style="symbols">
            <t>Minor wording improvements</t>
            <t>Removed ".automatic" and ".manual" from "urn:service:test.sos.ecall" registration and discussion text.</t>
        </list>
        </t>
    </section>

    <section title="Changes from draft-gellens-00 to -01">
        <t>
        <list style="symbols">
            <t>Now using 'EmergencyCallData' for purpose parameter values and MIME subtypes, in accordance with changes to <xref target="RFC7852"/></t>
            <t>Added reference to RFC 6443</t>
            <t>Fixed bug that caused Figure captions to not appear</t>
        </list>
        </t>
    </section>
    
<?rfc subcompact="no"?>
<?rfc compact="no"?>
</section> <!-- title="Changes from Previous Versions -->
    

</middle>

<back>

<references title="Normative References">
        &RFC2119;
        &RFC6881;
        &RFC7303;
        &RFC6838; 
        &RFC5031;
        &RFC7852;
        &RFC3688;
        &RFC5226;

    <reference anchor="msd">
      <front>
       <title>Intelligent transport systems -- eSafety -- eCall minimum set of data (MSD), EN 15722</title>
       <author fullname="CEN" initials="" surname="CEN"> </author>
       <date year="2015" month="April"/>
      </front>
    </reference>


    <reference anchor="TS22.101">
      <front>
        <title>3GPP TS 22.101: Technical Specification Group Services and System Aspects; Service aspects; Service principles</title>
        <author fullname="3rd Generation Partnership Project" initials="" surname="3GPP"> </author>
        <date />
      </front>
    </reference>


    <reference anchor="EN_16072">
      <front>
        <title>Intelligent transport systems - eSafety - Pan-European eCall operating requirements, EN 16072</title>
        <author fullname="CEN" initials="" surname="CEN"> </author>
        <date year="2015" month="April"/>
      </front>
    </reference>
    
    <reference anchor="EN_16062">
      <front>
        <title>Intelligent transport systems - eSafety - eCall High Level Application Requirements (HLAP) Using GSM/UMTS Circuit Switched Networks, EN 16062</title>
        <author fullname="CEN" initials="" surname="CEN"> </author>
        <date year="2015" month="April"/>
      </front>
    </reference>

</references>


<references title="Informative references">
      &RFC5012;
      &RFC5069;
      &RFC7378;
      &RFC6086;
      &RFC7090;
      &RFC6443;

      &I-D.ietf-ecrit-car-crash;

    <reference anchor="CEN" target="http://www.cen.eu">
        <front>
            <title>European Committee for Standardization</title>
            <author/>
            <date/>
        </front>
    </reference>

    <reference anchor="SDO-ETSI" target="http://www.etsi.org">
        <front>
            <title>European Telecommunications Standards Institute (ETSI)</title>
            <author/>
            <date/>
        </front>
    </reference>

    <reference anchor="MSG_TR">
      <front>
        <title>ETSI Mobile Standards Group (MSG); eCall for VoIP</title>
        <author fullname="European Telecommunications Standards Institute" initials="" surname="ETSI"> </author>
        <date year="2014" month="April"/>
      </front>
      <seriesInfo name="ETSI Technical Report" value="TR 103 140 V1.1.1 (2014-04)" />
    </reference>
    
    <reference anchor="SDO-3GPP" target="http://www.3gpp.org/">
        <front>
            <title>3d Generation Partnership Project</title>
            <author/>
            <date/>
        </front>
    </reference>

    <reference anchor="TS23.167">
      <front>
        <title>3GPP TS 23.167: IP Multimedia Subsystem (IMS) emergency sessions</title>
        <author fullname="3rd Generation Partnership Project" initials="" surname="3GPP"> </author>
        <date />
      </front>
    </reference>

    <reference anchor="TS24.229">
      <front>
        <title>3GPP TS 24.229: IP multimedia call control protocol based on Session Initiation Protocol (SIP) and Session Description Protocol (SDP); Stage 3</title>
        <author fullname="3rd Generation Partnership Project" initials="" surname="3GPP"> </author>
        <date />
      </front>
    </reference>


  </references>

  </back>
</rfc>
