Telematics SDK - Interface Specification

Data Structures

struct  telux::tel::ECallMsdOptionals
 
struct  telux::tel::ECallMsdControlBits
 
struct  telux::tel::ECallVehicleIdentificationNumber
 
struct  telux::tel::ECallVehiclePropulsionStorageType
 
struct  telux::tel::ECallVehicleLocation
 
struct  telux::tel::ECallVehicleLocationDelta
 
struct  telux::tel::ECallOptionalPdu
 
struct  telux::tel::ECallMsdData
 
class  telux::tel::IPhone
 This class allows getting system information and registering for system events. Each Phone instance is associated with a single SIM. So on a dual SIM device you would have 2 Phone instances. More...
 
class  telux::tel::ISignalStrengthCallback
 Interface for Signal strength callback object. Client needs to implement this interface to get single shot responses for commands like get signal strength. More...
 
class  telux::tel::IVoiceRadioTechnologyCallback
 Interface for voice radio technology callback object. Client needs to implement this interface to get single shot responses for commands like request voice radio technology. More...
 
class  telux::tel::IVoiceServiceStateCallback
 Interface for voice service state callback object. Client needs to implement this interface to get single shot responses for commands like request voice radio technology. More...
 
class  telux::tel::IPhoneListener
 A listener class for monitoring changes in specific telephony states on the device, including service state and signal strength. Override the methods for the state that you wish to receive updates for. More...
 
class  telux::tel::IPhoneManager
 Phone Manager creates one or more phones based on SIM slot count, it allows clients to register for notification of system events. Clients should check if the subsystem is ready before invoking any of the APIs. More...
 
class  telux::tel::SignalStrength
 SignalStrength class provides access to LTE,GSM, CDMA signal strengths. More...
 
class  telux::tel::LteSignalStrengthInfo
 LTE signal strength class provides methods to get details of lte signals like dbm, signal level, reference signal signal-to-noise ratio, channel quality indicator and signal strength. More...
 
class  telux::tel::GsmSignalStrengthInfo
 GSM signal strength provides methods to get GSM signal strength in dBm and GSM signal level. More...
 
class  telux::tel::CdmaSignalStrengthInfo
 CDMA signal strength provides methods to get details of Cdma and Evdo like signal strength in dBm and signal level. More...
 
class  telux::tel::VoiceServiceInfo
 

Enumerations

enum  telux::tel::ECallVariant { telux::tel::ECallVariant::ECALL_TEST = 1, telux::tel::ECallVariant::ECALL_EMERGENCY = 2 }
 
enum  telux::tel::EmergencyCallType { telux::tel::EmergencyCallType::CALL_TYPE_ECALL = 12 }
 
enum  telux::tel::ECallCategory { telux::tel::ECallCategory::VOICE_EMER_CAT_AUTO_ECALL = 64, telux::tel::ECallCategory::VOICE_EMER_CAT_MANUAL = 32 }
 
enum  telux::tel::ECallVehicleType {
  telux::tel::PASSENGER_VEHICLE_CLASS_M1, telux::tel::BUSES_AND_COACHES_CLASS_M2, telux::tel::BUSES_AND_COACHES_CLASS_M3, telux::tel::LIGHT_COMMERCIAL_VEHICLES_CLASS_N1,
  telux::tel::HEAVY_DUTY_VEHICLES_CLASS_N2, telux::tel::HEAVY_DUTY_VEHICLES_CLASS_N3, telux::tel::MOTOR_CYCLES_CLASS_L1E, telux::tel::MOTOR_CYCLES_CLASS_L2E,
  telux::tel::MOTOR_CYCLES_CLASS_L3E, telux::tel::MOTOR_CYCLES_CLASS_L4E, telux::tel::MOTOR_CYCLES_CLASS_L5E, telux::tel::MOTOR_CYCLES_CLASS_L6E,
  telux::tel::MOTOR_CYCLES_CLASS_L7E
}
 
enum  telux::tel::ECallOptionalDataType { telux::tel::ECallOptionalDataType::ECALL_DEFAULT }
 
enum  telux::tel::RadioState { telux::tel::RadioState::RADIO_STATE_OFF = 0, telux::tel::RadioState::RADIO_STATE_UNAVAILABLE = 1, telux::tel::RadioState::RADIO_STATE_ON = 10 }
 
enum  telux::tel::ServiceState { telux::tel::ServiceState::EMERGENCY_ONLY, telux::tel::ServiceState::IN_SERVICE, telux::tel::ServiceState::OUT_OF_SERVICE, telux::tel::ServiceState::RADIO_OFF }
 
enum  telux::tel::RadioTechnology {
  telux::tel::RadioTechnology::RADIO_TECH_UNKNOWN, telux::tel::RadioTechnology::RADIO_TECH_GPRS, telux::tel::RadioTechnology::RADIO_TECH_EDGE, telux::tel::RadioTechnology::RADIO_TECH_UMTS,
  telux::tel::RadioTechnology::RADIO_TECH_IS95A, telux::tel::RadioTechnology::RADIO_TECH_IS95B, telux::tel::RadioTechnology::RADIO_TECH_1xRTT, telux::tel::RadioTechnology::RADIO_TECH_EVDO_0,
  telux::tel::RadioTechnology::RADIO_TECH_EVDO_A, telux::tel::RadioTechnology::RADIO_TECH_HSDPA, telux::tel::RadioTechnology::RADIO_TECH_HSUPA, telux::tel::RadioTechnology::RADIO_TECH_HSPA,
  telux::tel::RadioTechnology::RADIO_TECH_EVDO_B, telux::tel::RadioTechnology::RADIO_TECH_EHRPD, telux::tel::RadioTechnology::RADIO_TECH_LTE, telux::tel::RadioTechnology::RADIO_TECH_HSPAP,
  telux::tel::RadioTechnology::RADIO_TECH_GSM, telux::tel::RadioTechnology::RADIO_TECH_TD_SCDMA, telux::tel::RadioTechnology::RADIO_TECH_IWLAN, telux::tel::RadioTechnology::RADIO_TECH_LTE_CA
}
 
