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.

This API applies for both PAN-EUROPEAN and ERA-GLONASS standards.

Note
eCall service is only available on automotive products.

IPC interfaces binding

All the functions of this API are provided by the modemService foundation service.

Here's a code sample binding to modem services:

bindings:
{
   clientExe.clientComponent.le_ecall -> modemService.le_ecall
}

Operation modes

The modem can be configured to operate in three different operation modes:

  • le_ecall_ForceOnlyMode(): this function configures the eCall operation mode to eCall only, only emergency number can be used to start an eCall session. The modem does not try to register on the Cellular network. This function forces the modem to behave as eCall only mode whatever U/SIM operation mode. The change does not persist over power cycles. This function can be called before making an eCall.
  • le_ecall_ExitOnlyMode(): this function exits from eCall Only mode. It configures the eCall operation mode to Normal mode, the modem uses the default operation mode at power up (or after U/SIM hotswap). The modem behaves following the U/SIM eCall operation mode; for example the U/SIM can be configured only for eCall, or a combination of eCall and commercial service provision.
  • le_ecall_GetConfiguredOperationMode(): this function allows the user to retrieve the configured Operation mode. The configured operation mode can be:
    • LE_ECALL_NORMAL_MODE : eCall only mode.
    • LE_ECALL_FORCED_ONLY_MODE : eCall only mode.
    • LE_ECALL_FORCED_PERSISTENT_ONLY_MODE : persistent eCall only mode.

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 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 IVS
  • LE_ECALL_TX_MODE_PULL : the MSD is sent when requested by the PSAP

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 imported MSD does not take into account the values provided by the le_ecall_SetMsdXxx() functions and the configuration tree.

The encoded MSD can be retrieved with le_ecall_ExportMsd() function.

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() 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.

ERA-GLONASS compliancy

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:

  • le_ecall_SetEraGlonassManualDialAttempts(): set the MANUAL_DIAL_ATTEMPTS value. If a dial attempt under manual emergency call initiation failed, it should be repeated maximally ECALL_MANUAL_DIAL_ATTEMPTS-1 times within the maximal time limit of ECALL_DIAL_DURATION. The default value is 10. Redial attempts stop once the call has been cleared down correctly, or if counter / timer reached their limits.
  • le_ecall_SetEraGlonassAutoDialAttempts(): set the AUTO_DIAL_ATTEMPTS value. If a dial attempt under automatic emergency call initiation failed, it should be repeated maximally ECALL_AUTO_DIAL_ATTEMPTS-1 times within the maximal time limit of ECALL_DIAL_DURATION. The default value is 10. Redial attempts stop once the call has been cleared down correctly, or if counter / timer reached their limits.
  • le_ecall_SetEraGlonassDialDuration(): set the ECALL_DIAL_DURATION time. It is the maximum time the IVS have to connect the emergency call to the PSAP, including all redial attempts. If the call is not connected within this time (or ManualDialAttempts/AutoDialAttempts dial attempts), it will stop.

The corresponding getter functions let you retrieve the configuration settings values:

ERA-GLONASS MSD additional data

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:

  • The crash severity (Accident Severity Index - ASI15)
  • The diagnostic result
  • The crash information

ERA-GLONASS MSD additional data can be specified thru 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:

ERAOADASN1Module
DEFINITIONS
AUTOMATIC TAGS ::=
BEGIN
ERADataFormatId::= INTEGER (1)
ERAAdditionalData ::= SEQUENCE {
crashSeverity INTEGER(0..2047) OPTIONAL,
diagnosticResult DiagnosticResult OPTIONAL,
crashInfo CrashInfo OPTIONAL,
...
}
DiagnosticResult ::= SEQUENCE {
micConnectionFailure BOOLEAN OPTIONAL,
micFailure BOOLEAN OPTIONAL,
rightSpeakerFailure BOOLEAN OPTIONAL,
leftSpeakerFailure BOOLEAN OPTIONAL,
speakersFailure BOOLEAN OPTIONAL,
ignitionLineFailure BOOLEAN OPTIONAL,
uimFailure BOOLEAN OPTIONAL,
statusIndicatorFailure BOOLEAN OPTIONAL,
batteryFailure BOOLEAN OPTIONAL,
batteryVoltageLow BOOLEAN OPTIONAL,
crashSensorFailure BOOLEAN OPTIONAL,
firmwareImageCorruption BOOLEAN OPTIONAL,
commModuleInterfaceFailure BOOLEAN OPTIONAL,
gnssReceiverFailure BOOLEAN OPTIONAL,
raimProblem BOOLEAN OPTIONAL,
gnssAntennaFailure BOOLEAN OPTIONAL,
commModuleFailure BOOLEAN OPTIONAL,
eventsMemoryOverflow BOOLEAN OPTIONAL,
crashProfileMemoryOverflow BOOLEAN OPTIONAL,
otherCriticalFailires BOOLEAN OPTIONAL,
otherNotCriticalFailures BOOLEAN OPTIONAL
}
CrashInfo ::= SEQUENCE {
crashFront BOOLEAN OPTIONAL,
crashLeft BOOLEAN OPTIONAL,
crashRight BOOLEAN OPTIONAL,
crashRear BOOLEAN OPTIONAL,
crashRollover BOOLEAN OPTIONAL,
crashSide BOOLEAN OPTIONAL,
crashFrontOrSide BOOLEAN OPTIONAL,
crashAnotherType BOOLEAN OPTIONAL
}
END

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
}

If you want to have a look at a more in-depth usage of these APIs, please refer to the eCallDemo Application and utility .

eCall configuration

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:

Note
Important! These two functions don't modified the U/SIM content nor read the U/SIM content.

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:

  • from 1 to 60 minutes -> 1 hour
  • from 61 to 120 minutes -> 2hours, etc.

Example: if deregTime parameter unit is minutes, the effective time is:

ECallConfiguration.nad_deregistration_time = (deregTime+59)/60;

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'.

Warning
Be sure to check the possible values of 'NAD_DEREGISTRATION_TIME' for your specific platform.

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.

Configuration tree

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:

  • PAN-EUROPEAN
  • ERA-GLONASS

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):

  • "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)

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.