ECRIT | R. Gellens |
Internet-Draft | Qualcomm Technologies, Inc. |
Intended status: Informational | H. Tschofenig |
Expires: April 20, 2016 | (Individual) |
October 18, 2015 |
Next-Generation Pan-European eCall
draft-ietf-ecrit-ecall-04.txt
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. eCall deployment is required in the very near future in European Union member states, and eCall (and eCall-compatible systems) are also being deployed in other regions. eCall provides an integrated voice path and a standardized set of vehicle, sensor (e.g., crash related), and location data. An eCall is recognized and handled as a specialized form of emergency call and is routed to a specialized eCall-capable Public Safety Answering Point (PSAP) capable of processing the vehicle data and trained in handling emergency calls from vehicles.
Currently, eCall functions over circuit-switched cellular telephony; work on next-generation eCall (NG-eCall, sometimes called packet-switched eCall or PS-eCall) is now in process, and this document assists in that work by describing how to support eCall within the IP-based emergency services infrastructure.
This document also registers a MIME Content Type and an Emergency Call Additional Data Block for the eCall vehicle data.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 20, 2016.
Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
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 [RFC2119].
This document re-uses terminology defined in Section 3 of [RFC5012].
Additionally, we use the following abbreviations:
Term | Expansion |
---|---|
3GPP | 3rd Generation Partnership Project |
CEN | European Committee for Standardization |
EENA | European Emergency Number Association |
ESInet | Emergency Services IP network |
IMS | Internet Multimedia Subsystem |
IVS | In-Vehicle System |
MNO | Mobile Network Operator |
MSD | Minimum Set of Data |
PSAP | Public Safety Answering Point |
This document is limited to the signaling, data exchange, and protocol needs of next-generation eCall (NG-eCall, also referred to as packet-switched eCall (PS-eCall) and all-IP eCall) within the SIP framework for emergency calls, as described in [RFC6443] and [RFC6881]. eCall itself is specified by 3GPP and CEN and these specifications include far greater scope than is covered here.
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).
The technical contents of this document can be suitable for use in other vehicle-initiated emergency call systems, but this is out of scope for this document.
Vehicles designed for multiple regions might need to support eCall and other Advanced Automatic Crash Notification (AACN) systems, such as described in [draft-ietf-ecrit-car-crash]. That system is compatible with eCall, differing primarily in the specific data set that is sent.
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.
The European Commission initiative of eCall was conceived in the late 1990s, and has evolved to a European Parliament decision requiring the implementation of compliant in-vehicle systems (IVS) in new vehicles and the deployment of eCall in the European Member States in the very near future. eCall (and eCall-compatible systems) are also being adopted in other regions.
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 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.
An eCall can be either user-initiated or automatically triggered. Automatically triggered eCalls indicate a car crash or some other serious incident and carry a greater presumption of risk of injury. Manually triggered eCalls might be reports of serious hazards and are likely to require a different response than an automatically triggered eCall. Manually triggered eCalls are also more likely to be false (e.g., accidental) calls and so might be subject to different operational handling by the PSAP.
Currently, eCall is standardized (by 3GPP [SDO-3GPP] and CEN [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). Work on next-generation eCall (NG-eCall, also referred to as packet-switched eCall or PS eCall) is now in process. As part of this work, the European Telecommunications Standards Institute (ETSI) [SDO-ETSI] has published a Technical Report titled "Mobile Standards Group (MSG); eCall for VoIP" [MSG_TR] that presents findings and recommendations regarding support for eCall in an all-IP environment. NG-eCall moves from circuit switched to all-IP, and carries the vehicle data and other eCall-specific data as additional data associated with the call. This document describes how IETF mechanisms for IP-based emergency calls, including [RFC6443] and [additional-data-draft] are used to provide the signaling and data exchange of the next generation of pan-European eCall.
The [MSG_TR] recommendation for NG-eCall is to use 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. 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).
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. This transition period might last several years or longer. The issue of migration/co-existence during the transition period is very important but is outside the scope of this document. The ETSI TR "Mobile Standards Group (MSG); eCall for VoIP" [MSG_TR] discusses these issues in Clause 7.
Overall eCall requirements are specified by CEN in [EN_16072] and by 3GPP in [TS22.101] clauses 10.7 and A.27. Requirements specific to vehicle data are contained in EN 15722 [msd]. For convenience, the requirements most applicable to the limited scope of this document are summarized very briefly below.
eCall requires:
It is recognized that NG-eCall offers many potential enhancements, although these are not required by current EU regulations. For convenience, the enhancements most applicable to the limited scope of this document are summarized very briefly below.
NG-eCall is expected to offer:
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 [msd], along with both ASN.1 and XML encodings for the MSD [msd]. Circuit-switched eCall uses the ASN.1 encoding. The XML encoding is better suited for use in SIP messages and is used in this document. (The ASN.1 encoding is specified in Annex A of EN 15722 [msd], while the XML encoding is specified in Annex C.)
The "Additional Data related to an Emergency Call" document [additional-data-draft] establishes a general mechanism for attaching blocks of data to a SIP emergency call. This document makes use of that mechanism to carry the eCall MSD in a SIP emergency call.
This document registers the 'application/emergencyCallData.eCall.MSD+xml' MIME Content-Type to enable the MSD to be carried in SIP. This document also adds the 'eCall.MSD' entry to the Emergency Call Additional Data Blocks registry (established by [additional-data-draft]) to enable the MSD to be recognized as such in a SIP-based eCall emergency call.
Note that if additional data sets are defined and registered (e.g., in the future or in other regions) and transmitted using the same mechanisms, the size and frequency of transmission during a session needs to be evaluated to be sure it is appropriate to use the signaling channel.
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).
///----\\\ 112 voice call with eCall flag +------+ ||| IVS |||---------------------------------------->+ PSAP | \\\----/// vehicle data via eCall in-band modem +------+
Figure 1: circuit-switched eCall
An In-Vehicle System (IVS) which supports NG-eCall transmits the MSD in accordance with [additional-data-draft] by encoding it as specified (per Appendix C of EN 15722 [msd]) and attaching it to an INVITE as a MIME body part. The body part is identified by its MIME content-type ('application/emergencyCallData.eCall.MSD+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 INVITE is marked as containing the MSD by adding (or appending to) a Call-Info header field at the top level of the INVITE. 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 registry entry; the 'purpose' parameter's value is 'emergencyCallData.' and the root of the MIME type (not including the 'emergencyCallData' prefix and any suffix such as '+xml' (e.g., 'purpose=emergencyCallData.eCall.MSD').
For NG-eCall, the IVS establishes an emergency call using the 3GPP IMS solution with a Request-URI indicating an eCall type of emergency call and with vehicle data attached; the MNO or ESInet recognizes the eCall URN and routes the call to a NG-eCall capable PSAP; the PSAP interpets the vehicle data sent with the call and makes it available to the call taker.
///----\\\ IMS emergency call with eCall URN +------+ IVS ----------------------------------------->+ PSAP | \\\----/// vehicle data included in call setup +------+
Figure 2: NG-eCall
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 can be subject to different treatment, depending on policy). The two service URNs are: urn:service:sos.ecall.automatic and urn:service:sos.ecall.manual
The routing rules for eCalls are likely to differ from those of other emergency calls because eCalls are special types of emergency calls (with implications for the types of response required) and need to be handled by specially designated PSAPs. In an environment that uses ESInets, the originating network passes all types of emergency calls to an ESInet (which have a request URI containing the "SOS" service URN). The ESInet is then responsible for routing such calls to the appropriate PSAP. In an environment without an ESInet, the emergency services authorities and the originating network jointly determine how such calls are routed.
This section provides background information on ESInets for information only.
An Emergency Services IP Network (ESInet) is a network operated by emergency services authorities. It handles emergency call routing and processing before delivery to a PSAP. In the NG1-1-2 architecture adopted by EENA, each PSAP is connected to one or more ESInets. Each originating network is also connected to one or more ESInets. The ESInets maintain policy-based routing rules which control the routing and processing of emergency calls. The centralization of such rules within ESInets provides for a cleaner separation between the responsibilities of the originating network and that of the emergency services network, and provides greater flexibility and control over processing of emergency calls by the emergency services authorities. This makes it easier to react quickly to unusual situations that require changes in how emergency calls are routed or handled (e.g., a natural disaster closes a PSAP), as well as ease in making long-term changes that affect such routing (e.g., cooperative agreements to specially handle calls requiring translation or relay services). ESInets might support the ability to interwork NG-eCall to legacy eCall to handle eCall-capable PSAPs that are not IP PSAPs (similarly to the ability to interwork IP emergency calls to legacy non-IP PSAPs). Note that in order to support legacy eCall-capable PSAPs that are not IP PSAPs and are not attached to an ESInet, an originating network might need the ability to route an eCall itself (e.g., to an interworking facility with interconnection to a suitable legacy eCall capable PSAP) based on the eCall and manual or automatic indications. The ETSI TR "Mobile Standards Group (MSG); eCall for VoIP" [MSG_TR] discusses transition issues in Clause 7.
eCall requires the ability to place test calls. 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 test call facility allows the IVS or user to verify that an eCall can be successfully established with voice communication. The IVS can also verify that the MSD was successfully received.
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 [RFC6881].
This document registers "urn:service:test.sos.ecall" for eCall test calls.
the current eCall test call facility is a non-emergency number so does not get treated as an emergency call. MNOs can treat a vehicle call in the "test" service URN in a way that tests as much functionality as desired, but this is outside the scope of this document.
PSAPs that have the ability to process NG-eCalls SHOULD accept test calls and send an acknowledgment if the MSD was successfully received, per this document. Such PSAPs MAY also play an audio clip (for example, saying that the call reached a PSAP) in addition to supporting media loopback per [RFC6881].
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 the vehicle's state or location has changed). Future enhancements are desired to enable the PSAP to send other requests to the vehicle, such as locking or unlocking doors, sounding the horn, flashing the lights, starting a video stream from on-board cameras (such as rear focus or blind-spot), etc.
The mechanism established in [additional-data-draft], used in Section 5 of this document to carry the MSD from the IVS to the PSAP, is also used to carry a block of control data from the PSAP to the IVS. This eCall control block (sometimes referred to as eCall metadata) is an XML structure containing eCall-specific elements. When the PSAP needs to send an eCall control block that is in response to the MSD or other data sent by the IVS in a SIP request, the control block can be sent in the SIP response to that request (e.g., the INVITE). When the PSAP needs to send an eCall control block that is not an immediate response to an MSD or other data sent by the IVS, the control block can be transmitted from the PSAP to the IVS in a SIP INFO message within the established session. The IVS can then send any requested data (such as a new MSD) in the reply to the INFO message. This mechanism flexibly allows the PSAP to send eCall-specific data to the IVS and the IVS to respond. If control data sent in a response message requests the IVS to send a new MSD or other data block, or to perform an action other than sending data, the IVS can send the requested data or an acknowledgment regarding the action in an INFO message within the session (it could also use re-INVITE but that is unnecessary when no aspect of the session or media is changing).
This mechanism requires
The eCall control block is an XML data structure allowing for acknowledgments, requests, and capabilities information. It is carried in a SIP body part with a specific MIME content type. Three top-level elements are defined for use within an eCall control block:
Mandatory Actions (the IVS and the PSAP MUST support):
The <ack> element indicates the object being acknowledged (i.e., a data object or a <request> element), and reports success or failure.
The <capabilities> element has child <request> elements to indicate the actions supported by the IVS.
The <request> element contains attributes to indicate the request and to supply any needed information, and MAY contain a <text> child element to contain the text for a dynamic message. The 'action' attribute is mandatory and indicates the specific action. An IANA registry is created in Section 14.8.1 to contain the allowed values.
Extensibility: New elements, child elements, and attributes can be defined in new namespaces. IANA registries are used to specify the permitted values of several elements and attributes. These mechanisms allow for extension.
There is no 'request' action to play dynamic media (such as a pre-recorded audio message). The SIP re-INVITE mechanism can be used to establish a one-way media stream for this purpose.
The <ack> element is transmitted by the PSAP to acknowledge receipt of an eCall data object. An <ack> element sent by a PSAP references the unique ID of the data object that was sent by the IVS, and further indicates if the PSAP considers the receipt successful or not. The <ack> element is also transmitted by the IVS to the PSAP to acknowledge receipt of a <request> element that requested the IVS to perform an action other than transmitting a data object (e.g., a request to display a message would be acknowledged, but a request to transmit a data object would not result in a separate <ack> element being sent, since the data object itself serves as acknowledgment.) An <ack> element sent by an IVS references the unique ID of the request being acknowledged, indicates whether the request was successfully performed, and if not, optionally includes an explanation.
The <ack> element has the following attributes and child elements:
The <ack> element has the following attributes:
The <ack> element has the following child elements:
<?xml version="1.0" encoding="UTF-8"?> <EmergencyCallData.eCallControl xmlns="urn:ietf:params:xml:ns:EmergencyCallData:eCall-control" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:EmergencyCallData: eCall-control"> <ack received="true" ref="1234567890@atlanta.example.com"/> </EmergencyCallData.eCallControl>
Figure 3: Ack Example from PSAP to IVS
<?xml version="1.0" encoding="UTF-8"?> <EmergencyCallData.eCallControl xmlns="urn:ietf:params:xml:ns:EmergencyCallData:eCall-control" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:EmergencyCallData: eCall-control"> <ack ref="1234567890@atlanta.example.com"> <actionResult action="msg-dynamic" success="true"/> <actionResult action="lamp" success="false" reason="unable" details="The requested lamp is inoperable"/> </ack> </EmergencyCallData.eCallControl>
Figure 4: Ack Example from IVS to PSAP
The <capabilities> 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:
The <capabilities> element has the following child elements:
<?xml version="1.0" encoding="UTF-8"?> <EmergencyCallData.eCallControl xmlns="urn:ietf:params:xml:ns:EmergencyCallData:eCall-control" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:EmergencyCallData: eCall-control"> <capabilities> <request action="send-data" supported-datatypes="eCall.MSD"/> <request action="lamp" supported-lamps="head;interior;fog-front;fog-rear;brake; position-front;position-rear;turn-left;turn-right;hazard"/> <request action="msg-static" msgid="3"/> <request action="msg-dynamic"/> <request action="honk"/> <request action="enable-camera" supported-cameras="backup; interior"/> </capabilities> </EmergencyCallData.eCallControl>
Figure 5: Capabilities Example
A <request> element appears one or more times on its own or as a child of a <capabilities> element. The following attributes and child elements are defined:
The <request> element has the following attributes:
The <request> element has the following child elements:
<?xml version="1.0" encoding="UTF-8"?> <EmergencyCallData.eCallControl xmlns="urn:ietf:params:xml:ns:EmergencyCallData:eCall-control" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:EmergencyCallData: eCall-control"> <request action="send-data" datatype="eCall.MSD"/> <request action="lamp" lamp-id="hazard" lamp-action="flash" persistance="PT1H"/> <request action="msg-static" msgid="1"/> <request action="msg-dynamic"> <text>Remain calm. Help is on the way.</text> </request> </EmergencyCallData.eCallControl>
Figure 6: Request Example
This document registers the 'emergencyCallData.eCall' INFO package. Both endpoints (the IVS and the PSAP equipment) set the Recv-Info header field to 'emergencyCallData.eCall' per [RFC6086] to indicate ability to receive INFO messages carrying eCall data or control blocks.
Support for the 'emergencyCallData.eCall' INFO package indicates the ability to receive eCall data and control blocks, which are carried in a body part whose subtype starts with 'emergencyCallData.eCall.'. At present there is only one defined eCall data block, which has the 'application/emergencyCallData.eCall.MSD+xml' MIME type, and one eCall control block, which has the 'application/emergencyCallData.eCall.control+xml' MIME type. The eCall control block includes the ability for the IVS to indicate its capabilities, so in the event additional eCall blocks are defined, the IVS can indicate which it supports.
The use of INFO is based on an analysis of the requirements against the intent and effects of INFO versus other approaches (such as SIP MESSAGE, media plane, or non-SIP protocols). In particular, the transport of eCall data and control blocks is done only during an emergency session established with SIP, using the mechanism established in [additional-data-draft], and is normally carried in the initial INVITE and its response; the use of INFO only occurs when a data block or request needs to be sent subsequently during the call. While MESSAGE could be used, it is not tied to a SIP session as is INFO. REINVITE could also be used, but is normally used to modify the session. SUBSCRIBE/NOTIFY could be coerced into service, but the semantics are not a clean fit. Hence, INFO is appropriate.
An INFO request message carrying an eCall data or control block has an Info-Package header field set to 'emergencyCallData.eCall' per [RFC6086]. The INFO request message is marked as containing the eCall data or control block by a Call-Info header field containing a CID URL referencing the unique identifier of the body part containing the eCall data or control, and a 'purpose' parameter identifying the block. Because the eCall data or control block is being carried in an INFO request message, the body part also carries a Content-Disposition header field set to "Info-Package".
Per [additional-data-draft], emergency call related additional data MAY be included in any SIP request or response message that can contain a body. Hence, notwithstanding Section 4.3.2. of [RFC6086], INFO response messages MAY contain eCall data or control blocks, provided they are included as described in this document (with a Call-Info header field containing a CID URL referencing the unique identifier of the body part, and a 'purpose' parameter identifying the block). When eCall data or control blocks are included in an INFO response message, this is done per [additional-data-draft] and this document, and not under [RFC6086]; that is, they are included as emergency call additional data, not as an INFO package associated data.
Figure 7 shows 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 (as for any emergency call in an environment with an ESInet). The ESInet 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.
+------------+ +---------------------------------------+ | | | +-------+ | | | | | PSAP2 | | | | | +-------+ | | | | | | | | +------+ +-------+ | Vehicle-->| |--+->| ESRP |---->| PSAP1 |--> Call-Taker | | | | +------+ +-------+ | | | | | | | | +-------+ | | | | | PSAP3 | | | Originating| | +-------+ | | Mobile | | | | Network | | ESInet | +------------+ +---------------------------------------+
Figure 7: Example of NG-eCall Message Flow
The example, shown in Figure 8, illustrates a SIP eCall INVITE that contains an MSD and an eCall control block with vehicle capabilities. For simplicity, the example does not show all SIP headers, nor does it show the additional data blocks added by the IVS and the originating mobile network.
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; cid:2345678901@atlanta.example.com; purpose=emergencyCallData.eCall.control; Accept: application/sdp, application/pidf+xml, application/emergencyCallData.eCall.control CSeq: 31862 INVITE Recv-Info: emergencyCallData.eCall Content-Type: multipart/mixed; boundary=boundary1 Content-Length: ... --boundary1 Content-Type: application/sdp ...Session Description Protocol (SDP) goes here... --boundary1 Content-Type: application/emergencyCallData.eCall.MSD+xml Content-ID: 1234567890@atlanta.example.com Content-Disposition: by-reference;handling=optional <ECallMessage> <id>1</id> <msd> <msdStructure> <messageIdentifier>1</messageIdentifier> <control> <automaticActivation> <true/> </automaticActivation> <testCall> <false/> </testCall> <positionCanBeTrusted> <true/> </positionCanBeTrusted> <vehicleType> <passengerVehicleClassM1/> </vehicleType> </control> <vehicleIdentificationNumber> <isowmi>WMI</isowmi> <isovds>VDSVDS</isovds> <isovisModelyear>Y</isovisModelyear> <isovisSeqPlant>A123456</isovisSeqPlant> </vehicleIdentificationNumber> <vehiclePropulsionStorageType> <gasolineTankPresent> <true/> </gasolineTankPresent> <electricEnergyStorage> <true/> </electricEnergyStorage> </vehiclePropulsionStorageType> <timestamp>123456789</timestamp> <vehicleLocation> <positionLatitude>173881200</positionLatitude> <positionLongitude>41822520</positionLongitude> </vehicleLocation> <vehicleDirection>14</vehicleDirection> <recentVehicleLocationN1> <latitudeDelta>10</latitudeDelta> <longitudeDelta>-10</longitudeDelta> </recentVehicleLocationN1> <recentVehicleLocationN2> <latitudeDelta>10</latitudeDelta> <longitudeDelta>-20</longitudeDelta> </recentVehicleLocationN2> <numberOfPassengers>2</numberOfPassengers> </msdStructure> <optionalAdditionalData> <oid>1.2.125</oid> <data>30304646</data> </optionalAdditionalData> </msd> </ECallMessage> --boundary1 Content-Type: application/emergencyCallData.eCall.control+xml Content-ID: 2345678901@atlanta.example.com Content-Disposition: by-reference;handling=optional <?xml version="1.0" encoding="UTF-8"?> <EmergencyCallData.eCallControl xmlns="urn:ietf:params:xml:ns:EmergencyCallData:eCall-control" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:EmergencyCallData: eCall-control"> <capabilities> <request action="send-data" supported-datatypes="eCall.MSD"/> <request action="lamp" supported-lamps="head;interior;fog-front;fog-rear; brake;position-front;position-rear;turn-left; turn-right;hazard"/> <request action="msg-static" msgid="3"/> <request action="msg-dynamic"/> <request action="honk"/> <request action="enable-camera" supported-cameras="backup; interior"/> </capabilities> </EmergencyCallData.eCallControl> --boundary1--
Figure 8: SIP NG-eCall INVITE
Continuing the example, Figure 9 illustrates a SIP 200 OK response to the INVITE of Figure 8, containing an eCall 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: <sip:+13145551111@example.com>;tag=9fxced76sl From: Exemplar PSAP <urn:service:sos.ecall.automatic> Call-ID: 3848276298220188511@atlanta.example.com Call-Info: cid:2345678901@atlanta.example.com; purpose=emergencyCallData.eCall.control; Accept: application/sdp, application/pidf+xml, application/emergencyCallData.eCall.control, application/emergencyCallData.eCall.MSD CSeq: 31862 INVITE Recv-Info: emergencyCallData.eCall Content-Type: multipart/mixed; boundary=boundaryX Content-Length: ... --boundaryX Content-Type: application/sdp ...Session Description Protocol (SDP) goes here... --boundaryX Content-Type: application/EmergencyCallData:eCall-control+xml Content-ID: 2345678901@atlanta.example.com Content-Disposition: by-reference;handling=optional <?xml version="1.0" encoding="UTF-8"?> <EmergencyCallData.eCallControl xmlns="urn:ietf:params:xml:ns:EmergencyCallData:eCall-control" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:EmergencyCallData: eCall-control"> <ack received="true" ref="1234567890@atlanta.example.com"/> </EmergencyCallData.eCallControl> --boundaryX--
Figure 9: 200 OK response to INVITE
The security considerations described in [RFC5069] apply here.
In addition to any network-provided location that is inherently permitted for IMS emergency calls (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 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.
The mechanism by which the PSAP sends acknowledgments and requests to the vehicle requires authenticity considerations; when the PSAP request is received within a session initiated by the vehicle as an eCall emergency call placed over a cellular network, there is a higher degree of trust that the source is indeed a PSAP. If the PSAP request is received in other situations, such as a call-back, the trust issues in verifying that a call-back is indeed from a PSAP are more complex (see the PSAP Callback document [RFC7090]). A further 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.
Since this document builds on [additional-data-draft], the data structures specified there, and the corresponding privacy considerations discussed there, apply here as well. The MSD carries some additional 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. The additional functionality enabled by this document, such as access to vehicle camera streams, carries a burden of protection and so implementations need to be careful that access is only provided within the context of an emergency call and to an emergency services provider, for example, within a vehicle-initiated emergency call or by verifying that the request for camera access is signed by a certificate issued by an emergency services registrar.
This section defines the XML schema of the eCall control block. (The schema for the MSD can be found in EN 15722 [msd].)
<?xml version="1.0"?> <xs:schema targetNamespace="urn:ietf:params:xml:ns:EmergencyCallData:eCall-control" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:pi="urn:ietf:params:xml:ns:EmergencyCallData:eCall-control" xmlns:xml="http://www.w3.org/XML/1998/namespace" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2009/01/xml.xsd"/> <xs:element name="EmergencyCallData.eCallControl" type="pi:eCallControlType"/> <xs:complexType name="eCallControlType"> <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="##other" 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"> <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="##other" 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="##other" 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="##other" 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-datatypes" type="xs:string"/> <xs:attribute name="lamp-id" type="xs:token"/> <xs:attribute name="lamp-action"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value=""/> <xs:pattern value=""/> <xs:enumeration value="on"/> <xs:enumeration value="off"/> <xs:enumeration value="flash"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="supported-lamps" type="xs:string"/> <xs:attribute name="camera-id" type="xs:token"/> <xs:attribute name="supported-cameras" type="xs:string"/> <xs:anyAttribute/> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:schema>
Figure 10: eCall Control Block Schema
IANA is requested to register the URN 'urn:service:sos.ecall' under the sub-services 'sos' registry defined in Section 4.2 of [RFC5031].
This service identifies a type of emergency call (placed by a specialized in-vehicle system and a carrying standardized set of data related to the vehicle and crash or incident, and is needed to direct the call to a specialized public safety answering point (PSAP) with technical and operational capabilities to handle such calls. Two sub-services are registered as well, namely
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 [RFC6881].
IANA is requested to add application/emergencyCallData.eCall.MSD+xml as a MIME content type, with a reference to this document, in accordance to the procedures of RFC 6838 [RFC6838] and guidelines in RFC 7303 [RFC7303].
IANA is requested to add application/emergencyCallData.eCall.control+xml as a MIME content type, with a reference to this document, in accordance to the procedures of RFC 6838 [RFC6838] and guidelines in RFC 7303 [RFC7303].
This specification requests IANA to add the 'eCall.MSD' entry to the Emergency Call Additional Data Blocks registry (established by [additional-data-draft]), with a reference to this document.
This specification requests IANA to add the 'eCall.control' entry to the Emergency Call Additional Data Blocks registry (established by [additional-data-draft]), with a reference to this document.
IANA is requested to add emergencyCallData.eCall to the Info Packages Registry under "Session Initiation Protocol (SIP) Parameters", with a reference to this document.
This section registers a new XML namespace, as per the guidelines in RFC 3688 [RFC3688].
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
This section registers a new XML namespace, as per the guidelines in RFC 3688 [RFC3688].
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
This document creates a new registry called 'eCall Control Data'. The following sub-registries are created for this registry.
This document creates a new sub-registry called "eCall Control Action Registry". 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 the actions 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:
The initial set of values is listed in Table 2.
Name | Description |
---|---|
send-data | Section xxx of this document |
msg-static | Section xxx of this document |
msg-dynamic | Section xxx of this document |
honk | Section xxx of this document |
lamp | Section xxx of this document |
enable-camera | Section xxx of this document |
This document creates a new sub-registry called "eCall Static Message Registry". Because all compliant vehicles are expected to support all static messages translated into all languages supported by the vehicle, it is important to limit the number of such messages. As defined in [RFC5226], this registry operates under "Publication Required" rules, which require a stable, public document and imply expert review of the publication. The expert should determine that the document has been published by an appropriate emergency services organization (e.g., NENA, EENA, APCO) and that the proposed message is sufficiently distinguishable from other messages.
The content of this registry includes:
When new messages are added to the registry, the message text is determined by the registrant; IANA assigns the IDs. Each message is assigned a consecutive integer value as its ID. This allows an IVS to indicate by a single integer value that it supports all messages with that value or lower.
The initial set of values is listed in Table 3.
ID | Message |
---|---|
1 | Emergency authorities are aware of your incident and location, but are unable to speak with you right now. We will help you as soon as possible. |
This document creates a new sub-registry called "eCall Reason Registry" 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:
The initial set of values is listed in Table 4.
ID | Description |
---|---|
unsupported | The 'action' is not supported. |
unable | The 'action' could not be accomplished. |
data-unsupported | The data item referenced in a 'send-data' request is not supported. |
This document creates a new sub-registry called "eCall Lamp ID Registry" to standardize the names of automotive lamps (lights). As defined in [RFC5226], this registry operates under "Expert Review" rules. The expert should determine that the proposed lamp name is clearly understandable and is sufficiently distinguishable from other lamp names.
The content of this registry includes:
The initial set of values is listed in Table 5.
Name | Description |
---|---|
head | The main lamps used to light the road ahead |
interior | Interior lamp, often at the top center |
fog-front | Front fog lamps |
fog-rear | Rear fog lamps |
brake | Brake indicator lamps |
position-front | Front position/parking/standing lamps |
position-rear | Rear position/parking/standing lamps |
turn-left | Left turn/directional lamps |
turn-right | Right turn/directional lamps |
hazard | Hazard/four-way lamps |
This document creates a new sub-registry called "eCall Camera ID Registry" to standardize the names of automotive camera. As defined in [RFC5226], this registry operates under "Expert Review" rules. The expert should determine that the proposed camera name is clearly understandable and is sufficiently distinguishable from other camera names.
The content of this registry includes:
The initial set of values is listed in Table 6.
Name | Description |
---|---|
backup | Shows what is behind the vehicle. Also known as rearview, reverse, etc. |
interior | Shows the interior (driver) |
Brian Rosen was a co-author of the original document upon which this document is based.
We would like to thank Bob Williams and Ban Al-Bakri for their feedback and suggestions, and Keith Drage for his review comments. 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.