enum  telux::tel::SignalStrengthLevel {
  telux::tel::SignalStrengthLevel::LEVEL_1, telux::tel::SignalStrengthLevel::LEVEL_2, telux::tel::SignalStrengthLevel::LEVEL_3, telux::tel::SignalStrengthLevel::LEVEL_4,
  telux::tel::SignalStrengthLevel::LEVEL_5, telux::tel::SignalStrengthLevel::LEVEL_UNKNOWN = -1
}
 
enum  telux::tel::VoiceServiceState {
  telux::tel::VoiceServiceState::NOT_REG_AND_NOT_SEARCHING = 0, telux::tel::VoiceServiceState::REG_HOME = 1, telux::tel::VoiceServiceState::NOT_REG_AND_SEARCHING = 2, telux::tel::VoiceServiceState::REG_DENIED = 3,
  telux::tel::VoiceServiceState::UNKNOWN = 4, telux::tel::VoiceServiceState::REG_ROAMING = 5, telux::tel::VoiceServiceState::NOT_REG_AND_EMERGENCY_AVAILABLE_AND_NOT_SEARCHING = 10, telux::tel::VoiceServiceState::NOT_REG_AND_EMERGENCY_AVAILABLE_AND_SEARCHING = 12,
  telux::tel::VoiceServiceState::REG_DENIED_AND_EMERGENCY_AVAILABLE = 13, telux::tel::VoiceServiceState::UNKNOWN_AND_EMERGENCY_AVAILABLE = 14
}
 
enum  telux::tel::VoiceServiceDenialCause {
  telux::tel::VoiceServiceDenialCause::UNDEFINED = -1, telux::tel::VoiceServiceDenialCause::GENERAL = 0, telux::tel::VoiceServiceDenialCause::AUTH_FAILURE = 1, telux::tel::VoiceServiceDenialCause::IMSI_UNKNOWN = 2,
  telux::tel::VoiceServiceDenialCause::ILLEGAL_MS = 3, telux::tel::VoiceServiceDenialCause::IMSI_UNKNOWN_VLR = 4, telux::tel::VoiceServiceDenialCause::IMEI_NOT_ACCEPTED = 5, telux::tel::VoiceServiceDenialCause::ILLEGAL_ME = 6,
  telux::tel::VoiceServiceDenialCause::GPRS_SERVICES_NOT_ALLOWED = 7, telux::tel::VoiceServiceDenialCause::GPRS_NON_GPRS_NOT_ALLOWED = 8, telux::tel::VoiceServiceDenialCause::MS_IDENTITY_FAILED = 9, telux::tel::VoiceServiceDenialCause::IMPLICITLY_DETACHED = 10,
  telux::tel::VoiceServiceDenialCause::GPRS_NOT_ALLOWED_IN_PLMN = 14, telux::tel::VoiceServiceDenialCause::MSC_TEMPORARILY_NOT_REACHABLE = 16, telux::tel::VoiceServiceDenialCause::SMS_PROVIDED_VIA_GPRS = 28, telux::tel::VoiceServiceDenialCause::NO_PDP_CONTEXT_ACTIVATED = 40,
  telux::tel::VoiceServiceDenialCause::PLMN_NOT_ALLOWED = 11, telux::tel::VoiceServiceDenialCause::LOCATION_AREA_NOT_ALLOWED = 12, telux::tel::VoiceServiceDenialCause::ROAMING_NOT_ALLOWED = 13, telux::tel::VoiceServiceDenialCause::NO_SUITABLE_CELLS = 15,
  telux::tel::VoiceServiceDenialCause::NOT_AUTHORIZED = 25, telux::tel::VoiceServiceDenialCause::NETWORK_FAILURE = 17, telux::tel::VoiceServiceDenialCause::MAC_FAILURE = 20, telux::tel::VoiceServiceDenialCause::SYNC_FAILURE = 21,
  telux::tel::VoiceServiceDenialCause::CONGESTION = 22, telux::tel::VoiceServiceDenialCause::GSM_AUTHENTICATION_UNACCEPTABLE = 23, telux::tel::VoiceServiceDenialCause::SERVICE_OPTION_NOT_SUPPORTED = 32, telux::tel::VoiceServiceDenialCause::SERVICE_OPTION_NOT_SUBCRIBED = 33,
  telux::tel::VoiceServiceDenialCause::SERVICE_OPTION_OUT_OF_ORDER = 34, telux::tel::VoiceServiceDenialCause::CALL_NOT_IDENTIFIED = 38, telux::tel::VoiceServiceDenialCause::RETRY_FOR_NEW_CELL = 48, telux::tel::VoiceServiceDenialCause::INCORRECT_MESSAGE = 95,
  telux::tel::VoiceServiceDenialCause::INVALID_INFO = 96, telux::tel::VoiceServiceDenialCause::MSG_TYPE_NOT_IMPLEMENTED = 97, telux::tel::VoiceServiceDenialCause::MSG_NOT_COMPATIBLE = 98, telux::tel::VoiceServiceDenialCause::INFO_NOT_IMPLEMENTED = 99,
  telux::tel::VoiceServiceDenialCause::CONDITIONAL_IE_ERROR = 100, telux::tel::VoiceServiceDenialCause::PROTOCOL_ERROR_UNSPECIFIED = 111
}
 

