Telematics SDK - Interface Specification  v1.38.19
Remote SIM Provisioning

Data Structures

class  telux::tel::SimProfile
 SimProfile class represents single eUICC profile on the card. More...
 
class  telux::tel::ISimProfileListener
 The interface listens for profile download indication and keep track of download and install progress of profile. More...
 
class  telux::tel::ISimProfileManager
 ISimProfileManager is a primary interface for remote eUICCs (eSIMs or embedded SIMs) provisioning.This interface provides APIs to add, delete, set profile, update nickname, provide user consent, get Eid on the eUICC. More...
 

Typedefs

using telux::tel::PolicyRuleMask = std::bitset< 16 >
 

Enumerations

enum  telux::tel::ProfileType { telux::tel::ProfileType::UNKNOWN = -1, telux::tel::ProfileType::REGULAR = 0, telux::tel::ProfileType::EMERGENCY }
 
enum  telux::tel::IconType { telux::tel::IconType::NONE = 0, telux::tel::IconType::JPEG, telux::tel::IconType::PNG }
 
enum  telux::tel::ProfileClass { telux::tel::ProfileClass::UNKNOWN = -1, telux::tel::ProfileClass::TEST = 0, telux::tel::ProfileClass::PROVISIONING, telux::tel::ProfileClass::OPERATIONAL }
 
enum  telux::tel::DownloadStatus {
  telux::tel::DownloadStatus::DOWNLOAD_ERROR = 1, telux::tel::DownloadStatus::DOWNLOAD_IN_PROGRESS, telux::tel::DownloadStatus::DOWNLOAD_COMPLETE_INSTALLATION_IN_PROGRESS, telux::tel::DownloadStatus::INSTALLATION_COMPLETE,
  telux::tel::DownloadStatus::USER_CONSENT_REQUIRED
}
 
enum  telux::tel::DownloadErrorCause { telux::tel::DownloadErrorCause::GENERIC = 1, telux::tel::DownloadErrorCause::SIM, telux::tel::DownloadErrorCause::NETWORK, telux::tel::DownloadErrorCause::MEMORY }
 
enum  telux::tel::PolicyRuleType { telux::tel::PROFILE_DISABLE_NOT_ALLOWED = (1 << 0), telux::tel::PROFILE_DELETE_NOT_ALLOWED = (1 << 1), telux::tel::PROFILE_DELETE_ON_DISABLE = (1 << 2) }
 

Detailed Description

This section contains APIs related to Remote SIM provisioning.


Data Structure Documentation

class telux::tel::SimProfile

SimProfile class represents single eUICC profile on the card.

Public Member Functions

 SimProfile (int profileId, ProfileType profileType, const std::string &iccid, bool isActive, const std::string &nickName, const std::string &spn, const std::string &name, IconType iconType, std::vector< uint8_t > icon, ProfileClass profileClass, PolicyRuleMask policyRuleMask)
 
int getSlotId ()
 
int getProfileId ()
 
ProfileType getType ()
 
const std::string & getIccid ()
 
bool isActive ()
 
const std::string & getNickName ()
 
const std::string & getSPN ()
 
const std::string & getName ()
 
IconType getIconType ()
 
std::vector< uint8_t > getIcon ()
 
ProfileClass getClass ()
 
PolicyRuleMask getPolicyRule ()
 
std::string toString ()
 

Constructor & Destructor Documentation

telux::tel::SimProfile::SimProfile ( int  profileId,
ProfileType  profileType,
const std::string &  iccid,
bool  isActive,
const std::string &  nickName,
const std::string &  spn,
const std::string &  name,
IconType  iconType,
std::vector< uint8_t >  icon,
ProfileClass  profileClass,
PolicyRuleMask  policyRuleMask 
)

Member Function Documentation

int telux::tel::SimProfile::getSlotId ( )

Get slot id associated for this profile

Returns
SlotId
int telux::tel::SimProfile::getProfileId ( )

Get profile identifier.

Returns
unique identifier for the profile
ProfileType telux::tel::SimProfile::getType ( )

Get profile Type.

Returns
profile type
const std::string& telux::tel::SimProfile::getIccid ( )

Get profile ICCID.

Returns
profile ICCID coded as in EF-ICCID
bool telux::tel::SimProfile::isActive ( )

Indicates the profile state whether active or not.

Returns
true if profile is Active
const std::string& telux::tel::SimProfile::getNickName ( )

