Telematics SDK - Interface Specification  v1.46.10

Data Structures

class  telux::tel::ICall
 ICall represents a call in progress. An ICall cannot be directly created by the client, rather it is returned as a result of instantiating a call or from the PhoneListener when receiving an incoming call. More...
 
class  telux::tel::ICallListener
 A listener class for monitoring changes in call, including call state change and ECall state change. Override the methods for the state that you wish to receive updates for. More...
 
class  telux::tel::ICallManager
 Call Manager is the primary interface for call related operations Allows to conference calls, swap calls, make normal voice call and emergency call, send and update MSD pdu. More...
 
class  telux::tel::IMakeCallCallback
 Interface for Make Call callback object. Client needs to implement this interface to get single shot responses for commands like make call. More...
 

Typedefs

using telux::tel::MakeCallCallback = std::function< void(telux::common::ErrorCode error, std::shared_ptr< ICall > call)>
 
using telux::tel::ECallHlapTimerStatusCallback = std::function< void(telux::common::ErrorCode error, int phoneId, ECallHlapTimerStatus timersStatus)>
 
using telux::tel::EcbmStatusCallback = std::function< void(telux::tel::EcbMode ecbMode, telux::common::ErrorCode error)>
 

Enumerations

enum  telux::tel::CallDirection { telux::tel::CallDirection::INCOMING, telux::tel::CallDirection::OUTGOING, telux::tel::CallDirection::NONE }
 
enum  telux::tel::CallState {
  telux::tel::CallState::CALL_IDLE = -1, telux::tel::CallState::CALL_ACTIVE, telux::tel::CallState::CALL_ON_HOLD, telux::tel::CallState::CALL_DIALING,
  telux::tel::CallState::CALL_INCOMING, telux::tel::CallState::CALL_WAITING, telux::tel::CallState::CALL_ALERTING, telux::tel::CallState::CALL_ENDED
}
 
enum  telux::tel::CallEndCause {
  telux::tel::CallEndCause::UNOBTAINABLE_NUMBER = 1, telux::tel::CallEndCause::NO_ROUTE_TO_DESTINATION = 3, telux::tel::CallEndCause::CHANNEL_UNACCEPTABLE = 6, telux::tel::CallEndCause::OPERATOR_DETERMINED_BARRING = 8,
  telux::tel::CallEndCause::NORMAL = 16, telux::tel::CallEndCause::BUSY = 17, telux::tel::CallEndCause::NO_USER_RESPONDING = 18, telux::tel::CallEndCause::NO_ANSWER_FROM_USER = 19,
  telux::tel::CallEndCause::NOT_REACHABLE = 20, telux::tel::CallEndCause::CALL_REJECTED = 21, telux::tel::CallEndCause::NUMBER_CHANGED = 22, telux::tel::CallEndCause::PREEMPTION = 25,
  telux::tel::CallEndCause::DESTINATION_OUT_OF_ORDER = 27, telux::tel::CallEndCause::INVALID_NUMBER_FORMAT = 28, telux::tel::CallEndCause::FACILITY_REJECTED = 29, telux::tel::CallEndCause::RESP_TO_STATUS_ENQUIRY = 30,
  telux::tel::CallEndCause::NORMAL_UNSPECIFIED = 31, telux::tel::CallEndCause::CONGESTION = 34, telux::tel::CallEndCause::NETWORK_OUT_OF_ORDER = 38, telux::tel::CallEndCause::TEMPORARY_FAILURE = 41,
  telux::tel::CallEndCause::SWITCHING_EQUIPMENT_CONGESTION = 42, telux::tel::CallEndCause::ACCESS_INFORMATION_DISCARDED = 43, telux::tel::CallEndCause::REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE = 44, telux::tel::CallEndCause::RESOURCES_UNAVAILABLE_OR_UNSPECIFIED = 47,
  telux::tel::CallEndCause::QOS_UNAVAILABLE = 49, telux::tel::CallEndCause::REQUESTED_FACILITY_NOT_SUBSCRIBED = 50, telux::tel::CallEndCause::INCOMING_CALLS_BARRED_WITHIN_CUG = 55, telux::tel::CallEndCause::BEARER_CAPABILITY_NOT_AUTHORIZED = 57,
  telux::tel::CallEndCause::BEARER_CAPABILITY_UNAVAILABLE = 58, telux::tel::CallEndCause::SERVICE_OPTION_NOT_AVAILABLE = 63, telux::tel::CallEndCause::BEARER_SERVICE_NOT_IMPLEMENTED = 65, telux::tel::CallEndCause::ACM_LIMIT_EXCEEDED = 68,
  telux::tel::CallEndCause::REQUESTED_FACILITY_NOT_IMPLEMENTED = 69, telux::tel::CallEndCause::ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE = 70, telux::tel::CallEndCause::SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79, telux::tel::CallEndCause::INVALID_TRANSACTION_IDENTIFIER = 81,
  telux::tel::CallEndCause::USER_NOT_MEMBER_OF_CUG = 87, telux::tel::CallEndCause::INCOMPATIBLE_DESTINATION = 88, telux::tel::CallEndCause::INVALID_TRANSIT_NW_SELECTION = 91, telux::tel::CallEndCause::SEMANTICALLY_INCORRECT_MESSAGE = 95,
  telux::tel::CallEndCause::INVALID_MANDATORY_INFORMATION = 96, telux::tel::CallEndCause::MESSAGE_TYPE_NON_IMPLEMENTED = 97, telux::tel::CallEndCause::MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98, telux::tel::CallEndCause::INFORMATION_ELEMENT_NON_EXISTENT = 99,
  telux::tel::CallEndCause::CONDITIONAL_IE_ERROR = 100, telux::tel::CallEndCause::MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101, telux::tel::CallEndCause::RECOVERY_ON_TIMER_EXPIRED = 102, telux::tel::CallEndCause::PROTOCOL_ERROR_UNSPECIFIED = 111,
  telux::tel::CallEndCause::INTERWORKING_UNSPECIFIED = 127, telux::tel::CallEndCause::CALL_BARRED = 240, telux::tel::CallEndCause::FDN_BLOCKED = 241, telux::tel::CallEndCause::IMSI_UNKNOWN_IN_VLR = 242,
  telux::tel::CallEndCause::IMEI_NOT_ACCEPTED = 243, telux::tel::CallEndCause::DIAL_MODIFIED_TO_USSD = 244, telux::tel::CallEndCause::DIAL_MODIFIED_TO_SS = 245, telux::tel::CallEndCause::DIAL_MODIFIED_TO_DIAL = 246,
  telux::tel::CallEndCause::CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000, telux::tel::CallEndCause::CDMA_DROP = 1001, telux::tel::CallEndCause::CDMA_INTERCEPT = 1002, telux::tel::CallEndCause::CDMA_REORDER = 1003,
  telux::tel::CallEndCause::CDMA_SO_REJECT = 1004, telux::tel::CallEndCause::CDMA_RETRY_ORDER = 1005, telux::tel::CallEndCause::CDMA_ACCESS_FAILURE = 1006, telux::tel::CallEndCause::CDMA_PREEMPTED = 1007,
  telux::tel::CallEndCause::CDMA_NOT_EMERGENCY = 1008, telux::tel::CallEndCause::CDMA_ACCESS_BLOCKED = 1009, telux::tel::CallEndCause::ERROR_UNSPECIFIED = 0xffff
}
 