Detailed Description

This section contains APIs related to Phone, Signal Strength and interfaces to register global listeners to event notifications.


Data Structure Documentation

struct telux::tel::ECallMsdOptionals

Represents MsdOptionals class as per European eCall MSD standard. i.e. EN 15722.

Data Fields
ECallOptionalDataType optionalDataType

Type of optional data

bool optionalDataPresent

Availability of Optional data: true - Present or false - Absent

bool recentVehicleLocationN1Present

Availability of Recent Vehicle Location N1 data: true - Present or false - Absent

bool recentVehicleLocationN2Present

Availability of Recent Vehicle Location N2 data: true - Present or false - Absent

bool numberOfPassengersPresent

Availability of number of seat belts fastened data: true - Present or false - Absent

struct telux::tel::ECallMsdControlBits

Represents ECallMsdControlBits structure as per European eCall MSD standard. i.e. EN 15722.

Data Fields
bool automaticActivation

auto / manual activation

bool testCall

test / emergency call

bool positionCanBeTrusted

false if coincidence < 95% of reported pos within +/- 150m

ECallVehicleType vehicleType: 5

Represents a vehicle class as per EN 15722

struct telux::tel::ECallVehicleIdentificationNumber

Represents VehicleIdentificationNumber structure as per European eCall MSD standard. i.e. EN 15722. Vehicle Identification Number confirming ISO3779.

Data Fields
string isowmi

World Manufacturer Index (WMI)

string isovds

Vehicle Type Descriptor (VDS)

string isovisModelyear

Model year from Vehicle Identifier Section (VIS)

string isovisSeqPlant

Plant code + sequential number from VIS

struct telux::tel::ECallVehiclePropulsionStorageType

Represents VehiclePropulsionStorageType structure as per European eCall MSD standard. i.e. EN 15722. Vehicle Propulsion type (energy storage): True- Present, False - Absent

Data Fields
bool gasolineTankPresent

Represents the presence of Gasoline Tank in the vehicle.

bool dieselTankPresent

Represents the presence of Diesel Tank in the vehicle

bool compressedNaturalGas

Represents the presence of CNG in the vehicle

bool liquidPropaneGas

Represents the presence of Liquid Propane Gas in the vehicle

bool electricEnergyStorage

Represents the presence of Electronic Storage in the vehicle

bool hydrogenStorage

Represents the presence of Hydrogen Storage in the vehicle

bool otherStorage

Represents the presence of Other types of storage in the vehicle

struct telux::tel::ECallVehicleLocation

Represents VehicleLocation structure as per European eCall MSD standard. i.e. EN 15722.

Data Fields
int32_t positionLatitude

latitude in value range (-2147483648 to 2147483647)

int32_t positionLongitude
struct telux::tel::ECallVehicleLocationDelta

Represents VehicleLocationDelta structure as per European eCall MSD standard. i.e. EN 15722. Delta with respect to Current Vehicle location.

Data Fields
int16_t latitudeDelta

( 1 Unit = 100 milliarcseconds, range: -512 to 511)

int16_t longitudeDelta

( 1 Unit = 100 milliarcseconds, range: -512 to 511)

struct telux::tel::ECallOptionalPdu

Optional information for the emergency rescue service.

Data Fields
ECallDefaultOptions eCallDefaultOptions

Optional information

struct telux::tel::ECallMsdData

Data structure to hold all details required to construct an MSD

Data Fields
ECallMsdOptionals optionals

Indicates presence of optionals in ECall MSD

uint8_t messageIdentifier

Starts with 1 for each new , increment on retransmission

ECallMsdControlBits control

ECallMsdControlBits structure as per European standard i.e. EN 15722

ECallVehicleIdentificationNumber vehicleIdentificationNumber

VIN (vehicle identification number) according to ISO3779

ECallVehiclePropulsionStorageType vehiclePropulsionStorage

VehiclePropulsionStorageType structure as per European standard i.e. EN 15722

uint32_t timestamp

Seconds elapsed since midnight 01.01.1970 UTC

ECallVehicleLocation vehicleLocation

VehicleLocation structure as per European standard. i.e. EN 15722

uint8_t vehicleDirection

Direction of travel in 2 degrees steps from magnetic north

ECallVehicleLocationDelta recentVehicleLocationN1

Change in latitude and longitude compared to the last MSD transmission

ECallVehicleLocationDelta recentVehicleLocationN2

Change in latitude and longitude compared to the last but one MSD transmission

uint8_t numberOfPassengers

Number of occupants in the vehicle

ECallOptionalPdu optionalPdu

Optional information for the emergency rescue service (103 bytes, ASN.1 encoded); may also point to an address, where this information is locatedOptional information for the emergency rescue service

class telux::tel::IPhone

This class allows getting system information and registering for system events. Each Phone instance is associated with a single SIM. So on a dual SIM device you would have 2 Phone instances.

Public Member Functions

virtual telux::common::Status getPhoneId (int &phId)=0
 
virtual RadioState getRadioState ()=0
 
virtual telux::common::Status requestVoiceRadioTechnology (std::weak_ptr< IVoiceRadioTechnologyCallback > callback)=0
 
virtual ServiceState getServiceState ()=0
 
virtual telux::common::Status requestVoiceServiceState (std::weak_ptr< IVoiceServiceStateCallback > callback)=0
 
virtual telux::common::Status setRadioPower (bool enable, std::shared_ptr< telux::common::ICommandResponseCallback > callback=nullptr)=0
 