Get profile nick name.

Returns
profile nick name
const std::string& telux::tel::SimProfile::getSPN ( )

Get profile service provider name.

Returns
profile service provider name.
const std::string& telux::tel::SimProfile::getName ( )

Get profile name.

Returns
profile name
IconType telux::tel::SimProfile::getIconType ( )

Get profile icon type.

Returns
profile icon type
std::vector<uint8_t> telux::tel::SimProfile::getIcon ( )

Get profile icon content.

Returns
profile icon content
ProfileClass telux::tel::SimProfile::getClass ( )

Get profile class.

Returns
profile class
PolicyRuleMask telux::tel::SimProfile::getPolicyRule ( )

Get profile policy rules.

Returns
mask of profile policy rules
std::string telux::tel::SimProfile::toString ( )

Get the text related informative representation of this object.

Returns
String containing informative string.
class telux::tel::ISimProfileListener

The interface listens for profile download indication and keep track of download and install progress of profile.

The methods in the listener can be invoked from multiple threads. It is client's responsibility to make sure the implementation is thread safe.

Public Member Functions

virtual void onAddProfileUpdate (SlotId slotId, bool userConsentRequired, DownloadStatus status, uint8_t percentage, DownloadErrorCause cause, PolicyRuleMask mask)
 
virtual ~ISimProfileListener ()
 
- Public Member Functions inherited from telux::common::IServiceStatusListener
virtual void onServiceStatusChange (ServiceStatus status)
 
virtual ~IServiceStatusListener ()
 

Constructor & Destructor Documentation

virtual telux::tel::ISimProfileListener::~ISimProfileListener ( )
virtual

Destructor of ISimProfileListener

Member Function Documentation

virtual void telux::tel::ISimProfileListener::onAddProfileUpdate ( SlotId  slotId,
bool  userConsentRequired,
DownloadStatus  status,
uint8_t  percentage,
DownloadErrorCause  cause,
PolicyRuleMask  mask 
)
virtual

This function is called when indication about status of profile download and installation comes.

Parameters
[in]slotIdSlot on which profile get downloaded and installed.
[in]userConsentRequiredUser consent required or not.
[in]statusProfileDownloadStatus.
[in]percentageDownload and installation percentage.
[in]causeProfileDownloadErrorCause.
[in]maskPprMask (Profile policy rules Mask)
class telux::tel::ISimProfileManager

ISimProfileManager is a primary interface for remote eUICCs (eSIMs or embedded SIMs) provisioning.This interface provides APIs to add, delete, set profile, update nickname, provide user consent, get Eid on the eUICC.

Public Member Functions

virtual bool isSubsystemReady ()=0
 
virtual std::future< bool > onSubsystemReady ()=0
 
