All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
eCall

API Reference


eCall is a technology initiative intended to bring rapid assistance to auto accidents anywhere in the European Union. When a serious vehicle accident occurs, sensors automatically trigger an eCall. When activated, the in-vehicle system (IVS) establishes a 112-voice connection.

The Mobile Network Operator handles the eCall like any other 112 call and routes the call to the most appropriate emergency response centre - Public Safety Answering Point (PSAP).

At the same time, a digital "minimum set of data" (MSD) message is sent over the voice call using in-band modem signals. The MSD includes accident information like time, location, driving direction, and vehicle description.

The eCall can also be activated manually. The mobile network operator identifies that the 112 call is an eCall from the “eCall flag” inserted by the vehicle’s communication module.

Note
eCall service is only available on automotive products.

eCall Session

Start an eCall session by creating an eCall object that calls le_ecall_Create(). Stop an eCall session with le_ecall_End().

The type of eCall and the kind of activation are specified using different functions to start the eCall session:

  • le_ecall_StartManual(): initiate a manual eCall session (triggered by a passenger, can be aborted by the passengers)
  • le_ecall_StartAutomatic(): initiate an automatic eCall session (automatically triggered by the IVS in case of accident, cannot be interrupted by the passengers)
  • le_ecall_StartTest(): initiate a test eCall session (to test the communication between the IVS and the PSAP)

When the eCall object is no longer needed, call le_ecall_Delete() to free all allocated resources associated with the object.

The current state of an eCall session can be queried using le_ecall_GetState(). Alternatively, an application can register a handler be notified when the session state changes. The handler can be managed using le_ecall_AddStateChangeHandler() and le_ecall_RemoveStateChangeHandler().

Minimum Set of Data (MSD)

The dynamic values of the MSD can be set with:

The static values are retrieved from the configuration tree.

It's possible to import a prepared MSD using the le_ecall_ImportMsd() function. The prepared MSD must answer the requirements described in the "EN 15722:2013" publication (this publication has been prepared by Technical Committee CEN/TC 278 “Intelligent Transport Systems").

Note
The MSD transmission is performed automatically after the emergency call is established with the PSAP.

Concurrency

If another application tries to use the eCall service while a session is already in progress, the le_ecall_StartManual(), le_ecall_StartAutomatic(), le_ecall_StartTest() and le_ecall_End() functions will return a LE_DUPLICATE error. The eCall session in progress won't be interrupted or disturbed. The application can follow the session progress with 'state' functions like le_ecall_GetState() and le_ecall_AddStateChangeHandler(). A manual eCall can't interrupt an automatic eCall, and an automatic eCall can't interrupt a manual eCall.

Code sample

The following code sample shows how an eCall session is used:

le_result_t TriggerAutomaticEcall
(
uint32_t paxCount,
int32_t latitude,
int32_t longitude,
int32_t direction
)
{
// Create the eCall Session
// Set the dynamic MSD values, the static values are retrieved from the config tree
true,
latitude,
longitude,
direction);
le_ecall_SetMsdPassengersCount(eCallRef, paxCount);
// Start the eCall session
}

Configuration tree

The configuration database path for the eCall is:

/
    modemServices/
        eCall/
            psap<string> = <PSAP number>
            pushPull<string> = <push-pull mode>
            msdVersion<int> = <MSD value>
            maxRedialAttempts<int> = <maximum redial attempts value>
            vehicleType<string> = <vehicle type>
            vin<string> = <VIN>
            propulsionType/
                0<string> = <propulsion type>
                1<string> = <propulsion type>
                ...

The 'psap' field is the PSAP number.

The 'pushPull' field can be set with the following two choices (string type):

  • "Push": the MSD is pushed by the IVS
  • "Pull": the MSD is sent when requested by the PSAP

The 'msdVersion' field is the MSD format version.

The 'maxRedialAttempts' field is the time of that the IVS shall attempt to redial the call if the initial eCall attempt fails to connect, or the call is dropped for any reason other than by the PSAP operator clearing the call down or T2 (IVS Call Clear-down Fallback Timer) ends.

The 'vehicleType' field can be set with the following choices (string type):

  • "Passenger-M1" (Passenger vehicle, Class M1)
  • "Bus-M2" (Buses and coaches, Class M2)
  • "Bus-M3" (Buses and coaches, Class M3)
  • "Commercial-N1" (Light commercial vehicles, Class N1)
  • "Heavy-N2" (Heavy duty vehicles, Class N2)
  • "Heavy-N3" (Heavy duty vehicles, Class N3)
  • "Motorcycle-L1e" (Motorcycles, Class L1e)
  • "Motorcycle-L2e" (Motorcycles, Class L2e)
  • "Motorcycle-L3e" (Motorcycles, Class L3e)
  • "Motorcycle-L4e" (Motorcycles, Class L4e)
  • "Motorcycle-L5e" (Motorcycles, Class L5e)
  • "Motorcycle-L6e" (Motorcycles, Class L6e)
  • "Motorcycle-L7e" (Motorcycles, Class L7e)

The 'vin' is the vehicle identification number (string type).

The 'propulsionType' field can be set with the following choices (string type):

  • "Gasoline" (Gasoline propulsion)
  • "Diesel" (Diesel propulsion)
  • "NaturalGas" (Compressed natural gas propulsion)
  • "Propane" (Liquid propane gas propulsion)
  • "Electric" (Electric propulsion)
  • "Hydrogen" (Hydrogen propulsion)
  • "Other" (Other type of propulsion)

Copyright (C) Sierra Wireless, Inc. 2014. All rights reserved. Use of this work is subject to license.