virtual telux::common::Status requestSignalStrength (std::shared_ptr< ISignalStrengthCallback > callback=nullptr)=0
 
virtual ~IPhone ()
 

Constructor & Destructor Documentation

virtual telux::tel::IPhone::~IPhone ( )
virtual

Member Function Documentation

virtual telux::common::Status telux::tel::IPhone::getPhoneId ( int &  phId)
pure virtual

Get the Phone ID corresponding to phone.

Parameters
[out]phoneIdUnique identifier for the phone
Returns
Status of getPhoneId i.e. success or suitable error code.
virtual RadioState telux::tel::IPhone::getRadioState ( )
pure virtual

Get Radio state of device.

Returns
RadioState
virtual telux::common::Status telux::tel::IPhone::requestVoiceRadioTechnology ( std::weak_ptr< IVoiceRadioTechnologyCallback callback)
pure virtual

Request for Radio technology type (3GPP/3GPP2) used for voice.

Parameters
[in]callbackcallback pointer to get the response of radio power request
Returns
Status of requestVoiceRadioTechnology 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 ServiceState telux::tel::IPhone::getServiceState ( )
pure virtual

Get service state of the phone.

Returns
ServiceState
Deprecated:
Use requestVoiceServiceState() API
virtual telux::common::Status telux::tel::IPhone::requestVoiceServiceState ( std::weak_ptr< IVoiceServiceStateCallback callback)
pure virtual

Request for voice service state to get the information of phone serving states

Parameters
[in]callbackcallback pointer to get the response of voice service state
Returns
Status of requestVoiceServiceState 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::IPhone::setRadioPower ( bool  enable,
std::shared_ptr< telux::common::ICommandResponseCallback callback = nullptr 
)
pure virtual

Set the radio power on or off.

Parameters
[in]enableFlag that determines whether to turn radio on or off
[in]callbackOptional callback pointer to get the response of set radio power request
Returns
Status of setRadioPower i.e. success or suitable error code.
virtual telux::common::Status telux::tel::IPhone::requestSignalStrength ( std::shared_ptr< ISignalStrengthCallback callback = nullptr)
pure virtual

Get current signal strength of the associated network.

Parameters
[in]callbackOptional callback pointer to get the response of signal strength request
Returns
Status of requestSignalStrength i.e. success or suitable error code.
class telux::tel::ISignalStrengthCallback

Interface for Signal strength callback object. Client needs to implement this interface to get single shot responses for commands like get signal strength.

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

Public Member Functions

virtual void signalStrengthResponse (std::shared_ptr< SignalStrength > signalStrength, telux::common::ErrorCode error)
 

Member Function Documentation

virtual void telux::tel::ISignalStrengthCallback::signalStrengthResponse ( std::shared_ptr< SignalStrength signalStrength,
telux::common::ErrorCode  error 
)
virtual

This function is called with the response to requestSignalStrength API.

Parameters
[out]signalStrengthPointer to signal strength object
[out]errorReturn code for whether the operation succeeded or failed
  • SUCCESS
  • RADIO_NOT_AVAILABLE
class telux::tel::IVoiceRadioTechnologyCallback

Interface for voice radio technology callback object. Client needs to implement this interface to get single shot responses for commands like request voice radio technology.

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

Public Member Functions

virtual void voiceRadioTechnologyResponse (RadioTechnology radioTech, telux::common::ErrorCode error)
 

Member Function Documentation

virtual void telux::tel::IVoiceRadioTechnologyCallback::voiceRadioTechnologyResponse ( RadioTechnology  radioTech,
telux::common::ErrorCode  error 
)
virtual

This function is called with the response to requestVoiceRadioTechnology API.

Parameters
[out]radioTechPointer to radio technology
[out]errorReturn code for whether the operation succeeded or failed
  • SUCCESS
  • RADIO_NOT_AVAILABLE
  • GENERIC_FAILURE
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
class telux::tel::IVoiceServiceStateCallback

Interface for voice service state callback object. Client needs to implement this interface to get single shot responses for commands like request voice radio technology.

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

Public Member Functions

virtual void voiceServiceStateResponse (const std::shared_ptr< VoiceServiceInfo > &serviceInfo, telux::common::ErrorCode error)
 

Member Function Documentation

virtual void telux::tel::IVoiceServiceStateCallback::voiceServiceStateResponse ( const std::shared_ptr< VoiceServiceInfo > &  serviceInfo,
telux::common::ErrorCode  error 
)
virtual

This function is called with the response to requestVoiceServiceState API.

Parameters
[out]serviceInfoPointer to voice service info object
[out]errorReturn code for whether the operation succeeded or failed
  • SUCCESS
  • RADIO_NOT_AVAILABLE
  • GENERIC_FAILURE
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
class telux::tel::IPhoneListener

A listener class for monitoring changes in specific telephony states on the device, including service state and signal strength. 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 onServiceStateChanged (int phoneId, ServiceState state)
 
virtual void onSignalStrengthChanged (int phoneId, std::shared_ptr< SignalStrength > signalStrength)
 
virtual void onRadioStateChanged (int phoneId, RadioState radioState)
 
virtual void onVoiceRadioTechnologyChanged (int phoneId, RadioTechnology radioTech)
 
virtual void onVoiceServiceStateChanged (int phoneId, const std::shared_ptr< VoiceServiceInfo > &serviceInfo)
 
virtual ~IPhoneListener ()
 

Constructor & Destructor Documentation

virtual telux::tel::IPhoneListener::~IPhoneListener ( )
virtual

