API Reference
Manage eCall
eCall sample app
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.
This API applies for both PAN-EUROPEAN and ERA-GLONASS standards.
All the functions of this API are provided by the modemService service.
Here's a code sample binding to modem services:
bindings: { clientExe.clientComponent.le_ecall -> modemService.le_ecall }
The modem can be configured to operate in three different operation modes:
LE_ECALL_NORMAL_MODE
: normal mode. The modem behaves following the U/SIM eCall operation mode.LE_ECALL_ONLY_MODE
: eCall only mode according to U/SIM operation mode or forced by application through the le_ecall_ForceOnlyMode() function.LE_ECALL_FORCED_PERSISTENT_ONLY_MODE
: persistent eCall only mode.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_STATE_DISCONNECTED
event before calling again the le_ecall_StartXxx()
functions.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().
An application can call le_ecall_GetTerminationReason() to know the reason of the call termination when call state is LE_ECALL_STATE_DISCONNECTED, and also le_ecall_GetPlatformSpecificTerminationCode() to get platform specific termination code (refer to your platform documentation for further details).
The dynamic values of the MSD can be set with:
The MSD is automatically encoded with the dynamic values and the static values retrieved from the configuration tree each time those functions are called.
The MSD transmission mode can be set or get with:
The transmission mode can be:
LE_ECALL_TX_MODE_PUSH
: the MSD is pushed by the IVSLE_ECALL_TX_MODE_PULL
: the MSD is sent when requested by the PSAPIt'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").
The encoded MSD can be retrieved with le_ecall_ExportMsd() function.
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() functions will return a LE_BUSY 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.
To perform an emergency call following the ERA-GLONASS requirements, the 'systemStandard' entry of the configuration database must be set to 'ERA-GLONASS'.
Moreover, the User can set some specific configuration settings in accordance with the PSAP configuration:
The corresponding getter functions let you retrieve the configuration settings values:
ERA-GLONASS additional data are optional and provided in the MSD message if any. They are located in MSD data block number 12 as optional additional data.
ERA-GLONASS MSD additional data describes:
ERA-GLONASS MSD additional data can be specified through the following functions:
ERA-GLONASS additional data is encoded using the OID version "1.4.1". This was assigned to ERA-GLONASS optional additional data by CEN. Content of data block in the AdditionalData should be:
In the case of PAN-EUROPEAN, the redial can be performed as many times as desired but should be performed within 2 minutes. (EN 16062:2014 -7.14.3).
In the case of ERA-GLONASS, the redial can be performed ECALL_MANUAL_DIAL_ATTEMPTS times within the maximal time limit of ECALL_DIAL_DURATION (GOST 54620 2013 – Appendix A).
The LE_ECALL_STATE_END_OF_REDIAL_PERIOD state event notifies the User of the redial period end.
The following code sample shows how an eCall session is used:
If you want to have a look at a more in-depth usage of these APIs, please refer to the c_ecallAppMain .
By default, the number to dial is read from the FDN/SDN (Fixed Dialling Numbers/Service Dialling Numbers) of the U/SIM, depending upon the eCall operating mode.
However, the PSAP telephone number can be specified and retrieved with:
le_ecall_UseUSimNumbers() function can be recalled to indicate the modem to read the number to dial from the FDN/SDN of the U/SIM, depending upon the eCall operating mode.
The NAD (Network Access Device, i.e. the Modem) deregistration time value can be set or get with:
Time is set in hours where:
Example: if deregTime
parameter unit is minutes, the effective time is:
After termination of an emergency call the in-vehicle system remains registered on the network for the period of time, defined by the installation parameter 'NAD_DEREGISTRATION_TIME'.
The minimum interval value between dial attempts can be set or get with:
The default value is set to 30 seconds.
The time is counted from the start of the first dial attempt.
If more time has expired during the dial attempt, it will wait for 1 second to allow hangup before redialing.
If less time has expired during the dial attempt, it will wait for (interval - 'dial attempt duration') seconds to allow hangup before redialing.
In the case the call was connected, the redial will be immediate.
le_ecall_SetIntervalBetweenDialAttempts() is available for both manual and test modes.
The configuration database path for the eCall is:
/ modemServices/ eCall/ systemStandard<string> = <eCall system> msdVersion<int> = <MSD value> vehicleType<string> = <vehicle type> vin<string> = <VIN> propulsionType/ 0<string> = <propulsion type> 1<string> = <propulsion type> ...
The 'systemStandard' is the kind of eCall system:
If no value or a bad entry is filled, the default value is 'PAN-EUROPEAN'.
The 'msdVersion' field is the MSD format version. If the field is not present, the default MSD version is version 1.
The 'vehicleType' field can be set with the following choices (string type):
The 'vin' is the vehicle identification number (string type).
The 'propulsionType' field can be set with the following choices (string type):
Several 'propulsionType' can be applied.
Copyright (C) Sierra Wireless Inc. Use of this work is subject to license.
Copyright (C) Sierra Wireless Inc. Use of this work is subject to license.