Telematics SDK - Interface Specification
v1.46.58
|
Data Structures | |
struct | telux::tel::DeleteInfo |
Specify delete information used for deleting message on storage. More... | |
struct | telux::tel::SmsMetaInfo |
Provides certain attributes of an SMS message. More... | |
struct | telux::tel::MessageAttributes |
Contains structure of message attributes like encoding type, number of segments, characters left in last segment. More... | |
struct | telux::tel::MessagePartInfo |
Structure containing information about the part of multi-part SMS such as concatenated message reference number, number of segments and segment number. During concatenation this information along with originating address helps in associating each part of the multi-part message to the corresponding multi-part message. More... | |
class | telux::tel::SmsMessage |
Data structure represents an incoming SMS. This is applicable for single part message or part of the multipart message. More... | |
class | telux::tel::ISmsManager |
SmsManager class is the primary interface to manage SMS operations such as send and receive an SMS text and raw encoded PDU(s). This class handles single part and multi-part messages. More... | |
class | telux::tel::ISmsListener |
A listener class receives notification for the incoming message(s) and delivery report for sent message(s). More... | |
class | telux::tel::ISmscAddressCallback |
Typedefs | |
using | telux::tel::PduBuffer = std::vector< uint8_t > |
using | telux::tel::SmsResponseCb = std::function< void(std::vector< int > msgRefs, telux::common::ErrorCode errorCode)> |
using | telux::tel::RequestSmsInfoListCb = std::function< void(std::vector< SmsMetaInfo > infos, telux::common::ErrorCode errorCode)> |
using | telux::tel::ReadSmsMessageCb = std::function< void(SmsMessage message, telux::common::ErrorCode errorCode)> |
using | telux::tel::RequestPreferredStorageCb = std::function< void(StorageType type, telux::common::ErrorCode errorCode)> |
using | telux::tel::RequestStorageDetailsCb = std::function< void(uint32_t maxCount, uint32_t availableCount, telux::common::ErrorCode errorCode)> |
This section contains APIs related to Sending and Receiving SMS.
struct telux::tel::DeleteInfo |
Specify delete information used for deleting message on storage.
Data Fields | ||
---|---|---|
DeleteType | delType |
Specifies the type of delete operation to be performed |
SmsTagType | tagType |
1.If SMS tag type is set to telux::tel::SmsTagType::UNKNOWN and delType is set to telux::tel::DeleteType::DELETE_ALL then all messages on the storage would be deleted. 2.To delete all messages of a particular tag, set tagType to the particular tag like telux::tel::SmsTagType::MT_READ and delType to telux::tel::DeleteType::DELETE_MESSAGES_BY_TAG |
uint32_t | msgIndex |
To delete message at specific index, specify msgIndex and delType as telux::tel::DeleteType::DELETE_MSG_AT_INDEX |
struct telux::tel::SmsMetaInfo |
Provides certain attributes of an SMS message.
Data Fields | ||
---|---|---|
uint32_t | msgIndex |
Message index on storage |
SmsTagType | tagType |
SMS tag type |
struct telux::tel::MessageAttributes |
Contains structure of message attributes like encoding type, number of segments, characters left in last segment.
Data Fields | ||
---|---|---|
SmsEncoding | encoding |
Data encoding type |
int | numberOfSegments |
Number of segments |
int | segmentSize |
Max size of each segment |
int | numberOfCharsLeftInLastSegment |
characters left in last segment |
struct telux::tel::MessagePartInfo |
Structure containing information about the part of multi-part SMS such as concatenated message reference number, number of segments and segment number. During concatenation this information along with originating address helps in associating each part of the multi-part message to the corresponding multi-part message.
class telux::tel::SmsMessage |
Data structure represents an incoming SMS. This is applicable for single part message or part of the multipart message.
Public Member Functions | |
SmsMessage (std::string text, std::string sender, std::string receiver, SmsEncoding encoding, std::string pdu, PduBuffer pduBuffer, std::shared_ptr< MessagePartInfo > info) | |
SmsMessage (std::string text, std::string sender, std::string receiver, SmsEncoding encoding, std::string pdu, PduBuffer pduBuffer, std::shared_ptr< MessagePartInfo > info, bool isMetaInfoValid, SmsMetaInfo metaInfo) | |
const std::string & | getText () const |
const std::string & | getSender () const |
const std::string & | getReceiver () const |
SmsEncoding | getEncoding () const |
const std::string & | getPdu () const |
PduBuffer | getRawPdu () const |
std::shared_ptr< MessagePartInfo > | getMessagePartInfo () |
const std::string | toString () const |
telux::common::Status | getMetaInfo (SmsMetaInfo &metaInfo) |
telux::tel::SmsMessage::SmsMessage | ( | std::string | text, |
std::string | sender, | ||
std::string | receiver, | ||
SmsEncoding | encoding, | ||
std::string | pdu, | ||
PduBuffer | pduBuffer, | ||
std::shared_ptr< MessagePartInfo > | info | ||
) |
telux::tel::SmsMessage::SmsMessage | ( | std::string | text, |
std::string | sender, | ||
std::string | receiver, | ||
SmsEncoding | encoding, | ||
std::string | pdu, | ||
PduBuffer | pduBuffer, | ||
std::shared_ptr< MessagePartInfo > | info, | ||
bool | isMetaInfoValid, | ||
SmsMetaInfo | metaInfo | ||
) |
const std::string& telux::tel::SmsMessage::getText | ( | ) | const |
Get the message text for the single part message or part of the multipart message.
const std::string& telux::tel::SmsMessage::getSender | ( | ) | const |
Get the originating address (sender address).
const std::string& telux::tel::SmsMessage::getReceiver | ( | ) | const |
Get the destination address (receiver address).
SmsEncoding telux::tel::SmsMessage::getEncoding | ( | ) | const |
Get encoding format used for the single part message or part of the multipart message.
const std::string& telux::tel::SmsMessage::getPdu | ( | ) | const |
Get the raw PDU for the single part message or part of the multipart message.
PduBuffer telux::tel::SmsMessage::getRawPdu | ( | ) | const |
Get the raw PDU buffer for the single part message or part of the multipart message.
std::shared_ptr<MessagePartInfo> telux::tel::SmsMessage::getMessagePartInfo | ( | ) |
Applicable for multi-part SMS only. Get the information such as segment number, number of segments and concatenated reference number corresponding to the part of multi-part SMS.
const std::string telux::tel::SmsMessage::toString | ( | ) | const |
Get the text related informative representation of this object.
telux::common::Status telux::tel::SmsMessage::getMetaInfo | ( | SmsMetaInfo & | metaInfo | ) |
Get meta information of SMS stored in storage. There is no meta information when storage type is none.
[out] | metaInfo | Meta information about SMS message stored in storage. |
class telux::tel::ISmsManager |
SmsManager class is the primary interface to manage SMS operations such as send and receive an SMS text and raw encoded PDU(s). This class handles single part and multi-part messages.
|
virtual |
|
pure virtual |
This status indicates whether the ISmsManager object is in a usable state.
|
pure virtual |
Send SMS to the destination address. When registered on IMS the SMS will be attempted over IMS. If sending SMS over IMS fails, an automatic retry would be attempted to send the message over CS. Only support UCS2 format, GSM 7 bit default alphabet and does not support National language shift tables.
[in] | message | Message text to be sent |
[in] | receiverAddress | Receiver or destination address |
[in] | sentCallback | Optional callback pointer to get the response of send SMS request. |
[in] | deliveryCallback | Optional callback pointer to get message delivery status |
|
pure virtual |
Send single or multipart SMS to the destination address. When registered on IMS the SMS will be attempted over IMS. If sending SMS over IMS fails, an automatic retry would be attempted to send the message over CS. Only support UCS2 format, GSM 7 bit default alphabet and does not support National language shift tables. The SMS is sent directly not stored on storage.
[in] | message | Message text to be send. |
[in] | receiverAddress | Receiver or destination address |
[in] | deliveryReportNeeded | Delivery status received in the listener API telux::tel::ISmsListener if deliveryReportNeeded is true. Provided recipient responds to SMSC before the validity period expires. If deliveryReportNeeded is false delivery report will not be received. |
[in] | sentCallback | Optional callback pointer to get the sent response for single part or multi-part SMS. |
[in] | smscAddr | SMS is sent to SMSC address. If SMSC address is empty then pre-configured SMSC address is used. |
|
pure virtual |
Send an SMS that is provided as a raw encoded PDU(s). When registered on IMS the SMS will be attempted over IMS. If sending SMS over IMS fails, an automatic retry would be attempted to send the message over CS. If the SMS is a multi-part message, the API expects multiple PDU to be passed to it. The SMS is sent directly not stored on storage.
[in] | rawPdus | Each element in the vector represents a part of a multipart message. For single part message the vector will have single element. |
[in] | sentCallback | Optional callback to get the sent response for single part or multi-part SMS. |
|
pure virtual |
Request for Short Messaging Service Center (SMSC) Address. Purpose of SMSC is to store, forward, convert and deliver Short Message Service (SMS) messages.
[in] | callback | Optional callback pointer to get the response of Smsc address request |
|
pure virtual |
Sets the Short Message Service Center(SMSC) address on the device.
This will change the SMSC address for all the SMS messages sent from any app.
[in] | smscAddress | SMSC address |
[in] | callback | Optional callback pointer to get the response of set SMSC address |
|
pure virtual |
Requests a list of message information for the messages saved in SIM storage.
[in] | type | Specifies the tag type of the SMS message that should be matched when retrieving the list. Specifying telux::tel::SmsTagType::UNKNOWN will retrieve all the messages from storage. |
[in] | callback | Callback to get the response of request SMS messages info. |
|
pure virtual |
Retrieve a particular message from SIM storage matching the index.
[in] | messageIndex | SMS index on storage. |
[in] | callback | Callback to get the response of read SMS message from storage . |
|
pure virtual |
Delete specific SMS based on message index or delete messages on SIM storage based on telux::tel::SmsTagType or delete all messages from SIM storage.
[in] | info | Specify delete information based on which messages are deleted |
[in] | callback | Optional callback to get the response of delete SMS message from storage . |
|
pure virtual |
Request preferred storage for incoming SMS.
[in] | callback | Callback to get the response of get preferred storage type . |
|
pure virtual |
Set the preferred storage for incoming SMS. All future messages that arrive will be stored on the storage set in this API, if any. Messages in the current storage will not be moved to the new storage. If client does not require messages to be stored by the platform, then the storage could be set to telux::tel::StorageType::NONE.
[in] | storageType | telux::tel::StorageType |
[in] | callback | Optional callback to get the response of set preferred storage. |
|
pure virtual |
Update the tag of the incoming message stored in SIM storage as read/unread
[in] | msgIndex | Message index corresponding to message in storage for which tag needs to be updated. |
[in] | tagType | telux::tel::SmsTagType. The applicable tag types are MT_READ and MT_NOT_READ. |
[in] | callback | Optional callback to get the response of updating the tag. |
|
pure virtual |
Request details about SIM storage like total size and available size in terms of number of messages.
[in] | callback | Callback to get the response of storage detail request. |
|
pure virtual |
Calculate message attributes for the given message.
[in] | message | Message to send |
|
pure virtual |
Get associated phone id for this SMSManager.
|
pure virtual |
Register a listener for Sms events
[in] | listener | Pointer to ISmsListener object which receives event corresponding to SMS |
|
pure virtual |
Remove a previously added listener.
[in] | listener | Pointer to ISmsListener object |
class telux::tel::ISmsListener |
A listener class receives notification for the incoming message(s) and delivery report for sent message(s).
The methods in listener can be invoked from multiple different threads. The implementation should be thread safe.
Public Member Functions | |
virtual void | onIncomingSms (int phoneId, std::shared_ptr< SmsMessage > message) |
virtual void | onIncomingSms (int phoneId, std::shared_ptr< std::vector< SmsMessage >> messages) |
virtual void | onDeliveryReport (int phoneId, int msgRef, std::string receiverAddress, telux::common::ErrorCode error) |
virtual void | onMemoryFull (int phoneId, StorageType type) |
virtual | ~ISmsListener () |
![]() | |
virtual void | onServiceStatusChange (ServiceStatus status) |
virtual | ~IServiceStatusListener () |
|
virtual |
|
virtual |
This function will be invoked when a single part message is received or when a part of a multi-part message is received. If the SMS preferred storage is to store the SMS in storage i.e SIM then the SMS will be first stored in storage and then this API will be invoked.
[in] | phoneId | Unique identifier per SIM slot. Phone on which the message is received. |
[in] | SmsMessage | Pointer to SmsMessage object |
|
virtual |
This function will be invoked when either a single part message is received, or when all the parts of a multipart message have been received. This API is invoked only once all parts of a message are received. In case of a single part message, it will be invoked as soon as it is received. In case of multi-part, the implementation waits for all parts of the message to arrive and then invokes this API. If the SMS preferred storage is to store the SMS in storage i.e SIM then the messages will be first stored in storage and then this API will be invoked.
[in] | phoneId | Unique identifier per SIM slot. Phone on which the message is received. |
[in] | messages | Pointer to list of SmsMessage received corresponding to single part or all parts of multipart message. |
|
virtual |
This function will be invoked when either a delivery report for a single part message is received or when the delivery report for part of a multi-part message is received. In order to determine delivery of all parts of the multi-part message, the client application shall compare message reference received in the delivery indications with message references received in telux::tel::SmsResponseCb.
[in] | phoneId | Unique identifier per SIM slot. Phone on which the message is received. |
[in] | msgRef | Message reference number (as per spec 3GPP TS 23.040 9.2.2.3) for a single part message or part of multipart message. |
[in] | receiverAddress | Receiver or destination address |
[in] | error | telux::common::ErrorCode |
|
virtual |
This function will be invoked when SMS storage is full.
[in] | phoneId | Unique identifier per SIM slot. Phone on which the message is received. |
[in] | type | telux::tel::StorageType. Applicable storage type StorageType::SIM |
class telux::tel::ISmscAddressCallback |
Interface for SMS callback object. Client needs to implement this interface to get single shot responses for send SMS.
The methods in callback can be invoked from multiple different threads. The implementation should be thread safe.
Public Member Functions | |
virtual void | smscAddressResponse (const std::string &address, telux::common::ErrorCode error)=0 |
![]() | |
virtual | ~ICommandCallback () |
|
pure virtual |
This function is called with the response to the Smsc address request.
[in] | address | Smsc address |
[in] | error | ErrorCode |
using telux::tel::PduBuffer = typedef std::vector<uint8_t> |
using telux::tel::SmsResponseCb = typedef std::function<void(std::vector<int> msgRefs, telux::common::ErrorCode errorCode)> |
This function is called in response to sending a single part or multi-part SMS. This response callback is invoked when a single part message is sent or when all the parts of a multi-part message is sent. This function is called in response to telux::tel::ISmsManager::sendSms and telux::tel::ISmsManager::sendRawSms APIs.
The callback can be invoked from multiple different threads. The implementation should be thread safe.
[in] | msgRefs | This parameter represent the unique message reference number(s) corresponding to single/multi-part message that we successfully sent. When part of a message is delivered, the notification API i.e telux::tel::ISmsListener::onDeliveryReport will be invoked with the message reference number corresponding to that part. |
[in] | errorCode | If sending any part of a multi-part message fails or a single part message fails this API will return an telux:common::ErrorCode corresponding to the failure. |
using telux::tel::RequestSmsInfoListCb = typedef std::function<void(std::vector<SmsMetaInfo> infos, telux::common::ErrorCode errorCode)> |
This function will be invoked in response to getting a list of message information for the messages saved in SIM storage. To get message detail at a specific index on storage, telux::tel::ISmsManager::readMessage API should be invoked. The callback can be invoked from multiple different threads. The implementation should be thread-safe.
[in] | infos | List of SMS message meta information i.e telux::tel::SmsMetaInfo. |
[in] | errorCode | Return code which indicates whether the operation succeeded or not. telux::common::ErrorCode. |
using telux::tel::ReadSmsMessageCb = typedef std::function<void(SmsMessage message, telux::common::ErrorCode errorCode)> |
This function will be invoked in response to reading SMS message on SIM storage. The callback can be from multiple different threads. The implementation should be thread-safe.
[in] | message | telux::tel::SmsMessage |
[in] | errorCode | Return code which indicates whether the operation succeeded or not. telux::common::ErrorCode. |
using telux::tel::RequestPreferredStorageCb = typedef std::function<void(StorageType type, telux::common::ErrorCode errorCode)> |
This function will be invoked in response to request for preferred SMS storage. The callback can be from multiple different threads. The implementation should be thread-safe.
[in] | type | Preferred telux::tel::StorageType |
[in] | errorCode | Return code which indicates whether the operation succeeded or not. telux::common::ErrorCode. |
using telux::tel::RequestStorageDetailsCb = typedef std::function<void(uint32_t maxCount, uint32_t availableCount, telux::common::ErrorCode errorCode)> |
This function can be invoked in response to request for storage details. The callback can be from multiple different threads. The implementation should be thread-safe.
[in] | maxCount | Maximum number of messages allowed for SIM storage. |
[in] | availableCount | Available count in terms of SIM messages. |
[in] | errorCode | Return code which indicates whether the operation succeeded or not. telux::common::ErrorCode. |
|
strong |
|
strong |
Specifies the SMS tag type. All incoming messages will be received and stored with tag as MT_NOT_READ. It is the client's responsibility to update the tag to MT_READ using telux::tel::ISmsManager::setTag whenever the message is considered read.
Enumerator | |
---|---|
UNKNOWN |
Unknown tag type |
MT_READ |
MT message marked as read |
MT_NOT_READ |
MT message marked as not read |
|
strong |
Specifies the type of delete operation to be performed.
|
strong |