Member Function Documentation

virtual void telux::tel::IPhoneListener::onServiceStateChanged ( int  phoneId,
ServiceState  state 
)
virtual

This function is called when device service state changes.

Parameters
[in]phoneIdUnique id of the phone on which service state changed.
[in]stateService state of the phone ServiceState
Deprecated:
Use onVoiceServiceStateChanged() listener
virtual void telux::tel::IPhoneListener::onSignalStrengthChanged ( int  phoneId,
std::shared_ptr< SignalStrength signalStrength 
)
virtual

This function is called when network signal strength changes.

Parameters
[in]phoneIdUnique id of the phone on which signal strength state changed.
[in]signalStrengthPointer to signal strength object
virtual void telux::tel::IPhoneListener::onRadioStateChanged ( int  phoneId,
RadioState  radioState 
)
virtual

This function is called when radio state changes on phone

Parameters
[in]phoneUnique id of the phone on which radio state changed
[in]radioStateRadio state of the phone RadioState
virtual void telux::tel::IPhoneListener::onVoiceRadioTechnologyChanged ( int  phoneId,
RadioTechnology  radioTech 
)
virtual

This function is called when the radio technology for voice service changes

Parameters
[in]phoneUnique id of the phone on which radio technology changed
[in]radioTechRadio state of the phone RadioTechnology
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::IPhoneListener::onVoiceServiceStateChanged ( int  phoneId,
const std::shared_ptr< VoiceServiceInfo > &  serviceInfo 
)
virtual

This function is called when the service state for voice service changes

Parameters
[in]phoneUnique id of the phone on which radio technology changed
[in]serviceInfopointer of voice service state info object
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
class telux::tel::IPhoneManager

Phone Manager creates one or more phones based on SIM slot count, it allows clients to register for notification of system events. Clients should check if the subsystem is ready before invoking any of the APIs.

Public Member Functions

virtual bool isSubsystemReady ()=0
 
virtual std::future< bool > onSubsystemReady ()=0
 
virtual telux::common::Status getPhoneIds (std::vector< int > &phoneIds)=0
 
virtual int getPhoneIdFromSlotId (int slotId)=0
 
virtual int getSlotIdFromPhoneId (int phoneId)=0
 
virtual std::shared_ptr< IPhonegetPhone (int phoneId=DEFAULT_PHONE_ID)=0
 
virtual telux::common::Status registerListener (std::weak_ptr< IPhoneListener > listener)=0
 
virtual telux::common::Status removeListener (std::weak_ptr< IPhoneListener > listener)=0
 
virtual ~IPhoneManager ()
 

Constructor & Destructor Documentation

virtual telux::tel::IPhoneManager::~IPhoneManager ( )
virtual

Member Function Documentation

virtual bool telux::tel::IPhoneManager::isSubsystemReady ( )
pure virtual

Checks the status of telephony subsystems and returns the result.

Returns
If true PhoneManager is ready for service (i.e Phone, Sms and Card).
virtual std::future<bool> telux::tel::IPhoneManager::onSubsystemReady ( )
pure virtual

Wait for telephony subsystem to be ready.

Returns
A future that caller can wait on to be notified when telephony subsystem is ready.
virtual telux::common::Status telux::tel::IPhoneManager::getPhoneIds ( std::vector< int > &  phoneIds)
pure virtual

Retrieves a list of Phone Ids. Each id is unique per phone. For example: on a dual SIM device, there would be 2 Phones.

Parameters
[out]phoneIdsList of phone ids
Returns
Status of getPhoneIds i.e. success or suitable error code.
virtual int telux::tel::IPhoneManager::getPhoneIdFromSlotId ( int  slotId)
pure virtual

Get the Phone Id for a given Slot Id.

Parameters
[in]slotIdSIM Card Slot Id
Returns
Phone Id corresponding to the Slot Id.
virtual int telux::tel::IPhoneManager::getSlotIdFromPhoneId ( int  phoneId)
pure virtual

Get the SIM Slot Id for a given Phone Id.

Parameters
[in]phoneIdPhone Id of the phone
Returns
Slot Id corresponding to the Phone Id.
virtual std::shared_ptr<IPhone> telux::tel::IPhoneManager::getPhone ( int  phoneId = DEFAULT_PHONE_ID)
pure virtual

Get the phone instance for a given phone identifier.

Parameters
[in]phoneIdIdentifier for phone instance, retrieved from getPhoneIds API
Returns
Pointer to Phone object corresponding to phoneId.
virtual telux::common::Status telux::tel::IPhoneManager::registerListener ( std::weak_ptr< IPhoneListener listener)
pure virtual

Register a listener for specific events in the telephony subsystem.

Parameters
[in]listenerPointer to Phone Listener object that processes the notification
Returns
Status of registerListener i.e. success or suitable error code.
virtual telux::common::Status telux::tel::IPhoneManager::removeListener ( std::weak_ptr< IPhoneListener listener)
pure virtual

Remove a previously added listener.

Parameters
[in]listenerPointer to Phone Listener object that needs to be removed
Returns
Status of removeListener i.e. success or suitable error code.
class telux::tel::SignalStrength

SignalStrength class provides access to LTE,GSM, CDMA signal strengths.

Public Member Functions

 SignalStrength (std::shared_ptr< LteSignalStrengthInfo > lteSignalStrengthInfo, std::shared_ptr< GsmSignalStrengthInfo > gsmSignalStrengthInfo, std::shared_ptr< CdmaSignalStrengthInfo > cdmaSignalStrengthInfo)
 
std::shared_ptr
< LteSignalStrengthInfo
getLteSignalStrength ()
 
