Telematics SDK - Interface Specification  v1.46.73
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 notifications related to updates in radio access technology mode preference, service domain preference, serving system information, etc. Some notifications in this listener could be frequent in nature. When the system is in a suspended/low power state, those indications will wake the system up. This could result in increased power consumption by the system. If those notifications are not required in the suspended/low power state, it is recommended for the client to de-register specific notifications using the deregisterListener API. More...
 

Typedefs

using telux::tel::RatPreference = std::bitset< 16 >
 
using telux::tel::ServingSystemNotificationMask = std::bitset< 32 >
 
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 }
 
enum  telux::tel::ServingSystemNotificationType { telux::tel::SYSTEM_INFO }
 

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, ServingSystemNotificationMask mask=ALL_NOTIFICATIONS)=0
 
virtual telux::common::Status deregisterListener (std::weak_ptr< IServingSystemListener > listener, ServingSystemNotificationMask mask=ALL_NOTIFICATIONS)=0
 
virtual ~IServingSystemManager ()
 

Static Public Attributes

static const uint32_t ALL_NOTIFICATIONS = 0xFFFFFFFF
 

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,
ServingSystemNotificationMask  mask = ALL_NOTIFICATIONS 
)
pure virtual

Register a listener for specific updates from serving system.

Parameters
[in]listenerPointer of IServingSystemListener object that processes the notification
[in]maskBit mask representing a set of notifications that needs to be registered - ServingSystemNotificationMask Notifications under IServingSystemListener that are not listed in in ServingSystemNotificationType would always be registered by default. All the notifications will be registered when the client provides ALL_NOTIFICATIONS as input. The bits that are not set in the mask are ignored and do not have any effect on registration. To deregister, the API deregisterListener should be used.
Returns
Status of registerListener i.e success or suitable status code.
virtual telux::common::Status telux::tel::IServingSystemManager::deregisterListener ( std::weak_ptr< IServingSystemListener listener,
ServingSystemNotificationMask  mask = ALL_NOTIFICATIONS 
)
pure virtual

Deregister the previously added listener.

Parameters
[in]listenerPreviously registered IServingSystemListener that needs to be removed
[in]maskBit mask that denotes a set of notifications that needs to be de-registered - ServingSystemNotificationMask Notifications under IServingSystemListener that are not listed in ServingSystemNotificationType will be de-registered only when ALL_NOTIFICATIONS is provided as input. The bits that are not set in the mask are ignored and does not have any effect on de-registration. However, providing an empty mask is an invalid operation. To register again, the API deregisterListener should be used.
Returns
Status of removeListener i.e. success or suitable status code

Field Documentation

const uint32_t telux::tel::IServingSystemManager::ALL_NOTIFICATIONS = 0xFFFFFFFF
static

Represents the set of all notifications defined in ServingSystemNotificationType. When this constant value is provided for registration or deregistration, all notifications will be registered or deregistered.

class telux::tel::IServingSystemListener

Listener class for getting notifications related to updates in radio access technology mode preference, service domain preference, serving system information, etc. Some notifications in this listener could be frequent in nature. When the system is in a suspended/low power state, those indications will wake the system up. This could result in increased power consumption by the system. If those notifications are not required in the suspended/low power state, it is recommended for the client to de-register specific notifications using the deregisterListener API.

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.

To receive this notification, client needs to register a listener using registerListener API by setting the ServingSystemNotificationType::SYSTEM_INFO bit in the bitmask.

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.

To receive this notification, client needs to register a listener using registerListener API by setting the ServingSystemNotificationType::SYSTEM_INFO bit in the bitmask.

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::ServingSystemNotificationMask = typedef std::bitset<32>

Bit mask that denotes a set of notifications defined in ServingSystemNotificationType

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

Defines some of the notifications supported by IServingSystemListener which can be dynamically disabled/enabled. Each entry represents one or more listener callbacks in IServingSystemListener

Enumerator
SYSTEM_INFO