virtual telux::common::Status addProfile (SlotId slotId, const std::string &activationCode, const std::string &confirmationCode="", bool userConsentSupported=false, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status deleteProfile (SlotId slotId, int profileId, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status setProfile (SlotId slotId, int profileId, bool enable=false, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status updateNickName (SlotId slotId, int profileId, const std::string &nickName, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status requestProfileList (SlotId slotId, ProfileListResponseCb callback)=0
 
virtual telux::common::Status requestEid (SlotId slotId, EidResponseCb callback)=0
 
virtual telux::common::Status provideUserConsent (SlotId slotId, bool userConsent=false, common::ResponseCallback callback=nullptr)=0
 
virtual telux::common::Status registerListener (std::weak_ptr< ISimProfileListener > listener)=0
 
virtual telux::common::Status deregisterListener (std::weak_ptr< ISimProfileListener > listener)=0
 
virtual ~ISimProfileManager ()
 

Constructor & Destructor Documentation

virtual telux::tel::ISimProfileManager::~ISimProfileManager ( )
virtual

Destructor for ISimProfileManager

Member Function Documentation

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

Checks if the eUICC subsystem is ready.

Returns
True if ISimProfileManager is ready for service, otherwise returns false.
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::ISimProfileManager::onSubsystemReady ( )
pure virtual

Wait for eUICC subsystem to be ready.

Returns
A future that caller can wait on to be notified when card manager 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::ISimProfileManager::addProfile ( SlotId  slotId,
const std::string &  activationCode,
const std::string &  confirmationCode = "",
bool  userConsentSupported = false,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Add new profile to eUICC card and download and install the profile on eUICC.

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]activationCodeActivation code.
[in]confirmationCodeOptional confirmation code required for downloading the profile.
[in]userConsentSupportedOptional User consent supported or not.
[in]callbackCallback function to get the result of add profile.
Returns
Status of add profile 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::ISimProfileManager::deleteProfile ( SlotId  slotId,
int  profileId,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Delete profile from eUICC card.

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]profileIdProfile identifier
[in]callbackCallback function to get the result of delete profile.
Returns
Status of delete profile 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::ISimProfileManager::setProfile ( SlotId  slotId,
int  profileId,
bool  enable = false,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Enable or disable profile which allows to switch to other profile on eUICC card.

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]profileIdProfile identifier.
[in]enableIndicates whether a profile must be enabled or disabled. true - Enable and false - Disable.
[in]callbackCallback function to get the result of set profile.
Returns
Status of set profile 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::ISimProfileManager::updateNickName ( SlotId  slotId,
int  profileId,
const std::string &  nickName,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Update nick name of the profile

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]profileIdProfile identifier
[in]nickNameNew nick name for profile.
[in]callbackCallback function to get the result of update nickname.
Returns
Status of update nick name 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::ISimProfileManager::requestProfileList ( SlotId  slotId,
ProfileListResponseCb  callback 
)
pure virtual

Request list of profiles supported by the eUICC card.

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]callbackCallback function to get the result of request profile list.
Returns
Status of request profile list 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::ISimProfileManager::requestEid ( SlotId  slotId,
EidResponseCb  callback 
)
pure virtual

Request eUICC identifier(EID) for the slot.

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]callbackCallback function to get the result of request EID.
Returns
Status of request EID.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::ISimProfileManager::provideUserConsent ( SlotId  slotId,
bool  userConsent = false,
common::ResponseCallback  callback = nullptr 
)
pure virtual

Provide user consent required for downloading and installing profile.

Parameters
[in]slotIdSlot identifier corresponding to the card.
[in]userConsentConsent for proļ¬le download and install. True means user consent to download and install.
[in]callbackCallback function to get the result of user consent request.
Returns
Status of user consent request 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::ISimProfileManager::registerListener ( std::weak_ptr< ISimProfileListener listener)
pure virtual

Register a listener to listen for status of specific events like download and installation of profile on eUICC.

Parameters
[in]listenerPointer of ISimProfileListener object that processes the notification.
Returns
Status of registerListener success or suitable status 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::ISimProfileManager::deregisterListener ( std::weak_ptr< ISimProfileListener listener)
pure virtual

De-register the listener.

Parameters
[in]listenerPointer of ISimProfileListener object that needs to be removed
Returns
Status of deregisterListener success or suitable status code
Note
Eval: This is a new API and is being evaluated.It is subject to change and could break backwards compatibility.

Typedef Documentation

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

16 bit mask that denotes which of the profile policy rules(PPR) defined in Policy Rule Type enum are used.

Enumeration Type Documentation

Indicates profile type of card

Enumerator
UNKNOWN 
REGULAR 

Regular profile

EMERGENCY 

Emergency profile

enum telux::tel::IconType
strong

Indicates profile icon type.

Enumerator
NONE 

No icon information

JPEG 

JPEG icon

PNG 

PNG icon

Indicates profile class.

Enumerator
UNKNOWN 

No info about profile class

TEST 

Test profile

PROVISIONING 

Provisioning profile

OPERATIONAL 

Operational profile

Indicates profile download status.

Enumerator
DOWNLOAD_ERROR 

Profile download error

DOWNLOAD_IN_PROGRESS 

Profile download in progress with download percentage

DOWNLOAD_COMPLETE_INSTALLATION_IN_PROGRESS 

Profile download is complete and installation is in progress

INSTALLATION_COMPLETE 

Profile installation is complete

USER_CONSENT_REQUIRED 

User consent is required for proceeding with download/installation of profile

Indicates profile download error cause.

Enumerator
GENERIC 

Generic error

SIM 

Error from the SIM card

NETWORK 

Error from the network

MEMORY 

Error due to no memory

Defines profile policy rules(PPR). Each value represents corresponding bit for PprMask bitset.

Enumerator
PROFILE_DISABLE_NOT_ALLOWED 

Disabling of the profile is not allowed

PROFILE_DELETE_NOT_ALLOWED 

Deletion of the profile is not allowed

PROFILE_DELETE_ON_DISABLE 

Deletion of the profile is required on successful disabling