std::shared_ptr
< GsmSignalStrengthInfo
getGsmSignalStrength ()
 
std::shared_ptr
< CdmaSignalStrengthInfo
getCdmaSignalStrength ()
 

Constructor & Destructor Documentation

telux::tel::SignalStrength::SignalStrength ( std::shared_ptr< LteSignalStrengthInfo lteSignalStrengthInfo,
std::shared_ptr< GsmSignalStrengthInfo gsmSignalStrengthInfo,
std::shared_ptr< CdmaSignalStrengthInfo cdmaSignalStrengthInfo 
)

Member Function Documentation

std::shared_ptr<LteSignalStrengthInfo> telux::tel::SignalStrength::getLteSignalStrength ( )

Gives LTE signal strength instance.

Returns
Pointer to LTE signal strength instance that can be used to get lte dbm, signal level values.
std::shared_ptr<GsmSignalStrengthInfo> telux::tel::SignalStrength::getGsmSignalStrength ( )

Gives GSM signal strength instance.

Returns
Pointer to GSM signal strength instance that can be used to get GSM dbm, signal level values.
std::shared_ptr<CdmaSignalStrengthInfo> telux::tel::SignalStrength::getCdmaSignalStrength ( )

Gives CDMA signal strength instance.

Returns
Pointer to CDMA signal strength instance that can be used to get cdma/evdo dbm, signal level values.
class telux::tel::LteSignalStrengthInfo

LTE signal strength class provides methods to get details of lte signals like dbm, signal level, reference signal signal-to-noise ratio, channel quality indicator and signal strength.

Public Member Functions

 LteSignalStrengthInfo (int lteSignalStrength, int lteRsrp, int lteRsrq, int lteRssnr, int lteCqi)
 
const SignalStrengthLevel getLevel () const
 
const int getDbm () const
 
const int getLteSignalStrength () const
 
const int getLteReferenceSignalReceiveQuality () const
 
const int getLteReferenceSignalSnr () const
 
const int getLteChannelQualityIndicator () const
 

Constructor & Destructor Documentation

telux::tel::LteSignalStrengthInfo::LteSignalStrengthInfo ( int  lteSignalStrength,
int  lteRsrp,
int  lteRsrq,
int  lteRssnr,
int  lteCqi 
)

Member Function Documentation

const SignalStrengthLevel telux::tel::LteSignalStrengthInfo::getLevel ( ) const

Get signal level in the range.

Returns
Signal levels indicates the quality of signal being received by the device.
const int telux::tel::LteSignalStrengthInfo::getDbm ( ) const

Get the signal strength as dBm.

Returns
LteRsrp value.
const int telux::tel::LteSignalStrengthInfo::getLteSignalStrength ( ) const

Get the LTE signal strength. Range:(0, 63) > 63 is invalid.

Returns
Lte signal strength.
const int telux::tel::LteSignalStrengthInfo::getLteReferenceSignalReceiveQuality ( ) const

Get LTE reference signal receive quality in dB.

Returns
LteRsrq.
const int telux::tel::LteSignalStrengthInfo::getLteReferenceSignalSnr ( ) const

Get LTE reference signal signal-to-noise ratio in 0.1 dB units. Range: -200 to +300 (-200 = -20.0 dB, +300 = 30dB).

Returns
LteSnr.
const int telux::tel::LteSignalStrengthInfo::getLteChannelQualityIndicator ( ) const

Get LTE channel quality indicator. Range: 0 to 15.

Returns
LteCqI.
class telux::tel::GsmSignalStrengthInfo

GSM signal strength provides methods to get GSM signal strength in dBm and GSM signal level.

Public Member Functions

 GsmSignalStrengthInfo (int gsmSignalStrength, int gsmBitErrorRate)
 
const SignalStrengthLevel getLevel () const
 
const int getDbm () const
 
const int getGsmSignalStrength () const
 
const int getGsmBitErrorRate () const
 

Constructor & Destructor Documentation

telux::tel::GsmSignalStrengthInfo::GsmSignalStrengthInfo ( int  gsmSignalStrength,
int  gsmBitErrorRate 
)

Member Function Documentation

const SignalStrengthLevel telux::tel::GsmSignalStrengthInfo::getLevel ( ) const

Get signal level in the range.

Returns
Signal levels indicates the quality of signal being received by the device.
const int telux::tel::GsmSignalStrengthInfo::getDbm ( ) const

Get the signal strength as dBm.

Returns
Gsm signal strength in dBm.
const int telux::tel::GsmSignalStrengthInfo::getGsmSignalStrength ( ) const

Get the GSM signal strength.

Returns
GSM signal strength.
const int telux::tel::GsmSignalStrengthInfo::getGsmBitErrorRate ( ) const

Get the GSM bit error rate (0-7, 99).

Returns
GSM bit error rate.
class telux::tel::CdmaSignalStrengthInfo

CDMA signal strength provides methods to get details of Cdma and Evdo like signal strength in dBm and signal level.

Public Member Functions

 CdmaSignalStrengthInfo (int cdmaDbm, int cdmaEcio, int evdoDbm, int evdoEcio, int evdoSignalNoiseRatio, int tdScdmaRscp)
 
const SignalStrengthLevel getLevel () const
 
const int getDbm () const
 
const int getCdmaEcio () const
 
const int getTdScdmaReceivedSignalCodePower () const
 
const int getEvdoEcio () const
 
const int getEvdoSignalNoiseRatio () const
 

Constructor & Destructor Documentation

