Telematics SDK - User Guide  v1.63.7
Telephony Simulation



Overview of Telephony Simulation


This page and the sub-pages provide information about usage of simulation for the telephony sub-system that are part of the telux::tel namespace of the Telematics SDK.



Telephony Simulation Framework



APIs supported by the Simulation framework


SMS: ISmsManager,ISmsListener, ISmscAddressCallback, SmsMessage
Card: ICardApp, ICardFileHandler, ICardManager, ICardListener, ICard
Subscription: ISubscriptionManager, ISubscriptionListener, ISubscription


Telephony APIs Response handling


The framework allows responses to each API to be configured using a JSON file.
Each manager has its own JSON configuration file present under simulation/json/api/tel/

Example for API command response for telux::tel::ISmsManager::SendSms

"SendSms" :
    [
        {   "numberOfSegments" : 2,
            "status" : "SUCCESS"
        },
        {
            "smsResponseCbErrorCode" : "SUCCESS",
            "smsResponseCbDelay" : 9000,
            "smsResponseCbMsgRefs" : "1 2"
        },
        {
            "onDeliveryReportErrorCode" : "SUCCESS",
            "onDeliveryReportMsgRef" : 1,
            "onDeliveryReportCallbackDelay" : 12000
        },
        {
            "onDeliveryReportErrorCode" : "SUCCESS",
            "onDeliveryReportMsgRef" : 2,
            "onDeliveryReportCallbackDelay" : 12000
        }
    ]

Here, clients are expected to provide the inputs for JSON attributes of API according to an encoded message.
The table explains the configuration for API response parameters of simulation/json/api/tel/ISmsManagerSlot*.json.

Json Attribute Description
numberOfSegments Signifies number of segments present in encoded message.
status Status of request.
sentCallbackErrorCode, smsResponseCbErrorCode Response callback errorcode.
sentCallbackDelay, smsResponseCbDelay Response callback delay.
sentCallbackMsgRefs, smsResponseCbMsgRefs Add reference number for every message segment according to numberOfSegments with one space between the digits.
deliveryCallbackErrorCode Delivery report for individual segment is invoked using delivery callback error
deliveryCallbackDelay, onDeliveryReportCallbackDelay Delivery report for individual segment is invoked using delivery callback delay.
onDeliveryReportErrorCode Delivery callback errorcode.
onDeliveryReportMsgRef Delivery report for message reference of a segment.
receiverAddress Input receiver address according to encoded pdu.


Telephony data handling


Card

Details of parameters currently configured in the Simulation framework to perform pin operations.

  • "Pin1password" : "1234" - Password for PIN1 operations for public APIs changeCardPassword, unlockCardByPin, changeCardPassword.
  • "Pin2password" : "5678" - Password for PIN2 operations for public API changeCardPassword, unlockCardByPin, changeCardPassword.
  • "Puk1password" : 11111111 - Password for puk1 for public API unlockCardByPuk.
  • "Puk2password" : 22222222 - Password for puk2 for public API unlockCardByPuk.

file: simulation/json/system-state/tel/ICardManagerStateSlot*.json

Details of supported apps, EF files, and records

All the EF files are considered to be present at same file structure directory of simulated SIM files.
User input for filepaths provided using APIs present under telux::tel::ICardFileHandler is not validated in the simulation library.

ADF files

AppId AppType Transparent EFs Linear Fixed EFs
a0000000871004f310ffff89080000ff ISIM File Id 1234, 5648 File Id 1234 , No of records 3
a000000063504b43532d3135 Unknown No files present File Id 1234 , No of records 3
a0000000871002fffff00189000001ff USIM File Id 1234, 5648, 7777 File Id 1234 , No of records 3 File Id 5678 , No of records 1 File Id 7676 , No of records 4

DF files

Transparent EFs Linear Fixed EFs
File Id 3456 , File Id 5666 File Id 1234 , No of records 3, File Id 5678 , No of records 1

Note: Data stored in every record of Linear fixed EF file should be of same length.


Telephony event handling


Incoming SMS

To simulate an incoming SMS, event injector is used by providing the inputs of encoded and decoded attributes of a message.
The client is expected to construct all the members of telux::tel::SmsMessage and send the message segment using event injector.
Simulation framework maintains the database to store the message attributes of an incoming SMS.

Sample input:
Segment-1 of multipart message:

1 telsdk_event_injector -f tel_sms -e incomingsms 1 2 1 1 GSM7 1 07918185690700F0240B918189486537F300003280126063128A0F54741934AFBB41F2F4BC3C07A501 +18988456733 The sun rises i



Segment-2 of multipart message:

1 telsdk_event_injector -f tel_sms -e incomingsms 1 2 1 2 GSM7 1 07918185690700F0240B918189486537F300003280126014208A0A6E101D5D0695C3733A +18988456733 n the east



  • Incoming SMS will be stored on the simulation server only when the preferred storage type is set to SIM.
  • It can be changed using telux::tel::ISmsManager::setPreferredStorage
  • Memory full indication ( telux::tel::ISmsListener::onMemoryFull ) will be sent to all the clients when the messages count on the simulation server exceeds the defined count specified in simulation/json/api/tel/ISmsManagerSlot*.json
    "requestStorageDetails" :
    {
        "requestStorageDetailsCb_maxCount" : 10
    }
    

Update subscription information

Sample input:

1 telsdk_event_injector -f tel_sub -e subscriptionInfoChanged 1 Carrier-1 8984653739 89010020000011293999 310 11 310018984653739 ffffffffffffffff ffffffffffffffff



Limitations


  1. Encoding of text messages provided by the client is not supported for telux::tel::ISmsManager::sendSms.
  2. Subsystem restart notifications provided using telux::common::IServiceStatusListener::onServiceStatusChange is not supported.