Telematics SDK - Interface Specification  v1.46.54
Serving System

Data Structures

struct  telux::tel::ServingSystemInfo
 
struct  telux::tel::DcStatus
 
class  telux::tel::IServingSystemManager
 Serving System Manager class provides the API to request and set service domain preference and RAT preference. More...
 
class  telux::tel::IServingSystemListener
 Listener class for getting radio access technology mode preference change notification. More...
 

Typedefs

using telux::tel::RatPreference = std::bitset< 16 >
 
using telux::tel::RatPreferenceCallback = std::function< void(RatPreference preference, telux::common::ErrorCode error)>
 
using telux::tel::ServiceDomainPreferenceCallback = std::function< void(ServiceDomainPreference preference, telux::common::ErrorCode error)>
 

Enumerations

enum  telux::tel::ServiceDomainPreference { telux::tel::ServiceDomainPreference::UNKNOWN = -1, telux::tel::ServiceDomainPreference::CS_ONLY, telux::tel::ServiceDomainPreference::PS_ONLY, telux::tel::ServiceDomainPreference::CS_PS }
 
enum  telux::tel::ServiceDomain {
  telux::tel::ServiceDomain::UNKNOWN = -1, telux::tel::ServiceDomain::NO_SRV, telux::tel::ServiceDomain::CS_ONLY, telux::tel::ServiceDomain::PS_ONLY,
  telux::tel::ServiceDomain::CS_PS, telux::tel::ServiceDomain::CAMPED
}
 
enum  telux::tel::RatPrefType {
  telux::tel::PREF_CDMA_1X, telux::tel::PREF_CDMA_EVDO, telux::tel::PREF_GSM, telux::tel::PREF_WCDMA,
  telux::tel::PREF_LTE, telux::tel::PREF_TDSCDMA, telux::tel::PREF_NR5G
}
 
enum  telux::tel::EndcAvailability { telux::tel::EndcAvailability::UNKNOWN = -1, telux::tel::EndcAvailability::AVAILABLE, telux::tel::EndcAvailability::UNAVAILABLE }
 
enum  telux::tel::DcnrRestriction { telux::tel::DcnrRestriction::UNKNOWN = -1, telux::tel::DcnrRestriction::RESTRICTED, telux::tel::DcnrRestriction::UNRESTRICTED }
 

Detailed Description

Serving System Manager class provides the interface to request and set service domain preference and radio access technology mode preference for searching and registering (CS/PS domain, RAT and operation mode)


Data Structure Documentation

struct telux::tel::ServingSystemInfo

Defines current serving system information

Data Fields
RadioTechnology rat

Current serving RAT

ServiceDomain domain

Current service domain registered on system for the serving RAT

struct telux::tel::DcStatus

Defines Dual Connectivity status

Data Fields
EndcAvailability endcAvailability

ENDC availability

DcnrRestriction dcnrRestriction

DCNR restriction

class telux::tel::IServingSystemManager

Serving System Manager class provides the API to request and set service domain preference and RAT preference.

Public Member Functions

virtual bool isSubsystemReady ()=0
 
virtual std::future< bool > onSubsystemReady ()=0
 
virtual telux::common::ServiceStatus getServiceStatus ()=0
 