telux::tel::CdmaSignalStrengthInfo::CdmaSignalStrengthInfo ( int  cdmaDbm,
int  cdmaEcio,
int  evdoDbm,
int  evdoEcio,
int  evdoSignalNoiseRatio,
int  tdScdmaRscp 
)

Member Function Documentation

const SignalStrengthLevel telux::tel::CdmaSignalStrengthInfo::getLevel ( ) const

Get signal level in the range.

Returns
Signal levels indicates the quality of signal being received by the device.
const int telux::tel::CdmaSignalStrengthInfo::getDbm ( ) const

Get the signal strength as dBm.

Returns
Minimum value of Evdo dBm and Cdma dBm.
const int telux::tel::CdmaSignalStrengthInfo::getCdmaEcio ( ) const

Get the Cdma Ec/Io value in dB*10.

Returns
Cdma Ecio.
const int telux::tel::CdmaSignalStrengthInfo::getTdScdmaReceivedSignalCodePower ( ) const

Get TdScdma received signal code power in dBm.

Returns
TdScdma signal code power.
const int telux::tel::CdmaSignalStrengthInfo::getEvdoEcio ( ) const

Get the Evdo Ec/Io value in dB*10.

Returns
Evdo Ecio.
const int telux::tel::CdmaSignalStrengthInfo::getEvdoSignalNoiseRatio ( ) const

Get the Evdo signal noise ratio and values are 0-8. 8 is the highest signal to noise ratio.

Returns
EVDO SNR.
class telux::tel::VoiceServiceInfo

VoiceServiceInfo is a container class for obtaining serving state details like phone is registered to home network, roaming, in service, out of service or only emergency calls allowed

Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.

Public Member Functions

 VoiceServiceInfo (VoiceServiceState voiceServiceState, VoiceServiceDenialCause denialCause)
 
VoiceServiceState getVoiceServiceState ()
 
VoiceServiceDenialCause getVoiceServiceDenialCause ()
 
bool isEmergency ()
 
bool isInService ()
 
bool isOutOfService ()
 

Constructor & Destructor Documentation

telux::tel::VoiceServiceInfo::VoiceServiceInfo ( VoiceServiceState  voiceServiceState,
VoiceServiceDenialCause  denialCause 
)

Member Function Documentation

VoiceServiceState telux::tel::VoiceServiceInfo::getVoiceServiceState ( )

Get voice service state.

Returns
VoiceServiceState
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
VoiceServiceDenialCause telux::tel::VoiceServiceInfo::getVoiceServiceDenialCause ( )

Get Voice service denial cause

Returns
VoiceServiceDenialCause
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
bool telux::tel::VoiceServiceInfo::isEmergency ( )

Check if phone service is in emergency mode (i.e Only emergency numbers are allowed)

Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
bool telux::tel::VoiceServiceInfo::isInService ( )

Check if phone is registered to home network or roaming network, phone is in service mode

Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.
bool telux::tel::VoiceServiceInfo::isOutOfService ( )

check if phone not registered, phone is in out of service mode

Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.

Enumeration Type Documentation

ECall Variant

Enumerator
ECALL_TEST 

Test eCall (0x01)

ECALL_EMERGENCY 

Emergency eCall (0x02)

Emergency Call Type

Enumerator
CALL_TYPE_ECALL 

eCall (0x0C)

ECall category

Enumerator
VOICE_EMER_CAT_AUTO_ECALL 

Automatic emergency call

VOICE_EMER_CAT_MANUAL 

Manual emergency call

Represents a vehicle class as per European eCall MSD standard. i.e. EN 15722.

Enumerator
PASSENGER_VEHICLE_CLASS_M1 
BUSES_AND_COACHES_CLASS_M2 
BUSES_AND_COACHES_CLASS_M3 
LIGHT_COMMERCIAL_VEHICLES_CLASS_N1 
HEAVY_DUTY_VEHICLES_CLASS_N2 
HEAVY_DUTY_VEHICLES_CLASS_N3 
MOTOR_CYCLES_CLASS_L1E 
MOTOR_CYCLES_CLASS_L2E 
MOTOR_CYCLES_CLASS_L3E 
MOTOR_CYCLES_CLASS_L4E 
MOTOR_CYCLES_CLASS_L5E 
MOTOR_CYCLES_CLASS_L6E 
MOTOR_CYCLES_CLASS_L7E 

Represents OptionalDataType class as per European eCall MSD standard. i.e. EN 15722.

Enumerator
ECALL_DEFAULT 

Defines the radio state

Enumerator
RADIO_STATE_OFF 

Radio is explicitly powered off

RADIO_STATE_UNAVAILABLE 

Radio unavailable (eg, resetting or not booted)

RADIO_STATE_ON 

Radio is on

Defines the service states

Deprecated:
Use requestVoiceServiceState() API or to know the status of phone
Enumerator
EMERGENCY_ONLY 

Only emergency calls allowed

IN_SERVICE 

Normal operation, device is registered with a carrier and online

OUT_OF_SERVICE 

Device is not registered with any carrier

RADIO_OFF 

Device radio is off - Airplane mode for example

Defines all available radio access technologies

Enumerator
RADIO_TECH_UNKNOWN 

Network type is unknown

RADIO_TECH_GPRS 

Network type is GPRS

RADIO_TECH_EDGE 

Network type is EDGE

RADIO_TECH_UMTS 

Network type is UMTS

RADIO_TECH_IS95A 

Network type is IS95A

RADIO_TECH_IS95B 

Network type is IS95B

RADIO_TECH_1xRTT 

Network type is 1xRTT

RADIO_TECH_EVDO_0 

Network type is EVDO revision 0

RADIO_TECH_EVDO_A 

