10. Examples
Figure 6 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. +-----------+ +----------------------------------------+ | | | +-------+ | | | | | PSAP2 | | | | | +-------+ | | | | | | | | +------+ +----------------------+ | Vehicle-->| |--|-->| ESRP |-->| PSAP1 --> Call Taker | | | | | +------+ +----------------------+ | | | | | | | | +-------+ | | | | | PSAP3 | | |Originating| | +-------+ | | Mobile | | | | Network | | ESInet | +-----------+ +----------------------------------------+ Figure 6: Example of NG-eCall Message Flow
Figure 7 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. 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 | |------------------------------------------->| Figure 7: NG-eCall Call Flow Illustration
Figure 8 illustrates a SIP eCall INVITE request containing an MSD. For simplicity, the example does not show all SIP headers, nor the Session Description Protocol (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. 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 here... --boundary1 Content-Type: application/EmergencyCallData.eCall.MSD Content-ID: <1234567890@atlanta.example.com> Content-Disposition: by-reference;handling=optional ...MSD in ASN.1 PER encoding goes here... --boundary1-- Figure 8: SIP NG-eCall INVITE
Continuing the example, Figure 9 illustrates a SIP 200 OK response to the INVITE request of Figure 8, containing a metadata/control block acknowledging successful receipt of the eCall MSD. (For simplicity, the example does not show all SIP headers.) 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 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"> <ack received="true" ref="1234567890@atlanta.example.com"/> </EmergencyCallData.Control> --boundaryX-- Figure 9: 200 OK Response to INVITE
Figure 10 illustrates a SIP INFO request containing a metadata/ control block requesting an eCall MSD. (For simplicity, the example does not show all SIP headers.) 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-Disposition: 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"> <request action="send-data" datatype="eCall.MSD"/> </EmergencyCallData.Control> --boundaryZZZ-- Figure 10: INFO Requesting MSD
Figure 11 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. 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 Content-ID: <4567890123@atlanta.example.com> Content-Disposition: by-reference ...MSD in ASN.1 PER encoding goes here... --boundaryLine-- Figure 11: INFO Containing MSD11. Security Considerations
The security considerations described in [RFC5069] (on marking and routing emergency calls) apply here. 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.
The document [RFC7378] discusses trust issues regarding location provided by or determined in cooperation with end devices. 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 Section 14.4. 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 Section 14.4. 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 (including the MSD and metadata/control objects) might be malformed, contain unexpected characters, have excessively long attribute values and elements, etc. The security considerations discussed in [RFC7852] apply here (see especially the discussion of Transport Layer Security (TLS), TLS versions, cipher suites, and PKI). 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.)
12. Privacy Considerations
The privacy considerations discussed in [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, so it needs to be protected against unauthorized disclosure. Local regulations may impose additional privacy protection requirements. Privacy considerations specific to the data structure containing vehicle information are discussed in the "Security Considerations" block of Section 14.3. 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 Section 14.4.13. XML Schema
This section defines an XML schema for the control block. The text description of the control block in Section 9.1 is normative and supersedes any conflicting aspect of this schema. <?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:element name="text" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:anyAttribute
namespace="##any"
processContents="skip"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:any namespace="##any" processContents="lax"
minOccurs="0"
maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute name="action" type="xs:token"
use="required"/>
<xs:attribute name="int-id" 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> Figure 12: Control Block Schema14. IANA Considerations
14.1. The EmergencyCallData Media Subtree
This document establishes the "EmergencyCallData" media (MIME) subtype tree, a new media subtree rooted at "application/ EmergencyCallData". This subtree is used only for content associated with emergency communications. New subtypes in this subtree follow the rules specified in Section 3.1 of [RFC6838], with the additional restriction that the standards-related organization MUST be responsible for some aspect of emergency communications. This subtree initially contains the following subtypes (defined here or in [RFC7852]): EmergencyCallData.Comment+xml EmergencyCallData.Control+xml EmergencyCallData.DeviceInfo+xml EmergencyCallData.eCall.MSD EmergencyCallData.ProviderInfo+xml EmergencyCallData.ServiceInfo+xml EmergencyCallData.SubscriberInfo+xml
14.2. Service URN Registrations
IANA has registered the URN urn:service:sos.ecall under the "'sos' Sub-Services" registry defined in Section 4.2 of [RFC5031]. 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. The "Description" registry field is "Vehicle-initiated emergency calls". Two sub-services are registered as well: urn:service:sos.ecall.automatic Used with an eCall invoked automatically, for example, due to a crash or other serious incident. The "Description" registry field is "Automatic vehicle-initiated emergency calls". urn:service:sos.ecall.manual Used with an eCall invoked due to manual interaction by a vehicle occupant. The "Description" registry field is "Manual vehicle- initiated emergency calls". IANA has also registered the URN urn:service:test.sos.ecall under the "'test' Sub-Services" registry defined in Section 17.2 of [RFC6881]. This service requests resources associated with a test (non- emergency) call placed by an in-vehicle system. See Section 8 for more information on the test eCall request URN.14.3. MIME Media Type Registration for application/ EmergencyCallData.eCall.MSD
IANA has added application/EmergencyCallData.eCall.MSD as a MIME media type, with a reference to this document, in accordance with the procedures of RFC 6838 [RFC6838] and guidelines in RFC 7303 [RFC7303]. MIME media type name: application MIME subtype name: EmergencyCallData.eCall.MSD Mandatory parameters: none Optional parameters: none Encoding scheme: binary
Encoding considerations: Uses ASN.1 PER, which is a binary encoding; when transported in SIP, binary content transfer encoding is used. 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. Sections 9 and 10 of [RFC7852] contain more discussion. Interoperability considerations: None Published specification: Annex A of EN 15722 [MSD] Applications which use this media type: Pan-European eCall compliant systems Additional information: None Magic Number: None File Extension: None Macintosh file type code: BINA Person and email address for further information: Randall Gellens, rg+ietf@randy.pensive.org Intended usage: LIMITED USE Author: The MSD specification was produced by the European Committee For Standardization (CEN). For contact information, please see <http://www.cen.eu/cen/Pages/contactus.aspx>. Change controller: The European Committee For Standardization (CEN)14.4. MIME Media Type Registration for application/ EmergencyCallData.Control+xml
IANA has added application/EmergencyCallData.Control+xml as a MIME media type, with a reference to this document, in accordance to the procedures of RFC 6838 [RFC6838] and guidelines in RFC 7303 [RFC7303].
MIME media type name: application MIME subtype name: EmergencyCallData.Control+xml Mandatory parameters: none Optional parameters: charset Indicates the character encoding of the XML content. Encoding considerations: Uses XML, which can employ 8-bit characters, depending on the character encoding used. See Section 3.2 of RFC 7303 [RFC7303]. Security considerations: 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. 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 Section 14.3 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 providers 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 callback from a PSAP merits additional consideration, since current mechanisms are not ideal for verifying that such a call is indeed a callback from a PSAP in response to an emergency call placed by the IVS. See the discussion in Section 11 and the PSAP Callback document [RFC7090]. Sections 7 and 8 of [RFC7852] contain more discussion. Interoperability considerations: None
Published specification: This document Applications which use this media type: Pan-European eCall compliant systems Additional information: None Magic Number: None File Extension: .xml Macintosh file type code: TEXT Person and email address for further information: Randall Gellens, rg+ietf@randy.pensive.org Intended usage: LIMITED USE Author: The IETF ECRIT working group Change controller: The IETF ECRIT working group14.5. Registration of the "eCall.MSD" Entry in the Emergency Call Data Types Registry
IANA has added the "eCall.MSD" entry to the "Emergency Call Data Types" registry, with a reference to this document; the "Data About" value is "The Call".14.6. Registration of the "Control" Entry in the Emergency Call Data Types Registry
IANA has added the "Control" entry to the "Emergency Call Data Types" registry, with a reference to this document; the "Data About" value is "The Call".14.7. Registration for urn:ietf:params:xml:ns:EmergencyCallData:control
This section registers a new XML namespace, as per the guidelines in RFC 3688 [RFC3688]. URI: urn:ietf:params:xml:ns:EmergencyCallData:control Registrant Contact: IETF, ECRIT working group, <ecrit@ietf.org>, as delegated by the IESG <iesg@ietf.org>.
XML: 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 Emergency Call Data Control Block</title> </head> <body> <h1>Namespace for Emergency Call Data Control Block</h1> <p>See RFC 8147</p> </body> </html> END14.8. Registry Creation
This document creates a new registry called "Emergency Call Metadata/ Control Data". The following sub-registries are created for this registry.14.8.1. Emergency Call Actions Registry
This document creates a new sub-registry called "Emergency Call Actions". As defined in [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 is clearly and fully described. In most cases, a published and stable document is referenced for the description of the action. The content of this registry includes: Name: The identifier to be used in the "action" attribute of a control <request> element. 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. The initial set of values is listed in Table 1.
+-----------+--------------------------------------+ | Name | Description | +-----------+--------------------------------------+ | send-data | See Section 9.1.3.1 of this document | +-----------+--------------------------------------+ Table 1: Emergency Call Actions Registry Initial Values14.8.2. Emergency Call Action Failure Reasons Registry
This document creates a new sub-registry called "Emergency Call Action Failure Reasons", which contains values for the "reason" attribute of the <actionResult> element. As defined in [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. The content of this registry includes: ID: A short string identifying the reason, for use in the "reason" attribute of an <actionResult> element. Description: A description of the reason. The initial set of values is listed in Table 2. +------------------+------------------------------------------------+ | ID | Description | +------------------+------------------------------------------------+ | damaged | Required components are damaged. | | | | | data-unsupported | The data item referenced in a "send-data" | | | request is not supported. | | | | | security-failure | The authenticity of the request or the | | | authority of the requestor could not be | | | verified. | | | | | unable | The action could not be accomplished (a | | | generic error for use when no other code is | | | appropriate). | | | | | unsupported | The "action" value is not supported. | +------------------+------------------------------------------------+ Table 2: Emergency Call Action Failure Reasons Registry Initial Values
14.9. The EmergencyCallData.eCall.MSD INFO Package
This document registers the EmergencyCallData.eCall.MSD INFO package in the "Info Packages Registry". Both endpoints (the IVS and the PSAP equipment) include EmergencyCallData.eCall.MSD in a Recv-Info header field per [RFC6086] to indicate the ability to receive INFO requests carrying data as described here. Support for the EmergencyCallData.eCall.MSD INFO package indicates the ability to receive eCall related body parts as specified in this document. An INFO request message carrying body parts related to an emergency call as described in this document has an Info-Package header field set to "EmergencyCallData.eCall.MSD" per [RFC6086]. The requirements of Section 10 of [RFC6086] are addressed in the following sections.14.9.1. Overall Description
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 User Agents (UAs) can use the INFO package. INFO requests associated with the EmergencyCallData.eCall.MSD INFO package carry data associated with emergency calls as defined in 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.14.9.2. Applicability
This section describes why the INFO package mechanism, rather than some other mechanism, has been chosen for the specific use case. The use of the SIP INFO method is based on an analysis of the requirements against the intent and effects of the INFO method versus other approaches (which included the SIP MESSAGE method, the SIP OPTIONS method, the SIP re-INVITE method, media-plane transport, and non-SIP protocols). In particular, the transport of emergency call data blocks occurs within a SIP emergency dialog, per Section 6, and is normally carried in the initial INVITE request and response; the use of the SIP INFO method only occurs when emergency-call-related data needs to be sent mid call. While the SIP MESSAGE method could
be used, it is not tied to a SIP dialog as is the SIP INFO method and thus might not be associated with the dialog. Either SIP OPTIONS or re-INVITE methods could also be used, but they are seen as less clean than the SIP INFO method. The SIP SUBSCRIBE/NOTIFY method 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 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 the Message Session Relay Protocol (MSRP) as transport) would be disproportionately large. Based on the analyses, the SIP INFO method was chosen to provide for mid-call data transport.14.9.3. INFO Package Name
The INFO package name is EmergencyCallData.eCall.MSD14.9.4. INFO Package Parameters
None14.9.5. SIP Option-Tags
None14.9.6. INFO Request Body Parts
The body for an EmergencyCallData.eCall.MSD INFO package is a multipart (normally multipart/mixed) body containing zero or one application/EmergencyCallData.eCall.MSD parts (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. The body parts are sent per [RFC6086], and in addition, to align 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".
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). The outermost multipart that contains only body parts associated with the INFO package has a Content-Disposition value of "Info-Package".14.9.7. INFO Package Usage Restrictions
Usage is limited to vehicle-initiated emergency calls as defined in this document.14.9.8. Rate of INFO Requests
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).14.9.9. INFO Package Security Considerations
The MIME media type registrations specified for use with this INFO package (Sections 14.3 and 14.4) contain a discussion of the security and/or privacy considerations specific to that data block. See Sections 11 and 12 for a discussion of the security and privacy considerations of the data carried in eCalls.14.9.10. Implementation Details
See Sections 6 and 7 for protocol details.14.9.11. Examples
See Section 10 for protocol examples.
15. References
15.1. Normative References
[MSD] European Committee for Standardization, "Intelligent transport systems - eSafety - eCall minimum set of data (MSD)", Standard: CEN - EN 15722, April 2015. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <http://www.rfc-editor.org/info/rfc2119>. [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004, <http://www.rfc-editor.org/info/rfc3688>. [RFC5031] Schulzrinne, H., "A Uniform Resource Name (URN) for Emergency and Other Well-Known Services", RFC 5031, DOI 10.17487/RFC5031, January 2008, <http://www.rfc-editor.org/info/rfc5031>. [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, DOI 10.17487/RFC5226, May 2008, <http://www.rfc-editor.org/info/rfc5226>. [RFC6086] Holmberg, C., Burger, E., and H. Kaplan, "Session Initiation Protocol (SIP) INFO Method and Package Framework", RFC 6086, DOI 10.17487/RFC6086, January 2011, <http://www.rfc-editor.org/info/rfc6086>. [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type Specifications and Registration Procedures", BCP 13, RFC 6838, DOI 10.17487/RFC6838, January 2013, <http://www.rfc-editor.org/info/rfc6838>. [RFC6881] Rosen, B. and J. Polk, "Best Current Practice for Communications Services in Support of Emergency Calling", BCP 181, RFC 6881, DOI 10.17487/RFC6881, March 2013, <http://www.rfc-editor.org/info/rfc6881>. [RFC7303] Thompson, H. and C. Lilley, "XML Media Types", RFC 7303, DOI 10.17487/RFC7303, July 2014, <http://www.rfc-editor.org/info/rfc7303>.
[RFC7852] Gellens, R., Rosen, B., Tschofenig, H., Marshall, R., and J. Winterbottom, "Additional Data Related to an Emergency Call", RFC 7852, DOI 10.17487/RFC7852, July 2016, <http://www.rfc-editor.org/info/rfc7852>.15.2. Informative references
[CEN] "European Committee for Standardization (CEN)", <http://www.cen.eu>. [EN_16062] European Committee for Standardization, "Intelligent transport systems - eSafety - eCall High Level Application Requirements (HLAP) Using GSM/UMTS Circuit Switched Networks", Standard: CEN - EN 16062, April 2015. [EN_16072] European Committee for Standardization, "Intelligent transport systems - eSafety - Pan-European eCall operating requirements", Standard: CEN - EN 16072, April 2015. [MSG_TR] ETSI, "Mobile Standards Group (MSG); eCall for VoIP", ETSI TR 103 140 V1.1.1, April 2014. [RFC5012] Schulzrinne, H. and R. Marshall, Ed., "Requirements for Emergency Context Resolution with Internet Technologies", RFC 5012, DOI 10.17487/RFC5012, January 2008, <http://www.rfc-editor.org/info/rfc5012>. [RFC5069] Taylor, T., Ed., Tschofenig, H., Schulzrinne, H., and M. Shanmugam, "Security Threats and Requirements for Emergency Call Marking and Mapping", RFC 5069, DOI 10.17487/RFC5069, January 2008, <http://www.rfc-editor.org/info/rfc5069>. [RFC6443] Rosen, B., Schulzrinne, H., Polk, J., and A. Newton, "Framework for Emergency Calling Using Internet Multimedia", RFC 6443, DOI 10.17487/RFC6443, December 2011, <http://www.rfc-editor.org/info/rfc6443>. [RFC7090] Schulzrinne, H., Tschofenig, H., Holmberg, C., and M. Patel, "Public Safety Answering Point (PSAP) Callback", RFC 7090, DOI 10.17487/RFC7090, April 2014, <http://www.rfc-editor.org/info/rfc7090>. [RFC7378] Tschofenig, H., Schulzrinne, H., and B. Aboba, Ed., "Trustworthy Location", RFC 7378, DOI 10.17487/RFC7378, December 2014, <http://www.rfc-editor.org/info/rfc7378>.
[RFC8148] Gellens, R., Rosen, B., and H. Tschofenig, "Next- Generation Vehicle-Initiated Emergency Calls", RFC 8148, DOI 10.17487/RFC8148, May 2017, <http://www.rfc-editor.org/info/rfc8148>. [SDO-3GPP] "3rd Generation Partnership Project (3GPP)", <http://www.3gpp.org/>. [SDO-ETSI] "European Telecommunications Standards Institute (ETSI)", <http://www.etsi.org>. [TS22.101] 3GPP, "Universal Mobile Telecommunications System (UMTS); Service aspects; Service principles", 3GPP TS 22.101, version 8.7.0, Release 8, January 2008. [TS23.167] 3GPP, "IP Multimedia Subsystem (IMS) emergency sessions", 3GPP TS 23.167, version 9.6.0, Release 9, March 2011. [TS24.229] 3GPP, "IP multimedia call control protocol based on Session Initiation Protocol (SIP) and Session Description Protocol (SDP); Stage 3", 3GPP TS 24.229, version 12.6.0, Release 12, October 2014.Acknowledgments
We would like to thank Bob Williams and Ban Al-Bakri for their feedback and suggestions; Rex Buddenberg, Lena Chaponniere, Alissa Cooper, Keith Drage, Stephen Edge, Wes George, Mirja Kuehlewind, Allison Mankin, Alexey Melnikov, Ivo Sedlacek, and James Winterbottom for their review and comments; Robert Sparks and Paul Kyzivat for their help with the SIP mechanisms; and 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.Contributors
Brian Rosen was a co-author of the original document upon which this document is based.
Authors' Addresses
Randall Gellens Core Technology Consulting Email: rg+ietf@coretechnologyconsulting.com URI: http://www.coretechnologyconsulting.com Hannes Tschofenig Individual Email: Hannes.Tschofenig@gmx.net URI: http://www.tschofenig.priv.at