Telematics SDK - Interface Specification  v1.38.19
Telematics_multi_sim

Data Structures

struct  telux::tel::SlotStatus
 
class  telux::tel::IMultiSimManager
 MultiSimManager allows to perform operation pertaining to devices which have more than one SIM/UICC card. Clients should check if the subsystem is ready before invoking any of the APIs as follows. More...
 
class  telux::tel::IMultiSimListener
 Listener class for getting high capability change notification. The listener method can be invoked from multiple different threads. Client needs to make sure that implementation is thread-safe. More...
 

Enumerations

enum  telux::tel::SlotState { telux::tel::SlotState::UNKNOWN = -1, telux::tel::SlotState::INACTIVE, telux::tel::SlotState::ACTIVE }
 

Detailed Description


Data Structure Documentation

struct telux::tel::SlotStatus

Represents status of a physical SIM slot

Data Fields
SlotState slotState

State of the physical SIM slot

CardState cardState

Status of the card in the physical slot

CardError cardError

Indicates the reason for the card error, and is valid only when the card state is CARDSTATE_ERROR.

class telux::tel::IMultiSimManager

MultiSimManager allows to perform operation pertaining to devices which have more than one SIM/UICC card. Clients should check if the subsystem is ready before invoking any of the APIs as follows.

bool isReady = MultiSimManager->isSubsystemReady();

Public Member Functions

virtual bool isSubsystemReady ()=0
 
virtual std::future< bool > onSubsystemReady ()=0
 
virtual telux::common::Status getSlotCount (int &count)=0
 
virtual telux::common::Status requestHighCapability (HighCapabilityCallback callback)=0
 
virtual telux::common::Status setHighCapability (int slotId, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status switchActiveSlot (SlotId slotId, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status requestSlotStatus (SlotStatusCallback callback)=0
 
virtual telux::common::Status registerListener (std::weak_ptr< IMultiSimListener > listener)=0
 
virtual telux::common::Status deregisterListener (std::weak_ptr< IMultiSimListener > listener)=0
 
virtual ~IMultiSimManager ()
 

Constructor & Destructor Documentation

virtual telux::tel::IMultiSimManager::~IMultiSimManager ( )
virtual

Member Function Documentation

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

Checks the status of Multi SIM subsystem and returns the result.

Returns
If true MultiSimManager is ready.
Note
Eval: This is a new API and is being evaluated. It is subject to change and could break backwards compatibility.
virtual std::future<bool> telux::tel::IMultiSimManager::onSubsystemReady ( )
pure virtual

Wait for Multi SIM subsystem to be ready.

Returns
A future that caller can wait on to be notified when Multi SIM subsystem is ready.
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::IMultiSimManager::getSlotCount ( int &  count)
pure virtual

Get SIM slot count. The count can be used to determine whether the device supports multi SIM.

Parameters
[out]countSlot count.
Returns
Status of getSlotCount 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::IMultiSimManager::requestHighCapability ( HighCapabilityCallback  callback)
pure virtual

Request to find out which SIM/slot is allowed to use advance Radio Technology like 5G at a time. For example SIM/slot with high capability may allowed to use RAT capabilities like 5G/4G/3G/2G while the SIM/slot with low capability may be allowed to use RAT capabilities like 4G/2G.

Parameters
[in]callbackCallback function to get the response of request high capability.
Returns
Status of requestHighCapability 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::IMultiSimManager::setHighCapability ( int  slotId,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Set SIM/slot with high capability asynchronously. On dual SIM devices, only one SIM may be allowed to use advanced Radio technology like 5G at a time. This API sets the SIM/slot that should be allowed the highest RAT capability. The other SIM/slot will be given lower RAT capabilities. For example, SIM in slot1 will be allowed 2G/3G/4G/5G and the SIM in slot2 will be allowed only 2G/4G.

Parameters
[in]slotIdSlot set with high capablity.
[in]callbackCallback function to get the response of set high capability request.
Returns
Status of setHighCapability 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::IMultiSimManager::switchActiveSlot ( SlotId  slotId,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Choose the physical SIM slot to be used by modem on Single-SIM TCU platforms. After switching the slot, only the SIM on chosen physical slot can be used for WWAN functionality.

Parameters
[in]slotIdphysical slot to be made active
[in]callbackCallback function to get the response of slot switch request
Returns
Status of switchActiveSlot 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::IMultiSimManager::requestSlotStatus ( SlotStatusCallback  callback)
pure virtual

Request the status of physical slots.

Parameters
[in]callbackCallback function to get the response of slot status request
Returns
Status of requestSlotStatus 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::IMultiSimManager::registerListener ( std::weak_ptr< IMultiSimListener listener)
pure virtual

Register a listener for specific events in the Multi SIM subsystem.

Parameters
[in]listenerPointer to IMultiSimListener object that processes the notification
Returns
Status of registerListener 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::IMultiSimManager::deregisterListener ( std::weak_ptr< IMultiSimListener listener)
pure virtual

Deregister the previously added listener.

Parameters
[in]listenerPointer to IMultiSimListener object that needs to be deregistered.
Returns
Status of deregisterListener 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.
class telux::tel::IMultiSimListener

Listener class for getting high capability 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 onHighCapabilityChanged (int slotId)
 
virtual void onSlotStatusChanged (std::map< SlotId, SlotStatus > slotStatus)
 
virtual ~IMultiSimListener ()
 
- Public Member Functions inherited from telux::common::IServiceStatusListener
virtual void onServiceStatusChange (ServiceStatus status)
 
virtual ~IServiceStatusListener ()
 

Constructor & Destructor Documentation

virtual telux::tel::IMultiSimListener::~IMultiSimListener ( )
virtual

Destructor of IMultiSimListener

Member Function Documentation

virtual void telux::tel::IMultiSimListener::onHighCapabilityChanged ( int  slotId)
virtual

This function is called whenever there is change in high capability for SIM/slot.

Parameters
[in]slotIdSIM corresponding to slot identifier has high capability now.
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::IMultiSimListener::onSlotStatusChanged ( std::map< SlotId, SlotStatus slotStatus)
virtual

This function is called whenever there is change in physical SIM slots status.

Parameters
[in]slotStatuslist of slots status SlotStatus
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.

Enumeration Type Documentation

enum telux::tel::SlotState
strong

Represents state of the physical SIM slot

Enumerator
UNKNOWN 
INACTIVE 

Slot is inactive

ACTIVE 

Slot is active