Network type is EVDO revision A

RADIO_TECH_HSDPA 

Network type is HSDPA

RADIO_TECH_HSUPA 

Network type is HSUPA

RADIO_TECH_HSPA 

Network type is HSPA

RADIO_TECH_EVDO_B 

Network type is EVDO revision B

RADIO_TECH_EHRPD 

Network type is eHRPD

RADIO_TECH_LTE 

Network type is LTE

RADIO_TECH_HSPAP 

Network type is HSPA+

RADIO_TECH_GSM 

Network type is GSM, Only supports voice

RADIO_TECH_TD_SCDMA 

Network type is TD SCDMA

RADIO_TECH_IWLAN 

Network type is TD IWLAN

RADIO_TECH_LTE_CA 

Network type is LTE CA

Defines all the signal levels that SignalStrength class can return where level 1 is low and level 5 is high.

Enumerator
LEVEL_1 
LEVEL_2 
LEVEL_3 
LEVEL_4 
LEVEL_5 
LEVEL_UNKNOWN 

Defines the voice service states

Enumerator
NOT_REG_AND_NOT_SEARCHING 

Not registered, MT is not currently searching a new operator to register

REG_HOME 

Registered, home network

NOT_REG_AND_SEARCHING 

Not registered, but MT is currently searching a new operator to register

REG_DENIED 

Registration denied

UNKNOWN 

Unknown

REG_ROAMING 

Registered, roaming

NOT_REG_AND_EMERGENCY_AVAILABLE_AND_NOT_SEARCHING 

Same as NOT_REG_AND_NOT_SEARCHING but indicates that emergency calls are enabled

NOT_REG_AND_EMERGENCY_AVAILABLE_AND_SEARCHING 

Same as NOT_REG_AND_SEARCHING but indicates that emergency calls are enabled

REG_DENIED_AND_EMERGENCY_AVAILABLE 

Same as REG_DENIED but indicates that emergency calls are enabled

UNKNOWN_AND_EMERGENCY_AVAILABLE 

Same as UNKNOWN but indicates that emergency calls are enabled

Defines the voice service denial cause why voice service state registration was denied See 3GPP TS 24.008, 10.5.3.6 and Annex G.

Enumerator
UNDEFINED 

Undefined

GENERAL 

General

AUTH_FAILURE 

Authentication Failure

IMSI_UNKNOWN 

IMSI unknown in HLR

ILLEGAL_MS 

Illegal Mobile Station (MS), network refuses service to the MS either because an identity of the MS is not acceptable to the network or because the MS does not pass the authentication check

IMSI_UNKNOWN_VLR 

IMSI unknown in Visitors Location Register (VLR)

IMEI_NOT_ACCEPTED 

Network does not accept emergency call establishment using an IMEI or not accept attach procedure for emergency services using an IMEI

ILLEGAL_ME 

ME used is not acceptable to the network

GPRS_SERVICES_NOT_ALLOWED 

Not allowed to operate GPRS services.

GPRS_NON_GPRS_NOT_ALLOWED 

Not allowed to operate either GPRS or non-GPRS services

MS_IDENTITY_FAILED 

the network cannot derive the MS's identity from the P-TMSI/GUTI.

IMPLICITLY_DETACHED 

network has implicitly detached the MS

GPRS_NOT_ALLOWED_IN_PLMN 

GPRS services not allowed in this PLMN

MSC_TEMPORARILY_NOT_REACHABLE 

MSC temporarily not reachable

SMS_PROVIDED_VIA_GPRS 

SMS provided via GPRS in this routing area

NO_PDP_CONTEXT_ACTIVATED 

No PDP context activated

PLMN_NOT_ALLOWED 

if the network initiates a detach request or UE requests a services, in a PLMN where the MS, by subscription or due to operator determined barring is not allowed to operate.

LOCATION_AREA_NOT_ALLOWED 

network initiates a detach request, in a location area where the HPLMN determines that the MS, by subscription, is not allowed to operate or roaming subscriber the subscriber is denied service even if other PLMNs are available on which registration was possible

ROAMING_NOT_ALLOWED 

Roaming not allowed in this Location Area

NO_SUITABLE_CELLS 

No Suitable Cells in this Location Area

NOT_AUTHORIZED 

Not Authorized for this CSG

NETWORK_FAILURE 

Network Failure

MAC_FAILURE 

MAC failure

SYNC_FAILURE 

USIM detects that the SQN in the AUTHENTICATION REQUEST or AUTHENTICATION_AND_CIPHERING REQUEST message is out of range

CONGESTION 

network cannot serve a request from the MS because of congestion

GSM_AUTHENTICATION_UNACCEPTABLE 

GSM Authentication unacceptable

SERVICE_OPTION_NOT_SUPPORTED 

Service option not supported

SERVICE_OPTION_NOT_SUBCRIBED 

Requested service option not subscribed

SERVICE_OPTION_OUT_OF_ORDER 

Service option temporarily out of order

CALL_NOT_IDENTIFIED 

Call cannot be identified

RETRY_FOR_NEW_CELL 

Retry upon entry into a new cell

INCORRECT_MESSAGE 

Semantically incorrect message

INVALID_INFO 

Invalid mandatory information

MSG_TYPE_NOT_IMPLEMENTED 

Message type non-existent or not implemented

MSG_NOT_COMPATIBLE 

Message not compatible with protocol state

INFO_NOT_IMPLEMENTED 

Information element non-existent or not implemented

CONDITIONAL_IE_ERROR 

Conditional IE error

PROTOCOL_ERROR_UNSPECIFIED 

Protocol error, unspecified