Add basic change for v1453
Change-Id: I9497a61bbc3717f66413794a4e7dee0347c0bc33
diff --git a/mbtk/include/ql_v2/ql_ecall.h b/mbtk/include/ql_v2/ql_ecall.h
new file mode 100755
index 0000000..04b0951
--- /dev/null
+++ b/mbtk/include/ql_v2/ql_ecall.h
@@ -0,0 +1,561 @@
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @file ql_ecall.c
+ @brief Ecall APIs
+*/
+/*-------------------------------------------------------------------------------------------------
+ Copyright (c) 2019 Quectel Wireless Solution, Co., Ltd. All Rights Reserved.
+ Quectel Wireless Solution Proprietary and Confidential.
+-------------------------------------------------------------------------------------------------*/
+
+/*-------------------------------------------------------------------------------------------------
+ EDIT HISTORY
+ This section contains comments describing changes made to the file.
+ Notice that changes are listed in reverse chronological order.
+ $Header: $
+ when who what, where, why
+ -------- --- ----------------------------------------------------------
+ 202306xx Lyndsay.Xie Created .
+-------------------------------------------------------------------------------------------------*/
+#ifndef __ECALL_H__
+#define __ECALL_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <string.h>
+#include <time.h>
+#include "ql_asn1Msd.h"
+#include "ql_ms_voice.h"
+#include "ql_type.h"
+// #include "ql_voice.h"
+
+#define ASSERT(condition) \
+ if (!(condition)) { LOGE("Assert Failed: '%s'", #condition);}
+
+//--------------------------------------------------------------------------------------------------
+/**
+ * Unlimited dial attempts for eCall session (used for PAN-European system)
+ */
+//--------------------------------------------------------------------------------------------------
+#define UNLIMITED_DIAL_ATTEMPTS UINT32_MAX
+#define QL_VOICE_MAX_ECALL_MSD (140)
+
+typedef enum
+{
+ QL_ECALL_TX_MODE_PULL = 0, /**< Pull mode (modem/host waits for MSD request from PSAP to send MSD). */
+ QL_ECALL_TX_MODE_PUSH = 1 /**< Push mode (modem/host sends MSD to PSAP right after eCall is connected). */
+} QL_ECALL_MSD_TX_MODE_E;
+
+typedef enum
+{
+ QL_ECALL_RESET_SESSION_NONE = 0,
+ QL_ECALL_RESET_SESSION_AUTOANSWER= 1, /**< Reset the ecall session to allow automatic answering of calls
+ * It can only be enabled once after calling ql_ecall_init() == OK*/
+ QL_ECALL_RESET_SESSION_MAX = 0xff
+
+} QL_ECALL_RESET_SESSION_MODE_E;
+
+typedef struct
+{
+ uint8_t t5_timeout_ms_valid;
+ uint16_t t5_timeout_ms;
+
+ uint8_t t6_timeout_ms_valid;
+ uint16_t t6_timeout_ms;
+
+ uint8_t t7_timeout_ms_valid;
+ uint16_t t7_timeout_ms;
+
+ uint8_t autoAnswer_timeout_ms_valid; // callback
+ uint32_t autoAnswer_timeout_ms; // default 3600000 ms (1 hour)
+
+ uint8_t dialDurationTimer_timout_ms_valid; // dial
+ uint32_t dialDurationTimer_timout_ms;
+
+ uint8_t maxDialAttempts_valid; // redialcnt
+ uint32_t maxDialAttempts;
+
+ uint8_t intervalBetweenAttempts_valid;
+ uint16_t intervalBetweenAttempts;
+
+ uint8_t resetEcallSessionMode_valid;
+ uint8_t resetEcallSessionMode;
+} ql_ecall_config_t;
+
+typedef void (*ql_ecall_user_ind_f)(int ind, void *userdata);
+
+typedef enum{
+ QL_ECALL_MAKE_ECALL_TYPE_TEST = 0,
+ QL_ECALL_MAKE_ECALL_TYPE_RECONFIG = 1,
+ QL_ECALL_MAKE_ECALL_TYPE_MANUAL = 2,
+ QL_ECALL_MAKE_ECALL_TYPE_AUTOMATIC = 3,
+}QL_ECALL_MAKE_ECALL_TYPE;
+
+/** eCall mode */
+typedef enum {
+ QL_ECALL_MODE_NORMAL = 0, /**< eCall enabled normal mode. */
+ QL_ECALL_MODE_ONLY = 1, /**< eCall-only mode. */
+ QL_ECALL_MODE_DEFAULT = 2,
+} QL_ECALL_MODE_E;
+
+typedef enum
+{
+ QL_ECALL_EVENT_SENDING_START = 1,
+ QL_ECALL_EVENT_SENDING_MSD = 2,
+ QL_ECALL_EVENT_LLACK_RECEIVED = 3,
+ QL_ECALL_EVENT_ALLACK_POSITIVE_RECEIVED = 4,
+ QL_ECALL_EVENT_ALLACK_CLEARDOWN_RECEIVED = 5,
+ QL_ECALL_EVENT_ACTIVE = 11,
+ QL_ECALL_EVENT_DISCONNECTED = 12,
+ QL_ECALL_EVENT_ABNORMAL_HANGUP = 15,
+ // QL_ECALL_EVENT_IMS_MSD_ACK = 0x0014,
+ // QL_ECALL_EVENT_IMS_UPDATE_MSD,
+ QL_ECALL_EVENT_ONLY_DEREGISTRATION = 31,
+ QL_ECALL_EVENT_MAY_DEREGISTRATION = 32,
+ QL_ECALL_EVENT_PSAP_CALLBACK_START = 40,
+
+ QL_ECALL_EVENT_ECALL_STARTED = 260,
+ QL_ECALL_EVENT_INCOMING_CALL = 261,
+ QL_ECALL_EVENT_T2_TIMEOUT = 262,
+ QL_ECALL_EVENT_T5_TIMEOUT = 263,
+ QL_ECALL_EVENT_T6_TIMEOUT = 264,
+ QL_ECALL_EVENT_T7_TIMEOUT = 265,
+ QL_ECALL_EVENT_DIAL_DURATION_TIMEOUT = 266,
+ QL_ECALL_EVENT_INTERVAL_TIMEOUT = 267,
+ QL_ECALL_EVENT_AUTO_ANSWER_TIMEOUT = 268,
+
+ // TO DO - add customer app events
+} QL_ECALL_EVENT_E;
+
+// TODO: Will be used potentially. If not remove it!
+// QL_ERR_MSD_RESULT_E QL_Set_MsdMessageData(msd_Message_t *pMsdMsg);
+// QL_ERR_MSD_RESULT_E QL_Set_EraGlonassData(msd_EraGlonassData_t *pEraGlonassData);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Set the system standard.
+ @param[in] system_std system standard which can be set to PAN-European or ERA-GLONASS.
+ @return Whether the system standard was set successfully.
+ @retval QL_ERR_OK successful.
+ @retval QL_ERR_INVALID_ARG unsupported value.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_set_system_std(ECALL_SYSTEM_STD_E system_std);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Get the system standard.
+ @param[out] system_std pointer to system standard which can be PAN-European or ERA-GLONASS.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+void ql_ecall_get_system_std(ECALL_SYSTEM_STD_E* system_std);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Set the MSD version.
+ @param[in] msd_version MSD version which can be set to ASN1_ECALL_MSD_VERSION_1 or ASN1_ECALL_MSD_VERSION_2
+ @return Whether the MSD version was set successfully.
+ @retval QL_ERR_MSD_SUCCESS successful.
+ @retval QL_ERR_MSD_VERSION unsupported value.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+QL_ERR_MSD_RESULT_E ql_ecall_set_msd_version(uint8_t msd_version);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Get the MSD version.
+ @param[out] msd_version pointer to MSD version.
+ @return Whether the MSD version was get successfully.
+ @retval QL_ERR_MSD_SUCCESS successful.
+ @retval QL_ERR_MSD_VERSION unsupported value.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+QL_ERR_MSD_RESULT_E ql_ecall_get_msd_version(uint8_t* msdVersionPtr);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Sets MSD's testCall field.
+ @param[in] testCall MSD call type: true = Test call false = Emergency
+ */
+/*-----------------------------------------------------------------------------------------------*/
+void ql_ecall_set_msd_call_type(bool testCall);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Gets MSD's testCall field.
+ @param[out] testCall pointer to MSD call type: true = Test call false = Emergency
+ */
+/*-----------------------------------------------------------------------------------------------*/
+void ql_ecall_get_msd_call_type(bool* testCall);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Sets VehicleType.
+ @param[in] vehicleType vehicle type
+ @return Whether the vehicleType was set successfully.
+ @retval QL_ERR_MSD_SUCCESS successful.
+ @retval QL_ERR_MSD_BADPARM unsupported value.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+QL_ERR_MSD_RESULT_E ql_ecall_set_msd_vehicle_type(uint8_t vehicleType);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Gets VehicleType.
+ @param[out] vehicleType pointer to vehicle type
+ @return Whether the vehicleType was get successfully.
+ @retval QL_ERR_MSD_SUCCESS successful.
+ @retval QL_ERR_MSD_BADPARM unsupported value.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+QL_ERR_MSD_RESULT_E ql_ecall_get_msd_vehicle_type(uint8_t* vehicleType);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Sets Vehicle Identification Number
+ @param[in] vin vehicle identification number
+ @return Whether the vehicle identification number was set successfully.
+ @retval QL_ERR_MSD_SUCCESS successful.
+ @retval QL_ERR_MSD_VEH_IDENTIFI_NUMBER unsupported value.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+QL_ERR_MSD_RESULT_E ql_ecall_set_msd_vin(msd_Vin_t vin);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Gets Vehicle Identification Number
+ @param[out] vin pointer to vehicle identification number
+ @return Whether the vehicle identification number was get successfully.
+ @retval QL_ERR_MSD_SUCCESS successful.
+ @retval QL_ERR_MSD_VEH_IDENTIFI_NUMBER unsupported value.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+QL_ERR_MSD_RESULT_E ql_ecall_get_msd_vin(msd_Vin_t* vin);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Sets Propulsion Type.
+ @param[in] PropulsionType propulsion type.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+void ql_ecall_set_msd_propulsion_type(uint8_t PropulsionType);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Gets Propulsion Type.
+ @param[out] PropulsionType pointer to propulsion type.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+void ql_ecall_get_msd_propulsion_type(uint8_t* PropulsionType);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Sets number of passangers.
+ @param[in] numberOfPassengers number of passangers.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+void ql_ecall_set_msd_passengers_count(uint8_t numberOfPassengers);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Sets vehicle location.
+ @param[in] isTrusted true if the position can be trusted, false otherwise.
+ @param[in] latitude latitude of vehicle's location.
+ @param[in] longitude longitude of vehicle's location.
+ @param[in] direction direction of vehicle's location.
+ @return Whether the vehicle location was set successfully.
+ @retval QL_ERR_MSD_SUCCESS successful.
+ @retval QL_ERR_MSD_LATITUDE latitude unsupported value.
+ @retval QL_ERR_MSD_LONGITUDE longitude unsupported value.
+ @retval QL_ERR_MSD_VEH_DIRECTION direction unsupported value.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+QL_ERR_MSD_RESULT_E ql_ecall_set_msd_position(bool isTrusted, int32_t latitude, int32_t longitude, int32_t direction);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Set the position Delta N-1 from position set in ql_ecall_set_msd_position() transmitted by the MSD.
+ @param[in] latitudeN2 latitude delta from position set in ql_ecall_set_msd_position().
+ @param[in] longitudeN2 longitude delta from position set in ql_ecall_set_msd_position().
+ @return Whether the vehicle location delta was set successfully.
+ @retval QL_ERR_MSD_SUCCESS successful.
+ @retval QL_ERR_MSD_LATITUDE delta latitude unsupported value.
+ @retval QL_ERR_MSD_LONGITUDE delta longitude unsupported value.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+QL_ERR_MSD_RESULT_E ql_ecall_set_msd_position_n1(int32_t latitudeDeltaN1, int32_t longitudeDeltaN1);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Set the position Delta N-2 from position set in ql_ecall_set_msd_position() transmitted by the MSD.
+ @param[in] latitudeN2 latitude delta from position set in ql_ecall_set_msd_position_n1().
+ @param[in] longitudeN2 longitude delta from position set in ql_ecall_set_msd_position_n1().
+ @return Whether the vehicle location delta was set successfully.
+ @retval QL_ERR_MSD_SUCCESS successful.
+ @retval QL_ERR_MSD_LATITUDE delta latitude unsupported value.
+ @retval QL_ERR_MSD_LONGITUDE delta longitude unsupported value.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+QL_ERR_MSD_RESULT_E ql_ecall_set_msd_position_n2(int32_t latitudeDeltaN2, int32_t longitudeDeltaN2);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Set MSD TX Mode.
+ @param[in] tx_mode Transmission MSD mode, 0 - PULL, 1 - PUSH.
+ @return Whether the transmission MSD mode was set successfully.
+ @retval QL_ERR_MSD_SUCCESS successful.
+ @retval QL_ERR_MSD_BADPARM unsupported value.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+QL_ERR_MSD_RESULT_E ql_ecall_set_msd_tx_mode(QL_ECALL_MSD_TX_MODE_E tx_mode);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Get MSD TX Mode.
+ @param[out] tx_mode Pointer to transmission MSD mode, 0 - PULL, 1 - PUSH.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+void ql_ecall_get_msd_tx_mode(QL_ECALL_MSD_TX_MODE_E* tx_mode);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Set the minimum interval value between dial attempts. Available for both manual and test modes.
+ @param[in] pause the minimum interval value in seconds.
+ @retval ql_type.h
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_set_interval_between_dial_attempts(uint16_t pause);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Get the minimum interval value between dial attempts.
+ @param[out] pause pointer to the minimum interval value in seconds.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+void ql_ecall_get_interval_between_dial_attempts(uint16_t* pause);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Initialize MSD to default values.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+void ql_ecall_msd_init(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Start a test eCall session.
+ @return Whether the test ecall was started successfully.
+ @retval QL_ERR_MSD_SUCCESS successful.
+ @retval QL_ERR_MSD_BADPARM unsupported value.
+ @retval QL_ERR_OK successful.
+ @retval QL_ERR_INVALID_ARG invalid argument.
+ @retval QL_ERR_UNKNOWN unknown error, failed to connect to service.
+ @retval QL_ERR_SERVICE_NOT_READY service is not ready, need to retry.
+ @retval Other error code defined by ql_type.h.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_start_test(int sim_id);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Start a manual eCall session.
+ @return Whether the manually triggered ecall was started successfully.
+ @retval QL_ERR_MSD_SUCCESS successful.
+ @retval QL_ERR_MSD_BADPARM unsupported value.
+ @retval Other MSD error code defined by QL_ERR_MSD_RESULT_E.
+ @retval QL_ERR_OK successful.
+ @retval QL_ERR_INVALID_ARG invalid argument.
+ @retval QL_ERR_UNKNOWN unknown error, failed to connect to service.
+ @retval QL_ERR_SERVICE_NOT_READY service is not ready, need to retry.
+ @retval Other error code defined by ql_type.h.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_start_manual(int sim_id);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Start an automatic eCall session.
+ @return Whether the automatically triggered ecall was started successfully.
+ @retval QL_ERR_MSD_SUCCESS successful.
+ @retval QL_ERR_MSD_BADPARM unsupported value.
+ @retval Other MSD error code defined by QL_ERR_MSD_RESULT_E.
+ @retval QL_ERR_OK successful.
+ @retval QL_ERR_INVALID_ARG invalid argument.
+ @retval QL_ERR_UNKNOWN unknown error, failed to connect to service.
+ @retval QL_ERR_SERVICE_NOT_READY service is not ready, need to retry.
+ @retval Other error code defined by ql_type.h.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_start_automatic(int sim_id);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Initializes ecall service.
+ @return Whether the ecall service was initialized successfully.
+ @retval QL_ERR_OK successful.
+ @retval QL_ERR_SERVICE_NOT_READY service is not ready, need to retry.
+ @retval Other error code defined by ql_type.h.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_init(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Deinitializes ecall service.
+ @return Whether the ecall service was deinitialized successfully.
+ @retval QL_ERR_OK successful.
+ @retval QL_ERR_SERVICE_NOT_READY service is not ready, need to retry.
+ @retval Other error code defined by ql_type.h.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_deinit(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Sets ecall User indication callback.
+ @param[in] cb call back handler.
+ @param[in] userdata user data.
+ @return void
+ */
+/*-----------------------------------------------------------------------------------------------*/
+void ql_ecall_set_user_ind_cb(ql_ecall_user_ind_f cb, void *userdata);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Dials eCall.
+ @param[in] sim_id sim id.
+ @param[in] p_info eCall info.
+ @param[out] p_id call id.
+ @return Whether a eCall was successfully dialed.
+ @retval QL_ERR_OK successful.
+ @retval QL_ERR_INVALID_ARG invalid argument.
+ @retval QL_ERR_UNKNOWN unknown error, failed to connect to service.
+ @retval QL_ERR_SERVICE_NOT_READY service is not ready, need to retry.
+ @retval Other error code defined by ql_type.h.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_dial(int sim_id, const ql_voice_ecall_info_t* const p_info, uint32_t* const p_id);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Hangs up eCall.
+ @return Whether the eCall was successfully hung up.
+ @retval QL_ERR_OK successful.
+ @retval QL_ERR_INVALID_ARG invalid argument.
+ @retval QL_ERR_UNKNOWN unknown error, failed to connect to service.
+ @retval QL_ERR_SERVICE_NOT_READY service is not ready, need to retry.
+ @retval Other error code defined by ql_type.h.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_hangup(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Updates eCall MSD with raw data.
+ @param[in] msd Minimum Set of Data.
+ @param[in] msd_len Length of Minimum Set of Data.
+ @return Whether the eCall MSD was successfully updated.
+ @retval QL_ERR_OK successful.
+ @retval QL_ERR_INVALID_ARG invalid argument.
+ @retval QL_ERR_UNKNOWN unknown error, failed to connect to service.
+ @retval QL_ERR_SERVICE_NOT_READY service is not ready, need to retry.
+ @retval Other error code defined by ql_type.h.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_update_msd_raw(const uint8_t* msd, uint32_t msd_len);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Updates eCall MSD.
+ @return Whether the eCall MSD was successfully updated.
+ @retval QL_ERR_OK successful.
+ @retval QL_ERR_INVALID_ARG invalid argument.
+ @retval QL_ERR_UNKNOWN unknown error, failed to connect to service.
+ @retval QL_ERR_SERVICE_NOT_READY service is not ready, need to retry.
+ @retval Other error code defined by ql_type.h.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_update_msd(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Pushes eCall MSD.
+ @param[out] state eCall state.
+ @return Whether the eCall MSD was successfully pushed.
+ @retval QL_ERR_OK successful.
+ @retval QL_ERR_INVALID_ARG invalid argument.
+ @retval QL_ERR_UNKNOWN unknown error, failed to connect to service.
+ @retval QL_ERR_SERVICE_NOT_READY service is not ready, need to retry.
+ @retval Other error code defined by ql_type.h.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_push_msd(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Setting ecall test number. Number will be saved on the modem side.
+ @param[in] number test number
+ @return
+ QL_ERR_OK - successful
+ Other - error code defined by ql_type.h
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_set_test_number(int sim_id, const char* number);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Setting ecall test number. Number will be saved on the modem side.
+ @param[in] number test number
+ @return
+ QL_ERR_OK - successful
+ Other - error code defined by ql_type.h
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_reset_test_number(int sim_id, const char* number);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Reset IVS during ecall session and switch to voice.
+ @return
+ QL_ERR_OK - successful
+ Other - error code defined by ql_type.h
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_reset_ivs(int sim_id);
+
+#if 0
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Starts ecall session.
+ @return
+ QL_ERR_OK - successful
+ Other - error code defined by ql_type.h
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_make_ecall(int sim_id, QL_ECALL_MAKE_ECALL_TYPE ecall_type);
+#endif
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Deregister from Network.
+ @return Whether a request was executed.
+ @retval QL_ERR_OK successful.
+ @retval Other error code defined by ql_type.h.
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_ecall_terminate_nw_registration(void);
+
+void ql_ecall_set_config_info(ql_ecall_config_t ecall_context_info);
+
+void ql_ecall_get_config_info(ql_ecall_config_t* ecall_context_info);
+
+int ql_ecall_set_ecall_only_mode(bool ecall_only_value);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __ECALL_H__ */