diff -r 000000000000 -r 3553901f7fa8 telephonyserver/etelsimtoolkit/inc/Etelsat.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserver/etelsimtoolkit/inc/Etelsat.h Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,8650 @@ +// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// ETel (U)SAT header file. +// Describes the (U)SAT API - classes, methods and types. +// +// + +/** + @file + @publishedPartner + @released +*/ + + +#ifndef __ETELSAT_H__ +#define __ETELSAT_H__ + +#include +#include +#include + +const TInt KETelExtSatV1=5000; //< The global identifier for the first version of the ETelSat API, for passing into RTelServer::IsSupportedByModule() +const TInt KETelExtSatV2=9000; //< The global identifier for the second version of the ETelSat API, for passing into RTelServer::IsSupportedByModule() +const TInt KETelExtSatV3=11000; //< The global identifier for the third version of the ETelSat API, for passing into RTelServer::IsSupportedByModule() +const TInt KEtelExtSatV4=11100; //< The global identifier for the fourth version of the ETelSat API, for passing into RTelServer::IsSupportedByModule() +const TInt KEtelExtSatV5=11200; //< The global identifier for the fifth version of the ETelSat API, for passing into RTelServer::IsSupportedByModule() +const TInt KEtelExtSatV6=11300; //< The global identifier for the sixth version of the ETelSat API, for passing into RTelServer::IsSupportedByModule() +const TInt KEtelExtSatV7=11400; //< The global identifier for the seventh version of the ETelSat API, for passing into RTelServer::IsSupportedByModule() + +/** +(U)SAT allocated error space ranges from -5250 to -5299. +Do not return KErrSatBase as an error. +*/ +const TInt KErrSatBase=-5250; +/** The (U)SIM Application Toolkit is busy. */ +const TInt KErrSatBusy=KErrSatBase-1; +/** +The error code can be received following Call Control. It is returned when the +(U)SIM (or MO SM Control by (U)SIM) either bars or modifies the original +action. +*/ +const TInt KErrSatControl=KErrSatBase-2; +/** +The error code can be received following Multimedia Service Notification Download. +It is returned when the (U)SIM either bars the original action,The ME shall not retry the same command. +*/ +const TInt KErrSatMmsFailure=KErrSatBase-3; + +enum {KTpduMaxSize=248}; +typedef TBuf8 TTpdu; + +const TInt KPdpActivationParametersMaxLengh=512; //< Global constant defines maximum length of the buffer that can hold PDP CONTEXT ACTIVATION REQUEST +typedef TBuf8 TPdpParameters; + +// Forward declaration +class CSatPtrHolder; +class RSat: public RTelSubSessionBase +/** + * Provides an interface to Symbian's ETelSat API. RSat inherits from + * RTelSubSessionBase defined in ETEL.H. + * + * On GSM/WCDMA networks, this API offers access to the (U)SIM Application + * Toolkit, or (U)SAT. On CDMA networks, it offers access to Cdma Card Application + * Toolkit, or CCAT. Both toolkits are very similar. + * + * Phones on both networks contain an electronic card that stores the information + * such as subscriber's identification, the phone's number, an address book, etc. + * The (U)SAT and CCAT toolkits allow the card to be more than just a storage + * device; they define a protocols that allow the card to ask the phone to perform + * tasks. For instance, a card can ask the phone to display a message on the + * screen, add new menu items to the phone's menus, ask the phone to dial a number, + * or browse to a URL. + * + * (U)SAT and CCAT are based around 'Proactive Commands': each is a task for the + * phone to perform. For the four tasks mentioned in the previous paragraph, the + * card sends the phone proactive commands called DISPLAY TEXT, SET UP MENU, SET + * UP CALL, and LAUNCH BROWSER. Understanding the range of proactive commands and + * their capabilities is the first step to understanding (U)SAT and CCAT. + * + * To use Symbian's ETelSat API you request notification when proactive commands + * arrive at the phone. For each proactive command (DISPLAY TEXT, SET UP + * MENU etc.) there is an RSat member function. This function tells Symbian OS + * when you are interested in a proactive command. It also gives + * Symbian OS a TRequestStatus that is completed when the next proactive + * command arrives. + * + * Some of the proactive commands are not accessible to Symbian's ETelSat API. + * Your phone's TSY deals with them for you, hiding them from RSat. The remaining + * proactive commands are handled by RSat. Request notification for each one + * using the functions listed below. + * + * (U)SAT and CCAT are defined in 3GPP TS 31.111 and 3GPP2 C.S0035-0 respectively. + * Both of these specifications are based on ETSI TS 102 223. We suggest you read + * ETSI TS 102 223 before reading anything else: it is much more informative and + * easier to read than the other two specifications. We also suggest you have a + * basic understanding of ETSI TS 102 223 before using Symbian's ETelSat API. + * + * Before starting a (U)SAT or CCAT session, start a session with a phone. A phone + * session is represented by either RPhone or RMobilePhone. Now you can create an + * RSat interface and start the RSat session with RSat::Open(). Pass this method + * the RPhone or RMobilePhone instance. This tells the (U)SAT or CCAT session + * which phone to work with. + * + * This documentation uses the word "UICC" to mean the card. Here are + * the phrases used to describe the card on various networks: + * + * On GSM networks, the physical card is called the ICC and the software it + * contains is called the SIM (Subscriber Identity Module). SAT is an interface + * to the software. + * + * On WCDMA networks, the physical card is called the UICC and the software it + * contains is called the USIM (Universal Subscriber Identity Module). USAT is an + * interface to the software. + * + * On 3G CDMA networks, the card and the software are called a R-UIM. CCAT is an + * interface to the software. + * + * To use the ETelSat API, follow these steps. Firstly, create an interface to the phone, if you haven't already done so: + * + * - Create an RPhone + * - Call RPhone::ConstructL() + * - Call RPhone::Open() + * + * Secondly, create and open an interface to the ETelSat client: + * + * - Create an RSat + * - Call RSat::ConstructL() + * - Call RSat::Open(), passing it the RPhone from the previous step. + * + * Now tell the UICC what SAT features the phone supports. The UICC expects this + * information in a "profile" object. The structure of this object is described in + * ETSI TS 102 223. + * + * - Firsly, call RSat::GetMeSideSatProfile(). The TSY returns a profile + * describing the SAT features that are supported by the phone's hardware and the + * TSY. These will be features that are not under the ETelSat client's control; you + * cannot use the RSat API to access them. + * + * - Now modify the profile to include the SAT features that you support. This + * will mainly involve settings flags in the profile object. + * + * - Finally, send the profile to the UICC by calling RSat::ClientSatProfileIndication() + * + * Here is a list of the proactive commands supported by RSat. Once you have + * completed all the steps above, queue some notification requests by + * calling some RSat::Notify..... command listed below: + * + * - DISPLAY TEXT - displays text to the user - see RSat::NotifyDisplayTextPCmd() + * - GET INKEY - + * instructs phone to display text and/or an icon and to expect the user to enter a single character - + * RSat::NotifyGetInkeyPCmd() + * - GET INPUT - + * instructs phone to display text and/or an icon and to expect the user to enter a string - + * RSat::NotifyGetInputPCmd() + * - PLAY TONE - + * instructs phone to play a tone - + * RSat::NotifyPlayTonePCmd() + * - SET UP MENU - + * provides a set of menu items to be integrated with the phone's menu system - + * RSat::NotifySetUpMenuPCmd() + * - SELECT ITEM - + * provides a set of menu items to be shown to the user. The user can choose one of these menu items - + * RSat::NotifySelectItemPCmd() + * - SEND SHORT MESSAGE - + * asks the phone to send an SMS message - + * RSat::NotifySendSmPCmd() + * - SEND SS - + * asks the phone to send a supplementary service request - + * RSat::NotifySendSsPCmd() + * - SEND USSD - + * asks the phone to send a Unstructured Supplementary Service Data request to the network - + * RSat::NotifySendUssdPCmd() + * - SET UP CALL - + * asks the phone to connect a call - + * RSat::NotifySetUpCallPCmd() + * - REFERSH - + * indicates that changes have occurred to the UICC that may affect the phone - + * RSat::NotifyRefreshPCmd() + * - SET UP EVENT LIST - + * gives the phone a list of events that may occur to the phone. + * The phone must inform the UICC when an event on the list occurs - + * RSat::NotifySetUpEventListPCmd() + * - SET UP IDLE MODE TEXT - + * provides text (and optionally an icon) to be displayed when the phone is idle - + * RSat::NotifySetUpIdleModeTextPCmd() + * - SEND DTMF - + * asks the phone to send a DTMF string - + * RSat::NotifySendDtmfPCmd() + * - PERFORM CARD APDU - + * asks the phone to send an APDU command - + * RSat::NotifyPerformCardApduPCmd() + * - POWER OFF CARD - + * closes the session with the card specified in the command - + * RSat::NotifyPowerOffCardPCmd() + * - POWER ON CARD - + * starts a session with the card specified in the command - + * RSat::NotifyPowerOnCardPCmd() + * - GET READER STATUS - + * requests the status of the card reader specified in the command - + * RSat::NotifyGetReaderStatusPCmd() + * - RUN AT COMMAND - + * asks the phone to perform the AT command provided - + * RSat::NotifyRunAtCommandPCmd() + * - LANGUAGE NOTIFICATION - + * tells the phone the language in which any text strings from the UICC are written - + * RSat::NotifyLanguageNotificationPCmd() + * - LAUNCH BROWSER - + * asks the phone to browse to the supplied URL - + * RSat::NotifyLaunchBrowserPCmd() + * - OPEN CHANNEL - + * asks the phone to open a channel - + * RSat::NotifyOpenChannelPCmd() + * - CLOSE CHANNEL - + * asks the phone to close a channel previously opened with the OPEN CHANNEL proactive command - + * RSat::NotifyCloseChannelPCmd() + * - RECEIVE DATA - + * asks the phone for data from a channel opened with the OPEN CHANNEL proactive command - + * RSat::NotifyReceiveDataPCmd() + * - SEND DATA - + * asks the phone to send data on a channel opened with the OPEN CHANNEL proactive command - + * RSat::NotifySendDataPCmd() + * - GET CHANNEL STATUS - + * asks the phone to return the status of a channel opened with the OPEN CHANNEL proactive command - + * RSat::NotifyGetChannelStatusPCmd() + * - SERVICE SEARCH - + * RSat::NotifyServiceSearchPCmd() + * - GET SERVICE INFO - + * RSat::NotifyGetServiceInfoPCmd() + * - DECLARE SERVICE - + * RSat::NotifyDeclareServicePCmd() + * - TIMER MANAGEMENT - + * asks the phone to start, stop and read the current value of timers - + * RSat::NotifyTimerMgmtPCmd() + * - PROVIDE LOCAL INFORMATION - + * instructs the phone to send local information to the UICC - + * RSat::NotifyLocalInfoPCmd() + * - POLLING INTERVAL - + * tells the phone how often the UICC would like to be polled by the phone - + * RSat::NotifyPollingIntervalPCmd() + * - POLLING OFF - + * tells the phone not to poll the UICC for proactive commands any more - + * RSat::NotifyPollingOffPCmd() + * - RETRIEVE MULTIMEDIA MESSAGE + * asks the phone to store the Multimedia Message received from the Network on UICC- + * RSat::NotifyRetrieveMultimediaMsgPCmd() + * - SUBMIT MULTIMEDIA MESSAGE + * asks the phone to submit the Multimedia Message stored in the UICC to the Network- + * RSat::NotifySubmitMultimediaMsgPCmd() + * - DISPLAY MULTIMEDIA MESSAGE + * asks the phone to display the Multimedia message to the user- + * RSat::NotifyDisplayMultimediaMsgPCmd() + * - SET FRAMES + * This command instructs the terminal to divide the terminal screen into multiple, scrollable rectangular regions called frames inorder to present multiple information at once- + * RSat::NotifySetFramesPCmd() + * - GET FRAMES STATUS + * This command requests the terminal to return a Frames parameters data object- + * RSat::NotifyGetFramesStatusPCmd() + * + * Note: the phone continuously polls the card, waiting for proactive commands. + * However, the polling process is hidden from the ETelSat API - simply request + * notification and wait for the commands. + */ + { +public: + IMPORT_C RSat(); + IMPORT_C TInt Open(RPhone& aPhone); + IMPORT_C void Close(); + IMPORT_C void NotifyProactiveSimSessionEnd(TRequestStatus& aReqStatus) const; + IMPORT_C void NotifyProactiveSimSessionStart(TRequestStatus& aReqStatus) const; + + class TSatBase + /** + Base class for all the (U)SAT ETel API parameters. + + There may be several versions of a parameter. Parameter classes are named + 'name version number', such as RSat::TGetInkeyV1 and RSat::TGetInkeyV2. + Both of these classes are used with the "GET INKEY" proactive command. They + hold similar information but are designed for use with different versions + of the (U)SAT ETel API. Version 2 contains the version 1 class plus extra + information. A third version would contain version 2 plus extra + information, etc. + + In classes derived from RSat::TSatBase, the base class holds the class's + version number. The version number is a value from RSat::TSatVersion. + Each value in RSat::TSatVersion describes the versions of Symbian OS with + which they are used. + + You never need to set the version number; the class's constructor does + this. Generally, RSat clients do not need to read the version number. + + The TSY can use RSat::TSatBase::ExtensionId() to return the version number. + A typical situation is this: the TSY is passed a (U)SAT ETel API parameter + in a descriptor. The TSY does not know which version it has been given so + it should guess. For example, it could unpack the descriptor into the + latest version of the parameter then call RSat::TSatBase::ExtensionId() to + retrieve the actual version number. If the TSY chose the incorrect version + number then the descriptor can be unpacked into the correct parameter class. + */ + { + public: + IMPORT_C TInt ExtensionId() const; + protected: + TSatBase(); + protected: + /** The extension identifier or version number. */ + TInt iExtensionId; + }; + + + class TSatPCmdBase : public TSatBase + /** + Base class for all the (U)SAT ETel API proactive command classes. + + TSatPCmdBase inherits from TSatBase and is the base class for all the (U)SAT + ETel API proactive command classes, for which it holds the associated + proactive command number. + */ + { + public: + IMPORT_C TUint8 PCmdNumber() const; + IMPORT_C TInt SetPCmdNumber(TUint8 aNumber); + protected: + TSatPCmdBase(); + protected: + /** Proactive command number from 3GPP 31.111 and ETSI TS 102 223. + Valid range is 0x01 to 0xFE. */ + TUint8 iPCmdNumber; + }; + + enum TSatVersion + /** + The version number of a (U)SAT ETel API parameter, + returned by RSat::TSatBase::ExtensionId(). + @see RSat::TSatBase + */ + { + KSatVersionNotSet=-1, //< (U)SAT version has not been set yet + KSatV1=1, //< API version 1, (U)SAT API delivered by v6.1 and v7.0. + KSatV2=2, //< API version 2, (U)SAT API delivered by 7.0s + KSatV3=3, //< API version 3, (U)SAT API delivered by v8.0a, v8.0b, v8.1a, v8.1b. + KSatV4=4, //< API version 4, (U)SAT API delivered by v9.1 + KSatV5=5, //< API version 5, (U)SAT API delivered by v9.2 + KSatV6=6, //< API version 6, (U)SAT API delivered by v9.4 + KSatV7=7 //< API version 7, (U)SAT API delivered by v9.5 + }; + + enum THelp + /** + The UICC may offer help to accompany a GET INKEY, GET INPUT, SET UP MENU or + SELECT ITEM proactive command. This help is normally text for the phone's + user. + + Below are links to four member functions. They request notification for + the GET INKEY, GET INPUT, SET UP MENU or SELECT ITEM proactive commands. + When they complete, an object is returned containing the proactive + command's details. This includes an RSat::THelp that states whether help + is available for the command. + + It is up to you whether you tell the user that help is available, and + whether to display the help should the user ask for it. The proactive + command does not contain the help; it only indicates whether help is + available with RSat::THelp. The process of getting help depends upon the + proactive command; see the links to the member functions below for details. + + @see RSat::NotifyGetInkeyPCmd() + @see RSat::NotifyGetInputPCmd() + @see RSat::NotifySetUpMenuPCmd() + @see RSat::NotifySelectItemPCmd() + */ + { + EHelpNotSet, //< Initialization value used within constructor(s). + EHelpAvailable, //< Help information available to the user. + ENoHelpAvailable //< No help information is available to the user. + }; + + enum TTimeUnit + /** + Describes the units in RSat::TDuration. + @see RSat::TDuration + */ + { + ETimeUnitNotSet, //< Initialization value used within constructor(s). + ENoDurationAvailable, //< No duration has been provided. The ME should default to general beep. + EMinutes, //< The duration is expressed in minutes. + ESeconds, //< The duration is expressed in seconds. + ETenthsOfSeconds //< The duration is expressed in tenths of seconds. + }; + + struct TDuration + /** Class used in RSat whenever a measure of duration is required. */ + { + TTimeUnit iTimeUnit; //< Unit used to encode the duration in iNumOfUnits + TUint8 iNumOfUnits; //< Valid range is 1 to 255. + }; + + enum TDeviceId + /** Some proactive commands are aimed at particular devices. The device will be on of those defined here. */ + { + KDeviceIdNotSet =-1, //< Initialisation value + KKeypad =0x01, //< The destination device for the proactive command is the keypad. + KDisplay =0x02, //< The destination device for the proactive command is the display. + KEarPiece =0x03, //< The destination device for the proactive command is the earpiece. + KAdditionalCardReader0 =0x10, //< The destination device for the proactive command is the additional card reader 0. + KAdditionalCardReader1 =0x11, //< The destination device for the proactive command is the additional card reader 1. + KAdditionalCardReader2 =0x12, //< The destination device for the proactive command is the additional card reader 2. + KAdditionalCardReader3 =0x13, //< The destination device for the proactive command is the additional card reader 3. + KAdditionalCardReader4 =0x14, //< The destination device for the proactive command is the additional card reader 4. + KAdditionalCardReader5 =0x15, //< The destination device for the proactive command is the additional card reader 5. + KAdditionalCardReader6 =0x16, //< The destination device for the proactive command is the additional card reader 6. + KAdditionalCardReader7 =0x17, //< The destination device for the proactive command is the additional card reader 7. + KChannel1 =0x21, //< The destination device for the proactive command is the channel 1. + KChannel2 =0x22, //< The destination device for the proactive command is the channel 2. + KChannel3 =0x23, //< The destination device for the proactive command is the channel 3. + KChannel4 =0x24, //< The destination device for the proactive command is the channel 4. + KChannel5 =0x25, //< The destination device for the proactive command is the channel 5. + KChannel6 =0x26, //< The destination device for the proactive command is the channel 6. + KChannel7 =0x27, //< The destination device for the proactive command is the channel 7. + KUICC =0x81, //< The destination device for the proactive command is the UICC. + KME =0x82, //< The destination device for the proactive command is the Mobile Equipment, typically a phone. + KNetwork =0x83 //< The destination device for the proactive command is the network. + }; + + /** + Specifies the text coding scheme for RSat buffers. It may be used in + conjunction with any RSat buffer to indicate the coding scheme used. + (See ETSI TS 102 223 V5.9.0 section 8.15.) + */ + enum TSatTextCoding + { + /** 7-bit packed coding */ + E7bitPacked, + /** 7-bit unpacked (i.e. 8-bit) coding */ + E7bitUnpacked, + /** 16-bit Unicode (UCS-2) coding */ + E16bitUCS2 + }; + + /** + @see RSat::TTextString + */ + enum {KTextStringMaxSize=250}; + + /** Generic Text String + + This text string definition is to be used through the API where a text + string is required. Text string should be presented to the client in + unicode format. This type can be used in envelope commands, proactive + commands and terminal response. + @see RSat::KTextStringMaxSize + */ + typedef TBuf TTextString; + + + // Alpha Identifier + + /** + @see RSat::TAlphaIdBuf + @see RSat::TAlphaId + + @see RMobileCall::KAlphaIdMaxSize + */ + enum {KAlphaIdMaxSize=254}; + + /** + Buffer containing the alpha identifier in the proactive command sent from the ICC. + + @see RSat::TAlphaId + + @see RMobileCall::TAlphaIdBuf + */ + typedef TBuf TAlphaIdBuf; + + /** + Indicates the status of the alpha ID to the client. It can be present or + not present. If it is present, then it can contain data (typically text) + or it can be a null object. + @see RSat::TAlphaId + */ + enum TAlphaIdStatus + { + EAlphaIdNotSet, //< Value used at initialisation + EAlphaIdProvided, //< The alpha ID was provided by the ICC and contains data, typically text. + EAlphaIdNull, //< The alpha ID was provided by the ICC but was a null object. + EAlphaIdNotPresent //< No alpha ID provided by the ICC. + }; + + /** + Proactive commands can include some text called an 'alpha identifier'. + The meaning of the text depends upon the proactive command; see each + command's description for more details. + + In Symbian OS, details of each proactive command are encapsulated in a + class. Each class includes an RSat::TAlphaId. Inside this, iStatus + contains the status of the command's alpha identifier: + + If iStatus is RSat::EAlphaIdProvided then RSat::TAlphaId::iAlphaId contains + the proactive command's alpha identifier text. The description of each + proactive command will tell you what to do with the text. + + If iStatus is RSat::EAlphaIdNull then the proactive command's alpha + identifier is an empty string. RSat::TAlphaId::iAlphaId contains nothing. + This commonly indicates that nothing should be display to the user while + the proactive command is executed; see the proactive command's description. + + If iStatus is RSat::EAlphaIdNotPresent then the proactive command did not + contain an alpha identifier. This is commonly indicates that you can + display whatever you like to the user while the proactive command is + executed; see the proactive command's description. + + It is intended by ETSI / 3GPP to be a short identifier of one or two words. + However the maximum buffer size is 254 in this API. + */ + struct TAlphaId + { + TAlphaIdStatus iStatus; //< The status of the alpha ID. + TAlphaIdBuf iAlphaId; //< The alpha ID's text. Only valid if iStatus is RSat::EAlphaIdProvided. + }; + + /** + Size in bytes of a text attribute as defined in spec. ETSI TS 102 223 + @see RSat::TTextAttributeBuf + */ + enum {KTextAttributeBufSize=4}; + + /** Contains text attribute data. A text attribute contains + formatting information such as whether the text it is applied to + is bold, underlined, aligned left, etc. The text to which the + text attribute applies to depends on the specific proactive + UICC command and is specified in ETSI TS 102 223. + @see RSat::TTextAttribute + */ + typedef TBuf8 TTextAttributeBuf; + + enum TTextAttributeStatus + /** Indicates the status of the text attribute to the client. + It can be present or not present. If it is present, then it will + provide text attribute data. This data is valid only if the + text to which the text attribute data applies to is also valid. + The text to which the text attribute applies to depends on the + specific proactive UICC command and is specified in ETSI TS 102 223. + @see RSat::TTextAttribute + */ + { + ETextAttributeNotSet, //< Value used at initialisation + ETextAttributeProvided, //< The text attribute was provided by the ICC and contains data. + ETextAttributeNotPresent //< No text attribute provided by the ICC. + }; + + /** + Proactive commands which contain text may also contain formatting + information, called text attributes, which apply to the text + when it is displayed by the ME. If a Terminal receives a text + attribute that it does not support then it shall use the default + text attribute it supports. + + For some proactive commands, the text attribute information + is a conditional parameter. This means it is only present in the + command if the text to which it applies is present as the text + itself is an optional part of the command. + For other proactive commands that always contain some text such + as an alpha identifier, the text attribute information is optional, + and can be present or not present. + + The actual text to which the text attribute applies to depends on + the specific proactive UICC command and is specified in + ETSI TS 102 223. + + The TTextAttribute structure is present in RSat classes which + represent proactive commands that support text attributes. The + structure contains iStatus which represents the status of + iTextAttribute. + + If the iStatus is RSat::ETextAttributeNotPresent then no text + attribute data was supplied in the command. This commonly + indicates that the default formatting should be applied to + the text when it is displayed by the ME. + + If the iStatis is RSat::ETextAttributeProvided then text + attribute data was supplied in the command. This means that + the supplied formatting should be applied when the text to which + it applies is displayed on the ME. If the supplied formatting + is not supported by the terminal, then default formatting should + be applied. + */ + struct TTextAttribute + { + /** + The status of the text attribute. + @see RSat::TTextAttributeStatus + */ + TTextAttributeStatus iStatus; + /** + The text attribute data. Only valid if the iStatus is + RSat::ETextAttributeProvided and the text to which it applies is valid. + @see RSat::TTextAttributeBuf + */ + TTextAttributeBuf iTextAttributeData; + }; + + /** + @see RSat::TCcp + + @see RMobileCall::KCcpMaxSize + */ + enum {KCcpMaxSize=14}; + + /** + TCcp ( Capability configuration parameters ) is a 8-bit data buffer that + contains the bearer capabilities as coded in ETSI 11.11 and ETSI 04.08. It + is 14 bytes as it does not include the IEI (Information Element Identity). + + It is used by the SET UP CALL proactive command. It is also used in call control. + + @see RSat::NotifySetUpCallPCmd() + @see RSat::NotifyCallControlRequest() + + @see RMobileCall::TCcp + */ + typedef TBuf8 TCcp; + + /** + @see RSat::TSubAddress + + @see RMobileCall::KSubAddressMaxSize + */ + enum {KSubAddressMaxSize=21}; + + /** + Sub-address of a telephone number. Maximum size is 21 digits. + + It is used by the SET UP CALL and OPEN CHANNEL proactive commands. It is + also used in call control. + + @see RSat::NotifySetUpCallPCmd() + @see RSat::NotifyCallControlRequest() + @see RSat::NotifyOpenChannelPCmd() + + @see RMobileCall::TSubAddress + */ + typedef TBuf TSubAddress; + + /** + Type of number, part of a complete telephone number address along with the + numbering plan and the number's digits. + + @see RSat::TAddress + @see RSat::TSsString + */ + enum TTypeOfNumber + { + ETypeOfNumberNotSet, //< Initialization value used within constructor(s). + EUnknownNumber, //< The user or the network has no knowledge of the type of network. + EInternationalNumber, //< International number. + ENationalNumber, //< National number. + + /** Administration/service number specific to the serving network, e.g. + used to access an operator.*/ + ENetworkSpecificNumber, + + /** Called dedicated access / short code in GSM/WCDMA. Corresponds to + TMobileTON::ESubscriberNumber in ETel MM API. */ + EDedicatedNumber, + + EAlphanumericNumber, //< Alphanumeric number. + EAbbreviatedNumber //< Abbreviated number. + }; + + /** + Numbering plan, part of a complete telephone number + address along with the type of number and the number's + digits. + + @see RSat::TAddress + @see RSat::TSsString + */ + enum TNumberingPlan + { + ENumberingPlanNotSet, //< Initialization value used within constructor(s). + EUnknownNumberingPlan, //< The user or the network has no knowledge of the numbering plan. + EIsdnNumberPlan, //< ISDN / telephony numbering plan. + EDataNumberPlan, //< Data numbering plan. + ETelexNumberPlan, //< Telex numbering plan. + + /** The service centre specific plan is used to indicate a numbering + plan specific to External Short Message Entities attached to the SMS + centre.*/ + EServiceCentreSpecificPlan1, + + /** The service centre specific plan is used to indicate a numbering + plan specific to External Short Message Entities attached to the SMS + centre. */ + EServiceCentreSpecificPlan2, + + ENationalNumberPlan, //< National numbering plan. + EPrivateNumberPlan, //< Private numbering plan. + EERMESNumberPlan //< ERMES numbering plan. + }; + + /** + @see RSat::TSatTelNumber + */ + enum {KMaxMobileTelNumberSize=251}; + + /** + The phone number’s digits and other valid dial-string characters, coded as + Unicode characters. RSat::TSatTelNumber is part of a complete telephone + number address, along with the type of number and the numbering plan. + + Maximum size is 251 digits. + @see RSat::TAddress + */ + typedef TBuf TSatTelNumber; + + /** + A complete telephone number. + */ + struct TAddress + { + TTypeOfNumber iTypeOfNumber; //< Type of number + TNumberingPlan iNumberPlan; //< Numbering plan + TSatTelNumber iTelNumber; //< Telephone number + }; + + /** + The originator of a call. + + This list of enumerations matches RMobileCall::TCallParamOrigin in Etelmm. + + @see RMobileCall::TCallParamOrigin + */ + enum TCallParamOrigin + { + EOriginatorUnknown, //< The call originator is unknown. + EOriginatorSIM, //< The call originated/originates from the SIM. + EOriginatorEtelClient, //< The call originated/originates from an Etel Client. + EOriginatorExternal //< The call originated/originates from an external device connected to the modem. + }; + + + /** Maximum size of a SS or a USSD string + @see RSat::TSsString + @see RSat::TUssdString */ + enum {KStringMaxSize=242}; + + struct TSsString + /** A Supplementary Service string. */ + { + TTypeOfNumber iTypeOfNumber; //< Type of number + TNumberingPlan iNumberPlan; //< Numbering plan + TBuf8 iSsString;//< SS string. Max. length is 242 characters. + }; + + struct TUssdString + /** An Unstructured Supplementary Services Data string. */ + { + TUint8 iDcs; //< Data Coding Scheme + TBuf iUssdString; //< USSD string. Max. length is 242 characters. + }; + + enum TIconQualifier + /** Included in each type of proactive command that can support icons. It + describes the icon, if there is one. + + @see RSat::TIconId + @see RMobileCall::TIconQualifier + */ + { + EIconQualifierNotSet, //< Icon qualifier is not set + ENoIconId, //< Icon not present in this proactive command. + ESelfExplanatory, //< Icon is included in the proactive command. It is self explanatory. Display instead of the alpha ID or text string. + ENotSelfExplanatory //< Icon is included in the proactive command. It is not self explanatory. Display both the icon and the alpha ID or text string. + }; + + struct TIconId + /** + Some types of proactive command can include an icon identifier. Commands + that can include an icon will have an RSat::TIconId field. Icons are + intended to provide graphical information to the user, although the display + of icons is optional. + + If RSat::TIconId::iQualifier is RSat::ENoIconId then the proactive command + does not provide an icon. + + Otherwise, an icon is provided. The alpha identifier or text string in the + proactive command will be present and will not be a null string. + + - If RSat::TIconId.iQualifier is RSat::ESelfExplanatory then the icon should + be displayed instead of the alpha identifier or text string. + + - If RSat::TIconId.iQualifier is RSat::ENotSelfExplanatory then both icon + and the alpha identifier or text string should be displayed. If you are + not able to display both (such as when the screen is too small) then + display just the alpha identifier or text string. + + RSat::TIconId does not contain the icon itself. Instead it contains an + icon identifier, RSat::TIconId::iIdentifier. Use RSat::GetIcon() followed + by RSat::GetImageInstance() to get the icon from the UICC. + + There are two error cases related to icons: + + - If the UICC provides an icon identifier with a proactive command but + you cannot display the icon for any reason, then inform the UICC by sending + the general result "Command performed successfully, but requested icon + could not be displayed"; see RSat::KSuccessRequestedIconNotDisplayed. + + - If you receive an icon, and either an empty or no alpha identifier/text + string is given by the UICC, than reject the command with general result + "Command data not understood by terminal"; see RSat::KCmdDataNotUnderstood. + + @see RSat::GetIcon() + @see RSat::GetImageInstance() + + @see RMobileCall::TIconId + */ + { + /** Describes the state of the icon. */ + TIconQualifier iQualifier; + /** Icon identifier, addresses a record in EF IMG. */ + TUint8 iIdentifier; + }; + + // + // Read Icon + // + enum {KImageInstanceDescriptorsMaxSize=255}; //< @see RSat::TIcon + + /** RSat::GetIcon() stores the an icon's EF record in this buffer. The + record's structure is defined in ETSI TS 131 102; search for EFimg or + "Contents of files at the DFGRAPHICS level" + @see RSat::GetIcon() + @see RSat::TIconId + */ + typedef TBuf8 TIcon; + + IMPORT_C void GetIcon(TRequestStatus& aReqStatus, TUint8 aRecordNumber, TIcon& aIconEf) const; + IMPORT_C void GetImageInstance(TRequestStatus& aReqStatus, const TDesC8& aInstanceInfo, TDes8& aInstance) const; + + class TInstanceInfoV2 : public TSatPCmdBase + /** + Describes the exact position of a record within a EF IMG hold instance descriptor. + RSat::TInstanceInfoV2 is packaged into a descriptor, RSat::TInstanceInfoV2Pckg. + @see RSat::GetImageInstance() + */ + { + public: + IMPORT_C TInstanceInfoV2(); + public: + TUint iInstanceNumber; //< The requested image instance EF. + TUint16 iOffset; //< The offset of the requested image instance EF. + TUint16 iLength; //< The length of the requested image instance EF in bytes. + }; + + /** A packaged RSat::TInstanceInfoV2. */ + typedef TPckg TInstanceInfoV2Pckg; + + enum TImageCoding + /** Coding used for icons. + @see RSat::TInstanceInfoV3. */ + { + KBasic =0x11, //< Basic Image Coding + KColour =0x21 //< Colour Image Coding + }; + + class TInstanceInfoV3 : public TInstanceInfoV2 + /** + Describes the exact position, coding, size and File ID of a record within a + EF IMG hold instance descriptor. + + The EF record is described in ETSI TS 131 102; search for EFimg or "Contents + of files at the DFGRAPHICS level" + + To retrieve an image's data from the UICC, create an instance of this class + and fill in fields with data retrieved with RSat::GetIcon(). Then pass the + packaged version of this class (RSat::TInstanceInfoV3Pckg) to + RSat::GetImageInstance(). + + @see RSat::GetImageInstance() + */ + { + public: + IMPORT_C TInstanceInfoV3(); + public: + /**Image Coding Scheme*/ + TImageCoding iCoding; + /**Image Width*/ + TUint8 iImgWidth; + /**Image Height*/ + TUint8 iImgHeight; + /**Image Instance File Identifier*/ + TUint16 iFileId; + }; + + /** A packaged RSat::TInstanceInfoV3. */ + typedef TPckg TInstanceInfoV3Pckg; + + // API/TSY internal type + struct TInstanceNumberAndOffset + { + TUint iInstanceNumber; //< Image instance number + TUint iOffset; //< Image instance offset within the image record + }; + + IMPORT_C void GetClut(TRequestStatus& aReqStatus, TUint aInstanceNumber, TUint aOffset, TDes8& aClut) const; + + // + // Terminal Response - Answer from the client to a proactive command + // + + /** General Result of a proactive command. + + All proactive commands require a response from you to the UICC via the + RSat::TerminalRsp() method. When you send a response, include a value from + this enumeration to indicate the level of success or failure. Some of these + values require additional information to be returned to the UICC, too. For + instance, you cannot return just RSat::KMeUnableToProcessCmd, you must + return a value from RSat::TMeProblem, too. The description of each + proactive command in 3GPP 31.111 and ETSI TS 102 223 will tell you what you + need to return. + + The values KSuccess to KUssdTransactionTerminatedByUser indicate that the + proactive command was successful. It can be either completely or partially + successful. + + The values from KMeUnableToProcessCmd to KLaunchBrowserError indicate + temporary errors. The UICC may make another attempt by resending the + proactive command. + + The values from KCmdBeyondMeCapabilities onwards are permanent errors. Use + them to tell the UICC that the command cannot be executed at all. + + TPCmdResult enum values are dictated by 3GPP 31.111 and ETSI TS 102 223; + see the description of the 'Result' data object. + */ + enum TPCmdResult + { + KPCmdResultNotSet =-1, + + // ------------------ + // Successful results + // ------------------ + + /** Command performed successfully. There were no problems. */ + KSuccess =0x00, + + /** Command performed with partial comprehension; see 'Command results' + in ETSI TS 102 223. */ + KPartialComprehension =0x01, + + /** Command performed, with missing information. Use when you received + a minimum set of components but you believe some components to be + missing. */ + KMissingInformation =0x02, + + /** REFRESH performed with additional EFs read. */ + KRefreshAdditionEFRead =0x03, + + /** Command performed successfully but requested icon could not be displayed. */ + KSuccessRequestedIconNotDisplayed =0x04, + + /** Command performed, but modified by call control. Use this to + indicate that call control modified the type of request indicated in + the proactive command, and that the action requested by call control + was performed successfully. */ + KModifiedByCallControl =0x05, + + /** Command performed successfully, limited service. */ + KSuccessLimitedService =0x06, + + /** Command performed with modification. Use this to indicate that you + were unable to process the command using the exact parameters provided, + but the command was processed with the best possible parameters.*/ + KPerformedWithModifications =0x07, + + /** REFRESH performed but either the (U)SIM or R-UIM was not active. */ + KRefreshUSIMNotActive =0x08, + + /** PLAY TONE command performed successfully. */ + KPlayTonePerformedSuccessfully =0x09, + + /** (U)SAT / CCAT session terminated by the user. */ + KPSessionTerminatedByUser =0x10, + + /** Backward move in the (U)SAT / CCAT session requested by the user. */ + KBackwardModeRequestedByUser =0x11, + + /** No response from user. */ + KNoResponseFromUser =0x12, + + /** Help information required by the user. + + The UICC may offer help to accompany a GET INKEY, GET INPUT, SET UP + MENU or SELECT ITEM proactive command. This help is normally text for + the phone's user. If you tell the user that help is available, and if + they would like the help, then respond with this value. + + @see RSat::THelp */ + KHelpRequestedByUser =0x13, + + /** USSD (Unstructured Supplementary Services Data) session terminated + by the user. */ + KUssdTransactionTerminatedByUser =0x14, + + // ---------------- + // Temporary faults + // ---------------- + + /** The phone is currently unable to process command. + + Besides returning this value, you must return additional information. + Return a value from RSat::TMeProblem and set the additional information + type to RSat::KMeProblem. */ + KMeUnableToProcessCmd =0x20, + + /** The network is currently unable to process the command. + + The network will return a cause value to indicate the problem. These + values are defined in the appendices of 3GPP TS 24.008. Set bit 8 of + the 8-bit code to 1, then include this code in the 'additional + information' field in your response to the UICC. Set the additional + information type to RSat::KSatNetworkErrorInfo. + + If no cause code is available, set the 'additional information' field to zero.*/ + KNetworkUnableToProcessCmd =0x21, + + /** In some proactive commands, you are required to solicit and receive + the user's approval before executing the proactive command. If the user + does not give approval then you should not execute it, and you should + give this response to the UICC. */ + KPCmdNotAcceptedByUser =0x22, + + /** The user cleared down the call before the call + connected or before the network released the call. */ + KCallClearedBeforeConnectionOrReleased =0x23, + + /** Use this code when the UICC requests an action for a timer to be + taken by the terminal and the state of the timer does not allow that + action. */ + KContradictionWithTimerState =0x24, + + /** Use this to indicate that call control modified + the type of request indicated in the proactive command, and that the + action requested by call control encounters a temporary problem. */ + KInteractionWithCCTemporaryError =0x25, + + /** Error launching the browser. + + Besides returning this value, you must return an additional value + from RSat::TBrowserError. Set the additional information + type to RSat::KMeProblem. */ + KLaunchBrowserError =0x26, + + /** The ME has rejected a RETRIEVE/SUBMIT/DISPLAY MUTIMEDIA MESSAGE + proactive command, because it is busy processing some other MMS transaction. + + @see RSat::KMeProblem + */ + KMMSTemporaryProblem =0x27, + + // ---------------- + // Permanent faults + // ---------------- + + /** Command is beyond your capabilities. You understand what the + command is asking you to do, but you do not have the capability to do + it. E.g. your code is running on a device that only supports SMS and + the command asks you to set up a call. */ + KCmdBeyondMeCapabilities =0x30, + + /** Proactive command type not understood. It is unlikely this will be + needed - it is to allow future expansion of commands. */ + KCmdTypeNotUnderstood =0x31, + + /** Command data not understood. You understand the command type is + understood but not the accompanying data object(s). */ + KCmdDataNotUnderstood =0x32, + + /** Command number not known. */ + KCmdNumberNotKnown =0x33, + + /** The network returns a Supplementary Service (SS) error in response + to a previous SS command. Specific cause values are the same as given + by the network in the Return Error message. + + The network will return an error value given in the Facility + information element to indicate the problem. Set bit 8 of + the 8-bit code to 1, then include this code in the 'additional + information' field in your response to the UICC. Set the additional + information type to RSat::KSatNetworkErrorInfo. + + If no cause code is available, set the 'additional information' field to zero.*/ + KSsReturnError =0x34, + + /** The network returns an error in response to the phone trying to send a + short message. + + To indicate the problem, the network will return a cause value in the + RP cause element from the RP-ERROR message. Set bit 8 of + the 8-bit code to 1, then include this code in the 'additional + information' field in your response to the UICC. Set the additional + information type to RSat::KSatNetworkErrorInfo. + + If no cause code is available, set the 'additional information' field to zero.*/ + KSmsRpError =0x35, + + /** Required values are missing. You understand the command but one or + more required data objects are missing. The specifications defining + the (U)SAT and CCAT toolkits define the minimum required objects for + each command. */ + KErrorRequiredValuesMissing =0x36, + + /** The network returns a USSD error in response to a previous USSD + command. Specific cause values are the same as given by the network in + a Return Error message. This has additional information: the error value + given in the Facility information element returned by the network. Set bit 8 of + the 8-bit code to 1, then include this code in the 'additional + information' field in your response to the UICC. Set the additional + information type to RSat::KSatNetworkErrorInfo. + + If no cause code is available, set the 'additional information' field to zero.*/ + KUssdReturnError =0x37, + + /** Multiple card commands error. + + Besides returning this value, you must return an additional value + from RSat::TMultipleCardError. Set the additional information + type to RSat::KMeProblem. */ + KMultipleCardCmdsError =0x38, + + /** Interaction with call control, permanent problem. + + Besides returning this value, you must return an additional value + from RSat::TCcInteractionError. Set the additional information + type to RSat::KMeProblem. */ + KInteractionWithCCPermanentError =0x39, + + /** Bearer Independent Protocol error. + + Besides returning this value, you must return an additional value + from RSat::TBearerIndProtoError. Set the additional information + type to RSat::KMeProblem. */ + KBearerIndepProtocolError =0x3A, + + /** Access Technology unable to process command. */ + KAccessTechUnableProcessCmd =0x3B, + + /** An error occured while trying to process the SET FRAMES or GET FRAMES STATUS command. */ + KFramesError =0x3C, + + /** A permanent error occured while trying to process one of the RETRIEVE/SUBMIT/DISPLAY + MUTIMEDIA MESSAGE proactive commands. + + @see RSat::KMeProblem + */ + KMMSError =0x3D + + }; + + enum TAdditionalInfoType + /** + All proactive commands require a response from you to the UICC via the + RSat::TerminalRsp() method. Some require a descriptor containing 'additional + information', RSat::TAdditionalInfo. The information in this descriptor will + depend upon the type of proactive command to which you are responding; see + the description of each proactive command. + + Besides returning the descriptor, you must indicate the type of + additional information by returning a value from RSat::TAdditionalInfoType. + + @see RSat::TAdditionalInfo + @see RSat::TerminalRsp() + */ + { + KNoAdditionalInfo = 0x0001, //< No additional result info has been provided. + KMeProblem = 0x0002, //< Possible additional information, in the event of an phone problem, is described by RSat::TMeProblem. + + /** The additional information, in this case, consists of the error + code returned by the network. The error code returned by the network is + available to the client, as it is passed up to the client in the + extended GSM error code as a response to a SET UP CALL, a SEND SS, a + SEND SHORT MESSAGE, SEND USSD or SEND DTMF. */ + KSatNetworkErrorInfo = 0x0004, + + KControlInteraction = 0x0008, //< Interaction with call control or MO SM control. + KSendSsInfo = 0x0010, //< Additional info on a successful result for a SEND SS proactive command. + KTextString = 0x0020, //< Text string - additional info for a successful GET INKEY, GET INPUT or SEND USSD. + KItemIdentifier = 0x0040, //< Item selected as a result to a SELECT ITEM proactive command. + KCallControlRequestedAction = 0x0080, //< Required if a call control by SIM has modified a proactive command SET UP CALL, SEND SS or SEND USSD in another type of request. + KRApdu = 0x0100, //< Required in response to PERFORM CARD APDU. + KCardATR = 0x0200, //< Required in response to POWER ON CARD. + KATResponse = 0x0400, //< Required in response to RUN AT COMMAND. + KChannelData = 0x0800, //< Required in response to RECEIVE DATA. + KChannelStatusInfo = 0x1000, //< Required in response to GET CHANNEL STATUS and OPEN CHANNEL. + KServiceAvailability = 0x2000, //< Required in response to Service Search. + KCardReaderInfo = 0x4000, //< Required in response to GET READER STATUS. + KLocalInformation = 0x8000, //< Required in response to PROVIDE LOCAL INFORMATION. + KTimerMgmt = 0x10000, //< Required in response to TIMER MANAGEMENT. + KPollingIntv = 0x20000, //< Required in response to POLLING INTERVAL. + KServiceRecord = 0x40000, //< Required in response to GET SERVICE INFORMATION. + KFramesInfo = 0x80000 //< Required in response to SET FRAMES and GET FRAMES STATUS. + }; + + /** + Addition information provide to the UICC in response to proactive + commands. A value from this enumeration should be provided when the + general response to a command is RSat::KMeUnableToProcessCmd + Set the additional information type to RSat::KMeProblem. + + Enum values are dictated by 3GPP 31.111 and ETSI TS 102 223; see the + description of the 'Result' data objects. + */ + enum TMeProblem + { + KNoSpecificMeProblem = 0x00, //< No specific cause can be given. + KScreenBusy = 0x01, //< Screen is busy. + KMeBusyOnCall = 0x02, //< Busy on call. + KMeBusyOnSs = 0x03, //< Busy on supplementary service. + KNoService = 0x04, //< No service. + KAccBar = 0x05, //< Access control class bar. + KRadioRessourceNotGranted = 0x06, //< Radio resource not granted. + KNotInSpeechCall = 0x07, //< Not in speech call. + KMeBusyOnUssd = 0x08, //< Busry on USSD. + KMeBusyOnSendDtmf = 0x09, //< Busy on SEND DTMF command. + KNoUSIMActive = 0x0A //< No (U)SIM or R-UIM active. + }; + + /** + Addition information provide to the UICC in response to proactive + commands. A value from this enumeration should be provided when the + general response to a command is RSat::KInteractionWithCCPermanentError. + Set the additional information type to RSat::KMeProblem. + + Enum values are dictated by ETSI TS 102 223; see the description of the + 'Result' data objects. + */ + enum TCcInteractionError + { + KNoSpecificInteractionError = 0x00, //< No specific cause can be given. + KActionNotAllowed = 0x01, //< Action not allowed. + KRequestTypeChanged = 0x02 //< The type of request has changed. + }; + + /** + Addition information provide to the UICC in response to proactive + commands. A value from this enumeration should be provided when the + general response to a command is RSat::KMultipleCardCmdsError. + Set the additional information type to RSat::KMeProblem. + + Enum values are dictated by ETSI TS 102 223; see the description of the + 'Result' data objects. + */ + enum TMultipleCardError + { + KNoSpecificMultiCardError = 0x00, //< No specific cause can be given. + KNoCardReader = 0x01, //< Card reader removed or not present + KNoCard = 0x02, //< Card removed or not present + KCardReadyBusy = 0x03, //< Card reader busy. + KCardPoweredOff = 0x04, //< Card powered off. + KCApduFormatError = 0x05, //< C-APDU format error. + KMuteCard = 0x06, //< Mute card. + KTransmissionError = 0x07, //< Transmission error. + KProtocolNotSupported = 0x08, //< Protocol not supported. + KSpecifiedReaderNotValid = 0x09 //< Specified reader not valid. + }; + + /** + Addition information provide to the UICC in response to proactive + commands. A value from this enumeration should be provided when the + general response to a command is RSat::KLaunchBrowserError. + Set the additional information type to RSat::KMeProblem. + */ + enum TBrowserError + { + KNoSpecificBrowserError = 0x00, + KBearerUnvailable = 0x01, + KBrowserUnavailable = 0x02, + KMeUnableToReadProvisioningData = 0x04 + }; + + /** + Addition information provide to the UICC in response to proactive + commands. A value from this enumeration should be provided when the + general response to a command is RSat::KBearerIndepProtocolError + Set the additional information type to RSat::KMeProblem. + + Enum values are dictated by ETSI TS 102 223; see the description of the + 'Result' data objects. + */ + enum TBearerIndProtoError + { + KNoSpecificBIPError = 0x00, //< No specific cause can be given. + KNoChannelAvailable = 0x01, //< No channel available. + KChannelClosed = 0x02, //< Channel closed. + KChannelIdNotValid = 0x03, //< Channel identifier not valid. + KBufferSizeNotAvailable = 0x04, //< Requested buffer size not available. + KSecurityError = 0x05, //< Security error (unsuccessful authentication). + KTranportLevelNotAvailable = 0x06, //< Requested UICC/terminal interface transport level not available. + KRemoteDeviceNotReachable = 0x07, //< Remote device is not reachable (not present, not physically connected, switched off, etc.). + KServiceError = 0x08, //< Service error (service not available on remote device). + KServiceIdUnknown = 0x09, //< Service identifier unknown. + KPortNotAvailable = 0x10 //< Port not available (applicable for OPEN CHANNEL related to UICC Server Mode). + }; + + /** + Addition information provide to the UICC in response to proactive + commands. A value from this enumeration should be provided when the + general response to a command is RSat::KFramesError + Set the additional information type to RSat::KMeProblem. + + Enum values are dictated by ETSI TS 102 223; see the description of the + 'Result' data objects. + */ + enum TFramesError + { + KNoSpecificCauseCanBeGiven = 0x00, //< This error is reported when a specific reason for the KFramesError is not reported. + KFrameIdentifierIsNotValid = 0x01, //< The indicator is flagged when the frame identifier is not valid. + KNumberOfFramesExceeded = 0x02, //< This indicator is flagged when the number of frames are beyond the terminal capability. + KNoFrameIdentified = 0x03, //< This indicator is flagged when no frame is identified. + KRequestSizeNotSupported = 0x04, //< This indicator is flagged when the requested size is not supported. + KDefaultActiveFrameIsNotValid = 0x05 //< This indicator is flagged when the default active frames is not valid. + }; + + /** + @see TAdditionalInfo + */ + enum {KAdditionalInfoMaxSize=244}; + + /** + All proactive commands require a response from you to the UICC via the + RSat::TerminalRsp() method. Some require a buffer containing 'additional + information'. The information in this buffer will depend upon the type of + proactive command to which you are responding; see the description of each + proactive command. + + Besides returning a RSat::TAdditionalInfo, you must indicate the type of + additional information by returning a value from RSat::TAdditionalInfoType. + @see RSat::TAdditionalInfoType + @see RSat::TerminalRsp() + */ + typedef TBuf TAdditionalInfo; + + enum TPCmd + /** + Enumeration containing proactive commands for use with the + RSat::TerminalRsp(), RSat::NotifyTsyStateUpdated() and + RTelSubSessionBase::CancelAsyncRequest() methods only. Members of this + enumeration do not have the same value as the proactive command codes in + 3GPP TS 31.111 and ETSI TS 102 223. + */ + { + EDisplayText, + EGetInkey, + EGetInput, + EPlayTone, + ERefresh, + ESelectItem, + ESendDtmf, + ESendSm, + ESendSs, + ESendUssd, + ESetUpCall, + ESetUpEventList, + ESetUpIdleModeText, + ESetUpMenu, + EPerformCardApdu, + EPowerOffCard, + EPowerOnCard, + EGetReaderStatus, + ERunAtCommand, + ELanguageNotification, + ELaunchBrowser, + EOpenChannelCs, + EOpenChannelGprs, + EOpenChannelLocal, + ECloseChannel, + EReceiveData, + ESendData, + EGetChannelStatus, + EDeclareService, + EServiceSearch, + EGetServiceInformation, + ETimerMngt, + ELocalInfo, + EPollingInterval, + EPollingOff, + ERetrieveMultimediaMsg, + ESubmitMultimediaMsg, + EDisplayMultimediaMsg, + ESetFrames, + EGetFramesStatus, + EOpenChannelUiccServerMode + }; + + IMPORT_C void TerminalRsp(TRequestStatus& aReqStatus, TPCmd aPCmd, const TDesC8& aRsp) const; + + // + // Client ready indication + // + IMPORT_C TInt UsatClientReadyIndication() const; + + // + // TERMINAL PROFILE + // + + // TSatProfileByteX enum values are dictated by 3GPP 31.111 + + enum TSatProfileByte1 + /** Flags for byte 1 of the terminal profile. + @see RSat::TSatProfileV1 */ + { + KCapsProfileDownload =0x01, //< Profile download + KCapsSmsPpDataDownload =0x02, //< USAT only: SMS-PP data download + KCapsCbDataDownload =0x04, //< USAT only: Cell Broadcast data download + KCapsMenuSelection =0x08, //< Menu selection + KCaps9EXX =0x10, //< To be used only in v1.0 API + KCapsSmsPpDataDownload2 =0x10, //< v2.0 API only: SMS-PP data download supported. + KCapsTimerExpiration =0x20, //< Timer expiration + KCapsUssdStringInCC =0x40, //< To be used only in v1.0 API + KCapsCCByUSim2 =0x40, //< USAT only: Call Control by USIM supported. + KCapsCCByUSim3 =0x80 //< v2.0 API only: Call Control supported. + }; + + enum TSatProfileByte2 + /** Flags for byte 2 of the terminal profile. + @see RSat::TSatProfileV1 */ + { + KCapsCommandResult =0x01, //< Command result + KCapsCCBySim =0x02, //< v2.0 API only: Call Control by USIM + KCapsCellIdInCCBySim =0x04, //< To be used only in v1.0 API + KCapsCCByUSim4 =0x04, //< v2.0 API only: Call Control supported. + KCapsMOSMControl =0x08, //< USAT only: MO short message control support + KCapsAlphaIdHandling =0x10, //< To be used only in v1.0 API + KCapsCCByUSim5 =0x10, //< v2.0 API only: Call Control supported. + KCapsUcs2Entry =0x20, //< UCS2 Entry supported + KCapsUcs2Display =0x40, //< UCS2 Display supported + KCapsExtensionTextDisplay =0x80, //< To be used only in v1.0 API + KCapsDisplayText2 =0x80 //< v2.0 API only: DISPLAY TEXT supported. + }; + + enum TSatProfileByte3 + /** Flags for byte 3 of the terminal profile. + @see RSat::TSatProfileV1 */ + { + KCapsDisplayText =0x01, //< Proactive UICC: DISPLAY TEXT + KCapsGetInkey =0x02, //< Proactive UICC: GET INKEY + KCapsGetInput =0x04, //< Proactive UICC: GET INPUT + KCapsMoreTime =0x08, //< Proactive UICC: MORE TIME + KCapsPlayTone =0x10, //< Proactive UICC: PLAY TONE + KCapsPollInterval =0x20, //< Proactive UICC: POLL INTERVAL + KCapsPollingOff =0x40, //< Proactive UICC: POLLING OFF + KCapsRefresh =0x80 //< Proactive UICC: REFRESH + }; + + enum TSatProfileByte4 + /** Flags for byte 4 of the terminal profile. + @see RSat::TSatProfileV1 */ + { + KCapsSelectItem =0x01, //< Proactive UICC: SELECT ITEM + KCapsSendSM =0x02, //< Proactive UICC: SEND SHORT MESSAGE + KCapsSendSS =0x04, //< Proactive UICC: SEND SS + KCapsSendUSSD =0x08, //< Proactive UICC: SEND USSD + KCapsSetUpCall =0x10, //< Proactive UICC: SET UP CALL + KCapsSetUpMenu =0x20, //< Proactive UICC: SET UP MENU + KCapsProvideLocalInformation =0x40, //< Proactive UICC: PROVIDE LOCAL INFORMATION (MCC, MNC, LAC, Cell ID & IMEI) + KCapsProvideLocalInformationNMR =0x80 //< Proactive UICC: PROVIDE LOCAL INFORMATION (NMR) + }; + + enum TSatProfileByte5 + /** Flags for byte 5 of the terminal profile. + @see RSat::TSatProfileV1 */ + { + KCapsSetUpEventList =0x01, //< Proactive UICC: SET UP EVENT LIST + KCapsMtCallEvent =0x02, //< Event: MT call + KCapsCallConnectedEvent =0x04, //< Event: Call connected + KCapsCallDisconnectedEvent =0x08, //< Event: Call disconnected + KCapsLocationStatusEvent =0x10, //< Event: Location status + KCapsUserActivityEvent =0x20, //< Event: User activity + KCapsIdleScreenAvailableEvent =0x40, //< Event: Idle screen available + KCapsCardReaderStatusEvent =0x80 //< Event: Card reader status + }; + + enum TSatProfileByte6 + /** Flags for byte 6 of the terminal profile. */ + { + KCapsLanguageSelectionEvent =0x01, //< Event: Language selection + KCapsBrowserTerminationEvent =0x02, //< Event: Browser Termination + KCapsDataAvailableEvent =0x04, //< Event: Data available + KCapsChannelStatusEvent =0x08, //< Event: Channel status + KCapsAccTechnoChangedEvent =0x10, //< Event: Access Technology Change + KCapsDisplayParamsChangedEvent =0x20, //< Event: Display parameters changed + KCapsLocalConnectionEvent =0x40, //< Event: Local Connection + KCapsNetworkSearchModeChangeEvent =0x80 //< Event: Network Search Mode Change (added in V6) + }; + + enum TSatProfileByte7 + /** Flags for byte 7 of the terminal profile. + @see RSat::TSatProfileV1 */ + { + KCapsPowerOnCard =0x01, //< Proactive UICC: POWER ON CARD + KCapsPowerOffCard =0x02, //< Proactive UICC: POWER OFF CARD + KCapsPerformCardApdu =0x04, //< Proactive UICC: PERFORM CARD APDU + KCapsGetReaderStatus =0x08, //< Proactive UICC: GET READER STATUS (Card reader status) + KCapsGetReaderStatusId =0x10 //< Proactive UICC: GET READER STATUS (Card reader identifier) + //Other Values are RFU + }; + + enum TSatProfileByte8 + /** Flags for byte 8 of the terminal profile. + @see RSat::TSatProfileV1 */ + { + KCapsTimerManagementStartStop =0x01, //< Proactive UICC: TIMER MANAGEMENT (start, stop) + KCapsTimerManagementGetCurrentValue =0x02, //< Proactive UICC: TIMER MANAGEMENT (get current value) + KCapsProvideLocalInfoDateTimeTimeZone =0x04, //< Proactive UICC: PROVIDE LOCAL INFORMATION (date, time and time zone) + KCapsBinaryChoiceGetInkey =0x08, //< To be used only in v1.0 API + KCapsGetInkey2 =0x08, //< v2.0 API only: GET INKEY supported. + KCapsSetUpIdleModeText =0x10, //< Proactive UICC: SET UP IDLE MODE TEXT + KCapsRunAtCmd =0x20, //< RUN AT COMMAND (i.e. class "b" is supported) + KCaps2ndAlphaIdSetUpCall =0x40, //< To be used only in v1.0 API + KCapsSetUpCall2 =0x40, //< v2.0 API only: SET UP CALL supported. + KCaps2ndCapabilityConfigParam =0x80, //< To be used only in v1.0 API + KCapsCCByUSim6 =0x80 //< v2.0 API only: Call Control supported. + }; + + enum TSatProfileByte9 + /** Flags for byte 9 of the terminal profile. + @see RSat::TSatProfileV1 */ + { + KCapsSustainedDisplayText =0x01, //< To be used only in v1.0 API + KCapsDisplayText3 =0x01, //< v2.0 API only: DISPLAY TEXT supported. + KCapsSendDTMFCmd =0x02, //< Proactive UICC: SEND DTMF + KCapsProvideLocalInfoBcchCoding =0x04, //< To be used only in v1.0 API + KCapsProvideLocalnfoNmr2 =0x04, //< v2.0 API only: Proactive UICC: PROVIDE LOCAL INFORMATION (NMR) supported. + KCapsProvideLocalInfoLanguage =0x08, //< Proactive UICC: PROVIDE LOCAL INFORMATION (language) + KCapsProvideLocalInfoTimingAdv =0x10, //< USAT only: Proactive UICC: PROVIDE LOCAL INFORMATION (Timing Advance) + KCapsLanguageNotification =0x20, //< Proactive UICC: LANGUAGE NOTIFICATION + KCapsLaunchBrowser =0x40, //< Proactive UICC: LAUNCH BROWSER + KCapsProvideLocalInfoAccTech =0x80 //< Proactive UICC: PROVIDE LOCAL INFORMATION (Access Technology) + }; + + enum TSatProfileByte10 + /** Flags for byte 10 of the terminal profile. + @see RSat::TSatProfileV2 */ + { + KCapsSoftKeySelectItem =0x10, //< Soft keys support for SELECT ITEM + KCapsSoftKeySetUpMenu =0x20 //< Soft Keys support for SET UP MENU + }; + + enum TSatProfileByte12 + /** Flags for byte 12 of the terminal profile. + @see RSat::TSatProfileV2 */ + { + KCapsOpenChannel =0x01, //< Proactive UICC: OPEN CHANNEL + KCapsCloseChannel =0x02, //< Proactive UICC: CLOSE CHANNEL + KCapsReceiveData =0x04, //< Proactive UICC: RECEIVE DATA + KCapsSendData =0x08, //< Proactive UICC: SEND DATA + KCapsGetChannelStatus =0x10, //< Proactive UICC: GET CHANNEL STATUS + KCapsServiceSearch =0x20, //< Proactive UICC: SERVICE SEARCH + KCapsGetServiceInfo =0x40, //< Proactive UICC: GET SERVICE INFORMATION + KCapsDeclareService =0x80 //< Proactive UICC: DECLARE SERVICE + }; + + enum TSatProfileByte13 + /** Flags for byte 13 of the terminal profile. + @see RSat::TSatProfileV2 */ + { + KCapsCsdSupportByMe =0x01, //< CSD supported by phone + KCapsGprsSupportByMe =0x02, //< GPRS supported by phone + KCapsBtSupportByMe =0x04, //< Bluetooth supported by phone + KCapsIrdaSupportByMe =0x08, //< IrDA supported by phone + KCapsRs232SupportByMe =0x10 //< RS232 supported by phone + }; + + enum TSatProfileByte14 + /** Flags for byte 14 of the terminal profile. + @see RSat::TSatProfileV2 */ + { + KCapsScreenSizingParams =0x80 //< Screen Sizing Parameters supported, as defined in bytes 14, 15 and 16. + }; + + enum TSatProfileByte15 + /** Flags for byte 15 of the terminal profile. + @see RSat::TSatProfileV2 */ + { + KCapsVariableSizeFonts =0x80 //< Variable size fonts Supported + }; + + enum TSatProfileByte16 + /** Flags for byte 16 of the terminal profile. + @see RSat::TSatProfileV2 */ + { + KCapsDisplayResize =0x01, //< Display can be resized + KCapsTextWrapping =0x02, //< Text Wrapping supported + KCapsTextScrolling =0x04, //< Text Scrolling supported + KCapsWidthReductionInMenu =0x80 //< Text Attributes supported. + }; + + enum TSatProfileByte17 + /** Flags for byte 17 of the terminal profile. + @see RSat::TSatProfileV2 */ + { + KCapsTcp =0x01, //< TCP, UICC in client mode + KCapsUdp =0x02, //< UDP, UICC in client mode + KCapsTcpServerMode =0x04 //< TCP, UICC in server mode + // Next four bits RFU, bit = 0 + // Last bit, reserved by 3GPP (HSDPA) + }; + + enum TSatProfileByte18 + /** Flags for byte 18 of the terminal profile. + @see RSat::TSatProfileV2 */ + { + KCapsDisplayTextVariableTimeout =0x01, //< Proactive UICC: DISPLAY TEXT (Variable Time out) + KCapsGetInkeyHelp =0x02, //< Proactive UICC: GET INKEY (help is supported while waiting for immediate response or variable timeout) + KCapsUsbSupportByMe =0x04, //< USB supported by phone. + KCapsGetInkeyVariableTimeout =0x08, //< PROACTIVE UICC: GET INKEY (Variable Timeout) + //< Bit 5 is reserved for ETSI SCP + KCapsCallControlOnGprs =0x20, //< Call Control on GPRS + KCapsProvideLocalInfoIMEISV =0x40, //< Proactive UICC: PROVIDE LOCAL INFORMATION (IMEISV, added in V6) + KCapsProvideLocalInfoSearchModeChange =0x80 //< Proactive UICC: PROVIDE LOCAL INFORMATION (Search Mode Change, added in V6) + }; + + // Byte 19 reserved for TIA/EIA-136-C facilities + // Byte 20 reserved for TIA/IS-820-A facilities + + enum TSatProfileByte21 + /** Flags for byte 21 of the terminal profile (extended browser capability). + @see RSat::TSatProfileV6 + */ + { + KCapsWML =0x01, //< WML Browser is supported by phone. + KCapsXHTML =0x02, //< XHTML Browser is supported by phone. + KCapsHTML =0x04, //< HTML Browser is supported by phone. + KCapsCHTML =0x08 //< CHTML Browser is supported by phone. + // The rest of the bits in this byte are RFU + }; + + enum TSatProfileByte22 + /** Flags for byte 22 of the terminal profile. + @see RSat::TSatProfileV6 + */ + { + KCapsProvideLocalInfoUTRAN =0x01, //< Reserved by 3GPP (UTRAN PS with extended params) + KCapsProvideLocalInfoBatteryState =0x02, //< Proactive UICC: PROVIDE LOCAL INFORMATION (battery state) + KCapsPlayThemedAndMelodyTone =0x04, //< Proactive UICC: PLAY TONE (themed and melody tones supported (compare this with 5th bit of byte 3) + KCapsSetUpCallMultimediaCall =0x08, //< Multimedia calls in SET UP CALL + KCapsRefreshGBA =0x10, //< Reserved by 3GPP (Toolkit-Initiated GBA) + KCapsRetrieveMultimediaMessage =0x20, //< Proactive UICC: Reserved by 3GPP (RETRIEVE MULTIMEDIA MESSAGE) + KCapsSubmitMultimediaMessage =0x40, //< Proactive UICC: Reserved by 3GPP (SUBMIT MULTIMEDIA MESSAGE) + KCapsDisplayMultimediaMesage =0x80 //< Proactive UICC: Reserved by 3GPP (DISPLAY MULTIMEDIA MESSAGE) + }; + + enum TSatProfileByte23 + /** Flags for byte 23 of the terminal profile. + @see RSat::TSatProfileV6 + */ + { + KCapsSetFrames =0x01, //< Proactive UICC: SET FRAMES + KCapsGetFramesStatus =0x02, //< Proactive UICC: GET FRAMES STATUS + KCapsMmsNotificationDownload =0x04, //< Reserved by 3GPP (MMS Notification Download) + //< Bits x and y RFU, bits = 0." where x and y are the bit numbers that are missing. + KCapsProvideLocalInfoMEID =0x20, //< Proactive UICC: PROVIDE LOCAL INFORMATION (MEID) + KCapsProvideLocalInfoNmrUTRAN =0x40, //< Reserved by 3GPP (Proactive UICC: PROVIDE LOCAL INFORMATION (NMR-UTRAN)) + KCapsUssdDataDownload =0x80 //< Reserved by 3GPP (USSD Data download and application mode) + }; + + enum TSatProfileByte24 + /** Bits for byte 24 of the terminal profile. + + The first four bits contain the maximum number of frames supported, including frames created + within existing frames. + + The remaining four bits are RFU + + @see RSat::TSatProfileV6 + */ + { + KCapsMaxNumFramesBit1 =0x01, + KCapsMaxNumFramesBit2 =0x02, + KCapsMaxNumFramesBit3 =0x04, + KCapsMaxNumFramesBit4 =0x08 + // The rest of the bits in this byte are RFU + }; + + enum TSatProfileByte25 + /** Flags for byte 25 of the terminal profile. + @see RSat::TSatProfileV6 + */ + { + KCapsBrowsingStatusEvent =0x01, //< Event: Browsing Status + KCapsMmsTransferStatusEvent =0x02, //< Event: MMS Transfer Status + KCapsFrameParametersChangeEvent =0x04 //< Event: Frame Parameters Changed + // The rest of the bits in this byte are RFU + }; + + // Bytes 26 and 27 reserved for release 7 and later features. + + + enum TSatProfileByte28 + /** Flags for byte 28 of the terminal profile. + @see RSat::TSatProfileV5 */ + { + KCapsTextAttributeAlignmentLeft =0x01, //< Text attribute alignment left supported. + KCapsTextAttributeAlignmentCentre =0x02, //< Text attribute alignment centre supported. + KCapsTextAttributeAlignmentRight =0x04, //< Text attribute alignment right supported. + KCapsTextAttributeFontSizeNormal =0x08, //< Text attribute font size normal supported. + KCapsTextAttributeFontSizeLarge =0x10, //< Text attribute font size large supported. + KCapsTextAttributeFontSizeSmall =0x20 //< Text attribute font size small supported. + //< Bits 7 and 8 RFU, bits = 0. + }; + + enum TSatProfileByte29 + /** Flags for byte 29 of the terminal profile. + @see RSat::TSatProfileV5 */ + { + KCapsTextAttributeStyleNormal =0x01, //< Text attribute style normal supported. + KCapsTextAttributeStyleBold =0x02, //< Text attribute style bold supported. + KCapsTextAttributeStyleItalic =0x04, //< Text attribute style italic supported. + KCapsTextAttributeStyleUnderline =0x08, //< Text attribute style underline supported. + KCapsTextAttributeStyleStrikethrough=0x10, //< Text attribute style strikethrough supported. + KCapsTextAttributeStyleForeground =0x20, //< Text attribute foreground colour supported. + KCapsTextAttributeStyleBackground =0x40 //< Text attribute background colour supported. + //< Bit 8 RFU, bit = 0. + }; + + class TSatProfileV1 : public TSatBase + /** + States the SAT facilities supported by the Client and/or the ME-side. + @see RSat::ClientSatProfileIndication() + @see RSat::GetMeSideSatProfile() + */ + { + public: + IMPORT_C TSatProfileV1(); + + TUint8 iSatProfileByte1; //< Byte 1 of the (U)SAT Profile; see RSat::TSatProfileByte1 + TUint8 iSatProfileByte2; //< Byte 2 of the (U)SAT Profile; see RSat::TSatProfileByte2 + TUint8 iSatProfileByte3; //< Byte 3 of the (U)SAT Profile; see RSat::TSatProfileByte3 + TUint8 iSatProfileByte4; //< Byte 4 of the (U)SAT Profile; see RSat::TSatProfileByte4 + TUint8 iSatProfileByte5; //< Byte 5 of the (U)SAT Profile; see RSat::TSatProfileByte5 + TUint8 iSatProfileByte6; //< Byte 6 of the (U)SAT Profile; see RSat::TSatProfileByte6 + TUint8 iSatProfileByte7; //< Byte 7 of the (U)SAT Profile; see RSat::TSatProfileByte7 + TUint8 iSatProfileByte8; //< Byte 8 of the (U)SAT Profile; see RSat::TSatProfileByte8 + TUint8 iSatProfileByte9; //< Byte 9 of the (U)SAT Profile; see RSat::TSatProfileByte9 + }; + + /** A packaged RSat::TSatProfileV1. */ + typedef TPckg TSatProfileV1Pckg; + + + class TSatProfileV2 : public TSatProfileV1 + /** + States the (U)SAT facilities supported by the Client and/or the ME-side + @see RSat::ClientSatProfileIndication() + @see RSat::GetMeSideSatProfile() + */ + { + public: + IMPORT_C TSatProfileV2(); + + TUint8 iSatProfileByte10; //< Byte 10 of the (U)SAT Profile; see RSat::TSatProfileByte10 + TUint8 iSatProfileByte11; //< Maximum number of soft keys available. 'FF' value is reserved for future use; see RSat::TSatProfileByte10 + TUint8 iSatProfileByte12; //< Byte 12 of the (U)SAT Profile; see RSat::TSatProfileByte12 + TUint8 iSatProfileByte13; //< Byte 13 of the (U)SAT Profile; see RSat::TSatProfileByte13 + TUint8 iNumOfChannels; //< Number of channels supported by the ME. Max value=7. Part of Byte 13. + TUint8 iSatProfileByte14; //< Byte 14 of the (U)SAT Profile; see RSat::TSatProfileByte14 + TUint8 iScreenHeight; //< Guaranteed number of characters supported down the phone's display without scrolling. Max value=31. Part of Byte 14. + TUint8 iSatProfileByte15; //< Byte 15 of the (U)SAT Profile; see RSat::TSatProfileByte15 + TUint8 iScreenWidth; //< Guaranteed number of characters supported across the phone's display without scrolling. Max value=127. Part of Byte 15. + TUint8 iSatProfileByte16; //< Byte 16 of the (U)SAT Profile; see RSat::TSatProfileByte16 + TUint8 iWidthReduction; //< Width reduction when in a menu. Max value=7. Part of byte 16. + TUint8 iSatProfileByte17; //< Byte 17 of the (U)SAT Profile; see RSat::TSatProfileByte17 + TUint8 iSatProfileByte18; //< Byte 18 of the (U)SAT Profile; see RSat::TSatProfileByte18 + TUint8 iTiaEiaProtoVersion; //< Protocol version as indicated in TIA/EIA 136-123 + }; + + /** A packaged RSat::TSatProfileV2. */ + typedef TPckg TSatProfileV2Pckg; + + class TSatProfileV5 : public TSatProfileV2 + /** + States the (U)SAT facilities supported by the Client and/or the ME-side + @see RSat::ClientSatProfileIndication() + @see RSat::GetMeSideSatProfile() + */ + { + public: + IMPORT_C TSatProfileV5(); + //< Byte 19 reserved for TIA/EIA-136 facilities + //< Byte 20 reserved for TIA/EIA/IS-820 facilities + //< Bytes 21 to 27 inclusive are reserved for release 6 and later features. + TUint8 iSatProfileByte28; //< Byte 28 of the (U)SAT Profile (used for text attributes); see RSat::TSatProfileByte28 + TUint8 iSatProfileByte29; //< Byte 29 of the (U)SAT Profile (used for text attributes); see RSat::TSatProfileByte29 + }; + + /** A packaged RSat::TSatProfileV5. */ + typedef TPckg TSatProfileV5Pckg; + + class TSatProfileV6 : public TSatProfileV5 + /** + States the (U)SAT facilities supported by the Client and/or the ME-side + @see RSat::ClientSatProfileIndication() + @see RSat::GetMeSideSatProfile() + */ + { + public: + IMPORT_C TSatProfileV6(); + + TUint8 iSatProfileByte21; //< Byte 21 of the (U)SAT Profile; see RSat::TSatProfileByte21 + TUint8 iSatProfileByte22; //< Byte 22 of the (U)SAT Profile; see RSat::TSatProfileByte22 + TUint8 iSatProfileByte23; //< Byte 23 of the (U)SAT Profile; see RSat::TSatProfileByte23 + TUint8 iSatProfileByte24; //< Byte 24 of the (U)SAT Profile; see RSat::TSatProfileByte24 + TUint8 iSatProfileByte25; //< Byte 25 of the (U)SAT Profile; see RSat::TSatProfileByte25 + }; + + /** A packaged RSat::TSatProfileV6. */ + typedef TPckg TSatProfileV6Pckg; + + IMPORT_C void GetMeSideSatProfile(TRequestStatus& aReqStatus,TDes8& aMeSimSatProfile) const; + IMPORT_C TInt ClientSatProfileIndication(const TDesC8& aClientSatProfile) const; + + // + // MENU SELECTION + // + /** Part of a MENU SELECTION envelope command in response to a + SET UP MENU proactive command. Indicates whether help is required + with the user's menu selection. + @see RSat::TMenuSelectionV1 */ + enum THelpRequest + { + EHelpRequestNotSet, //< Initialization value used within constructor(s). + EHelpRequested, //< The user/client has requested help. + EHelpNotRequested //< The user/client has not requested help. + }; + + class TMenuSelectionV1 : public TSatBase + /** + Part of a MENU SELECTION envelope command in response to a SET UP MENU + proactive command. When the user selects an item from the SET UP MENU + command's menu, send a RSat::TMenuSelectionV1 to the UICC with + RSat::MenuSelection(). + @see RSat::NotifySetUpMenuPCmd() + */ + { + public: + IMPORT_C TMenuSelectionV1(); + public: + /** Each menu item has ID. This field contains the ID of the item that the user selected. */ + TUint8 iItemId; + + /** This indicates that the user requested help with a menu item. */ + THelpRequest iHelp; + }; + + /** A packaged RSat::TMenuSelectionV1. */ + typedef TPckg TMenuSelectionV1Pckg; + + IMPORT_C void MenuSelection(TRequestStatus& aReqStatus, const TDesC8& aSelection) const; + + // + // CALL CONTROL + // + /** Describes the result of call control request, and hence the action required. + Used by RSat::TCallControlV1::GetCcGeneralResult() + and RSat::TCallControlV1::SetCcGeneralResult(). */ + enum TControlResult + { + /** Initialization value used within constructor(s). */ + EControlResultNotSet, + + /** The action has been allowed by the ICC with no + modification. However, the call control params might + contain an alpha identifier to be displayed to the + user; call RSat::TCallControlV1::GetAlphaId() to get the + alpha ID (a RSat::TAlphaId) and the alpha ID's validity + (an RSat::TAlphaIdValidity). */ + EAllowedNoModification, + + /** The action has not been allowed by the ICC. However, the call + control params might contain an alpha identifier to be displayed to the + user; call RSat::TCallControlV1::GetAlphaId() to get the alpha ID (a + RSat::TAlphaId) and the alpha ID's validity (an RSat::TAlphaIdValidity) + */ + ENotAllowed, + + /** The action has been allowed by the ICC with + modifications. The call control params contain + new modified params. + + It may also contain an alpha identifier to be displayed to the user; + call RSat::TCallControlV1::GetAlphaId() to get the alpha ID (a + RSat::TAlphaId) and the alpha ID's validity (an RSat::TAlphaIdValidity) + */ + EAllowedWithModifications + }; + + /** Describes the type of call control request. + Used by RSat::TCallControlV1::GetCallControlType(). */ + enum TCallControlType + { + ECcTypeNotSet, //< Initialization value used within constructor(s). + ECcAddress, //< Call control by SIM has transformed the original request into a new call set up. + ECcSsString, //< Call control by SIM has transformed the original request into a new SEND SS + ECcUssdString, //< Call control by SIM has transformed the original request into a new SEND USSD + ECcPDPParameters //< Call control by SIM has transformed the original request into a new OPEN CHANNEL + }; + + struct TCallSetUpParams + { + /** Capability configuration parameters + corresponding to the bearer capability 1 information + element of a mobile originating Set Up message. */ + TCcp iCcp1; + + /** Called party subaddress. */ + TSubAddress iSubAddress; + + /** Capability configuration parameters + corresponding to the bearer capability 2 information + element of a mobile originating Set Up message. */ + TCcp iCcp2; + + /** Address to use to set up the call. */ + TAddress iAddress; + }; + + /** Indicates the validity of the alpha ID from RSat::TCallControlV1::GetAlphaId(). */ + enum TAlphaIdValidity + { + EAlphaIdValidityNotSet, //< Value used with constructor + EValidAlpaId, //< Alpha ID is valid. It should be displayed + ENullAlphaId, //< Alpha ID is null. Display nothing. + ENoAlphaId //< Alpha ID is not present. The client can dislay whatever it likes. + }; + + /** Bearer Capability Repeat Indicator. + + @see RMobileCall::TBCRepeatIndicator + */ + enum TBCRepeatIndicator + { + EBCAlternateMode, //< The alternate mode of the Bearer Capability Repeat Indicator. + EBCSequentialMode, //< Depreciated. + EBCFallbackMode, //< Support of fallback - mode 1 preferred, mode 2 selected if setup of mode 1 fails. + EBCServiceChangeAndFallbackMode //< Service change and fallback - mode 1 alternate mode 2, mode 1 preferred + }; + + + class TCallControlV1 : public TSatBase + /** + Describes details of the action that + the client has to perform as a result of Call Control by UICC. + @see RSat::NotifyCallControlRequest() + */ + { + public: + IMPORT_C TCallControlV1(); + + IMPORT_C void SetCcGeneralResult (TControlResult aResult); + IMPORT_C void SetCallSetUpDetails (const TCallSetUpParams& aParams); + IMPORT_C void SetSendSsDetails (const TSsString& aString); + IMPORT_C void SetSendUssdDetails (const TUssdString& aString); + IMPORT_C void SetAlphaId (TAlphaIdValidity aValidity, TAlphaId& aAlphaId); + IMPORT_C void SetBCRepeatIndicator (const TBCRepeatIndicator& aBCRepeatIndicator); + + IMPORT_C void GetCallControlType (TCallControlType& aType) const; + IMPORT_C void GetCcGeneralResult (TControlResult& aResult) const; + IMPORT_C TInt GetCallSetUpDetails (TCallSetUpParams& aParams) const; + IMPORT_C TInt GetSendSsDetails (TSsString& aString) const; + IMPORT_C TInt GetSendUssdDetails (TUssdString& aString) const; + IMPORT_C void GetAlphaId (TAlphaIdValidity& aValidity,TAlphaId& aAlphaId) const; + IMPORT_C void GetBCRepeatIndicator (TBCRepeatIndicator& aBCRepeatIndicator) const; + protected: + TCallControlType iType; //< Call control type + TCcp iCcp1; //< Capability Configuration Parameters 1 + TSubAddress iSubAddress; //< Remote party sub address + TCcp iCcp2; //< Capability Configuration Parameters 2 + TUint8 iDcs; //< Data Coding Scheme + TTypeOfNumber iTypeOfNumber; //< TON + TNumberingPlan iNumberPlan; //< NPI + TBuf iBuf; //< Telephone number + TControlResult iResult; //< Result of the call control procedure + TAlphaIdValidity iValidity; //< Alpha identifier validity + TAlphaId iAlphaId; //< Alpha identifier that may contain text to display to the user. + TBCRepeatIndicator iBCRepeatIndicator; //< Bearer Capability Repeat Indicator + }; + + /** A packaged RSat::TCallControlV1. */ + typedef TPckg TCallControlV1Pckg; + + /** Specifies to the client who should perform the + modified action: the client side or the ME Side. */ + enum TActionOriginator + { + + /** Initialization value used within constructor(s) + or if the call control does not require a new action + to be performed. */ + EActionOriginatorNotSet, + + /** The client is responsible for performing the + action described in the call control class. */ + EClientOriginator, + + /** The ME Side is responsible for performing the + action described in the call control class. The + client side should still display any provided alpha + identifier. */ + EMeSideOriginator + }; + + class TCallControlV2 : public TCallControlV1 + /** + Describes details of the action that + the client has to perform as a result of Call Control by UICC. + Adds originator name and type. + */ + { + public: + IMPORT_C TCallControlV2(); + + IMPORT_C void SetCallName (const TName& aName); + IMPORT_C void SetActionOriginator (const TActionOriginator aOriginator); + + IMPORT_C void GetCallName (TName& aName) const; + IMPORT_C void GetActionOriginator (TActionOriginator& aOriginator) const; + protected: + TName iCallName; //< Name of action originator + TActionOriginator iNewActionOriginator; //< Who originated action + }; + + /** A packaged RSat::TCallControlV2. */ + typedef TPckg TCallControlV2Pckg; + + + class TCallControlV5 : public TCallControlV2 + /** + Adds PDP context activation parameters + */ + { + public: + IMPORT_C TCallControlV5(); + + IMPORT_C void SetPdpParameters (const TPdpParameters& aPdpParams); + IMPORT_C void GetPdpParameters (TPdpParameters& aPdpParams) const; + protected: + TPdpParameters iPdpParameters; //< buffer that holds PDP activation context parameters + }; + /** A packaged RSat::TCallControlV5. */ + typedef TPckg TCallControlV5Pckg; + + class TCallControlV6 : public TCallControlV5 + /** + Adds a parameter to allow the originator of the call to + be specified. + + Request for notification of a call control request using + RSat::NotifyCallControlRequest passing a packaged descriptor + of this class to the request. For future versions of Symbian + OS, check for updated versions of this class + (TSat::TCallControlVx etc.) + + @see RSat::TCallControlV6Pckg + */ + { + public: + IMPORT_C TCallControlV6(); + + IMPORT_C void SetCallParamOrigin (TCallParamOrigin aCallParamOrigin); + IMPORT_C void GetCallParamOrigin (TCallParamOrigin& aCallParamOrigin) const; + + protected: + /** + Holds the originator of the call. + + RSat::TCallParamOrigin contains the same enumerations as + RMobileCall::TCallParamOrigin. The TSY should use the + information received from the incoming call parameters + to populate this member. + */ + TCallParamOrigin iCallParamOrigin; + }; + + /** A packaged RSat::TCallControlV6. */ + typedef TPckg TCallControlV6Pckg; + + IMPORT_C void NotifyCallControlRequest(TRequestStatus& aReqStatus, TDes8& aCallControlDetails ) const; + + // + // MO SMS CONTROL + // + + /** + @see RSat::TChannelStatus + */ + enum {KChannelStatusMaxSize = 2}; + + /** The channel status returned in the channel status event envelope when + channel status event is part of the current event list (as set up in the + SET UP EVENT LIST proactive command). + + For UICC Server Mode, this event can indicate a state change in a + TCP connection, for example, TCP in LISTEN state, TCP in CLOSED state, TCP + in ESTABLISHED state (for details of specific encoding see ETSI TS 102 223 + release 7 onwards). + */ + typedef TBuf8 TChannelStatus; + + /** A packaged RSat::TChannelStatus. */ + typedef TPckg TChannelStatusPckg; + + + class TMoSmControlV1 : public TSatBase + /** + Describes details of the modified (by SIM MO SM Control) SMS. + */ + { + public: + IMPORT_C TMoSmControlV1(); + public: + TAddress iRpAddress; //< Rp address + TAddress iTpAddress; //< Tp address + TControlResult iResult; //< Call control procedure result + TAlphaId iAlphaId; //< Alpha identifier that may contain text to display to the user. + }; + + /** A packaged RSat::TMoSmControlV1. */ + typedef TPckg TMoSmControlV1Pckg; + + IMPORT_C void NotifyMoSmControlRequest(TRequestStatus& aReqStatus,TDes8& aMoSmDetails) const; + + // + // TIMER EXPIRATION + // + + enum TTimerId + /** Identifies a timer. It is part of both the TIMER MANAGEMENT proactive + command and the Timer Expiration envelope command. + @see RSat::TTimerExpirationV3 + @see RSat::TTimerMgmtV3 */ + { + KTimer1 =0x01, //< Timer 1 identifier. + KTimer2 =0x02, //< Timer 2 identifier. + KTimer3 =0x03, //< Timer 3 identifier. + KTimer4 =0x04, //< Timer 4 identifier. + KTimer5 =0x05, //< Timer 5 identifier. + KTimer6 =0x06, //< Timer 6 identifier. + KTimer7 =0x07, //< Timer 7 identifier. + KTimer8 =0x08, //< Timer 8 identifier. + KTimerNotFound =0xFF //< Timer does not exist. + }; + + class TTimerExpirationV3 : public TSatBase + /** + Contains details of an expired timer. + + @see RSat::NotifyTimerExpiration() + @see NotifyTimerMgmtPCmd() + */ + { + public: + IMPORT_C TTimerExpirationV3(); + public: + /** The ID of the timer that has expired. */ + TTimerId iTimerId; + + /** Timing difference between when you start the timer and when you + send notification that the timer has expired. This should be + as close as possible to the value of the timer given in the initial + TIMER MANAGEMENT command. */ + TDuration iTimerValue; + }; + + /** A packaged RSat::TTimerExpirationV3. */ + typedef TPckg TTimerExpirationV3Pckg; + + IMPORT_C void NotifyTimerExpiration(TRequestStatus& aReqStatus, TDes8& aTimerExpiration) const; + + // + // SMS-PP Data download + // + + class TSmsPpDownloadV3 : public TSatBase + /** + Point to Point data download over SMS. + */ + { + public: + IMPORT_C TSmsPpDownloadV3(); + public: + TDeviceId iDeviceId; //< Device Identification + TAddress iRpAddress; //< RP Originating Address of the Service Center to which the Client is proposing to send the Short Message. + TTpdu iPdu; //< Pdu to be sent + }; + + /** A packaged RSat::TSmsPpDownloadV3. */ + typedef TPckg TSmsPpDownloadV3Pckg; + + IMPORT_C void NotifySmsPpDownload(TRequestStatus& aReqStatus, TDes8& aSmsPpDownload) const; + + // + // Cell Broadcast (CB) data download + // + + /** + @see RSat::TCbPage + */ + enum {KCbPageSize = 88}; + /** + Cell broadcast (CB) page. + */ + typedef TBuf8 TCbPage; + + class TCbDownloadV3 : public TSatBase + /** + Cell Broadcast data download. + */ + { + public: + IMPORT_C TCbDownloadV3(); + public: + TDeviceId iDeviceId; //< Device Identification + TCbPage iPdu; //< Pdu of the Cell Broadcast + }; + + /** A packaged RSat::TCbDownloadV3. */ + typedef TPckg TCbDownloadV3Pckg; + + IMPORT_C void NotifyCbDownload(TRequestStatus& aReqStatus, TDes8& aCbDownload) const; + + + // + // EVENT DOWNLOAD + // + + class TEventDownloadBaseV2 : public TSatBase + /** + + Base class for the Event Download envelope commands. Use when no additional + information is passed for the event, eg. User Activity event. + + @see RSat::EventDownload() + @see RSat::NotifySetUpEventListPCmd() + */ + { + public: + IMPORT_C TEventDownloadBaseV2(); + public: + /** Specifies whether the event has any associated data. Do not set + this yourself - it is set automatically in the constructor of this class and any + derived classes. */ + TBool iDataAvailable; + }; + + /** A packaged RSat::TEventDownloadBaseV2. */ + typedef TPckg TEventDownloadBaseV2Pckg; + + enum TEventList + /** These flags form the list of events in a SET UP EVENT LIST + proactive command. They are also used in Event Download envelope commands + to identify the event that you are reporting to the UICC. + + @see RSat::NotifySetUpEventListPCmd() + @see RSat::EventDownload() + */ + { + KMTCall =0x00001, //< MT call + KCallConnected =0x00002, //< Call connected + KCallDisconnected =0x00004, //< Call disconnected + KLocationStatus =0x00008, //< Location status + KUserActivity =0x00010, //< User activity + KIdleScreenAvailable =0x00020, //< Idle screen available + KCardReaderStatus =0x00040, //< Card reader status + KLanguageSelection =0x00080, //< Language selection + KBrowserTermination =0x00100, //< Browser termination + KDataAvailable =0x00200, //< Data available + KChannelStatus =0x00400, //< Channel status + KAccessTechnologyChange =0x00800, //< Access Technology Change + KDisplayParamsChanges =0x01000, //< Display parameters changed + KLocalConnection =0x02000, //< Local connection + KNetworkSearchModeChange =0x04000, //< Network Search Mode Change + KBrowsingStatusChange =0x08000, //< Browsing Status Change + KFramesInformationChange =0x10000 //< Frames Information Change + }; + + class TCardReaderStatusEventV2 : public TEventDownloadBaseV2 + /** + To inform the UICC that a "Card Reader Status" occurred, call + RSat::EventDownload(), passing it the new status in a + RSat::TCardReaderStatusEventV2Pckg, a packaged + RSat::TCardReaderStatusEventV2. + + @see RSat::NotifySetUpEventListPCmd() + @see RSat::EventDownload() + */ + { + public: + IMPORT_C TCardReaderStatusEventV2(); + public: + TUint8 iCardReaderStatus; //< The "Card Reader Status" object defined in ETSI TS 102 223's object definitions. + }; + + /** A packaged RSat::TCardReaderStatusEventV2. */ + typedef TPckg TCardReaderStatusEventV2Pckg; + + + class TLanguageSelectionEventV2 : public TEventDownloadBaseV2 + /** + To inform the UICC that a "Language Selection Event" occurred, call + RSat::EventDownload(), passing it the new language in a + RSat::TLanguageSelectionEventV2Pckg, a packaged + RSat::TLanguageSelectionEventV2 + + @see RSat::NotifySetUpEventListPCmd() + @see RSat::EventDownload() + */ + { + public: + IMPORT_C TLanguageSelectionEventV2(); + public: + + /** Currently used language by UICC. + + Consists of 2 bytes. Each language code is a pair of + alpha numeric characters, defined in ISO 639. Each + alpha numeric character is coded on one byte using + the SMS default 7-bit coded alphabet as defined in + ISO 639 (1988): "Code for the representation of + names of languages". */ + TUint16 iLanguage; + }; + + /** A packaged RSat::TLanguageSelectionEventV2. */ + typedef TPckg TLanguageSelectionEventV2Pckg; + + enum TBrowserTerminationCause + /** Describes the reason that the browser terminated. This for use with RSat::TBrowserTerminationEventV2. */ + { + EUnknownCause, //< The browser termination cause is unknown. + EUserTermination, //< The browser was terminated by the user. + EErrorTermination //< The browser was terminated by an error. + }; + + + class TBrowserTerminationEventV2 : public TEventDownloadBaseV2 + /** + To inform the UICC that a "Browser Termination Event" occurred, call + RSat::EventDownload(), passing it the cause of termination in a + RSat::TBrowserTerminationEventV2Pckg, a packaged + RSat::TBrowserTerminationEventV2. This contains a + RSat::TBrowserTerminationCause that describes the reason that the browser + terminated. + + @see RSat::NotifySetUpEventListPCmd() + @see RSat::EventDownload() + */ + { + public: + IMPORT_C TBrowserTerminationEventV2(); + public: + TBrowserTerminationCause iCause; //< Cause of browser termination + }; + + /** A packaged RSat::TBrowserTerminationEventV2. */ + typedef TPckg TBrowserTerminationEventV2Pckg; + + + class TDataAvailableEventV2 : public TEventDownloadBaseV2 + /** + To inform the UICC that a "Data Available Event" occurred, call + RSat::EventDownload(), passing it the new status and data length in a + RSat::TDataAvailableEventV2Pckg, a packaged RSat::TDataAvailableEventV2. + Fill in the status of the channel that received the data and the length + of data received. + + @see RSat::NotifySetUpEventListPCmd() + @see RSat::EventDownload() + */ + { + public: + IMPORT_C TDataAvailableEventV2(); + public: + TChannelStatus iStatus; //< Status of the channel. + TInt8 iLength; //< Channel data length. Return 0xFF if more than 255 bytes are available. + }; + + /** A packaged RSat::TDataAvailableEventV2. */ + typedef TPckg TDataAvailableEventV2Pckg; + + + class TChannelStatusEventV2 : public TEventDownloadBaseV2 + /** + To inform the UICC that a "Channel Status Event" occurred, call + RSat::EventDownload(), passing it the new status in a + RSat::TChannelStatusEventV2Pckg, a packaged RSat::TChannelStatusEventV2. + Fill in the new status of the channel. + + @see RSat::NotifySetUpEventListPCmd() + @see RSat::EventDownload() + */ + { + public: + IMPORT_C TChannelStatusEventV2(); + public: + TChannelStatus iStatus; //< Status of the channel + }; + + /** A packaged RSat::TChannelStatusEventV2. */ + typedef TPckg TChannelStatusEventV2Pckg; + + + class TDisplayParamsEventV2 : public TEventDownloadBaseV2 + /** + To inform the UICC that a "Display Parameters Changed Event" occurred, call + RSat::EventDownload(), passing it the new parameters in a + RSat::TDisplayParamsEventV2Pckg, a packaged RSat::TDisplayParamsEventV2. + Fill in the new display parameters. + + @see RSat::NotifySetUpEventListPCmd() + @see RSat::EventDownload() + */ + { + public: + IMPORT_C TDisplayParamsEventV2(); + public: + TUint8 iSatProfileByte14; //< Byte 14 of the (U)SAT profile + TUint8 iScreenHeight; //< Screen height + TUint8 iSatProfileByte15; //< Byte 15 of the (U)SAT profile + TUint8 iScreenWidth; //< Screen width + TUint8 iSatProfileByte16; //< Byte 16 of the (U)SAT profile + TUint8 iWidthReduction; //< Width reduction + }; + + /** A packaged RSat::TDisplayParamsEventV2. */ + typedef TPckg TDisplayParamsEventV2Pckg; + + enum TLocalBearerId + /** Identifies the physical method of transferring data. */ + { + ELocalBearerIdNotSet, //< Initialisation value. + ELocalBearerIdNotPresent, //< Bearer not present. + ETechnologyIndependent, //< Technology independent. + ELocalBearerBT, //< Currently only valid if the local bearer ID is Bluetooth. + ELocalBearerIrda, //< IrDA (infra-red). + ELocalBearerRs232, //< RS232 (serial). + ELocalBearerUsb //< USB. + }; + + /** + @see RSat::TServiceRecord + */ + enum {KServiceRecordMaxSize=244}; + typedef TBuf8 TServiceRecord; + + /** Service record information. */ + struct TServiceRecordInfo + { + TLocalBearerId iBearerId; //< Bearer Identifier + TUint8 iServiceId; //< Service Identifier + TServiceRecord iRecord; //< Service Record + }; + + /** The coding of the remote entity's address. + @see RSat::TRemoteEntityAddress */ + enum TRemoteAddressCoding + { + ECodingNotSet, //< Initialisation value. + E48BitAddress //< 48 bit address. + }; + + /** + @see RSat::TRemoteAddress + */ + enum {KRemoteAddressMaxSize=237}; + + /** Descriptor containing a remote entity's address. + Maximum size is 237. + @see RSat::TRemoteEntityAddress */ + typedef TBuf8 TRemoteAddress; + + /** Remote entity address for local connections. It has two uses: + + - An OPEN CHANNEL proactive command requests that you open a channel. The + command specifies the type of channel. If it requests a local connection + then the command will contain a TRemoteEntityAddress that describes the + connection's remote enitity; see RSat::TOpenLocalLinksChannelV2. + + - Also, when you inform the UICC that a local connection has been created, + tell the UICC about the connections remote entity in a TRemoteEntityAddress; + see RSat::TLocalConnectionEventV2. + */ + struct TRemoteEntityAddress + { + TRemoteAddressCoding iCoding; //< The coding of the remote entity's address. + TRemoteAddress iAddress; //< Descriptor containing the remote entity's address. + }; + + + class TLocalConnectionEventV2 : public TEventDownloadBaseV2 + /** + To inform the UICC that a "Local Connection Event" occurred, call + RSat::EventDownload(), passing it the new connection information in a + RSat::TLocalConnectionEventV2Pckg, a packaged + RSat::TLocalConnectionEventV2. Fill in the address of the new device. + + @see RSat::NotifySetUpEventListPCmd() + @see RSat::EventDownload() + */ + { + public: + IMPORT_C TLocalConnectionEventV2(); + public: + TServiceRecordInfo iRecord; //< Service record + TRemoteEntityAddress iAddress; //< Remote entity address + }; + + /** A packaged RSat::TLocalConnectionEventV2. */ + typedef TPckg TLocalConnectionEventV2Pckg; + + enum TNetworkSearchMode + { + EUnknown, //< Unknown Network type + EManual, //< Manual Network mode + EAutomatic //< Automatic Network Mode + }; + + class TNetworkSearchModeChangeEventV6 : public TEventDownloadBaseV2 + /** + To inform the UICC that a "Network Search Mode ChangeEvent" occurred, call + RSat::EventDownload(), passing it the new NetworkSearchMode Change information in a + RSat::TNetworkSearchModeChangeEventV6Pckg, a packaged + RSat::TNetworkSearchModeChangeEventV6. Fill in the details of type of Network. + + @see RSat::NotifySetUpEventListPCmd() + @see RSat::EventDownload() + */ + { + public: + IMPORT_C TNetworkSearchModeChangeEventV6(); + public: + TNetworkSearchMode iNetworkSearchMode; //< Network type selection + }; + + /** A packaged RSat::TNetworkSearchModeChangeEventV6. */ + typedef TPckg TNetworkSearchModeChangeEventV6Pckg; + + class TBrowsingStatusEventV6 : public TEventDownloadBaseV2 + /** + To inform the UICC that a "Browsing Status Event" occurred, call + RSat::EventDownload(), passing it the Browsing Status information in a + RSat::TBrowsingStatusEventV6Pckg, a packaged + RSat::TBrowsingStatusEventV6. Fill in the Browsing status. + + @see RSat::NotifySetUpEventListPCmd() + @see RSat::EventDownload() + */ + { + public: + IMPORT_C TBrowsingStatusEventV6(); + public: + TUint8 iBrowserStatus; //< Browsing status information coded as per 3GPP 31.111 + }; + + /** A packaged RSat::TBrowsingStatusEventV6. */ + typedef TPckg TBrowsingStatusEventV6Pckg; + + /** + @see RSat::TFrameList + */ + enum {KMaxFrameNumber = 254}; + + /** + @see RSat::TFramesInformation + */ + typedef TBuf8 TFrameList; + + /** + This structure contains the "Frames information". + refer to ETSI TS 102 223 for more details. + @see RSat::TFrameList + */ + struct TFramesInformation + { + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + TFrameList iFrameList; //< It holds the frame information. + }; + + class TFramesInformationChangedEventV6 : public TEventDownloadBaseV2 + /** + To inform the UICC that a "Frames Information Change" occurred, call + RSat::EventDownload(), passing it the Frames information in a + RSat::TFramesInformationChangedEventV6Pckg, a packaged + RSat::TFramesInformationChangedEventV6. Fill in the frames information. + @see RSat::TFramesInformation + @see RSat::NotifySetUpEventListPCmd() + @see RSat::EventDownload() + */ + { + public: + IMPORT_C TFramesInformationChangedEventV6(); + public: + TFramesInformation iFramesInformation; + }; + + /** A packaged RSat::TBrowsingStatusEventV6. */ + typedef TPckg TFramesInformationChangedEventV6Pckg; + + IMPORT_C void EventDownload(TRequestStatus& aReqStatus, TEventList aSingleEvent, const TDesC8& aEventInfo) const; + + // + // DISPLAY TEXT + // + enum TClearScreenTrigger + /** Part of a DISPLAY TEXT proactive command. After the text has been + displayed, this determines the events that clear the text or icon. + @see RSat::TDisplayTextV1 + @see RSat::NotifyDisplayTextPCmd() + @see RSat::TDisplayMultimediaMessageV6 + @see RSat::NotifyDisplayMultimediaMsgPCmd()*/ + { + EClearScreenTriggerNotSet, //< Clear screen trigger not set + + /** Clear screen after a specified delay. The UICC may specify the + delay in RSat::TDisplayTextV2::iDuration. Otherwise the delay is at + your discretion. */ + EClearAfterDelay, + + EUserClear //< Clear screen on user action. + }; + + enum TDisplayPriority + /** Part of a DISPLAY TEXT proactive command. This determines the text's priority. + @see RSat::TDisplayTextV1 + @see RSat::NotifyDisplayTextPCmd() + @see RSat::TDisplayMultimediaMessageV6 + @see RSat::NotifyDisplayMultimediaMsgPCmd()*/ + { + EDisplayPriorityNotSet, //< Display priority not set + ENormalPriority, //< Normal display priority + EHighPriority //< High display priority + }; + + enum TImmediateRsp + /** Part of a DISPLAY TEXT proactive command. This determines your response to the UICC. + @see RSat::TDisplayTextV1 + @see RSat::NotifyDisplayTextPCmd() + @see RSat::TDisplayMultimediaMessageV6 + @see RSat::NotifyDisplayMultimediaMsgPCmd()*/ + { + EImmediateRspNotSet, //< Immediate response param not set + EImmediateRsp, //< Immediate response requested + ENoImmediateRsp //< Immediate response not requested + }; + + /** + @see RSat::TTextToDisplay + */ + enum {KTextToDisplayMaxSize=242}; + + /** Part of a DISPLAY TEXT proactive command. This contains the text to display. + @see RSat::TDisplayTextV1 + @see RSat::NotifyDisplayTextPCmd() + @see RSat::NotifyDisplayMultimediaMsgPCmd()*/ + typedef TBuf TTextToDisplay; + + class TDisplayTextV1 : public TSatPCmdBase + /** + Contains a DISPLAY TEXT proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifyDisplayTextPCmd() for more information about + the command. + + Request notification for DISPLAY TEXT with RSat::NotifyDisplayTextPCmd(), + passing it an object in which to store the command when it arrives. Pass + RSat::TDisplayTextV1Pckg (a packaged RSat::TDisplayTextV1) when using v6.1 + and v7.0 of Symbian OS. For later versions of Symbian OS, use + RSat::TDisplayTextV2, RSat::TDisplayV3 etc. + + @see RSat::TDisplayTextV2 + @see RSat::TDisplayTextV1Pckg + @see RSat::NotifyDisplayTextPCmd() + */ + { + public: + IMPORT_C TDisplayTextV1(); + public: + TDisplayPriority iPriority; //< Priority of icon/text + + /** Determines whether the text should be removed from the screen + after a delay or after user action. */ + TClearScreenTrigger iClearScreenTrigger; + TTextToDisplay iText; //< Text to display + TIconId iIconId; //< Icon to display + + /** Determines whether you should respond to the UICC straight away or + when the text/icon is removed from the screen. */ + TImmediateRsp iImmediateRsp; + }; + + /** A packaged RSat::TDisplayTextV1. */ + typedef TPckg TDisplayTextV1Pckg; + + + class TDisplayTextV2 : public TDisplayTextV1 + /** + Contains a DISPLAY TEXT proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifyDisplayTextPCmd() for more information about + the command. + + Request notification for DISPLAY TEXT with RSat::NotifyDisplayTextPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TDisplayText" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TDisplayTextV2Pckg, a packaged RSat::TDisplayTextV2. + Use RSat::TDisplayTextV1 with older versions of Symbian OS. For later + versions of Symbian OS, check for an updated API (RSat::TDisplayTextV3 + etc). + + @see RSat::TDisplayTextV1 + @see RSat::TDisplayTextV2Pckg + @see RSat::NotifyDisplayTextPCmd() + */ + { + public: + IMPORT_C TDisplayTextV2(); + public: + + /** Required duration to display the text. Only applicable if + RSat::TDisplayTextV1::iClearScreenTrigger is set to + RSat::EClearAfterDelay. */ + TDuration iDuration; + }; + + /** A packaged RSat::TDisplayTextV2. */ + typedef TPckg TDisplayTextV2Pckg; + + class TDisplayTextV5 : public TDisplayTextV2 + /** + Contains a DISPLAY TEXT proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifyDisplayTextPCmd() for more information about + the command. + + Request notification for DISPLAY TEXT with RSat::NotifyDisplayTextPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TDisplayText" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TDisplayTextV2Pckg, a packaged RSat::TDisplayTextV2. + For Symbian OS 9.2, use RSat::TDisplayTextV5Pckg, a packaged + RSat::TDisplayTextV5. For later versions of + Symbian OS, check for an updated API (RSat::TDisplayTextV6 etc). + Use RSat::TDisplayTextV1 with older versions of Symbian OS. + + @see RSat::TDisplayTextV1 + @see RSat::TDisplayTextV2 + @see RSat::TDisplayTextV5Pckg + @see RSat::NotifyDisplayTextPCmd() + */ + { + public: + IMPORT_C TDisplayTextV5(); + + public: + /** Contains formatting information to be applied when + RSat::TDisplayTextV1::iText is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TDisplayTextV5. */ + typedef TPckg TDisplayTextV5Pckg; + + class TDisplayTextV6 : public TDisplayTextV5 + /** + Contains a DISPLAY TEXT proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifyDisplayTextPCmd() for more information about + the command. + + Request notification for DISPLAY TEXT with RSat::NotifyDisplayTextPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TDisplayText" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TDisplayTextV2Pckg, a packaged RSat::TDisplayTextV2. + For Symbian OS 9.2, use RSat::TDisplayTextV5Pckg, a packaged + RSat::TDisplayTextV5.For Symbian OS 9.4, use RSat::TDisplayTextV6Pckg, a packaged + RSat::TDisplayTextV6. For later versions of + Symbian OS, check for an updated API (RSat::TDisplayTextV7 etc). + + @see RSat::TDisplayTextV1 + @see RSat::TDisplayTextV2 + @see RSat::TDisplayTextV5 + @see RSat::TDisplayTextV6Pckg + @see RSat::NotifyDisplayTextPCmd() + */ + { + public: + IMPORT_C TDisplayTextV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TDisplayTextV6. */ + typedef TPckg TDisplayTextV6Pckg; + + IMPORT_C void NotifyDisplayTextPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TDisplayTextRspV1 : public TSatPCmdBase + /** + Contains your response to a DISPLAY TEXT proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyDisplayTextPCmd() for more information about + the command. + + For Symbian OS versions up to and including v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TDisplayTextRspV1Pckg (a packaged + TDisplayTextRspV1). For later versions of Symbian OS, check for an updated + API (RSat::TDisplayTextRspV2 etc). + + @see RSat::NotifyDisplayTextPCmd() + */ + { + public: + IMPORT_C TDisplayTextRspV1(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If the value in iGeneralResult does not require + any information then leave this field empty.*/ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TDisplayTextRspV1. */ + typedef TPckg TDisplayTextRspV1Pckg; + + // + //GET INKEY + // + /** Part of the GET INKEY proactive command. + This tells you what response to get from the user. + @see RSat::TGetInkeyV1 + @see RSat::NotifyGetInkeyPCmd()*/ + enum TGetInkeyRspFormat + { + EGetInkeyRspFormatNotSet, //< GET INKEY response format not set. + EDigitOnly, //< Get a digit (0-9, *, #, and +) from the user. + ECharSmsDefaultAlphabet, //< Get a character from the SMS default alphabet from the user. + ECharUcs2Alphabet, //< Get a character from the UCS2 alphabet from the user. + EYesNo //< Get a Yes or No decision from the user. + }; + + enum {KGetInkeyTextMaxSize=242}; //< @see RSat::TGetInkeyText + + /** Part of the GET INKEY proactive command. Contains the text to display + to the user before getting a response. Maximum length is 242 characters. + @see RSat::TGetInkeyV1 + @see RSat::NotifyGetInkeyPCmd()*/ + typedef TBuf TGetInkeyText; + + class TGetInkeyV1 : public TSatPCmdBase + /** + Contains a GET INKEY proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifyGetInkeyPCmd() for more information about + the command. + + Request notification for GET INKEY with RSat::NotifyGetInkeyPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TGetInkey" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TGetInkeyV2Pckg, a packaged RSat::TGetInkeyV2. + Use RSat::TGetInkeyV1 with older versions of Symbian OS. For later + versions of Symbian OS, check for an updated API (RSat::TGetInkeyV3 + etc). + + @see RSat::TGetInkeyV2 + @see RSat::TGetInkeyV1Pckg + @see RSat::NotifyGetInkeyPCmd() + */ + { + public: + IMPORT_C TGetInkeyV1(); + public: + /** Response required. */ + TGetInkeyRspFormat iRspFormat; + + /** Text to display. */ + TGetInkeyText iText; + + /** Icon to display. */ + TIconId iIconId; + + /** Determines whether help is available. */ + THelp iHelp; + }; + + /** A packaged RSat::TGetInkeyV1. */ + typedef TPckg TGetInkeyV1Pckg; + + enum TGetInkeyRspMode + /** Part of the GET INKEY proactive command. Determines how you get the + response from the user. + @see RSat::TGetInkeyV1 + @see RSat::NotifyGetInkeyPCmd()*/ + { + EGetInkeyRspModeNotSet, //< Initialisation value. + + /** Display character that the user chooses. You may allow the user to + alter and/or confirm their choice before passing the character back to + the UICC. */ + EUserRspDisplayed, + + /** An immediate response is requested. The response must be a digit (0- + 9, *, #, and +). Do not display the digit, and do not allow the user to + alter or confirm their choice before returning the digit to the UICC. */ + EImmediateDigitRsp + }; + + + class TGetInkeyV2 : public TGetInkeyV1 + /** + Contains a GET INKEY proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifyGetInkeyPCmd() for more information about + the command. + + Request notification for GET INKEY with RSat::NotifyGetInkeyPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TGetInkey" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TGetInkeyV2Pckg, a packaged RSat::TGetInkeyV2. + Use RSat::TGetInkeyV1 with older versions of Symbian OS. For later + versions of Symbian OS, check for an updated API (RSat::TGetInkeyV3 + etc). + + @see RSat::TGetInkeyV2 + @see RSat::TGetInkeyV2Pckg + @see RSat::NotifyGetInkeyPCmd() + */ + { + public: + IMPORT_C TGetInkeyV2(); + public: + /** Wait for this length of time for a response from the user. + ETSI TS 102 223 describes what to do when the time expires. */ + TDuration iDuration; + + /** Determines whether you let the user alter/confirm their choice of character. */ + TGetInkeyRspMode iMode; + }; + + /** A packaged RSat::TGetInkeyV2. */ + typedef TPckg TGetInkeyV2Pckg; + + class TGetInkeyV5 : public TGetInkeyV2 + /** + Contains a GET INKEY proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifyGetInkeyPCmd() for more information about + the command. + + Request notification for GET INKEY with RSat::NotifyGetInkeyPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TGetInkey" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TGetInkeyV2Pckg, a packaged RSat::TGetInkeyV2. + Use RSat::TGetInkeyV1 with older versions of Symbian OS. + For Symbian OS 9.2, use RSat::TGetInkeyV5Pckg. + For later versions of Symbian OS, check for an updated API (RSat::TGetInkeyV6 etc). + + @see RSat::TGetInkeyV1 + @see RSat::TGetInkeyV2 + @see RSat::TGetInkeyV5Pckg + @see RSat::NotifyGetInkeyPCmd() + */ + { + public: + IMPORT_C TGetInkeyV5(); + + public: + /** Contains formatting information to be applied when + RSat::TGetInkeyV1::iText is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TGetInkeyV5. */ + typedef TPckg TGetInkeyV5Pckg; + + class TGetInkeyV6 : public TGetInkeyV5 + /** + Contains a GET INKEY proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifyGetInkeyPCmd() for more information about + the command. + + Request notification for GET INKEY with RSat::NotifyGetInkeyPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TGetInkey" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TGetInkeyV2Pckg, a packaged RSat::TGetInkeyV2. + Use RSat::TGetInkeyV1 with older versions of Symbian OS. + For Symbian OS 9.2, use RSat::TGetInkeyV5Pckg. + For Symbian OS 9.4 and later, use RSat::TGetInkeyV6Pckg. + For later versions of Symbian OS, check for an updated API (RSat::TGetInkeyV7 etc). + + @see RSat::TGetInkeyV1 + @see RSat::TGetInkeyV2 + @see RSat::TGetInkeyV5 + @see RSat::TGetInkeyV6Pckg + @see RSat::NotifyGetInkeyPCmd() + */ + { + public: + IMPORT_C TGetInkeyV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TGetInkeyV5. */ + typedef TPckg TGetInkeyV6Pckg; + + IMPORT_C void NotifyGetInkeyPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TGetInkeyRspV1 : public TSatPCmdBase + /** + Contains your response to a GET INKEY proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyGetInkeyPCmd() for more information about + the command. + + Return the key press in iAdditionalInfo, plus the other information as + indicated. + + For Symbian OS v6.1 or v7.0 pass RSat::TerminalRsp() a + RSat::TGetInkeyRspV1Pckg (a packaged TGetInkeyRspV1). For versions up to + and including v8.1a and v8.1b use RSat::TGetInkeyRspV2Pckg (a packaged + TGetInkeyRspV2). For later versions of Symbian OS, check for an updated + API (RSat::TGetInkeyRspV3 etc). + + @see RSat::TGetInkeyRspV2 + @see RSat::NotifyGetInkeyPCmd() + */ + { + public: + IMPORT_C TGetInkeyRspV1(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** Set to RSat::KTextString to return a key press. Some error values + of iGeneralResult require additional information, in which case set + this to RSat::KMeProblem. Otherwise set to RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** The format of the key press, as given in + RSat::TGetInkeyV1::iRspFormat. */ + TGetInkeyRspFormat iRspFormat; + + /** The key press. */ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TGetInkeyRspV1. */ + typedef TPckg TGetInkeyRspV1Pckg; + + + class TGetInkeyRspV2 : public TGetInkeyRspV1 + /** + Contains your response to a GET INKEY proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyGetInkeyPCmd() for more information about + the command. + + Return the values as described in RSat::TGetInkeyRspV1, plus the total + display duration. + + For Symbian OS v6.1 or v7.0 pass RSat::TerminalRsp() a + RSat::TGetInkeyRspV1Pckg (a packaged TGetInkeyRspV1). For versions up to + and including v8.1a and v8.1b use RSat::TGetInkeyRspV2Pckg (a packaged + TGetInkeyRspV2). For later versions of Symbian OS, check for an updated + API (RSat::TGetInkeyRspV3 etc). + + @see RSat::TGetInkeyRspV1 + @see RSat::NotifyGetInkeyPCmd() + */ + { + public: + IMPORT_C TGetInkeyRspV2(); + public: + TDuration iDuration; //< Total display duration. + }; + + /** A packaged RSat::TGetInkeyRspV2. */ + typedef TPckg TGetInkeyRspV2Pckg; + + // + //GET INPUT + // + struct TRspLength + /** Part of the GET INPUT proactive command. + Determines the maximum and minimum length of string you return to the UICC. + @see RSat::TGetInputV1 + @see RSat::TGetInputV5 + @see RSat::NotifyGetInputPCmd()*/ + { + TUint8 iMinRspLength; //< Minimum length of string you return to the UICC. + TUint8 iMaxRspLength; //< Maximum length of string you return to the UICC. + }; + + enum TInputDisplayOption + /** Part of the GET INPUT proactive command. + Deetermine whether you display the user's string while they are entering it. + @see RSat::TGetInputV1 + @see RSat::TGetInputV5 + @see RSat::NotifyGetInputPCmd()*/ + { + EInputDisplayOptionNotSet, //< Value used in constructor. + EDisplayUserInput, //< Display user's input while they type. + EHideUserInput //< Hide user's input while they type. + }; + + enum TGetInputRspFormat + /** Part of the GET INPUT proactive command. + Determines the format of the string returned to the UICC. + @see RSat::TGetInputV1 + @see RSat::TGetInputV5 + @see RSat::NotifyGetInputPCmd()*/ + { + EGetInputRspFormatNotSet, //< Value used in constructor. + EDigitOnlyUnpacked, //< Digits only, unpacked. + EDigitOnlyPacked, //< Digits only, packed. + ESmsDefaultAlphabetUnpacked, //< String in SMS default alphabet, unpacked. + ESmsDefaultAlphabetPacked, //< String in SMS default alphabet, packed. + EUcs2Alphabet //< String in UCS2 alphabet + }; + + /** + @see RSat::TGetInputText + */ + enum {KGetInputTextMaxSize=238}; + + /** Part of the GET INPUT proactive command. Contains the text to display + to the user before getting a response. Maximum length is 238 characters. + @see RSat::TGetInputV1 + @see RSat::TGetInputV5 + @see RSat::NotifyGetInputPCmd()*/ + typedef TBuf TGetInputText; + + /** + @see RSat::TGetInputDefaultText + */ + enum {KGetInputDefaultTextMaxSize=235}; + + /** Part of the GET INPUT proactive command. A default string: allow the + user to edit this, or to delete it and replace it with their own text. + @see RSat::TGetInputV1 + @see RSat::NotifyGetInputPCmd()*/ + typedef TBuf TGetInputDefaultText; + + class TGetInputV1 : public TSatPCmdBase + /** + Contains a GET INPUT proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyGetInputPCmd() for more information about + the command. + + Request notification for GET INPUT with RSat::NotifyGetInputPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TGetInput" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TGetInputV1Pckg, a packaged + RSat::TGetInputV1. For later versions of Symbian OS, check for an updated + API (RSat::TGetInputV2 etc). + + @see RSat::TGetInputV1Pckg + @see RSat::NotifyGetInputPCmd() + */ + { + public: + IMPORT_C TGetInputV1(); + public: + /** Determines whether the user can see the characters they enter. */ + TInputDisplayOption iInputDisplayOption; + + /** Determines whether digits or characters should be entered, + and whether they should be in a packed or unpacked format. */ + TGetInputRspFormat iRspFormat; + + /** Text to display. */ + TGetInputText iText; + + /** The maximum and minimum length of string. */ + TRspLength iRspLength; + + /** A default string can be provided. This field determines whether the + user is allowed to edit it, or whether they can only delete it and + replace it with their own text. */ + TGetInputDefaultText iDefaultText; + + /** Icon to display. */ + TIconId iIconId; + + /** Determine whether help is available. */ + THelp iHelp; + }; + + /** A packaged RSat::TGetInputV1. */ + typedef TPckg TGetInputV1Pckg; + + class TGetInputV5 : public TGetInputV1 + /** + Contains a GET INPUT proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyGetInputPCmd() for more information about + the command. + + Request notification for GET INPUT with RSat::NotifyGetInputPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TGetInput" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TGetInputV1Pckg, a packaged + RSat::TGetInputV1. For Symbian OS v9.2, use RSat::TGetInputV5. + For later versions of Symbian OS, check for an updated + API (RSat::TGetInputV6 etc). + + @see RSat::TGetInputV1 + @see RSat::TGetInputV5Pckg + @see RSat::NotifyGetInputPCmd() + */ + { + public: + IMPORT_C TGetInputV5(); + + public: + /** Contains formatting information to be applied when + RSat::TGetInputV1::iText is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TGetInputV5. */ + typedef TPckg TGetInputV5Pckg; + + class TGetInputV6 : public TGetInputV5 + /** + Contains a GET INPUT proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyGetInputPCmd() for more information about + the command. + + Request notification for GET INPUT with RSat::NotifyGetInputPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TGetInput" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TGetInputV1Pckg, a packaged + RSat::TGetInputV1. For Symbian OS v9.2, use RSat::TGetInputV5. + For Symbian OS v9.4, use RSat::TGetInputV6. + For later versions of Symbian OS, check for an updated + API (RSat::TGetInputV7 etc). + + @see RSat::TGetInputV1 + @see RSat::TGetInputV5 + @see RSat::TGetInputV6Pckg + @see RSat::NotifyGetInputPCmd() + */ + { + public: + IMPORT_C TGetInputV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TGetInputV6. */ + typedef TPckg TGetInputV6Pckg; + + IMPORT_C void NotifyGetInputPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TGetInputRspV1 : public TSatPCmdBase + /** + Contains your response to a GET INPUT proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyGetInputPCmd() for more information about + the command. + + Return the string in iAdditionalInfo, plus the other information as + indicated. + + For Symbian OS versions up to and including v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TGetInputRspV1Pckg (a packaged TGetInputRspV1). + For later versions of Symbian OS, check for an updated API + (RSat::TGetInputRspV2 etc). + + @see RSat::NotifyGetInputPCmd() + */ + { + public: + IMPORT_C TGetInputRspV1(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** Set to RSat::KTextString to return a string. Some error values + of iGeneralResult require additional information, in which case set + this to RSat::KMeProblem. Otherwise set to RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** The format of the key press, as given in + RSat::TGetInputV1::iRspFormat. */ + TGetInputRspFormat iRspFormat; + + /** Additional information, such as the string. */ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TGetInputRspV1. */ + typedef TPckg TGetInputRspV1Pckg; + + // + //PLAY TONE + // + + enum TTone + // TTone enum values are dictated by 3GPP 31.111 + /** Part of the PLAY TONE proactive command. + This determines the type of tone to play. + @see RSat::TPlayToneV1 + @see RSat::NotifyPlayTonePCmd() */ + { + KToneNotSet =-1, //< Initialization value used within constructor(s). + KDialTone =0x01, //< Dial tone. + KCalledSubscriberBusy =0x02, //< Called subscriber busy. + KCongestion =0x03, //< Congestion. + KRadioPathAcknowledge =0x04, //< Radio path acknowledge. + KRadioPathNotAvailableCallDropped =0x05, //< Radio path not available/Call dropped. + KErrorSpecialInfo =0x06, //< Error/Special information. + KCallWaitingTone =0x07, //< Call waiting tone. + KRingingTone =0x08, //< Ringing tone. + KGeneralBeep =0x10, //< General beep. + KPositiveTone =0x11, //< Positive acknowledgement tone. + KNegativeTone =0x12, //< Negative acknowledgement or error tone. + KUserSelectedToneIncomingSpeech =0x13, //< Ringing tone as selected by the user for incoming speech call. + KUserSelectedToneIncomingSms =0x14, //< Alert tone as selected by the user for incoming SMS. + KCriticalAlert =0x15, //< Independent of volume setting in the terminal. + KVibrateOnly =0x20, //< Vibrate only, if available + KHappyTone =0x30, //< Themed tone + KSadTone =0x31, //< Themed tone + KUrgentActionTone =0x32, //< Themed tone + KQuestionTone =0x33, //< Themed tone + KMessageReceivedTone =0x34, //< Themed tone + KMelody1 =0x40, //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes. + KMelody2 =0x41, //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes. + KMelody3 =0x42, //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes. + KMelody4 =0x43, //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes. + KMelody5 =0x44, //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes. + KMelody6 =0x45, //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes. + KMelody7 =0x46, //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes. + KMelody8 =0x47 //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes. + }; + + + class TPlayToneV1 : public TSatPCmdBase + /** + Contains a PLAY TONE proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyPlayTonePCmd() for more information about + the command. + + Request notification for PLAY TONE with RSat::NotifyPlayTonePCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TPlayTone" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TPlayToneV2Pckg, a packaged RSat::TPlayToneV2. + Use RSat::TPlayToneV1 with older versions of Symbian OS. For later + versions of Symbian OS, check for an updated API (RSat::TPlayToneV3 + etc). + + @see RSat::TPlayToneV2 + @see RSat::TPlayToneV1Pckg + @see RSat::NotifyPlayTonePCmd() + */ + { + public: + IMPORT_C TPlayToneV1(); + public: + /** An alpha identifier containing text to display. */ + TAlphaId iAlphaId; + + /** The tone to play. */ + TTone iTone; + + /** The duration of the tone. */ + TDuration iDuration; + }; + + /** A packaged RSat::TPlayToneV1. */ + typedef TPckg TPlayToneV1Pckg; + + + class TPlayToneV2 : public TPlayToneV1 + /** + Contains a PLAY TONE proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyPlayTonePCmd() for more information about + the command. + + Request notification for PLAY TONE with RSat::NotifyPlayTonePCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TPlayTone" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TPlayToneV2Pckg, a packaged RSat::TPlayToneV2. + Use RSat::TPlayToneV1 with older versions of Symbian OS. For later + versions of Symbian OS, check for an updated API (RSat::TPlayToneV3 + etc). + + @see RSat::TPlayToneV1 + @see RSat::TPlayToneV2Pckg + @see RSat::NotifyPlayTonePCmd() + */ + { + public: + IMPORT_C TPlayToneV2(); + public: + /** An icon to display. */ + TIconId iIconId; + }; + + /** A packaged RSat::TPlayToneV2. */ + typedef TPckg TPlayToneV2Pckg; + + class TPlayToneV5 : public TPlayToneV2 + /** + Contains a PLAY TONE proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyPlayTonePCmd() for more information about + the command. + + Request notification for PLAY TONE with RSat::NotifyPlayTonePCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TPlayTone" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TPlayToneV2Pckg, a packaged RSat::TPlayToneV2. + For Symbian OS 9.2, use RSat::TPlayToneV5Pckg. + Use RSat::TPlayToneV1 with older versions of Symbian OS. + For later versions of Symbian OS, check for an updated API + (RSat::TPlayToneV6 etc). + + @see RSat::TPlayToneV1 + @see RSat::TPlayToneV2 + @see RSat::TPlayToneV5Pckg + @see RSat::NotifyPlayTonePCmd() + */ + { + public: + IMPORT_C TPlayToneV5(); + + public: + /** Contains formatting information to be applied when + RSat::TPlayToneV1::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TPlayToneV5. */ + typedef TPckg TPlayToneV5Pckg; + + class TPlayToneV6 : public TPlayToneV5 + /** + Contains a PLAY TONE proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyPlayTonePCmd() for more information about + the command. + + Request notification for PLAY TONE with RSat::NotifyPlayTonePCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TPlayTone" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TPlayToneV2Pckg, a packaged RSat::TPlayToneV2. + For Symbian OS 9.2, use RSat::TPlayToneV5Pckg. + Use RSat::TPlayToneV1 with older versions of Symbian OS. + For Symbian OS 9.4, use RSat::TPlayToneV6Pckg. + For later versions of Symbian OS, check for an updated API + (RSat::TPlayToneV7 etc). + + @see RSat::TPlayToneV1 + @see RSat::TPlayToneV2 + @see RSat::TPlayToneV5 + @see RSat::TPlayToneV6Pckg + @see RSat::NotifyPlayTonePCmd() + */ + { + public: + IMPORT_C TPlayToneV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TPlayToneV6. */ + typedef TPckg TPlayToneV6Pckg; + + IMPORT_C void NotifyPlayTonePCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + class TPlayToneRspV1 : public TSatPCmdBase + /** + Contains your response to a PLAY TONE proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyPlayTonePCmd() for more information about + the command. + + For Symbian OS versions up to and including v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TPlayToneRspV1Pckg (a packaged TPlayTonetRspV1). + For later versions of Symbian OS, check for an updated API + (RSat::TPlayToneRspV2 etc). + + @see RSat::NotifyPlayTonePCmd() + */ + { + public: + IMPORT_C TPlayToneRspV1(); + public: + /** Proactive command general result. The description of the PLAY TONE + proactive command in ETSI TS 102 223 suggests results to return. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If the value in iGeneralResult does not require + any information then leave this field empty.*/ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TPlayToneRspV1. */ + typedef TPckg TPlayToneRspV1Pckg; + + // + //Menu Items Base Class + // + /** Part of the SELECT ITEM and SET UP MENU proactive commands. + Flags describing a menu's content. RSat::TMenuItemBaseV1::MenuContent() + returns a combination of these flags. */ + enum TMenuContent + { + KItems = 0x01, //< Menu is made of items. + KItemNextActions = 0x02, //< Menu is made of items and item next actions. + KItemIconIds = 0x04, //< Menu is made of items and item icon IDs. + KItemTextAttributes = 0x08 //< Menu items contain text attribute data as well as ID and item string. + }; + + /** + @see RSat::TItem + */ + enum {KMenuItemMaxSize=240}; + + /** + Each item in a SET UP MENU or SELECT ITEM command's menu has these two + properties. RSat::TItem::iItemString is the string to display in the menu. + If the user selects an item, return the item's RSat::TItem::iItemId to the + UICC so that the UICC knows which item has been selected. + + Use RSat::TMenuItemBaseV1::GetItem() to retrieve an item's RSat::TItem. + + Menu items may also have an icon and/or a "next action identifier" + associated with them. These are also retrieved with + RSat::TMenuItemBaseV1::GetItem() + */ + struct TItem + { + TUint8 iItemId; //< (U)SAT menu item indentifier + TBuf16 iItemString; //< (U)SAT menu item string + }; + + /** + @see RSat::TItemList + */ + enum {KItemListMaxSize=486}; + + /** Contains the menu in a SET UP MENU and SELECT ITEM proactive commands. + Do not access the menu directly; use RSat::TMenuItemBaseV1::GetItem() and + RSat::TMenuItemBaseV1::AddItem() instead. */ + typedef TBuf16 TItemList; + + class TMenuItemBaseV1 : public TSatPCmdBase + /** + Base class for menu item based classes. + + The SET UP MENU and SELECT ITEM proactive commands both provide menus + that are displayed to the user. When the user chooses one of the menu's options, + you should tell the UICC which option was chosen. + + In Symbian OS versions before 9.2, the proactive command contains menus in + classes derived from RSat::TMenuItemBaseV1. + For SET UP MENU they are RSat::TSetUpMenuV1, RSat::TSetUpMenuV2 etc. + For SELECT ITEM these classes are RSat::TSelectItemV1, RSat::TSelectItemV2 etc. + + In Symbian OS version 9.2, the proactive command contains menus in + classes derived from RSat::TMenuItemBaseV5 which itself derives from + RSat::TMenuItemBaseV1. + + The description of the SET UP MENU and SELECT ITEM commands describes + how to display the menu and what to do when the user makes a selection; see + RSat::NotifySetUpMenuPCmd() and RSat::NotifySelectItemPCmd(). + + RSat::TMenuItemBaseV1 provides methods to add and get the menu items, to + return the number of items, and to get a description of the menu's content. + RSat::TMenuItemBaseV5 extends the functionality provided by RSat::TMenuItemBaseV1 + by providing methods that allow items with text attributes to be added and + retrieved. + + To read menu items: + + - Firstly, if you have received a SET UP MENU proactive command, call + RSat::TMenuItemBaseV1::IsRemoveMenu(). If it returns ETrue then the SET UP + MENU command does not contain a menu. Instead, the command indicates you + should remove the menu provided by the previous command. (Note that the + SELECT ITEM proactive command always contains a menu; there is no need to + call RSat::TMenuItemBaseV1::IsRemoveMenu(). + + - If RSat::TMenuItemBaseV1::IsRemoveMenu() returns EFalse then the + command contains a menu that replaces the previous menu. Find out + how many items are in the menu by calling + RSat::TMenuItemBaseV1::NumberOfItems() + + - Now call RSat::TMenuItemBaseV1::MenuContent() to find out about + the menu items. All the items in each menu will have some text and an + identifier. In some menus, items may have "text attributes", + "next item indicators" and/or an icons. + + - Finally call RSat::TMenuItemBaseV1::GetItem() and + RSat::TMenuItemBaseV1::GetItemIcon() for each item. These methods require + an index number from 1 to X, where X is the number of items. Choose the + appropriate version of GetItem() or GetItemIcon() to get the information + you require. For Symbian OS version 9.2, it is also possible to call + RSat::TMenuItemBaseV5::GetItem() and RSat::TMenuItemBaseV5::GetItemIcon() + to get menu item information if the items contain text attributes. + + @see RSat::TMenuItemBaseV5 + */ + { + public: + IMPORT_C TMenuItemBaseV1(); + IMPORT_C TBool IsRemoveMenu() const; + + IMPORT_C TInt MenuContent() const; + IMPORT_C TUint NumberOfItems() const; + + IMPORT_C TInt GetItem (TUint aIndex, TItem& aItem) const; + IMPORT_C TInt GetItem (TUint aIndex, TItem& aItem, TInt& aAction) const; + IMPORT_C TInt GetItem (TUint aIndex, TItem& aItem, TInt& aAction, TInt& aIconId) const; + IMPORT_C TInt GetItemIcon(TUint aIndex, TItem& aItem, TInt& aIconId) const; + + IMPORT_C TInt AddItem (const TItem& aItem); + IMPORT_C TInt AddItem (const TItem& aItem, TUint aAction); + IMPORT_C TInt AddItem (const TItem& aItem, TUint aAction, TUint aIconId); + IMPORT_C TInt AddItemIcon(const TItem& aItem, TUint aIconId); + + IMPORT_C void Reset(); + + protected: + //TMenuItemHeader enum values are chosen arbitrary + enum TMenuItemHeader + { + KItemHeader =0xAA00, + KActionHeader =0xBB00, + KIconIdHeader =0xCC00, + KItemWithTextAttributeHeader =0xDD00 + }; + + enum TBitMask + { + KLowerByte =0x00FF, + KUpperByte =0xFF00 + }; + + // Length = 1 word = 2 bytes + enum {KHeaderLength=0x01}; + enum {KItemIdLength=0x01}; + enum {KActionLength=0x01}; + enum {KIconIdLength=0x01}; + + TInt FindItemInBuffer(TUint aIndex, TInt& aOffset) const; + TUint iNumberOfItems; //< Number of items in the menu + TUint8 iMenuContent; //< Content of the menu: items + item text attributes + next actions + icon IDs + TItemList iBuf; //< List of the items in the menu + }; + + class TMenuItemBaseV5 : public TMenuItemBaseV1 + /** + Base class for menu item based classes. + + The SET UP MENU and SELECT ITEM proactive commands both provide menus + that are displayed to the user. When the user chooses one of the menu's options, + you should tell the UICC which option was chosen. + + In Symbian OS versions < 9.2, the proactive command contains menus in + classes derived from RSat::TMenuItemBaseV1. + For SET UP MENU they are RSat::TSetUpMenuV1, RSat::TSetUpMenuV2 etc. + For SELECT ITEM these classes are RSat::TSelectItemV1, RSat::TSelectItemV2 etc. + + In Symbian OS version 9.2, the proactive command contains menus in + classes derived from RSat::TMenuItemBaseV5 which itself derives from + RSat::TMenuItemBaseV5. + For SET UP MENU they are RSat::TSetUpMenuV5. + For SELECT ITEM these classes are RSat::TSelectItemV5. + + The description of the SET UP MENU and SELECT ITEM commands describes + how to display the menu and what to do when the user makes a selection; see + RSat::NotifySetUpMenuPCmd() and RSat::NotifySelectItemPCmd(). + + RSat::TMenuItemBaseV1 provides methods to add and get the menu items, to + return the number of items, and to get a description of the menu's content. + + This class extends that functionality by providing support for text attributes + for the menu item text. + + For more details on how to read menu items, see RSat::TMenuItemBaseV1 + + @see TMenuItemBaseV1 + */ + { + public: + IMPORT_C TMenuItemBaseV5(); + public: + using TMenuItemBaseV1::GetItem; + using TMenuItemBaseV1::GetItemIcon; + + IMPORT_C TInt GetItem (TUint aIndex, TItem& aItem, TTextAttribute& aTextAttribute) const; + IMPORT_C TInt GetItem (TUint aIndex, TItem& aItem, TTextAttribute& aTextAttribute, TInt& aAction) const; + IMPORT_C TInt GetItemIcon (TUint aIndex, TItem& aItem, TTextAttribute& aTextAttribute, TInt& aIconId) const; + IMPORT_C TInt GetItem (TUint aIndex, TItem& aItem, TTextAttribute& aTextAttribute, TInt& aAction, TInt& aIconId) const; + + using TMenuItemBaseV1::AddItem; + using TMenuItemBaseV1::AddItemIcon; + + IMPORT_C TInt AddItem (const TItem& aItem, const TTextAttribute& aTextAttribute); + IMPORT_C TInt AddItem (const TItem& aItem, const TTextAttribute& aTextAttribute, TUint aAction); + IMPORT_C TInt AddItemIcon (const TItem& aItem, const TTextAttribute& aTextAttribute, TUint aIconId); + IMPORT_C TInt AddItem (const TItem& aItem, const TTextAttribute& aTextAttribute, TUint aAction, TUint aIconId); + }; + + // + //SET UP MENU + // + + class TSetUpMenuV1 : public TMenuItemBaseV1 + /** + Contains a SET UP MENU proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifySetUpMenuPCmd() for more information about + the command. + + RSat::TSetUpMenuV1 derives from RSat::TMenuItemBaseV1, which provides the basic + mechanism to handle the menu items, item next actions and item icon IDs. + + Request notification for SET UP MENU with RSat::NotifySetUpMenuPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSetUpMenu" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TSetUpMenuV2Pckg, a packaged RSat::TSetUpMenuV2. + Use RSat::TSetUpMenuV1 with older versions of Symbian OS. For later + versions of Symbian OS, check for an updated API (RSat::TSetUpMenuV3 + etc). + + @see RSat::TSetUpMenuV2 + @see RSat::TSetUpMenuV1Pckg + @see RSat::NotifySetUpMenuPCmd() + */ + { + public: + IMPORT_C TSetUpMenuV1(); + public: + TAlphaId iAlphaId; //< Alpha identifier that may contain text. If so, this text is the title of the menu. + THelp iHelp; //< Determines whether help is available. + TIconId iIconId; //< Identifies the icon to display in the title of the menu. + TIconQualifier iIconListQualifier; //< Icon list qualifier. + }; + + /** A packaged RSat::TSetUpMenuV1. */ + typedef TPckg TSetUpMenuV1Pckg; + + enum TSelectionPreference + /** + A menu from SET UP MENU or SELECT ITEM can be marked as + RSat::ESoftKeyPreferred. Then, if this feature is supported and the number + of icon items does not exceed the number of soft keys available then + display those icons as soft keys. + */ + { + ESelectionPreferenceNotSet, //< Initialization value. + ENoSelectionPreference, //< Use of soft keys is not required. + ESoftKeyPreferred //< Use soft keys where appropriate. + }; + + + class TSetUpMenuV2 : public TSetUpMenuV1 + /** + Contains a SET UP MENU proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifySetUpMenuPCmd() for more information about + the command. + + RSat::TSetUpMenuV2 derives from RSat::TMenuItemBaseV1 and + RSat::TSetUpMenuV1. RSat::TSetUpMenuV1 provides the basic mechanism to + handle the menu items, item next actions and item icon IDs. + + Request notification for SET UP MENU with RSat::NotifySetUpMenuPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSetUpMenu" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TSetUpMenuV2Pckg, a packaged RSat::TSetUpMenuV2. + Use RSat::TSetUpMenuV1 with older versions of Symbian OS. For later + versions of Symbian OS, check for an updated API (RSat::TSetUpMenuV3 + etc). + + @see RSat::TSetUpMenuV1 + @see RSat::TSetUpMenuV2Pckg + @see RSat::NotifySetUpMenuPCmd() + */ + { + public: + IMPORT_C TSetUpMenuV2(); + public: + TSelectionPreference iPreference; //< Determines whether soft key is used with the menu, if available. + }; + + /** A packaged RSat::TSetUpMenuV2. */ + typedef TPckg TSetUpMenuV2Pckg; + + class TSetUpMenuV5 : public TMenuItemBaseV5 + /** + Contains a SET UP MENU proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifySetUpMenuPCmd() for more information about + the command. + + RSat::TSetUpMenuV5 derives from RSat::TMenuItemBaseV5 and + RSat::TMenuItemBaseV1. RSat::TMenuItemBaseV1 and RSat::TMenuItemBaseV5 + provide the basic mechanism to handle the menu items, menu item text attributes, + item next actions and item icon IDs. + + Note that RSat::TSetUpMenuV5 does not derive from RSat::TSetUpMenuV2 and + RSat::TSetUpMenuV1 but contains all of the attributes present in these + two classes. + + Request notification for SET UP MENU with RSat::NotifySetUpMenuPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSetUpMenu" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TSetUpMenuV2Pckg, a packaged RSat::TSetUpMenuV2. + Use RSat::TSetUpMenuV1 with older versions of Symbian OS. + For Symbian OS 9.2, use RSat::TSetUpMenuV5. + For later versions of Symbian OS, check for an updated API (RSat::TSetUpMenuV6 + etc). + + @see RSat::TMenuItemBaseV1 + @see RSat::TMenuItemBaseV5 + @see RSat::TSetUpMenuV5Pckg + @see RSat::NotifySetUpMenuPCmd() + */ + { + public: + IMPORT_C TSetUpMenuV5(); + public: + TAlphaId iAlphaId; //< Alpha identifier that may contain text. If so, this text is the title of the menu. + THelp iHelp; //< Determines whether help is available. + TIconId iIconId; //< Identifies the icon to display in the title of the menu. + TIconQualifier iIconListQualifier; //< Icon list qualifier. + + TSelectionPreference iPreference; //< Determines whether soft key is used with the menu, if available. + TTextAttribute iTextAttribute; //< Text attribute data for the alpha identifier. + }; + + /** A packaged RSat::TSetUpMenuV5. */ + typedef TPckg TSetUpMenuV5Pckg; + + IMPORT_C void NotifySetUpMenuPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + /** Cancels notification for a SET UP MENU proactive command. */ + IMPORT_C void NotifySetUpMenuPCmdCancel() const; + + + + class TSetUpMenuRspV1 : public TSatPCmdBase + /** + Contains your response to a SET UP MENU proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See RSat::NotifySetUpMenuPCmd() for + more information about the command. + + For Symbian OS versions up to and including v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TSetUpMenuRspV1Pckg (a packaged + TSetUpMenuRspV1). For later versions of Symbian OS, check for an updated + API (RSat::TSetUpMenuRspV2 etc). + + @see RSat::NotifySetUpMenuPCmd() + */ + { + public: + IMPORT_C TSetUpMenuRspV1(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If the value in iGeneralResult does not require + any information then leave this field empty.*/ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TSetUpMenuRspV1. */ + typedef TPckg TSetUpMenuRspV1Pckg; + + // + //SELECT ITEM + // + + /** Part of the SELECT ITEM proactive command. This describes the content + of the menu items. This is information is provided to help you display the + menu. */ + enum TPresentationType + { + EPresentationTypeNotSet, //< Value used in constructor. + ENotSpecified, // TSelectItemV1Pckg; + + + class TSelectItemV2 : public TSelectItemV1 + /** + Contains a SELECT ITEM proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifySelectItemPCmd() for more information about + the command. + + RSat::TSelectItemV2 derives from RSat::TSelectItemV1 and + RSat::TMenuItemBaseV1. RSat::TMenuItemBaseV1 provides the basic mechanism + to handle the menu items, item next actions and item icon IDs. + + Request notification for SELECT ITEM with RSat::NotifySelectItemPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSelectItem" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TSelectItemV2Pckg, a packaged RSat::TSelectItemV2. + Use RSat::TSelectItemV1 with older versions of Symbian OS. For later + versions of Symbian OS, check for an updated API (RSat::TSelectItemV3 + etc). + + @see RSat::TSelectItemV1 + @see RSat::TSelectItemV2Pckg + @see RSat::NotifySelectItemPCmd() + */ + { + public: + IMPORT_C TSelectItemV2(); + public: + TSelectionPreference iPreference; //< Determines whether soft key is used with the menu, if available. + }; + + /** A packaged RSat::TSelectItemV2. */ + typedef TPckg TSelectItemV2Pckg; + + class TSelectItemV5 : public TMenuItemBaseV5 + /** + Contains a SELECT ITEM proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifySelectItemPCmd() for more information about + the command. + + RSat::TSelectItemV5 derives from RSat::TMenuItemBaseV5 and + RSat::TMenuItemBaseV1. RSat::TMenuItemBaseV1 and + RSat::TMenuItemBaseV5 provide the basic mechanism to handle + the menu items, text attributes, item next actions and item icon + IDs. + + Note that although RSat::TSelectItemV5 does not derive from + RSat::TSelectItemV2 and RSat::TSelectItemV1, it contains all of + the parameters present in those two classes and is hence + backwards compatible with both. + + Request notification for SELECT ITEM with RSat::NotifySelectItemPCmd(), + passing it an object in which to store the command when it arrives. + Pass a packaged version of the latest "TSelectItem" class. + For Symbian OS 7.0s, 8.0 and 8.1 use RSat::TSelectItemV2Pckg, + a packaged RSat::TSelectItemV2. Use RSat::TSelectItemV1 with + older versions of Symbian OS. For Symbian OS version 9.2, + use RSat::TSelectItemV5Pckg. For later versions of Symbian OS, + check for an updated API (RSat::TSelectItemV6 etc.). + + @see RSat::TMenuItemBaseV1 + @see RSat::TMenuItemBaseV5 + @see RSat::TSelectItemV5Pckg + @see RSat::NotifySelectItemPCmd() + */ + { + public: + IMPORT_C TSelectItemV5(); + public: + TPresentationType iPresentationType;//< Describes the menu's content type, which may aid presentation. + TAlphaId iAlphaId; //< Alpha identifier that may contain text. If so, this text is the title of the menu. + THelp iHelp; //< Determines whether help is available. + TUint8 iDefaultItemId; //< ID of the default menu item. + TIconId iIconId; //< Identifies the icon to display in the title of the menu. + TIconQualifier iIconListQualifier; //< Icon list qualifier. + + TSelectionPreference iPreference; //< Determines whether soft key is used with the menu, if available. + TTextAttribute iTextAttribute; //< Text attribute data for the alpha identifier. + }; + + /** A packaged RSat::TSelectItemV5. */ + typedef TPckg TSelectItemV5Pckg; + + class TSelectItemV6 : public TSelectItemV5 + /** + Contains a SELECT ITEM proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifySelectItemPCmd() for more information about + the command. + + RSat::TSelectItemV6 derives from RSat::TSelectItemV5. + RSat::TSelectItemV5 derives from RSat::TMenuItemBaseV5 and + RSat::TMenuItemBaseV1. RSat::TMenuItemBaseV1 and + RSat::TMenuItemBaseV5 provide the basic mechanism to handle + the menu items, text attributes, item next actions and item icon + IDs. + + Request notification for SELECT ITEM with RSat::NotifySelectItemPCmd(), + passing it an object in which to store the command when it arrives. + Pass a packaged version of the latest "TSelectItem" class. + For Symbian OS 7.0s, 8.0 and 8.1 use RSat::TSelectItemV2Pckg, + a packaged RSat::TSelectItemV2. Use RSat::TSelectItemV1 with + older versions of Symbian OS. For Symbian OS version 9.2, + use RSat::TSelectItemV5Pckg.For Symbian OS version 9.4, + use RSat::TSelectItemV6Pckg. For later versions of Symbian OS, + check for an updated API (RSat::TSelectItemV7 etc.). + + @see RSat::TSelectItemV5 + @see RSat::TSelectItemV6Pckg + @see RSat::NotifySelectItemPCmd() + */ + { + public: + IMPORT_C TSelectItemV6(); + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TSelectItemV6. */ + typedef TPckg TSelectItemV6Pckg; + + IMPORT_C void NotifySelectItemPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + class TSelectItemRspV1 : public TSatPCmdBase + /** + Contains your response to a SELECT ITEM proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and + RSat::NotifySelectItemPCmd() for more information about the command. + + For Symbian OS versions up to and including v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TSelectItemRspV1Pckg (a packaged + TSelectItemRspV1). For later versions of Symbian OS, check for an updated + API (RSat::TSelectItemRspV2 etc). + + @see RSat::NotifySelectItemPCmd() + */ + { + public: + IMPORT_C TSelectItemRspV1(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** Set to RSat::KItemIdentifier when returning the user's choice. + Some error values of iGeneralResult require additional information, in + which case set this to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains the user's chosen menu item. Alternatively, some error + values for iGeneralResult require additional information, which goes + here. */ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TSelectItemRspV1. */ + typedef TPckg TSelectItemRspV1Pckg; + + + // + // SEND SHORT MESSAGE + // + class TSendSmV1 : public TSatPCmdBase + /** + Contains a SEND SHORT MESSAGE proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifySendSmPCmd() for more information about + the command. + + Request notification for SEND SHORT MESSAGE with RSat::NotifySendSmPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSendSm" class. For Symbian OS versions up + to and including v8.1a and 8.1b use RSat::TSendSmV1Pckg, a packged + RSat::TSendSmV1. For later versions of Symbian OS, check for an updated + API (RSat::TSendSmV2 etc). + + @see RSat::TSendSmV1Pckg + @see RSat::NotifySendSmPCmd() + */ + { + public: + IMPORT_C TSendSmV1(); + public: + TAlphaId iAlphaId; //< An alpha identifier containing text to display. + TAddress iAddress; //< The address of the message recipient. + TTpdu iSmsTpdu; //< The SMS message itself. + TIconId iIconId; //< An icon to display. + }; + + /** A packaged RSat::TSendSmV1. */ + typedef TPckg TSendSmV1Pckg; + + class TSendSmV5 : public TSendSmV1 + /** + Contains a SEND SHORT MESSAGE proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifySendSmPCmd() for more information about + the command. + + Request notification for SEND SHORT MESSAGE with RSat::NotifySendSmPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSendSm" class. For Symbian OS versions up + to and including v8.1a and 8.1b use RSat::TSendSmV1Pckg, a packged + RSat::TSendSmV1. For Symbian OS 9.2, use RSat::TSendSmV5Pckg. + For later versions of Symbian OS, check for an updated + API (RSat::TSendSmV6 etc). + + @see RSat::TSendSmV5Pckg + @see RSat::NotifySendSmPCmd() + */ + { + public: + IMPORT_C TSendSmV5(); + + public: + /** Contains formatting information to be applied when + RSat::TSendSmV1::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TSendSmV5. */ + typedef TPckg TSendSmV5Pckg; + + class TSendSmV6 : public TSendSmV5 + /** + Contains a SEND SHORT MESSAGE proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifySendSmPCmd() for more information about + the command. + + Request notification for SEND SHORT MESSAGE with RSat::NotifySendSmPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSendSm" class. For Symbian OS versions up + to and including v8.1a and 8.1b use RSat::TSendSmV1Pckg, a packged + RSat::TSendSmV1. For Symbian OS 9.2, use RSat::TSendSmV5Pckg. + For Symbian OS 9.4, use RSat::TSendSmV6Pckg. + For later versions of Symbian OS, check for an updated + API (RSat::TSendSmV7 etc). + + @see RSat::TSendSmV6Pckg + @see RSat::NotifySendSmPCmd() + + */ + { + public: + IMPORT_C TSendSmV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TSendSmV6. */ + typedef TPckg TSendSmV6Pckg; + IMPORT_C void NotifySendSmPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TSendSmRspV1 : public TSatPCmdBase + /** + Contains your response to a SEND SHORT MESSAGE proactive command. Pass + this to the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and + RSat::NotifySendSmPCmd() for more information about the command. + + For Symbian OS versions up to and including v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TSendSmRspV1Pckg (a packaged TSendSmRspV1). + For later versions of Symbian OS, check for an updated API + (RSat::TSendSmRspV2 etc). + + @see RSat::NotifySendSmPCmd() + */ + { + public: + IMPORT_C TSendSmRspV1(); + public: + /** General result of the proactive command. Set this as described in + ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KMeProblem. To return a network error, + set this KSatNetworkErrorInfo. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If you get an error from the network, you can + return it in here, setting iInfoType to KSatNetworkErrorInfo. If the + value in iGeneralResult does not require any information then leave + this field empty.*/ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TSendSmRspV1. */ + typedef TPckg TSendSmRspV1Pckg; + + // + // Send SMS no logging permitted + // + class TSatSmsV1: public TSatPCmdBase + /** + Parameters for a RSat::SendMessageNoLogging() message. + */ + { + public: + IMPORT_C TSatSmsV1(); + public: + TTpdu iBuf; //< SMS TPDU + TAddress iServiceCenter;//< If iServiceCenter is a null buffer then use the default sc address + }; + + /** A packaged RSat::TSendSmRspV1. */ + typedef TPckg TSatSmsV1Pckg; + + IMPORT_C void SendMessageNoLogging(TRequestStatus& aReqStatus, const TDesC8& aMsg, TUint16& aMsgRef) const; + + // + // SEND SS (Supplementary Service pro-active command). + // + + class TSendSsV1 : public TSatPCmdBase + /** + Contains a SEND SS (Supplementary Service) proactive command issued by the + UICC. See ETSI TS 102 223 and RSat::NotifySendSsPCmd() for more + information about the command. + + Request notification for SEND SS with RSat::NotifySendSsPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSendSs" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TSendSsV1Pckg, a packaged + RSat:TSendSsV1. For later versions of Symbian OS, check for an updated + API (RSat::TSendSsV2 etc). + + @see RSat::TSendSsV1Pckg + @see RSat::NotifySendSsPCmd() + */ + { + public: + IMPORT_C TSendSsV1(); + public: + TAlphaId iAlphaId; //< An alpha identifier containing text to display. + TSsString iSsString; //< The supplementary services string. + TIconId iIconId; //< An icon to display. + }; + + /** A packaged RSat::TSendSsV1. */ + typedef TPckg TSendSsV1Pckg; + + class TSendSsV6 : public TSendSsV1 + /** + Contains a SEND SS (Supplementary Service) proactive command issued by the + UICC. See ETSI TS 102 223 and RSat::NotifySendSsPCmd() for more + information about the command. + + Request notification for SEND SS with RSat::NotifySendSsPCmd(), For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TSendSsV1Pckg, a packaged RSat:TSendSsV1. + For Symbian OS v9.4, use RSat::TSendSsV6. For later versions of Symbian OS, check for + an updated API (RSat::TSendSsV7 etc). + + @see RSat::TSendSsV6Pckg + @see RSat::NotifySendSsPCmd() + + */ + { + public: + IMPORT_C TSendSsV6(); + public: + /** Contains formatting information to be applied when + RSat::TSendSsV1::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TSendSsV6. */ + typedef TPckg TSendSsV6Pckg; + + IMPORT_C void NotifySendSsPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TSendSsRspV1 : public TSatPCmdBase + /** + Contains your response to a SEND SS proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifySendSsPCmd() for more information about + the command. + + For Symbian OS v6.1 or v7.0 pass RSat::TerminalRsp() a + RSat::TSendSsRspV1Pckg (a packaged TSendSsRspV1). For versions up to and + including v8.1a and v8.1b use RSat::TSendSsRspV2. For later versions of + Symbian OS, check for an updated API (RSat::TSendSsRspV3 etc). + + @see RSat::NotifySendSsPCmd() + */ + { + public: + IMPORT_C TSendSsRspV1(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + TUint iInfoType; //< Additional info type + TAdditionalInfo iAdditionalInfo; //< Additional info + + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult2; + + TUint iInfoType2; //< Second additional info type + TAdditionalInfo iAdditionalInfo2; //< Second additional info + TCallControlV1 iCcRequestedAction; //< Action requested by the call control procedure. + }; + + /** A packaged RSat::TSendSsRspV1. */ + typedef TPckg TSendSsRspV1Pckg; + + + class TSendSsRspV2 : public TSendSsRspV1 + /** + Contains your response to a SEND SS proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifySendSsPCmd() for more information about + the command. + + For Symbian OS v6.1 or v7.0 pass RSat::TerminalRsp() a + RSat::TSendSsRspV1Pckg (a packaged TSendSsRspV1). For versions up to and + including v8.1a and v8.1b use RSat::TSendSsRspV2. For later versions of + Symbian OS, check for an updated API (RSat::TSendSsRspV3 etc). + + @see RSat::NotifySendSsPCmd() + */ + { + public: + IMPORT_C TSendSsRspV2(); + public: + TUssdString iUssdString; //< Text returned within the Return Result message from the network. + }; + + /** A packaged RSat::TSendSsRspV2. */ + typedef TPckg TSendSsRspV2Pckg; + + // + // SEND USSD (Unstructured Supplementary Service Data) + // + + class TSendUssdV1 : public TSatPCmdBase + /** + Contains a SEND USSD (Unstructured Supplementary Service Data) proactive + command issued by the UICC. See ETSI TS 102 223 and + RSat::NotifySendUssdPCmd() for more information about the command. + + Request notification for SEND USSD with RSat::NotifySendUssdPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSendUssd" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TSendUssdV1Pckg, a packaged + RSat::TSendUssdV1. For later versions of Symbian OS, check for an updated + API (RSat::TSendUssdV2 etc). + + @see RSat::TSendUssdV1Pckg + @see RSat::NotifySendUssdPCmd() + */ + { + public: + IMPORT_C TSendUssdV1(); + public: + TAlphaId iAlphaId; //< An alpha identifier containing text to display. + TUssdString iUssdString; //< The Unstructured Supplementary Service Data (USSD) string. + TIconId iIconId; //< An icon to display. + }; + + /** A packaged RSat::TSendUssdV1. */ + typedef TPckg TSendUssdV1Pckg; + + class TSendUssdV6 : public TSendUssdV1 + /** + Contains a SEND USSD (Unstructured Supplementary Service Data) proactive + command issued by the UICC. See ETSI TS 102 223 and + RSat::NotifySendUssdPCmd() for more information about the command. + + Request notification for SEND USSD with RSat::NotifySendUssdPCmd(), For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TSendUssdV1Pckg, a packaged RSat:TSendUssdV1. + For Symbian OS v9.4, use RSat::TSendUssdV6Pckg, a packaged RSat:TSendUssdV6. For later versions of Symbian OS, check for + an updated API (RSat::TSendUssdV7 etc). + @see RSat::TSendUssdV6Pckg + @see RSat::NotifySendUssdPCmd() + + */ + { + public: + IMPORT_C TSendUssdV6(); + public: + /** Contains formatting information to be applied when + RSat::TSendUssdV1::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TSendUssdV1. */ + typedef TPckg TSendUssdV6Pckg; + + IMPORT_C void NotifySendUssdPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TSendUssdRspV1 : public TSatPCmdBase + /** + Contains your response to a SEND USSD proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifySendUssdPCmd() for more information about + the command. + + For Symbian OS versions up to and including v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TSendUssdRspV1Pckg (a packaged TSendUssdRspV1). + For later versions of Symbian OS, check for an updated API + (RSat::TSendUssdRspV2 etc). + + @see RSat::NotifySendUssdPCmd() + */ + { + public: + IMPORT_C TSendUssdRspV1(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + TUint iInfoType; //< Additional info type + TAdditionalInfo iAdditionalInfo; //< Additional info + + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult2; + + TUint iInfoType2; //< Second additional info type + TAdditionalInfo iAdditionalInfo2; //< Second additional info + TUssdString iUssdString; //< USSD string + TCallControlV1 iCcRequestedAction; //< Action requested by the call control procedure. + }; + + /** A packaged RSat::TSendUssdRspV1. */ + typedef TPckg TSendUssdRspV1Pckg; + + // + // SET UP CALL + // + enum TSetUpCallType + /** Part of a SET UP CALL proactive command. Determines the conditions + under which a call should be set up. + @see RSat::TSetUpCallV1 + */ + { + ESetUpCallTypeNotSet, //< Value used in constructor. + EOnlyIfNotBusy, //< Only make the call if line is not busy. + EOnlyIfNotBusyWithRedial, //< Only make the call if line is not busy. Redial if call cannot be made the first time. + EHoldOtherCalls, //< Put other calls on hold then make the call. + EHoldOtherCallsWithRedial, //< Put other calls on hold then make the call. Redial if call cannot be made the first time. + EDisconnectOtherCalls, //< Disconnect other calls then make the call. + EDisconnectOtherCallsWithRedial //< Disconnect other calls then make the call. Redial if call cannot be made the first time. + }; + + + class TSetUpCallV1 : public TSatPCmdBase + /** + Contains a SET UP CALL proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifySetUpCallPCmd() for more information about + the command. + + Request notification for SET UP CALL with RSat::NotifySetUpCallPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSetUpCall" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TSetUpCallV1Pckg, a packaged + RSat::TSetUpCallV1. For later versions of Symbian OS, check for an updated + API (RSat::TSetUpCallV2 etc). + + @see RSat::TSetUpCallV1Pckg + @see RSat::NotifySetUpCallPCmd() + */ + { + public: + IMPORT_C TSetUpCallV1(); + public: + /** Determines whether you re-dial if initial attempts to make the call fail. + Plus, determines what to do if there is already a call in progress. */ + TSetUpCallType iType; + TAlphaId iAlphaIdConfirmationPhase; //< Some text for the confirmation phase. + TIconId iIconIdConfirmationPhase; //< An icon for the confirmation phase. + TAddress iAddress; //< The number to call. + TCcp iCapabilityConfigParams; //< Capability configuration parameters. + TSubAddress iSubAddress; //< The sub-address of the remote party. + TDuration iDuration; //< Determines how long you should you try to re-dial. + TAlphaId iAlphaIdCallSetUpPhase; //< Some text for the call set up phase. + TIconId iIconIdCallSetUpPhase; //< An icon for the call set up phase. + }; + + /** A packaged RSat::TSetUpCallV1. */ + typedef TPckg TSetUpCallV1Pckg; + + class TSetUpCallV5 : public TSetUpCallV1 + /** + Contains a SET UP CALL proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifySetUpCallPCmd() for more information about + the command. + + Request notification for SET UP CALL with RSat::NotifySetUpCallPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSetUpCall" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TSetUpCallV1Pckg, a packaged + RSat::TSetUpCallV1. For Symbian OS 9.2, use RSat::TSetUpCallV5Pckg. + For later versions of Symbian OS, check for an updated + API (RSat::TSetUpCallV6 etc). + + @see RSat::TSetUpCallV1 + @see RSat::TSetUpCallV5Pckg + @see RSat::NotifySetUpCallPCmd() + */ + { + public: + IMPORT_C TSetUpCallV5(); + + public: + /** Contains formatting information to be applied when + RSat::TSetUpCallV1::iAlphaIdConfirmationPhase is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttributeConfirmationPhase; + + /** Contains formatting information to be applied when + RSat::TSetUpCallV1::iAlphaIdCallSetUpPhase is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttributeCallSetUpPhase; + }; + + /** A packaged RSat::TSetUpCallV5. */ + typedef TPckg TSetUpCallV5Pckg; + + class TSetUpCallV6 : public TSetUpCallV5 + /** + Contains a SET UP CALL proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifySetUpCallPCmd() for more information about + the command. + + Request notification for SET UP CALL with RSat::NotifySetUpCallPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSetUpCall" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TSetUpCallV1Pckg, a packaged + RSat::TSetUpCallV1. For Symbian OS 9.2, use RSat::TSetUpCallV5Pckg. + For Symbian OS 9.4, use RSat::TSetUpCallV6Pckg. + For later versions of Symbian OS, check for an updated + API (RSat::TSetUpCallV7 etc). + + @see RSat::TSetUpCallV5 + @see RSat::TSetUpCallV6Pckg + @see RSat::NotifySetUpCallPCmd() + + */ + { + public: + IMPORT_C TSetUpCallV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TSetUpCallV6. */ + typedef TPckg TSetUpCallV6Pckg; + + IMPORT_C void NotifySetUpCallPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + IMPORT_C void NotifySetUpCallPCmdCancel() const; + + class TSetUpCallRspV1 : public TSatPCmdBase + /** + Contains your response to a SET UP CALL proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifySetUpCallPCmd() for more information about + the command. + + For Symbian OS v6.1 or v7.0 pass RSat::TerminalRsp() a + RSat::TSetUpCallRspV1Pckg (a packaged TSetUpCallRspV1). For versions up to + and included v8.1a and v8.1b use RSat::TSetUpCallRspV2Pckg (a packaged + TSetUpCallRspV2). For later versions of Symbian OS, check for an updated + API (RSat::TSetUpCallRspV3 etc). + + @see RSat::TSetUpCallRspV2 + @see RSat::NotifySetUpCallPCmd() + */ + { + public: + IMPORT_C TSetUpCallRspV1(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + TUint iInfoType; //< Additional information type + TAdditionalInfo iAdditionalInfo; //< Additional info + + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult2; + + TUint iInfoType2; //< Second additional info type + TAdditionalInfo iAdditionalInfo2; //< Second additional info + TCallControlV1 iCcRequestedAction; //< Action requested by the call control procedure + }; + + /** A packaged RSat::TSetUpCallRspV1. */ + typedef TPckg TSetUpCallRspV1Pckg; + + + class TSetUpCallRspV2 : public TSetUpCallRspV1 + /** + Contains your response to a SET UP CALL proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifySetUpCallPCmd() for more information about + the command. + + For Symbian OS v6.1 or v7.0 pass RSat::TerminalRsp() a + RSat::TSetUpCallRspV1Pckg (a packaged TSetUpCallRspV1). For versions up to + and included v8.1a and v8.1b use RSat::TSetUpCallRspV2Pckg (a packaged + TSetUpCallRspV2). For later versions of Symbian OS, check for an updated + API (RSat::TSetUpCallRspV3 etc). + + @see RSat::TSetUpCallRspV1 + @see RSat::NotifySetUpCallPCmd() + */ + { + public: + IMPORT_C TSetUpCallRspV2(); + public: + TUssdString iUssdString; //< Text returned within the Return Result message from the network. + }; + + /** A packaged RSat::TSetUpCallRspV2. */ + typedef TPckg TSetUpCallRspV2Pckg; + + + enum TRefreshType + /** Part of a REFRESH proactive command. + Indicates the type of REFRESH command sent by the UICC + @see RSat::TRefreshV1 + */ + { + ERefreshTypeNotSet, //< Initialization value used within constructor(s). + ESimInitFullFileChangeNotification, //< SIM or USIM Initialization and Full File Change Notification. + EFileChangeNotification, //< SIM or USIM File Change Notification. + ESimInitFileChangeNotification, //< SIM or USIM Initialization and File Change Notification. + ESimInit, //< SIM or USIM Initialization. + ESimReset, //< GSM SIM or UICC Reset. + EUsimApplicationReset, //< USIM Application Reset. + E3GSessionReset //< 3G Session Reset. + }; + + /** + @see RSat::TRefreshFileList + */ + enum {KRefreshedFileListMaxSize=242}; + + /** Part of a REFRESH proactive command. + Contains the list of files that have been changed by the UICC. + @see RSat::TRefreshV1 + */ + typedef TBuf16 TRefreshFileList; + + + class TRefreshV1 : public TSatPCmdBase + /** + Contains a REFERSH proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifyRefreshPCmd() for more information about + the command. + + Request notification for REFRESH with RSat::NotifyRefreshPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TRefresh" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TRefreshV2Pckg, a packged RSat::TRefreshV2. + Use RSat::TRefreshV1 with older versions of Symbian OS. For later + versions of Symbian OS, check for an updated API (RSat::TRefreshV3 + etc). + + @see RSat::TRefreshV2 + @see RSat::TRefreshV1Pckg + @see RSat::NotifyRefreshPCmd() + */ + { + public: + IMPORT_C TRefreshV1(); + public: + TRefreshType iType; //< Type of refresh command + TRefreshFileList iFileList; //< Optional list of files that need to be refreshed. + }; + + /** A packaged RSat::TRefreshV1. */ + typedef TPckg TRefreshV1Pckg; + + /** + @see RSat::TAid + */ + enum {KAidMaxSize=16}; + + /** Part of a REFRESH proactive command. + Indicates the application on the UICC to be refreshed as defined in ETSI TS 101 220. + @see RSat::TRefreshV1 */ + typedef TBuf8 TAid; + + + class TRefreshV2 : public TRefreshV1 + /** + Contains a REFERSH proactive command issued by the UICC. See ETSI TS + 102 223 and RSat::NotifyRefreshPCmd() for more information about + the command. + + Request notification for REFRESH with RSat::NotifyRefreshPCmd(), + passing it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TRefresh" class. For Symbian OS 7.0s, + 8.0 and 8.1 use RSat::TRefreshV2Pckg, a packged RSat::TRefreshV2. + Use RSat::TRefreshV1 with older versions of Symbian OS. For later + versions of Symbian OS, check for an updated API (RSat::TRefreshV3 + etc). + + @see RSat::TRefreshV2 + @see RSat::TRefreshV1Pckg + @see RSat::NotifyRefreshPCmd() + */ + { + public: + IMPORT_C TRefreshV2(); + public: + TAid iAid; //< ID of an application that needs to be refreshed. + }; + + /** A packaged RSat::TRefreshV2. */ + typedef TPckg TRefreshV2Pckg; + + IMPORT_C void NotifyRefreshPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TRefreshRspV1 : public TSatPCmdBase + /** + Contains your response to a REFRESH proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyRefreshPCmd() for more information about + the command. + + For Symbian OS versions up to and including v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TRefreshRspV1Pckg (a packaged TRefreshRspV1). + For later versions of Symbian OS, check for an updated API + (RSat::TRefreshRspV2 etc). + + @see RSat::NotifyRefreshPCmd() + */ + { + public: + IMPORT_C TRefreshRspV1(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + TUint iInfoType; //< Additional info type + TAdditionalInfo iAdditionalInfo;//< Additional info + }; + + /** A packaged RSat::TRefreshRspV1. */ + typedef TPckg TRefreshRspV1Pckg; + + // + //SET UP EVENT LIST + // + enum TSetUpEventListType + /** Part of the SET UP EVENT LIST proactive command. It determines the + command type: does the command contain a new event list or does it cancel + the previous event list. */ + { + ESetUpEventListTypeNotSet, //< Value used in constructor. + EUpdateEventList, //< Command contains a new event list that replaces any previous list. + ERemoveExistingEventList //< Command contains no event list. Instead, remove any existing events from the list. + }; + + + class TSetUpEventListV1 : public TSatPCmdBase + /** + Contains a SET UP EVENT LIST proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifySetUpEventListPCmd() for more information about + the command. + + Request notification for SET UP EVENT LIST with RSat::NotifySetUpEventListPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSetUpEventList" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TSetUpEventListV1Pckg, a packged + RSat::TSetUpEventListV1. For later versions of Symbian OS, check for an updated + API (RSat::TSetUpEventListV2 etc). + + @see RSat::TSetUpEventListV1Pckg + @see RSat::NotifySetUpEventListPCmd() + */ + { + public: + IMPORT_C TSetUpEventListV1(); + public: + TSetUpEventListType iType; //< The command type. + TUint iEvents; //< The list of events in the form of flags from RSat::TEventList. + }; + + /** A packaged RSat::TSetUpEventListV1. */ + typedef TPckg TSetUpEventListV1Pckg; + + IMPORT_C void NotifySetUpEventListPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TSetUpEventListRspV1 : public TSatPCmdBase + /** + Contains your response to a SET UP EVENT LIST proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifySetUpEventListPCmd() for more information about + the command. + + For Symbian OS versions up to and including v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TSetUpEventListRspV1Pckg (a packaged TSetUpEventListRspV1). + For later versions of Symbian OS, check for an updated API + (RSat::TSetUpEventListRspV2 etc). + + @see RSat::NotifySetUpEventListPCmd() + */ + { + public: + IMPORT_C TSetUpEventListRspV1(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If the value in iGeneralResult does not require + any information then leave this field empty.*/ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TSetUpEventListRspV1. */ + typedef TPckg TSetUpEventListRspV1Pckg; + + // + //SET UP IDLE MODE TEXT + // + enum TSetUpIdleModeTextType + /** Part of the SET UP IDLE MODE TEXT proactive command. + This determines the type of the command. + @see RSat::TSetUpIdleModeTextV1 */ + { + ESetUpIdleModeTextTypeNotSet, //< Initialization value + + /** The SET UP IDLE MODE TEXT command contains idle mode text and + perhaps an icon to accompany it. */ + EUpdateIdleModeText, + + /** The existing idle mode text and icon should no longer be used. + The SET UP IDLE MODE TEXT contains no new text. */ + ERemoveExistingIdleModeText + }; + + /** + The buffer needs to be able to contain 276 16-bit characters. + + Expected Sequence 1.7 in section 27.22.4.22.1.4.2 of 3GPP TS 11.10-4 + v8.14.0 states that large text length to be tested should be of length + 274. We are providing enough storage for 276 characters in any coding + scheme as specified by TSatTextCoding. + + @see RSat::TSatTextCoding + @see RSat::TSetUpIdleModeTextV1 + */ + enum {KIdleModeTextMaxSize=276}; + + /** + Part of the SET UP IDLE MODE TEXT proactive command. + This contains the idle mode text. + + This buffer assumes that 16-bit descriptors are being used by default. + + @see RSat::TSetUpIdleModeTextV1 + @see RSat::KIdleModeTextMaxSize + */ + typedef TBuf16 TIdleModeText; + + + class TSetUpIdleModeTextV1 : public TSatPCmdBase + /** + Contains a SET UP IDLE MODE TEXT proactive command issued by the UICC. See + ETSI TS 102 223 v5.9.0 section 6.6.22 and RSat::NotifySetUpIdleModeTextPCmd() + for more information about the command. + + Request notification for SET UP IDLE MODE TEXT with + RSat::NotifySetUpIdleModeTextPCmd(), passing it an object in which to store + the command when it arrives. Pass a packaged version of the latest + "TSetUpIdleModeText" class. For Symbian OS versions up to and including + v8.1a and 8.1b use RSat::TSetUpIdleModeTextV1Pckg, a packaged + RSat::TSetUpIdleModeTextV1. For later versions of Symbian OS, check for an + updated API (RSat::TSetUpIdleModeTextV2 etc). + + @see RSat::TSetUpIdleModeTextV1Pckg + @see RSat::NotifySetUpIdleModeTextPCmd() + @see RSat::TSatTextCoding + */ + { + public: + IMPORT_C TSetUpIdleModeTextV1(); + public: + + /** Describes the type of command: does it contain new idle mode text + or should the existing idle mode text be removed? */ + TSetUpIdleModeTextType iType; + + /** Idle mode text. + Only valid if iType is RSat::EUpdateIdleModeText. */ + TIdleModeText iText; + + /** Identifies the icon to display. + Only valid if iType is RSat::EUpdateIdleModeText. */ + TIconId iIconId; + + /** + Specifies whether the text is 7-bit packed, 7-bit unpacked (i.e. + 8-bit) or UCS-2 16-bit. + */ + TSatTextCoding iCodingScheme; + }; + + /** A packaged RSat::TSetUpIdleModeTextV1. */ + typedef TPckg TSetUpIdleModeTextV1Pckg; + + class TSetUpIdleModeTextV5 : public TSetUpIdleModeTextV1 + /** + Contains a SET UP IDLE MODE TEXT proactive command issued by the UICC. See + ETSI TS 102 223 v5.9.0 section 6.6.22 and RSat::NotifySetUpIdleModeTextPCmd() + for more information about the command. + + Request notification for SET UP IDLE MODE TEXT with + RSat::NotifySetUpIdleModeTextPCmd(), passing it an object in which to store + the command when it arrives. Pass a packaged version of the latest + "TSetUpIdleModeText" class. For Symbian OS versions up to and including + v8.1a and 8.1b use RSat::TSetUpIdleModeTextV1Pckg, a packaged + RSat::TSetUpIdleModeTextV1. + For Symbian OS 9.2, use RSat::TSetUpIdleModeTextV5Pckg. + For later versions of Symbian OS, check for an + updated API (RSat::TSetUpIdleModeTextV6 etc). + + @see RSat::TSetUpIdleModeTextV1 + @see RSat::TSetUpIdleModeTextV5Pckg + @see RSat::NotifySetUpIdleModeTextPCmd() + */ + { + public: + IMPORT_C TSetUpIdleModeTextV5(); + + public: + /** Contains formatting information to be applied when + RSat::TSetUpIdleModeTextV1::iText is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TSetUpIdleModeTextV5. */ + typedef TPckg TSetUpIdleModeTextV5Pckg; + + class TSetUpIdleModeTextV6 : public TSetUpIdleModeTextV5 + /** + Contains a SET UP IDLE MODE TEXT proactive command issued by the UICC. See + ETSI TS 102 223 v5.9.0 section 6.6.22 and RSat::NotifySetUpIdleModeTextPCmd() + for more information about the command. + + Request notification for SET UP IDLE MODE TEXT with + RSat::NotifySetUpIdleModeTextPCmd(), passing it an object in which to store + the command when it arrives. Pass a packaged version of the latest + "TSetUpIdleModeText" class. For Symbian OS versions up to and including + v8.1a and 8.1b use RSat::TSetUpIdleModeTextV1Pckg, a packaged + RSat::TSetUpIdleModeTextV1. + For Symbian OS 9.2, use RSat::TSetUpIdleModeTextV5Pckg. + For Symbian OS 9.4, use RSat::TSetUpIdleModeTextV6Pckg. + For later versions of Symbian OS, check for an + updated API (RSat::TSetUpIdleModeTextV7 etc). + + @see RSat::TSetUpIdleModeTextV5 + @see RSat::TSetUpIdleModeTextV6Pckg + @see RSat::NotifySetUpIdleModeTextPCmd() + + */ + { + public: + IMPORT_C TSetUpIdleModeTextV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TSetUpIdleModeTextV6. */ + typedef TPckg TSetUpIdleModeTextV6Pckg; + + IMPORT_C void NotifySetUpIdleModeTextPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + class TSetUpIdleModeTextRspV1 : public TSatPCmdBase + /** + Contains your response to a SET UP IDLE TEXT proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifySetUpIdleModeTextPCmd() for more information about + the command. + + For Symbian OS versions up to and including v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TSetUpIdleModeTextRspV1Pckg (a packaged TSetUpIdleModeTextRspV1). + For later versions of Symbian OS, check for an updated API + (RSat::TSetUpIdleModeTextRspV2 etc). + + @see RSat::NotifySetUpIdleModeTextPCmd() + */ + { + public: + IMPORT_C TSetUpIdleModeTextRspV1(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If the value in iGeneralResult does not require + any information then leave this field empty.*/ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TSetUpIdleModeTextRspV1. */ + typedef TPckg TSetUpIdleModeTextRspV1Pckg; + + // + //SEND DTMF COMMAND + // + /** + @see RSat::TDtmfString + */ + enum{KDtmfStringMaxSize=243}; + + /** Part of the SEND DTMF proactive command. + This contains the DTMF string. Maximum size is 243. + @see RSat::TSendDtmfV1 */ + typedef TBuf8 TDtmfString; + + class TSendDtmfV1 : public TSatPCmdBase + /** + Contains a SEND DTMF proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifySendDtmfPCmd() for more information about + the command. + + Request notification for SEND DTMF with RSat::NotifySendDtmfPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSendDtmf" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TSendDtmfV1Pckg, a packaged + RSat::TSendDtmfV1. For later versions of Symbian OS, check for an updated + API (RSat::TSendDtmfV2 etc). + + @see RSat::TSendDtmfV1Pckg + @see RSat::NotifySendDtmfPCmd() + */ + { + public: + IMPORT_C TSendDtmfV1(); + public: + TAlphaId iAlphaId; //< An alpha identifier containing text to display. + TDtmfString iDtmfString; //< The DTMF string. + TIconId iIconId; //< An icon to display. + }; + + /** A packaged RSat::TSendDtmfV1. */ + typedef TPckg TSendDtmfV1Pckg; + + class TSendDtmfV5 : public TSendDtmfV1 + /** + Contains a SEND DTMF proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifySendDtmfPCmd() for more information about + the command. + + Request notification for SEND DTMF with RSat::NotifySendDtmfPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSendDtmf" class. + For Symbian OS versions up to and including v8.1a and 8.1b use + RSat::TSendDtmfV1Pckg, a packaged RSat::TSendDtmfV1. + For Symbian OS 9.2, use RSat::TSendDtmfV5Pckg. + For later versions of Symbian OS, check for an updated + API (RSat::TSendDtmfV6 etc). + + @see RSat::TSendDtmfV1 + @see RSat::TSendDtmfV5Pckg + @see RSat::NotifySendDtmfPCmd() + */ + { + public: + IMPORT_C TSendDtmfV5(); + + public: + /** Contains formatting information to be applied when + RSat::TSendDtmfV5::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TSendDtmfV5. */ + typedef TPckg TSendDtmfV5Pckg; + + class TSendDtmfV6 : public TSendDtmfV5 + /** + Contains a SEND DTMF proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifySendDtmfPCmd() for more information about + the command. + + Request notification for SEND DTMF with RSat::NotifySendDtmfPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSendDtmf" class. + For Symbian OS versions up to and including v8.1a and 8.1b use + RSat::TSendDtmfV1Pckg, a packaged RSat::TSendDtmfV1. + For Symbian OS 9.2, use RSat::TSendDtmfV5Pckg. + For Symbian OS 9.4, use RSat::TSendDtmfV6Pckg. + For later versions of Symbian OS, check for an updated + API (RSat::TSendDtmfV7 etc). + + @see RSat::TSendDtmfV1 + @see RSat::TSendDtmfV5 + @see RSat::TSendDtmfV6Pckg + @see RSat::NotifySendDtmfPCmd() + + */ + { + public: + IMPORT_C TSendDtmfV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TSendDtmfV6. */ + typedef TPckg TSendDtmfV6Pckg; + + IMPORT_C void NotifySendDtmfPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + class TSendDtmfRspV1 : public TSatPCmdBase + /** + Contains your response to a SEND DTMF proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifySendDtmfPCmd() for more information about + the command. + + For Symbian OS versions up to and including v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TSendDtmfRspV1Pckg (a packaged TSendDtmfRspV1). + For later versions of Symbian OS, check for an updated API + (RSat::TSendDtmfRspV2 etc). + + @see RSat::NotifySendDtmfPCmd() + */ + { + public: + IMPORT_C TSendDtmfRspV1(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If the value in iGeneralResult does not require + any information then leave this field empty.*/ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TSendDtmfRspV1. */ + typedef TPckg TSendDtmfRspV1Pckg; + + // + // PERFORM CARD APDU + // + /** + @see RSat::TApduData + */ + enum{KApduDataMaxSize=236}; + typedef TBuf8 TApduData; + + struct TCApdu + /** Part of the PERFORM CARD APDU proactive command. + This contains the APDU command for the card. */ + { + TUint8 iCla; //< Command class + TUint8 iIns; //< Command instruction code + TUint8 iP1; //< P1 parameter + TUint8 iP2; //< P2 parameter + TUint8 iLc; //< Length of command data sent by the application layer in a case 3 or 4 Command. + TApduData iData;//< Data + TUint8 iLe; //< Maximum length of data expected by the application layer in response to a case 2 or 4 Command. + }; + + + class TPerformCardApduV2 : public TSatPCmdBase + /** + Contains a PERFORM CARD APDU proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyPerformCardApduPCmd() for more information about + the command. + + Request notification for PERFORM CARD APDU with + RSat::NotifyPerformCardApduPCmd(), passing it an object in which to store + the command when it arrives. Pass a packaged version of the latest + "TPerformCardApdu" class. For Symbian OS version from 7.0s to v8.1a and + 8.1b use RSat::TPerformCardApduV2Pckg, a packaged RSat::TPerformCardApduV2. + For later versions of Symbian OS, check for an updated API + (RSat::TPerformCardApduV3 etc). + + @see RSat::TPerformCardApduV2Pckg + @see RSat::NotifyPerformCardApduPCmd() + */ + { + public: + IMPORT_C TPerformCardApduV2(); + public: + TDeviceId iDestination; //< The destination for the command. + TCApdu iCApdu; //< The APDU command. + }; + + /** A packaged RSat::TPerformCardApduV2. */ + typedef TPckg TPerformCardApduV2Pckg; + + IMPORT_C void NotifyPerformCardApduPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TPerformCardApduRspV2 : public TSatPCmdBase + /** + Contains your response to a PERFORM CARD APDU proactive command. Pass + this to the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and + RSat::NotifyPerformCardApduPCmd() for more information about the command. + + For Symbian OS versions from 7.0s to v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TPerformCardApduV2Pckg (a packaged + TPerformCardApduRspV2). For later versions of Symbian OS, check for an + updated API (RSat::TPerformCardApduRspV3 etc). + + @see RSat::NotifyPerformCardApduPCmd() + */ + { + public: + IMPORT_C TPerformCardApduRspV2(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If there a response to the APDU then set this to + RSat::KRApdu. If something goes wrong, then some error values of + iGeneralResult require additional information, in which case set this + to RSat::KMeProblem. Otherwise set to RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** This should be the card's response to the APDU, is there is one. + Otherwise, some error values of iGeneralResult require additional + information, which goes here. */ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TPerformCardApduRspV2. */ + typedef TPckg TPerformCardApduRspV2Pckg; + + // + // POWER OFF CARD + // + + class TPowerOffCardV2 : public TSatPCmdBase + /** + Contains a POWER OFF CARD proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyPowerOffCardPCmd() for more information about + the command. + + Request notification for POWER OFF CARD with RSat::NotifyPerformCardApduPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TPowerOffCard" class. For Symbian OS versions + from 7.0s to v8.1a and 8.1b use RSat::TPowerOffCardV2Pckg, a packaged + RSat::TPowerOffCardV2. For later versions of Symbian OS, check for an updated + API (RSat::TPowerOffCardV3 etc). + + @see RSat::TPowerOffCardV2Pckg + @see RSat::NotifyPowerOffCardPCmd() + */ + { + public: + IMPORT_C TPowerOffCardV2(); + public: + TDeviceId iDestination; //< The card whose session should be closed. + }; + + /** A packaged RSat::TPowerOffCardV2. */ + typedef TPckg TPowerOffCardV2Pckg; + + IMPORT_C void NotifyPowerOffCardPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + class TPowerOffCardRspV2 : public TSatPCmdBase + /** + Contains your response to a POWER OFF CARD proactive command. Pass + this to the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and + RSat::NotifyPowerOffCardPCmd() for more information about the command. + + For Symbian OS versions from 7.0s to v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TPowerOffCardRspV2Pckg (a packaged + TPowerOffCardRspV2). For later versions of Symbian OS, check for an + updated API (RSat::TPowerOffCardRspV3 etc). + + @see RSat::NotifyPowerOffCardPCmd() + */ + { + public: + IMPORT_C TPowerOffCardRspV2(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If the value in iGeneralResult does not require + any information then leave this field empty.*/ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TPowerOffCardRspV2. */ + typedef TPckg TPowerOffCardRspV2Pckg; + + // + // POWER ON CARD + // + + + class TPowerOnCardV2 : public TSatPCmdBase + /** + Contains aPOWER ON CARD proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyPowerOnCardPCmd() for more information about + the command. + + Request notification for POWER ON CARD with RSat::NotifyPerformCardApduPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TPowerOnCard" class. For Symbian OS versions + from 7.0s to v8.1a and 8.1b use RSat::TPowerOnCardV2Pckg, a packaged + RSat::TPowerOnCardV2. For later versions of Symbian OS, check for an updated + API (RSat::TPowerOnCardV3 etc). + + @see RSat::TPowerOnCardV2Pckg + @see RSat::NotifyPowerOnCardPCmd() + */ + { + public: + IMPORT_C TPowerOnCardV2(); + public: + TDeviceId iDestination; //< The card to turn on. + }; + + /** A packaged RSat::TPowerOnCardV2. */ + typedef TPckg TPowerOnCardV2Pckg; + + IMPORT_C void NotifyPowerOnCardPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TPowerOnCardRspV2 : public TSatPCmdBase + /** + Contains your response to a POWER ON CARD proactive command. Pass + this to the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and + RSat::NotifyPowerOnCardPCmd() for more information about the command. + + For Symbian OS versions from 7.0s to v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TPowerOnCardRspV2Pckg (a packaged + TPowerOnCardRspV2). For later versions of Symbian OS, check for an + updated API (RSat::TPowerOnCardRspV3 etc). + + @see RSat::NotifyPowerOnCardPCmd() + */ + { + public: + IMPORT_C TPowerOnCardRspV2(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If there a Answer To Reset (ATR) from the card, set this to + RSat::KCardATR. If something goes wrong, then some error values of + iGeneralResult require additional information, in which case set this + to RSat::KMeProblem. Otherwise set to RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** This should be the card's Answer To Reset (ATR), is there is one. + Otherwise, some error values of iGeneralResult require additional + information, which goes here. */ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TPowerOnCardRspV2. */ + typedef TPckg TPowerOnCardRspV2Pckg; + + // + // GET READER STATUS + // + + enum TGetReaderStatusMode + /** Part of a GET READER STATUS proactive command. + Describes the information that the UICC is requesting. + @see RSat::TGetReaderStatusV2 */ + { + ECardReaderModeNotSet, //< Initialisation value. + ECardReaderStatus, //< Return the card reader's status, as described in the "Card Reader Status" object in ETSI TS 102 223. + ECardReaderIdentifier //< Return the card reader's identifier, as described in the "Card Reader Identifier" object in ETSI TS 102 223. + }; + + + class TGetReaderStatusV2 : public TSatPCmdBase + /** + Contains a GET READER STATUS proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyGetReaderStatusPCmd() for more information about + the command. + + Request notification for GET READER STATUS with RSat::NotifyGetReaderStatusPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TGetReaderStatus" class. For Symbian OS versions + from 7.0s to v8.1a and 8.1b use RSat::TGetReaderStatusV2Pckg, a packaged + RSat::TGetReaderStatusV2. For later versions of Symbian OS, check for an updated + API (RSat::TGetReaderStatusV2 etc). + + @see RSat::TGetReaderStatusV2Pckg + @see RSat::NotifyGetReaderStatusPCmd() + */ + { + public: + IMPORT_C TGetReaderStatusV2(); + public: + /** The card reader whose information is wanted by the UICC. */ + TDeviceId iDestination; + + /** Describes the information that the UICC is requesting: the card + reader's identification or the card reader's status.*/ + TGetReaderStatusMode iMode; + }; + + /** A packaged RSat::TGetReaderStatusV2. */ + typedef TPckg TGetReaderStatusV2Pckg; + + IMPORT_C void NotifyGetReaderStatusPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TGetReaderStatusRspV2 : public TSatPCmdBase + /** + Contains your response to a DISPLAY TEXT proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyGetReaderStatusPCmd() for more information about + the command. + + For Symbian OS versions from 7.0s to v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TGetReaderStatusRspV2Pckg (a packaged + TGetReaderStatusRspV2). For later versions of Symbian OS, check for an + updated API (RSat::TGetReaderStatusRspV3 etc). + + @see RSat::NotifyGetReaderStatusPCmd() + */ + { + public: + IMPORT_C TGetReaderStatusRspV2(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If returning card reader information to the UICC, set this to + RSat::KCardReaderInfo. If something goes wrong, then some error values of + iGeneralResult require additional information, in which case set this + to RSat::KMeProblem. Otherwise set to RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** This should the card reader information, if it could read. + Otherwise, some error values of iGeneralResult require additional + information, which goes here. */ + TAdditionalInfo iAdditionalInfo; + + /** Requested mode. This should be the same as the + RSat::TGetReaderStatusV2::iMode in the initial GET READER STATUS. */ + TGetReaderStatusMode iMode; + }; + + /** A packaged RSat::TGetReaderStatusRspV2. */ + typedef TPckg TGetReaderStatusRspV2Pckg; + + // + // RUN AT COMMAND + // + + /** + @see RSat::TAtCommand + */ + enum {KAtCommandMaxSize=245}; + + /** Part of the RUN AT COMMAND proactive command. + This contains the AT command string. Maximum size is 245 bytes. + @see RSat::TRunAtCommandV2 */ + typedef TBuf8 TAtCommand; + + class TRunAtCommandV2 : public TSatPCmdBase + /** + Contains a RUN AT COMMAND proactive command issued by the UICC. See ETSI + TS 102 223 and RSat::NotifyRunAtCommandPCmd() for more information about + the command. Symbian OS support for this command is available from v7.0s + onwards. + + Request notification for RUN AT COMMAND with + RSat::NotifyRunAtCommandPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest + "TRunAtCommand" class. For Symbian OS versions from v7.0s to v8.1a + and 8.1b, use RSat::TRunAtCommandV2Pckg, a packaged RSat::TRunAtCommandV2. + For later versions of Symbian OS, check for an updated API + (RSat::TRunAtCommandV3 etc). + + @see RSat::TRunAtCommandV2Pckg + @see RSat::NotifyRunAtCommandPCmd() + */ + { + public: + IMPORT_C TRunAtCommandV2(); + public: + TAlphaId iAlphaId; //< An optional alpha identifier. + TAtCommand iAtCommand; //< The AT command string. + TIconId iIconId; //< An optional icon. + }; + + /** A packaged RSat::TRunAtCommandV2. */ + typedef TPckg TRunAtCommandV2Pckg; + + class TRunAtCommandV5 : public TRunAtCommandV2 + /** + Contains a RUN AT COMMAND proactive command issued by the UICC. + See ETSI TS 102 223 and RSat::NotifyRunAtCommandPCmd() for more + information about the command. Symbian OS support for this command + is available from v7.0s onwards. + + Request notification for RUN AT COMMAND with + RSat::NotifyRunAtCommandPCmd(), passing it an object in which to + store the command when it arrives. Pass a packaged version of the + latest "TRunAtCommand" class. For Symbian OS versions from v7.0s + to v8.1a and 8.1b, use RSat::TRunAtCommandV2Pckg, a packaged RSat::TRunAtCommandV2. + For Symbian OS 9.2, use RSat::TRunAtCommandV5. + For later versions of Symbian OS, check for an updated API + (RSat::TRunAtCommandV6 etc). + + @see RSat::TSatPCmdBase + @see RSat::TRunAtCommandV2 + @see RSat::TRunAtCommandV5Pckg + @see RSat::NotifyRunAtCommandPCmd() + */ + { + public: + IMPORT_C TRunAtCommandV5(); + + public: + /** Contains formatting information to be applied when + RSat::TRunAtCommandV2::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TRunAtCommandV5. */ + typedef TPckg TRunAtCommandV5Pckg; + + class TRunAtCommandV6 : public TRunAtCommandV5 + /** + Contains a RUN AT COMMAND proactive command issued by the UICC. + See ETSI TS 102 223 and RSat::NotifyRunAtCommandPCmd() for more + information about the command. Symbian OS support for this command + is available from v7.0s onwards. + + Request notification for RUN AT COMMAND with + RSat::NotifyRunAtCommandPCmd(), passing it an object in which to + store the command when it arrives. Pass a packaged version of the + latest "TRunAtCommand" class. For Symbian OS versions from v7.0s + to v8.1a and 8.1b, use RSat::TRunAtCommandV2Pckg, a packaged RSat::TRunAtCommandV2. + For Symbian OS 9.2, use RSat::TRunAtCommandV5. + For Symbian OS 9.4, use RSat::TRunAtCommandV6. + For later versions of Symbian OS, check for an updated API + (RSat::TRunAtCommandV7 etc). + + @see RSat::TSatPCmdBase + @see RSat::TRunAtCommandV2 + @see RSat::TRunAtCommandV5 + @see RSat::TRunAtCommandV6Pckg + @see RSat::NotifyRunAtCommandPCmd() + + */ + { + public: + IMPORT_C TRunAtCommandV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TRunAtCommandV6. */ + typedef TPckg TRunAtCommandV6Pckg; + + IMPORT_C void NotifyRunAtCommandPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TRunAtCommandRspV2 : public TSatPCmdBase + /** + Contains your response to a RUN AT COMMAND proactive command. This should + include the AT response string, if there is one. Pass this to the UICC + with RSat::TerminalRsp(). See ETSI TS 102 223 and + RSat::NotifyRunAtCommandPCmd() for more information about the command. + + For Symbian OS versions from v7.0s to v8.1a and v8.1b, pass + RSat::TerminalRsp() a RSat::TRunAtCommandRspV2Pckg (a packaged + TRunAtCommandRspV2). For later versions of Symbian OS, check for an + updated API (RSat::TRunAtCommandRspV3 etc). + + @see RSat::NotifyRunAtCommandPCmd() + */ + { + public: + IMPORT_C TRunAtCommandRspV2(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If there is a AT response string then set this to + RSat::KATResponse. If something goes wrong, then some error values of + iGeneralResult require additional information, in which case set this + to RSat::KMeProblem. Otherwise set to RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** This should be the AT response string, if there is one. + Otherwise, some error values of iGeneralResult require additional information, + which goes here. */ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TRunAtCommandRspV2. */ + typedef TPckg TRunAtCommandRspV2Pckg; + + // + // LANGUAGE NOTIFICATION + // + + enum TLanguageNotificationType + + /** Part of the LANGUAGE NOTIFICATION proactive command. Determines whether + the UICC is specifying its current language in iLanguage, or is saying that + it is not using a specific language. + @see RSat::TLanguageNotificationV2 */ + { + ENotificationTypeNotSet, //< Initialisation value + + /** No specific language is in use by the UICC. This has the effect of + cancelling previous specific LANGUAGE NOTIFICATION commands. */ + ENonSpecificLangNotification, + + /** The language currently in use by the UICC is given in + RSat::TLanguageNotificationV2::iLanguage. */ + ESpecificLangNotification + }; + + + class TLanguageNotificationV2 : public TSatPCmdBase + /** + Contains a LANGUAGE NOTIFICATION proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyLanguageNotificationPCmd() for more information about + the command. + + Request notification for LANGUAGE NOTIFICATION with + RSat::NotifyLanguageNotificationPCmd(), passing it an object in which to + store the command when it arrives. Pass a packaged version of the latest + "TLanguageNotification" class. For Symbian OS versions up to and including + v8.1a and 8.1b use RSat::TLanguageNotificationV2Pckg, a packaged + RSat:TLanguageNotificationV2. For later versions of Symbian OS, check for + an updated API (RSat::TLanguageNotificationV3 etc). + + @see RSat::TLanguageNotificationV2Pckg + @see RSat::NotifyLanguageNotificationPCmd() + */ + { + public: + IMPORT_C TLanguageNotificationV2(); + public: + + /** Describes the LANGUAGE NOTIFICATION command. Determines whether + the UICC is specifying its current language in iLanguage, or is saying + that it is not using a specific language. */ + TLanguageNotificationType iNotificationType; + + /** Currently used language by (U)ICC. This is pair of alpha-numeric + characters, defined in ISO 639. Each alpha-numeric character shall be + coded on one byte using the SMS default 7-bit coded alphabet as defined + in TS 123 038 with bit 8 set to 0. + + This is only valid if iNotificationType is set to RSat::ESpecificLangNotification. */ + TUint16 iLanguage; + }; + + /** A packaged RSat::TLanguageNotificationV2. */ + typedef TPckg TLanguageNotificationV2Pckg; + + IMPORT_C void NotifyLanguageNotificationPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TLanguageNotificationRspV2 : public TSatPCmdBase + /** + Contains your response to a LANGUAGE NITIFICATION proactive command. Pass + this to the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and + RSat::NotifyLanguageNotificationPCmd() for more information about the command. + + For Symbian OS versions from v7.0s to v8.1a and v8.1b, pass + RSat::TerminalRsp() a RSat::TLanguageNotificationRspV2Pckg (a packaged + TLanguageNotificationRspV2). For later versions of Symbian OS, check for an + updated API (RSat::TLanguageNotificationRspV3 etc). + + @see RSat::NotifyLanguageNotificationPCmd() + */ + { + public: + IMPORT_C TLanguageNotificationRspV2(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If the value in iGeneralResult does not require + any information then leave this field empty.*/ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TLanguageNotificationRspV2. */ + typedef TPckg TLanguageNotificationRspV2Pckg; + + // + // LAUNCH BROWSER + // + enum TBrowserSelection + /** Part of the LAUNCH BROWSER proactive command. + It describes the browser to use. + @see RSat::TLaunchBrowserV2 */ + { + EBrowserSelectionNotSet, //< Command details do not specify the browser selection mode. + ELaunchBrowserIfNotAlreadyLaunched, //< Launch browser if not already launched. + EUseExistingBrowser, //< Use the existing browser (the browser shall not use the active existing secured session). + ECloseExistingLaunchNewBrowserSession //< Close the existing browser session and launch new browser session. + }; + + enum TBrowserIdentity + /** Part of the LAUNCH BROWSER proactive command. + @see RSat::TLaunchBrowserV2 */ + { + EBrowserIdNotSet, //< Initialisation value. + EBrowserIdNotPresent, //< Object not present in the proactive command. + EDefaultBrowser, //< Default browser shall be used. + EBrowserIdNotSpecified, //< Object present but does not identified a known browser ID. + EWMLBrowser, //< WML Browser shall be used. + EHTMLBrowser, //< HTML Browser shall be used. + EXHTMLBrowser, //< XHTML Browser shall be used. + ECHTMLBrowser //< CHTML Browser shall be used. + }; + + enum TBrowserBearer + /** @see RSat::TBearerList */ + { + KSmsBearer =0x00, //< Use SMS. + KCsdBearer =0x01, //< Use a circuit switched connection. + KUssdBearer =0x02, //< Use USSD on GSM/WCDMA networks. + KGprsBearer =0x03 //< Use a packet switched connection. + }; + + /** + @see RSat::TUrl + */ + enum {KUrlMaxSize=243}; + + /** Part of the LAUNCH BROWSER proactive command. + Contains the URL to display. Maximum size is 243 bytes. + @see RSat::TLaunchBrowserV2 */ + typedef TBuf8 TUrl; + + /** + @see RSat::TBearerList + */ + enum {KBearerListMaxSize=4}; + + /** A list containing bearers in order of priority. Each byte in this + descriptor will be a value from RSat::TBrowserBearer that describes the + bearer for the LAUNCH BROWSER command. Use the bearer in byte 1 if + possible, followed by byte 2 etc. The maximum number is 4. + @see RSat::TLaunchBrowserV2 */ + typedef TBuf8 TBearerList; + + /** + @see RSat::TProvisioningFileRef + */ + enum {KFileRefMaxSize=251}; + + /** A provisioning file, used with the LAUNCH BROWESER proactive command. */ + typedef TBuf8 TProvisioningFileRef; + + /** A packaged RSat::TProvisioningFileRef. */ + typedef TPckg TProvisioningFileRefPckg; + + + class TLaunchBrowserV2 : public TSatPCmdBase + /** + Contains a LAUNCH BROWSER proactive command issued by the UICC. See ETSI + TS 102 223 and RSat::NotifyLaunchBrowserPCmd() for more information about + the command. Symbian OS support for this command is available from v7.0s + onwards. + + Request notification for LAUNCH BROWSER with + RSat::NotifyLaunchBrowserPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest + "TLaunchBrowser" class. For Symbian OS 7.0s, 8.0 and 8.1 use + RSat::TLaunchBrowserV2Pckg, a packaged RSat::TLaunchBrowserV2. + For Symbian OS 9.2, use RSat::TLaunchBrowserV5Pckg. For later + versions of Symbian OS, check for an updated API + (RSat::TLaunchBrowserV6 etc). + + @see RSat::TLaunchBrowserV2Pckg + @see RSat::NotifyLaunchBrowserPCmd() + */ + { + public: + IMPORT_C TLaunchBrowserV2(); + public: + IMPORT_C TUint NumberOfFileRef() const; + IMPORT_C TInt GetFileRef (TUint aIndex, TProvisioningFileRef& aFileRef) const; + IMPORT_C TInt AddFileRef (const TProvisioningFileRef& aFileRef); + IMPORT_C void ResetFileRef(); + + TBrowserSelection iBrowserSel; //< Describes the browser to use. + TBrowserIdentity iBrowserId; //< Browser identity. + TUrl iUrl; //< URL to display. Maximum size is 243 bytes. + TBearerList iBearerList; //< List of bearers that can be used to access the URL. They are in order of priority. + TTextString iText; //< Name/identity of the Gateway/Proxy + TAlphaId iAlphaId; //< Alpha identifier for user confirmation phase; see RSat::NotifyLaunchBrowserPCmd() + TIconId iIconId; //< Icon identifier for user confirmation phase; see RSat::NotifyLaunchBrowserPCmd() + protected: + TProvisioningFileRef iFileRef; //< Stored file refs as passed by TSY + TUint8 iOffset[KFileRefMaxSize]; //< Offsets of file ref entries in iFileRef + TUint8 iLength[KFileRefMaxSize]; //< Lengths of file ref entries in iFileRef + TInt iNumOfFiles; //< Number of file refs in iFileRef + }; + + /** A packaged RSat::TLaunchBrowserV2. */ + typedef TPckg TLaunchBrowserV2Pckg; + + class TLaunchBrowserV5 : public TLaunchBrowserV2 + /** + Contains a LAUNCH BROWSER proactive command issued by the UICC. See ETSI + TS 102 223 and RSat::NotifyLaunchBrowserPCmd() for more information about + the command. Symbian OS support for this command is available from v7.0s + onwards. + + Request notification for LAUNCH BROWSER with + RSat::NotifyLaunchBrowserPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest + "TLaunchBrowser" class. For Symbian OS 7.0s, 8.0 and 8.1 use + RSat::TLaunchBrowserV2Pckg, a packaged RSat::TLaunchBrowserV2. + For later versions of Symbian OS, check for an updated API + (RSat::TLaunchBrowserV6 etc). + + @see RSat::TLaunchBrowserV2 + @see RSat::TLaunchBrowserV5Pckg + @see RSat::NotifyLaunchBrowserPCmd() + */ + { + public: + IMPORT_C TLaunchBrowserV5(); + + public: + /** Contains formatting information to be applied when + RSat::TLaunchBrowserV5::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TLaunchBrowserV5. */ + typedef TPckg TLaunchBrowserV5Pckg; + + class TLaunchBrowserV6 : public TLaunchBrowserV5 + /** + Contains a LAUNCH BROWSER proactive command issued by the UICC. See ETSI + TS 102 223 and RSat::NotifyLaunchBrowserPCmd() for more information about + the command. Symbian OS support for this command is available from v7.0s + onwards. + + Request notification for LAUNCH BROWSER with + RSat::NotifyLaunchBrowserPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest "TLaunchBrowser" class. + For Symbian OS 7.0s, 8.0 and 8.1 use RSat::TLaunchBrowserV2Pckg, a packaged RSat::TLaunchBrowserV2. + For Symbian OS 9.4 use RSat::TLaunchBrowserV6Pckg.For later versions of Symbian OS, check for an + updated API(RSat::TLaunchBrowserV7 etc). + + @see RSat::TLaunchBrowserV2 + @see RSat::TLaunchBrowserV6Pckg + @see RSat::NotifyLaunchBrowserPCmd() + + */ + { + public: + IMPORT_C TLaunchBrowserV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TLaunchBrowserV6. */ + typedef TPckg TLaunchBrowserV6Pckg; + + IMPORT_C void GetProvisioningRefFile(TRequestStatus& aReqStatus,const TProvisioningFileRef& aFileRef, TDes8& aFile) const; + IMPORT_C void NotifyLaunchBrowserPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TLaunchBrowserRspV2 : public TSatPCmdBase + /** + Contains your response to a LAUNCH BROWSER proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyLaunchBrowserPCmd() for more information about + the command. + + For Symbian OS versions from v7.0s to v8.1a and v8.1b, pass + RSat::TerminalRsp() a RSat::TLaunchBrowserRspV2Pckg (a packaged + TLaunchBrowserRspV2). For later versions of Symbian OS, check for an + updated API (RSat::TLaunchBrowserRspV3 etc). + + @see RSat::NotifyLaunchBrowserPCmd() + */ + { + public: + IMPORT_C TLaunchBrowserRspV2(); + public: + /** General result of the proactive command. Set this as described in + ETSI TS 102 223 and RSat::KLaunchBrowserError. */ + TPCmdResult iGeneralResult; + + /** Some error values for iGeneralResult (such as + RSat::KLaunchBrowserError) require additional information, in which + case set iInfoType to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Some error values of iGeneralResult require additional information, + which goes here. If iGeneralResult is RSat::KLaunchBrowserError then + place a value from RSat::TBrowserError in here. */ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TLaunchBrowserRspV2. */ + typedef TPckg TLaunchBrowserRspV2Pckg; + + // + // OPEN CHANNEL + // + + + enum TOpenChannelType + /** Part of an OPEN CHANNEL proactive command. There are three types of OPEN + CHANNEL command described in ETSI TS 102 223, 3GPP TS 31.111 and 3GPP2 + C.S0035-0. RSat::TOpenChannelType is set to the type of command. + @see RSat::TOpenChannelBaseV2 + @see RSat::NotifyOpenChannelPCmd() + */ + { + EPCmdTypeNotSet, //< OPEN CHANNEL type not set + ECsBearer, //< OPEN CHANNEL proactive command related to Circuit Switched (CS) bearer. + EGprsBearer, //< OPEN CHANNEL proactive command related to Packet Switched bearer. On GSM/WCDMA networks, this means GPRS. + ELocalLinksBearer, //< OPEN CHANNEL proactive command for local links such as bluetooth and IrDA. + EAnyBearer, //< OPEN CHANNEL proactive comment related to any bearer. + EUiccServerMode //< OPEN CHANNEL proactive command related to UICC in server mode. + }; + + + enum TLinkEstablishment + /** Part of an OPEN CHANNEL proactive command. Should the channel be + opened now, or should you wait until you are given some data to send? + @see RSat::TOpenChannelBaseV2 + */ + { + ELinkEstablishmentNotSet, //< Link establishment not set + EOnDemand, //< On demand link establishment + EImmediate //< Immediate link establishment + }; + + enum TReconnectionMode + + /** Part of an OPEN CHANNEL proactive command. If an attempt to make a + connection fails, should you try again automatically? + @see RSat::TOpenChannelBaseV2 + */ + { + EReconnectionModeNotSet, //< Reconnection mode not set + + /** Reconnection should not be automatic. Do not attempt to reconnect. */ + ENoAutomaticReconnection, + + /** Reconnection should be automatic. Attempt to reconnect if the + first attempt fails. The OPEN CONNECTION command may include a time + limit for reconnection attempts. */ + EAutomaticReconnection + }; + + enum TBearerType + /** Part of an OPEN CHANNEL proactive command. Used by RSat::TBearer. + Defines the bearer type that you should use to open the channel. + @see RSat::TOpenChannelBaseV2 + */ + { + EBearerTypeNotSet, //< Bearer type not set + ECSDBearer, //< Circuit Switched Data bearer + EGPRSBearer, //< GPRS bearer + EDefaultBearer, //< Default bearer + EBTBearer, //< Bluetooth bearer + EIrDaBearer, //< Infra red bearer + ERS232Bearer, //< RS232 bearer + EUSBBearer, //< USB bearer + EUtranBearer // TBearerParams; + + struct TBearer + /** Part of an OPEN CHANNEL proactive command. Defines the bearer that you + should use to open a channel, plus any parameters necessary. + @see RSat::TOpenChannelBaseV2 + */ + { + TBearerType iType; //< Indicates the type of bearer + TBearerParams iParams; //< Params specific to the bearer + }; + + enum TOtherAddressType + /** Part of an OPEN CHANNEL proactive command. Used by RSat::TOtherAddress. + Defines the type of the IP addresses used when opening a channel. + @see RSat::TOpenChannelBaseV2 + */ + { + EAddressNotSet, //< Initialisation value. + EAddressNotPresent, //< This optional element is not present in this proactive command. + EIPv4Address, //< IP address is a IPv4 address + EIPv6Address //< IP address is a IPv6 address + }; + + /** + @see RSat::TOtherAddress + */ + enum {KPcktAddressMaxSize=19}; + + struct TOtherAddress + /** Part of an OPEN CHANNEL proactive command. + Used to define each the addresses needed when opening a channel. + @see RSat::TOpenChannelBaseV2 + */ + { + TOtherAddressType iType; //< Other address type. + TBuf8 iAddress; //< Other address. Maximum size is 19 bytes. + }; + + enum TTransportProtocol + /** Part of an OPEN CHANNEL proactive command. Used by RSat::TSimMeInterface. + Describes the transport protocol to use for the channel. + @see RSat::TOpenChannelBaseV2 + */ + { + EProtocolNotSet, //< Transport protocol not set + EProtocolNotPresent, //< Transport protocol details not present in proactive comment + EUdp, //< UDP transport protocol + ETcp, //< TCP transport protocol + ETcpUiccInServerMode //< TCP, UICC in server mode + }; + + struct TSimMeInterface + /** Part of an OPEN CHANNEL proactive command. + Describes the transport protocol and port number to use for the channel. + @see RSat::TOpenChannelBaseV2 + */ + { + TTransportProtocol iTransportProto; //< Transport protocol + TUint16 iPrtNumber; //< Port Number + }; + + + class TOpenChannelBaseV2 : public TSatPCmdBase + /** + Part of an OPEN CHANNEL proactive command which asks the phone to open a + channel to a particular bearer. More description of this command can be + found in RSat::NotifyOpenChannelPCmd(). + + OPEN CHANNEL commands can be of one of a number of types, depending upon + the type of bearer required. RSat::TOpenChannelBaseV2 contains fields + common to specific OPEN CHANNEL commands. Other + classes inherit from this class to provide an OPEN CHANNEL command for + circuit switched (RSat::TOpenCsChannelV2), packet switched + (RSat::TOpenGprsChannelV2, local (RSat::TOpenLocalLinksChannelV2) channels + and a channel for UICC server mode (RSat::TOpenUiccServerModeChannelV7). + + @see RSat::TOpenChannelBaseV2Pckg + @see RSat::NotifyOpenChannelPCmd() + */ + { + public: + IMPORT_C TOpenChannelBaseV2(); + public: + /** Determines the type of OPEN CHANNEL command. Indicates that a local, + circuit-switched or packet-switched channel should be opened. */ + TOpenChannelType iPCmdType; + TLinkEstablishment iLinkEst; //< Link establishment. Should the the channel be opened now, or should you wait until you are given some data to send? + TReconnectionMode iReconnectionMode;//< Reconnection mode. If an attempt to make a connection fails, should you try again automatically? + TAlphaId iAlphaId; //< Alpha identifier to display to the user. + TIconId iIconId; //< Identifies the icon to display. + TBearer iBearer; //< Bearer for the channel. + TUint16 iBufferSize; //< Buffer size + TSimMeInterface iSimMeInterface; //< SIM / ME interface. + TOtherAddress iDestinationAddress; //< Destination address. + }; + + /** A packaged RSat::TOpenChannelBaseV2. */ + typedef TPckg TOpenChannelBaseV2Pckg; + + + class TOpenCsChannelV2 : public TOpenChannelBaseV2 + /** + This contains a packet switched OPEN CHANNEL proactive command which asks + the phone to open a channel to a circuit switched bearer. All the + parameters for the channel are supplied in RSat::TOpenCsChannelV2's + fields and its base class, RSat::TOpenChannelBaseV2. + + Note: Alternative OPEN CHANNEL commands request a packet switched or local + channel; see RSat::TOpenGprsChannelV2 and RSat::TOpenLocalLinksChannelV2 + respectively. + + More description of the OPEN CHANNEL command can be found in + RSat::NotifyOpenChannelPCmd(). + + @see RSat::NotifyOpenChannelPCmd() + @see RSat::TOpenChannelBaseV2 + @see RSat::TOpenCsChannelV2Pckg + @see RSat::TOpenGprsChannelV2 + @see RSat::TOpenLocalLinksChannelV2 + */ + { + public: + IMPORT_C TOpenCsChannelV2(); + public: + TAddress iAddress; //< Address to connect to + TSubAddress iSubAddress; //< Sub-address + TDuration iDuration1; //< Duration of reconnection tries + TDuration iDuration2; //< Timeout value before the phone releases the link + TOtherAddress iLocalAddress;//< Local device IP address. This identifers the phone opening the channel + TTextString iUserLogin; //< User login + TTextString iUserPassword; //< User password + }; + + /** A packaged RSat::TOpenCsChannelV2. */ + typedef TPckg TOpenCsChannelV2Pckg; + + class TOpenCsChannelV5 : public TOpenCsChannelV2 + /** + This contains a packet switched OPEN CHANNEL proactive command + which asks the phone to open a channel to a circuit switched + bearer. All the parameters for the channel are supplied in + RSat::TOpenCsChannelV5's fields and its base classes, + RSat::TOpenCsChannelV2 and RSat::TOpenChannelBaseV2. + + Note: Alternative OPEN CHANNEL commands request a packet + switched or local channel; see RSat::TOpenGprsChannelV5 + and RSat::TOpenLocalLinksChannelV5 respectively. + + More description of the OPEN CHANNEL command can be found in + RSat::NotifyOpenChannelPCmd() and ETSI TS 102 223. + + @see RSat::NotifyOpenChannelPCmd() + @see RSat::TOpenChannelBaseV2 + @see RSat::TOpenCsChannelV2 + @see RSat::TOpenCsChannelV5Pckg + @see RSat::TOpenGprsChannelV2 + @see RSat::TOpenLocalLinksChannelV2 + */ + { + public: + IMPORT_C TOpenCsChannelV5(); + + public: + /** Contains formatting information to be applied when + RSat::TOpenChannelBaseV2::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TOpenCsChannelV5. */ + typedef TPckg TOpenCsChannelV5Pckg; + + class TOpenCsChannelV6 : public TOpenCsChannelV5 + /** + This contains a packet switched OPEN CHANNEL proactive command + which asks the phone to open a channel to a circuit switched + bearer. All the parameters for the channel are supplied in + RSat::TOpenCsChannelV6's fields and its base classes, + RSat::TOpenCsChannelV5,RSat::TOpenCsChannelV2 and RSat::TOpenChannelBaseV2. + + Note: Alternative OPEN CHANNEL commands request a packet + switched or local channel; see RSat::TOpenGprsChannelV6 + and RSat::TOpenLocalLinksChannelV6 respectively. + + More description of the OPEN CHANNEL command can be found in + RSat::NotifyOpenChannelPCmd() and ETSI TS 102 223. + + @see RSat::NotifyOpenChannelPCmd() + @see RSat::TOpenChannelBaseV2 + @see RSat::TOpenCsChannelV5 + @see RSat::TOpenCsChannelV2 + @see RSat::TOpenCsChannelV6Pckg + @see RSat::TOpenGprsChannelV6 + @see RSat::TOpenLocalLinksChannelV6 + + */ + { + public: + IMPORT_C TOpenCsChannelV6(); + + public: + TUint iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TOpenCsChannelV6. */ + typedef TPckg TOpenCsChannelV6Pckg; + + /** @see RSat::TAccessName */ + enum {KAccessNameMaxSize=236}; + typedef TBuf8 TAccessName; + + + class TOpenGprsChannelV2 : public TOpenChannelBaseV2 + /** + This contains a packet switched OPEN CHANNEL proactive command which asks + the phone to open a channel to a packet switched bearer. All the + parameters for the channel are supplied in RSat::TOpenGprsChannelV2's + fields and its base class, RSat::TOpenChannelBaseV2. + + Note: Alternative OPEN CHANNEL commands request a circuit switched or local + channel; see RSat::TOpenCsChannelV2 and RSat::TOpenLocalLinksChannelV2 + respectively. + + More description of the OPEN CHANNEL command can be found in + RSat::NotifyOpenChannelPCmd(). + + @see RSat::NotifyOpenChannelPCmd() + @see RSat::TOpenGprsChannelV2Pckg + @see RSat::TOpenChannelBaseV2 + @see RSat::TOpenCsChannelV2 + @see RSat::TOpenLocalLinksChannelV2 + */ + { + public: + IMPORT_C TOpenGprsChannelV2(); + public: + TAccessName iAccessName; //< Access Point Name indentifying the Gateway GSN + TOtherAddress iLocalAddress; //< Local device IP address + }; + + /** A packaged RSat::TOpenGprsChannelV2. */ + typedef TPckg TOpenGprsChannelV2Pckg; + + class TOpenGprsChannelV4 : public TOpenGprsChannelV2 + /** + This class is derived from TOpenGprsChannelV2 and extends the class's functionality + by adding username and password support. + + @see RSat::TOpenGprsChannelV2 + @see RSat::TOpenGprsChannelV4Pckg + */ + { + public: + IMPORT_C TOpenGprsChannelV4(); + public: + /** The user login to use to open the channel */ + TTextString iUserLogin; + + /** The password to use to open the channel */ + TTextString iUserPassword; + }; + + /** A packaged RSat::TOpenGprsChannelV4. */ + typedef TPckg TOpenGprsChannelV4Pckg; + + class TOpenGprsChannelV5 : public TOpenGprsChannelV4 + /** + This contains a packet switched OPEN CHANNEL proactive command + which asks the phone to open a channel to a packet switched + bearer. All the parameters for the channel are supplied in + RSat::TOpenGprsChannelV5's fields and its base classes, + RSat::TOpenGprsChannelV4, RSat::TOpenGprsChannelV2 and + RSat::TOpenChannelBaseV2. + + This class is derived from TOpenGprsChannelV4 and extends the + class's functionality by adding text attribute support for + the alpha identifier. + + Note: Alternative OPEN CHANNEL commands request a circuit + switched or local channel; see RSat::TOpenCsChannelV5 and + RSat::TOpenLocalLinksChannelV5 respectively. + + More description of the OPEN CHANNEL command can be found + in RSat::NotifyOpenChannelPCmd(). + + @see RSat::TOpenChannelBaseV2 + @see RSat::TOpenGprsChannelV2 + @see RSat::TOpenGprsChannelV4 + @see RSat::TOpenGprsChannelV5Pckg + @see RSat::TOpenCsChannelV5 + @see RSat::TOpenLocalLinksChannelV5 + */ + { + public: + IMPORT_C TOpenGprsChannelV5(); + + public: + /** Contains formatting information to be applied when + RSat::TOpenChannelBaseV2::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TOpenGprsChannelV5. */ + typedef TPckg TOpenGprsChannelV5Pckg; + + class TOpenGprsChannelV6 : public TOpenGprsChannelV5 + /** + This contains a packet switched OPEN CHANNEL proactive command + which asks the phone to open a channel to a packet switched + bearer. All the parameters for the channel are supplied in + RSat::TOpenGprsChannelV6's fields and its base classes, + RSat::TOpenGprsChannelV5, RSat::TOpenGprsChannelV4, RSat::TOpenGprsChannelV2 and + RSat::TOpenChannelBaseV2. + + This class is derived from TOpenGprsChannelV5 and extends the + class's functionality by adding Frame identifier support. + + Note: Alternative OPEN CHANNEL commands request a circuit + switched or local channel; see RSat::TOpenCsChannelV6 and + RSat::TOpenLocalLinksChannelV6 respectively. + + More description of the OPEN CHANNEL command can be found + in RSat::NotifyOpenChannelPCmd(). + + @see RSat::TOpenChannelBaseV2 + @see RSat::TOpenGprsChannelV2 + @see RSat::TOpenGprsChannelV4 + @see RSat::TOpenGprsChannelV5 + @see RSat::TOpenGprsChannelV6Pckg + @see RSat::TOpenCsChannelV6 + @see RSat::TOpenLocalLinksChannelV6 + */ + { + public: + IMPORT_C TOpenGprsChannelV6(); + + public: + TUint iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TOpenGprsChannelV6. */ + typedef TPckg TOpenGprsChannelV6Pckg; + + /** + This contains a packet switched OPEN CHANNEL proactive command which asks + the phone to open a channel to a local bearer such as Bluetooth or Irda. All the + parameters for the channel are supplied in RSat::TOpenLocalLinksChannelV2's + fields and its base class, RSat::TOpenChannelBaseV2. + Note: Alternative OPEN CHANNEL commands request a circuit switched or packet + switched channel; see RSat::TOpenCsChannelV2 and RSat::TOpenGprsChannelV2 + respectively. + + More description of the OPEN CHANNEL command can be found in + RSat::NotifyOpenChannelPCmd(). + + @see RSat::NotifyOpenChannelPCmd() + @see RSat::TOpenLocalLinksChannelV2Pckg + @see RSat::TOpenChannelBaseV2 + @see RSat::TOpenGprsChannelV2 + @see RSat::TOpenCsChannelV2 + */ + class TOpenLocalLinksChannelV2 : public TOpenChannelBaseV2 + { + public: + IMPORT_C TOpenLocalLinksChannelV2(); + public: + TDuration iDuration1; //< Duration of reconnection tries + TDuration iDuration2; //< Timeout value before the ME releases the link + TTextString iUserPassword; //< User password + TRemoteEntityAddress iRemoteAddress;//< Remote entity address + }; + + /** A packaged RSat::TOpenLocalLinksChannelV2. */ + typedef TPckg TOpenLocalLinksChannelV2Pckg; + + class TOpenLocalLinksChannelV5 : public TOpenLocalLinksChannelV2 + /** + This contains a packet switched OPEN CHANNEL proactive command which asks + the phone to open a channel to a local bearer such as Bluetooth or Irda. + All the parameters for the channel are supplied in + RSat::TOpenLocalLinksChannelV5's fields and its base classes, + RSat::TOpenLocalLinksChannelV2 and RSat::TOpenChannelBaseV2. + + Note: Alternative OPEN CHANNEL commands request a circuit switched or packet + switched channel; see RSat::TOpenCsChannelV5 and RSat::TOpenGprsChannelV5 + respectively. + + More description of the OPEN CHANNEL command can be found in + RSat::NotifyOpenChannelPCmd(). + + @see RSat::NotifyOpenChannelPCmd() + @see RSat::TOpenLocalLinksChannelV5Pckg + @see RSat::TOpenChannelBaseV2 + @see RSat::TOpenGprsChannelV5 + @see RSat::TOpenCsChannelV5 + */ + { + public: + IMPORT_C TOpenLocalLinksChannelV5(); + + public: + /** Contains formatting information to be applied when + RSat::TOpenChannelBaseV2::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TOpenLocalLinksChannelV5. */ + typedef TPckg TOpenLocalLinksChannelV5Pckg; + + class TOpenLocalLinksChannelV6 : public TOpenLocalLinksChannelV5 + /** + This contains a packet switched OPEN CHANNEL proactive command which asks + the phone to open a channel to a local bearer such as Bluetooth or Irda. + All the parameters for the channel are supplied in + RSat::TOpenLocalLinksChannelV6's fields and its base classes, + RSat::TOpenLocalLinksChannelV5,RSat::TOpenLocalLinksChannelV2 and RSat::TOpenChannelBaseV2. + + Note: Alternative OPEN CHANNEL commands request a circuit switched or packet + switched channel; see RSat::TOpenCsChannelV6 and RSat::TOpenGprsChannelV6 + respectively. + + More description of the OPEN CHANNEL command can be found in + RSat::NotifyOpenChannelPCmd(). + + @see RSat::NotifyOpenChannelPCmd() + @see RSat::TOpenLocalLinksChannelV6Pckg + @see RSat::TOpenChannelBaseV2 + @see RSat::TOpenGprsChannelV6 + @see RSat::TOpenCsChannelV6 + */ + { + public: + IMPORT_C TOpenLocalLinksChannelV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TOpenLocalLinksChannelV6. */ + typedef TPckg TOpenLocalLinksChannelV6Pckg; + + class TOpenUiccServerModeChannelV7 : public TOpenChannelBaseV2 + /** + This contains an OPEN CHANNEL proactive command which asks + the phone to open a channel when the UICC is in server mode. + + All the parameters for the channel are supplied in the fields of + RSat::TOpenUiccServerModeChannelV7 and its base class + RSat::TOpenChannelBaseV2. A number of fields inherited by this class + from RSat::TOpenChannelBaseV2 are not relevant to this proactive command + and should be set to the following values: + + - RSat::TOpenChannelBaseV2::iLinkEst should be set to + RSat::ELinkEstablishmentNotSet. + - RSat::TOpenChannelBaseV2::iReconnectionMode should be set to + RSat::EReconnectionModeNotSet. + - RSat::TBearer::iType in RSat::TOpenChannelBaseV2::iBearer should + be set to RSat::EBearerTypeNotSet. + - RSat::TOtherAddress::iType in RSat::TOpenChannelBaseV2::iDestinationAddress + should be set to RSat::EAddressNotSet. + - RSat::TSimMeInterface::iTransportProto in RSat::TOpenChannelBaseV2::iSimMeInterface + should be set to RSat::EProtocolNotSet. + + More details of the OPEN CHANNEL command can be found in + RSat::NotifyOpenChannelPCmd(). + + @see RSat::NotifyOpenChannelPCmd() + @see RSat::TOpenUiccServerModeChannelV7Pckg + @see RSat::TOpenChannelBaseV2 + @see RSat::TOpenLocalLinksChannelV6 + @see RSat::TOpenGprsChannelV6 + @see RSat::TOpenCsChannelV6 + */ + { + public: + IMPORT_C TOpenUiccServerModeChannelV7(); + + public: + /** Contains formatting information to be applied when + RSat::TOpenChannelBaseV2::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + /** Each frame has an ID. This field contains the ID of the frame. */ + TUint8 iFrameId; + }; + + /** A packaged RSat::TOpenUiccServerModeChannelV7. */ + typedef TPckg TOpenUiccServerModeChannelV7Pckg; + + IMPORT_C void NotifyOpenChannelPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + IMPORT_C void GetOpenChannelPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + /** + * TElementaryFile specifies the EFs that can be modified over the air by the + * network or by the (U)SIM application toolkit on the (U)ICC. This is provided + * in this API for ease of use. + * + * Files that can not be modified are not mentioned in the following constants. + * Other files that do not have a specified file number are not mentioned either + * (mostly the file starting with 0x4F). + * + * It is assumed that unless stated otherwise the following file ids are valid + * for both GSM /WCDMA ICCs and CDMA RUIM. It has not been possible to define + * which of the CDMA EFs can be refreshed. + * + * The enum values of TElementaryFiles are derived directly from ETSI 11.14, + * 3GPP TS 31.102 (Annex A) & 3GPP TS 31.103 (Annex A). + */ + enum TElementaryFiles + { + // + // Commented out EFs cannot be modified over the air and are only included + // to prevent people added them by mistake. + // + // There are already a number of EFs listed that cannot be modified over the + // air: KCsp1Ef, KAdnEf, KCcpEf, KLndEf, KExt1Ef, KNiaEf, KLociGprsEf, + // KRplmnActEf, KCsp2Ef, KPhaseEf, KGmsi, KHiddenKeyEf & KPnnEf. + // + KUnknownEf =0x2000, //< Unknown EF type + KDirEf =0x2F00, //< Application directory EF + KElpEf =0x2F05, //< Extended Language Preference EF + KArrEf =0x2F06, //< Access Rule Reference EF at the MF level. + //KIccId =0x2FE2, //< ICC identification EF (operator dependant) + KImgEf =0x4F20, //< Image EF + KPscEf =0x4F22, //< Phonebook synchronisation counter EF + KCcEf =0x4F23, //< Change counter EF + KPuidEf =0x4F24, //< Previous unique identifier EF + KPbr =0x4F30, //< Phonebook reference file EF + //KSaiEf =0x4F30, //< SoLSA Access Indicator EF (clashes with KPbr) + KSllEf =0x4F31, //< SoLSA LSA List EF + //KMexestEf =0x4F40, //< MExE Service table EF + //KOrpkEf =0x4F41, //< Operator Root Public Key EF + //KArpkEf =0x4F42, //< Administrator Root Public Key EF + //KTprpkEf =0x4F43, //< Third Party Root Public Key EF + KMmlEf =0x4F47, //< Multimedia Messages List EF + KMmdfEf =0x4F48, //< Multimedia Messages Data File EF + //KKcgprsEf =0x4F52, //< GPRS Ciphering key KcGPRS EF + //KCpbcchEf =0x4F63, //< CPBCCH Information EF + KInvScan =0x4F64, //< Investigation File EF + KImpiEf =0x6F02, //< IMS private user identity EF + KImpuEf =0x6F03, //< IMS public user identity EF (Note: TS 31.103 defines this as 6F04) + KDomainEf =0x6F04, //< Home Network Domain Name EF (Note: TS 31.103 defines this as 6F03) + KLpEf =0x6F05, //< Language Preference EF + KArradEf =0x6F06, //< Access rule reference (under ADFUSIM and DFTELECOM) EF + KImsiEf =0x6F07, //< IMSI EF + //KKeysEf =0x6F08, //< Ciphering and Integrity Keys EF + //KKeysPsEf =0x6F09, //< Ciphering and Integrity Keys for Packet Switched domain EF + KCsp1Ef =0x6F15, //< CSP 1 EF (7F20/21 6F15) + KDckEf =0x6F2C, //< De-personalization Control Keys EF + KPlmnSelEf =0x6F30, //< PLMN Selection EF + KHplmnEf =0x6F31, //< Higher Priority PLMN search period EF + KCnlEf =0x6F32, //< Co-operative Network List EF + KAcmMaxEf =0x6F37, //< ACM max value EF + KSstEf =0x6F38, //< SIM Service Table EF + KAcmEf =0x6F39, //< Accumulated Call Meter EF + KAdnEf =0x6F3A, //< Abbreviated Dialling Numbers EF + KFdnEf =0x6F3B, //< Fixed Diallind Numbers EF + KSmsEf =0x6F3C, //< Short Messages EF + KCcpEf =0x6F3D, //< Capability Configuration Parameters EF + KGid1Ef =0x6F3E, //< Group Identifier Level 1 EF + KGid2Ef =0x6F3F, //< Group Identifier Level 2 EF + KMsisdnEf =0x6F40, //< MS ISDN EF + KPuctEf =0x6F41, //< Price per Unit and Currency Table EF + KSmspEf =0x6F42, //< SMS Parameters EF + KSmssEf =0x6F43, //< SMS Status EF + KLndEf =0x6F44, //< Last Number Dialled EF + KCbmiEf =0x6F45, //< Cell Broadcast Message Identifier + KSpnEf =0x6F46, //< Service Provider Name EF + KSmsrEf =0x6F47, //< SMS reports EF + KCbmidEf =0x6F48, //< CBMI for Data Download EF + KSdnEf =0x6F49, //< Service Dialling Numbers EF + KExt1Ef =0x6F4A, //< Extension 1 EF + KExt2Ef =0x6F4B, //< Extension 2 EF + KExt3Ef =0x6F4C, //< Extension 3 EF + KBdnEf =0x6F4D, //< Barred Dialling Numbers EF + KExt5Ef =0x6F4E, //< Extension 5 EF + KCcp2Ef =0x6F4F, //< Capability configuration parameters 2 EF + KCbmirEf =0x6F50, //< CBMI Range Selection EF + KNiaEf =0x6F51, //< Network's Indication of Alerting EF (upto Rel 99) + KLociGprsEf =0x6F53, //< GPRS Location Information EF + KSumeEf =0x6F54, //< SetUpMenu Elements EF + KExt4Ef =0x6F55, //< Extension 4 EF + KEstEf =0x6F56, //< Enabled services table EF + KAclEf =0x6F57, //< Access point name control list EF + KCmiEf =0x6F58, //< Comparison method information EF + KStartHfnEf =0x6F5B, //< Initialisation value for Hyperframe number EF + KThresholdEf =0x6F5C, //< Maximum value of START EF + //KUPlmnwAcTEf =0x6F60, //< User controlled PLMN selector with Access Technology EF + KOPlmnwAcTEf =0x6F61, //< Operator controlled PLMN selector with Access Technology EF + KHPlmnwAcTEf =0x6F62, //< HPLMN selector with Access Technology EF + KRplmnActEf =0x6F65, //< RPLMN Last used Access Technology EF + KPsLociEf =0x6F73, //< Packet switched location information EF + KAccEf =0x6F78, //< Access Control Class EF + KFPlmnEf =0x6F7B, //< Forbidden PLMN EF + //KLociEf =0x6F7E, //< Location Information EF + KIciEf =0x6F80, //< Incoming call information EF + KOciEf =0x6F81, //< Outgoing call information EF + KIctEf =0x6F82, //< Incoming call timer EF + KOctEf =0x6F83, //< Outgoing call timer EF + KCsp2Ef =0x6F98, //< CSP 2 EF (7F40 6F98) + KAdEf =0x6FAD, //< Administrative Data EF + KPhaseEf =0x6FAE, //< Phase Identification EF + KVcgsEf =0x6FB1, //< Voice Group Call Service EF + KVgcssEf =0x6FB2, //< Voice Group Call Service Status EF + KVbsEf =0x6FB3, //< Voice Broadcast Service EF + KVbssEf =0x6FB4, //< Voice Broadcast Service Status EF + KeMlppEf =0x6FB5, //< enhanced Multi Level Pre-emption and Priority EF + KAaemef =0x6FB6, //< Automatic Answer for eMLLP Service EF + KEccEf =0x6FB7, //< Emergency Call Codes EF + KGmsi =0x6FC2, //< Group Identity EF + KHiddenKeyEf =0x6FC3, //< Key for hidden phone book entries EF + //KNetpEf =0x6FC4, //< Network Parameters EF + KPnnEf =0x6FC5, //< PLMN Network Name EF + KOplEf =0x6FC6, //< Operator Network List EF + KMbdnEf =0x6FC7, //< Mailbox Dialling Numbers EF + KExt6Ef =0x6FC8, //< Extension 6 EF + KMbiEf =0x6FC9, //< Mailbox Identifier EF + KMwisEf =0x6FCA, //< Message Waiting Indication Status EF + KCfisEf =0x6FCB, //< Call Forwarding Indication Status EF + KExt7Ef =0x6FCC, //< Extension 7 EF + KSpdiEf =0x6FCD, //< Service provider display information EF + KMmsnEF =0x6FCE, //< MMS notification EF + KExt8Ef =0x6FCF, //< Extension 8 EF + KMmsicpEf =0x6FD0, //< MMS issuer connectivity parameters EF + KMmsupEf =0x6FD1, //< MMS user preferences EF + KMmsucpEf =0x6FD2, //< MMS user connectivity parameters EF + KNiaRel5Ef =0x6FD3, //< Network's Indication of Alerting EF (from Rel 5 onwards) + KVgcscaEf =0x6FD4, //< Voice Group Call Service Ciphering Algorithm EF + KVbscaEf =0x6FD5, //< Voice Broadcast Service Ciphering Algorithm EF + KGbabpEf =0x6FD6, //< GBA Bootstrapping parameters EF + KMsklEf =0x6FD7, //< MBMS Service Keys List EF + KMukEf =0x6FD8, //< MBMS User Key EF + KGbanlEf =0x6FDA, //< GBA NAF List EF + }; + + + // + //REFRESH REQUIRED + // + IMPORT_C void NotifyRefreshRequired(TRequestStatus& aReqStatus) const; + IMPORT_C void NotifyRefreshRequired(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + IMPORT_C void RefreshAllowed(TRequestStatus& aReqStatus, const TDesC8& aRefreshAllowedRsp) const; + + class TOpenChannelRspV2 : public TSatPCmdBase + /** + Contains your response to a OPEN CHANNEL proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyOpenChannelPCmd() for more information about + the command. + + For Symbian OS versions from 7.0s to v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TOpenChannelRspV2Pckg (a packaged + TOpenChannelRspV2). For later versions of Symbian OS, check for an updated + API (RSat::TOpenChannelRspV3 etc). + + @see RSat::NotifyOpenChannelPCmd() + */ + { + public: + IMPORT_C TOpenChannelRspV2(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If you successfully opened a channel, then return the channel's number and + status in iAdditionalInfo and set iInfoType to + RSat::KChannelStatusInfo. Alternatively, some error values of + iGeneralResult require additional information, in which case set this + to RSat::KMeProblem. Otherwise set to RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** If you successfully opened a channel, you need to give the channel + a number from 1 to 7. Return this number plus the channel's status in + iAdditionalInfo. The format is described in ETSI TS 102 223 section + 8.56. See RSat::NotifyOpenChannelPCmd() for more information about + channel numbers. + + Alternatively, some error values of iGeneralResult require additional + information, which goes here. */ + TAdditionalInfo iAdditionalInfo; + + /** The RSat::TBearer from the OPEN CHANNEL command to which you are responding. */ + TBearer iBearer; + + /** The buffer size from the OPEN CHANNEL command to which you are responding.*/ + TUint16 iBufferSize; + }; + + /** A packaged RSat::TOpenChannelRspV2. */ + typedef TPckg TOpenChannelRspV2Pckg; + + // + // CLOSE CHANNEL + // + class TCloseChannelV2 : public TSatPCmdBase + /** + This contains a CLOSE CHANNEL proactive command which asks the phone to + close a channel previously open with an OPEN CHANNEL command. See ETSI + TS 102 223 and RSat::NotifyCloseChannelPCmd() for more information about the + command. + Request notification for CLOSE CHANNEL with + RSat::NotifyCloseChannelPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest + "TCloseChannel" class. For Symbian OS versions from 7.0s to v8.1a and + 8.1b use RSat::TCloseChannelV2Pckg, a packaged RSat::TCloseChannelV2. For later + versions of Symbian OS, check for an updated API (RSat::TCloseChannelV3 etc). + + @see RSat::TCloseChannelV2Pckg + @see RSat::NotifyCloseChannelPCmd() + */ + { + public: + IMPORT_C TCloseChannelV2(); + public: + TDeviceId iDestination; //< Specify which channel to close. + TAlphaId iAlphaId; //< Alpha identifier containg text to display to the user. + TIconId iIconId; //< Identifies the icon to display. + }; + + /** A packaged RSat::TCloseChannelV2. */ + typedef TPckg TCloseChannelV2Pckg; + + class TCloseChannelV5 : public TCloseChannelV2 + /** + This contains a CLOSE CHANNEL proactive command which asks the phone to + close a channel previously open with an OPEN CHANNEL command. See ETSI + TS 102 223 and RSat::NotifyCloseChannelPCmd() for more information about the + command. + Request notification for CLOSE CHANNEL with + RSat::NotifyCloseChannelPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest + "TCloseChannel" class. For Symbian OS versions from 7.0s to v8.1a and + 8.1b use RSat::TCloseChannelV2Pckg, a packaged RSat::TCloseChannelV2. + For Symbian OS 9.2, use RSat::TCloseChannelV5Pckg. + For later versions of Symbian OS, check for an updated API + (RSat::TCloseChannelV6 etc). + + @see RSat::TCloseChannelV2 + @see RSat::TCloseChannelV5Pckg + @see RSat::NotifyCloseChannelPCmd() + */ + { + public: + IMPORT_C TCloseChannelV5(); + + public: + /** Contains formatting information to be applied when + RSat::TCloseChannelV2::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TCloseChannelV5. */ + typedef TPckg TCloseChannelV5Pckg; + + class TCloseChannelV6 : public TCloseChannelV5 + /** + This contains a CLOSE CHANNEL proactive command which asks the phone to + close a channel previously open with an OPEN CHANNEL command. See ETSI + TS 102 223 and RSat::NotifyCloseChannelPCmd() for more information about the + command. + Request notification for CLOSE CHANNEL with + RSat::NotifyCloseChannelPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest + "TCloseChannel" class. For Symbian OS versions from 7.0s to v8.1a and + 8.1b use RSat::TCloseChannelV2Pckg, a packaged RSat::TCloseChannelV2. + For Symbian OS 9.2, use RSat::TCloseChannelV5Pckg. + For Symbian OS 9.4, use RSat::TCloseChannelV6Pckg. + For later versions of Symbian OS, check for an updated API + (RSat::TCloseChannelV7 etc). + + @see RSat::TCloseChannelV5 + @see RSat::TCloseChannelV6Pckg + @see RSat::NotifyCloseChannelPCmd() + */ + { + public: + IMPORT_C TCloseChannelV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TCloseChannelV6. */ + typedef TPckg TCloseChannelV6Pckg; + + IMPORT_C void NotifyCloseChannelPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TCloseChannelRspV2 : public TSatPCmdBase + /** + Contains your response to a CLOSE CHANNEL proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyCloseChannelPCmd() for more information about + the command. + + For Symbian OS versions from 7.0s to v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TCloseChannelRspV2Pckg (a packaged + TCloseChannelRspV2). For later versions of Symbian OS, check for an updated + API (RSat::TCloseChannelRspV3 etc). + + @see RSat::NotifyCloseChannelPCmd() + */ + { + public: + IMPORT_C TCloseChannelRspV2(); + public: + /** General result of the proactive command. Set this as described in + ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If the value in iGeneralResult does not require + any information then leave this field empty.*/ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TCloseChannelRspV2. */ + typedef TPckg TCloseChannelRspV2Pckg; + + // + // RECEIVE DATA + // + + class TReceiveDataV2 : public TSatPCmdBase + /** + Contains a RECEIVE DATA proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyReceiveDataPCmd() for more information about + the command. + + Request notification for RECEIVE DATA with RSat::NotifyReceiveDataPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TReceiveData" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TReceiveDataV1Pckg, a packaged + RSat::TReceiveDataV1. For later versions of Symbian OS, check for an updated + API (RSat::TReceiveDataV2 etc). + + @see RSat::TReceiveDataV2Pckg + @see RSat::NotifyReceiveDataPCmd() + */ + { + public: + IMPORT_C TReceiveDataV2(); + public: + TDeviceId iDestination; //< Specify which channel on which to receive data. + TAlphaId iAlphaId; //< Alpha identifier containing text to display to the user. + TIconId iIconId; //< Identifies the icon to display. + TUint8 iChannelDataLength; //< Number of bytes that are requested. + }; + + /** A packaged RSat::TReceiveDataV2. */ + typedef TPckg TReceiveDataV2Pckg; + + class TReceiveDataV5 : public TReceiveDataV2 + /** + Contains a RECEIVE DATA proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyReceiveDataPCmd() for more information about + the command. + + Request notification for RECEIVE DATA with RSat::NotifyReceiveDataPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TReceiveData" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TReceiveDataV1Pckg, a packaged + RSat::TReceiveDataV1. + For Symbian OS 9.2, use RSat::TReceiveDataV5Pckg. For later versions of + Symbian OS, check for an updated API (RSat::TReceiveDataV5 etc). + + @see RSat::TReceiveDataV2 + @see RSat::TReceiveDataV5Pckg + @see RSat::NotifyReceiveDataPCmd() + */ + { + public: + IMPORT_C TReceiveDataV5(); + + public: + /** Contains formatting information to be applied when + RSat::TReceiveDataV2::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TReceiveDataV5. */ + typedef TPckg TReceiveDataV5Pckg; + + class TReceiveDataV6 : public TReceiveDataV5 + /** + Contains a RECEIVE DATA proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyReceiveDataPCmd() for more information about + the command. + + Request notification for RECEIVE DATA with RSat::NotifyReceiveDataPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TReceiveData" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TReceiveDataV1Pckg, a packaged + RSat::TReceiveDataV1. + For Symbian OS 9.2, use RSat::TReceiveDataV5Pckg. + For Symbian OS 9.4, use RSat::TReceiveDataV6Pckg.For later versions of + Symbian OS, check for an updated API (RSat::TReceiveDataV7 etc). + + @see RSat::TReceiveDataV5 + @see RSat::TReceiveDataV6Pckg + @see RSat::NotifyReceiveDataPCmd() + */ + { + public: + IMPORT_C TReceiveDataV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TReceiveDataV6. */ + typedef TPckg TReceiveDataV6Pckg; + + IMPORT_C void NotifyReceiveDataPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + class TReceiveDataRspV2 : public TSatPCmdBase + /** + Contains your response to a RECEIVE DATA proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyReceiveDataPCmd() for more information about + the command. + + For Symbian OS versions from 7.0s to v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TReceiveDataRspV2Pckg (a packaged + TReceiveDataRspV2). For later versions of Symbian OS, check for an updated + API (RSat::TReceiveDataRspV3 etc). + + @see RSat::NotifyReceiveDataPCmd() + */ + { + public: + IMPORT_C TReceiveDataRspV2(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If you are returning data to the UICC then set this to + RSat::KChannelData. Some error values of iGeneralResult require + additional information, in which case set this to RSat::KMeProblem. + Otherwise set to RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains the data that you are returning to the UICC. + Alternatively, some error values of iGeneralResult require additional + information, which goes here. */ + TAdditionalInfo iAdditionalInfo; + + TUint8 iChannelDataLength; + }; + + /** A packaged RSat::TReceiveDataRspV2. */ + typedef TPckg TReceiveDataRspV2Pckg; + + // + // SEND DATA + // + + enum TSendDataMode + /** Part of a SEND DATA proactive command. Describes the way in which data + is send: should the SEND DATA command's data be sent immediately, or should + the data from a series of SEND DATA command be buffered by the phone and + sent at whatever rate the phone considers to be the best. + + @see RSat::TSendDataV2 + @see RSat::NotifySendDataPCmd() */ + { + ESendDataModeNotSet, + EStoreDataInTxBuffer, + ESendDataImmediately + }; + + /** @see RSat::TChannelData */ + enum {KChannelDataMaxSize=245}; + + /** Part of a SEND DATA proactive command. Contains the data to be sent. + @see RSat::TSendDataV2 + @see RSat::NotifySendDataPCmd() */ + typedef TBuf8 TChannelData; + + + class TSendDataV2 : public TSatPCmdBase + /** + Contains a SEND DATA proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifySendDataPCmd() for more information about + the command. + + Request notification for SEND DATA with RSat::NotifyReceiveDataPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSendData" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TSendDataV1Pckg, a packaged + RSat::TSendDataV1. For later versions of Symbian OS, check for an updated + API (RSat::TSendDataV2 etc). + + @see RSat::TSendDataV2Pckg + @see RSat::NotifySendDataPCmd() + */ + { + public: + IMPORT_C TSendDataV2(); + public: + TDeviceId iDestination; + + /** Should the SEND DATA command's data be sent immediately, or should + the data from a series of SEND DATA command be buffered by the phone + and sent at whatever rate the phone considers to be the best. */ + TSendDataMode iMode; + + TAlphaId iAlphaId; //< Alpha identifier containing text to display to the user. + TIconId iIconId; //< Identifies the icon to display. + TChannelData iChannelData; //< Channel data to send. + }; + + /** A packaged RSat::TSendDataV2. */ + typedef TPckg TSendDataV2Pckg; + + class TSendDataV5 : public TSendDataV2 + /** + Contains a SEND DATA proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifySendDataPCmd() for more information about + the command. + + Request notification for SEND DATA with RSat::NotifyReceiveDataPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSendData" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TSendDataV1Pckg, a packaged + RSat::TSendDataV1. For Symbian OS 9.2, use TSendDataV5Pckg. + For later versions of Symbian OS, check for an updated + API (RSat::TSendDataV6 etc). + + @see RSat::TSendDataV5Pckg + @see RSat::NotifySendDataPCmd() + */ + { + public: + IMPORT_C TSendDataV5(); + + public: + /** Contains formatting information to be applied when + RSat::TSendDataV2::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TSendDataV5. */ + typedef TPckg TSendDataV5Pckg; + + class TSendDataV6 : public TSendDataV5 + /** + Contains a SEND DATA proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifySendDataPCmd() for more information about + the command. + + Request notification for SEND DATA with RSat::NotifyReceiveDataPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TSendData" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TSendDataV1Pckg, a packaged + RSat::TSendDataV1. For Symbian OS 9.2, use TSendDataV5Pckg. + For Symbian OS 9.4, use TSendDataV6Pckg. + For later versions of Symbian OS, check for an updated + API (RSat::TSendDataV7 etc). + + @see RSat::TSendDataV6Pckg + @see RSat::NotifySendDataPCmd() + */ + { + public: + IMPORT_C TSendDataV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TSendDataV6. */ + typedef TPckg TSendDataV6Pckg; + + IMPORT_C void NotifySendDataPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TSendDataRspV2 : public TSatPCmdBase + /** + Contains your response to a SEND DATA proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifySendDataPCmd() for more information about + the command. + + For Symbian OS versions from 7.0s to v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TSendDataRspV2Pckg (a packaged + TSendDataRspV2). For later versions of Symbian OS, check for an updated + API (RSat::TSendDataRspV3 etc). + + @see RSat::NotifySendDataPCmd() + */ + { + public: + IMPORT_C TSendDataRspV2(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + TUint iInfoType; //< Additional Info type + TAdditionalInfo iAdditionalInfo;//< Additional information + TUint8 iChannelDataLength; //< Channel data length. + }; + + /** A packaged RSat::TSendDataRspV2. */ + typedef TPckg TSendDataRspV2Pckg; + + // + // GET CHANNEL STATUS + // + + class TGetChannelStatusV2 : public TSatPCmdBase + /** + Contains a GET CHANNEL STATUS proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyGetChannelStatusPCmd() for more information about + the command. + + Request notification for GET CHANNEL STATUS with RSat::NotifyGetChannelStatusPCmd(), passing + it an object in which to store the command when it arrives. Pass a + packaged version of the latest "TGetChannelStatus" class. For Symbian OS versions + up to and including v8.1a and 8.1b use RSat::TGetChannelStatusV1Pckg, a packaged + RSat::TGetChannelStatusV1. For later versions of Symbian OS, check for an updated + API (RSat::TGetChannelStatusV2 etc). + + @see RSat::TGetChannelStatusV2Pckg + @see RSat::NotifyGetChannelStatusPCmd() + */ + { + public: + IMPORT_C TGetChannelStatusV2(); + }; + + /** A packaged RSat::TGetChannelStatusV2. */ + typedef TPckg TGetChannelStatusV2Pckg; + + IMPORT_C void NotifyGetChannelStatusPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TGetChannelStatusRspV2 : public TSatPCmdBase + /** + Contains your response to a GET CHANNEL STATUS proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyGetChannelStatusPCmd() for more information about + the command. + + For Symbian OS versions from 7.0s to v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TGetChannelStatusRspV2Pckg (a packaged + TGetChannelStatusRspV2). For later versions of Symbian OS, check for an updated + API (RSat::TGetChannelStatusRspV3 etc). + + @see RSat::NotifyGetChannelStatusPCmd() + */ + { + public: + IMPORT_C TGetChannelStatusRspV2(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + TUint iInfoType; //< Additional Info type + TAdditionalInfo iAdditionalInfo;//< Additional information + }; + + /** A packaged RSat::TGetChannelStatusRspV2. */ + typedef TPckg TGetChannelStatusRspV2Pckg; + + // + // SERVICE SEARCH + // + + /** RSat::TServiceSearchParam */ + enum {KServiceSearchMaxSize=242}; + /** Part of a SERVICE SEARCH proactive command. + @see RSat::TServiceSearchV2 */ + typedef TBuf8 TServiceSearchParam; + + struct TServiceSearchInfo + /** Part of a SERVICE SEARCH proactive command. + @see RSat::TServiceSearchV2 */ + { + TLocalBearerId iBearerId; //< Local bearer identifier + TServiceSearchParam iSearchParam; //< Service search parameters + }; + + /** @see RSat::TDeviceFilter */ + enum {KDeviceFilterMaxSize=239}; + /** Part of a SERVICE SEARCH proactive command. + @see RSat::TServiceSearchV2 */ + typedef TBuf8 TDeviceFilter; + + struct TDeviceFilterInfo + /** Part of a SERVICE SEARCH proactive command. + @see RSat::TServiceSearchV2 */ + { + TLocalBearerId iBearerId; //< Bearer identifier + TDeviceFilter iDeviceFilter; //< Device filter + }; + + + class TServiceSearchV2 : public TSatPCmdBase + /** + Contains a SERVICE SEARCH proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyServiceSearchPCmd() for more information about + the command. + + Request notification for SERVICE SEARCH with + RSat::NotifyServiceSearchPCmd(), passing it an object in which to store + the command when it arrives. Pass a packaged version of the latest + "TServiceSearch" class. For Symbian OS version from 7.0s to v8.1a and + 8.1b use RSat:TServiceSearchV2Pckg, a packaged RSat::TServiceSearchV2. + For later versions of Symbian OS, check for an updated API + (RSat::TServiceSearchV3 etc). + + @see RSat::TServiceSearchV2Pckg + @see RSat::NotifyServiceSearchPCmd() + */ + { + public: + IMPORT_C TServiceSearchV2(); + public: + TAlphaId iAlphaId; //< Alpha identifier that may contain text to display to the user. + TIconId iIconId; //< Identifies the icon to display. + TServiceSearchInfo iSearch; //< Service search information + TDeviceFilterInfo iFilter; //< Device filter information + }; + + /** A packaged RSat::TServiceSearchV2. */ + typedef TPckg TServiceSearchV2Pckg; + + class TServiceSearchV5 : public TServiceSearchV2 + /** + Contains a SERVICE SEARCH proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyServiceSearchPCmd() for more information about + the command. + + Request notification for SERVICE SEARCH with + RSat::NotifyServiceSearchPCmd(), passing it an object in which to store + the command when it arrives. Pass a packaged version of the latest + "TServiceSearch" class. For Symbian OS version from 7.0s to v8.1a and + 8.1b use RSat:TServiceSearchV2Pckg, a packaged RSat::TServiceSearchV2. + For Symbian OS 9.2, use TServiceSearchV5Pckg. + For later versions of Symbian OS, check for an updated API + (RSat::TServiceSearchV6 etc). + + @see RSat::TServiceSearchV2 + @see RSat::TServiceSearchV5Pckg + @see RSat::NotifyServiceSearchPCmd() + */ + { + public: + IMPORT_C TServiceSearchV5(); + + public: + /** Contains formatting information to be applied when + RSat::TServiceSearchV2::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TServiceSearchV5. */ + typedef TPckg TServiceSearchV5Pckg; + + class TServiceSearchV6 : public TServiceSearchV5 + /** + Contains a SERVICE SEARCH proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyServiceSearchPCmd() for more information about + the command. + + Request notification for SERVICE SEARCH with + RSat::NotifyServiceSearchPCmd(), passing it an object in which to store + the command when it arrives. Pass a packaged version of the latest + "TServiceSearch" class. For Symbian OS version from 7.0s to v8.1a and + 8.1b use RSat:TServiceSearchV2Pckg, a packaged RSat::TServiceSearchV2. + For Symbian OS 9.2, use TServiceSearchV5Pckg. + For Symbian OS 9.4, use TServiceSearchV6Pckg. + For later versions of Symbian OS, check for an updated API + (RSat::TServiceSearchV7 etc). + + @see RSat::TServiceSearchV5 + @see RSat::TServiceSearchV6Pckg + @see RSat::NotifyServiceSearchPCmd() + */ + { + public: + IMPORT_C TServiceSearchV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TServiceSearchV6. */ + typedef TPckg TServiceSearchV6Pckg; + + IMPORT_C void NotifyServiceSearchPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + class TServiceSearchRspV2 : public TSatPCmdBase + /** + Contains your response to a SERVICE SEARCH proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyServiceSearchPCmd() for more information about + the command. + + For Symbian OS versions from 7.0s to v8.1a and 8.1b pass + RSat::TerminalRsp() a RSat::TServiceSearchRspV2Pckg (a packaged + TServiceSearchRspV2). For later versions of Symbian OS, check for an + updated API (RSat::TServiceSearchRspV3 etc). + + @see RSat::NotifyServiceSearchPCmd() + */ + { + public: + IMPORT_C TServiceSearchRspV2(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + TUint iInfoType; //< Additional Info type + TAdditionalInfo iAdditionalInfo;//< Additional information + }; + + /** A packaged RSat::TServiceSearchRspV2. */ + typedef TPckg TServiceSearchRspV2Pckg; + + // + // GET SERVICE INFO + // + + /** + @see RSat::TAttributeInfo + */ + enum {KAttributeInfoMaxSize=242}; + /** Part of a GET SERVICE INFO proactive command. + @see RSat::TGetServiceInfoV2 */ + typedef TBuf8 TAttributeInfo; + + struct TAttributeInfoDetails + /** Part of a GET SERVICE INFO proactive command. + @see RSat::TGetServiceInfoV2 */ + { + TLocalBearerId iBearerId; //< Local bearer identifier + TAttributeInfo iAttributeInfo; //< Attribute information + }; + + + class TGetServiceInfoV2 : public TSatPCmdBase + /** + Contains a GET SERVICE INFO proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyGetServiceInfoPCmd() for more information about + the command. + + Request notification for GET SERVICE INFO with + RSat::NotifyGetServiceInfoPCmd(), passing it an object in which to store + the command when it arrives. Pass a packaged version of the latest + "TGetServiceInfo" class. For Symbian OS version from 7.0s to v8.1a and + 8.1b use RSat:TGetServiceInfoV2Pckg, a packaged RSat::TGetServiceInfoV2. + For later versions of Symbian OS, check for an updated API + (RSat::TGetServiceInfoV3 etc). + + @see RSat::TGetServiceInfoV2Pckg + @see RSat::NotifyGetServiceInfoPCmd() + */ + { + public: + IMPORT_C TGetServiceInfoV2(); + public: + TAlphaId iAlphaId; //< Alpha identifier that may contain text to display to the user. + TIconId iIconId; //< Identifies the icon to display. + TAttributeInfoDetails iAttributeInfo; //< Attribute information details + }; + + /** A packaged RSat::TGetServiceInfoV2. */ + typedef TPckg TGetServiceInfoV2Pckg; + + class TGetServiceInfoV5: public TGetServiceInfoV2 + /** + Contains a GET SERVICE INFO proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyGetServiceInfoPCmd() for more information about + the command. + + Request notification for GET SERVICE INFO with + RSat::NotifyGetServiceInfoPCmd(), passing it an object in which to store + the command when it arrives. Pass a packaged version of the latest + "TGetServiceInfo" class. For Symbian OS version from 7.0s to v8.1a and + 8.1b use RSat:TGetServiceInfoV2Pckg, a packaged RSat::TGetServiceInfoV2. + For Symbian OS version 9.2, use TGetServiceInfoV5Pckg. + For later versions of Symbian OS, check for an updated API + (RSat::TGetServiceInfoV6 etc). + + @see RSat::TGetServiceInfoV2 + @see RSat::TGetServiceInfoV5Pckg + @see RSat::NotifyGetServiceInfoPCmd() + */ + { + public: + IMPORT_C TGetServiceInfoV5(); + + public: + /** Contains formatting information to be applied when + RSat::TGetServiceInfoV2::iAlphaId is displayed. + @see RSat::TTextAttribute + */ + TTextAttribute iTextAttribute; + }; + + /** A packaged RSat::TGetServiceInfoV5. */ + typedef TPckg TGetServiceInfoV5Pckg; + + class TGetServiceInfoV6: public TGetServiceInfoV5 + /** + Contains a GET SERVICE INFO proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyGetServiceInfoPCmd() for more information about + the command. + + Request notification for GET SERVICE INFO with + RSat::NotifyGetServiceInfoPCmd(), passing it an object in which to store + the command when it arrives. Pass a packaged version of the latest + "TGetServiceInfo" class. For Symbian OS version from 7.0s to v8.1a and + 8.1b use RSat:TGetServiceInfoV2Pckg, a packaged RSat::TGetServiceInfoV2. + For Symbian OS version 9.2, use TGetServiceInfoV5Pckg. + For Symbian OS version 9.4, use TGetServiceInfoV6Pckg. + For later versions of Symbian OS, check for an updated API + (RSat::TGetServiceInfoV7 etc). + + @see RSat::TGetServiceInfoV5 + @see RSat::TGetServiceInfoV6Pckg + @see RSat::NotifyGetServiceInfoPCmd() + */ + { + public: + IMPORT_C TGetServiceInfoV6(); + + public: + TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame. + }; + + /** A packaged RSat::TGetServiceInfoV6. */ + typedef TPckg TGetServiceInfoV6Pckg; + + IMPORT_C void NotifyGetServiceInfoPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + class TGetServiceInfoRspV2 : public TSatPCmdBase + /** + Contains your response to a GET SERVICE INFO proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyGetServiceInfoPCmd() for more information about + the command. + + For Symbian OS versions from 7.0s to v8.1a and 8.1b pass + RSat::TerminalRsp() a RSat::TGetServiceInfoRspV2Pckg (a packaged + TGetServiceInfoRspV2). For later versions of Symbian OS, check for an + updated API (RSat::TGetServiceInfoRspV3 etc). + + @see RSat::NotifyGetServiceInfoPCmd() + */ + { + public: + IMPORT_C TGetServiceInfoRspV2(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + TUint iInfoType; //< Additional Info type + TAdditionalInfo iAdditionalInfo;//< Additional information + TServiceRecordInfo iRecordInfo; //< Service record information + }; + + /** A packaged RSat::TGetServiceInfoRspV2. */ + typedef TPckg TGetServiceInfoRspV2Pckg; + + // + // DECLARE SERVICE + // + + enum TServiceDeclarationType + /** Part of a DECLARE SERVICE proactive command. + + @see RSat::TDeclareServiceV2 */ + { + EDeclarationTypeNotSet, //< Initialization value. + EAddService, //< Add a new service to the ME service database. + EDeleteService //< Delete a service from the ME service database. + }; + + class TDeclareServiceV2 : public TSatPCmdBase + /** + Contains a DECLARE SERVICE proactive command issued by the UICC. See + ETSI TS 102 223 and RSat::NotifyDeclareServicePCmd() for more information about + the command. + + Request notification for DECLARE SERVICE with + RSat::NotifyDeclareServicePCmd(), passing it an object in which to store + the command when it arrives. Pass a packaged version of the latest + "TDeclareService" class. For Symbian OS version from 7.0s to v8.1a and + 8.1b use RSat:TDeclareServiceV2Pckg, a packaged RSat::TDeclareServiceV2. + For later versions of Symbian OS, check for an updated API + (RSat::TDeclareServiceV3 etc). + + @see RSat::TDeclareServiceV2Pckg + @see RSat::NotifyDeclareServicePCmd() + */ + { + public: + IMPORT_C TDeclareServiceV2(); + public: + TServiceDeclarationType iType; //< Service declaration type + TServiceRecordInfo iServiceRecord; //< Service record information + TSimMeInterface iInterface; //< SIM / ME interface + }; + + /** A packaged RSat::TDeclareServiceV2. */ + typedef TPckg TDeclareServiceV2Pckg; + + IMPORT_C void NotifyDeclareServicePCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TDeclareServiceRspV2 : public TSatPCmdBase + /** + Contains your response to a DECLARE SERVICE proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyDeclareServicePCmd() for more information about + the command. + + For Symbian OS versions from 7.0s to v8.1a and 8.1b pass + RSat::TerminalRsp() a RSat::TDeclareServiceRspV2Pckg (a packaged + TDeclareServiceRspV2). For later versions of Symbian OS, check for an + updated API (RSat::TDeclareServiceRspV3 etc). + + @see RSat::NotifyDeclareServicePCmd() + */ + { + public: + IMPORT_C TDeclareServiceRspV2(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + TUint iInfoType; //< Additional Info type + TAdditionalInfo iAdditionalInfo;//< Additional information + }; + + /** A packaged RSat::TDeclareServiceRspV2. */ + typedef TPckg TDeclareServiceRspV2Pckg; + + IMPORT_C void NotifyTsyStateUpdated(TRequestStatus& aReqStatus, TPCmd& aPCmd) const; + + // + // TIMER MANAGEMENT + // + + enum TTimerMgmtType + /** Part of the TIMER MANAGEMENT proactive command. It describes the type + of command: start a timer, stop a timer, or read a timer's value. + @see RSat::TTimerMgmtV3 */ + { + EStartTimer, //< Start a timer running physically on the phone. + EDeactivateTimer, //< Deactivate a timer. + EGetTimerValue //< Get the current value of a timer. + }; + + + class TTimerMgmtV3 : public TSatPCmdBase + /** + Contains a TIMER MANAGEMENT proactive command issued by the UICC. + See ETSI TS 102 223 and RSat::NotifyTimerMgmtPCmd() for more information + about the command. + + Request notification for TIMER MANAGEMENT with + RSat::NotifyTimerMgmtPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest + "TTimerMgmt" class. For Symbian OS versions from 7.0s to v8.1a and + 8.1b use RSat::TTimerMgmtV3Pckg, a packaged RSat::TTimerMgmtV3. For later + versions of Symbian OS, check for an updated API (RSat::TTimerMgmtV4 etc). + + @see RSat::TTimerMgmtV3Pckg + @see RSat::NotifyTimerMgmtPCmd() + */ + { + public: + IMPORT_C TTimerMgmtV3(); + public: + /** This identifies the timer. There can be up to 8 timer. */ + TTimerId iTimerId; + /** The initial value of the timer when setting a new timer. */ + TDuration iTimerValue; + /** Should you start, stop, or read the current value of the timer identifier in iTimerId? */ + TTimerMgmtType iOperation; + }; + + /** A packaged RSat::TTimerMgmtV3. */ + typedef TPckg TTimerMgmtV3Pckg; + + IMPORT_C void NotifyTimerMgmtPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + class TTimerMgmtRspV3 : public TSatPCmdBase + /** + Contains your response to a TIMER MANAGEMENT proactive command. + Pass this to the UICC with RSat::TerminalRsp(). See + RSat::NotifyTimerMgmtPCmd() for more information about the command. + + For Symbian OS versions from 7.0s to v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TTimerMgmtRspV3Pckg (a packaged TTimerMgmtRspV3). + For later versions of Symbian OS, check for an updated API + (RSat::TTimerMgmtRspV4 etc). + + @see RSat::NotifyTimerMgmtPCmd() + */ + { + public: + IMPORT_C TTimerMgmtRspV3(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** Set to RSat::KTimerMgmt if you are returning a timer's value to the + UICC. This occurs when RSat::TTimerMgmtV3::iMode in the original command + was is RSat::EGetTimerValue or RSat::EDeactivateTimer. Otherwise set to + RSat::KMeProblem or RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Return the timer's value in here when RSat::TTimerMgmtV3::iMode in + the original command was is RSat::EGetTimerValue or + RSat::EDeactivateTimer. Alternatively, some error values of + iGeneralResult require additional information, which goes here. */ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TTimerMgmtRspV3. */ + typedef TPckg TTimerMgmtRspV3Pckg; + + // + // PROVIDE LOCAL INFORMATION + // + + /** Part of a PROVIDE LOCAL INFORMATION proactive command + This describes the information that you should provide to the UICC. + + The format of the information depends upon the network on which the phone is + running. For GSM/WCDMA networks, read 3GPP TS 31.111; for CDMA networks + read 3GPP2 C.S0035-0. ETSI TS 102 223 provides generic information + about the PROVIDE LOCAL INFORMATION command. + @see RSat::TLocalInfoV3. */ + enum TLocaInfomationType + { + /** + Location information & phone identity + UICC: MCC, MNC, LAC, Cell ID + */ + KProvideLocalInfo =0x00, + KProvideLocalInfoImei =0x01, //< IMEI of the phone. + KProvideLocalInformationNmr =0x02, //< Network Measurement Results. + KProvideLocalInfoDateTimeTimeZone =0x03, //< Current date, time and time zone. + KProvideLocalInfoLanguage =0x04, //< Language preference. + KProvideLocalInfoTimingAdv =0x05, //< Timing advance (access network dependent). + KProvideLocalInfoAccTech =0x06, //< Current access technology. + KProvideLocalInfoESN =0x07, //< ESN of the phone. + KProvideLocalInfoIMEISV =0x08, //< IMEISV of the terminal; + KProvideLocalInfoSearchMode =0x09, //< Search Mode; + KProvideLocalInfoChargeStateOfBattery =0x0A, //< Charge State of the Battery; + KProvideLocalInfoMEID =0x0B //< MEID of the terminal; + }; + + class TLocalInfoV3 : public TSatPCmdBase + /** + Contains a PROVIDE LOCAL INFORMATION proactive command issued by the UICC. + See ETSI TS 102 223 and RSat::NotifyLocalInfoPCmd() for more information + about the command. + + Request notification for PROVIDE LOCAL INFORMATION with + RSat::NotifyLocalInfoPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest + "TLocalInfo" class. For Symbian OS versions from 7.0s to v8.1a and + 8.1b use RSat::TLocalInfoV3Pckg, a packaged RSat::TLocalInfoV3. For later + versions of Symbian OS, check for an updated API (RSat::TLocalInfoV4 etc). + + @see RSat::TLocalInfoV3Pckg + @see RSat::NotifyLocalInfoPCmd() + */ + { + public: + IMPORT_C TLocalInfoV3(); + public: + TDeviceId iDevideId; //< The device for which the information is required. + TLocaInfomationType iInfoType; //< The type of information required. + }; + + /** A packaged RSat::TLocalInfoV3. */ + typedef TPckg TLocalInfoV3Pckg; + + /** + UTRAN Measurement Qualifier:It shall be included to indicate to the ME that + "Network Measurement Results for a UTRAN" is required,read 3GPP TS 31.111. + @see RSat::TLocalInfoV6. + */ + enum TUtranMeasurementQualifier + { + EUtranMeasurementQualifierNotSet, // TLocalInfoV6Pckg; + + IMPORT_C void NotifyLocalInfoPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + class TLocalInfoRspV3 : public TSatPCmdBase + /** + Contains your response to a PROVIDE LOCAL INFORMATION proactive command. + Pass this to the UICC with RSat::TerminalRsp(). See + RSat::NotifyLocalInfoPCmd() for more information about the command. + + For Symbian OS versions from 7.0s to v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TLocalInfoRspV3Pckg (a packaged TLocalInfoRspV3). + For later versions of Symbian OS, check for an updated API + (RSat::TLocalInfoRspV4 etc). + + Set iGeneralResultSet as defined in the specifications. Set iInfoType to + RSat::KLocalInformation. The local information goes into iAdditionalInfo. + The format of the information depends upon the network on which the phone + is running. For GSM/WCDMA networks, read 3GPP TS 31.111; for CDMA networks + read 3GPP2 C.S0035-0. ETSI TS 102 223 provides generic information about + the PROVIDE LOCAL INFORMATION command. + + @see RSat::NotifyLocalInfoPCmd() + */ + { + public: + IMPORT_C TLocalInfoRspV3(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** Set to RSat::KLocalInformation to return local information, or + possibly RSat::KMeProblem is there is a problem. */ + TUint iInfoType; + + /** Contains the local information requested by the UICC. + Alternatively, some error values of iGeneralResult require additional + information, which goes here. */ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TLocalInfoRspV3. */ + typedef TPckg TLocalInfoRspV3Pckg; + + // + //POLLING INTERVAL + // + class TPollingIntervalV3 : public TSatPCmdBase + /** + Contains a POLL INTERVAL proactive command issued by the UICC. + See ETSI TS 102 223 and RSat::NotifyPollingIntervalPCmd() for more information + about the command. + + Request notification for POLL INTERVAL with + RSat::NotifyPollingIntervalPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest + "TPollingInterval" class. For Symbian OS versions from 7.0s to v8.1a and + 8.1b use RSat::TPollingIntervalV3Pckg, a packaged RSat::TPollingIntervalV3. For later + versions of Symbian OS, check for an updated API (RSat::TPollingIntervalV4 etc). + + @see RSat::TPollingIntervalV3Pckg + @see RSat::NotifyPollingIntervalPCmd() + */ + { + public: + IMPORT_C TPollingIntervalV3(); + public: + TDuration iIntv; //< The requested polling interval. + TDeviceId iDestination; //< The device for which the polling is required. + }; + + /** A packaged RSat::TPollingIntervalV3. */ + typedef TPckg TPollingIntervalV3Pckg; + + IMPORT_C void NotifyPollingIntervalPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + class TPollingIntervalRspV3 : public TSatPCmdBase + /** + Contains your response to a POLL INTERVAL proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS + 102 223 and RSat::NotifyPollingIntervalPCmd() for more information about + the command. + + For Symbian OS versions from 7.0s to v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TPollingIntervalRspV3Pckg (a packaged TPollingIntervalRspV3). + For later versions of Symbian OS, check for an updated API + (RSat::TPollingIntervalRspV4 etc). + + @see RSat::NotifyPollingIntervalPCmd() + */ + { + public: + IMPORT_C TPollingIntervalRspV3(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If you are returning a polling interval, set this to RSat::KPollingIntv. + If the value of iGeneralResult requires additional information, + set this to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Return the polling interval in here. Alternatively, some error + values of iGeneralResult require additional information, which goes + here. */ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TPollingIntervalRspV3. */ + typedef TPckg TPollingIntervalRspV3Pckg; + + // + //Polling Off Card + // + + class TPollingOffV3 : public TSatPCmdBase + /** + Contains a POLLING OFF proactive command issued by the UICC. + See ETSI TS 102 223 and RSat::NotifyPollingOffPCmd() for more information + about the command. + + Request notification for POLLING OFF with + RSat::NotifyPollingIntervalPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest + "TPollingOff" class. For Symbian OS versions from 7.0s to v8.1a and + 8.1b use RSat::TPollingOffV3Pckg, a packaged RSat::TPollingOffV3. For later + versions of Symbian OS, check for an updated API (RSat::TPollingOffV4 etc). + + @see RSat::TPollingOffV3Pckg + @see RSat::NotifyPollingOffPCmd() + */ + { + public: + IMPORT_C TPollingOffV3(); + public: + TDuration iIntv; //< The requested polling interval. + TDeviceId iDestination; //< The device for which the polling is required. + }; + + /** A packaged RSat::TPollingOffV3. */ + typedef TPckg TPollingOffV3Pckg; + + IMPORT_C void NotifyPollingOffPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TPollingOffRspV3 : public TSatPCmdBase + /** + Contains your response to a POLLING OFF proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and + RSat::NotifyPollingOffPCmd() for more information about the command. + + For Symbian OS versions from 7.0s to v8.1a and v8.1b pass + RSat::TerminalRsp() a RSat::TPollingOffRspV3Pckg (a packaged TPollingOffRspV3). + For later versions of Symbian OS, check for an updated API + (RSat::TPollingOffRspV4 etc). + + @see RSat::NotifyPollingOffPCmd() + */ + { + public: + IMPORT_C TPollingOffRspV3(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If the value in iGeneralResult does not require + any information then leave this field empty.*/ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TPollingOffRspV3. */ + typedef TPckg TPollingOffRspV3Pckg; + + // + // V6 PROACTIVE COMMANDS + // + + /** + @see RSat::TMultimediaMessageRef + */ + enum {KMaxMultimediaMessageRefSize = 255}; + + /** + @see RSat::TFileList + */ + enum {KMaxFileListSize = 242}; + + /** + @see RSat::TMultimediaContentId + */ + enum {KMaxMultimediaContentIdSize = 255}; + + /** + @see RSat::TMultimediaMessageId + */ + enum {KMaxMultimediaMessageIdSize = 255}; + + /** + This buffer contains the URI identifying the multimedia message in the network. + @see RSat::KMaxMultimediaMessageRefSize + */ + typedef TBuf TMultimediaMessageRef; + + /** + This buffer contains the information of the received file. + @see RSat::KMMSFileNameSize + */ + typedef TBuf TFileList; + + /** + This buffer ontains the Data Object tag to be used when the MM Content is stored in the referenced BER-TLV file. + @see RSat::KMaxMultimediaContentIdSize + */ + typedef TBuf TMultimediaContentId; + + /** + This may be present only if the iReceptionFile is present. It is mandatory in case the MMS Reception or Submission file can store several MMs. + @see RSat::KMaxMultimediaMessageIdSize + */ + typedef TBuf TMultimediaMessageId; + + // + // RETRIEVE MULTIMEDIA MESSAGE + // + + class TRetrieveMultimediaMessageV6 : public TSatPCmdBase + /** + Contains a RETRIEVE MULTIMEDIA MESSAGE proactive command issued by the UICC. + See ETSI TS 102 223 and RSat::NotifyRetrieveMultimediaMsgPCmd() for more information + about the command. + + Request notification for RETRIEVE MULTIMEDIA MESSAGE with + RSat::NotifyRetrieveMultimediaMsgPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest + "TRetrieveMultimediaMessage" class. For Symbian OS version 9.4 + use RSat::TRetrieveMultimediaMessageV6Pckg, a packaged RSat::TRetrieveMultimediaMessageV6. + For later versions of Symbian OS, check for an updated API (RSat::TRetrieveMultimediaMessageV7 etc). + + @see RSat::TRetrieveMultimediaMessageV6Pckg + @see RSat::NotifyRetrieveMultimediaMsgPCmd() + */ + { + public: + IMPORT_C TRetrieveMultimediaMessageV6(); + public: + TDeviceId iDestination; //< The destination device for the proactive command is the network. + TAlphaId iAlphaId; //< Alpha Identifier + TIconId iIconId; //< Icon identifer + TMultimediaMessageRef iMultimediaMessageRef; //< Contains the URI identifying the multimedia message in the network. + TFileList iReceptionFile; //< MMS Reception File is a path of a file on the UICC. + TMultimediaContentId iMultimediaContentId; //< Contains the Data Object tag to be used when the MM Content is stored in the referenced BER-TLV file. + TMultimediaMessageId iMultimediaMessageId; //< This may be present only if the iReceptionFile is present. It is mandatory in case the MMS Reception or Submission file can store several MMs. + TTextAttribute iTextAttribute; //< Contains formatting information to be applied when RSat::TRetrieveMultimediaMessageV6::iAlphaId is displayed. + }; + + /** A packaged RSat::TRetrieveMultimediaMessageV6. */ + typedef TPckg TRetrieveMultimediaMessageV6Pckg; + + IMPORT_C void NotifyRetrieveMultimediaMsgPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + class TRetrieveMultimediaMessageRspV6 : public TSatPCmdBase + /** + Contains your response to a RETRIEVE MULTIMEDIA MESSAGE proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and + RSat::NotifyRetrieveMultimediaMsgPCmd() for more information about the command. + + For Symbian OS version 9.4 pass + RSat::TerminalRsp() a RSat::TRetrieveMultimediaMessageRspV6Pckg (a packaged TRetrieveMultimediaMessageRspV6). + For later versions of Symbian OS, check for an updated API + (RSat::TRetrieveMultimediaMessageRspV7 etc). + + @see RSat::TRetrieveMultimediaMessageRspV6Pckg + @see RSat::NotifyRetrieveMultimediaMsgPCmd() + */ + { + public: + IMPORT_C TRetrieveMultimediaMessageRspV6(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If the value in iGeneralResult does not require + any information then leave this field empty.*/ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TRetrieveMultimediaMessageRspV6. */ + typedef TPckg TRetrieveMultimediaMessageRspV6Pckg; + + // + // SUBMIT MULTIMEDIA MESSAGE + // + + class TSubmitMultimediaMessageV6 : public TSatPCmdBase + /** + Contains a SUBMIT MULTIMEDIA MESSAGE proactive command issued by the UICC. + See ETSI TS 102 223 and RSat::NotifySubmitMultimediaMsgPCmd() for more information + about the command. + + Request notification for SUBMIT MULTIMEDIA MESSAGE with + RSat::NotifySubmitMultimediaMsgPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest + "TSubmitMultimediaMessage" class. For Symbian OS version 9.4 + use RSat::TSubmitMultimediaMessageV6Pckg, a packaged RSat::TSubmitMultimediaMessageV6. + For later versions of Symbian OS, check for an updated API (RSat::TSubmitMultimediaMessageV7 etc). + + @see RSat::TSubmitMultimediaMessageV6Pckg + @see RSat::NotifySubmitMultimediaMsgPCmd() + */ + { + public: + IMPORT_C TSubmitMultimediaMessageV6(); + public: + TDeviceId iDestination; //< The destination device for the proactive command is the network. + TAlphaId iAlphaId; //< Alpha Identifier + TIconId iIconId; //< Icon identifer + TFileList iSubmissionFile; //< MMS Submission File is a path of a file on the UICC. + TMultimediaMessageId iMultimediaMessageId; //< This may be present only if the iSubmissionFile is present. It is mandatory in case the MMS Reception or Submission file can store several MMs. Coded in hexadecimal. + TTextAttribute iTextAttribute; //< Contains formatting information to be applied when RSat::TSubmitMultimediaMessageV6::iAlphaId is displayed. + }; + + /** A packaged RSat::TSubmitMultimediaMessageV6. */ + typedef TPckg TSubmitMultimediaMessageV6Pckg; + + IMPORT_C void NotifySubmitMultimediaMsgPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TSubmitMultimediaMessageRspV6 : public TSatPCmdBase + /** + Contains your response to a SUBMIT MULTIMEDIA MESSAGE proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and + RSat::NotifySubmitMultimediaMsgPCmd() for more information about the command. + + For Symbian OS version 9.4 pass + RSat::TerminalRsp() a RSat::TSubmitMultimediaMessageRspV6Pckg (a packaged TSubmitMultimediaMessageRspV6). + For later versions of Symbian OS, check for an updated API + (RSat::TSubmitMultimediaMessageRspV7 etc). + + @see RSat::TSubmitMultimediaMessageRspV6Pckg + @see RSat::NotifySubmitMultimediaMsgPCmd() + */ + { + public: + IMPORT_C TSubmitMultimediaMessageRspV6(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If the value in iGeneralResult does not require + any information then leave this field empty.*/ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TSubmitMultimediaMessageRspV6. */ + typedef TPckg TSubmitMultimediaMessageRspV6Pckg; + + // + // DISPLAY MULTIMEDIA MESSAGE + // + + class TDisplayMultimediaMessageV6 : public TSatPCmdBase + /** + Contains a DISPLAY MULTIMEDIA MESSAGE proactive command issued by the UICC. + See ETSI TS 102 223 and RSat::NotifyDisplayMultimediaMsgPCmd() for more information + about the command. + + Request notification for DISPLAY MULTIMEDIA MESSAGE with + RSat::NotifyDisplayMultimediaMsgPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest + "TDisplayMultimediaMessage" class. For Symbian OS version 9.4 + use RSat::TDisplayMultimediaMessageV6Pckg, a packaged RSat::TDisplayMultimediaMessageV6. + For later versions of Symbian OS, check for an updated API (RSat::TDisplayMultimediaMessageV7 etc). + + @see RSat::TDisplayMultimediaMessageV6Pckg + @see RSat::NotifyDisplayMultimediaMsgPCmd() + */ + { + public: + IMPORT_C TDisplayMultimediaMessageV6(); + public: + TDeviceId iDestination; //< The destination device for the proactive command is the Mobile Equipment, typically a phone. + TDisplayPriority iDisplayPriority; //< This determines the text's priority. + /** Determines whether the text should be removed from the screen + after a delay or after user action. */ + TClearScreenTrigger iClearScreenTrigger; + TFileList iSubmissionFile; //< Contains the information of the submitted file. + TMultimediaMessageId iMultimediaMessageId; //< This may be present only if the iSubmissionFile is present. It is mandatory in case the MMS Reception or Submission file can store several MMs. Coded in hexadecimal.This parameter identifies the Multimedia message. + TImmediateRsp iImmediateRsp; //< TImmediateRsp indicates if the (U)SAT UI client should sustain the display beyond sending the Terminal Response. + }; + + /** A packaged RSat::TDisplayMultimediaMessageV6. */ + typedef TPckg TDisplayMultimediaMessageV6Pckg; + + IMPORT_C void NotifyDisplayMultimediaMsgPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TDisplayMultimediaMessageRspV6 : public TSatPCmdBase + /** + Contains your response to a DISPLAY MULTIMEDIA MESSAGE proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and + RSat::NotifyDisplayMultimediaMsgPCmd() for more information about the command. + + For Symbian OS version 9.4 pass + RSat::TerminalRsp() a RSat::TDisplayMultimediaMessageRspV6Pckg (a packaged TDisplayMultimediaMessageRspV6). + For later versions of Symbian OS, check for an updated API + (RSat::TDisplayMultimediaMessageRspV7 etc). + + @see RSat::TDisplayMultimediaMessageRspV6Pckg + @see RSat::NotifyDisplayMultimediaMsgPCmd() + */ + { + public: + IMPORT_C TDisplayMultimediaMessageRspV6(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If the value in iGeneralResult does not require + any information then leave this field empty.*/ + TAdditionalInfo iAdditionalInfo; + }; + + /** A packaged RSat::TDisplayMultimediaMessageRspV6. */ + typedef TPckg TDisplayMultimediaMessageRspV6Pckg; + + // + // SET FRAMES + // + + /** + This enum structure gives us the format of the Frame layout. + @see RSat::TFrameLayout + @see RSat::TSetFramesV6 + */ + enum TFramesLayout + { + EFrameHorizontal = 0x01, //< This indicator is flagged when the frame layout is horizontal. + EFrameVertical = 0x02 //< This indicator is flagged when the frame layout is vertical. + }; + /** + This enum structure gives us the format of the Frame Layout information + @see RSat::TFrameLayout + */ + enum {KMaxFrameLayoutSize = 243}; + + /** + @see RSat::KMaxFrameLayoutSize + */ + typedef TBuf TFrameLayoutBuf; + + /** + This structure gives us the Frame Layout details. + @see RSat::TSetFramesV6 + */ + struct TFrameLayout + { + TFramesLayout iFramesLayout; //< It gives us the format of the Frame layout + TFrameLayoutBuf iFrameLayoutBuf; //< It gives us the information about the number of sub frames in it. + }; + + /** + @see RSat::TSetFramesV6 + */ + enum TFramesSeparator + { + EFrameSeparatorNotSet, //< Indicates that the frame separator has not been set. This is the default value. + EFrameSeparatorDrawn, //< This value tells the terminal to draw a separator between every adjoining frame; + EFrameSeparatorNotDrawn, //< This value tells the terminal not to draw a separator between every adjoining frame; + }; + + class TSetFramesV6 : public TSatPCmdBase + /** + Contains a SET FRAMES proactive command issued by the UICC. + See ETSI TS 102 223 and RSat::NotifySetFramesPCmd() for more information + about the command. + + Request notification for SET FRAMES with + RSat::NotifySetFramesPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest + "TSetFramesV6" class. For Symbian OS version 9.4 + use RSat::TSetFramesV6Pckg, a packaged RSat::TSetFramesV6. + For later versions of Symbian OS, check for an updated API (RSat::TSetFramesV7 etc). + + @see RSat::TSetFramesV6Pckg + @see RSat::NotifySetFramesPCmd() + */ + { + public: + IMPORT_C TSetFramesV6(); + public: + TDeviceId iDestination; //< The destination device for the proactive command is the Mobile Equipment, typically a phone. + TUint8 iFrameId; //< Identifies the frame relevant to this SET FRAMES command. Refer to TS 102 223 for further details of what values this attribute can contain. + TFrameLayout iFrameLayout; //< It contains the information on layout and also the design details of the frame + TUint8 iDefaultFrameId; //< This is optional. It contains an indication of the frame to be used to display information in case a Frame Identifier is not included. + TFramesSeparator iFramesSeparator;//< This value tells the terminal to draw a separator between every adjoining frame; + }; + + /** A packaged RSat::TSetFramesV6. */ + typedef TPckg TSetFramesV6Pckg; + + IMPORT_C void NotifySetFramesPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TSetFramesRspV6 : public TSatPCmdBase + /** + Contains your response to a SET FRAMES proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and + RSat::NotifySetFramesPCmd() for more information about the command. + + For Symbian OS version 9.4 pass + RSat::TerminalRsp() a RSat::TSetFramesRspV6Pckg (a packaged TSetFramesRspV6). + For later versions of Symbian OS, check for an updated API + (RSat::TSetFramesRspV7 etc). + + @see RSat::TSetFramesRspV6Pckg + @see RSat::NotifySetFramesPCmd() + */ + { + public: + IMPORT_C TSetFramesRspV6(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KFramesInfo or RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If the value in iGeneralResult does not require + any information then leave this field empty.*/ + TAdditionalInfo iAdditionalInfo; + + /** Contains the Frames information in the ME, if iGeneralResult is KSuccess + and the frames information is available. If not, this is left blank + */ + TFramesInformation iFramesInformation; + }; + + /** A packaged RSat::TSetFramesRspV6. */ + typedef TPckg TSetFramesRspV6Pckg; + + // + // GET FRAMES STATUS + // + + class TGetFramesStatusV6 : public TSatPCmdBase + /** + Contains a GET FRAMES STATUS proactive command issued by the UICC. + See ETSI TS 102 223 and RSat::NotifyGetFramesStatusPCmd() for more information + about the command. + + Request notification for GET FRAMES STATUS with + RSat::NotifyGetFramesStatusPCmd(), passing it an object in which to store the + command when it arrives. Pass a packaged version of the latest + "TGetFramesStatusV6" class. For Symbian OS version 9.4 + use RSat::TGetFramesStatusV6Pckg, a packaged RSat::TGetFramesStatusV6. + For later versions of Symbian OS, check for an updated API (RSat::TGetFramesStatusV7 etc). + + @see RSat::TGetFramesStatusV6Pckg + @see RSat::NotifyGetFramesStatusPCmd() + */ + { + public: + IMPORT_C TGetFramesStatusV6(); + public: + TDeviceId iDestination; //< The destination device for the proactive command is the Mobile Equipment, typically a phone. + }; + + /** A packaged RSat::TGetFramesStatusV6. */ + typedef TPckg TGetFramesStatusV6Pckg; + + IMPORT_C void NotifyGetFramesStatusPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const; + + + class TGetFramesStatusRspV6 : public TSatPCmdBase + /** + Contains the response to a GET FRAMES STATUS proactive command. Pass this to + the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and + RSat::NotifyGetFramesStatusPCmd() for more information about the command. + + For Symbian OS version 9.4 pass + RSat::TerminalRsp() a RSat::TGetFramesStatusRspV6Pckg (a packaged TGetFramesStatusRspV6). + For later versions of Symbian OS, check for an updated API + (RSat::TGetFramesStatusRspV7 etc). + + @see RSat::TGetFramesStatusRspV6Pckg + @see RSat::NotifyGetFramesStatusPCmd() + */ + { + public: + IMPORT_C TGetFramesStatusRspV6(); + public: + /** General result of the proactive command. Set this as described in + the proactive commands versus terminal response table in ETSI TS 102 223. */ + TPCmdResult iGeneralResult; + + /** If the value of iGeneralResult requires additional information, + set this to RSat::KFramesInfo or RSat::KMeProblem. Otherwise set to + RSat::KNoAdditionalInfo. */ + TUint iInfoType; + + /** Contains additional information associated with certain error codes + set in iGeneralResult. If the value in iGeneralResult does not require + any information then leave this field empty.*/ + TAdditionalInfo iAdditionalInfo; + + /** Contains the Frames information in the ME, if iGeneralResult is KSuccess + and the frames information is available. If not, this is left blank + */ + TFramesInformation iFramesInformation; + }; + + /** A packaged RSat::TGetFramesStatusRspV6. */ + typedef TPckg TGetFramesStatusRspV6Pckg; + + // + // V6 ENVELOPE COMMANDS + // + + // + // MMS NOTIFICATION DOWNLOAD + // + + /** + @see RSat::TMMSNotification + */ + enum {KMaxMMSNotificationSize = 243}; + + /** + @see RSat::KMaxFrameLayoutSize + @see RSat::TMmsNotificationDownloadV6 + */ + typedef TBuf TMMSNotification; + + class TMmsNotificationDownloadV6 : public TSatBase + /** + This data structure contains the details of the MMS NOTIFICATION DOWNLOAD envelope command + issued to the UICC. See ETSI TS 102 223 and RSat::MmsNotificationDownload() for + more information about the command. + + Pass a packaged version of the latest "TMMSNotificationDownloadV6" class. + For Symbian OS version 9.4 use RSat::TMMSNotificationDownloadV6Pckg, a + packaged version of RSat::TMMSNotificationDownloadV6. + For later versions of Symbian OS, check for an updated API (RSat::TMMSNotificationDownloadV7 etc). + + @see RSat::TMMSNotificationDownloadV6Pckg + @see RSat::MmsNotificationDownload() + */ + { + public: + IMPORT_C TMmsNotificationDownloadV6(); + public: + TDeviceId iDeviceId; //< The device identification is set to Network or ME + TMMSNotification iMMSNotification; // TMmsNotificationDownloadV6Pckg; + + IMPORT_C void MmsNotificationDownload(TRequestStatus& aReqStatus, const TDesC8& aMmsNotificationDownload) const; + + // + // Multimedia Service Transfer Status + // + + /** + Multimedia Service Transfer Status is the status information of a Submission/Reception File + It contains the details of MM1_Submit.RES/MM1_Retrieve.RES. + + The UICC is able to identify if the envelope corresponds to a previous submit or retrieve MMS by using the MMS Tranfer File + and the Multimedia Message Identifier that shall be the same between both commands. + Refer to section 7.7 of 3GPP TS 31.111 Release 6 for more information. + + @see RSat::TMultimediaMessageStatus + */ + enum {KMaxMultimediaMessageStatusSize=255}; + + /** + Contains the Multimedia Transfer status information. + @see RSat::TMmsTransferStatusV6 + */ + typedef TBuf TMultimediaMessageStatus; + + class TMmsTransferStatusV6 : public TSatBase + /** + This asynchronous request is used to send the transfer status information of the Multimedia Message submitted/received + from ME to the UICC. The ME receives this information from the network. + + @see RSat::TMmsTransferStatusV6Pckg + @see RSat::MmsTransferStatus() + */ + { + public: + IMPORT_C TMmsTransferStatusV6(); + public: + TDeviceId iDeviceId; //< The device identification is set to Network or ME + TFileList iMMSTransferFile; // TMmsTransferStatusV6Pckg; + + IMPORT_C void MmsTransferStatus(TRequestStatus& aReqStatus, const TDesC8& aMmsTransferStatus) const; + + //USSD Data Download in Application mode + + class TUssdDataDownloadV6:TSatBase + /** + This data structure contains the details of the USSD Data Download ENVELOPE command + issued to the UICC. See ETSI TS 102 223 and RSat::UssdDataDownload() for + more information about the command. + + Pass a packaged version of the latest "TUssdDataDownloadV6" class. + For Symbian OS version 9.4 use RSat::TUssdDataDownloadV6Pckg, a + packaged version of RSat::TUssdDataDownloadV6. + For later versions of Symbian OS, check for an updated API (RSat::TUssdDataDownloadV7 etc). + + + @see RSat::TUssdDataDownloadV6Pckg + @see RSat::UssdDataDownload() + */ + { + public: + IMPORT_C TUssdDataDownloadV6(); + public: + TDeviceId iDeviceId; //< The device identification is set to Network + TUssdString iUssdString; //< An Unstructured Supplementary Services Data string. + }; + + /** A packaged RSat::TUssdDataDownloadV6. */ + typedef TPckg TUssdDataDownloadV6Pckg; + + IMPORT_C void UssdDataDownload(TRequestStatus& aReqStatus, const TDesC8& aDes) const; + +protected: + IMPORT_C virtual void ConstructL(); + IMPORT_C virtual void Destruct(); + +private: + RSat(const RSat& aSat); //< Default copy constructor + CSatPtrHolder* iEtelSatPtrHolder; + }; + +#endif // __ETELSAT_H__