Detailed Description

This section contains APIs related to Call.


Data Structure Documentation

class telux::tel::ICall

ICall represents a call in progress. An ICall cannot be directly created by the client, rather it is returned as a result of instantiating a call or from the PhoneListener when receiving an incoming call.

Public Member Functions

virtual telux::common::Status answer (std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status hold (std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status resume (std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status reject (std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status reject (const std::string &rejectSMS, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status hangup (std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status playDtmfTone (char tone, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status startDtmfTone (char tone, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status stopDtmfTone (std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual CallState getCallState ()=0
 
virtual int getCallIndex ()=0
 
virtual CallDirection getCallDirection ()=0
 
virtual std::string getRemotePartyNumber ()=0
 
virtual CallEndCause getCallEndCause ()=0
 
virtual int getPhoneId ()=0
 
virtual bool isMultiPartyCall ()=0
 
virtual ~ICall ()
 

Constructor & Destructor Documentation

virtual telux::tel::ICall::~ICall ( )
virtual

Member Function Documentation

virtual telux::common::Status telux::tel::ICall::answer ( std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr)
pure virtual

Allows the client to answer the call. This is only applicable for CallState::INCOMING and CallState::WAITING calls. If a Waiting call is being answered and the existing call is Active, then existing call will move to Hold state.If the existing call is on Hold already, then it will remain on Hold. The waiting call state transition from Waiting to Active.

Parameters
[in]callback- optional callback pointer to get the response of answer request below are possible error codes for callback response
  • SUCCESS
  • RADIO_NOT_AVAILABLE
  • NO_MEMORY
  • MODEM_ERR
  • INTERNAL_ERR
  • INVALID_STATE
  • INVALID_CALL_ID
  • INVALID_ARGUMENTS
  • OPERATION_NOT_ALLOWED
  • GENERIC_FAILURE
Returns
Status of hold function i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ICall::hold ( std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr)
pure virtual

Puts the ongoing call on hold.

Parameters
[in]callback- optional callback pointer to get the response of hold request below are possible error codes for callback response
  • SUCCESS
  • RADIO_NOT_AVAILABLE
  • NO_MEMORY
  • MODEM_ERR
  • INTERNAL_ERR
  • INVALID_STATE
  • INVALID_CALL_ID
  • INVALID_ARGUMENTS
  • OPERATION_NOT_ALLOWED
  • GENERIC_FAILURE
Returns
Status of hold function i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ICall::resume ( std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr)
pure virtual

Resumes this call from on-hold state to active state

Parameters
[in]callback- optional callback pointer to get the response of resume request below are possible error codes for callback response
  • SUCCESS
  • RADIO_NOT_AVAILABLE
  • NO_MEMORY
  • MODEM_ERR
  • INTERNAL_ERR
  • INVALID_STATE
  • INVALID_CALL_ID
  • INVALID_ARGUMENTS
  • OPERATION_NOT_ALLOWED
  • GENERIC_FAILURE
Returns
Status of resume function i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ICall::reject ( std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr)
pure virtual

Reject the incoming/waiting call. Only applicable for CallState::INCOMING and CallState::WAITING calls.

Parameters
[in]callback- optional callback pointer to get the response of reject request below are possible error codes for callback response
  • SUCCESS
  • RADIO_NOT_AVAILABLE
  • NO_MEMORY
  • MODEM_ERR
  • INTERNAL_ERR
  • INVALID_STATE
  • INVALID_CALL_ID
  • INVALID_ARGUMENTS
  • OPERATION_NOT_ALLOWED
  • GENERIC_FAILURE
Returns
Status of reject function i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ICall::reject ( const std::string &  rejectSMS,
std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr 
)
pure virtual

Reject the call and send an SMS to caller. Only applicable for CallState::INCOMING and CallState::WAITING calls.

Parameters
[in]rejectSMSSMS string used to send in response to a call rejection.
[in]callback- optional callback pointer to get the response of rejectwithSMS request below are possible error codes for callback response
  • SUCCESS
  • RADIO_NOT_AVAILABLE
  • NO_MEMORY
  • MODEM_ERR
  • INTERNAL_ERR
  • INVALID_STATE
  • INVALID_CALL_ID
  • INVALID_ARGUMENTS
  • OPERATION_NOT_ALLOWED
  • GENERIC_FAILURE
Returns
Status of success for call reject() or suitable error code.
virtual telux::common::Status telux::tel::ICall::hangup ( std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr)
pure virtual

Hangup the call if the call state is either active, hold, dialing, waiting or alerting.

Parameters
[in]callback- optional callback pointer to get the response of hangup request below are possible error codes for callback response
  • SUCCESS
  • RADIO_NOT_AVAILABLE
  • NO_MEMORY
  • MODEM_ERR
  • INTERNAL_ERR
  • INVALID_STATE
  • INVALID_CALL_ID
  • INVALID_ARGUMENTS
  • OPERATION_NOT_ALLOWED
  • GENERIC_FAILURE
Returns
Status of hangup i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ICall::playDtmfTone ( char  tone,
std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr 
)
pure virtual

Play a DTMF tone and stop it. The interval for which the tone is played is dependent on the system implementation. If continuous DTMF tone is playing, it will be stopped. This API is used to play DTMF tone on TX path so that it is heard on far end. For DTMF playback on local device on the RX path use telux::audio::IAudioVoiceStream::playDtmfTone

Parameters
[in]tone- a single character with one of 12 values: 0-9, *, #.
[in]callback- Optional callback pointer to get the result of playDtmfTones function
Returns
Status of playDtmfTones i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ICall::startDtmfTone ( char  tone,
std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr 
)
pure virtual

Starts a continuous DTMF tone. To terminate the continous DTMF tone,stopDtmfTone API needs to be invoked explicitly. This API is used to play DTMF tone on TX path so that it is heard on far end. For DTMF playback on local device on the RX path use telux::audio::IAudioVoiceStream::playDtmfTone

Parameters
[in]tone- a single character with one of 12 values: 0-9, *, #.
[in]callback- Optional callback pointer to get the result of startDtmfTone function.
Returns
Status of startDtmfTone i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ICall::stopDtmfTone ( std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr)
pure virtual

Stop the currently playing continuous DTMF tone.

Parameters
[in]callback- Optional callback pointer to get the result of stopDtmfTone function.
Returns
Status of stopDtmfTone i.e. success or suitable error code.
virtual CallState telux::tel::ICall::getCallState ( )
pure virtual

Get the current state of the call, such as ringing, in progress etc.

Returns
CallState - enumeration representing call State
virtual int telux::tel::ICall::getCallIndex ( )
pure virtual

Get the unique index of the call assigned by Telephony subsystem

Returns
Call Index
virtual CallDirection telux::tel::ICall::getCallDirection ( )
pure virtual

Get the direction of the call

Returns
CallDirection - enumeration representing call direction i.e. INCOMING/ OUTGOING
virtual std::string telux::tel::ICall::getRemotePartyNumber ( )
pure virtual

Get the dailing number

Returns
Phone Number to which the call was dialed out Empty string in case of INCOMING call direction
virtual CallEndCause telux::tel::ICall::getCallEndCause ( )
pure virtual

Get the cause of the termination of the call.

Returns
Enum representing call end cause.
virtual int telux::tel::ICall::getPhoneId ( )
pure virtual

Get id of the phone object which represents the network/SIM on which the call is in progress.

Returns
Phone Id.
virtual bool telux::tel::ICall::isMultiPartyCall ( )
pure virtual

To check if call is in multi party call(conference) or not

Returns
True if call is in conference otherwise false.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
class telux::tel::ICallListener

A listener class for monitoring changes in call, including call state change and ECall state change. Override the methods for the state that you wish to receive updates for.

The methods in listener can be invoked from multiple different threads. The implementation should be thread safe.

Public Member Functions

virtual void onIncomingCall (std::shared_ptr< ICall > call)
 
virtual void onCallInfoChange (std::shared_ptr< ICall > call)
 
virtual void onECallMsdTransmissionStatus (int phoneId, telux::common::ErrorCode errorCode)
 
virtual void onECallMsdTransmissionStatus (int phoneId, telux::tel::ECallMsdTransmissionStatus msdTransmissionStatus)
 
virtual void onECallHlapTimerEvent (int phoneId, ECallHlapTimerEvents timersStatus)
 
virtual void onEmergencyNetworkScanFail (int phoneId)
 
virtual void onEcbmChange (telux::tel::EcbMode mode)
 
virtual ~ICallListener ()
 
- Public Member Functions inherited from telux::common::IServiceStatusListener
virtual void onServiceStatusChange (ServiceStatus status)
 
virtual ~IServiceStatusListener ()
 

Constructor & Destructor Documentation

virtual telux::tel::ICallListener::~ICallListener ( )
virtual

Member Function Documentation

virtual void telux::tel::ICallListener::onIncomingCall ( std::shared_ptr< ICall call)
virtual

This function is called when device receives an incoming/waiting call.

Parameters
[in]call- Pointer to ICall instance
virtual void telux::tel::ICallListener::onCallInfoChange ( std::shared_ptr< ICall call)
virtual

This function is called when there is a change in call attributes

Parameters
[in]call- Pointer to ICall instance
virtual void telux::tel::ICallListener::onECallMsdTransmissionStatus ( int  phoneId,
telux::common::ErrorCode  errorCode 
)
virtual

This function is called when device completes MSD Transmission.

Parameters
[in]phoneId- Unique Id of phone on which MSD Transmission Status is being reported
[in]status- Indicates MSD Transmission status i.e. success or failure
Deprecated:
Use another onECallMsdTransmissionStatus() API with argument ECallMsdTransmissionStatus
virtual void telux::tel::ICallListener::onECallMsdTransmissionStatus ( int  phoneId,
telux::tel::ECallMsdTransmissionStatus  msdTransmissionStatus 
)
virtual

This function is called when MSD Transmission status is changed.

Parameters
[in]phoneId- Unique Id of phone on which MSD Transmission Status is being reported
[in]msdTransmissionStatus- Indicates MSD Transmission status ECallMsdTransmissionStatus
virtual void telux::tel::ICallListener::onECallHlapTimerEvent ( int  phoneId,
ECallHlapTimerEvents  timersStatus 
)
virtual

This function is called when the eCall High Level Application Protocol(HLAP) timers status is changed.

Parameters
[in]phoneId- Unique Id of phone on which HLAP timer status is being reported
[in]timersStatus- Indicates the HLAP timer event ECallHlapTimerEvents
virtual void telux::tel::ICallListener::onEmergencyNetworkScanFail ( int  phoneId)
virtual

This function is called whenever there is a scan failure after one round of network scan during origination of emergency call or at any time during the emergency call.

During origination of an ecall or in between an ongoing ecall, if the UE is in an area of no/poor coverage and loses service, the modem will perform network scan and try to register on any available network. If the scan completes successfully and the device finds a suitable cell, the ecall will be placed and the call state changes to the active state. If the network scan fails then this function will be invoked after one round of network scan.

Parameters
[in]phoneId- Unique Id of phone on which network scan failure reported.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual void telux::tel::ICallListener::onEcbmChange ( telux::tel::EcbMode  mode)
virtual

This function is called whenever emergency callback mode(ECBM) changes.

Parameters
[in]mode- Indicates the status of the ECBM. EcbMode
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
class telux::tel::ICallManager

Call Manager is the primary interface for call related operations Allows to conference calls, swap calls, make normal voice call and emergency call, send and update MSD pdu.

Public Member Functions

virtual telux::common::Status makeCall (int phoneId, const std::string &dialNumber, std::shared_ptr< IMakeCallCallback > callback=nullptr)=0
 
virtual telux::common::Status makeECall (int phoneId, const ECallMsdData &eCallMsdData, int category, int variant, std::shared_ptr< IMakeCallCallback > callback=nullptr)=0
 
virtual telux::common::Status makeECall (int phoneId, const std::string dialNumber, const ECallMsdData &eCallMsdData, int category, std::shared_ptr< IMakeCallCallback > callback=nullptr)=0
 
virtual telux::common::Status makeECall (int phoneId, const std::vector< uint8_t > &msdPdu, int category, int variant, MakeCallCallback callback=nullptr)=0
 
virtual telux::common::Status makeECall (int phoneId, const std::string dialNumber, const std::vector< uint8_t > &msdPdu, int category, MakeCallCallback callback=nullptr)=0
 
virtual telux::common::Status makeECall (int phoneId, int category, int variant, MakeCallCallback callback=nullptr)=0
 
virtual telux::common::Status makeECall (int phoneId, const std::string dialNumber, int category, MakeCallCallback callback=nullptr)=0
 
virtual telux::common::Status updateECallMsd (int phoneId, const ECallMsdData &eCallMsd, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status updateECallMsd (int phoneId, const std::vector< uint8_t > &msdPdu, telux::common::ResponseCallback callback)=0
 
virtual telux::common::Status requestECallHlapTimerStatus (int phoneId, ECallHlapTimerStatusCallback callback)=0
 
virtual std::vector< std::shared_ptr< ICall > > getInProgressCalls ()=0
 
virtual telux::common::Status conference (std::shared_ptr< ICall > call1, std::shared_ptr< ICall > call2, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status swap (std::shared_ptr< ICall > callToHold, std::shared_ptr< ICall > callToActivate, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status hangupForegroundResumeBackground (int phoneId, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status requestEcbm (int phoneId, EcbmStatusCallback callback)=0
 
virtual telux::common::Status exitEcbm (int phoneId, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status registerListener (std::shared_ptr< telux::tel::ICallListener > listener)=0
 
virtual telux::common::Status removeListener (std::shared_ptr< telux::tel::ICallListener > listener)=0
 
virtual ~ICallManager ()
 

Constructor & Destructor Documentation

virtual telux::tel::ICallManager::~ICallManager ( )
virtual

Member Function Documentation

virtual telux::common::Status telux::tel::ICallManager::makeCall ( int  phoneId,
const std::string &  dialNumber,
std::shared_ptr< IMakeCallCallback callback = nullptr 
)
pure virtual
virtual telux::common::Status telux::tel::ICallManager::makeECall ( int  phoneId,
const ECallMsdData eCallMsdData,
int  category,
int  variant,
std::shared_ptr< IMakeCallCallback callback = nullptr 
)
pure virtual

Initiate an automotive eCall.

Parameters
[in]phoneIdRepresents phone corresponding to which make eCall operation is performed
[in]eCallMsdDataThe structure containing required fields to create eCall Minimum Set of Data (MSD)
[in]categoryECallCategory
[in]variantECallVariant
[in]callbackOptional callback pointer to get the response of makeECall request. Possible(not exhaustive) error codes for callback response
Returns
Status of makeECall i.e. success or suitable status code.
virtual telux::common::Status telux::tel::ICallManager::makeECall ( int  phoneId,
const std::string  dialNumber,
const ECallMsdData eCallMsdData,
int  category,
std::shared_ptr< IMakeCallCallback callback = nullptr 
)
pure virtual

Initiate an automotive eCall to the specified phone number for TPS eCall. It will be treated like a regular voice call by the UE and the network.

Parameters
[in]phoneIdRepresents phone corresponding to which make eCall operation is performed
[in]dialNumberString representing the dialing number
[in]eCallMsdDataThe structure containing required fields to create eCall Minimum Set of Data (MSD)
[in]categoryECallCategory
[in]callbackOptional callback pointer to get the response of makeECall request. Possible(not exhaustive) error codes for callback response
Returns
Status of makeECall i.e. success or suitable status code.
virtual telux::common::Status telux::tel::ICallManager::makeECall ( int  phoneId,
const std::vector< uint8_t > &  msdPdu,
int  category,
int  variant,
MakeCallCallback  callback = nullptr 
)
pure virtual

Initiate an automotive eCall with raw MSD pdu.

Parameters
[in]phoneIdRepresents phone corresponding to which on make eCall operation is performed
[in]msdPduEncoded MSD(Minimum Set of Data) PDU as per spec EN 15722 2015 or GOST R 54620-2011/33464-2015
[in]categoryECallCategory
[in]variantECallVariant
[in]callbackCallback function to get the response of makeECall request. Possible(not exhaustive) error codes for callback response
Returns
Status of makeECall i.e. success or suitable status code.
virtual telux::common::Status telux::tel::ICallManager::makeECall ( int  phoneId,
const std::string  dialNumber,
const std::vector< uint8_t > &  msdPdu,
int  category,
MakeCallCallback  callback = nullptr 
)
pure virtual

Initiate an automotive eCall with raw MSD pdu, to the specified phone number for TPS eCall. It will be treated like a regular voice call by the UE and the network.

Parameters
[in]phoneIdRepresents phone corresponding to which on make eCall operation is performed
[in]dialNumberString representing the dialing number
[in]msdPduEncoded MSD(Minimum Set of Data) PDU as per spec EN 15722 2015 or GOST R 54620-2011/33464-2015
[in]categoryECallCategory
[in]callbackCallback function to get the response of makeECall request. Possible(not exhaustive) error codes for callback response
Returns
Status of makeECall i.e. success or suitable status code.
virtual telux::common::Status telux::tel::ICallManager::makeECall ( int  phoneId,
int  category,
int  variant,
MakeCallCallback  callback = nullptr 
)
pure virtual

Initiate an automotive eCall without transmitting Minimum Set of Data (MSD) at call connect.

Parameters
[in]phoneIdRepresents phone corresponding to which make eCall operation is performed
[in]categoryECallCategory
[in]variantECallVariant
[in]callbackOptional callback function to get the response of makeECall request. Possible(not exhaustive) error codes for callback response
Returns
Status of makeECall i.e. success or suitable status code.
virtual telux::common::Status telux::tel::ICallManager::makeECall ( int  phoneId,
const std::string  dialNumber,
int  category,
MakeCallCallback  callback = nullptr 
)
pure virtual

Initiate an automotive eCall to the specified phone number for TPS eCall, without transmitting Minimum Set of Data(MSD) at call connect. It will be treated like a regular voice call by the UE and the network.

Parameters
[in]phoneIdRepresents phone corresponding to which make eCall operation is performed
[in]dialNumberString representing the dialing number
[in]categoryECallCategory
[in]callbackOptional callback function to get the response of makeECall request. Possible(not exhaustive) error codes for callback response
Returns
Status of makeECall i.e. success or suitable status code.
virtual telux::common::Status telux::tel::ICallManager::updateECallMsd ( int  phoneId,
const ECallMsdData eCallMsd,
std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr 
)
pure virtual

Update the eCall MSD in modem to be sent to Public Safety Answering Point (PSAP) when requested.

Parameters
[in]phoneIdRepresents phone corresponding to which updateECallMsd operation is performed
[in]eCallMsdThe data structure represents the Minimum Set of Data (MSD)
[in]callbackOptional callback pointer to get the response of updateECallMsd.
Returns
Status of updateECallMsd i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ICallManager::updateECallMsd ( int  phoneId,
const std::vector< uint8_t > &  msdPdu,
telux::common::ResponseCallback  callback 
)
pure virtual

Update the eCall MSD in modem to be sent to Public Safety Answering Point (PSAP) when requested.

Parameters
[in]phoneIdRepresents phone corresponding to which updateECallMsd operation is performed
[in]msdPduEncoded MSD(Minimum Set of Data) PDU as per spec EN 15722 2015 or GOST R 54620-2011/33464-2015
[in]callbackCallback function to get the response of updateECallMsd.
Returns
Status of updateECallMsd i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ICallManager::requestECallHlapTimerStatus ( int  phoneId,
ECallHlapTimerStatusCallback  callback 
)
pure virtual

Request for status of eCall High Level Application Protocol(HLAP) timers that are maintained by the UE state machine. This does not retrieve status of timers maintained by the PSAP. The provided timers are as per EN 16062:2015 standard.

Parameters
[in]phoneIdRepresents phone corresponding on which requestECallHlapTimerStatus operation is performed
[in]callbackCallback function to get the response of requestECallHlapTimerStatus
Returns
Status of requestECallHlapTimerStatus i.e. success or suitable error code.
virtual std::vector<std::shared_ptr<ICall> > telux::tel::ICallManager::getInProgressCalls ( )
pure virtual

Get in-progress calls.

Returns
List of active calls.
virtual telux::common::Status telux::tel::ICallManager::conference ( std::shared_ptr< ICall call1,
std::shared_ptr< ICall call2,
std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr 
)
pure virtual

Merge two calls in a conference.

Parameters
[in]call1Call object to conference.
[in]call2Call object to conference.
[in]callbackOptional callback pointer to get the result of conference function
Returns
Status of conference i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ICallManager::swap ( std::shared_ptr< ICall callToHold,
std::shared_ptr< ICall callToActivate,
std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr 
)
pure virtual

Swap calls to make one active and put the another on hold.

Parameters
[in]callToHoldActive call object to swap to hold state.
[in]callToActivateHold call object to swap to active state.
[in]callbackOptional callback pointer to get the result of swap function
Returns
Status of swap i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ICallManager::hangupForegroundResumeBackground ( int  phoneId,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Hangup all the foreground call(s) if any and accept the background call as the active call. The foreground call here could be active call, incoming call or multiple active calls in case of conference and background call could be held call or waiting call.

If a call(s) is active, the active call(s) will be terminated or if a call is waiting, the waiting call will be accepted and becomes active. Otherwise, if a held call is present, the held call becomes active. In case of hold and waiting calls, the hold call will still be on hold and waiting call will be accepted. In case of hold, active and waiting scenario, the hold call will still be on hold, active call will be ended and waiting call will be accepted.

Parameters
[in]callback- optional callback pointer to get the response of hangup request below are possible error codes for callback response
  • SUCCESS
  • RADIO_NOT_AVAILABLE
  • NO_MEMORY
  • MODEM_ERR
  • INTERNAL_ERR
  • INVALID_STATE
  • INVALID_CALL_ID
  • INVALID_ARGUMENTS
  • OPERATION_NOT_ALLOWED
  • GENERIC_FAILURE
Returns
Status of hangupForegroundResumeBackground i.e. success or suitable error code.
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::tel::ICallManager::requestEcbm ( int  phoneId,
EcbmStatusCallback  callback 
)
pure virtual

Request for emergency callback mode

Parameters
[in]phoneIdRepresents the phone corresponding to which the emergency callback mode(ECBM) status is requested. param [in] callback Callback pointer to get the result of ECBM status request
Returns
Status of requestEcbm i.e. success or suitable error code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::tel::ICallManager::exitEcbm ( int  phoneId,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Exit emergency callback mode.

Parameters
[in]phoneIdRepresents the phone corresponding to which the emergency callback mode(ECBM) exit is requested. param [in] callback Optional callback pointer to get the result of exit ECBM request
Returns
Status of exitEcbm i.e. success or suitable error code.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual telux::common::Status telux::tel::ICallManager::registerListener ( std::shared_ptr< telux::tel::ICallListener listener)
pure virtual

Add a listener to listen for incoming call, call info change and eCall MSD transmission status change.

Parameters
[in]listenerPointer to ICallListener object which receives event corresponding to phone
Returns
Status of registerListener i.e. success or suitable error code.
virtual telux::common::Status telux::tel::ICallManager::removeListener ( std::shared_ptr< telux::tel::ICallListener listener)
pure virtual

Remove a previously added listener.

Parameters
[in]listenerListener to be removed.
Returns
Status of removeListener i.e. success or suitable error code.
class telux::tel::IMakeCallCallback

Interface for Make Call callback object. Client needs to implement this interface to get single shot responses for commands like make call.

The methods in callback can be invoked from multiple different threads. The implementation should be thread safe.

Public Member Functions

virtual void makeCallResponse (telux::common::ErrorCode error, std::shared_ptr< ICall > call=nullptr)
 
virtual ~IMakeCallCallback ()
 
- Public Member Functions inherited from telux::common::ICommandCallback
virtual ~ICommandCallback ()
 

Constructor & Destructor Documentation

virtual telux::tel::IMakeCallCallback::~IMakeCallCallback ( )
virtual

Member Function Documentation

virtual void telux::tel::IMakeCallCallback::makeCallResponse ( telux::common::ErrorCode  error,
std::shared_ptr< ICall call = nullptr 
)
virtual

This function is called with the response to makeCall API.

Parameters
[out]errorErrorCode
[out]callPointer to Call object or nullptr in case of failure

Typedef Documentation

using telux::tel::MakeCallCallback = typedef std::function<void(telux::common::ErrorCode error, std::shared_ptr<ICall> call)>

This function is called with the response to make normal call and emergency call.

The callback can be invoked from multiple different threads. The implementation should be thread safe.

Parameters
[out]errorErrorCode
[out]callPointer to Call object or nullptr in case of failure
using telux::tel::ECallHlapTimerStatusCallback = typedef std::function<void(telux::common::ErrorCode error, int phoneId, ECallHlapTimerStatus timersStatus)>

This function is called with response to request for eCall High Level Application Protocol(HLAP) timers status.

The callback can be invoked from multiple different threads. The implementation should be thread safe.

Parameters
[out]errorErrorCode
[out]phoneIdRepresents the phone corresponding to which the response is being reported.
[out]timersStatusECallHlapTimerStatus
using telux::tel::EcbmStatusCallback = typedef std::function<void(telux::tel::EcbMode ecbMode, telux::common::ErrorCode error)>

This function is called with response to request for ECBM(requestEcbm API).

The callback can be invoked from multiple different threads. The implementation should be thread safe.

Parameters
[out]ecbModeIndicates the status of the ECBM. EcbMode
[out]errorErrorCode
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.

Enumeration Type Documentation

Defines type of call like incoming, outgoing and none.

Enumerator
INCOMING 
OUTGOING 
NONE 
enum telux::tel::CallState
strong

Defines the states a call can be in

Enumerator
CALL_IDLE 

idle call, default state of a newly created call object

CALL_ACTIVE 

active call

CALL_ON_HOLD 

on hold call

CALL_DIALING 

out going call, in dialing state and not yet connected, MO Call only

CALL_INCOMING 

incoming call, not yet answered

CALL_WAITING 

waiting call

CALL_ALERTING 

alerting call, MO Call only

CALL_ENDED 

call ended / disconnected

Reason for the recently terminated call (either normally ended or failed)

Enumerator
UNOBTAINABLE_NUMBER 
NO_ROUTE_TO_DESTINATION 
CHANNEL_UNACCEPTABLE 
OPERATOR_DETERMINED_BARRING 
NORMAL 
BUSY 
NO_USER_RESPONDING 
NO_ANSWER_FROM_USER 
NOT_REACHABLE 
CALL_REJECTED 
NUMBER_CHANGED 
PREEMPTION 
DESTINATION_OUT_OF_ORDER 
INVALID_NUMBER_FORMAT 
FACILITY_REJECTED 
RESP_TO_STATUS_ENQUIRY 
NORMAL_UNSPECIFIED 
CONGESTION 
NETWORK_OUT_OF_ORDER 
TEMPORARY_FAILURE 
SWITCHING_EQUIPMENT_CONGESTION 
ACCESS_INFORMATION_DISCARDED 
REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE 
RESOURCES_UNAVAILABLE_OR_UNSPECIFIED 
QOS_UNAVAILABLE 
REQUESTED_FACILITY_NOT_SUBSCRIBED 
INCOMING_CALLS_BARRED_WITHIN_CUG 
BEARER_CAPABILITY_NOT_AUTHORIZED 
BEARER_CAPABILITY_UNAVAILABLE 
SERVICE_OPTION_NOT_AVAILABLE 
BEARER_SERVICE_NOT_IMPLEMENTED 
ACM_LIMIT_EXCEEDED 
REQUESTED_FACILITY_NOT_IMPLEMENTED 
ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE 
SERVICE_OR_OPTION_NOT_IMPLEMENTED 
INVALID_TRANSACTION_IDENTIFIER 
USER_NOT_MEMBER_OF_CUG 
INCOMPATIBLE_DESTINATION 
INVALID_TRANSIT_NW_SELECTION 
SEMANTICALLY_INCORRECT_MESSAGE 
INVALID_MANDATORY_INFORMATION 
MESSAGE_TYPE_NON_IMPLEMENTED 
MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE 
INFORMATION_ELEMENT_NON_EXISTENT 
CONDITIONAL_IE_ERROR 
MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE 
RECOVERY_ON_TIMER_EXPIRED 
PROTOCOL_ERROR_UNSPECIFIED 
INTERWORKING_UNSPECIFIED 
CALL_BARRED 
FDN_BLOCKED 
IMSI_UNKNOWN_IN_VLR 
IMEI_NOT_ACCEPTED 
DIAL_MODIFIED_TO_USSD 
DIAL_MODIFIED_TO_SS 
DIAL_MODIFIED_TO_DIAL 
CDMA_LOCKED_UNTIL_POWER_CYCLE 
CDMA_DROP 
CDMA_INTERCEPT 
CDMA_REORDER 
CDMA_SO_REJECT 
CDMA_RETRY_ORDER 
CDMA_ACCESS_FAILURE 
CDMA_PREEMPTED 
CDMA_NOT_EMERGENCY 
CDMA_ACCESS_BLOCKED 
ERROR_UNSPECIFIED