virtual telux::common::Status setRatPreference (RatPreference ratPref, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status requestRatPreference (RatPreferenceCallback callback)=0
 
virtual telux::common::Status setServiceDomainPreference (ServiceDomainPreference serviceDomain, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status requestServiceDomainPreference (ServiceDomainPreferenceCallback callback)=0
 
virtual telux::common::Status getSystemInfo (ServingSystemInfo &sysInfo)=0
 
virtual telux::tel::DcStatus getDcStatus ()=0
 
virtual telux::common::Status registerListener (std::weak_ptr< IServingSystemListener > listener)=0
 
virtual telux::common::Status deregisterListener (std::weak_ptr< IServingSystemListener > listener)=0
 
virtual ~IServingSystemManager ()
 

Constructor & Destructor Documentation

virtual telux::tel::IServingSystemManager::~IServingSystemManager ( )
virtual

Destructor of IServingSystemManager

Member Function Documentation

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

Checks the status of serving subsystem and returns the result.

Returns
True if serving subsystem is ready for service otherwise false.
Deprecated:
Use IServingSystemManager::getServiceStatus() API.
virtual std::future<bool> telux::tel::IServingSystemManager::onSubsystemReady ( )
pure virtual

Wait for serving subsystem to be ready.

Returns
A future that caller can wait on to be notified when serving subsystem is ready.
Deprecated:
Use InitResponseCb in PhoneFactory::getServingSystemManager instead, to get notified about subsystem readiness.
virtual telux::common::ServiceStatus telux::tel::IServingSystemManager::getServiceStatus ( )
pure virtual

This status indicates whether the IServingSystemManager object is in a usable state.

Returns
SERVICE_AVAILABLE - If Serving System manager is ready for service. SERVICE_UNAVAILABLE - If Serving System manager is temporarily unavailable. SERVICE_FAILED - If Serving System manager encountered an irrecoverable failure.
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::IServingSystemManager::setRatPreference ( RatPreference  ratPref,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Set the preferred radio access technology mode that the device should use to acquire service.

Parameters
[in]ratPrefRadio access technology mode preference.
[in]callbackCallback function to get the response of set RAT mode preference.
Returns
Status of setRatPreference i.e. success or suitable error code.
virtual telux::common::Status telux::tel::IServingSystemManager::requestRatPreference ( RatPreferenceCallback  callback)
pure virtual

Request for preferred radio access technology mode.

Parameters
[in]callbackCallback function to get the response of request preferred RAT mode.
Returns
Status of requestRatPreference i.e. success or suitable error code.
virtual telux::common::Status telux::tel::IServingSystemManager::setServiceDomainPreference ( ServiceDomainPreference  serviceDomain,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Initiate service domain preference like CS, PS or CS_PS and receive the response asynchronously.

Parameters
[in]serviceDomainServiceDomainPreference.
[in]callbackCallback function to get the response of set service domain preference request.
Returns
Status of setServiceDomainPreference i.e. success or suitable error code.
virtual telux::common::Status telux::tel::IServingSystemManager::requestServiceDomainPreference ( ServiceDomainPreferenceCallback  callback)
pure virtual

Request for Service Domain Preference asynchronously.

Parameters
[in]callbackCallback function to get the response of request service domain preference.
Returns
Status of requestServiceDomainPreference i.e. success or suitable error code.
virtual telux::common::Status telux::tel::IServingSystemManager::getSystemInfo ( ServingSystemInfo sysInfo)
pure virtual

Get the Serving system information. Supports only 3GPP RATs.

Parameters
[out]sysInfoServing system information ServingSystemInfo
Returns
Status of getServingSystemInfo 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::tel::DcStatus telux::tel::IServingSystemManager::getDcStatus ( )
pure virtual

Request for Dual Connectivity status on 5G NR.

Returns
DcStatus
virtual telux::common::Status telux::tel::IServingSystemManager::registerListener ( std::weak_ptr< IServingSystemListener listener)
pure virtual

Register a listener for specific updates from serving system.

Parameters
[in]listenerPointer of IServingSystemListener object that processes the notification
Returns
Status of registerListener i.e success or suitable status code.
virtual telux::common::Status telux::tel::IServingSystemManager::deregisterListener ( std::weak_ptr< IServingSystemListener listener)
pure virtual

Deregister the previously added listener.

Parameters
[in]listenerPreviously registered IServingSystemListener that needs to be removed
Returns
Status of removeListener i.e. success or suitable status code
class telux::tel::IServingSystemListener

Listener class for getting radio access technology mode preference change notification.

The listener method can be invoked from multiple different threads. Client needs to make sure that implementation is thread-safe.

Public Member Functions

virtual void onRatPreferenceChanged (RatPreference preference)
 
virtual void onServiceDomainPreferenceChanged (ServiceDomainPreference preference)
 
virtual void onSystemInfoChanged (ServingSystemInfo sysInfo)
 
virtual void onDcStatusChanged (DcStatus dcStatus)
 
virtual ~IServingSystemListener ()
 
- Public Member Functions inherited from telux::common::IServiceStatusListener
virtual void onServiceStatusChange (ServiceStatus status)
 
virtual ~IServiceStatusListener ()
 

Constructor & Destructor Documentation

virtual telux::tel::IServingSystemListener::~IServingSystemListener ( )
virtual

Destructor of IServingSystemListener

Member Function Documentation

virtual void telux::tel::IServingSystemListener::onRatPreferenceChanged ( RatPreference  preference)
virtual

This function is called whenever RAT mode preference is changed.

Parameters
[in]preferenceRatPreference
virtual void telux::tel::IServingSystemListener::onServiceDomainPreferenceChanged ( ServiceDomainPreference  preference)
virtual

This function is called whenever service domain preference is changed.

Parameters
[in]preferenceServiceDomainPreference
virtual void telux::tel::IServingSystemListener::onSystemInfoChanged ( ServingSystemInfo  sysInfo)
virtual

This function is called whenever the Serving System information is changed. Supports only 3GPP RATs.

Parameters
[in]sysInfoServingSystemInfo
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::IServingSystemListener::onDcStatusChanged ( DcStatus  dcStatus)
virtual

This function is called whenever the Dual Connnectivity status is changed on 5G NR.

Parameters
[in]dcStatusDcStatus

Typedef Documentation

using telux::tel::RatPreference = typedef std::bitset<16>

16 bit mask that denotes which of the radio access technology mode preference defined in RatPrefType enum are used to set or get RAT preference.

using telux::tel::RatPreferenceCallback = typedef std::function<void(RatPreference preference, telux::common::ErrorCode error)>

This function is called with the response to requestRatPreference API.

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

Parameters
[in]preferenceRatPreference
[in]errorReturn code which indicates whether the operation succeeded or not ErrorCode
using telux::tel::ServiceDomainPreferenceCallback = typedef std::function<void(ServiceDomainPreference preference, telux::common::ErrorCode error)>

This function is called with the response to requestServiceDomainPreference API.

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

Parameters
[in]preferenceServiceDomainPreference
[in]errorReturn code which indicates whether the operation succeeded or not ErrorCode

Enumeration Type Documentation

Defines service domain preference

Enumerator
UNKNOWN 
CS_ONLY 

Circuit-switched only

PS_ONLY 

Packet-switched only

CS_PS 

Circuit-switched and packet-switched

Defines service domain

Enumerator
UNKNOWN 

Unknown, when the information is not available

NO_SRV 

No Service

CS_ONLY 

Circuit-switched only

PS_ONLY 

Packet-switched only

CS_PS 

Circuit-switched and packet-switched

CAMPED 

Device camped on the network according to its provisioning, but not registered

Defines the radio access technology mode preference.

Enumerator
PREF_CDMA_1X 

CDMA_1X

PREF_CDMA_EVDO 

CDMA_EVDO

PREF_GSM 

GSM

PREF_WCDMA 

WCDMA

PREF_LTE 

LTE

PREF_TDSCDMA 

TDSCDMA

PREF_NR5G 

NR5G

Defines ENDC(E-UTRAN New Radio-Dual Connectivity) Availability status on 5G NR

Enumerator
UNKNOWN 

Status unknown

AVAILABLE 

ENDC is Available

UNAVAILABLE 

ENDC is not Available

Defines DCNR(Dual Connectivity with NR) Restriction status on 5G NR

Enumerator
UNKNOWN 

Status unknown

RESTRICTED 

DCNR is Rescticted

UNRESTRICTED 

DCNR is not Restricted