telephonyserver/etelsimtoolkit/inc/Etelsat.h
changeset 0 3553901f7fa8
equal deleted inserted replaced
-1:000000000000 0:3553901f7fa8
       
     1 // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // ETel (U)SAT header file.
       
    15 // Describes the (U)SAT API - classes, methods and types.
       
    16 // 
       
    17 //
       
    18 
       
    19 /**
       
    20  @file
       
    21  @publishedPartner
       
    22  @released
       
    23 */
       
    24 
       
    25 
       
    26 #ifndef __ETELSAT_H__
       
    27 #define __ETELSAT_H__
       
    28 
       
    29 #include <e32base.h>
       
    30 #include <s32mem.h>
       
    31 #include <etel.h>
       
    32 
       
    33 const TInt KETelExtSatV1=5000;  //< The global identifier for the first version of the ETelSat API, for passing into RTelServer::IsSupportedByModule()
       
    34 const TInt KETelExtSatV2=9000;  //< The global identifier for the second version of the ETelSat API, for passing into RTelServer::IsSupportedByModule()
       
    35 const TInt KETelExtSatV3=11000; //< The global identifier for the third version of the ETelSat API, for passing into RTelServer::IsSupportedByModule()
       
    36 const TInt KEtelExtSatV4=11100; //< The global identifier for the fourth version of the ETelSat API, for passing into RTelServer::IsSupportedByModule()
       
    37 const TInt KEtelExtSatV5=11200;	//< The global identifier for the fifth version of the ETelSat API, for passing into RTelServer::IsSupportedByModule()
       
    38 const TInt KEtelExtSatV6=11300;	//< The global identifier for the sixth version of the ETelSat API, for passing into RTelServer::IsSupportedByModule()
       
    39 const TInt KEtelExtSatV7=11400;	//< The global identifier for the seventh version of the ETelSat API, for passing into RTelServer::IsSupportedByModule()
       
    40 
       
    41 /**
       
    42 (U)SAT allocated error space ranges from -5250 to -5299.
       
    43 Do not return KErrSatBase as an error.
       
    44 */
       
    45 const TInt KErrSatBase=-5250;
       
    46 /** The (U)SIM Application Toolkit is busy. */
       
    47 const TInt KErrSatBusy=KErrSatBase-1;
       
    48 /**
       
    49 The error code can be received following Call Control.  It is returned when the
       
    50 (U)SIM (or MO SM Control by (U)SIM) either bars or modifies the original
       
    51 action.
       
    52 */
       
    53 const TInt KErrSatControl=KErrSatBase-2;
       
    54 /**
       
    55 The error code can be received following Multimedia Service Notification Download.
       
    56 It is returned when the (U)SIM either bars the original action,The ME shall not retry the same command.
       
    57 */
       
    58 const TInt KErrSatMmsFailure=KErrSatBase-3;
       
    59 
       
    60 enum {KTpduMaxSize=248};
       
    61 typedef TBuf8<KTpduMaxSize> TTpdu;
       
    62 
       
    63 const TInt KPdpActivationParametersMaxLengh=512;  //< Global constant defines maximum length of the buffer that can hold PDP CONTEXT ACTIVATION REQUEST
       
    64 typedef TBuf8<KPdpActivationParametersMaxLengh> TPdpParameters;
       
    65 
       
    66 // Forward declaration
       
    67 class CSatPtrHolder;
       
    68 class RSat: public RTelSubSessionBase
       
    69 /**
       
    70  * Provides an interface to Symbian's ETelSat API.  RSat inherits from
       
    71  * RTelSubSessionBase defined in ETEL.H.
       
    72  *
       
    73  * On GSM/WCDMA networks, this API offers access to the (U)SIM Application
       
    74  * Toolkit, or (U)SAT.  On CDMA networks, it offers access to Cdma Card Application
       
    75  * Toolkit, or CCAT. Both toolkits are very similar.
       
    76  *
       
    77  * Phones on both networks contain an electronic card that stores the information
       
    78  * such as subscriber's identification, the phone's number, an address book, etc.
       
    79  * The (U)SAT and CCAT toolkits allow the card to be more than just a storage
       
    80  * device; they define a protocols that allow the card to ask the phone to perform
       
    81  * tasks.  For instance, a card can ask the phone to display a message on the
       
    82  * screen, add new menu items to the phone's menus, ask the phone to dial a number,
       
    83  * or browse to a URL.
       
    84  *
       
    85  * (U)SAT and CCAT are based around 'Proactive Commands': each is a task for the
       
    86  * phone to perform.  For the four tasks mentioned in the previous paragraph, the
       
    87  * card sends the phone proactive commands called DISPLAY TEXT, SET UP MENU, SET
       
    88  * UP CALL, and LAUNCH BROWSER. Understanding the range of proactive commands and
       
    89  * their capabilities is the first step to understanding (U)SAT and CCAT.
       
    90  *
       
    91  * To use Symbian's ETelSat API you request notification when proactive commands
       
    92  * arrive at the phone.  For each proactive command (DISPLAY TEXT, SET UP
       
    93  * MENU etc.) there is an RSat member function.  This function tells Symbian OS
       
    94  * when you are interested in a proactive command.  It also gives
       
    95  * Symbian OS a TRequestStatus that is completed when the next proactive
       
    96  * command arrives.
       
    97  *
       
    98  * Some of the proactive commands are not accessible to Symbian's ETelSat API.
       
    99  * Your phone's TSY deals with them for you, hiding them from RSat.  The remaining
       
   100  * proactive commands are handled by RSat.  Request notification for each one
       
   101  * using the functions listed below.
       
   102  *
       
   103  * (U)SAT and CCAT are defined in 3GPP TS 31.111 and 3GPP2 C.S0035-0 respectively.
       
   104  * Both of these specifications are based on ETSI TS 102 223.  We suggest you read
       
   105  * ETSI TS 102 223 before reading anything else: it is much more informative and
       
   106  * easier to read than the other two specifications. We also suggest you have a
       
   107  * basic understanding of ETSI TS 102 223 before using Symbian's ETelSat API.
       
   108  *
       
   109  * Before starting a (U)SAT or CCAT session, start a session with a phone.  A phone
       
   110  * session is represented by either RPhone or RMobilePhone.  Now you can create an
       
   111  * RSat interface and start the RSat session with RSat::Open().  Pass this method
       
   112  * the RPhone or RMobilePhone instance.  This tells the (U)SAT or CCAT session
       
   113  * which phone to work with.
       
   114  *
       
   115  * This documentation uses the word "UICC" to mean  the card. Here are
       
   116  * the phrases used to describe the card on various networks:
       
   117  *
       
   118  * On GSM networks, the physical card is called the ICC and the software it
       
   119  * contains is called the SIM (Subscriber Identity Module).  SAT is an interface
       
   120  * to the software.
       
   121  *
       
   122  * On WCDMA networks, the physical card is called the UICC and the software it
       
   123  * contains is called the USIM (Universal Subscriber Identity Module).  USAT is an
       
   124  * interface to the software.
       
   125  *
       
   126  * On 3G CDMA networks, the card and the software are called a R-UIM.  CCAT is an
       
   127  * interface to the software.
       
   128  *
       
   129  * To use the ETelSat API, follow these steps.  Firstly, create an interface to the phone, if you haven't already done so:
       
   130  *
       
   131  * - Create an RPhone
       
   132  * - Call RPhone::ConstructL()
       
   133  * - Call RPhone::Open()
       
   134  *
       
   135  * Secondly, create and open an interface to the ETelSat client:
       
   136  *
       
   137  * - Create an RSat
       
   138  * - Call RSat::ConstructL()
       
   139  * - Call RSat::Open(), passing it the RPhone from the previous step.
       
   140  *
       
   141  * Now tell the UICC what SAT features the phone supports.  The UICC expects this
       
   142  * information in a "profile" object.  The structure of this object is described in
       
   143  * ETSI TS 102 223.
       
   144  *
       
   145  * - Firsly, call RSat::GetMeSideSatProfile().  The TSY returns a profile
       
   146  * describing the SAT features that are supported by the phone's hardware and the
       
   147  * TSY.  These will be features that are not under the ETelSat client's control; you
       
   148  * cannot use the RSat API to access them.
       
   149  *
       
   150  * - Now modify the profile to include the SAT features that you support.  This
       
   151  * will mainly involve settings flags in the profile object.
       
   152  *
       
   153  * - Finally, send the profile to the UICC by calling RSat::ClientSatProfileIndication()
       
   154  *
       
   155  * Here is a list of the proactive commands supported by RSat.  Once you have
       
   156  * completed all the steps above, queue some notification requests by
       
   157  * calling some RSat::Notify..... command listed below:
       
   158  *
       
   159  * - DISPLAY TEXT - displays text to the user - see RSat::NotifyDisplayTextPCmd()
       
   160  * - GET INKEY -
       
   161  *   instructs phone to display text and/or an icon and to expect the user to enter a single character -
       
   162  *   RSat::NotifyGetInkeyPCmd()
       
   163  * - GET INPUT -
       
   164  *   instructs phone to display text and/or an icon and to expect the user to enter a string -
       
   165  *   RSat::NotifyGetInputPCmd()
       
   166  * - PLAY TONE -
       
   167  *   instructs phone to play a tone -
       
   168  *   RSat::NotifyPlayTonePCmd()
       
   169  * - SET UP MENU -
       
   170  *   provides a set of menu items to be integrated with the phone's menu system -
       
   171  *   RSat::NotifySetUpMenuPCmd()
       
   172  * - SELECT ITEM -
       
   173  *   provides a set of menu items to be shown to the user. The user can choose one of these menu items -
       
   174  *   RSat::NotifySelectItemPCmd()
       
   175  * - SEND SHORT MESSAGE -
       
   176  *   asks the phone to send an SMS message -
       
   177  *   RSat::NotifySendSmPCmd()
       
   178  * - SEND SS -
       
   179  *   asks the phone to send a supplementary service request -
       
   180  *   RSat::NotifySendSsPCmd()
       
   181  * - SEND USSD -
       
   182  *   asks the phone to send a Unstructured Supplementary Service Data request to the network -
       
   183  *   RSat::NotifySendUssdPCmd()
       
   184  * - SET UP CALL -
       
   185  *   asks the phone to connect a call -
       
   186  *   RSat::NotifySetUpCallPCmd()
       
   187  * - REFERSH -
       
   188  *   indicates that changes have occurred to the UICC that may affect the phone -
       
   189  *   RSat::NotifyRefreshPCmd()
       
   190  * - SET UP EVENT LIST -
       
   191  *   gives the phone a list of events that may occur to the phone.
       
   192  *   The phone must inform the UICC when an event on the list occurs -
       
   193  *   RSat::NotifySetUpEventListPCmd()
       
   194  * - SET UP IDLE MODE TEXT -
       
   195  *   provides text (and optionally an icon) to be displayed when the phone is idle -
       
   196  *   RSat::NotifySetUpIdleModeTextPCmd()
       
   197  * - SEND DTMF -
       
   198  *   asks the phone to send a DTMF string -
       
   199  *   RSat::NotifySendDtmfPCmd()
       
   200  * - PERFORM CARD APDU -
       
   201  *   asks the phone to send an APDU command -
       
   202  *   RSat::NotifyPerformCardApduPCmd()
       
   203  * - POWER OFF CARD -
       
   204  *   closes the session with the card specified in the command -
       
   205  *   RSat::NotifyPowerOffCardPCmd()
       
   206  * - POWER ON CARD -
       
   207  *   starts a session with the card specified in the command -
       
   208  *   RSat::NotifyPowerOnCardPCmd()
       
   209  * - GET READER STATUS -
       
   210  *   requests the status of the card reader specified in the command -
       
   211  *   RSat::NotifyGetReaderStatusPCmd()
       
   212  * - RUN AT COMMAND -
       
   213  *   asks the phone to perform the AT command provided -
       
   214  *   RSat::NotifyRunAtCommandPCmd()
       
   215  * - LANGUAGE NOTIFICATION -
       
   216  *   tells the phone the language in which any text strings from the UICC are written -
       
   217  *   RSat::NotifyLanguageNotificationPCmd()
       
   218  * - LAUNCH BROWSER -
       
   219  *   asks the phone to browse to the supplied URL -
       
   220  *   RSat::NotifyLaunchBrowserPCmd()
       
   221  * - OPEN CHANNEL -
       
   222  *   asks the phone to open a channel -
       
   223  *   RSat::NotifyOpenChannelPCmd()
       
   224  * - CLOSE CHANNEL -
       
   225  *   asks the phone to close a channel previously opened with the OPEN CHANNEL proactive command -
       
   226  *   RSat::NotifyCloseChannelPCmd()
       
   227  * - RECEIVE DATA -
       
   228  *   asks the phone for data from  a channel opened with the OPEN CHANNEL proactive command -
       
   229  *   RSat::NotifyReceiveDataPCmd()
       
   230  * - SEND DATA -
       
   231  *   asks the phone to send data on a channel opened with the OPEN CHANNEL proactive command -
       
   232  *   RSat::NotifySendDataPCmd()
       
   233  * - GET CHANNEL STATUS -
       
   234  *   asks the phone to return the status of a channel opened with the OPEN CHANNEL proactive command -
       
   235  *   RSat::NotifyGetChannelStatusPCmd()
       
   236  * - SERVICE SEARCH -
       
   237  *   RSat::NotifyServiceSearchPCmd()
       
   238  * - GET SERVICE INFO -
       
   239  *   RSat::NotifyGetServiceInfoPCmd()
       
   240  * - DECLARE SERVICE -
       
   241  *   RSat::NotifyDeclareServicePCmd()
       
   242  * - TIMER MANAGEMENT -
       
   243  *   asks the phone to start, stop and read the current value of timers -
       
   244  *   RSat::NotifyTimerMgmtPCmd()
       
   245  * - PROVIDE LOCAL INFORMATION -
       
   246  *   instructs the phone to send local information to the UICC -
       
   247  *   RSat::NotifyLocalInfoPCmd()
       
   248  * - POLLING INTERVAL -
       
   249  *   tells the phone how often the UICC would like to be polled by the phone -
       
   250  *   RSat::NotifyPollingIntervalPCmd()
       
   251  * - POLLING OFF -
       
   252  *   tells the phone not to poll the UICC for proactive commands any more -
       
   253  *   RSat::NotifyPollingOffPCmd()
       
   254  * - RETRIEVE MULTIMEDIA MESSAGE
       
   255  *   asks the phone to store the Multimedia Message received from the Network on UICC-
       
   256  *   RSat::NotifyRetrieveMultimediaMsgPCmd()
       
   257  * - SUBMIT MULTIMEDIA MESSAGE
       
   258  *   asks the phone to submit the Multimedia Message stored in the UICC to the Network-
       
   259  *   RSat::NotifySubmitMultimediaMsgPCmd()
       
   260  * - DISPLAY MULTIMEDIA MESSAGE
       
   261  *   asks the phone to display the Multimedia message to the user-
       
   262  *   RSat::NotifyDisplayMultimediaMsgPCmd() 
       
   263  * - SET FRAMES
       
   264  *   This command instructs the terminal to divide the terminal screen into multiple, scrollable rectangular regions called frames inorder to present multiple information at once-
       
   265  *   RSat::NotifySetFramesPCmd()
       
   266  * - GET FRAMES STATUS
       
   267  *   This command requests the terminal to return a Frames parameters data object-
       
   268  *   RSat::NotifyGetFramesStatusPCmd()
       
   269  *
       
   270  * Note: the phone continuously polls the card, waiting for proactive commands.
       
   271  * However, the polling process is hidden from the ETelSat API - simply request
       
   272  * notification and wait for the commands.
       
   273  */
       
   274     {
       
   275 public:
       
   276     IMPORT_C RSat();
       
   277     IMPORT_C TInt Open(RPhone& aPhone);
       
   278     IMPORT_C void Close();
       
   279     IMPORT_C void NotifyProactiveSimSessionEnd(TRequestStatus& aReqStatus) const;
       
   280     IMPORT_C void NotifyProactiveSimSessionStart(TRequestStatus& aReqStatus) const;
       
   281 
       
   282     class TSatBase
       
   283     /**
       
   284     Base class for all the (U)SAT ETel API parameters.
       
   285 
       
   286     There may be several versions of a parameter.  Parameter classes are named
       
   287     'name version number', such as RSat::TGetInkeyV1 and RSat::TGetInkeyV2.
       
   288     Both of these classes are used with the "GET INKEY" proactive command. They
       
   289     hold similar information but are designed for use with different versions
       
   290     of the (U)SAT ETel API. Version 2 contains the version 1 class plus extra
       
   291     information.  A third version would contain version 2 plus extra
       
   292     information, etc.
       
   293 
       
   294     In classes derived from RSat::TSatBase, the base class holds the class's
       
   295     version number.  The version number is a value from RSat::TSatVersion.
       
   296     Each value in RSat::TSatVersion describes the versions of Symbian OS with
       
   297     which they are used.
       
   298 
       
   299     You never need to set the version number; the class's constructor does
       
   300     this. Generally, RSat clients do not need to read the version number.
       
   301 
       
   302     The TSY can use RSat::TSatBase::ExtensionId() to return the version number.
       
   303     A typical situation is this:  the TSY is passed a (U)SAT ETel API parameter
       
   304     in a descriptor.  The TSY does not know which version it has been given so
       
   305     it should guess. For example, it could unpack the descriptor into the
       
   306     latest version of the parameter then call RSat::TSatBase::ExtensionId() to
       
   307     retrieve the actual version number.  If the TSY chose the incorrect version
       
   308     number then the descriptor can be unpacked into the correct parameter class.
       
   309     */
       
   310         {
       
   311     public:
       
   312         IMPORT_C TInt ExtensionId() const;
       
   313     protected:
       
   314         TSatBase();
       
   315     protected:
       
   316         /** The extension identifier or version number. */
       
   317         TInt iExtensionId;
       
   318         };
       
   319 
       
   320 
       
   321     class TSatPCmdBase : public TSatBase
       
   322     /**
       
   323     Base class for all the (U)SAT ETel API proactive command classes.
       
   324 
       
   325     TSatPCmdBase inherits from TSatBase and is the base class for all the (U)SAT
       
   326     ETel API proactive command classes, for which it holds the associated
       
   327     proactive command number.
       
   328     */
       
   329         {
       
   330     public:
       
   331         IMPORT_C TUint8 PCmdNumber() const;
       
   332         IMPORT_C TInt SetPCmdNumber(TUint8 aNumber);
       
   333     protected:
       
   334         TSatPCmdBase();
       
   335     protected:
       
   336         /** Proactive command number from 3GPP 31.111 and ETSI TS 102 223.
       
   337         Valid range is 0x01 to 0xFE. */
       
   338         TUint8 iPCmdNumber;
       
   339         };
       
   340 
       
   341     enum TSatVersion
       
   342     /**
       
   343     The version number of a (U)SAT ETel API parameter,
       
   344     returned by RSat::TSatBase::ExtensionId().
       
   345     @see RSat::TSatBase
       
   346     */
       
   347         {
       
   348         KSatVersionNotSet=-1,   //< (U)SAT version has not been set yet
       
   349         KSatV1=1,               //< API version 1, (U)SAT API delivered by v6.1 and v7.0.
       
   350         KSatV2=2,               //< API version 2, (U)SAT API delivered by 7.0s
       
   351         KSatV3=3,               //< API version 3, (U)SAT API delivered by v8.0a, v8.0b, v8.1a, v8.1b.
       
   352    		KSatV4=4,				//< API version 4, (U)SAT API delivered by v9.1
       
   353         KSatV5=5,				//< API version 5, (U)SAT API delivered by v9.2
       
   354         KSatV6=6,				//< API version 6, (U)SAT API delivered by v9.4
       
   355         KSatV7=7				//< API version 7, (U)SAT API delivered by v9.5
       
   356         };
       
   357 
       
   358     enum THelp
       
   359     /**
       
   360     The UICC may offer help to accompany a GET INKEY, GET INPUT, SET UP MENU or
       
   361     SELECT ITEM proactive command. This help is normally text for the phone's
       
   362     user.
       
   363 
       
   364     Below are links to four member functions.  They request notification for
       
   365     the GET INKEY, GET INPUT, SET UP MENU or SELECT ITEM proactive commands.
       
   366     When they complete, an object is returned containing the proactive
       
   367     command's details.  This includes an RSat::THelp that states whether help
       
   368     is available for the command.
       
   369 
       
   370     It is up to you whether you tell the user that help is available, and
       
   371     whether to display the help should the user ask for it. The proactive
       
   372     command does not contain the help; it only indicates whether help is
       
   373     available with RSat::THelp.  The process of getting help depends upon the
       
   374     proactive command; see the links to the member functions below for details.
       
   375 
       
   376     @see RSat::NotifyGetInkeyPCmd()
       
   377     @see RSat::NotifyGetInputPCmd()
       
   378     @see RSat::NotifySetUpMenuPCmd()
       
   379     @see RSat::NotifySelectItemPCmd()
       
   380     */
       
   381         {
       
   382         EHelpNotSet,        //< Initialization value used within constructor(s).
       
   383         EHelpAvailable,    //< Help information available to the user.
       
   384         ENoHelpAvailable    //< No help information is available to the user.
       
   385         };
       
   386 
       
   387     enum TTimeUnit
       
   388     /**
       
   389     Describes the units in RSat::TDuration.
       
   390     @see RSat::TDuration
       
   391     */
       
   392         {
       
   393         ETimeUnitNotSet,    //< Initialization value used within constructor(s).
       
   394         ENoDurationAvailable,     //< No duration has been provided. The ME should default to general beep.
       
   395         EMinutes,    //< The duration is expressed in minutes.
       
   396         ESeconds,     //< The duration is expressed in seconds.
       
   397         ETenthsOfSeconds    //< The duration is expressed in tenths of seconds.
       
   398         };
       
   399 
       
   400     struct TDuration
       
   401     /** Class used in RSat whenever a measure of duration is required. */
       
   402         {
       
   403         TTimeUnit iTimeUnit;    //< Unit used to encode the duration in iNumOfUnits
       
   404         TUint8 iNumOfUnits;     //< Valid range is 1 to 255.
       
   405         };
       
   406 
       
   407     enum TDeviceId
       
   408     /** Some proactive commands are aimed at particular devices.  The device will be on of those defined here. */
       
   409         {
       
   410         KDeviceIdNotSet         =-1,      //< Initialisation value
       
   411         KKeypad                 =0x01,    //< The destination device for the proactive command is the keypad.
       
   412         KDisplay                =0x02,    //< The destination device for the proactive command is the display.
       
   413         KEarPiece               =0x03,    //< The destination device for the proactive command is the earpiece.
       
   414         KAdditionalCardReader0  =0x10,    //< The destination device for the proactive command is the additional card reader 0.
       
   415         KAdditionalCardReader1  =0x11,    //< The destination device for the proactive command is the additional card reader 1.
       
   416         KAdditionalCardReader2  =0x12,    //< The destination device for the proactive command is the additional card reader 2.
       
   417         KAdditionalCardReader3  =0x13,    //< The destination device for the proactive command is the additional card reader 3.
       
   418         KAdditionalCardReader4  =0x14,    //< The destination device for the proactive command is the additional card reader 4.
       
   419         KAdditionalCardReader5  =0x15,    //< The destination device for the proactive command is the additional card reader 5.
       
   420         KAdditionalCardReader6  =0x16,    //< The destination device for the proactive command is the additional card reader 6.
       
   421         KAdditionalCardReader7  =0x17,    //< The destination device for the proactive command is the additional card reader 7.
       
   422         KChannel1               =0x21,    //< The destination device for the proactive command is the channel 1.
       
   423         KChannel2               =0x22,    //< The destination device for the proactive command is the channel 2.
       
   424         KChannel3               =0x23,    //< The destination device for the proactive command is the channel 3.
       
   425         KChannel4               =0x24,    //< The destination device for the proactive command is the channel 4.
       
   426         KChannel5               =0x25,    //< The destination device for the proactive command is the channel 5.
       
   427         KChannel6               =0x26,    //< The destination device for the proactive command is the channel 6.
       
   428         KChannel7               =0x27,    //< The destination device for the proactive command is the channel 7.
       
   429         KUICC                   =0x81,    //< The destination device for the proactive command is the UICC.
       
   430         KME                     =0x82,    //< The destination device for the proactive command is the Mobile Equipment, typically a phone.
       
   431         KNetwork                =0x83     //< The destination device for the proactive command is the network.
       
   432         };
       
   433 
       
   434 	/**
       
   435 	Specifies the text coding scheme for RSat buffers. It may be used in
       
   436 	conjunction with any RSat buffer to indicate the coding scheme used.
       
   437 	(See ETSI TS 102 223 V5.9.0 section 8.15.)
       
   438 	*/
       
   439 	enum TSatTextCoding
       
   440 		{
       
   441 		/** 7-bit packed coding */
       
   442 		E7bitPacked,
       
   443 		/** 7-bit unpacked (i.e. 8-bit) coding */
       
   444 		E7bitUnpacked,
       
   445 		/** 16-bit Unicode (UCS-2) coding */
       
   446 		E16bitUCS2
       
   447 		};
       
   448 
       
   449 	/**
       
   450 	@see RSat::TTextString
       
   451 	*/
       
   452 	enum {KTextStringMaxSize=250};
       
   453 
       
   454     /** Generic Text String
       
   455 
       
   456     This text string definition is to be used through the API where a text
       
   457     string is required. Text string should be presented to the client in
       
   458     unicode format. This type can be used in envelope commands, proactive
       
   459     commands and terminal response.
       
   460     @see RSat::KTextStringMaxSize
       
   461     */
       
   462     typedef TBuf<KTextStringMaxSize> TTextString;
       
   463 
       
   464 
       
   465     // Alpha Identifier
       
   466 
       
   467     /**
       
   468     @see RSat::TAlphaIdBuf
       
   469     @see RSat::TAlphaId
       
   470 
       
   471 	@see RMobileCall::KAlphaIdMaxSize
       
   472 	*/
       
   473     enum {KAlphaIdMaxSize=254};
       
   474 
       
   475     /**
       
   476     Buffer containing the alpha identifier in the proactive command sent from the ICC.
       
   477 
       
   478 	@see RSat::TAlphaId
       
   479 
       
   480 	@see RMobileCall::TAlphaIdBuf
       
   481     */
       
   482     typedef TBuf<KAlphaIdMaxSize> TAlphaIdBuf;
       
   483 
       
   484     /**
       
   485     Indicates the status of the alpha ID to the client.  It can be present or
       
   486     not present.  If it is present, then it can contain data (typically text)
       
   487     or it can be a null object.
       
   488     @see RSat::TAlphaId
       
   489     */
       
   490     enum TAlphaIdStatus
       
   491         {
       
   492         EAlphaIdNotSet,     //< Value used at initialisation
       
   493         EAlphaIdProvided,   //< The alpha ID was provided by the ICC and contains data, typically text.
       
   494         EAlphaIdNull,       //< The alpha ID was provided by the ICC but was a null object.
       
   495         EAlphaIdNotPresent  //< No alpha ID provided by the ICC.
       
   496         };
       
   497 
       
   498     /**
       
   499     Proactive commands can include some text called an 'alpha identifier'.
       
   500     The meaning of the text depends upon the proactive command; see each
       
   501     command's description for more details.
       
   502 
       
   503     In Symbian OS, details of each proactive command are encapsulated in a
       
   504     class.  Each class includes an RSat::TAlphaId.  Inside this, iStatus
       
   505     contains the status of the command's alpha identifier:
       
   506 
       
   507     If iStatus is RSat::EAlphaIdProvided then RSat::TAlphaId::iAlphaId contains
       
   508     the proactive command's alpha identifier text.  The description of each
       
   509     proactive command will tell you what to do with the text.
       
   510 
       
   511     If iStatus is RSat::EAlphaIdNull then the proactive command's alpha
       
   512     identifier is an empty string.  RSat::TAlphaId::iAlphaId contains nothing.
       
   513     This commonly indicates that nothing should be display to the user while
       
   514     the proactive command is executed; see the proactive command's description.
       
   515 
       
   516     If iStatus is RSat::EAlphaIdNotPresent then the proactive command did not
       
   517     contain an alpha identifier.  This is commonly indicates that you can
       
   518     display whatever you like to the user while the proactive command is
       
   519     executed; see the proactive command's description.
       
   520 
       
   521     It is intended by ETSI / 3GPP to be a short identifier of one or two words.
       
   522     However the maximum buffer size is 254 in this API.
       
   523     */
       
   524     struct TAlphaId
       
   525         {
       
   526         TAlphaIdStatus iStatus; //< The status of the alpha ID.
       
   527         TAlphaIdBuf iAlphaId; 	//< The alpha ID's text.  Only valid if iStatus is RSat::EAlphaIdProvided.
       
   528         };
       
   529 
       
   530 	/** 
       
   531 	Size in bytes of a text attribute as defined in spec. ETSI TS 102 223 
       
   532 	@see RSat::TTextAttributeBuf
       
   533 	*/
       
   534 	enum {KTextAttributeBufSize=4};
       
   535 
       
   536 	/** Contains text attribute data. A text attribute contains
       
   537 	formatting information such as whether the text it is applied to
       
   538 	is bold, underlined, aligned left, etc. The text to which the
       
   539 	text attribute applies to depends on the specific proactive
       
   540 	UICC command and is specified in ETSI TS 102 223.
       
   541 	@see RSat::TTextAttribute
       
   542 	*/
       
   543 	typedef TBuf8<KTextAttributeBufSize> TTextAttributeBuf;
       
   544 
       
   545 	enum TTextAttributeStatus
       
   546 	/** Indicates the status of the text attribute to the client.
       
   547 	It can be present or not present.  If it is present, then it will
       
   548 	provide text attribute data.	This data is valid only if the
       
   549 	text to which the text attribute data applies to is also valid.
       
   550 	The text to which the text attribute applies to depends on the
       
   551 	specific proactive UICC command and is specified in ETSI TS 102 223.
       
   552 	@see RSat::TTextAttribute
       
   553 	*/
       
   554 		{
       
   555 		ETextAttributeNotSet,		 	//< Value used at initialisation
       
   556 		ETextAttributeProvided,			//< The text attribute was provided by the ICC and contains data.
       
   557 		ETextAttributeNotPresent		//< No text attribute provided by the ICC.
       
   558 		};
       
   559 
       
   560 	/**
       
   561 	Proactive commands which contain text may also contain formatting
       
   562 	information, called text attributes, which apply to the text
       
   563 	when it is displayed by the ME. If a Terminal receives a text
       
   564 	attribute that it does not support then it shall use the default
       
   565 	text attribute it supports.
       
   566 
       
   567 	For some proactive commands, the text attribute information
       
   568 	is a conditional parameter. This means it is only present in the
       
   569 	command if the text to which it applies is present as the text
       
   570 	itself is an optional part of the command.
       
   571 	For other proactive commands that always contain some text such
       
   572 	as an alpha identifier, the text attribute information is optional,
       
   573 	and can be present or not present.
       
   574 
       
   575 	The actual text to which the text attribute applies to depends on
       
   576 	the specific proactive UICC command and is specified in
       
   577 	ETSI TS 102 223.
       
   578 
       
   579 	The TTextAttribute structure is present in RSat classes which
       
   580 	represent proactive commands that support text attributes. The
       
   581 	structure contains iStatus which represents the status of
       
   582 	iTextAttribute.
       
   583 
       
   584 	If the iStatus is RSat::ETextAttributeNotPresent then no text
       
   585 	attribute data was supplied in the command. This commonly
       
   586 	indicates that the default formatting should be applied to
       
   587 	the text when it is displayed by the ME.
       
   588 
       
   589 	If the iStatis is RSat::ETextAttributeProvided then text
       
   590 	attribute data was supplied in the command.	This means that
       
   591 	the supplied formatting should be applied when the text to which
       
   592 	it applies is displayed on the ME.	If the supplied formatting
       
   593 	is not supported by the terminal, then default formatting should
       
   594 	be applied.
       
   595 	*/
       
   596 	struct TTextAttribute
       
   597 		{
       
   598 		/**
       
   599 		The status of the text attribute.  
       
   600 		@see RSat::TTextAttributeStatus
       
   601 		*/
       
   602 		TTextAttributeStatus iStatus;	  		
       
   603 		/**
       
   604 		The text attribute data. Only valid if the iStatus is 
       
   605 		RSat::ETextAttributeProvided and the text to which it applies is valid.  
       
   606 		@see RSat::TTextAttributeBuf
       
   607 		*/
       
   608 		TTextAttributeBuf iTextAttributeData;
       
   609 		};
       
   610 
       
   611 	/**
       
   612 	@see RSat::TCcp
       
   613 	
       
   614 	@see RMobileCall::KCcpMaxSize
       
   615 	*/
       
   616     enum {KCcpMaxSize=14}; 
       
   617 
       
   618     /**
       
   619     TCcp ( Capability configuration parameters ) is a 8-bit data buffer that
       
   620     contains the bearer capabilities as coded in ETSI 11.11 and ETSI 04.08. It
       
   621     is 14 bytes as it does not include the IEI (Information Element Identity).
       
   622 
       
   623     It is used by the SET UP CALL proactive command.  It is also used in call control.
       
   624 
       
   625     @see RSat::NotifySetUpCallPCmd()
       
   626     @see RSat::NotifyCallControlRequest()
       
   627     
       
   628     @see RMobileCall::TCcp
       
   629     */
       
   630     typedef TBuf8<KCcpMaxSize> TCcp;
       
   631 
       
   632 	/**
       
   633 	@see RSat::TSubAddress
       
   634 	
       
   635 	@see RMobileCall::KSubAddressMaxSize
       
   636 	*/
       
   637     enum {KSubAddressMaxSize=21};
       
   638 
       
   639     /**
       
   640     Sub-address of a telephone number. Maximum size is 21 digits.
       
   641 
       
   642     It is used by the SET UP CALL and OPEN CHANNEL proactive commands. It is
       
   643     also used in call control.
       
   644 
       
   645     @see RSat::NotifySetUpCallPCmd()
       
   646     @see RSat::NotifyCallControlRequest()
       
   647     @see RSat::NotifyOpenChannelPCmd()
       
   648     
       
   649     @see RMobileCall::TSubAddress
       
   650     */
       
   651     typedef TBuf<KSubAddressMaxSize> TSubAddress;
       
   652 
       
   653     /**
       
   654     Type of number, part of a complete telephone number address along with the
       
   655     numbering plan and the number's digits.
       
   656 
       
   657     @see RSat::TAddress
       
   658     @see RSat::TSsString
       
   659     */
       
   660     enum  TTypeOfNumber
       
   661         {
       
   662         ETypeOfNumberNotSet,    //< Initialization value used within constructor(s).
       
   663         EUnknownNumber,         //< The user or the network has no knowledge of the type of network.
       
   664         EInternationalNumber,   //< International number.
       
   665         ENationalNumber,        //< National number.
       
   666 
       
   667         /** Administration/service number specific to the serving network, e.g.
       
   668         used to access an operator.*/
       
   669         ENetworkSpecificNumber,
       
   670 
       
   671         /** Called dedicated access / short code in GSM/WCDMA. Corresponds to
       
   672         TMobileTON::ESubscriberNumber in ETel MM API. */
       
   673         EDedicatedNumber,
       
   674 
       
   675         EAlphanumericNumber,    //< Alphanumeric number.
       
   676         EAbbreviatedNumber      //< Abbreviated number.
       
   677         };
       
   678 
       
   679     /**
       
   680     Numbering plan, part of a complete telephone number
       
   681     address along with the type of number and the number's
       
   682     digits.
       
   683 
       
   684     @see RSat::TAddress
       
   685     @see RSat::TSsString
       
   686     */
       
   687     enum TNumberingPlan
       
   688         {
       
   689         ENumberingPlanNotSet,          //< Initialization value used within constructor(s).
       
   690         EUnknownNumberingPlan,         //< The user or the network has no knowledge of the numbering plan.
       
   691         EIsdnNumberPlan,               //< ISDN / telephony numbering plan.
       
   692         EDataNumberPlan,               //< Data numbering plan.
       
   693         ETelexNumberPlan,              //< Telex numbering plan.
       
   694 
       
   695         /** The service centre specific plan is used to indicate a numbering
       
   696         plan specific to External Short Message Entities attached to the SMS
       
   697         centre.*/
       
   698         EServiceCentreSpecificPlan1,
       
   699 
       
   700         /** The service centre specific plan is used to indicate a numbering
       
   701         plan specific to External Short Message Entities attached to the SMS
       
   702         centre. */
       
   703         EServiceCentreSpecificPlan2,
       
   704 
       
   705         ENationalNumberPlan,           //< National numbering plan.
       
   706         EPrivateNumberPlan,            //< Private numbering plan.
       
   707         EERMESNumberPlan               //< ERMES numbering plan.
       
   708         };
       
   709 
       
   710 	/**
       
   711 	@see RSat::TSatTelNumber
       
   712 	*/
       
   713     enum {KMaxMobileTelNumberSize=251};
       
   714 
       
   715     /**
       
   716     The phone number’s digits and other valid dial-string characters, coded as
       
   717     Unicode characters. RSat::TSatTelNumber is part of a complete telephone
       
   718     number address, along with the type of number and the numbering plan.
       
   719 
       
   720     Maximum size is 251 digits.
       
   721     @see RSat::TAddress
       
   722     */
       
   723     typedef TBuf<KMaxMobileTelNumberSize> TSatTelNumber;
       
   724 
       
   725     /**
       
   726     A complete telephone number.
       
   727     */
       
   728     struct TAddress
       
   729         {
       
   730         TTypeOfNumber iTypeOfNumber;    //< Type of number
       
   731         TNumberingPlan iNumberPlan;     //< Numbering plan
       
   732         TSatTelNumber iTelNumber;       //< Telephone number
       
   733         };
       
   734 
       
   735     /** 
       
   736      The originator of a call.
       
   737      
       
   738      This list of enumerations matches RMobileCall::TCallParamOrigin in Etelmm.
       
   739      
       
   740      @see RMobileCall::TCallParamOrigin
       
   741     */
       
   742     enum TCallParamOrigin
       
   743         {
       
   744         EOriginatorUnknown,       //< The call originator is unknown.
       
   745         EOriginatorSIM,           //< The call originated/originates from the SIM.
       
   746         EOriginatorEtelClient,    //< The call originated/originates from an Etel Client.
       
   747         EOriginatorExternal       //< The call originated/originates from an external device connected to the modem.
       
   748         }; 
       
   749         
       
   750         
       
   751     /** Maximum size of a SS or a USSD string
       
   752     @see RSat::TSsString
       
   753     @see RSat::TUssdString */
       
   754     enum {KStringMaxSize=242};
       
   755 
       
   756     struct TSsString
       
   757     /** A Supplementary Service string. */
       
   758         {
       
   759         TTypeOfNumber iTypeOfNumber;    //< Type of number
       
   760         TNumberingPlan iNumberPlan;     //< Numbering plan
       
   761         TBuf8<KStringMaxSize> iSsString;//< SS string. Max. length is 242 characters.
       
   762         };
       
   763 
       
   764     struct TUssdString
       
   765     /** An Unstructured Supplementary Services Data string. */
       
   766         {
       
   767         TUint8 iDcs;                        //< Data Coding Scheme
       
   768         TBuf<KStringMaxSize> iUssdString;   //< USSD string. Max. length is 242 characters.
       
   769         };
       
   770 
       
   771     enum TIconQualifier
       
   772     /** Included in each type of proactive command that can support icons.  It
       
   773     describes the icon, if there is one.
       
   774     
       
   775     @see RSat::TIconId
       
   776     @see RMobileCall::TIconQualifier
       
   777     */
       
   778         {
       
   779         EIconQualifierNotSet,   //< Icon qualifier is not set
       
   780         ENoIconId,              //< Icon not present in this proactive command.
       
   781         ESelfExplanatory,       //< Icon is included in the proactive command.  It is self explanatory. Display instead of the alpha ID or text string.
       
   782         ENotSelfExplanatory     //< Icon is included in the proactive command.  It is not self explanatory. Display both the icon and the alpha ID or text string.
       
   783         };
       
   784 
       
   785     struct TIconId
       
   786     /**
       
   787     Some types of proactive command can include an icon identifier. Commands
       
   788     that can include an icon will have an RSat::TIconId field. Icons are
       
   789     intended to provide graphical information to the user, although the display
       
   790     of icons is optional.
       
   791 
       
   792     If RSat::TIconId::iQualifier is RSat::ENoIconId then the proactive command
       
   793     does not provide an icon.
       
   794 
       
   795     Otherwise, an icon is provided.  The alpha identifier or text string in the
       
   796     proactive command will be present and will not be a null string.
       
   797 
       
   798     - If RSat::TIconId.iQualifier is RSat::ESelfExplanatory then the icon should
       
   799     be displayed instead of the alpha identifier or text string.
       
   800 
       
   801     - If RSat::TIconId.iQualifier is RSat::ENotSelfExplanatory then both icon
       
   802     and the alpha identifier or text string should be displayed.    If you are
       
   803     not able to display both (such as when the screen is too small) then
       
   804     display just the alpha identifier or text string.
       
   805 
       
   806     RSat::TIconId does not contain the icon itself.  Instead it contains an
       
   807     icon identifier, RSat::TIconId::iIdentifier.  Use RSat::GetIcon() followed
       
   808     by RSat::GetImageInstance() to get the icon from the UICC.
       
   809 
       
   810     There are two error cases related to icons:
       
   811 
       
   812     - If the UICC provides an icon identifier with a proactive command but
       
   813     you cannot display the icon for any reason, then inform the UICC by sending
       
   814     the general result "Command performed successfully, but requested icon
       
   815     could not be displayed"; see RSat::KSuccessRequestedIconNotDisplayed.
       
   816 
       
   817     - If you receive an icon, and either an empty or no alpha identifier/text
       
   818     string is given by the UICC, than reject the command with general result
       
   819     "Command data not understood by terminal"; see RSat::KCmdDataNotUnderstood.
       
   820 
       
   821     @see RSat::GetIcon()
       
   822     @see RSat::GetImageInstance()
       
   823     
       
   824     @see RMobileCall::TIconId
       
   825     */
       
   826         {
       
   827         /** Describes the state of the icon. */
       
   828         TIconQualifier iQualifier;
       
   829         /** Icon identifier, addresses a record in EF IMG. */
       
   830         TUint8 iIdentifier;
       
   831         };
       
   832 
       
   833     //
       
   834     // Read Icon
       
   835     //
       
   836     enum {KImageInstanceDescriptorsMaxSize=255}; //< @see RSat::TIcon
       
   837 
       
   838     /** RSat::GetIcon()  stores the an icon's EF record in this buffer. The
       
   839     record's structure is defined in ETSI TS 131 102; search for EFimg or
       
   840     "Contents of files at the DFGRAPHICS level"
       
   841     @see RSat::GetIcon()
       
   842     @see RSat::TIconId
       
   843     */
       
   844     typedef TBuf8<KImageInstanceDescriptorsMaxSize> TIcon;
       
   845 
       
   846     IMPORT_C void GetIcon(TRequestStatus& aReqStatus, TUint8 aRecordNumber, TIcon& aIconEf) const;
       
   847     IMPORT_C void GetImageInstance(TRequestStatus& aReqStatus, const TDesC8& aInstanceInfo, TDes8& aInstance) const;
       
   848 
       
   849     class TInstanceInfoV2 : public TSatPCmdBase
       
   850     /**
       
   851     Describes the exact position of a record within a EF IMG hold instance descriptor.
       
   852     RSat::TInstanceInfoV2 is packaged into a descriptor, RSat::TInstanceInfoV2Pckg.
       
   853     @see RSat::GetImageInstance()
       
   854     */
       
   855         {
       
   856     public:
       
   857         IMPORT_C TInstanceInfoV2();
       
   858     public:
       
   859         TUint iInstanceNumber;  //< The requested image instance EF.
       
   860         TUint16 iOffset;        //< The offset of the requested image instance EF.
       
   861         TUint16 iLength;        //< The length of the requested image instance EF in bytes.
       
   862         };
       
   863 
       
   864     /** A packaged RSat::TInstanceInfoV2. */
       
   865     typedef TPckg<TInstanceInfoV2>  TInstanceInfoV2Pckg;
       
   866 
       
   867     enum TImageCoding
       
   868     /** Coding used for icons.
       
   869     @see RSat::TInstanceInfoV3. */
       
   870     {
       
   871     KBasic             =0x11,   //< Basic Image Coding
       
   872     KColour            =0x21    //< Colour Image Coding
       
   873     };
       
   874 
       
   875     class TInstanceInfoV3 : public TInstanceInfoV2
       
   876     /**
       
   877     Describes the exact position, coding, size and File ID of a record within a
       
   878     EF IMG hold instance descriptor.
       
   879 
       
   880     The EF record is described in ETSI TS 131 102; search for EFimg or "Contents
       
   881     of files at the DFGRAPHICS level"
       
   882 
       
   883     To retrieve an image's data from the UICC, create an instance of this class
       
   884     and fill in fields with data retrieved with RSat::GetIcon().  Then pass the
       
   885     packaged version of this class (RSat::TInstanceInfoV3Pckg) to
       
   886     RSat::GetImageInstance().
       
   887 
       
   888     @see RSat::GetImageInstance()
       
   889     */
       
   890         {
       
   891     public:
       
   892         IMPORT_C TInstanceInfoV3();
       
   893     public:
       
   894         /**Image Coding Scheme*/
       
   895         TImageCoding iCoding;
       
   896         /**Image Width*/
       
   897         TUint8  iImgWidth;
       
   898         /**Image Height*/
       
   899         TUint8  iImgHeight;
       
   900         /**Image Instance File Identifier*/
       
   901         TUint16 iFileId;
       
   902         };
       
   903 
       
   904     /** A packaged RSat::TInstanceInfoV3. */
       
   905     typedef TPckg<TInstanceInfoV3>  TInstanceInfoV3Pckg;
       
   906 
       
   907     // API/TSY internal type
       
   908     struct TInstanceNumberAndOffset
       
   909         {
       
   910         TUint iInstanceNumber;  //< Image instance number
       
   911         TUint iOffset;          //< Image instance offset within the image record
       
   912         };
       
   913 
       
   914     IMPORT_C void GetClut(TRequestStatus& aReqStatus, TUint aInstanceNumber, TUint aOffset, TDes8& aClut) const;
       
   915 
       
   916     //
       
   917     // Terminal Response - Answer from the client to a proactive command
       
   918     //
       
   919 
       
   920     /** General Result of a proactive command.
       
   921 
       
   922     All proactive commands require a response from you to the UICC via the
       
   923     RSat::TerminalRsp() method.  When you send a response, include a value from
       
   924     this enumeration to indicate the level of success or failure. Some of these
       
   925     values require additional information to be returned to the UICC, too.  For
       
   926     instance, you cannot return just RSat::KMeUnableToProcessCmd, you must
       
   927     return a value from RSat::TMeProblem, too.  The description of each
       
   928     proactive command in 3GPP 31.111 and ETSI TS 102 223 will tell you what you
       
   929     need to return.
       
   930 
       
   931     The values KSuccess to KUssdTransactionTerminatedByUser indicate that the
       
   932     proactive command was successful.  It can be either completely or partially
       
   933     successful.
       
   934 
       
   935     The values from KMeUnableToProcessCmd to KLaunchBrowserError indicate
       
   936     temporary errors.  The UICC may make another attempt by resending the
       
   937     proactive command.
       
   938 
       
   939     The values from KCmdBeyondMeCapabilities onwards are permanent errors.  Use
       
   940     them to tell the UICC that the command cannot be executed at all.
       
   941 
       
   942     TPCmdResult enum values are dictated by 3GPP 31.111 and ETSI TS 102 223;
       
   943     see the description of the 'Result' data object.
       
   944     */
       
   945     enum TPCmdResult
       
   946         {
       
   947         KPCmdResultNotSet                       =-1,
       
   948 
       
   949         // ------------------
       
   950         // Successful results
       
   951         // ------------------
       
   952 
       
   953         /** Command performed successfully. There were no problems. */
       
   954         KSuccess                                =0x00,
       
   955 
       
   956         /** Command performed with partial comprehension; see 'Command results'
       
   957         in ETSI TS 102 223. */
       
   958         KPartialComprehension                   =0x01,
       
   959 
       
   960         /** Command performed, with missing information. Use when you received
       
   961         a minimum set of components but you believe some components to be
       
   962         missing. */
       
   963         KMissingInformation                     =0x02,
       
   964 
       
   965         /** REFRESH performed with additional EFs read. */
       
   966         KRefreshAdditionEFRead                  =0x03,
       
   967 
       
   968         /** Command performed successfully but requested icon could not be displayed. */
       
   969         KSuccessRequestedIconNotDisplayed       =0x04,
       
   970 
       
   971         /** Command performed, but modified by call control. Use this to
       
   972         indicate that call control modified the type of request indicated in
       
   973         the proactive command, and that the action requested by call control
       
   974         was performed successfully. */
       
   975         KModifiedByCallControl                  =0x05,
       
   976 
       
   977         /** Command performed successfully, limited service. */
       
   978         KSuccessLimitedService                  =0x06,
       
   979 
       
   980         /** Command performed with modification. Use this to indicate that you
       
   981         were unable to process the command using the exact parameters provided,
       
   982         but the command was processed with the best possible parameters.*/
       
   983         KPerformedWithModifications             =0x07,
       
   984 
       
   985         /** REFRESH performed but either the (U)SIM or R-UIM was not active. */
       
   986         KRefreshUSIMNotActive                   =0x08,
       
   987 
       
   988         /** PLAY TONE command performed successfully. */
       
   989 		KPlayTonePerformedSuccessfully		=0x09,
       
   990 
       
   991         /** (U)SAT / CCAT session terminated by the user. */
       
   992         KPSessionTerminatedByUser               =0x10,
       
   993 
       
   994         /** Backward move in the (U)SAT / CCAT  session requested by the user. */
       
   995         KBackwardModeRequestedByUser            =0x11,
       
   996 
       
   997         /** No response from user. */
       
   998         KNoResponseFromUser                     =0x12,
       
   999 
       
  1000         /** Help information required by the user.
       
  1001 
       
  1002         The UICC may offer help to accompany a GET INKEY, GET INPUT, SET UP
       
  1003         MENU or SELECT ITEM proactive command. This help is normally text for
       
  1004         the phone's user. If you tell the user that help is available, and if
       
  1005         they would like the help, then respond with this value.
       
  1006 
       
  1007         @see RSat::THelp */
       
  1008         KHelpRequestedByUser                    =0x13,
       
  1009 
       
  1010         /** USSD (Unstructured Supplementary Services Data) session terminated
       
  1011         by the user. */
       
  1012         KUssdTransactionTerminatedByUser        =0x14,
       
  1013 
       
  1014         // ----------------
       
  1015         // Temporary faults
       
  1016         // ----------------
       
  1017 
       
  1018         /** The phone is currently unable to process command.
       
  1019 
       
  1020         Besides returning this value, you must return additional information.
       
  1021         Return a value from RSat::TMeProblem and set the additional information
       
  1022         type to RSat::KMeProblem. */
       
  1023         KMeUnableToProcessCmd                   =0x20,
       
  1024 
       
  1025         /** The network is currently unable to process the command.
       
  1026 
       
  1027         The network will return a cause value to indicate the problem. These
       
  1028         values are defined in the appendices of 3GPP TS 24.008.  Set bit 8 of
       
  1029         the 8-bit code to 1, then include this code in the 'additional
       
  1030         information' field in your response to the UICC. Set the additional
       
  1031         information type to RSat::KSatNetworkErrorInfo.
       
  1032 
       
  1033         If no cause code is available, set the 'additional information' field to zero.*/
       
  1034         KNetworkUnableToProcessCmd              =0x21,
       
  1035 
       
  1036         /** In some proactive commands, you are required to solicit and receive
       
  1037         the user's approval before executing the proactive command. If the user
       
  1038         does not give approval then you should not execute it, and you should
       
  1039         give this response to the UICC. */
       
  1040         KPCmdNotAcceptedByUser                  =0x22,
       
  1041 
       
  1042         /** The user cleared down the call before the call
       
  1043         connected or before the network released the call. */
       
  1044         KCallClearedBeforeConnectionOrReleased  =0x23,
       
  1045 
       
  1046         /** Use this code when the UICC requests an action for a timer to be
       
  1047         taken by the terminal and the state of the timer does not allow that
       
  1048         action. */
       
  1049         KContradictionWithTimerState            =0x24,
       
  1050 
       
  1051         /** Use this to indicate that call control modified
       
  1052         the type of request indicated in the proactive command, and that the
       
  1053         action requested by call control encounters a temporary problem. */
       
  1054         KInteractionWithCCTemporaryError        =0x25,
       
  1055 
       
  1056         /** Error launching the browser.
       
  1057 
       
  1058         Besides returning this value, you must return an additional value
       
  1059         from RSat::TBrowserError. Set the additional information
       
  1060         type to RSat::KMeProblem. */
       
  1061         KLaunchBrowserError                     =0x26,
       
  1062 
       
  1063         /** The ME has rejected a RETRIEVE/SUBMIT/DISPLAY MUTIMEDIA MESSAGE 
       
  1064         proactive command, because it is busy processing some other MMS transaction.
       
  1065         
       
  1066         @see RSat::KMeProblem
       
  1067         */
       
  1068         KMMSTemporaryProblem					=0x27,
       
  1069 
       
  1070         // ----------------
       
  1071         // Permanent faults
       
  1072         // ----------------
       
  1073 
       
  1074         /** Command is beyond your capabilities. You understand what the
       
  1075         command is asking you to do, but you do not have the capability to do
       
  1076         it.  E.g. your code is running on a device that only supports SMS and
       
  1077         the command asks you to set up a call. */
       
  1078         KCmdBeyondMeCapabilities                =0x30,
       
  1079 
       
  1080         /** Proactive command type not understood. It is unlikely this will be
       
  1081         needed - it is to allow future expansion of commands. */
       
  1082         KCmdTypeNotUnderstood                   =0x31,
       
  1083 
       
  1084         /** Command data not understood. You understand the command type is
       
  1085         understood but not the accompanying data object(s). */
       
  1086         KCmdDataNotUnderstood                   =0x32,
       
  1087 
       
  1088         /** Command number not known. */
       
  1089         KCmdNumberNotKnown                      =0x33,
       
  1090 
       
  1091         /** The network returns a Supplementary Service (SS) error in response
       
  1092         to a previous SS command. Specific cause values are the same as given
       
  1093         by the network in the Return Error message.
       
  1094 
       
  1095         The network will return an error value given in the Facility
       
  1096         information element to indicate the problem.  Set bit 8 of
       
  1097         the 8-bit code to 1, then include this code in the 'additional
       
  1098         information' field in your response to the UICC. Set the additional
       
  1099         information type to RSat::KSatNetworkErrorInfo.
       
  1100 
       
  1101         If no cause code is available, set the 'additional information' field to zero.*/
       
  1102         KSsReturnError                          =0x34,
       
  1103 
       
  1104         /** The network returns an error in response to the phone trying to send a
       
  1105         short message.
       
  1106 
       
  1107         To indicate the problem, the network will return a cause value in the
       
  1108         RP cause element from the RP-ERROR message.  Set bit 8 of
       
  1109         the 8-bit code to 1, then include this code in the 'additional
       
  1110         information' field in your response to the UICC. Set the additional
       
  1111         information type to RSat::KSatNetworkErrorInfo.
       
  1112 
       
  1113         If no cause code is available, set the 'additional information' field to zero.*/
       
  1114         KSmsRpError  =0x35,
       
  1115 
       
  1116         /** Required values are missing.  You understand the command but one or
       
  1117         more required data objects are missing.  The specifications defining
       
  1118         the (U)SAT and CCAT toolkits define the minimum required objects for
       
  1119         each command. */
       
  1120         KErrorRequiredValuesMissing             =0x36,
       
  1121 
       
  1122         /** The network returns a USSD error in response to a previous USSD
       
  1123         command. Specific cause values are the same as given by the network in
       
  1124         a Return Error message.  This has additional information: the error value
       
  1125         given in the Facility information element returned by the network. Set bit 8 of
       
  1126         the 8-bit code to 1, then include this code in the 'additional
       
  1127         information' field in your response to the UICC. Set the additional
       
  1128         information type to RSat::KSatNetworkErrorInfo.
       
  1129 
       
  1130         If no cause code is available, set the 'additional information' field to zero.*/
       
  1131         KUssdReturnError                        =0x37,
       
  1132 
       
  1133         /** Multiple card commands error.
       
  1134 
       
  1135         Besides returning this value, you must return an additional value
       
  1136         from RSat::TMultipleCardError. Set the additional information
       
  1137         type to RSat::KMeProblem. */
       
  1138         KMultipleCardCmdsError                  =0x38,
       
  1139 
       
  1140         /** Interaction with call control, permanent problem.
       
  1141 
       
  1142         Besides returning this value, you must return an additional value
       
  1143         from RSat::TCcInteractionError. Set the additional information
       
  1144         type to RSat::KMeProblem. */
       
  1145         KInteractionWithCCPermanentError        =0x39,
       
  1146 
       
  1147         /** Bearer Independent Protocol error.
       
  1148 
       
  1149         Besides returning this value, you must return an additional value
       
  1150         from RSat::TBearerIndProtoError. Set the additional information
       
  1151         type to RSat::KMeProblem. */
       
  1152         KBearerIndepProtocolError               =0x3A,
       
  1153 
       
  1154         /** Access Technology unable to process command. */
       
  1155         KAccessTechUnableProcessCmd             =0x3B,
       
  1156         
       
  1157         /** An error occured while trying to process the SET FRAMES or GET FRAMES STATUS command. */
       
  1158         KFramesError							=0x3C,
       
  1159         
       
  1160         /** A permanent error occured while trying to process one of the RETRIEVE/SUBMIT/DISPLAY
       
  1161         MUTIMEDIA MESSAGE proactive commands. 
       
  1162         
       
  1163         @see RSat::KMeProblem
       
  1164         */
       
  1165         KMMSError								=0x3D
       
  1166 
       
  1167         };
       
  1168 
       
  1169     enum TAdditionalInfoType
       
  1170     /**
       
  1171     All proactive commands require a response from you to the UICC via the
       
  1172     RSat::TerminalRsp() method.  Some require a descriptor containing 'additional
       
  1173     information', RSat::TAdditionalInfo.  The information in this descriptor will
       
  1174     depend upon the type of proactive command to which you are responding; see
       
  1175     the description of each proactive command.
       
  1176 
       
  1177     Besides returning the descriptor, you must indicate the type of
       
  1178     additional information by returning a value from RSat::TAdditionalInfoType.
       
  1179 
       
  1180     @see RSat::TAdditionalInfo
       
  1181     @see RSat::TerminalRsp()
       
  1182     */
       
  1183         {
       
  1184         KNoAdditionalInfo           = 0x0001,  //< No additional result info has been provided.
       
  1185         KMeProblem                  = 0x0002,  //< Possible additional information, in the event of an phone problem, is described by RSat::TMeProblem.
       
  1186 
       
  1187         /** The additional information, in this case, consists of the error
       
  1188         code returned by the network. The error code returned by the network is
       
  1189         available to the client, as it is passed up to the client in the
       
  1190         extended GSM error code as a response to a SET UP CALL, a SEND SS, a
       
  1191         SEND SHORT MESSAGE, SEND USSD or SEND DTMF. */
       
  1192         KSatNetworkErrorInfo        = 0x0004,
       
  1193 
       
  1194         KControlInteraction         = 0x0008,  //< Interaction with call control or MO SM control.
       
  1195         KSendSsInfo                 = 0x0010,  //< Additional info on a successful result for a SEND SS proactive command.
       
  1196         KTextString                 = 0x0020,  //< Text string - additional info for a successful GET INKEY, GET INPUT or SEND USSD.
       
  1197         KItemIdentifier             = 0x0040,  //< Item selected as a result to a SELECT ITEM proactive command.
       
  1198         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.
       
  1199         KRApdu                      = 0x0100,  //< Required in response to PERFORM CARD APDU.
       
  1200         KCardATR                    = 0x0200,  //< Required in response to POWER ON CARD.
       
  1201         KATResponse                 = 0x0400,  //< Required in response to RUN AT COMMAND.
       
  1202         KChannelData                = 0x0800,  //< Required in response to RECEIVE DATA.
       
  1203         KChannelStatusInfo          = 0x1000,  //< Required in response to GET CHANNEL STATUS and OPEN CHANNEL.
       
  1204         KServiceAvailability        = 0x2000,  //< Required in response to Service Search.
       
  1205         KCardReaderInfo             = 0x4000,  //< Required in response to GET READER STATUS.
       
  1206         KLocalInformation           = 0x8000,  //< Required in response to PROVIDE LOCAL INFORMATION.
       
  1207         KTimerMgmt                  = 0x10000, //< Required in response to TIMER MANAGEMENT.
       
  1208         KPollingIntv                = 0x20000, //< Required in response to POLLING INTERVAL.
       
  1209         KServiceRecord              = 0x40000, //< Required in response to GET SERVICE INFORMATION.
       
  1210         KFramesInfo                 = 0x80000  //< Required in response to SET FRAMES and GET FRAMES STATUS.
       
  1211         };
       
  1212 
       
  1213     /**
       
  1214     Addition information provide to the UICC in response to proactive
       
  1215     commands. A value from this enumeration should be provided when the
       
  1216     general response to a command is RSat::KMeUnableToProcessCmd
       
  1217     Set the additional information type to RSat::KMeProblem.
       
  1218 
       
  1219     Enum values are dictated by 3GPP 31.111 and ETSI TS 102 223; see the
       
  1220     description of the 'Result' data objects.
       
  1221     */
       
  1222     enum TMeProblem
       
  1223         {
       
  1224         KNoSpecificMeProblem        = 0x00, //< No specific cause can be given.
       
  1225         KScreenBusy                 = 0x01, //< Screen is busy.
       
  1226         KMeBusyOnCall               = 0x02, //< Busy on call.
       
  1227         KMeBusyOnSs                 = 0x03, //< Busy on supplementary service.
       
  1228         KNoService                  = 0x04, //< No service.
       
  1229         KAccBar                     = 0x05, //< Access control class bar.
       
  1230         KRadioRessourceNotGranted   = 0x06, //< Radio resource not granted.
       
  1231         KNotInSpeechCall            = 0x07, //< Not in speech call.
       
  1232         KMeBusyOnUssd               = 0x08, //< Busry on USSD.
       
  1233         KMeBusyOnSendDtmf           = 0x09, //< Busy on SEND DTMF command.
       
  1234         KNoUSIMActive               = 0x0A  //< No (U)SIM or R-UIM active.
       
  1235         };
       
  1236 
       
  1237     /**
       
  1238     Addition information provide to the UICC in response to proactive
       
  1239     commands. A value from this enumeration should be provided when the
       
  1240     general response to a command is RSat::KInteractionWithCCPermanentError.
       
  1241     Set the additional information type to RSat::KMeProblem.
       
  1242 
       
  1243     Enum values are dictated by ETSI TS 102 223; see the description of the
       
  1244     'Result' data objects.
       
  1245     */
       
  1246     enum TCcInteractionError
       
  1247         {
       
  1248         KNoSpecificInteractionError = 0x00, //< No specific cause can be given.
       
  1249         KActionNotAllowed           = 0x01, //< Action not allowed.
       
  1250         KRequestTypeChanged         = 0x02  //< The type of request has changed.
       
  1251         };
       
  1252 
       
  1253     /**
       
  1254     Addition information provide to the UICC in response to proactive
       
  1255     commands. A value from this enumeration should be provided when the
       
  1256     general response to a command is RSat::KMultipleCardCmdsError.
       
  1257     Set the additional information type to RSat::KMeProblem.
       
  1258 
       
  1259     Enum values are dictated by ETSI TS 102 223; see the description of the
       
  1260     'Result' data objects.
       
  1261     */
       
  1262     enum TMultipleCardError
       
  1263         {
       
  1264         KNoSpecificMultiCardError   = 0x00, //< No specific cause can be given.
       
  1265         KNoCardReader               = 0x01, //< Card reader removed or not present
       
  1266         KNoCard                     = 0x02, //< Card removed or not present
       
  1267         KCardReadyBusy              = 0x03, //< Card reader busy.
       
  1268         KCardPoweredOff             = 0x04, //< Card powered off.
       
  1269         KCApduFormatError           = 0x05, //< C-APDU format error.
       
  1270         KMuteCard                   = 0x06, //< Mute card.
       
  1271         KTransmissionError          = 0x07, //< Transmission error.
       
  1272         KProtocolNotSupported       = 0x08, //< Protocol not supported.
       
  1273         KSpecifiedReaderNotValid    = 0x09  //< Specified reader not valid.
       
  1274         };
       
  1275 
       
  1276     /**
       
  1277     Addition information provide to the UICC in response to proactive
       
  1278     commands. A value from this enumeration should be provided when the
       
  1279     general response to a command is RSat::KLaunchBrowserError.
       
  1280     Set the additional information type to RSat::KMeProblem.
       
  1281     */
       
  1282     enum TBrowserError
       
  1283         {
       
  1284         KNoSpecificBrowserError         = 0x00,
       
  1285         KBearerUnvailable               = 0x01,
       
  1286         KBrowserUnavailable             = 0x02,
       
  1287         KMeUnableToReadProvisioningData = 0x04
       
  1288         };
       
  1289 
       
  1290     /**
       
  1291     Addition information provide to the UICC in response to proactive
       
  1292     commands. A value from this enumeration should be provided when the
       
  1293     general response to a command is RSat::KBearerIndepProtocolError
       
  1294     Set the additional information type to RSat::KMeProblem.
       
  1295 
       
  1296     Enum values are dictated by ETSI TS 102 223; see the description of the
       
  1297     'Result' data objects.
       
  1298     */
       
  1299     enum TBearerIndProtoError
       
  1300         {
       
  1301         KNoSpecificBIPError         = 0x00, //< No specific cause can be given.
       
  1302         KNoChannelAvailable         = 0x01, //< No channel available.
       
  1303         KChannelClosed              = 0x02, //< Channel closed.
       
  1304         KChannelIdNotValid          = 0x03, //< Channel identifier not valid.
       
  1305         KBufferSizeNotAvailable     = 0x04, //< Requested buffer size not available.
       
  1306         KSecurityError              = 0x05, //< Security error (unsuccessful authentication).
       
  1307         KTranportLevelNotAvailable  = 0x06, //< Requested UICC/terminal interface transport level not available.
       
  1308         KRemoteDeviceNotReachable   = 0x07, //< Remote device is not reachable (not present, not physically connected, switched off, etc.).
       
  1309         KServiceError               = 0x08, //< Service error (service not available on remote device).
       
  1310         KServiceIdUnknown           = 0x09, //< Service identifier unknown.
       
  1311         KPortNotAvailable			= 0x10	//< Port not available (applicable for OPEN CHANNEL related to UICC Server Mode).
       
  1312         };
       
  1313 
       
  1314 	/**
       
  1315     Addition information provide to the UICC in response to proactive
       
  1316     commands. A value from this enumeration should be provided when the
       
  1317     general response to a command is RSat::KFramesError
       
  1318     Set the additional information type to RSat::KMeProblem.
       
  1319 
       
  1320     Enum values are dictated by ETSI TS 102 223; see the description of the
       
  1321     'Result' data objects.
       
  1322     */
       
  1323 	enum TFramesError
       
  1324    		{
       
  1325    		KNoSpecificCauseCanBeGiven 					= 0x00, //< This error is reported when a specific reason for the KFramesError is not reported.
       
  1326 		KFrameIdentifierIsNotValid 					= 0x01, //< The indicator is flagged when the frame identifier is not valid.                                 
       
  1327 		KNumberOfFramesExceeded                 	= 0x02, //< This indicator is flagged when the number of frames are beyond the terminal capability.
       
  1328 		KNoFrameIdentified          				= 0x03, //< This indicator is flagged when no frame is identified.
       
  1329 		KRequestSizeNotSupported     				= 0x04, //< This indicator is flagged when the requested size is not supported.
       
  1330 		KDefaultActiveFrameIsNotValid				= 0x05  //< This indicator is flagged when the default active frames is not valid.
       
  1331     	};
       
  1332     	
       
  1333 	/**
       
  1334 	@see TAdditionalInfo
       
  1335 	*/
       
  1336     enum {KAdditionalInfoMaxSize=244};
       
  1337 
       
  1338     /**
       
  1339     All proactive commands require a response from you to the UICC via the
       
  1340     RSat::TerminalRsp() method.  Some require a buffer containing 'additional
       
  1341     information'.  The information in this buffer will depend upon the type of
       
  1342     proactive command to which you are responding; see the description of each
       
  1343     proactive command.
       
  1344 
       
  1345     Besides returning a RSat::TAdditionalInfo, you must indicate the type of
       
  1346     additional information by returning a value from RSat::TAdditionalInfoType.
       
  1347     @see RSat::TAdditionalInfoType
       
  1348     @see RSat::TerminalRsp()
       
  1349     */
       
  1350     typedef TBuf<KAdditionalInfoMaxSize> TAdditionalInfo;
       
  1351 
       
  1352     enum TPCmd
       
  1353     /**
       
  1354     Enumeration containing proactive commands for use with the
       
  1355     RSat::TerminalRsp(), RSat::NotifyTsyStateUpdated() and
       
  1356     RTelSubSessionBase::CancelAsyncRequest() methods only.  Members of this
       
  1357     enumeration do not have the same value as the proactive command codes in
       
  1358     3GPP TS 31.111 and ETSI TS 102 223.
       
  1359     */
       
  1360         {
       
  1361         EDisplayText,
       
  1362         EGetInkey,
       
  1363         EGetInput,
       
  1364         EPlayTone,
       
  1365         ERefresh,
       
  1366         ESelectItem,
       
  1367         ESendDtmf,
       
  1368         ESendSm,
       
  1369         ESendSs,
       
  1370         ESendUssd,
       
  1371         ESetUpCall,
       
  1372         ESetUpEventList,
       
  1373         ESetUpIdleModeText,
       
  1374         ESetUpMenu,
       
  1375         EPerformCardApdu,
       
  1376         EPowerOffCard,
       
  1377         EPowerOnCard,
       
  1378         EGetReaderStatus,
       
  1379         ERunAtCommand,
       
  1380         ELanguageNotification,
       
  1381         ELaunchBrowser,
       
  1382         EOpenChannelCs,
       
  1383         EOpenChannelGprs,
       
  1384         EOpenChannelLocal,
       
  1385         ECloseChannel,
       
  1386         EReceiveData,
       
  1387         ESendData,
       
  1388         EGetChannelStatus,
       
  1389         EDeclareService,
       
  1390         EServiceSearch,
       
  1391         EGetServiceInformation,
       
  1392         ETimerMngt,
       
  1393         ELocalInfo,
       
  1394         EPollingInterval,
       
  1395         EPollingOff,
       
  1396         ERetrieveMultimediaMsg,
       
  1397         ESubmitMultimediaMsg,
       
  1398         EDisplayMultimediaMsg,
       
  1399         ESetFrames,
       
  1400         EGetFramesStatus,
       
  1401         EOpenChannelUiccServerMode
       
  1402         };
       
  1403 
       
  1404     IMPORT_C void TerminalRsp(TRequestStatus& aReqStatus, TPCmd aPCmd, const TDesC8& aRsp) const;
       
  1405 
       
  1406     //
       
  1407     // Client ready indication
       
  1408     //
       
  1409     IMPORT_C TInt UsatClientReadyIndication() const;
       
  1410 
       
  1411     //
       
  1412     // TERMINAL PROFILE
       
  1413     //
       
  1414 
       
  1415     // TSatProfileByteX enum values are dictated by 3GPP 31.111
       
  1416 
       
  1417     enum TSatProfileByte1
       
  1418     /** Flags for byte 1 of the terminal profile.
       
  1419     @see RSat::TSatProfileV1 */
       
  1420         {
       
  1421         KCapsProfileDownload        =0x01,  //< Profile download
       
  1422         KCapsSmsPpDataDownload      =0x02,  //< USAT only: SMS-PP data download
       
  1423         KCapsCbDataDownload         =0x04,  //< USAT only: Cell Broadcast data download
       
  1424         KCapsMenuSelection          =0x08,  //< Menu selection
       
  1425         KCaps9EXX                   =0x10,  //< To be used only in v1.0 API
       
  1426         KCapsSmsPpDataDownload2     =0x10,  //< v2.0 API only: SMS-PP data download supported.
       
  1427         KCapsTimerExpiration        =0x20,  //< Timer expiration
       
  1428         KCapsUssdStringInCC         =0x40,  //< To be used only in v1.0 API
       
  1429         KCapsCCByUSim2              =0x40,  //< USAT only: Call Control by USIM supported.
       
  1430         KCapsCCByUSim3              =0x80   //< v2.0 API only: Call Control supported.
       
  1431         };
       
  1432 
       
  1433     enum TSatProfileByte2
       
  1434     /** Flags for byte 2 of the terminal profile.
       
  1435     @see RSat::TSatProfileV1 */
       
  1436         {
       
  1437         KCapsCommandResult          =0x01,  //< Command result
       
  1438         KCapsCCBySim                =0x02,  //< v2.0 API only: Call Control by USIM
       
  1439         KCapsCellIdInCCBySim        =0x04,  //< To be used only in v1.0 API
       
  1440         KCapsCCByUSim4              =0x04,  //< v2.0 API only: Call Control supported.
       
  1441         KCapsMOSMControl            =0x08,  //< USAT only: MO short message control support
       
  1442         KCapsAlphaIdHandling        =0x10,  //< To be used only in v1.0 API
       
  1443         KCapsCCByUSim5              =0x10,  //< v2.0 API only: Call Control supported.
       
  1444         KCapsUcs2Entry              =0x20,  //< UCS2 Entry supported
       
  1445         KCapsUcs2Display            =0x40,  //< UCS2 Display supported
       
  1446         KCapsExtensionTextDisplay   =0x80,  //< To be used only in v1.0 API
       
  1447         KCapsDisplayText2           =0x80   //< v2.0 API only: DISPLAY TEXT supported.
       
  1448         };
       
  1449 
       
  1450     enum TSatProfileByte3
       
  1451     /** Flags for byte 3 of the terminal profile.
       
  1452     @see RSat::TSatProfileV1 */
       
  1453         {
       
  1454         KCapsDisplayText    =0x01, //< Proactive UICC: DISPLAY TEXT
       
  1455         KCapsGetInkey       =0x02, //< Proactive UICC: GET INKEY
       
  1456         KCapsGetInput       =0x04, //< Proactive UICC: GET INPUT
       
  1457         KCapsMoreTime       =0x08, //< Proactive UICC: MORE TIME
       
  1458         KCapsPlayTone       =0x10, //< Proactive UICC: PLAY TONE
       
  1459         KCapsPollInterval   =0x20, //< Proactive UICC: POLL INTERVAL
       
  1460         KCapsPollingOff     =0x40, //< Proactive UICC: POLLING OFF
       
  1461         KCapsRefresh        =0x80  //< Proactive UICC: REFRESH
       
  1462         };
       
  1463 
       
  1464     enum TSatProfileByte4
       
  1465     /** Flags for byte 4 of the terminal profile.
       
  1466     @see RSat::TSatProfileV1 */
       
  1467         {
       
  1468         KCapsSelectItem                 =0x01, //< Proactive UICC: SELECT ITEM
       
  1469         KCapsSendSM                     =0x02, //< Proactive UICC: SEND SHORT MESSAGE
       
  1470         KCapsSendSS                     =0x04, //< Proactive UICC: SEND SS
       
  1471         KCapsSendUSSD                   =0x08, //< Proactive UICC: SEND USSD
       
  1472         KCapsSetUpCall                  =0x10, //< Proactive UICC: SET UP CALL
       
  1473         KCapsSetUpMenu                  =0x20, //< Proactive UICC: SET UP MENU
       
  1474         KCapsProvideLocalInformation    =0x40, //< Proactive UICC: PROVIDE LOCAL INFORMATION (MCC, MNC, LAC, Cell ID & IMEI)
       
  1475         KCapsProvideLocalInformationNMR =0x80  //< Proactive UICC: PROVIDE LOCAL INFORMATION (NMR)
       
  1476         };
       
  1477 
       
  1478     enum TSatProfileByte5
       
  1479     /** Flags for byte 5 of the terminal profile.
       
  1480     @see RSat::TSatProfileV1 */
       
  1481         {
       
  1482         KCapsSetUpEventList             =0x01, //< Proactive UICC: SET UP EVENT LIST
       
  1483         KCapsMtCallEvent                =0x02, //< Event: MT call
       
  1484         KCapsCallConnectedEvent         =0x04, //< Event: Call connected
       
  1485         KCapsCallDisconnectedEvent      =0x08, //< Event: Call disconnected
       
  1486         KCapsLocationStatusEvent        =0x10, //< Event: Location status
       
  1487         KCapsUserActivityEvent          =0x20, //< Event: User activity
       
  1488         KCapsIdleScreenAvailableEvent   =0x40, //< Event: Idle screen available
       
  1489         KCapsCardReaderStatusEvent      =0x80  //< Event: Card reader status
       
  1490         };
       
  1491 
       
  1492     enum TSatProfileByte6
       
  1493     /** Flags for byte 6 of the terminal profile. */
       
  1494         {
       
  1495         KCapsLanguageSelectionEvent     =0x01, //< Event: Language selection
       
  1496         KCapsBrowserTerminationEvent    =0x02, //< Event: Browser Termination
       
  1497         KCapsDataAvailableEvent         =0x04, //< Event: Data available
       
  1498         KCapsChannelStatusEvent         =0x08, //< Event: Channel status
       
  1499         KCapsAccTechnoChangedEvent      =0x10, //< Event: Access Technology Change
       
  1500         KCapsDisplayParamsChangedEvent  =0x20, //< Event: Display parameters changed
       
  1501         KCapsLocalConnectionEvent       =0x40,  //< Event: Local Connection
       
  1502         KCapsNetworkSearchModeChangeEvent	=0x80  //< Event: Network Search Mode Change (added in V6)
       
  1503         };
       
  1504 
       
  1505     enum TSatProfileByte7
       
  1506     /** Flags for byte 7 of the terminal profile.
       
  1507     @see RSat::TSatProfileV1 */
       
  1508         {
       
  1509         KCapsPowerOnCard        =0x01, //< Proactive UICC: POWER ON CARD
       
  1510         KCapsPowerOffCard       =0x02, //< Proactive UICC: POWER OFF CARD
       
  1511         KCapsPerformCardApdu    =0x04, //< Proactive UICC: PERFORM CARD APDU
       
  1512         KCapsGetReaderStatus    =0x08, //< Proactive UICC: GET READER STATUS (Card reader status)
       
  1513         KCapsGetReaderStatusId  =0x10  //< Proactive UICC: GET READER STATUS (Card reader identifier)
       
  1514         //Other Values are RFU
       
  1515         };
       
  1516 
       
  1517     enum TSatProfileByte8
       
  1518     /** Flags for byte 8 of the terminal profile.
       
  1519     @see RSat::TSatProfileV1 */
       
  1520         {
       
  1521         KCapsTimerManagementStartStop           =0x01, //< Proactive UICC: TIMER MANAGEMENT (start, stop)
       
  1522         KCapsTimerManagementGetCurrentValue     =0x02, //< Proactive UICC: TIMER MANAGEMENT (get current value)
       
  1523         KCapsProvideLocalInfoDateTimeTimeZone   =0x04, //< Proactive UICC: PROVIDE LOCAL INFORMATION (date, time and time zone)
       
  1524         KCapsBinaryChoiceGetInkey               =0x08, //< To be used only in v1.0 API
       
  1525         KCapsGetInkey2                          =0x08, //< v2.0 API only: GET INKEY supported.
       
  1526         KCapsSetUpIdleModeText                  =0x10, //< Proactive UICC: SET UP IDLE MODE TEXT
       
  1527         KCapsRunAtCmd                           =0x20, //< RUN AT COMMAND (i.e. class "b" is supported)
       
  1528         KCaps2ndAlphaIdSetUpCall                =0x40, //< To be used only in v1.0 API
       
  1529         KCapsSetUpCall2                         =0x40, //< v2.0 API only: SET UP CALL supported.
       
  1530         KCaps2ndCapabilityConfigParam           =0x80, //< To be used only in v1.0 API
       
  1531         KCapsCCByUSim6                          =0x80  //< v2.0 API only: Call Control supported.
       
  1532         };
       
  1533 
       
  1534     enum TSatProfileByte9
       
  1535     /** Flags for byte 9 of the terminal profile.
       
  1536     @see RSat::TSatProfileV1 */
       
  1537         {
       
  1538         KCapsSustainedDisplayText       =0x01,  //< To be used only in v1.0 API
       
  1539         KCapsDisplayText3               =0x01,  //< v2.0 API only: DISPLAY TEXT supported.
       
  1540         KCapsSendDTMFCmd                =0x02,  //< Proactive UICC: SEND DTMF
       
  1541         KCapsProvideLocalInfoBcchCoding =0x04,  //< To be used only in v1.0 API
       
  1542         KCapsProvideLocalnfoNmr2        =0x04,  //< v2.0 API only: Proactive UICC: PROVIDE LOCAL INFORMATION (NMR) supported.
       
  1543         KCapsProvideLocalInfoLanguage   =0x08,  //< Proactive UICC: PROVIDE LOCAL INFORMATION (language)
       
  1544         KCapsProvideLocalInfoTimingAdv  =0x10,  //< USAT only: Proactive UICC: PROVIDE LOCAL INFORMATION (Timing Advance)
       
  1545         KCapsLanguageNotification       =0x20,  //< Proactive UICC: LANGUAGE NOTIFICATION
       
  1546         KCapsLaunchBrowser              =0x40,  //< Proactive UICC: LAUNCH BROWSER
       
  1547         KCapsProvideLocalInfoAccTech    =0x80   //< Proactive UICC: PROVIDE LOCAL INFORMATION (Access Technology)
       
  1548         };
       
  1549 
       
  1550     enum TSatProfileByte10
       
  1551      /** Flags for byte 10 of the terminal profile.
       
  1552      @see RSat::TSatProfileV2 */
       
  1553        {
       
  1554         KCapsSoftKeySelectItem  =0x10, //< Soft keys support for SELECT ITEM
       
  1555         KCapsSoftKeySetUpMenu   =0x20  //< Soft Keys support for SET UP MENU
       
  1556         };
       
  1557 
       
  1558     enum TSatProfileByte12
       
  1559     /** Flags for byte 12 of the terminal profile.
       
  1560     @see RSat::TSatProfileV2 */
       
  1561         {
       
  1562         KCapsOpenChannel        =0x01, //< Proactive UICC: OPEN CHANNEL
       
  1563         KCapsCloseChannel       =0x02, //< Proactive UICC: CLOSE CHANNEL
       
  1564         KCapsReceiveData        =0x04, //< Proactive UICC: RECEIVE DATA
       
  1565         KCapsSendData           =0x08, //< Proactive UICC: SEND DATA
       
  1566         KCapsGetChannelStatus   =0x10, //< Proactive UICC: GET CHANNEL STATUS
       
  1567         KCapsServiceSearch      =0x20, //< Proactive UICC: SERVICE SEARCH
       
  1568         KCapsGetServiceInfo     =0x40, //< Proactive UICC: GET SERVICE INFORMATION
       
  1569         KCapsDeclareService     =0x80  //< Proactive UICC: DECLARE SERVICE
       
  1570         };
       
  1571 
       
  1572     enum TSatProfileByte13
       
  1573      /** Flags for byte 13 of the terminal profile.
       
  1574      @see RSat::TSatProfileV2 */
       
  1575 		{
       
  1576         KCapsCsdSupportByMe     =0x01, //< CSD supported by phone
       
  1577         KCapsGprsSupportByMe    =0x02, //< GPRS supported by phone
       
  1578         KCapsBtSupportByMe      =0x04, //< Bluetooth supported by phone
       
  1579         KCapsIrdaSupportByMe    =0x08, //< IrDA supported by phone
       
  1580         KCapsRs232SupportByMe   =0x10  //< RS232 supported by phone
       
  1581         };
       
  1582 
       
  1583     enum TSatProfileByte14
       
  1584     /** Flags for byte 14 of the terminal profile.
       
  1585     @see RSat::TSatProfileV2 */
       
  1586         {
       
  1587         KCapsScreenSizingParams =0x80 //< Screen Sizing Parameters supported, as defined in bytes 14, 15 and 16.
       
  1588         };
       
  1589 
       
  1590     enum TSatProfileByte15
       
  1591     /** Flags for byte 15 of the terminal profile.
       
  1592     @see RSat::TSatProfileV2 */
       
  1593         {
       
  1594         KCapsVariableSizeFonts  =0x80 //< Variable size fonts Supported
       
  1595         };
       
  1596 
       
  1597     enum TSatProfileByte16
       
  1598     /** Flags for byte 16 of the terminal profile.
       
  1599     @see RSat::TSatProfileV2 */
       
  1600         {
       
  1601         KCapsDisplayResize          =0x01, //< Display can be resized
       
  1602         KCapsTextWrapping           =0x02, //< Text Wrapping supported
       
  1603         KCapsTextScrolling          =0x04, //< Text Scrolling supported
       
  1604         KCapsWidthReductionInMenu   =0x80  //< Text Attributes supported.
       
  1605         };
       
  1606 
       
  1607     enum TSatProfileByte17
       
  1608     /** Flags for byte 17 of the terminal profile.
       
  1609     @see RSat::TSatProfileV2 */
       
  1610         {
       
  1611         KCapsTcp    		=0x01, 	//< TCP, UICC in client mode
       
  1612         KCapsUdp    		=0x02,  //< UDP, UICC in client mode
       
  1613         KCapsTcpServerMode	=0x04	//< TCP, UICC in server mode
       
  1614         							//	 Next four bits RFU, bit = 0
       
  1615         							//	 Last bit, reserved by 3GPP (HSDPA)
       
  1616         };
       
  1617 
       
  1618     enum TSatProfileByte18
       
  1619     /** Flags for byte 18 of the terminal profile.
       
  1620     @see RSat::TSatProfileV2 */
       
  1621         {
       
  1622         KCapsDisplayTextVariableTimeout =0x01, //< Proactive UICC: DISPLAY TEXT (Variable Time out)
       
  1623         KCapsGetInkeyHelp               =0x02, //< Proactive UICC: GET INKEY (help is supported while waiting for immediate response or variable timeout)
       
  1624         KCapsUsbSupportByMe             =0x04, //< USB supported by phone.
       
  1625 		KCapsGetInkeyVariableTimeout    =0x08, //< PROACTIVE UICC: GET INKEY (Variable Timeout)
       
  1626         									   //< Bit 5 is reserved for ETSI SCP
       
  1627         KCapsCallControlOnGprs          =0x20,  //< Call Control on GPRS
       
  1628         KCapsProvideLocalInfoIMEISV    			=0x40, //< Proactive UICC: PROVIDE LOCAL INFORMATION (IMEISV, added in V6)
       
  1629         KCapsProvideLocalInfoSearchModeChange 	=0x80  //< Proactive UICC: PROVIDE LOCAL INFORMATION (Search Mode Change, added in V6)
       
  1630         };
       
  1631 
       
  1632 	// Byte 19 reserved for TIA/EIA-136-C facilities
       
  1633 	// Byte 20 reserved for TIA/IS-820-A facilities
       
  1634 	
       
  1635 	enum TSatProfileByte21
       
  1636     /** Flags for byte 21 of the terminal profile (extended browser capability).
       
  1637     @see RSat::TSatProfileV6
       
  1638     */
       
  1639      	{
       
  1640 		KCapsWML     =0x01, //< WML Browser is supported by phone.
       
  1641 		KCapsXHTML   =0x02, //< XHTML Browser is supported by phone.
       
  1642 		KCapsHTML    =0x04, //< HTML Browser is supported by phone.   
       
  1643 		KCapsCHTML   =0x08  //< CHTML Browser is supported by phone.
       
  1644 		// The rest of the bits in this byte are RFU 
       
  1645     	};
       
  1646 
       
  1647 	enum TSatProfileByte22
       
  1648     /** Flags for byte 22 of the terminal profile.
       
  1649     @see RSat::TSatProfileV6 
       
  1650     */
       
  1651 		{
       
  1652 		KCapsProvideLocalInfoUTRAN			=0x01, //< Reserved by 3GPP (UTRAN PS with extended params)
       
  1653 		KCapsProvideLocalInfoBatteryState	=0x02, //< Proactive UICC: PROVIDE LOCAL INFORMATION (battery state)  
       
  1654 		KCapsPlayThemedAndMelodyTone		=0x04, //< Proactive UICC: PLAY TONE (themed and melody tones supported (compare this with 5th bit of byte 3)    
       
  1655 		KCapsSetUpCallMultimediaCall		=0x08, //< Multimedia calls in SET UP CALL
       
  1656 		KCapsRefreshGBA						=0x10, //< Reserved by 3GPP (Toolkit-Initiated GBA) 
       
  1657 		KCapsRetrieveMultimediaMessage 		=0x20, //< Proactive UICC: Reserved by 3GPP (RETRIEVE MULTIMEDIA MESSAGE)   
       
  1658 		KCapsSubmitMultimediaMessage	 	=0x40, //< Proactive UICC: Reserved by 3GPP (SUBMIT MULTIMEDIA MESSAGE)  
       
  1659 		KCapsDisplayMultimediaMesage 		=0x80  //< Proactive UICC: Reserved by 3GPP (DISPLAY MULTIMEDIA MESSAGE)  
       
  1660    		};
       
  1661 
       
  1662 	enum TSatProfileByte23
       
  1663     /** Flags for byte 23 of the terminal profile.
       
  1664     @see RSat::TSatProfileV6 
       
  1665     */
       
  1666      	{
       
  1667 		KCapsSetFrames     				=0x01, //< Proactive UICC: SET FRAMES
       
  1668 		KCapsGetFramesStatus  			=0x02, //< Proactive UICC: GET FRAMES STATUS
       
  1669 		KCapsMmsNotificationDownload 	=0x04, //< Reserved by 3GPP (MMS Notification Download)
       
  1670 		//< Bits x and y RFU, bits = 0." where x and y are the bit numbers that are missing.
       
  1671 		KCapsProvideLocalInfoMEID		=0x20, //< Proactive UICC: PROVIDE LOCAL INFORMATION (MEID)
       
  1672 		KCapsProvideLocalInfoNmrUTRAN 	=0x40, //< Reserved by 3GPP (Proactive UICC: PROVIDE LOCAL INFORMATION (NMR-UTRAN))
       
  1673 		KCapsUssdDataDownload			=0x80  //< Reserved by 3GPP (USSD Data download and application mode)
       
  1674   	 	};
       
  1675 
       
  1676 	enum TSatProfileByte24
       
  1677     /** Bits for byte 24 of the terminal profile.
       
  1678     
       
  1679     The first four bits contain the maximum number of frames supported, including frames created
       
  1680     within existing frames.
       
  1681     
       
  1682     The remaining four bits are RFU
       
  1683     
       
  1684     @see RSat::TSatProfileV6 
       
  1685     */
       
  1686      	{
       
  1687 		KCapsMaxNumFramesBit1 =0x01,
       
  1688 		KCapsMaxNumFramesBit2 =0x02,
       
  1689 		KCapsMaxNumFramesBit3 =0x04,
       
  1690 		KCapsMaxNumFramesBit4 =0x08
       
  1691 		// The rest of the bits in this byte are RFU 
       
  1692 	   	};
       
  1693 
       
  1694 	enum TSatProfileByte25
       
  1695     /** Flags for byte 25 of the terminal profile.
       
  1696     @see RSat::TSatProfileV6 
       
  1697     */
       
  1698      	{
       
  1699 		KCapsBrowsingStatusEvent 		=0x01, //< Event: Browsing Status
       
  1700 		KCapsMmsTransferStatusEvent     =0x02, //< Event: MMS Transfer Status 
       
  1701 		KCapsFrameParametersChangeEvent	=0x04  //< Event: Frame Parameters Changed
       
  1702 		// The rest of the bits in this byte are RFU 
       
  1703 		};
       
  1704 	
       
  1705 	// Bytes 26 and 27 reserved for release 7 and later features.
       
  1706 
       
  1707 
       
  1708 	enum TSatProfileByte28
       
  1709 	/** Flags for byte 28 of the terminal profile.
       
  1710 	@see RSat::TSatProfileV5 */
       
  1711 		{
       
  1712 		KCapsTextAttributeAlignmentLeft		=0x01,	//< Text attribute alignment left supported.
       
  1713 		KCapsTextAttributeAlignmentCentre	=0x02,	//< Text attribute alignment centre supported.
       
  1714 		KCapsTextAttributeAlignmentRight 	=0x04,	//< Text attribute alignment right supported.
       
  1715 		KCapsTextAttributeFontSizeNormal 	=0x08,	//< Text attribute font size normal supported.
       
  1716 		KCapsTextAttributeFontSizeLarge		=0x10,	//< Text attribute font size large supported.
       
  1717 		KCapsTextAttributeFontSizeSmall		=0x20	//< Text attribute font size small supported.
       
  1718 													//< Bits 7 and 8 RFU, bits = 0.
       
  1719 		};
       
  1720 
       
  1721 	enum TSatProfileByte29
       
  1722 	/** Flags for byte 29 of the terminal profile.
       
  1723 	@see RSat::TSatProfileV5 */
       
  1724 		{
       
  1725 		KCapsTextAttributeStyleNormal 		=0x01,	//< Text attribute style normal supported.
       
  1726 		KCapsTextAttributeStyleBold			=0x02,	//< Text attribute style bold supported.
       
  1727 		KCapsTextAttributeStyleItalic 		=0x04,	//< Text attribute style italic supported.
       
  1728 		KCapsTextAttributeStyleUnderline 	=0x08,	//< Text attribute style underline supported.
       
  1729 		KCapsTextAttributeStyleStrikethrough=0x10,	//< Text attribute style strikethrough supported.
       
  1730 		KCapsTextAttributeStyleForeground	=0x20,	//< Text attribute foreground colour supported.
       
  1731 		KCapsTextAttributeStyleBackground	=0x40	//< Text attribute background colour supported.
       
  1732 													//< Bit 8 RFU, bit = 0.
       
  1733 		};
       
  1734 
       
  1735     class TSatProfileV1 : public TSatBase
       
  1736     /**
       
  1737     States the SAT facilities supported by the Client and/or the ME-side.
       
  1738     @see RSat::ClientSatProfileIndication()
       
  1739     @see RSat::GetMeSideSatProfile()
       
  1740     */
       
  1741         {
       
  1742     public:
       
  1743         IMPORT_C TSatProfileV1();
       
  1744 
       
  1745         TUint8 iSatProfileByte1;    //< Byte 1 of the (U)SAT Profile; see RSat::TSatProfileByte1
       
  1746         TUint8 iSatProfileByte2;    //< Byte 2 of the (U)SAT Profile; see RSat::TSatProfileByte2
       
  1747         TUint8 iSatProfileByte3;    //< Byte 3 of the (U)SAT Profile; see RSat::TSatProfileByte3
       
  1748         TUint8 iSatProfileByte4;    //< Byte 4 of the (U)SAT Profile; see RSat::TSatProfileByte4
       
  1749         TUint8 iSatProfileByte5;    //< Byte 5 of the (U)SAT Profile; see RSat::TSatProfileByte5
       
  1750         TUint8 iSatProfileByte6;    //< Byte 6 of the (U)SAT Profile; see RSat::TSatProfileByte6
       
  1751         TUint8 iSatProfileByte7;    //< Byte 7 of the (U)SAT Profile; see RSat::TSatProfileByte7
       
  1752         TUint8 iSatProfileByte8;    //< Byte 8 of the (U)SAT Profile; see RSat::TSatProfileByte8
       
  1753         TUint8 iSatProfileByte9;    //< Byte 9 of the (U)SAT Profile; see RSat::TSatProfileByte9
       
  1754         };
       
  1755 
       
  1756     /** A packaged RSat::TSatProfileV1. */
       
  1757     typedef TPckg<TSatProfileV1>    TSatProfileV1Pckg;
       
  1758 
       
  1759 
       
  1760     class TSatProfileV2 : public TSatProfileV1
       
  1761     /**
       
  1762     States the (U)SAT facilities supported by the Client and/or the ME-side
       
  1763     @see RSat::ClientSatProfileIndication()
       
  1764     @see RSat::GetMeSideSatProfile()
       
  1765     */
       
  1766         {
       
  1767     public:
       
  1768         IMPORT_C TSatProfileV2();
       
  1769 
       
  1770         TUint8 iSatProfileByte10;   //< Byte 10 of the (U)SAT Profile; see RSat::TSatProfileByte10
       
  1771         TUint8 iSatProfileByte11;   //< Maximum number of soft keys available. 'FF' value is reserved for future use; see RSat::TSatProfileByte10
       
  1772         TUint8 iSatProfileByte12;   //< Byte 12 of the (U)SAT Profile; see RSat::TSatProfileByte12
       
  1773         TUint8 iSatProfileByte13;   //< Byte 13 of the (U)SAT Profile; see RSat::TSatProfileByte13
       
  1774         TUint8 iNumOfChannels;      //< Number of channels supported by the ME. Max value=7. Part of Byte 13.
       
  1775         TUint8 iSatProfileByte14;   //< Byte 14 of the (U)SAT Profile; see RSat::TSatProfileByte14
       
  1776         TUint8 iScreenHeight;       //< Guaranteed number of characters supported down the phone's display without scrolling. Max value=31. Part of Byte 14.
       
  1777         TUint8 iSatProfileByte15;   //< Byte 15 of the (U)SAT Profile; see RSat::TSatProfileByte15
       
  1778         TUint8 iScreenWidth;        //< Guaranteed number of characters supported across the phone's display without scrolling. Max value=127. Part of Byte 15.
       
  1779         TUint8 iSatProfileByte16;   //< Byte 16 of the (U)SAT Profile; see RSat::TSatProfileByte16
       
  1780         TUint8 iWidthReduction;     //< Width reduction when in a menu. Max value=7. Part of byte 16.
       
  1781         TUint8 iSatProfileByte17;   //< Byte 17 of the (U)SAT Profile; see RSat::TSatProfileByte17
       
  1782         TUint8 iSatProfileByte18;   //< Byte 18 of the (U)SAT Profile; see RSat::TSatProfileByte18
       
  1783         TUint8 iTiaEiaProtoVersion; //< Protocol version as indicated in TIA/EIA 136-123
       
  1784         };
       
  1785 
       
  1786     /** A packaged RSat::TSatProfileV2. */
       
  1787     typedef TPckg<TSatProfileV2>    TSatProfileV2Pckg;
       
  1788 
       
  1789 	class TSatProfileV5 : public TSatProfileV2
       
  1790 	/**
       
  1791 	States the (U)SAT facilities supported by the Client and/or the ME-side
       
  1792 	@see RSat::ClientSatProfileIndication()
       
  1793 	@see RSat::GetMeSideSatProfile()
       
  1794 	*/
       
  1795 		{
       
  1796 	public:
       
  1797 		IMPORT_C TSatProfileV5();
       
  1798 									//< Byte 19 reserved for TIA/EIA-136 facilities
       
  1799 			 						//< Byte 20 reserved for TIA/EIA/IS-820 facilities
       
  1800 									//< Bytes 21 to 27 inclusive are reserved for release 6 and later features.
       
  1801 		TUint8 iSatProfileByte28;	//< Byte 28 of the (U)SAT Profile (used for text attributes); see RSat::TSatProfileByte28
       
  1802 		TUint8 iSatProfileByte29;	//< Byte 29 of the (U)SAT Profile (used for text attributes); see RSat::TSatProfileByte29
       
  1803 		};
       
  1804 
       
  1805 	/** A packaged RSat::TSatProfileV5. */
       
  1806 	typedef TPckg<TSatProfileV5>		TSatProfileV5Pckg;
       
  1807 
       
  1808 	class TSatProfileV6 : public TSatProfileV5
       
  1809 	/**
       
  1810 	States the (U)SAT facilities supported by the Client and/or the ME-side
       
  1811 	@see RSat::ClientSatProfileIndication()
       
  1812 	@see RSat::GetMeSideSatProfile()
       
  1813     */
       
  1814 		{
       
  1815 	public:
       
  1816 		IMPORT_C TSatProfileV6();
       
  1817 
       
  1818 		TUint8 iSatProfileByte21;	//< Byte 21 of the (U)SAT Profile; see RSat::TSatProfileByte21
       
  1819 		TUint8 iSatProfileByte22;	//< Byte 22 of the (U)SAT Profile; see RSat::TSatProfileByte22
       
  1820 		TUint8 iSatProfileByte23;	//< Byte 23 of the (U)SAT Profile; see RSat::TSatProfileByte23
       
  1821 		TUint8 iSatProfileByte24;	//< Byte 24 of the (U)SAT Profile; see RSat::TSatProfileByte24
       
  1822 		TUint8 iSatProfileByte25;	//< Byte 25 of the (U)SAT Profile; see RSat::TSatProfileByte25
       
  1823 		};
       
  1824 
       
  1825 	/** A packaged RSat::TSatProfileV6. */
       
  1826 	typedef TPckg<TSatProfileV6> TSatProfileV6Pckg;
       
  1827 
       
  1828     IMPORT_C void GetMeSideSatProfile(TRequestStatus& aReqStatus,TDes8& aMeSimSatProfile) const;
       
  1829     IMPORT_C TInt ClientSatProfileIndication(const TDesC8& aClientSatProfile) const;
       
  1830 
       
  1831     //
       
  1832     // MENU SELECTION
       
  1833     //
       
  1834     /** Part of a MENU SELECTION envelope command in response to a
       
  1835     SET UP MENU proactive command.  Indicates whether help is required
       
  1836     with the user's menu selection.
       
  1837     @see RSat::TMenuSelectionV1 */
       
  1838     enum THelpRequest
       
  1839         {
       
  1840         EHelpRequestNotSet, //< Initialization value used within constructor(s).
       
  1841         EHelpRequested,     //< The user/client has requested help.
       
  1842         EHelpNotRequested   //< The user/client has not requested help.
       
  1843         };
       
  1844 
       
  1845     class TMenuSelectionV1 : public TSatBase
       
  1846     /**
       
  1847     Part of a MENU SELECTION envelope command in response to a SET UP MENU
       
  1848     proactive command.  When the user selects an item from the SET UP MENU
       
  1849     command's menu, send a RSat::TMenuSelectionV1 to the UICC with
       
  1850     RSat::MenuSelection().
       
  1851     @see RSat::NotifySetUpMenuPCmd()
       
  1852     */
       
  1853         {
       
  1854     public:
       
  1855         IMPORT_C TMenuSelectionV1();
       
  1856     public:
       
  1857         /** Each menu item has ID. This field contains the ID of the item that the user selected. */
       
  1858         TUint8 iItemId;
       
  1859 
       
  1860         /** This indicates that the user requested help with a menu item. */
       
  1861         THelpRequest iHelp;
       
  1862         };
       
  1863 
       
  1864     /** A packaged RSat::TMenuSelectionV1. */
       
  1865     typedef TPckg<TMenuSelectionV1> TMenuSelectionV1Pckg;
       
  1866 
       
  1867     IMPORT_C void MenuSelection(TRequestStatus& aReqStatus, const TDesC8& aSelection) const;
       
  1868 
       
  1869     //
       
  1870     // CALL CONTROL
       
  1871     //
       
  1872     /** Describes the result of call control request, and hence the action required.
       
  1873     Used by RSat::TCallControlV1::GetCcGeneralResult()
       
  1874     and RSat::TCallControlV1::SetCcGeneralResult(). */
       
  1875     enum TControlResult
       
  1876         {
       
  1877         /** Initialization value used within constructor(s). */
       
  1878         EControlResultNotSet,
       
  1879 
       
  1880         /** The action has been allowed by the ICC with no
       
  1881         modification. However, the call control params might
       
  1882         contain an alpha identifier to be displayed to the
       
  1883         user; call RSat::TCallControlV1::GetAlphaId() to get the
       
  1884         alpha ID (a RSat::TAlphaId) and the alpha ID's validity
       
  1885         (an RSat::TAlphaIdValidity). */
       
  1886         EAllowedNoModification,
       
  1887 
       
  1888         /** The action has not been allowed by the ICC. However, the call
       
  1889         control params might contain an alpha identifier to be displayed to the
       
  1890         user; call RSat::TCallControlV1::GetAlphaId() to get the alpha ID (a
       
  1891         RSat::TAlphaId) and the alpha ID's validity (an RSat::TAlphaIdValidity)
       
  1892         */
       
  1893         ENotAllowed,
       
  1894 
       
  1895         /** The action has been allowed by the ICC with
       
  1896         modifications. The call control params contain
       
  1897         new modified params.
       
  1898 
       
  1899         It may also contain an alpha identifier to be displayed to the user;
       
  1900         call RSat::TCallControlV1::GetAlphaId() to get the alpha ID (a
       
  1901         RSat::TAlphaId) and the alpha ID's validity (an RSat::TAlphaIdValidity)
       
  1902         */
       
  1903         EAllowedWithModifications
       
  1904         };
       
  1905 
       
  1906     /** Describes the type of call control request.
       
  1907     Used by RSat::TCallControlV1::GetCallControlType(). */
       
  1908     enum TCallControlType
       
  1909         {
       
  1910         ECcTypeNotSet,  	//< Initialization value used within constructor(s).
       
  1911         ECcAddress,     	//< Call control by SIM has transformed the original request into a new call set up.
       
  1912         ECcSsString,    	//< Call control by SIM has transformed the original request into a new SEND SS
       
  1913   		ECcUssdString,   	//< Call control by SIM has transformed the original request into a new SEND USSD
       
  1914         ECcPDPParameters   	//< Call control by SIM has transformed the original request into a new OPEN CHANNEL
       
  1915         };
       
  1916 
       
  1917     struct TCallSetUpParams
       
  1918         {
       
  1919         /** Capability configuration parameters
       
  1920         corresponding to the bearer capability 1 information
       
  1921         element of a mobile originating Set Up message. */
       
  1922         TCcp iCcp1;
       
  1923 
       
  1924         /** Called party subaddress. */
       
  1925         TSubAddress iSubAddress;
       
  1926 
       
  1927         /** Capability configuration parameters
       
  1928         corresponding to the bearer capability 2 information
       
  1929         element of a mobile originating Set Up message. */
       
  1930         TCcp iCcp2;
       
  1931 
       
  1932         /** Address to use to set up the call. */
       
  1933         TAddress iAddress;
       
  1934         };
       
  1935 
       
  1936     /** Indicates the validity of the alpha ID from RSat::TCallControlV1::GetAlphaId(). */
       
  1937     enum TAlphaIdValidity
       
  1938         {
       
  1939         EAlphaIdValidityNotSet, //< Value used with constructor
       
  1940         EValidAlpaId,           //< Alpha ID is valid.  It should be displayed
       
  1941         ENullAlphaId,           //< Alpha ID is null.  Display nothing.
       
  1942         ENoAlphaId              //< Alpha ID is not present.  The client can dislay whatever it likes.
       
  1943         };
       
  1944 
       
  1945     /** Bearer Capability Repeat Indicator.
       
  1946 
       
  1947 	@see RMobileCall::TBCRepeatIndicator
       
  1948 	*/
       
  1949     enum TBCRepeatIndicator
       
  1950         {
       
  1951         EBCAlternateMode, 	//< The alternate mode of the Bearer Capability Repeat Indicator.
       
  1952    		EBCSequentialMode, 	//< Depreciated.
       
  1953         EBCFallbackMode,   	//< Support of fallback - mode 1 preferred, mode 2 selected if setup of mode 1 fails.
       
  1954         EBCServiceChangeAndFallbackMode //< Service change and fallback - mode 1 alternate mode 2, mode 1 preferred
       
  1955         };
       
  1956 
       
  1957 
       
  1958     class TCallControlV1 : public TSatBase
       
  1959     /**
       
  1960     Describes details of the action that
       
  1961     the client has to perform as a result of Call Control by UICC.
       
  1962     @see RSat::NotifyCallControlRequest()
       
  1963     */
       
  1964         {
       
  1965     public:
       
  1966         IMPORT_C TCallControlV1();
       
  1967 
       
  1968         IMPORT_C void SetCcGeneralResult    (TControlResult aResult);
       
  1969         IMPORT_C void SetCallSetUpDetails   (const TCallSetUpParams& aParams);
       
  1970         IMPORT_C void SetSendSsDetails      (const TSsString& aString);
       
  1971         IMPORT_C void SetSendUssdDetails    (const TUssdString& aString);
       
  1972         IMPORT_C void SetAlphaId            (TAlphaIdValidity aValidity, TAlphaId& aAlphaId);
       
  1973         IMPORT_C void SetBCRepeatIndicator  (const TBCRepeatIndicator& aBCRepeatIndicator);
       
  1974 
       
  1975         IMPORT_C void GetCallControlType    (TCallControlType& aType) const;
       
  1976         IMPORT_C void GetCcGeneralResult    (TControlResult& aResult) const;
       
  1977         IMPORT_C TInt GetCallSetUpDetails   (TCallSetUpParams& aParams) const;
       
  1978         IMPORT_C TInt GetSendSsDetails      (TSsString& aString) const;
       
  1979         IMPORT_C TInt GetSendUssdDetails    (TUssdString& aString) const;
       
  1980         IMPORT_C void GetAlphaId            (TAlphaIdValidity& aValidity,TAlphaId& aAlphaId) const;
       
  1981         IMPORT_C void GetBCRepeatIndicator  (TBCRepeatIndicator& aBCRepeatIndicator) const;
       
  1982     protected:
       
  1983         TCallControlType iType;             //< Call control type
       
  1984         TCcp iCcp1;                         //< Capability Configuration Parameters 1
       
  1985         TSubAddress iSubAddress;            //< Remote party sub address
       
  1986         TCcp iCcp2;                         //< Capability Configuration Parameters 2
       
  1987         TUint8 iDcs;                        //< Data Coding Scheme
       
  1988         TTypeOfNumber iTypeOfNumber;        //< TON
       
  1989         TNumberingPlan iNumberPlan;         //< NPI
       
  1990         TBuf<KMaxMobileTelNumberSize> iBuf; //< Telephone number
       
  1991         TControlResult iResult;             //< Result of the call control procedure
       
  1992         TAlphaIdValidity iValidity;         //< Alpha identifier validity
       
  1993         TAlphaId iAlphaId;                  //< Alpha identifier that may contain text to display to the user.
       
  1994         TBCRepeatIndicator iBCRepeatIndicator; //< Bearer Capability Repeat Indicator
       
  1995         };
       
  1996 
       
  1997     /** A packaged RSat::TCallControlV1. */
       
  1998     typedef TPckg<TCallControlV1>   TCallControlV1Pckg;
       
  1999 
       
  2000     /**  Specifies to the client who should perform the
       
  2001     modified action: the client side or the ME Side. */
       
  2002     enum TActionOriginator
       
  2003         {
       
  2004 
       
  2005         /** Initialization value used within constructor(s)
       
  2006         or if the call control does not require a new action
       
  2007         to be performed. */
       
  2008         EActionOriginatorNotSet,
       
  2009 
       
  2010         /** The client is responsible for performing the
       
  2011         action described in the call control class. */
       
  2012         EClientOriginator,
       
  2013 
       
  2014         /** The ME Side is responsible for performing the
       
  2015         action described in the call control class. The
       
  2016         client side should still display any provided alpha
       
  2017         identifier. */
       
  2018         EMeSideOriginator
       
  2019         };
       
  2020 
       
  2021     class TCallControlV2 : public TCallControlV1
       
  2022     /**
       
  2023     Describes details of the action that
       
  2024     the client has to perform as a result of Call Control by UICC.
       
  2025     Adds originator name and type.
       
  2026     */
       
  2027         {
       
  2028     public:
       
  2029         IMPORT_C TCallControlV2();
       
  2030 
       
  2031         IMPORT_C void SetCallName           (const TName& aName);
       
  2032         IMPORT_C void SetActionOriginator   (const TActionOriginator aOriginator);
       
  2033 
       
  2034         IMPORT_C void GetCallName           (TName& aName) const;
       
  2035         IMPORT_C void GetActionOriginator   (TActionOriginator& aOriginator) const;
       
  2036     protected:
       
  2037         TName               iCallName;              //< Name of action originator
       
  2038         TActionOriginator   iNewActionOriginator;   //< Who originated action
       
  2039         };
       
  2040 
       
  2041     /** A packaged RSat::TCallControlV2. */
       
  2042     typedef TPckg<TCallControlV2>   TCallControlV2Pckg;
       
  2043 
       
  2044 
       
  2045 	class TCallControlV5 : public TCallControlV2
       
  2046     /**
       
  2047     Adds PDP context activation parameters
       
  2048     */
       
  2049         {
       
  2050     public:
       
  2051         IMPORT_C TCallControlV5();
       
  2052 
       
  2053         IMPORT_C void SetPdpParameters        (const TPdpParameters& aPdpParams);
       
  2054         IMPORT_C void GetPdpParameters        (TPdpParameters& aPdpParams) const;
       
  2055     protected:
       
  2056         TPdpParameters   iPdpParameters;    //< buffer that holds PDP activation context parameters
       
  2057         };
       
  2058     /** A packaged RSat::TCallControlV5. */
       
  2059     typedef TPckg<TCallControlV5>   TCallControlV5Pckg;
       
  2060 
       
  2061 	class TCallControlV6 : public TCallControlV5
       
  2062     /**
       
  2063     Adds a parameter to allow the originator of the call to
       
  2064     be specified.
       
  2065     
       
  2066     Request for notification of a call control request using
       
  2067     RSat::NotifyCallControlRequest passing a packaged descriptor
       
  2068     of this class to the request.  For future versions of Symbian
       
  2069     OS, check for updated versions of this class 
       
  2070     (TSat::TCallControlVx etc.)
       
  2071     
       
  2072     @see RSat::TCallControlV6Pckg
       
  2073     */
       
  2074         {
       
  2075     public:
       
  2076         IMPORT_C TCallControlV6();
       
  2077 
       
  2078         IMPORT_C void SetCallParamOrigin (TCallParamOrigin aCallParamOrigin);
       
  2079         IMPORT_C void GetCallParamOrigin (TCallParamOrigin& aCallParamOrigin) const;
       
  2080         
       
  2081     protected:
       
  2082     	/**
       
  2083     	Holds the originator of the call.
       
  2084     	
       
  2085     	RSat::TCallParamOrigin contains the same enumerations as
       
  2086     	RMobileCall::TCallParamOrigin.  The TSY should use the 
       
  2087     	information received from the incoming call parameters 
       
  2088     	to populate this member.
       
  2089     	*/
       
  2090         TCallParamOrigin   iCallParamOrigin;
       
  2091         };
       
  2092 
       
  2093     /** A packaged RSat::TCallControlV6. */
       
  2094     typedef TPckg<TCallControlV6>   TCallControlV6Pckg;
       
  2095         
       
  2096     IMPORT_C void NotifyCallControlRequest(TRequestStatus& aReqStatus, TDes8& aCallControlDetails ) const;
       
  2097 
       
  2098     //
       
  2099     // MO SMS CONTROL
       
  2100     //
       
  2101     
       
  2102     /**
       
  2103     @see RSat::TChannelStatus
       
  2104     */
       
  2105     enum {KChannelStatusMaxSize = 2};
       
  2106     
       
  2107     /** The channel status returned in the channel status event envelope when
       
  2108     channel status event is part of the current event list (as set up in the
       
  2109     SET UP EVENT LIST proactive command).
       
  2110      
       
  2111     For UICC Server Mode, this event can indicate a state change in a 
       
  2112     TCP connection, for example, TCP in LISTEN state, TCP in CLOSED state, TCP
       
  2113     in ESTABLISHED state (for details of specific encoding see ETSI TS 102 223 
       
  2114     release 7 onwards).   
       
  2115     */
       
  2116     typedef TBuf8<KChannelStatusMaxSize> TChannelStatus; 
       
  2117 
       
  2118     /** A packaged RSat::TChannelStatus. */
       
  2119     typedef TPckg<TChannelStatus>        TChannelStatusPckg;
       
  2120 
       
  2121 
       
  2122     class TMoSmControlV1 : public TSatBase
       
  2123     /**
       
  2124     Describes details of the modified (by SIM MO SM Control) SMS.
       
  2125     */
       
  2126         {
       
  2127     public:
       
  2128         IMPORT_C TMoSmControlV1();
       
  2129     public:
       
  2130         TAddress iRpAddress;    //< Rp address
       
  2131         TAddress iTpAddress;    //< Tp address
       
  2132         TControlResult iResult; //< Call control procedure result
       
  2133         TAlphaId iAlphaId;      //< Alpha identifier that may contain text to display to the user.
       
  2134         };
       
  2135 
       
  2136     /** A packaged RSat::TMoSmControlV1. */
       
  2137     typedef TPckg<TMoSmControlV1>   TMoSmControlV1Pckg;
       
  2138 
       
  2139     IMPORT_C void NotifyMoSmControlRequest(TRequestStatus& aReqStatus,TDes8& aMoSmDetails) const;
       
  2140 
       
  2141     //
       
  2142     //  TIMER EXPIRATION
       
  2143     //
       
  2144 
       
  2145     enum TTimerId
       
  2146     /** Identifies a timer.  It is part of both the  TIMER MANAGEMENT proactive
       
  2147     command and the Timer Expiration envelope command.
       
  2148     @see RSat::TTimerExpirationV3
       
  2149     @see RSat::TTimerMgmtV3 */
       
  2150         {
       
  2151         KTimer1 =0x01,       //< Timer 1 identifier.
       
  2152         KTimer2 =0x02,       //< Timer 2 identifier.
       
  2153         KTimer3 =0x03,       //< Timer 3 identifier.
       
  2154         KTimer4 =0x04,       //< Timer 4 identifier.
       
  2155         KTimer5 =0x05,       //< Timer 5 identifier.
       
  2156         KTimer6 =0x06,       //< Timer 6 identifier.
       
  2157         KTimer7 =0x07,       //< Timer 7 identifier.
       
  2158         KTimer8 =0x08,       //< Timer 8 identifier.
       
  2159         KTimerNotFound =0xFF //< Timer does not exist.
       
  2160         };
       
  2161 
       
  2162     class TTimerExpirationV3 : public TSatBase
       
  2163     /**
       
  2164     Contains details of an expired timer.
       
  2165 
       
  2166     @see RSat::NotifyTimerExpiration()
       
  2167     @see NotifyTimerMgmtPCmd()
       
  2168     */
       
  2169         {
       
  2170     public:
       
  2171         IMPORT_C TTimerExpirationV3();
       
  2172     public:
       
  2173         /**  The ID of the timer that has expired. */
       
  2174         TTimerId    iTimerId;
       
  2175 
       
  2176         /** Timing difference between when you start the timer and when you
       
  2177         send notification that the timer has expired. This should be
       
  2178         as close as possible to the value of the timer given in the initial
       
  2179         TIMER MANAGEMENT command. */
       
  2180         TDuration   iTimerValue;
       
  2181         };
       
  2182 
       
  2183     /** A packaged RSat::TTimerExpirationV3. */
       
  2184     typedef TPckg<TTimerExpirationV3>   TTimerExpirationV3Pckg;
       
  2185 
       
  2186     IMPORT_C void NotifyTimerExpiration(TRequestStatus& aReqStatus, TDes8& aTimerExpiration) const;
       
  2187 
       
  2188     //
       
  2189     //  SMS-PP Data download
       
  2190     //
       
  2191 
       
  2192     class TSmsPpDownloadV3 : public TSatBase
       
  2193     /**
       
  2194     Point to Point data download over SMS.
       
  2195     */
       
  2196         {
       
  2197     public:
       
  2198         IMPORT_C TSmsPpDownloadV3();
       
  2199     public:
       
  2200         TDeviceId iDeviceId;        //< Device Identification
       
  2201         TAddress iRpAddress;        //< RP Originating Address of the Service Center to which the Client is proposing to send the Short Message.
       
  2202         TTpdu iPdu;                 //< Pdu to be sent
       
  2203         };
       
  2204 
       
  2205     /** A packaged RSat::TSmsPpDownloadV3. */
       
  2206     typedef TPckg<TSmsPpDownloadV3> TSmsPpDownloadV3Pckg;
       
  2207 
       
  2208     IMPORT_C void NotifySmsPpDownload(TRequestStatus& aReqStatus, TDes8& aSmsPpDownload) const;
       
  2209 
       
  2210     //
       
  2211     // Cell Broadcast (CB) data download
       
  2212     //
       
  2213 
       
  2214 	/**
       
  2215 	@see RSat::TCbPage
       
  2216 	*/
       
  2217     enum {KCbPageSize  = 88};
       
  2218     /**
       
  2219     Cell broadcast (CB) page.
       
  2220     */
       
  2221     typedef TBuf8<KCbPageSize> TCbPage;
       
  2222 
       
  2223     class TCbDownloadV3 : public TSatBase
       
  2224     /**
       
  2225     Cell Broadcast data download.
       
  2226     */
       
  2227         {
       
  2228     public:
       
  2229         IMPORT_C TCbDownloadV3();
       
  2230     public:
       
  2231         TDeviceId iDeviceId;    //< Device Identification
       
  2232         TCbPage iPdu;           //< Pdu of the Cell Broadcast
       
  2233         };
       
  2234 
       
  2235     /** A packaged RSat::TCbDownloadV3. */
       
  2236     typedef TPckg<TCbDownloadV3> TCbDownloadV3Pckg;
       
  2237 
       
  2238     IMPORT_C void NotifyCbDownload(TRequestStatus& aReqStatus, TDes8& aCbDownload) const;
       
  2239 
       
  2240 
       
  2241     //
       
  2242     // EVENT DOWNLOAD
       
  2243     //
       
  2244 
       
  2245     class TEventDownloadBaseV2 : public TSatBase
       
  2246     /**
       
  2247 
       
  2248     Base class for the Event Download envelope commands. Use when no additional
       
  2249     information is passed for the event, eg. User Activity event.
       
  2250 
       
  2251     @see RSat::EventDownload()
       
  2252     @see RSat::NotifySetUpEventListPCmd()
       
  2253     */
       
  2254         {
       
  2255     public:
       
  2256         IMPORT_C TEventDownloadBaseV2();
       
  2257     public:
       
  2258         /** Specifies whether the event has any associated data. Do not set
       
  2259         this yourself - it is set automatically in the constructor of this class and any
       
  2260         derived classes. */
       
  2261         TBool iDataAvailable;
       
  2262         };
       
  2263 
       
  2264     /** A packaged RSat::TEventDownloadBaseV2. */
       
  2265     typedef TPckg<TEventDownloadBaseV2> TEventDownloadBaseV2Pckg;
       
  2266 
       
  2267     enum TEventList
       
  2268     /** These flags form the list of events in a SET UP EVENT LIST
       
  2269     proactive command.  They are also used in Event Download envelope commands
       
  2270     to identify the event that you are reporting to the UICC.
       
  2271 
       
  2272     @see RSat::NotifySetUpEventListPCmd()
       
  2273     @see RSat::EventDownload()
       
  2274     */
       
  2275         {
       
  2276         KMTCall                 	=0x00001, //< MT call
       
  2277         KCallConnected          	=0x00002, //< Call connected
       
  2278         KCallDisconnected       	=0x00004, //< Call disconnected
       
  2279         KLocationStatus         	=0x00008, //< Location status
       
  2280         KUserActivity           	=0x00010, //< User activity
       
  2281         KIdleScreenAvailable    	=0x00020, //< Idle screen available
       
  2282         KCardReaderStatus       	=0x00040, //< Card reader status
       
  2283         KLanguageSelection      	=0x00080, //< Language selection
       
  2284         KBrowserTermination     	=0x00100, //< Browser termination
       
  2285         KDataAvailable          	=0x00200, //< Data available
       
  2286         KChannelStatus          	=0x00400, //< Channel status
       
  2287         KAccessTechnologyChange 	=0x00800, //< Access Technology Change
       
  2288         KDisplayParamsChanges   	=0x01000, //< Display parameters changed
       
  2289         KLocalConnection        	=0x02000, //< Local connection
       
  2290  		KNetworkSearchModeChange	=0x04000, //< Network Search Mode Change
       
  2291 		KBrowsingStatusChange		=0x08000, //< Browsing Status Change
       
  2292 		KFramesInformationChange	=0x10000  //< Frames Information Change
       
  2293         };
       
  2294 
       
  2295     class TCardReaderStatusEventV2 : public TEventDownloadBaseV2
       
  2296     /**
       
  2297     To inform the UICC that a "Card Reader Status" occurred, call
       
  2298     RSat::EventDownload(), passing it the new status in a
       
  2299     RSat::TCardReaderStatusEventV2Pckg, a packaged
       
  2300     RSat::TCardReaderStatusEventV2.
       
  2301 
       
  2302     @see RSat::NotifySetUpEventListPCmd()
       
  2303     @see RSat::EventDownload()
       
  2304     */
       
  2305         {
       
  2306     public:
       
  2307         IMPORT_C TCardReaderStatusEventV2();
       
  2308     public:
       
  2309         TUint8 iCardReaderStatus; //< The "Card Reader Status" object defined in ETSI TS 102 223's object definitions.
       
  2310         };
       
  2311 
       
  2312     /** A packaged RSat::TCardReaderStatusEventV2. */
       
  2313     typedef TPckg<TCardReaderStatusEventV2> TCardReaderStatusEventV2Pckg;
       
  2314 
       
  2315 
       
  2316     class TLanguageSelectionEventV2 : public TEventDownloadBaseV2
       
  2317     /**
       
  2318     To inform the UICC that a "Language Selection Event" occurred, call
       
  2319     RSat::EventDownload(), passing it the new language in a
       
  2320     RSat::TLanguageSelectionEventV2Pckg, a packaged
       
  2321     RSat::TLanguageSelectionEventV2
       
  2322 
       
  2323     @see RSat::NotifySetUpEventListPCmd()
       
  2324     @see RSat::EventDownload()
       
  2325     */
       
  2326         {
       
  2327     public:
       
  2328         IMPORT_C TLanguageSelectionEventV2();
       
  2329     public:
       
  2330 
       
  2331         /** Currently used language by UICC.
       
  2332 
       
  2333         Consists of 2 bytes. Each language code is a pair of
       
  2334         alpha numeric characters, defined in ISO 639. Each
       
  2335         alpha numeric character is coded on one byte using
       
  2336         the SMS default 7-bit coded alphabet as defined in
       
  2337         ISO 639 (1988): "Code for the representation of
       
  2338         names of languages". */
       
  2339         TUint16 iLanguage;
       
  2340         };
       
  2341 
       
  2342     /** A packaged RSat::TLanguageSelectionEventV2. */
       
  2343     typedef TPckg<TLanguageSelectionEventV2> TLanguageSelectionEventV2Pckg;
       
  2344 
       
  2345     enum TBrowserTerminationCause
       
  2346     /** Describes the reason that the browser terminated.  This for use with RSat::TBrowserTerminationEventV2. */
       
  2347         {
       
  2348         EUnknownCause,     //< The browser termination cause is unknown.
       
  2349         EUserTermination,  //< The browser was terminated by the user.
       
  2350         EErrorTermination  //< The browser was terminated by an error.
       
  2351         };
       
  2352 
       
  2353 
       
  2354     class TBrowserTerminationEventV2 : public TEventDownloadBaseV2
       
  2355     /**
       
  2356     To inform the UICC that a "Browser Termination Event" occurred, call
       
  2357     RSat::EventDownload(), passing it the cause of termination in a
       
  2358     RSat::TBrowserTerminationEventV2Pckg, a packaged
       
  2359     RSat::TBrowserTerminationEventV2.  This contains a
       
  2360     RSat::TBrowserTerminationCause that describes the reason that the browser
       
  2361     terminated.
       
  2362 
       
  2363     @see RSat::NotifySetUpEventListPCmd()
       
  2364     @see RSat::EventDownload()
       
  2365     */
       
  2366         {
       
  2367     public:
       
  2368         IMPORT_C TBrowserTerminationEventV2();
       
  2369     public:
       
  2370         TBrowserTerminationCause iCause; //< Cause of browser termination
       
  2371         };
       
  2372 
       
  2373     /** A packaged RSat::TBrowserTerminationEventV2. */
       
  2374     typedef TPckg<TBrowserTerminationEventV2>   TBrowserTerminationEventV2Pckg;
       
  2375 
       
  2376 
       
  2377     class TDataAvailableEventV2 : public TEventDownloadBaseV2
       
  2378     /**
       
  2379     To inform the UICC that a "Data Available Event" occurred, call
       
  2380     RSat::EventDownload(), passing it the new status and data length in a
       
  2381     RSat::TDataAvailableEventV2Pckg, a packaged RSat::TDataAvailableEventV2.
       
  2382     Fill in the status of the channel that received the data and the length
       
  2383     of data received.
       
  2384 
       
  2385     @see RSat::NotifySetUpEventListPCmd()
       
  2386     @see RSat::EventDownload()
       
  2387     */
       
  2388         {
       
  2389     public:
       
  2390         IMPORT_C TDataAvailableEventV2();
       
  2391     public:
       
  2392         TChannelStatus  iStatus;    //< Status of the channel.
       
  2393         TInt8           iLength;    //< Channel data length. Return 0xFF if more than 255 bytes are available.
       
  2394         };
       
  2395 
       
  2396     /** A packaged RSat::TDataAvailableEventV2. */
       
  2397     typedef TPckg<TDataAvailableEventV2>    TDataAvailableEventV2Pckg;
       
  2398 
       
  2399 
       
  2400     class TChannelStatusEventV2 : public TEventDownloadBaseV2
       
  2401     /**
       
  2402     To inform the UICC that a "Channel Status Event" occurred, call
       
  2403     RSat::EventDownload(), passing it the new status in a
       
  2404     RSat::TChannelStatusEventV2Pckg, a packaged RSat::TChannelStatusEventV2.
       
  2405     Fill in the new status of the channel.
       
  2406 
       
  2407     @see RSat::NotifySetUpEventListPCmd()
       
  2408     @see RSat::EventDownload()
       
  2409     */
       
  2410         {
       
  2411     public:
       
  2412         IMPORT_C TChannelStatusEventV2();
       
  2413     public:
       
  2414         TChannelStatus iStatus; //< Status of the channel
       
  2415         };
       
  2416 
       
  2417     /** A packaged RSat::TChannelStatusEventV2. */
       
  2418     typedef TPckg<TChannelStatusEventV2>    TChannelStatusEventV2Pckg;
       
  2419 
       
  2420 
       
  2421     class TDisplayParamsEventV2 : public TEventDownloadBaseV2
       
  2422     /**
       
  2423     To inform the UICC that a "Display Parameters Changed Event" occurred, call
       
  2424     RSat::EventDownload(), passing it the new parameters in a
       
  2425     RSat::TDisplayParamsEventV2Pckg, a packaged RSat::TDisplayParamsEventV2.
       
  2426     Fill in the new display parameters.
       
  2427 
       
  2428     @see RSat::NotifySetUpEventListPCmd()
       
  2429     @see RSat::EventDownload()
       
  2430     */
       
  2431         {
       
  2432     public:
       
  2433         IMPORT_C TDisplayParamsEventV2();
       
  2434     public:
       
  2435         TUint8 iSatProfileByte14;   //< Byte 14 of the (U)SAT profile
       
  2436         TUint8 iScreenHeight;       //< Screen height
       
  2437         TUint8 iSatProfileByte15;   //< Byte 15 of the (U)SAT profile
       
  2438         TUint8 iScreenWidth;        //< Screen width
       
  2439         TUint8 iSatProfileByte16;   //< Byte 16 of the (U)SAT profile
       
  2440         TUint8 iWidthReduction;     //< Width reduction
       
  2441         };
       
  2442 
       
  2443     /** A packaged RSat::TDisplayParamsEventV2. */
       
  2444     typedef TPckg<TDisplayParamsEventV2>    TDisplayParamsEventV2Pckg;
       
  2445 
       
  2446     enum TLocalBearerId
       
  2447     /** Identifies the physical method of transferring data. */
       
  2448         {
       
  2449         ELocalBearerIdNotSet,     //< Initialisation value.
       
  2450         ELocalBearerIdNotPresent, //< Bearer not present.
       
  2451         ETechnologyIndependent,   //< Technology independent.
       
  2452         ELocalBearerBT,           //< Currently only valid if the local bearer ID is Bluetooth.
       
  2453         ELocalBearerIrda,         //< IrDA (infra-red).
       
  2454         ELocalBearerRs232,        //< RS232 (serial).
       
  2455         ELocalBearerUsb           //< USB.
       
  2456         };
       
  2457 
       
  2458 	/**
       
  2459 	@see RSat::TServiceRecord
       
  2460 	*/
       
  2461     enum {KServiceRecordMaxSize=244};
       
  2462     typedef TBuf8<KServiceRecordMaxSize> TServiceRecord;
       
  2463 
       
  2464     /** Service record information. */
       
  2465     struct TServiceRecordInfo
       
  2466         {
       
  2467         TLocalBearerId iBearerId;   //< Bearer Identifier
       
  2468         TUint8 iServiceId;          //< Service Identifier
       
  2469         TServiceRecord iRecord;     //< Service Record
       
  2470         };
       
  2471 
       
  2472     /** The coding of the remote entity's address.
       
  2473     @see RSat::TRemoteEntityAddress */
       
  2474     enum TRemoteAddressCoding
       
  2475         {
       
  2476         ECodingNotSet, //< Initialisation value.
       
  2477         E48BitAddress //< 48 bit address.
       
  2478         };
       
  2479 
       
  2480 	/**
       
  2481 	@see RSat::TRemoteAddress
       
  2482 	*/
       
  2483     enum {KRemoteAddressMaxSize=237};
       
  2484 
       
  2485     /** Descriptor containing a remote entity's address.
       
  2486     Maximum size is 237.
       
  2487     @see RSat::TRemoteEntityAddress */
       
  2488     typedef TBuf8<KRemoteAddressMaxSize> TRemoteAddress;
       
  2489 
       
  2490     /** Remote entity address for local connections.  It has two uses:
       
  2491 
       
  2492     - An OPEN CHANNEL proactive command requests that you open a channel.  The
       
  2493     command specifies the type of channel.  If it requests a local connection
       
  2494     then the command will contain a TRemoteEntityAddress that describes the
       
  2495     connection's remote enitity; see RSat::TOpenLocalLinksChannelV2.
       
  2496 
       
  2497     - Also, when you inform the UICC that a local connection has been created,
       
  2498     tell the UICC about the connections remote entity in a TRemoteEntityAddress;
       
  2499     see RSat::TLocalConnectionEventV2.
       
  2500     */
       
  2501     struct TRemoteEntityAddress
       
  2502         {
       
  2503         TRemoteAddressCoding iCoding; //< The coding of the remote entity's address.
       
  2504         TRemoteAddress iAddress;      //< Descriptor containing the remote entity's address.
       
  2505         };
       
  2506 
       
  2507 
       
  2508     class TLocalConnectionEventV2 : public TEventDownloadBaseV2
       
  2509     /**
       
  2510     To inform the UICC that a "Local Connection Event" occurred, call
       
  2511     RSat::EventDownload(), passing it the new connection information in a
       
  2512     RSat::TLocalConnectionEventV2Pckg, a packaged
       
  2513     RSat::TLocalConnectionEventV2.  Fill in the address of the new device.
       
  2514 
       
  2515     @see RSat::NotifySetUpEventListPCmd()
       
  2516     @see RSat::EventDownload()
       
  2517     */
       
  2518         {
       
  2519     public:
       
  2520         IMPORT_C TLocalConnectionEventV2();
       
  2521     public:
       
  2522         TServiceRecordInfo iRecord;     //< Service record
       
  2523         TRemoteEntityAddress iAddress;  //< Remote entity address
       
  2524         };
       
  2525 
       
  2526     /** A packaged RSat::TLocalConnectionEventV2. */
       
  2527     typedef TPckg<TLocalConnectionEventV2>  TLocalConnectionEventV2Pckg;
       
  2528 
       
  2529 	enum TNetworkSearchMode
       
  2530 		{
       
  2531 		EUnknown, //< Unknown Network type 
       
  2532 		EManual,  //< Manual Network mode
       
  2533 		EAutomatic //< Automatic Network Mode			
       
  2534 		};
       
  2535 		
       
  2536     class TNetworkSearchModeChangeEventV6 : public TEventDownloadBaseV2
       
  2537     /**
       
  2538     To inform the UICC that a "Network Search Mode ChangeEvent" occurred, call
       
  2539     RSat::EventDownload(), passing it the new NetworkSearchMode Change information in a
       
  2540     RSat::TNetworkSearchModeChangeEventV6Pckg, a packaged
       
  2541     RSat::TNetworkSearchModeChangeEventV6.  Fill in the details of type of Network.
       
  2542 
       
  2543     @see RSat::NotifySetUpEventListPCmd()
       
  2544     @see RSat::EventDownload()
       
  2545     */
       
  2546         {
       
  2547     public:
       
  2548         IMPORT_C TNetworkSearchModeChangeEventV6();
       
  2549     public:
       
  2550         TNetworkSearchMode iNetworkSearchMode; //< Network type selection
       
  2551         };
       
  2552 
       
  2553     /** A packaged RSat::TNetworkSearchModeChangeEventV6. */
       
  2554     typedef TPckg<TNetworkSearchModeChangeEventV6>  TNetworkSearchModeChangeEventV6Pckg;
       
  2555     
       
  2556     class TBrowsingStatusEventV6 : public TEventDownloadBaseV2
       
  2557     /**
       
  2558     To inform the UICC that a "Browsing Status Event" occurred, call
       
  2559     RSat::EventDownload(), passing it the Browsing Status information in a
       
  2560     RSat::TBrowsingStatusEventV6Pckg, a packaged
       
  2561     RSat::TBrowsingStatusEventV6.  Fill in the Browsing status.
       
  2562 
       
  2563     @see RSat::NotifySetUpEventListPCmd()
       
  2564     @see RSat::EventDownload()
       
  2565     */
       
  2566         {
       
  2567     public:
       
  2568         IMPORT_C TBrowsingStatusEventV6();
       
  2569     public:
       
  2570 		TUint8 iBrowserStatus; //< Browsing status information coded as per 3GPP 31.111
       
  2571         };
       
  2572 
       
  2573     /** A packaged RSat::TBrowsingStatusEventV6. */
       
  2574     typedef TPckg<TBrowsingStatusEventV6>  TBrowsingStatusEventV6Pckg;
       
  2575     
       
  2576     /** 
       
  2577     @see RSat::TFrameList
       
  2578     */
       
  2579    	enum {KMaxFrameNumber = 254};
       
  2580    	
       
  2581    	/** 
       
  2582    	@see RSat::TFramesInformation 
       
  2583   	*/
       
  2584 	typedef TBuf8<KMaxFrameNumber> TFrameList;
       
  2585 	
       
  2586 	/**
       
  2587 	This structure contains the "Frames information". 
       
  2588 	refer to ETSI TS 102 223 for more details.
       
  2589 	@see RSat::TFrameList
       
  2590 	*/
       
  2591 	struct TFramesInformation 
       
  2592 		{
       
  2593 		TUint8  iFrameId; //< Each frame has an ID. This field contains the ID of the frame. 
       
  2594 		TFrameList iFrameList; //< It holds the frame information.
       
  2595 		};
       
  2596 		
       
  2597     class TFramesInformationChangedEventV6 : public TEventDownloadBaseV2
       
  2598     /**
       
  2599     To inform the UICC that a "Frames Information Change" occurred, call
       
  2600     RSat::EventDownload(), passing it the Frames information in a
       
  2601     RSat::TFramesInformationChangedEventV6Pckg, a packaged
       
  2602     RSat::TFramesInformationChangedEventV6.  Fill in the frames information.
       
  2603     @see RSat::TFramesInformation
       
  2604     @see RSat::NotifySetUpEventListPCmd()
       
  2605     @see RSat::EventDownload()
       
  2606     */
       
  2607         {
       
  2608     public:
       
  2609         IMPORT_C TFramesInformationChangedEventV6();
       
  2610     public:
       
  2611 		TFramesInformation iFramesInformation;
       
  2612         };
       
  2613 
       
  2614     /** A packaged RSat::TBrowsingStatusEventV6. */
       
  2615     typedef TPckg<TFramesInformationChangedEventV6>  TFramesInformationChangedEventV6Pckg;
       
  2616     
       
  2617     IMPORT_C void EventDownload(TRequestStatus& aReqStatus, TEventList aSingleEvent, const TDesC8& aEventInfo) const;
       
  2618 
       
  2619     //
       
  2620     // DISPLAY TEXT
       
  2621     //
       
  2622     enum TClearScreenTrigger
       
  2623     /** Part of a DISPLAY TEXT proactive command.  After the text has been
       
  2624     displayed, this determines the events that clear the text or icon.
       
  2625     @see RSat::TDisplayTextV1
       
  2626     @see RSat::NotifyDisplayTextPCmd()
       
  2627     @see RSat::TDisplayMultimediaMessageV6
       
  2628     @see RSat::NotifyDisplayMultimediaMsgPCmd()*/
       
  2629         {
       
  2630         EClearScreenTriggerNotSet,  //< Clear screen trigger not set
       
  2631 
       
  2632         /** Clear screen after a specified delay. The UICC may specify the
       
  2633         delay in RSat::TDisplayTextV2::iDuration.  Otherwise the delay is at
       
  2634         your discretion. */
       
  2635         EClearAfterDelay,
       
  2636 
       
  2637         EUserClear                  //< Clear screen on user action.
       
  2638         };
       
  2639 
       
  2640     enum TDisplayPriority
       
  2641     /** Part of a DISPLAY TEXT proactive command.  This determines the text's priority.
       
  2642     @see RSat::TDisplayTextV1
       
  2643     @see RSat::NotifyDisplayTextPCmd()
       
  2644     @see RSat::TDisplayMultimediaMessageV6
       
  2645     @see RSat::NotifyDisplayMultimediaMsgPCmd()*/
       
  2646         {
       
  2647         EDisplayPriorityNotSet, //< Display priority not set
       
  2648         ENormalPriority,        //< Normal display priority
       
  2649         EHighPriority           //< High display priority
       
  2650         };
       
  2651 
       
  2652     enum TImmediateRsp
       
  2653     /** Part of a DISPLAY TEXT proactive command.  This determines your response to the UICC.
       
  2654     @see RSat::TDisplayTextV1
       
  2655     @see RSat::NotifyDisplayTextPCmd()
       
  2656     @see RSat::TDisplayMultimediaMessageV6
       
  2657     @see RSat::NotifyDisplayMultimediaMsgPCmd()*/
       
  2658         {
       
  2659         EImmediateRspNotSet,    //< Immediate response param not set
       
  2660         EImmediateRsp,          //< Immediate response requested
       
  2661         ENoImmediateRsp         //< Immediate response not requested
       
  2662         };
       
  2663 
       
  2664 	/**
       
  2665 	@see RSat::TTextToDisplay
       
  2666 	*/
       
  2667     enum {KTextToDisplayMaxSize=242};
       
  2668 
       
  2669     /** Part of a DISPLAY TEXT proactive command.  This contains the text to display.
       
  2670     @see RSat::TDisplayTextV1
       
  2671     @see RSat::NotifyDisplayTextPCmd()
       
  2672     @see RSat::NotifyDisplayMultimediaMsgPCmd()*/
       
  2673     typedef TBuf<KTextToDisplayMaxSize> TTextToDisplay;
       
  2674 
       
  2675     class TDisplayTextV1 : public TSatPCmdBase
       
  2676     /**
       
  2677     Contains a DISPLAY TEXT proactive command issued by the UICC.   See ETSI TS
       
  2678     102 223 and RSat::NotifyDisplayTextPCmd() for more information about
       
  2679     the command.
       
  2680 
       
  2681     Request notification for DISPLAY TEXT with RSat::NotifyDisplayTextPCmd(),
       
  2682     passing it an object in which to store the command when it arrives.  Pass
       
  2683     RSat::TDisplayTextV1Pckg (a packaged RSat::TDisplayTextV1) when using v6.1
       
  2684     and v7.0 of Symbian OS.  For later versions of Symbian OS, use
       
  2685     RSat::TDisplayTextV2, RSat::TDisplayV3 etc.
       
  2686 
       
  2687     @see RSat::TDisplayTextV2
       
  2688     @see RSat::TDisplayTextV1Pckg
       
  2689     @see RSat::NotifyDisplayTextPCmd()
       
  2690     */
       
  2691         {
       
  2692     public:
       
  2693         IMPORT_C TDisplayTextV1();
       
  2694     public:
       
  2695         TDisplayPriority iPriority;                 //< Priority of icon/text
       
  2696 
       
  2697         /** Determines whether the text should be removed from the screen
       
  2698         after a delay or after user action. */
       
  2699         TClearScreenTrigger iClearScreenTrigger;
       
  2700         TTextToDisplay iText;                       //< Text to display
       
  2701         TIconId iIconId;                            //< Icon to display
       
  2702 
       
  2703         /** Determines whether you should respond to the UICC straight away or
       
  2704         when the text/icon is removed from the screen. */
       
  2705         TImmediateRsp iImmediateRsp;
       
  2706         };
       
  2707 
       
  2708     /** A packaged RSat::TDisplayTextV1. */
       
  2709     typedef TPckg<TDisplayTextV1>  TDisplayTextV1Pckg;
       
  2710 
       
  2711 
       
  2712     class TDisplayTextV2 : public TDisplayTextV1
       
  2713     /**
       
  2714     Contains a DISPLAY TEXT proactive command issued by the UICC.   See ETSI TS
       
  2715     102 223 and RSat::NotifyDisplayTextPCmd() for more information about
       
  2716     the command.
       
  2717 
       
  2718     Request notification for DISPLAY TEXT with RSat::NotifyDisplayTextPCmd(),
       
  2719     passing it an object in which to store the command when it arrives.  Pass a
       
  2720     packaged version of the latest "TDisplayText" class. For Symbian OS 7.0s,
       
  2721     8.0 and 8.1 use RSat::TDisplayTextV2Pckg, a packaged RSat::TDisplayTextV2.
       
  2722     Use RSat::TDisplayTextV1 with older versions of Symbian OS.  For later
       
  2723     versions of Symbian OS, check for an updated API (RSat::TDisplayTextV3
       
  2724     etc).
       
  2725 
       
  2726     @see RSat::TDisplayTextV1
       
  2727     @see RSat::TDisplayTextV2Pckg
       
  2728     @see RSat::NotifyDisplayTextPCmd()
       
  2729     */
       
  2730         {
       
  2731     public:
       
  2732         IMPORT_C TDisplayTextV2();
       
  2733     public:
       
  2734 
       
  2735         /** Required duration to display the text.  Only applicable if
       
  2736         RSat::TDisplayTextV1::iClearScreenTrigger is set to
       
  2737         RSat::EClearAfterDelay. */
       
  2738         TDuration iDuration;
       
  2739         };
       
  2740 
       
  2741     /** A packaged RSat::TDisplayTextV2. */
       
  2742     typedef TPckg<TDisplayTextV2>  TDisplayTextV2Pckg;
       
  2743 
       
  2744     class TDisplayTextV5 : public TDisplayTextV2
       
  2745 	/**
       
  2746 	Contains a DISPLAY TEXT proactive command issued by the UICC.  See ETSI TS
       
  2747 	102 223 and RSat::NotifyDisplayTextPCmd() for more information about
       
  2748 	the command.
       
  2749 
       
  2750 	Request notification for DISPLAY TEXT with RSat::NotifyDisplayTextPCmd(),
       
  2751 	passing it an object in which to store the command when it arrives.	Pass a
       
  2752 	packaged version of the latest "TDisplayText" class. For Symbian OS 7.0s,
       
  2753 	8.0 and 8.1 use RSat::TDisplayTextV2Pckg, a packaged RSat::TDisplayTextV2.
       
  2754 	For Symbian OS 9.2, use RSat::TDisplayTextV5Pckg, a packaged
       
  2755 	RSat::TDisplayTextV5. For later versions of
       
  2756 	Symbian OS, check for an updated API (RSat::TDisplayTextV6 etc).
       
  2757 	Use RSat::TDisplayTextV1 with older versions of Symbian OS.
       
  2758 
       
  2759 	@see RSat::TDisplayTextV1
       
  2760 	@see RSat::TDisplayTextV2
       
  2761 	@see RSat::TDisplayTextV5Pckg
       
  2762 	@see RSat::NotifyDisplayTextPCmd()
       
  2763 	*/
       
  2764 		{
       
  2765 	public:
       
  2766 		IMPORT_C TDisplayTextV5();
       
  2767 
       
  2768 	public:
       
  2769 		/** Contains formatting information to be applied when
       
  2770 		RSat::TDisplayTextV1::iText is displayed.
       
  2771 		@see RSat::TTextAttribute 
       
  2772 		*/
       
  2773 		TTextAttribute iTextAttribute;
       
  2774 		};
       
  2775 
       
  2776 	/** A packaged RSat::TDisplayTextV5. */
       
  2777 	typedef TPckg<TDisplayTextV5>  TDisplayTextV5Pckg;
       
  2778 
       
  2779     class TDisplayTextV6 : public TDisplayTextV5
       
  2780 	/**
       
  2781 	Contains a DISPLAY TEXT proactive command issued by the UICC.  See ETSI TS
       
  2782 	102 223 and RSat::NotifyDisplayTextPCmd() for more information about
       
  2783 	the command.
       
  2784 
       
  2785 	Request notification for DISPLAY TEXT with RSat::NotifyDisplayTextPCmd(),
       
  2786 	passing it an object in which to store the command when it arrives.	Pass a
       
  2787 	packaged version of the latest "TDisplayText" class. For Symbian OS 7.0s,
       
  2788 	8.0 and 8.1 use RSat::TDisplayTextV2Pckg, a packaged RSat::TDisplayTextV2.
       
  2789 	For Symbian OS 9.2, use RSat::TDisplayTextV5Pckg, a packaged
       
  2790 	RSat::TDisplayTextV5.For Symbian OS 9.4, use RSat::TDisplayTextV6Pckg, a packaged
       
  2791 	RSat::TDisplayTextV6. For later versions of
       
  2792 	Symbian OS, check for an updated API (RSat::TDisplayTextV7 etc).
       
  2793 
       
  2794 	@see RSat::TDisplayTextV1
       
  2795 	@see RSat::TDisplayTextV2
       
  2796 	@see RSat::TDisplayTextV5
       
  2797 	@see RSat::TDisplayTextV6Pckg
       
  2798 	@see RSat::NotifyDisplayTextPCmd()
       
  2799 	*/
       
  2800 		{
       
  2801 	public:
       
  2802 		IMPORT_C TDisplayTextV6();
       
  2803 
       
  2804 	public: 
       
  2805 		TUint8 iFrameId;  //<  Each frame has an ID. This field contains the ID of the frame. 
       
  2806 		};
       
  2807 
       
  2808 	/** A packaged RSat::TDisplayTextV6. */
       
  2809 	typedef TPckg<TDisplayTextV6>  TDisplayTextV6Pckg;
       
  2810     
       
  2811     IMPORT_C void NotifyDisplayTextPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  2812 
       
  2813 
       
  2814     class TDisplayTextRspV1 : public TSatPCmdBase
       
  2815     /**
       
  2816     Contains your response to a DISPLAY TEXT proactive command.  Pass this to
       
  2817     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  2818     102 223 and RSat::NotifyDisplayTextPCmd() for more information about
       
  2819     the command.
       
  2820 
       
  2821     For Symbian OS versions up to and including  v8.1a and v8.1b pass
       
  2822     RSat::TerminalRsp() a RSat::TDisplayTextRspV1Pckg (a packaged
       
  2823     TDisplayTextRspV1). For later versions of Symbian OS, check for an updated
       
  2824     API (RSat::TDisplayTextRspV2 etc).
       
  2825 
       
  2826     @see RSat::NotifyDisplayTextPCmd()
       
  2827     */
       
  2828         {
       
  2829     public:
       
  2830         IMPORT_C TDisplayTextRspV1();
       
  2831     public:
       
  2832          /** General result of the proactive command. Set this as described in
       
  2833         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  2834         TPCmdResult iGeneralResult;
       
  2835 
       
  2836         /** If the value of iGeneralResult requires additional information,
       
  2837         set this to RSat::KMeProblem.  Otherwise set to
       
  2838         RSat::KNoAdditionalInfo. */
       
  2839         TUint iInfoType;
       
  2840 
       
  2841         /** Contains additional information associated with certain error codes
       
  2842         set in iGeneralResult. If the value in iGeneralResult does not require
       
  2843         any information then leave this field empty.*/
       
  2844         TAdditionalInfo iAdditionalInfo;
       
  2845         };
       
  2846 
       
  2847     /** A packaged RSat::TDisplayTextRspV1. */
       
  2848     typedef TPckg<TDisplayTextRspV1>  TDisplayTextRspV1Pckg;
       
  2849 
       
  2850     //
       
  2851     //GET INKEY
       
  2852     //
       
  2853     /** Part of the GET INKEY proactive command.
       
  2854     This tells you what response to get from the user.
       
  2855     @see RSat::TGetInkeyV1
       
  2856     @see RSat::NotifyGetInkeyPCmd()*/
       
  2857     enum TGetInkeyRspFormat
       
  2858         {
       
  2859         EGetInkeyRspFormatNotSet,   //< GET INKEY response format not set.
       
  2860         EDigitOnly,                 //< Get a digit (0-9, *, #, and +) from the user.
       
  2861         ECharSmsDefaultAlphabet,    //< Get a character from the SMS default alphabet from the user.
       
  2862         ECharUcs2Alphabet,          //< Get a character from the UCS2 alphabet from the user.
       
  2863         EYesNo                      //< Get a Yes or No decision from the user.
       
  2864         };
       
  2865 
       
  2866     enum {KGetInkeyTextMaxSize=242}; //< @see RSat::TGetInkeyText
       
  2867 
       
  2868     /** Part of the GET INKEY proactive command.  Contains the text to display
       
  2869     to the user before getting a response.  Maximum length is 242 characters.
       
  2870     @see RSat::TGetInkeyV1
       
  2871     @see RSat::NotifyGetInkeyPCmd()*/
       
  2872     typedef TBuf<KGetInkeyTextMaxSize> TGetInkeyText;
       
  2873 
       
  2874     class TGetInkeyV1 : public TSatPCmdBase
       
  2875     /**
       
  2876     Contains a GET INKEY proactive command issued by the UICC.   See ETSI TS
       
  2877     102 223 and RSat::NotifyGetInkeyPCmd() for more information about
       
  2878     the command.
       
  2879 
       
  2880     Request notification for GET INKEY with RSat::NotifyGetInkeyPCmd(),
       
  2881     passing it an object in which to store the command when it arrives.  Pass a
       
  2882     packaged version of the latest "TGetInkey" class. For Symbian OS 7.0s,
       
  2883     8.0 and 8.1 use RSat::TGetInkeyV2Pckg, a packaged RSat::TGetInkeyV2.
       
  2884     Use RSat::TGetInkeyV1 with older versions of Symbian OS.  For later
       
  2885     versions of Symbian OS, check for an updated API (RSat::TGetInkeyV3
       
  2886     etc).
       
  2887 
       
  2888     @see RSat::TGetInkeyV2
       
  2889     @see RSat::TGetInkeyV1Pckg
       
  2890     @see RSat::NotifyGetInkeyPCmd()
       
  2891     */
       
  2892         {
       
  2893     public:
       
  2894         IMPORT_C TGetInkeyV1();
       
  2895     public:
       
  2896         /** Response required. */
       
  2897         TGetInkeyRspFormat iRspFormat;
       
  2898 
       
  2899         /** Text to display. */
       
  2900         TGetInkeyText iText;
       
  2901 
       
  2902         /** Icon to display. */
       
  2903         TIconId iIconId;
       
  2904 
       
  2905         /** Determines whether help is available. */
       
  2906         THelp iHelp;
       
  2907         };
       
  2908 
       
  2909     /** A packaged RSat::TGetInkeyV1. */
       
  2910     typedef TPckg<TGetInkeyV1>  TGetInkeyV1Pckg;
       
  2911 
       
  2912     enum TGetInkeyRspMode
       
  2913     /** Part of the GET INKEY proactive command.  Determines how you get the
       
  2914     response from the user.
       
  2915     @see RSat::TGetInkeyV1
       
  2916     @see RSat::NotifyGetInkeyPCmd()*/
       
  2917         {
       
  2918         EGetInkeyRspModeNotSet, //< Initialisation value.
       
  2919 
       
  2920         /** Display character that the user chooses.  You may allow the user to
       
  2921         alter and/or confirm their choice before passing the character back to
       
  2922         the UICC. */
       
  2923         EUserRspDisplayed,
       
  2924 
       
  2925         /** An immediate response is requested. The response must be a digit (0-
       
  2926         9, *, #, and +). Do not display the digit, and do not allow the user to
       
  2927         alter or confirm their choice before returning the digit to the UICC. */
       
  2928         EImmediateDigitRsp
       
  2929         };
       
  2930 
       
  2931 
       
  2932     class TGetInkeyV2 : public TGetInkeyV1
       
  2933     /**
       
  2934     Contains a GET INKEY proactive command issued by the UICC.   See ETSI TS
       
  2935     102 223 and RSat::NotifyGetInkeyPCmd() for more information about
       
  2936     the command.
       
  2937 
       
  2938     Request notification for GET INKEY with RSat::NotifyGetInkeyPCmd(),
       
  2939     passing it an object in which to store the command when it arrives.  Pass a
       
  2940     packaged version of the latest "TGetInkey" class. For Symbian OS 7.0s,
       
  2941     8.0 and 8.1 use RSat::TGetInkeyV2Pckg, a packaged RSat::TGetInkeyV2.
       
  2942     Use RSat::TGetInkeyV1 with older versions of Symbian OS.  For later
       
  2943     versions of Symbian OS, check for an updated API (RSat::TGetInkeyV3
       
  2944     etc).
       
  2945 
       
  2946     @see RSat::TGetInkeyV2
       
  2947     @see RSat::TGetInkeyV2Pckg
       
  2948     @see RSat::NotifyGetInkeyPCmd()
       
  2949     */
       
  2950         {
       
  2951     public:
       
  2952         IMPORT_C TGetInkeyV2();
       
  2953     public:
       
  2954         /** Wait for this length of time for a response from the user.
       
  2955         ETSI TS 102 223 describes what to do when the time expires. */
       
  2956         TDuration iDuration;
       
  2957 
       
  2958         /**  Determines whether you let the user alter/confirm their choice of character. */
       
  2959         TGetInkeyRspMode iMode;
       
  2960         };
       
  2961 
       
  2962     /** A packaged RSat::TGetInkeyV2. */
       
  2963     typedef TPckg<TGetInkeyV2>  TGetInkeyV2Pckg;
       
  2964 
       
  2965 	class TGetInkeyV5 : public TGetInkeyV2
       
  2966 	/**
       
  2967 	Contains a GET INKEY proactive command issued by the UICC.   See ETSI TS
       
  2968 	102 223 and RSat::NotifyGetInkeyPCmd() for more information about
       
  2969 	the command.
       
  2970 
       
  2971 	Request notification for GET INKEY with RSat::NotifyGetInkeyPCmd(),
       
  2972 	passing it an object in which to store the command when it arrives.  Pass a
       
  2973 	packaged version of the latest "TGetInkey" class. For Symbian OS 7.0s,
       
  2974 	8.0 and 8.1 use RSat::TGetInkeyV2Pckg, a packaged RSat::TGetInkeyV2.
       
  2975 	Use RSat::TGetInkeyV1 with older versions of Symbian OS.
       
  2976 	For Symbian OS 9.2, use RSat::TGetInkeyV5Pckg.
       
  2977 	For later versions of Symbian OS, check for an updated API (RSat::TGetInkeyV6 etc).
       
  2978 
       
  2979 	@see RSat::TGetInkeyV1
       
  2980 	@see RSat::TGetInkeyV2
       
  2981 	@see RSat::TGetInkeyV5Pckg
       
  2982 	@see RSat::NotifyGetInkeyPCmd()
       
  2983 	*/
       
  2984 		{
       
  2985 	public:
       
  2986 		IMPORT_C TGetInkeyV5();
       
  2987 
       
  2988 	public:
       
  2989 		/** Contains formatting information to be applied when
       
  2990 		RSat::TGetInkeyV1::iText is displayed.
       
  2991 		@see RSat::TTextAttribute 
       
  2992 		*/
       
  2993 		TTextAttribute iTextAttribute;
       
  2994 		};
       
  2995 
       
  2996 	/** A packaged RSat::TGetInkeyV5. */
       
  2997 	typedef TPckg<TGetInkeyV5>  TGetInkeyV5Pckg;
       
  2998 
       
  2999     class TGetInkeyV6 : public TGetInkeyV5
       
  3000 	/**
       
  3001 	Contains a GET INKEY proactive command issued by the UICC.   See ETSI TS
       
  3002 	102 223 and RSat::NotifyGetInkeyPCmd() for more information about
       
  3003 	the command.
       
  3004 
       
  3005 	Request notification for GET INKEY with RSat::NotifyGetInkeyPCmd(),
       
  3006 	passing it an object in which to store the command when it arrives.  Pass a
       
  3007 	packaged version of the latest "TGetInkey" class. For Symbian OS 7.0s,
       
  3008 	8.0 and 8.1 use RSat::TGetInkeyV2Pckg, a packaged RSat::TGetInkeyV2.
       
  3009 	Use RSat::TGetInkeyV1 with older versions of Symbian OS.
       
  3010 	For Symbian OS 9.2, use RSat::TGetInkeyV5Pckg.
       
  3011 	For Symbian OS 9.4 and later, use RSat::TGetInkeyV6Pckg.
       
  3012 	For later versions of Symbian OS, check for an updated API (RSat::TGetInkeyV7 etc).
       
  3013 
       
  3014 	@see RSat::TGetInkeyV1
       
  3015 	@see RSat::TGetInkeyV2
       
  3016 	@see RSat::TGetInkeyV5
       
  3017 	@see RSat::TGetInkeyV6Pckg
       
  3018 	@see RSat::NotifyGetInkeyPCmd()
       
  3019 	*/
       
  3020 		{
       
  3021 	public:
       
  3022 		IMPORT_C TGetInkeyV6();
       
  3023 
       
  3024 	public:
       
  3025 		TUint8 iFrameId;  //<  Each frame has an ID. This field contains the ID of the frame. 
       
  3026 		};
       
  3027 
       
  3028 	/** A packaged RSat::TGetInkeyV5. */
       
  3029 	typedef TPckg<TGetInkeyV6>  TGetInkeyV6Pckg;
       
  3030 
       
  3031     IMPORT_C void NotifyGetInkeyPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  3032 
       
  3033 
       
  3034     class TGetInkeyRspV1 : public TSatPCmdBase
       
  3035     /**
       
  3036     Contains your response to a GET INKEY proactive command.  Pass this to
       
  3037     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  3038     102 223 and RSat::NotifyGetInkeyPCmd() for more information about
       
  3039     the command.
       
  3040 
       
  3041     Return the key press in iAdditionalInfo, plus the other information as
       
  3042     indicated.
       
  3043 
       
  3044     For Symbian OS v6.1 or v7.0 pass RSat::TerminalRsp() a
       
  3045     RSat::TGetInkeyRspV1Pckg (a packaged TGetInkeyRspV1).  For versions up to
       
  3046     and including v8.1a and v8.1b use RSat::TGetInkeyRspV2Pckg (a packaged
       
  3047     TGetInkeyRspV2).   For later versions of Symbian OS, check for an updated
       
  3048     API (RSat::TGetInkeyRspV3 etc).
       
  3049 
       
  3050     @see RSat::TGetInkeyRspV2
       
  3051     @see RSat::NotifyGetInkeyPCmd()
       
  3052     */
       
  3053         {
       
  3054     public:
       
  3055         IMPORT_C TGetInkeyRspV1();
       
  3056     public:
       
  3057          /** General result of the proactive command. Set this as described in
       
  3058         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  3059         TPCmdResult iGeneralResult;
       
  3060 
       
  3061         /** Set to RSat::KTextString to return a key press.  Some error values
       
  3062         of iGeneralResult require additional information, in which case set
       
  3063         this to RSat::KMeProblem.  Otherwise set to RSat::KNoAdditionalInfo. */
       
  3064         TUint iInfoType;
       
  3065 
       
  3066         /** The format of the key press, as given in
       
  3067         RSat::TGetInkeyV1::iRspFormat. */
       
  3068         TGetInkeyRspFormat iRspFormat;
       
  3069 
       
  3070         /** The key press. */
       
  3071         TAdditionalInfo iAdditionalInfo;
       
  3072         };
       
  3073 
       
  3074     /** A packaged RSat::TGetInkeyRspV1. */
       
  3075     typedef TPckg<TGetInkeyRspV1>  TGetInkeyRspV1Pckg;
       
  3076 
       
  3077 
       
  3078     class TGetInkeyRspV2 : public TGetInkeyRspV1
       
  3079     /**
       
  3080     Contains your response to a GET INKEY proactive command.  Pass this to
       
  3081     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  3082     102 223 and RSat::NotifyGetInkeyPCmd() for more information about
       
  3083     the command.
       
  3084 
       
  3085     Return the values as described in RSat::TGetInkeyRspV1, plus the total
       
  3086     display duration.
       
  3087 
       
  3088     For Symbian OS v6.1 or v7.0 pass RSat::TerminalRsp() a
       
  3089     RSat::TGetInkeyRspV1Pckg (a packaged TGetInkeyRspV1).  For versions up to
       
  3090     and including v8.1a and v8.1b use RSat::TGetInkeyRspV2Pckg (a packaged
       
  3091     TGetInkeyRspV2).   For later versions of Symbian OS, check for an updated
       
  3092     API (RSat::TGetInkeyRspV3 etc).
       
  3093 
       
  3094     @see RSat::TGetInkeyRspV1
       
  3095     @see RSat::NotifyGetInkeyPCmd()
       
  3096     */
       
  3097         {
       
  3098     public:
       
  3099         IMPORT_C TGetInkeyRspV2();
       
  3100     public:
       
  3101         TDuration iDuration; //< Total display duration.
       
  3102         };
       
  3103 
       
  3104     /** A packaged RSat::TGetInkeyRspV2. */
       
  3105     typedef TPckg<TGetInkeyRspV2>  TGetInkeyRspV2Pckg;
       
  3106 
       
  3107     //
       
  3108     //GET INPUT
       
  3109     //
       
  3110     struct TRspLength
       
  3111     /** Part of the GET INPUT proactive command.
       
  3112     Determines the maximum and minimum length of string you return to the UICC.
       
  3113     @see RSat::TGetInputV1
       
  3114     @see RSat::TGetInputV5
       
  3115     @see RSat::NotifyGetInputPCmd()*/
       
  3116         {
       
  3117         TUint8 iMinRspLength;   //< Minimum length of string you return to the UICC.
       
  3118         TUint8 iMaxRspLength;   //< Maximum length of string you return to the UICC.
       
  3119         };
       
  3120 
       
  3121     enum TInputDisplayOption
       
  3122     /** Part of the GET INPUT proactive command.
       
  3123     Deetermine whether you display the user's string while they are entering it.
       
  3124     @see RSat::TGetInputV1
       
  3125     @see RSat::TGetInputV5
       
  3126     @see RSat::NotifyGetInputPCmd()*/
       
  3127         {
       
  3128         EInputDisplayOptionNotSet, //< Value used in constructor.
       
  3129         EDisplayUserInput,         //< Display user's input while they type.
       
  3130         EHideUserInput             //< Hide user's input while they type.
       
  3131         };
       
  3132 
       
  3133     enum TGetInputRspFormat
       
  3134     /** Part of the GET INPUT proactive command.
       
  3135     Determines the format of the string returned to the UICC.
       
  3136     @see RSat::TGetInputV1
       
  3137     @see RSat::TGetInputV5
       
  3138     @see RSat::NotifyGetInputPCmd()*/
       
  3139         {
       
  3140         EGetInputRspFormatNotSet,    //< Value used in constructor.
       
  3141         EDigitOnlyUnpacked,          //< Digits only, unpacked.
       
  3142         EDigitOnlyPacked,            //< Digits only, packed.
       
  3143         ESmsDefaultAlphabetUnpacked, //< String in SMS default alphabet, unpacked.
       
  3144         ESmsDefaultAlphabetPacked,   //< String in SMS default alphabet, packed.
       
  3145         EUcs2Alphabet                //< String in UCS2 alphabet
       
  3146         };
       
  3147 
       
  3148 	/**
       
  3149 	@see RSat::TGetInputText
       
  3150 	*/
       
  3151     enum {KGetInputTextMaxSize=238};
       
  3152 
       
  3153     /** Part of the GET INPUT proactive command. Contains the text to display
       
  3154     to the user before getting a response.  Maximum length is 238 characters.
       
  3155     @see RSat::TGetInputV1
       
  3156     @see RSat::TGetInputV5
       
  3157     @see RSat::NotifyGetInputPCmd()*/
       
  3158     typedef TBuf<KGetInputTextMaxSize> TGetInputText;
       
  3159 
       
  3160 	/**
       
  3161 	@see RSat::TGetInputDefaultText
       
  3162 	*/
       
  3163     enum {KGetInputDefaultTextMaxSize=235};
       
  3164 
       
  3165     /** Part of the GET INPUT proactive command. A default string: allow the
       
  3166     user to edit this, or to delete it and replace it with their own text.
       
  3167     @see RSat::TGetInputV1
       
  3168     @see RSat::NotifyGetInputPCmd()*/
       
  3169     typedef TBuf<KGetInputDefaultTextMaxSize> TGetInputDefaultText;
       
  3170 
       
  3171     class TGetInputV1 : public TSatPCmdBase
       
  3172     /**
       
  3173     Contains a GET INPUT proactive command issued by the UICC.   See
       
  3174     ETSI TS 102 223 and RSat::NotifyGetInputPCmd() for more information about
       
  3175     the command.
       
  3176 
       
  3177     Request notification for GET INPUT with RSat::NotifyGetInputPCmd(), passing
       
  3178     it an object in which to store the command when it arrives.  Pass a
       
  3179     packaged version of the  latest "TGetInput" class. For Symbian OS versions
       
  3180     up to and including v8.1a and 8.1b use RSat::TGetInputV1Pckg, a packaged
       
  3181     RSat::TGetInputV1.  For later versions of Symbian OS, check for an updated
       
  3182     API (RSat::TGetInputV2 etc).
       
  3183 
       
  3184     @see RSat::TGetInputV1Pckg
       
  3185     @see RSat::NotifyGetInputPCmd()
       
  3186     */
       
  3187         {
       
  3188     public:
       
  3189         IMPORT_C TGetInputV1();
       
  3190     public:
       
  3191         /** Determines whether the user can see the characters they enter. */
       
  3192         TInputDisplayOption iInputDisplayOption;
       
  3193 
       
  3194         /** Determines whether digits or characters should be entered,
       
  3195         and whether they should be in a packed or unpacked format. */
       
  3196         TGetInputRspFormat iRspFormat;
       
  3197 
       
  3198         /** Text to display. */
       
  3199         TGetInputText iText;
       
  3200 
       
  3201         /** The maximum and minimum length of string. */
       
  3202         TRspLength iRspLength;
       
  3203 
       
  3204         /** A default string can be provided. This field determines whether the
       
  3205         user is allowed to edit it, or whether they can only delete it and
       
  3206         replace it with their own text. */
       
  3207         TGetInputDefaultText iDefaultText;
       
  3208 
       
  3209         /** Icon to display. */
       
  3210         TIconId iIconId;
       
  3211 
       
  3212         /** Determine whether help is available. */
       
  3213         THelp iHelp;
       
  3214         };
       
  3215 
       
  3216     /** A packaged RSat::TGetInputV1. */
       
  3217     typedef TPckg<TGetInputV1>  TGetInputV1Pckg;
       
  3218 
       
  3219 	class TGetInputV5 : public TGetInputV1
       
  3220 	/**
       
  3221 	Contains a GET INPUT proactive command issued by the UICC.   See
       
  3222 	ETSI TS 102 223 and RSat::NotifyGetInputPCmd() for more information about
       
  3223 	the command.
       
  3224 
       
  3225 	Request notification for GET INPUT with RSat::NotifyGetInputPCmd(), passing
       
  3226 	it an object in which to store the command when it arrives.  Pass a
       
  3227 	packaged version of the  latest "TGetInput" class. For Symbian OS versions
       
  3228 	up to and including v8.1a and 8.1b use RSat::TGetInputV1Pckg, a packaged
       
  3229 	RSat::TGetInputV1. For Symbian OS v9.2, use RSat::TGetInputV5.
       
  3230 	For later versions of Symbian OS, check for an updated
       
  3231 	API (RSat::TGetInputV6 etc).
       
  3232 
       
  3233 	@see RSat::TGetInputV1
       
  3234 	@see RSat::TGetInputV5Pckg
       
  3235 	@see RSat::NotifyGetInputPCmd()
       
  3236 	*/
       
  3237 		{
       
  3238 	public:
       
  3239 		IMPORT_C TGetInputV5();
       
  3240 
       
  3241 	public:
       
  3242 		/** Contains formatting information to be applied when
       
  3243 		RSat::TGetInputV1::iText is displayed.
       
  3244 		@see RSat::TTextAttribute 
       
  3245 		*/
       
  3246 		TTextAttribute iTextAttribute;
       
  3247 		};
       
  3248 
       
  3249 	/** A packaged RSat::TGetInputV5. */
       
  3250 	typedef TPckg<TGetInputV5>  TGetInputV5Pckg;
       
  3251 
       
  3252 	class TGetInputV6 : public TGetInputV5
       
  3253 	/**
       
  3254 	Contains a GET INPUT proactive command issued by the UICC.   See
       
  3255 	ETSI TS 102 223 and RSat::NotifyGetInputPCmd() for more information about
       
  3256 	the command.
       
  3257 
       
  3258 	Request notification for GET INPUT with RSat::NotifyGetInputPCmd(), passing
       
  3259 	it an object in which to store the command when it arrives.  Pass a
       
  3260 	packaged version of the  latest "TGetInput" class. For Symbian OS versions
       
  3261 	up to and including v8.1a and 8.1b use RSat::TGetInputV1Pckg, a packaged
       
  3262 	RSat::TGetInputV1. For Symbian OS v9.2, use RSat::TGetInputV5.
       
  3263 	For Symbian OS v9.4, use RSat::TGetInputV6.
       
  3264 	For later versions of Symbian OS, check for an updated
       
  3265 	API (RSat::TGetInputV7 etc).
       
  3266 
       
  3267 	@see RSat::TGetInputV1
       
  3268 	@see RSat::TGetInputV5
       
  3269 	@see RSat::TGetInputV6Pckg
       
  3270 	@see RSat::NotifyGetInputPCmd()
       
  3271 	*/
       
  3272 		{
       
  3273 	public:
       
  3274 		IMPORT_C TGetInputV6();
       
  3275 
       
  3276 	public:
       
  3277 		TUint8 iFrameId;  //<  Each frame has an ID. This field contains the ID of the frame. 
       
  3278 		};
       
  3279 
       
  3280 	/** A packaged RSat::TGetInputV6. */
       
  3281 	typedef TPckg<TGetInputV6>  TGetInputV6Pckg;
       
  3282 	
       
  3283     IMPORT_C void NotifyGetInputPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  3284 
       
  3285 
       
  3286     class TGetInputRspV1 : public TSatPCmdBase
       
  3287     /**
       
  3288     Contains your response to a GET INPUT proactive command.  Pass this to
       
  3289     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  3290     102 223 and RSat::NotifyGetInputPCmd() for more information about
       
  3291     the command.
       
  3292 
       
  3293     Return the string in iAdditionalInfo, plus the other information as
       
  3294     indicated.
       
  3295 
       
  3296     For Symbian OS versions up to and including  v8.1a and v8.1b pass
       
  3297     RSat::TerminalRsp() a RSat::TGetInputRspV1Pckg (a packaged TGetInputRspV1).
       
  3298     For later versions of Symbian OS, check for an updated API
       
  3299     (RSat::TGetInputRspV2 etc).
       
  3300 
       
  3301     @see RSat::NotifyGetInputPCmd()
       
  3302     */
       
  3303         {
       
  3304     public:
       
  3305         IMPORT_C TGetInputRspV1();
       
  3306     public:
       
  3307          /** General result of the proactive command. Set this as described in
       
  3308         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  3309         TPCmdResult iGeneralResult;
       
  3310 
       
  3311         /** Set to RSat::KTextString to return a string.  Some error values
       
  3312         of iGeneralResult require additional information, in which case set
       
  3313         this to RSat::KMeProblem.  Otherwise set to RSat::KNoAdditionalInfo. */
       
  3314         TUint iInfoType;
       
  3315 
       
  3316         /** The format of the key press, as given in
       
  3317         RSat::TGetInputV1::iRspFormat. */
       
  3318         TGetInputRspFormat iRspFormat;
       
  3319 
       
  3320         /** Additional information, such as the string. */
       
  3321         TAdditionalInfo iAdditionalInfo;
       
  3322         };
       
  3323 
       
  3324     /** A packaged RSat::TGetInputRspV1. */
       
  3325     typedef TPckg<TGetInputRspV1>  TGetInputRspV1Pckg;
       
  3326 
       
  3327     //
       
  3328     //PLAY TONE
       
  3329     //
       
  3330 
       
  3331     enum TTone
       
  3332     // TTone enum values are dictated by 3GPP 31.111
       
  3333     /** Part of the PLAY TONE proactive command.
       
  3334     This determines the type of tone to play.
       
  3335     @see RSat::TPlayToneV1
       
  3336     @see RSat::NotifyPlayTonePCmd() */
       
  3337         {
       
  3338         KToneNotSet                         =-1,   //< Initialization value used within constructor(s).
       
  3339         KDialTone                           =0x01, //< Dial tone.
       
  3340         KCalledSubscriberBusy               =0x02, //< Called subscriber busy.
       
  3341         KCongestion                         =0x03, //< Congestion.
       
  3342         KRadioPathAcknowledge               =0x04, //< Radio path acknowledge.
       
  3343         KRadioPathNotAvailableCallDropped   =0x05, //< Radio path not available/Call dropped.
       
  3344         KErrorSpecialInfo                   =0x06, //< Error/Special information.
       
  3345         KCallWaitingTone                    =0x07, //< Call waiting tone.
       
  3346         KRingingTone                        =0x08, //< Ringing tone.
       
  3347         KGeneralBeep                        =0x10, //< General beep.
       
  3348         KPositiveTone                       =0x11, //< Positive acknowledgement tone.
       
  3349         KNegativeTone                       =0x12, //< Negative acknowledgement or error tone.
       
  3350         KUserSelectedToneIncomingSpeech     =0x13, //< Ringing tone as selected by the user for incoming speech call.
       
  3351         KUserSelectedToneIncomingSms        =0x14,  //< Alert tone as selected by the user for incoming SMS.
       
  3352         KCriticalAlert						=0x15, //< Independent of volume setting in the terminal.
       
  3353 		KVibrateOnly						=0x20, //< Vibrate only, if available
       
  3354 		KHappyTone							=0x30, //< Themed tone
       
  3355 		KSadTone							=0x31, //< Themed tone
       
  3356 		KUrgentActionTone					=0x32, //< Themed tone
       
  3357 		KQuestionTone						=0x33, //< Themed tone
       
  3358 		KMessageReceivedTone				=0x34, //< Themed tone
       
  3359 		KMelody1							=0x40, //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes.
       
  3360 		KMelody2							=0x41, //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes.
       
  3361 		KMelody3							=0x42, //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes.
       
  3362 		KMelody4							=0x43, //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes.
       
  3363 		KMelody5							=0x44, //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes.
       
  3364 		KMelody6							=0x45, //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes.
       
  3365 		KMelody7							=0x46, //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes.
       
  3366 		KMelody8							=0x47  //< The Melody tones are intended to allow the UICC to cause the terminal to play tunes.
       
  3367         };
       
  3368 
       
  3369 
       
  3370     class TPlayToneV1 : public TSatPCmdBase
       
  3371     /**
       
  3372     Contains a PLAY TONE proactive command issued by the UICC.   See
       
  3373     ETSI TS 102 223 and RSat::NotifyPlayTonePCmd() for more information about
       
  3374     the command.
       
  3375 
       
  3376     Request notification for PLAY TONE with RSat::NotifyPlayTonePCmd(),
       
  3377     passing it an object in which to store the command when it arrives.  Pass a
       
  3378     packaged version of the latest "TPlayTone" class. For Symbian OS 7.0s,
       
  3379     8.0 and 8.1 use RSat::TPlayToneV2Pckg, a packaged RSat::TPlayToneV2.
       
  3380     Use RSat::TPlayToneV1 with older versions of Symbian OS.  For later
       
  3381     versions of Symbian OS, check for an updated API (RSat::TPlayToneV3
       
  3382     etc).
       
  3383 
       
  3384     @see RSat::TPlayToneV2
       
  3385     @see RSat::TPlayToneV1Pckg
       
  3386     @see RSat::NotifyPlayTonePCmd()
       
  3387     */
       
  3388         {
       
  3389     public:
       
  3390         IMPORT_C TPlayToneV1();
       
  3391     public:
       
  3392         /** An alpha identifier containing text to display. */
       
  3393         TAlphaId iAlphaId;
       
  3394 
       
  3395         /** The tone to play. */
       
  3396         TTone iTone;
       
  3397 
       
  3398         /** The duration of the tone. */
       
  3399         TDuration iDuration;
       
  3400         };
       
  3401 
       
  3402     /** A packaged RSat::TPlayToneV1. */
       
  3403     typedef TPckg<TPlayToneV1>  TPlayToneV1Pckg;
       
  3404 
       
  3405 
       
  3406     class TPlayToneV2 : public TPlayToneV1
       
  3407     /**
       
  3408     Contains a PLAY TONE proactive command issued by the UICC.   See
       
  3409     ETSI TS 102 223 and RSat::NotifyPlayTonePCmd() for more information about
       
  3410     the command.
       
  3411 
       
  3412     Request notification for PLAY TONE with RSat::NotifyPlayTonePCmd(),
       
  3413     passing it an object in which to store the command when it arrives.  Pass a
       
  3414     packaged version of the latest "TPlayTone" class. For Symbian OS 7.0s,
       
  3415     8.0 and 8.1 use RSat::TPlayToneV2Pckg, a packaged RSat::TPlayToneV2.
       
  3416     Use RSat::TPlayToneV1 with older versions of Symbian OS.  For later
       
  3417     versions of Symbian OS, check for an updated API (RSat::TPlayToneV3
       
  3418     etc).
       
  3419 
       
  3420     @see RSat::TPlayToneV1
       
  3421     @see RSat::TPlayToneV2Pckg
       
  3422     @see RSat::NotifyPlayTonePCmd()
       
  3423     */
       
  3424         {
       
  3425     public:
       
  3426         IMPORT_C TPlayToneV2();
       
  3427     public:
       
  3428         /** An icon to display. */
       
  3429         TIconId iIconId;
       
  3430         };
       
  3431 
       
  3432     /** A packaged RSat::TPlayToneV2. */
       
  3433     typedef TPckg<TPlayToneV2>  TPlayToneV2Pckg;
       
  3434 
       
  3435 	class TPlayToneV5 : public TPlayToneV2
       
  3436 	/**
       
  3437 	Contains a PLAY TONE proactive command issued by the UICC.   See
       
  3438 	ETSI TS 102 223 and RSat::NotifyPlayTonePCmd() for more information about
       
  3439 	the command.
       
  3440 
       
  3441 	Request notification for PLAY TONE with RSat::NotifyPlayTonePCmd(),
       
  3442 	passing it an object in which to store the command when it arrives.  Pass a
       
  3443 	packaged version of the latest "TPlayTone" class. For Symbian OS 7.0s,
       
  3444 	8.0 and 8.1 use RSat::TPlayToneV2Pckg, a packaged RSat::TPlayToneV2.
       
  3445 	For Symbian OS 9.2, use RSat::TPlayToneV5Pckg.
       
  3446 	Use RSat::TPlayToneV1 with older versions of Symbian OS.
       
  3447 	For later versions of Symbian OS, check for an updated API
       
  3448 	(RSat::TPlayToneV6 etc).
       
  3449 
       
  3450 	@see RSat::TPlayToneV1
       
  3451 	@see RSat::TPlayToneV2
       
  3452 	@see RSat::TPlayToneV5Pckg
       
  3453 	@see RSat::NotifyPlayTonePCmd()
       
  3454 	*/
       
  3455 		{
       
  3456 	public:
       
  3457 		IMPORT_C TPlayToneV5();
       
  3458 
       
  3459 	public:
       
  3460 		/** Contains formatting information to be applied when
       
  3461 		RSat::TPlayToneV1::iAlphaId is displayed.
       
  3462 		@see RSat::TTextAttribute 
       
  3463 		*/
       
  3464 		TTextAttribute iTextAttribute;
       
  3465 		};
       
  3466 
       
  3467 	/** A packaged RSat::TPlayToneV5. */
       
  3468 	typedef TPckg<TPlayToneV5>  TPlayToneV5Pckg;
       
  3469 	
       
  3470 	class TPlayToneV6 : public TPlayToneV5
       
  3471 	/**
       
  3472 	Contains a PLAY TONE proactive command issued by the UICC.   See
       
  3473 	ETSI TS 102 223 and RSat::NotifyPlayTonePCmd() for more information about
       
  3474 	the command.
       
  3475 
       
  3476 	Request notification for PLAY TONE with RSat::NotifyPlayTonePCmd(),
       
  3477 	passing it an object in which to store the command when it arrives.  Pass a
       
  3478 	packaged version of the latest "TPlayTone" class. For Symbian OS 7.0s,
       
  3479 	8.0 and 8.1 use RSat::TPlayToneV2Pckg, a packaged RSat::TPlayToneV2.
       
  3480 	For Symbian OS 9.2, use RSat::TPlayToneV5Pckg.
       
  3481 	Use RSat::TPlayToneV1 with older versions of Symbian OS.
       
  3482 	For Symbian OS 9.4, use RSat::TPlayToneV6Pckg.
       
  3483 	For later versions of Symbian OS, check for an updated API
       
  3484 	(RSat::TPlayToneV7 etc).
       
  3485 
       
  3486 	@see RSat::TPlayToneV1
       
  3487 	@see RSat::TPlayToneV2
       
  3488 	@see RSat::TPlayToneV5
       
  3489 	@see RSat::TPlayToneV6Pckg
       
  3490 	@see RSat::NotifyPlayTonePCmd()
       
  3491 	*/
       
  3492 		{
       
  3493 	public:
       
  3494 		IMPORT_C TPlayToneV6();
       
  3495 
       
  3496 	public:
       
  3497 		TUint8 iFrameId; //<  Each frame has an ID. This field contains the ID of the frame. 
       
  3498 		};
       
  3499 
       
  3500 	/** A packaged RSat::TPlayToneV6. */
       
  3501 	typedef TPckg<TPlayToneV6>  TPlayToneV6Pckg;
       
  3502     
       
  3503     IMPORT_C void NotifyPlayTonePCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  3504 
       
  3505     class TPlayToneRspV1 : public TSatPCmdBase
       
  3506     /**
       
  3507     Contains your response to a PLAY TONE proactive command.  Pass this to
       
  3508     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  3509     102 223 and RSat::NotifyPlayTonePCmd() for more information about
       
  3510     the command.
       
  3511 
       
  3512     For Symbian OS versions up to and including  v8.1a and v8.1b pass
       
  3513     RSat::TerminalRsp() a RSat::TPlayToneRspV1Pckg (a packaged TPlayTonetRspV1).
       
  3514     For later versions of Symbian OS, check for an updated API
       
  3515     (RSat::TPlayToneRspV2 etc).
       
  3516 
       
  3517     @see RSat::NotifyPlayTonePCmd()
       
  3518     */
       
  3519         {
       
  3520     public:
       
  3521         IMPORT_C TPlayToneRspV1();
       
  3522     public:
       
  3523         /** Proactive command general result.  The description of the PLAY TONE
       
  3524         proactive command in ETSI TS 102 223 suggests results to return. */
       
  3525         TPCmdResult iGeneralResult;
       
  3526 
       
  3527         /** If the value of iGeneralResult requires additional information,
       
  3528         set this to RSat::KMeProblem.  Otherwise set to
       
  3529         RSat::KNoAdditionalInfo. */
       
  3530         TUint iInfoType;
       
  3531 
       
  3532         /** Contains additional information associated with certain error codes
       
  3533         set in iGeneralResult. If the value in iGeneralResult does not require
       
  3534         any information then leave this field empty.*/
       
  3535         TAdditionalInfo iAdditionalInfo;
       
  3536         };
       
  3537 
       
  3538     /** A packaged RSat::TPlayToneRspV1. */
       
  3539     typedef TPckg<TPlayToneRspV1>  TPlayToneRspV1Pckg;
       
  3540 
       
  3541     //
       
  3542     //Menu Items Base Class
       
  3543     //
       
  3544     /** Part of the SELECT ITEM and SET UP MENU proactive commands.
       
  3545     Flags describing a menu's content.  RSat::TMenuItemBaseV1::MenuContent()
       
  3546     returns a combination of these flags. */
       
  3547     enum TMenuContent
       
  3548         {
       
  3549         KItems              = 0x01, //< Menu is made of items.
       
  3550         KItemNextActions    = 0x02, //< Menu is made of items and item next actions.
       
  3551    		KItemIconIds        = 0x04, //< Menu is made of items and item icon IDs.
       
  3552    		KItemTextAttributes = 0x08  //< Menu items contain text attribute data as well as ID and item string.
       
  3553         };
       
  3554 
       
  3555 	/**
       
  3556 	@see RSat::TItem
       
  3557 	*/
       
  3558     enum {KMenuItemMaxSize=240};
       
  3559 
       
  3560     /**
       
  3561     Each item in a SET UP MENU or SELECT ITEM command's menu has these two
       
  3562     properties.  RSat::TItem::iItemString is the string to display in the menu.
       
  3563     If the user selects an item, return the item's RSat::TItem::iItemId to the
       
  3564     UICC so that the UICC knows which item has been selected.
       
  3565 
       
  3566     Use RSat::TMenuItemBaseV1::GetItem() to retrieve an item's RSat::TItem.
       
  3567 
       
  3568     Menu items may also have an icon and/or a "next action identifier"
       
  3569     associated with them.  These are also retrieved with
       
  3570     RSat::TMenuItemBaseV1::GetItem()
       
  3571     */
       
  3572     struct TItem
       
  3573         {
       
  3574         TUint8 iItemId;                         //< (U)SAT menu item indentifier
       
  3575         TBuf16<KMenuItemMaxSize> iItemString;   //< (U)SAT menu item string
       
  3576         };
       
  3577 
       
  3578 	/**
       
  3579 	@see RSat::TItemList
       
  3580 	*/
       
  3581     enum {KItemListMaxSize=486};
       
  3582 
       
  3583     /** Contains the menu in a SET UP MENU and SELECT ITEM proactive commands.
       
  3584     Do not access the menu directly; use RSat::TMenuItemBaseV1::GetItem() and
       
  3585     RSat::TMenuItemBaseV1::AddItem() instead. */
       
  3586     typedef TBuf16<KItemListMaxSize> TItemList;
       
  3587 
       
  3588     class TMenuItemBaseV1 : public TSatPCmdBase
       
  3589     /**
       
  3590     Base class for menu item based classes.
       
  3591 
       
  3592     The SET UP MENU and SELECT ITEM proactive commands both provide menus
       
  3593     that are displayed to the user.  When the user chooses one of the menu's options,
       
  3594     you should tell the UICC which option was chosen.
       
  3595 
       
  3596     In Symbian OS versions before 9.2, the proactive command contains menus in
       
  3597     classes derived from RSat::TMenuItemBaseV1.
       
  3598     For SET UP MENU they are RSat::TSetUpMenuV1, RSat::TSetUpMenuV2 etc.
       
  3599     For SELECT ITEM these classes are RSat::TSelectItemV1, RSat::TSelectItemV2 etc.
       
  3600 
       
  3601     In Symbian OS version 9.2, the proactive command contains menus in
       
  3602     classes derived from RSat::TMenuItemBaseV5 which itself derives from
       
  3603     RSat::TMenuItemBaseV1.
       
  3604 
       
  3605     The description of the SET UP MENU and SELECT ITEM commands describes
       
  3606     how to display the menu and what to do when the user makes a selection; see
       
  3607     RSat::NotifySetUpMenuPCmd() and RSat::NotifySelectItemPCmd().
       
  3608 
       
  3609     RSat::TMenuItemBaseV1 provides methods to add and get the menu items, to
       
  3610     return the number of items, and to get a description of the menu's content.
       
  3611     RSat::TMenuItemBaseV5 extends the functionality provided by RSat::TMenuItemBaseV1
       
  3612     by providing methods that allow items with text attributes to be added and
       
  3613     retrieved.
       
  3614 
       
  3615     To read menu items:
       
  3616 
       
  3617     - Firstly, if you have received a SET UP MENU proactive command, call
       
  3618     RSat::TMenuItemBaseV1::IsRemoveMenu().  If it returns ETrue then the SET UP
       
  3619     MENU command does not contain a menu. Instead, the command indicates you
       
  3620     should remove the menu provided by the previous command.  (Note that the
       
  3621     SELECT ITEM proactive command always contains a menu; there is no need to
       
  3622     call RSat::TMenuItemBaseV1::IsRemoveMenu().
       
  3623 
       
  3624     - If RSat::TMenuItemBaseV1::IsRemoveMenu() returns EFalse then the
       
  3625     command contains a menu that replaces the previous menu.  Find out
       
  3626     how many items are in the menu by calling
       
  3627     RSat::TMenuItemBaseV1::NumberOfItems()
       
  3628 
       
  3629     - Now call RSat::TMenuItemBaseV1::MenuContent() to find out about
       
  3630     the menu items.  All the items in each menu will have some text and an
       
  3631     identifier.  In some menus, items may have "text attributes",
       
  3632     "next item indicators" and/or an icons.
       
  3633 
       
  3634     - Finally call RSat::TMenuItemBaseV1::GetItem() and
       
  3635     RSat::TMenuItemBaseV1::GetItemIcon() for each item.  These methods require
       
  3636     an index number from 1 to X, where X is the number of items.  Choose the
       
  3637     appropriate version of GetItem()  or GetItemIcon() to get the information
       
  3638     you require.  For Symbian OS version 9.2, it is also possible to call
       
  3639     RSat::TMenuItemBaseV5::GetItem() and RSat::TMenuItemBaseV5::GetItemIcon()
       
  3640     to get menu item information if the items contain text attributes.
       
  3641 
       
  3642     @see RSat::TMenuItemBaseV5
       
  3643     */
       
  3644         {
       
  3645     public:
       
  3646         IMPORT_C TMenuItemBaseV1();
       
  3647         IMPORT_C TBool IsRemoveMenu() const;
       
  3648 
       
  3649         IMPORT_C TInt MenuContent() const;
       
  3650         IMPORT_C TUint NumberOfItems() const;
       
  3651 
       
  3652         IMPORT_C TInt GetItem    (TUint aIndex, TItem& aItem) const;
       
  3653         IMPORT_C TInt GetItem    (TUint aIndex, TItem& aItem, TInt& aAction) const;
       
  3654         IMPORT_C TInt GetItem    (TUint aIndex, TItem& aItem, TInt& aAction, TInt& aIconId) const;
       
  3655         IMPORT_C TInt GetItemIcon(TUint aIndex, TItem& aItem, TInt& aIconId) const;
       
  3656 
       
  3657         IMPORT_C TInt AddItem    (const TItem& aItem);
       
  3658         IMPORT_C TInt AddItem    (const TItem& aItem, TUint aAction);
       
  3659         IMPORT_C TInt AddItem    (const TItem& aItem, TUint aAction, TUint aIconId);
       
  3660         IMPORT_C TInt AddItemIcon(const TItem& aItem, TUint aIconId);
       
  3661 
       
  3662         IMPORT_C void Reset();
       
  3663 
       
  3664     protected:
       
  3665         //TMenuItemHeader enum values are chosen arbitrary
       
  3666         enum TMenuItemHeader
       
  3667             {
       
  3668             KItemHeader     				=0xAA00,
       
  3669             KActionHeader   				=0xBB00,
       
  3670             KIconIdHeader   				=0xCC00,
       
  3671             KItemWithTextAttributeHeader 	=0xDD00
       
  3672             };
       
  3673 
       
  3674         enum TBitMask
       
  3675             {
       
  3676             KLowerByte  =0x00FF,
       
  3677             KUpperByte  =0xFF00
       
  3678             };
       
  3679 
       
  3680         // Length = 1 word = 2 bytes
       
  3681         enum {KHeaderLength=0x01};
       
  3682         enum {KItemIdLength=0x01};
       
  3683         enum {KActionLength=0x01};
       
  3684         enum {KIconIdLength=0x01};
       
  3685 
       
  3686         TInt FindItemInBuffer(TUint aIndex, TInt& aOffset) const;
       
  3687         TUint iNumberOfItems;   //< Number of items in the menu
       
  3688         TUint8 iMenuContent;    //< Content of the menu: items + item text attributes + next actions + icon IDs
       
  3689         TItemList iBuf;         //< List of the items in the menu
       
  3690         };
       
  3691 
       
  3692 	class TMenuItemBaseV5 : public TMenuItemBaseV1
       
  3693 	/**
       
  3694     Base class for menu item based classes.
       
  3695 
       
  3696     The SET UP MENU and SELECT ITEM proactive commands both provide menus
       
  3697     that are displayed to the user.  When the user chooses one of the menu's options,
       
  3698     you should tell the UICC which option was chosen.
       
  3699 
       
  3700     In Symbian OS versions < 9.2, the proactive command contains menus in
       
  3701     classes derived from RSat::TMenuItemBaseV1.
       
  3702     For SET UP MENU they are RSat::TSetUpMenuV1, RSat::TSetUpMenuV2 etc.
       
  3703     For SELECT ITEM these classes are RSat::TSelectItemV1, RSat::TSelectItemV2 etc.
       
  3704 
       
  3705     In Symbian OS version 9.2, the proactive command contains menus in
       
  3706     classes derived from RSat::TMenuItemBaseV5 which itself derives from
       
  3707     RSat::TMenuItemBaseV5.
       
  3708     For SET UP MENU they are RSat::TSetUpMenuV5.
       
  3709     For SELECT ITEM these classes are RSat::TSelectItemV5.
       
  3710 
       
  3711     The description of the SET UP MENU and SELECT ITEM commands describes
       
  3712     how to display the menu and what to do when the user makes a selection; see
       
  3713     RSat::NotifySetUpMenuPCmd() and RSat::NotifySelectItemPCmd().
       
  3714 
       
  3715     RSat::TMenuItemBaseV1 provides methods to add and get the menu items, to
       
  3716     return the number of items, and to get a description of the menu's content.
       
  3717 
       
  3718     This class extends that functionality by providing support for text attributes
       
  3719     for the menu item text.
       
  3720 
       
  3721     For more details on how to read menu items, see RSat::TMenuItemBaseV1
       
  3722 
       
  3723     @see TMenuItemBaseV1
       
  3724     */
       
  3725 		{
       
  3726 	public:
       
  3727 		IMPORT_C TMenuItemBaseV5();
       
  3728 	public:
       
  3729 		using TMenuItemBaseV1::GetItem;
       
  3730 		using TMenuItemBaseV1::GetItemIcon;
       
  3731 
       
  3732 		IMPORT_C TInt GetItem	(TUint aIndex, TItem& aItem, TTextAttribute& aTextAttribute) const;
       
  3733 		IMPORT_C TInt GetItem	(TUint aIndex, TItem& aItem, TTextAttribute& aTextAttribute, TInt& aAction) const;
       
  3734 		IMPORT_C TInt GetItemIcon	(TUint aIndex, TItem& aItem, TTextAttribute& aTextAttribute, TInt& aIconId) const;
       
  3735 		IMPORT_C TInt GetItem	(TUint aIndex, TItem& aItem, TTextAttribute& aTextAttribute, TInt& aAction, TInt& aIconId) const;
       
  3736 
       
  3737 		using TMenuItemBaseV1::AddItem;
       
  3738 		using TMenuItemBaseV1::AddItemIcon;
       
  3739 
       
  3740 		IMPORT_C TInt AddItem (const TItem& aItem, const TTextAttribute& aTextAttribute);
       
  3741 		IMPORT_C TInt AddItem (const TItem& aItem, const TTextAttribute& aTextAttribute, TUint aAction);
       
  3742 		IMPORT_C TInt AddItemIcon (const TItem& aItem, const TTextAttribute& aTextAttribute, TUint aIconId);
       
  3743 		IMPORT_C TInt AddItem (const TItem& aItem, const TTextAttribute& aTextAttribute, TUint aAction, TUint aIconId);
       
  3744 		};
       
  3745 
       
  3746     //
       
  3747     //SET UP MENU
       
  3748     //
       
  3749 
       
  3750     class TSetUpMenuV1 : public TMenuItemBaseV1
       
  3751     /**
       
  3752     Contains a SET UP MENU proactive command issued by the UICC.   See ETSI TS
       
  3753     102 223 and RSat::NotifySetUpMenuPCmd() for more information about
       
  3754     the command.
       
  3755 
       
  3756     RSat::TSetUpMenuV1 derives from RSat::TMenuItemBaseV1, which provides the basic
       
  3757     mechanism to handle the menu items, item next actions and item icon IDs.
       
  3758 
       
  3759     Request notification for SET UP MENU with RSat::NotifySetUpMenuPCmd(),
       
  3760     passing it an object in which to store the command when it arrives.  Pass a
       
  3761     packaged version of the latest "TSetUpMenu" class. For Symbian OS 7.0s,
       
  3762     8.0 and 8.1 use RSat::TSetUpMenuV2Pckg, a packaged RSat::TSetUpMenuV2.
       
  3763     Use RSat::TSetUpMenuV1 with older versions of Symbian OS.  For later
       
  3764     versions of Symbian OS, check for an updated API (RSat::TSetUpMenuV3
       
  3765     etc).
       
  3766 
       
  3767     @see RSat::TSetUpMenuV2
       
  3768     @see RSat::TSetUpMenuV1Pckg
       
  3769     @see RSat::NotifySetUpMenuPCmd()
       
  3770     */
       
  3771         {
       
  3772     public:
       
  3773         IMPORT_C TSetUpMenuV1();
       
  3774     public:
       
  3775         TAlphaId iAlphaId;                  //< Alpha identifier that may contain text.  If so, this text is the title of the menu.
       
  3776         THelp iHelp;                        //< Determines whether help is available.
       
  3777         TIconId iIconId;                    //< Identifies the icon to display in the title of the menu.
       
  3778         TIconQualifier iIconListQualifier;  //< Icon list qualifier.
       
  3779         };
       
  3780 
       
  3781     /** A packaged RSat::TSetUpMenuV1. */
       
  3782     typedef TPckg<TSetUpMenuV1>  TSetUpMenuV1Pckg;
       
  3783 
       
  3784     enum TSelectionPreference
       
  3785     /**
       
  3786     A menu from SET UP MENU or SELECT ITEM can be marked as
       
  3787     RSat::ESoftKeyPreferred.  Then, if this feature is supported and the number
       
  3788     of icon items does not exceed the number of soft keys available then
       
  3789     display those icons as soft keys.
       
  3790     */
       
  3791         {
       
  3792         ESelectionPreferenceNotSet, //< Initialization value.
       
  3793         ENoSelectionPreference,     //< Use of soft keys is not required.
       
  3794         ESoftKeyPreferred           //< Use soft keys where appropriate.
       
  3795         };
       
  3796 
       
  3797 
       
  3798     class TSetUpMenuV2 : public TSetUpMenuV1
       
  3799     /**
       
  3800     Contains a SET UP MENU proactive command issued by the UICC.   See ETSI TS
       
  3801     102 223 and RSat::NotifySetUpMenuPCmd() for more information about
       
  3802     the command.
       
  3803 
       
  3804     RSat::TSetUpMenuV2 derives from RSat::TMenuItemBaseV1 and
       
  3805     RSat::TSetUpMenuV1.  RSat::TSetUpMenuV1 provides the basic mechanism to
       
  3806     handle the menu items, item next actions and item icon IDs.
       
  3807 
       
  3808     Request notification for SET UP MENU with RSat::NotifySetUpMenuPCmd(),
       
  3809     passing it an object in which to store the command when it arrives.  Pass a
       
  3810     packaged version of the latest "TSetUpMenu" class. For Symbian OS 7.0s,
       
  3811     8.0 and 8.1 use RSat::TSetUpMenuV2Pckg, a packaged RSat::TSetUpMenuV2.
       
  3812     Use RSat::TSetUpMenuV1 with older versions of Symbian OS.  For later
       
  3813     versions of Symbian OS, check for an updated API (RSat::TSetUpMenuV3
       
  3814     etc).
       
  3815 
       
  3816     @see RSat::TSetUpMenuV1
       
  3817     @see RSat::TSetUpMenuV2Pckg
       
  3818     @see RSat::NotifySetUpMenuPCmd()
       
  3819     */
       
  3820         {
       
  3821     public:
       
  3822         IMPORT_C TSetUpMenuV2();
       
  3823     public:
       
  3824         TSelectionPreference iPreference; //< Determines whether soft key is used with the menu, if available.
       
  3825         };
       
  3826 
       
  3827     /** A packaged RSat::TSetUpMenuV2. */
       
  3828     typedef TPckg<TSetUpMenuV2>  TSetUpMenuV2Pckg;
       
  3829 
       
  3830 	class TSetUpMenuV5 : public TMenuItemBaseV5
       
  3831     /**
       
  3832     Contains a SET UP MENU proactive command issued by the UICC.   See ETSI TS
       
  3833     102 223 and RSat::NotifySetUpMenuPCmd() for more information about
       
  3834     the command.
       
  3835 
       
  3836     RSat::TSetUpMenuV5 derives from RSat::TMenuItemBaseV5 and
       
  3837     RSat::TMenuItemBaseV1.  RSat::TMenuItemBaseV1 and RSat::TMenuItemBaseV5
       
  3838     provide the basic mechanism to handle the menu items, menu item text attributes,
       
  3839     item next actions and item icon IDs.
       
  3840 
       
  3841     Note that RSat::TSetUpMenuV5 does not derive from RSat::TSetUpMenuV2 and
       
  3842     RSat::TSetUpMenuV1 but contains all of the attributes present in these
       
  3843     two classes.
       
  3844 
       
  3845     Request notification for SET UP MENU with RSat::NotifySetUpMenuPCmd(),
       
  3846     passing it an object in which to store the command when it arrives.  Pass a
       
  3847     packaged version of the latest "TSetUpMenu" class. For Symbian OS 7.0s,
       
  3848     8.0 and 8.1 use RSat::TSetUpMenuV2Pckg, a packaged RSat::TSetUpMenuV2.
       
  3849     Use RSat::TSetUpMenuV1 with older versions of Symbian OS.
       
  3850     For Symbian OS 9.2, use RSat::TSetUpMenuV5.
       
  3851     For later versions of Symbian OS, check for an updated API (RSat::TSetUpMenuV6
       
  3852     etc).
       
  3853 
       
  3854     @see RSat::TMenuItemBaseV1
       
  3855     @see RSat::TMenuItemBaseV5
       
  3856     @see RSat::TSetUpMenuV5Pckg
       
  3857     @see RSat::NotifySetUpMenuPCmd()
       
  3858     */
       
  3859 		{
       
  3860 	public:
       
  3861 		IMPORT_C TSetUpMenuV5();
       
  3862 	public:
       
  3863 		TAlphaId iAlphaId;					//< Alpha identifier that may contain text.  If so, this text is the title of the menu.
       
  3864 		THelp iHelp;						//< Determines whether help is available.
       
  3865 		TIconId iIconId;					//< Identifies the icon to display in the title of the menu.
       
  3866 		TIconQualifier iIconListQualifier;	//< Icon list qualifier.
       
  3867 
       
  3868 		TSelectionPreference iPreference;	//< Determines whether soft key is used with the menu, if available.
       
  3869 		TTextAttribute iTextAttribute;  	//< Text attribute data for the alpha identifier.
       
  3870 		};
       
  3871 
       
  3872 	/** A packaged RSat::TSetUpMenuV5. */
       
  3873 	typedef TPckg<TSetUpMenuV5>  TSetUpMenuV5Pckg;
       
  3874 
       
  3875     IMPORT_C void NotifySetUpMenuPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  3876 
       
  3877     /** Cancels notification for a SET UP MENU proactive command. */
       
  3878     IMPORT_C void NotifySetUpMenuPCmdCancel() const;
       
  3879 
       
  3880 
       
  3881 
       
  3882     class TSetUpMenuRspV1 : public TSatPCmdBase
       
  3883     /**
       
  3884     Contains your response to a SET UP MENU proactive command.  Pass this to
       
  3885     the UICC with RSat::TerminalRsp(). See  RSat::NotifySetUpMenuPCmd() for
       
  3886     more information about the command.
       
  3887 
       
  3888     For Symbian OS versions up to and including  v8.1a and v8.1b pass
       
  3889     RSat::TerminalRsp() a RSat::TSetUpMenuRspV1Pckg (a packaged
       
  3890     TSetUpMenuRspV1). For later versions of Symbian OS, check for an updated
       
  3891     API (RSat::TSetUpMenuRspV2 etc).
       
  3892 
       
  3893     @see RSat::NotifySetUpMenuPCmd()
       
  3894     */
       
  3895         {
       
  3896     public:
       
  3897         IMPORT_C TSetUpMenuRspV1();
       
  3898     public:
       
  3899          /** General result of the proactive command. Set this as described in
       
  3900         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  3901         TPCmdResult iGeneralResult;
       
  3902 
       
  3903         /** If the value of iGeneralResult requires additional information,
       
  3904         set this to RSat::KMeProblem.  Otherwise set to
       
  3905         RSat::KNoAdditionalInfo. */
       
  3906         TUint iInfoType;
       
  3907 
       
  3908         /** Contains additional information associated with certain error codes
       
  3909         set in iGeneralResult. If the value in iGeneralResult does not require
       
  3910         any information then leave this field empty.*/
       
  3911         TAdditionalInfo iAdditionalInfo;
       
  3912         };
       
  3913 
       
  3914     /** A packaged RSat::TSetUpMenuRspV1. */
       
  3915     typedef TPckg<TSetUpMenuRspV1>  TSetUpMenuRspV1Pckg;
       
  3916 
       
  3917     //
       
  3918     //SELECT ITEM
       
  3919     //
       
  3920 
       
  3921     /** Part of the SELECT ITEM proactive command.  This describes the content
       
  3922     of the menu items. This is information is provided to help you display the
       
  3923     menu. */
       
  3924     enum TPresentationType
       
  3925         {
       
  3926         EPresentationTypeNotSet, //< Value used in constructor.
       
  3927         ENotSpecified,           //<Menu content type not specified
       
  3928         EDataValues,             //< The menu contains a choice of data values
       
  3929         ENavigationOptions       //< The menu contains a choice of navigation options
       
  3930         };
       
  3931 
       
  3932 
       
  3933     class TSelectItemV1 : public TMenuItemBaseV1
       
  3934     /**
       
  3935     Contains a SELECT ITEMS proactive command issued by the UICC.   See ETSI TS
       
  3936     102 223 and RSat::NotifySelectItemPCmd() for more information about
       
  3937     the command.
       
  3938 
       
  3939     RSat::TSelectItemV1 derives from RSat::TMenuItemBaseV1 which provides the
       
  3940     basic mechanism to handle the menu items, item next actions and item icon
       
  3941     IDs.
       
  3942 
       
  3943     Request notification for SELECT ITEM with RSat::NotifySelectItemPCmd(),
       
  3944     passing it an object in which to store the command when it arrives.  Pass a
       
  3945     packaged version of the latest "TSelectItem" class. For Symbian OS 7.0s,
       
  3946     8.0 and 8.1 use RSat::TSelectItemV2Pckg, a packaged RSat::TSelectItemV2.
       
  3947     Use RSat::TSelectItemV1 with older versions of Symbian OS.  For later
       
  3948     versions of Symbian OS, check for an updated API (RSat::TSelectItemV3
       
  3949     etc).
       
  3950 
       
  3951     @see RSat::TSelectItemV2
       
  3952     @see RSat::TSelectItemV1Pckg
       
  3953     @see RSat::NotifySelectItemPCmd()
       
  3954     */
       
  3955         {
       
  3956     public:
       
  3957         IMPORT_C TSelectItemV1();
       
  3958     public:
       
  3959         TPresentationType iPresentationType;//< Describes the menu's content type, which may aid presentation.
       
  3960         TAlphaId iAlphaId;                  //< Alpha identifier that may contain text.  If so, this text is the title of the menu.
       
  3961         THelp iHelp;                        //< Determines whether help is available.
       
  3962         TUint8 iDefaultItemId;              //< ID of the default menu item.
       
  3963         TIconId iIconId;                    //< Identifies the icon to display in the title of the menu.
       
  3964         TIconQualifier iIconListQualifier;  //< Icon list qualifier.
       
  3965         };
       
  3966 
       
  3967     /** A packaged RSat::TSelectItemV1. */
       
  3968     typedef TPckg<TSelectItemV1>  TSelectItemV1Pckg;
       
  3969 
       
  3970 
       
  3971     class TSelectItemV2 : public TSelectItemV1
       
  3972     /**
       
  3973     Contains a SELECT ITEM proactive command issued by the UICC.   See ETSI TS
       
  3974     102 223 and RSat::NotifySelectItemPCmd() for more information about
       
  3975     the command.
       
  3976 
       
  3977     RSat::TSelectItemV2 derives from RSat::TSelectItemV1 and
       
  3978     RSat::TMenuItemBaseV1. RSat::TMenuItemBaseV1 provides the basic mechanism
       
  3979     to handle the menu items, item next actions and item icon IDs.
       
  3980 
       
  3981     Request notification for SELECT ITEM with RSat::NotifySelectItemPCmd(),
       
  3982     passing it an object in which to store the command when it arrives.  Pass a
       
  3983     packaged version of the latest "TSelectItem" class. For Symbian OS 7.0s,
       
  3984     8.0 and 8.1 use RSat::TSelectItemV2Pckg, a packaged RSat::TSelectItemV2.
       
  3985     Use RSat::TSelectItemV1 with older versions of Symbian OS.  For later
       
  3986     versions of Symbian OS, check for an updated API (RSat::TSelectItemV3
       
  3987     etc).
       
  3988 
       
  3989     @see RSat::TSelectItemV1
       
  3990     @see RSat::TSelectItemV2Pckg
       
  3991     @see RSat::NotifySelectItemPCmd()
       
  3992     */
       
  3993     	{
       
  3994     public:
       
  3995         IMPORT_C TSelectItemV2();
       
  3996     public:
       
  3997         TSelectionPreference iPreference; //< Determines whether soft key is used with the menu, if available.
       
  3998         };
       
  3999 
       
  4000     /** A packaged RSat::TSelectItemV2. */
       
  4001     typedef TPckg<TSelectItemV2>  TSelectItemV2Pckg;
       
  4002 
       
  4003 	class TSelectItemV5 : public TMenuItemBaseV5
       
  4004     /**
       
  4005     Contains a SELECT ITEM proactive command issued by the UICC.   See ETSI TS
       
  4006     102 223 and RSat::NotifySelectItemPCmd() for more information about
       
  4007     the command.
       
  4008 
       
  4009     RSat::TSelectItemV5 derives from RSat::TMenuItemBaseV5 and
       
  4010     RSat::TMenuItemBaseV1. RSat::TMenuItemBaseV1 and
       
  4011     RSat::TMenuItemBaseV5 provide the basic mechanism to handle
       
  4012     the menu items, text attributes, item next actions and item icon
       
  4013     IDs.
       
  4014 
       
  4015     Note that although RSat::TSelectItemV5 does not derive from
       
  4016     RSat::TSelectItemV2 and RSat::TSelectItemV1, it contains all of
       
  4017     the parameters present in those two classes and is hence
       
  4018     backwards compatible with both.
       
  4019 
       
  4020     Request notification for SELECT ITEM with RSat::NotifySelectItemPCmd(),
       
  4021     passing it an object in which to store the command when it arrives.
       
  4022     Pass a packaged version of the latest "TSelectItem" class.
       
  4023     For Symbian OS 7.0s, 8.0 and 8.1 use RSat::TSelectItemV2Pckg,
       
  4024     a packaged RSat::TSelectItemV2.  Use RSat::TSelectItemV1 with
       
  4025     older versions of Symbian OS.  For Symbian OS version 9.2,
       
  4026     use RSat::TSelectItemV5Pckg.  For later versions of Symbian OS,
       
  4027     check for an updated API (RSat::TSelectItemV6 etc.).
       
  4028 
       
  4029     @see RSat::TMenuItemBaseV1
       
  4030     @see RSat::TMenuItemBaseV5
       
  4031     @see RSat::TSelectItemV5Pckg
       
  4032     @see RSat::NotifySelectItemPCmd()
       
  4033     */
       
  4034 		{
       
  4035 	public:
       
  4036 		IMPORT_C TSelectItemV5();
       
  4037 	public:
       
  4038 		TPresentationType iPresentationType;//< Describes the menu's content type, which may aid presentation.
       
  4039 		TAlphaId iAlphaId;                  //< Alpha identifier that may contain text.  If so, this text is the title of the menu.
       
  4040 		THelp iHelp;                        //< Determines whether help is available.
       
  4041 		TUint8 iDefaultItemId;              //< ID of the default menu item.
       
  4042 		TIconId iIconId;                    //< Identifies the icon to display in the title of the menu.
       
  4043 		TIconQualifier iIconListQualifier;  //< Icon list qualifier.
       
  4044 
       
  4045 		TSelectionPreference iPreference; 	//< Determines whether soft key is used with the menu, if available.
       
  4046 		TTextAttribute iTextAttribute;      //< Text attribute data for the alpha identifier.
       
  4047 		};
       
  4048 
       
  4049     /** A packaged RSat::TSelectItemV5. */
       
  4050     typedef TPckg<TSelectItemV5>  TSelectItemV5Pckg;
       
  4051 
       
  4052 	class TSelectItemV6 : public TSelectItemV5
       
  4053     /**
       
  4054     Contains a SELECT ITEM proactive command issued by the UICC.   See ETSI TS
       
  4055     102 223 and RSat::NotifySelectItemPCmd() for more information about
       
  4056     the command.
       
  4057 
       
  4058     RSat::TSelectItemV6 derives from RSat::TSelectItemV5.
       
  4059     RSat::TSelectItemV5 derives from RSat::TMenuItemBaseV5 and
       
  4060     RSat::TMenuItemBaseV1. RSat::TMenuItemBaseV1 and
       
  4061     RSat::TMenuItemBaseV5 provide the basic mechanism to handle
       
  4062     the menu items, text attributes, item next actions and item icon
       
  4063     IDs.
       
  4064     
       
  4065     Request notification for SELECT ITEM with RSat::NotifySelectItemPCmd(),
       
  4066     passing it an object in which to store the command when it arrives.
       
  4067     Pass a packaged version of the latest "TSelectItem" class.
       
  4068     For Symbian OS 7.0s, 8.0 and 8.1 use RSat::TSelectItemV2Pckg,
       
  4069     a packaged RSat::TSelectItemV2.  Use RSat::TSelectItemV1 with
       
  4070     older versions of Symbian OS.  For Symbian OS version 9.2,
       
  4071     use RSat::TSelectItemV5Pckg.For Symbian OS version 9.4,
       
  4072     use RSat::TSelectItemV6Pckg. For later versions of Symbian OS,
       
  4073     check for an updated API (RSat::TSelectItemV7 etc.).
       
  4074 
       
  4075     @see RSat::TSelectItemV5
       
  4076     @see RSat::TSelectItemV6Pckg
       
  4077     @see RSat::NotifySelectItemPCmd()
       
  4078     */
       
  4079 		{
       
  4080 	public:
       
  4081 		IMPORT_C TSelectItemV6();
       
  4082 	public:
       
  4083 		TUint8 iFrameId;      //<  Each frame has an ID. This field contains the ID of the frame. 
       
  4084 		};
       
  4085 
       
  4086     /** A packaged RSat::TSelectItemV6. */
       
  4087     typedef TPckg<TSelectItemV6>  TSelectItemV6Pckg;
       
  4088     
       
  4089     IMPORT_C void NotifySelectItemPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  4090 
       
  4091     class TSelectItemRspV1 : public TSatPCmdBase
       
  4092     /**
       
  4093     Contains your response to a SELECT ITEM proactive command.  Pass this to
       
  4094     the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and
       
  4095     RSat::NotifySelectItemPCmd() for more information about the command.
       
  4096 
       
  4097     For Symbian OS versions up to and including  v8.1a and v8.1b pass
       
  4098     RSat::TerminalRsp() a RSat::TSelectItemRspV1Pckg (a packaged
       
  4099     TSelectItemRspV1). For later versions of Symbian OS, check for an updated
       
  4100     API (RSat::TSelectItemRspV2 etc).
       
  4101 
       
  4102     @see RSat::NotifySelectItemPCmd()
       
  4103     */
       
  4104         {
       
  4105     public:
       
  4106         IMPORT_C TSelectItemRspV1();
       
  4107     public:
       
  4108          /** General result of the proactive command. Set this as described in
       
  4109         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  4110         TPCmdResult iGeneralResult;
       
  4111 
       
  4112         /** Set to RSat::KItemIdentifier when returning the user's choice.
       
  4113         Some error values of iGeneralResult require additional information, in
       
  4114         which case set this to RSat::KMeProblem.  Otherwise set to
       
  4115         RSat::KNoAdditionalInfo. */
       
  4116         TUint iInfoType;
       
  4117 
       
  4118         /** Contains the user's chosen menu item.  Alternatively, some error
       
  4119         values for iGeneralResult require additional information, which goes
       
  4120         here. */
       
  4121         TAdditionalInfo iAdditionalInfo;
       
  4122         };
       
  4123 
       
  4124     /** A packaged RSat::TSelectItemRspV1. */
       
  4125     typedef TPckg<TSelectItemRspV1>  TSelectItemRspV1Pckg;
       
  4126 
       
  4127 
       
  4128     //
       
  4129     // SEND SHORT MESSAGE
       
  4130     //
       
  4131     class TSendSmV1 : public TSatPCmdBase
       
  4132     /**
       
  4133     Contains a SEND SHORT MESSAGE proactive command issued by the UICC.   See
       
  4134     ETSI TS 102 223 and RSat::NotifySendSmPCmd() for more information about
       
  4135     the command.
       
  4136 
       
  4137     Request notification for SEND SHORT MESSAGE with RSat::NotifySendSmPCmd(),
       
  4138     passing it an object in which to store the command when it arrives.  Pass a
       
  4139     packaged version of the  latest "TSendSm" class. For Symbian OS versions up
       
  4140     to and including v8.1a and 8.1b use RSat::TSendSmV1Pckg, a packged
       
  4141     RSat::TSendSmV1.  For later versions of Symbian OS, check for an updated
       
  4142     API (RSat::TSendSmV2 etc).
       
  4143 
       
  4144     @see RSat::TSendSmV1Pckg
       
  4145     @see RSat::NotifySendSmPCmd()
       
  4146     */
       
  4147         {
       
  4148     public:
       
  4149         IMPORT_C TSendSmV1();
       
  4150     public:
       
  4151         TAlphaId iAlphaId; //< An alpha identifier containing text to display.
       
  4152         TAddress iAddress; //< The address of the message recipient.
       
  4153         TTpdu iSmsTpdu;    //< The SMS message itself.
       
  4154         TIconId iIconId;   //< An icon to display.
       
  4155         };
       
  4156 
       
  4157     /** A packaged RSat::TSendSmV1. */
       
  4158     typedef TPckg<TSendSmV1>  TSendSmV1Pckg;
       
  4159 
       
  4160 	class TSendSmV5 : public TSendSmV1
       
  4161 	/**
       
  4162 	Contains a SEND SHORT MESSAGE proactive command issued by the UICC.   See
       
  4163 	ETSI TS 102 223 and RSat::NotifySendSmPCmd() for more information about
       
  4164 	the command.
       
  4165 
       
  4166 	Request notification for SEND SHORT MESSAGE with RSat::NotifySendSmPCmd(),
       
  4167 	passing it an object in which to store the command when it arrives.  Pass a
       
  4168 	packaged version of the latest "TSendSm" class. For Symbian OS versions up
       
  4169 	to and including v8.1a and 8.1b use RSat::TSendSmV1Pckg, a packged
       
  4170 	RSat::TSendSmV1. For Symbian OS 9.2, use RSat::TSendSmV5Pckg.
       
  4171 	For later versions of Symbian OS, check for an updated
       
  4172 	API (RSat::TSendSmV6 etc).
       
  4173 
       
  4174 	@see RSat::TSendSmV5Pckg
       
  4175 	@see RSat::NotifySendSmPCmd()
       
  4176 	*/
       
  4177 		{
       
  4178 	public:
       
  4179 		IMPORT_C TSendSmV5();
       
  4180 
       
  4181 	public:
       
  4182 		/** Contains formatting information to be applied when
       
  4183 		RSat::TSendSmV1::iAlphaId is displayed.
       
  4184 		@see RSat::TTextAttribute 
       
  4185 		*/
       
  4186 		TTextAttribute iTextAttribute;
       
  4187 		};
       
  4188 
       
  4189 	/** A packaged RSat::TSendSmV5. */
       
  4190 	typedef TPckg<TSendSmV5>  TSendSmV5Pckg;
       
  4191 
       
  4192 	class TSendSmV6 : public TSendSmV5
       
  4193 	/**
       
  4194 	Contains a SEND SHORT MESSAGE proactive command issued by the UICC.   See
       
  4195 	ETSI TS 102 223 and RSat::NotifySendSmPCmd() for more information about
       
  4196 	the command.
       
  4197 
       
  4198 	Request notification for SEND SHORT MESSAGE with RSat::NotifySendSmPCmd(),
       
  4199 	passing it an object in which to store the command when it arrives.  Pass a
       
  4200 	packaged version of the latest "TSendSm" class. For Symbian OS versions up
       
  4201 	to and including v8.1a and 8.1b use RSat::TSendSmV1Pckg, a packged
       
  4202 	RSat::TSendSmV1. For Symbian OS 9.2, use RSat::TSendSmV5Pckg.
       
  4203 	For Symbian OS 9.4, use RSat::TSendSmV6Pckg.
       
  4204 	For later versions of Symbian OS, check for an updated
       
  4205 	API (RSat::TSendSmV7 etc).
       
  4206 
       
  4207 	@see RSat::TSendSmV6Pckg
       
  4208 	@see RSat::NotifySendSmPCmd()
       
  4209 
       
  4210 	*/
       
  4211 		{
       
  4212 	public:
       
  4213 		IMPORT_C TSendSmV6();
       
  4214 
       
  4215 	public:
       
  4216 		TUint8 iFrameId; //<  Each frame has an ID. This field contains the ID of the frame. 
       
  4217 		};
       
  4218 
       
  4219 	/** A packaged RSat::TSendSmV6. */
       
  4220 	typedef TPckg<TSendSmV6>  TSendSmV6Pckg;
       
  4221     IMPORT_C void NotifySendSmPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  4222 
       
  4223 
       
  4224     class TSendSmRspV1 : public TSatPCmdBase
       
  4225     /**
       
  4226     Contains your response to a SEND SHORT MESSAGE proactive command.  Pass
       
  4227     this to the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and
       
  4228     RSat::NotifySendSmPCmd() for more information about the command.
       
  4229 
       
  4230     For Symbian OS versions up to and including  v8.1a and v8.1b pass
       
  4231     RSat::TerminalRsp() a RSat::TSendSmRspV1Pckg (a packaged TSendSmRspV1).
       
  4232     For later versions of Symbian OS, check for an updated API
       
  4233     (RSat::TSendSmRspV2 etc).
       
  4234 
       
  4235     @see RSat::NotifySendSmPCmd()
       
  4236     */
       
  4237         {
       
  4238     public:
       
  4239         IMPORT_C TSendSmRspV1();
       
  4240     public:
       
  4241          /** General result of the proactive command. Set this as described in
       
  4242         ETSI TS 102 223. */
       
  4243         TPCmdResult iGeneralResult;
       
  4244 
       
  4245         /** If the value of iGeneralResult requires additional information,
       
  4246         set this to RSat::KMeProblem.  To return a network error,
       
  4247         set this KSatNetworkErrorInfo.  Otherwise set to
       
  4248         RSat::KNoAdditionalInfo. */
       
  4249         TUint iInfoType;
       
  4250 
       
  4251         /** Contains additional information associated with certain error codes
       
  4252         set in iGeneralResult. If you get an error from the network, you can
       
  4253         return it in here, setting iInfoType to KSatNetworkErrorInfo. If the
       
  4254         value in iGeneralResult does not require any information then leave
       
  4255         this field empty.*/
       
  4256         TAdditionalInfo iAdditionalInfo;
       
  4257         };
       
  4258 
       
  4259     /** A packaged RSat::TSendSmRspV1. */
       
  4260     typedef TPckg<TSendSmRspV1>  TSendSmRspV1Pckg;
       
  4261 
       
  4262     //
       
  4263     // Send SMS no logging permitted
       
  4264     //
       
  4265     class TSatSmsV1: public TSatPCmdBase
       
  4266     /**
       
  4267     Parameters for a RSat::SendMessageNoLogging() message.
       
  4268     */
       
  4269         {
       
  4270     public:
       
  4271         IMPORT_C TSatSmsV1();
       
  4272     public:
       
  4273         TTpdu iBuf;             //< SMS TPDU
       
  4274         TAddress iServiceCenter;//< If iServiceCenter is a null buffer then use the default sc address
       
  4275         };
       
  4276 
       
  4277     /** A packaged RSat::TSendSmRspV1. */
       
  4278     typedef TPckg<TSatSmsV1> TSatSmsV1Pckg;
       
  4279 
       
  4280     IMPORT_C void SendMessageNoLogging(TRequestStatus& aReqStatus, const TDesC8& aMsg, TUint16& aMsgRef) const;
       
  4281 
       
  4282     //
       
  4283     // SEND SS (Supplementary Service pro-active command).
       
  4284     //
       
  4285 
       
  4286     class TSendSsV1 : public TSatPCmdBase
       
  4287     /**
       
  4288     Contains a SEND SS (Supplementary Service) proactive command issued by the
       
  4289     UICC.   See ETSI TS 102 223 and RSat::NotifySendSsPCmd() for more
       
  4290     information about the command.
       
  4291 
       
  4292     Request notification for SEND SS with RSat::NotifySendSsPCmd(), passing
       
  4293     it an object in which to store the command when it arrives.  Pass a
       
  4294     packaged version of the  latest "TSendSs" class. For Symbian OS versions
       
  4295     up to and including v8.1a and 8.1b use RSat::TSendSsV1Pckg, a packaged
       
  4296     RSat:TSendSsV1.  For later versions of Symbian OS, check for an updated
       
  4297     API (RSat::TSendSsV2 etc).
       
  4298 
       
  4299     @see RSat::TSendSsV1Pckg
       
  4300     @see RSat::NotifySendSsPCmd()
       
  4301     */
       
  4302         {
       
  4303     public:
       
  4304         IMPORT_C TSendSsV1();
       
  4305     public:
       
  4306         TAlphaId iAlphaId;   //< An alpha identifier containing text to display.
       
  4307         TSsString iSsString; //< The supplementary services string.
       
  4308         TIconId iIconId;     //< An icon to display.
       
  4309         };
       
  4310 
       
  4311     /** A packaged RSat::TSendSsV1. */
       
  4312     typedef TPckg<TSendSsV1>  TSendSsV1Pckg;
       
  4313 
       
  4314    class TSendSsV6 : public TSendSsV1
       
  4315     /**
       
  4316     Contains a SEND SS (Supplementary Service) proactive command issued by the
       
  4317     UICC.   See ETSI TS 102 223 and RSat::NotifySendSsPCmd() for more
       
  4318     information about the command.
       
  4319 
       
  4320     Request notification for SEND SS with RSat::NotifySendSsPCmd(), For Symbian OS versions
       
  4321     up to and including v8.1a and 8.1b use RSat::TSendSsV1Pckg, a packaged RSat:TSendSsV1. 
       
  4322     For Symbian OS v9.4, use RSat::TSendSsV6. For later versions of Symbian OS, check for 
       
  4323     an updated API (RSat::TSendSsV7 etc).
       
  4324 
       
  4325     @see RSat::TSendSsV6Pckg
       
  4326     @see RSat::NotifySendSsPCmd()
       
  4327   
       
  4328     */
       
  4329         {
       
  4330     public:
       
  4331         IMPORT_C TSendSsV6();
       
  4332     public:
       
  4333     	/** Contains formatting information to be applied when
       
  4334 		RSat::TSendSsV1::iAlphaId is displayed.
       
  4335 		@see RSat::TTextAttribute 
       
  4336 		*/
       
  4337 		TTextAttribute iTextAttribute;
       
  4338         };
       
  4339 
       
  4340     /** A packaged RSat::TSendSsV6. */
       
  4341     typedef TPckg<TSendSsV6>  TSendSsV6Pckg;
       
  4342     
       
  4343     IMPORT_C void NotifySendSsPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  4344 
       
  4345 
       
  4346     class TSendSsRspV1 : public TSatPCmdBase
       
  4347     /**
       
  4348     Contains your response to a SEND SS proactive command.  Pass this to
       
  4349     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  4350     102 223 and RSat::NotifySendSsPCmd() for more information about
       
  4351     the command.
       
  4352 
       
  4353     For Symbian OS v6.1 or v7.0 pass RSat::TerminalRsp() a
       
  4354     RSat::TSendSsRspV1Pckg (a packaged TSendSsRspV1). For versions up to and
       
  4355     including v8.1a and v8.1b use RSat::TSendSsRspV2. For later versions of
       
  4356     Symbian OS, check for an updated API (RSat::TSendSsRspV3 etc).
       
  4357 
       
  4358     @see RSat::NotifySendSsPCmd()
       
  4359     */
       
  4360         {
       
  4361     public:
       
  4362         IMPORT_C TSendSsRspV1();
       
  4363     public:
       
  4364          /** General result of the proactive command. Set this as described in
       
  4365         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  4366         TPCmdResult iGeneralResult;
       
  4367         TUint iInfoType;                    //< Additional info type
       
  4368         TAdditionalInfo iAdditionalInfo;    //< Additional info
       
  4369 
       
  4370          /** General result of the proactive command. Set this as described in
       
  4371         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  4372         TPCmdResult iGeneralResult2;
       
  4373 
       
  4374         TUint iInfoType2;                   //< Second additional info type
       
  4375         TAdditionalInfo iAdditionalInfo2;   //< Second additional info
       
  4376         TCallControlV1 iCcRequestedAction;  //< Action requested by the call control procedure.
       
  4377         };
       
  4378 
       
  4379     /** A packaged RSat::TSendSsRspV1. */
       
  4380     typedef TPckg<TSendSsRspV1>  TSendSsRspV1Pckg;
       
  4381 
       
  4382 
       
  4383     class TSendSsRspV2 : public TSendSsRspV1
       
  4384     /**
       
  4385     Contains your response to a SEND SS proactive command.  Pass this to
       
  4386     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  4387     102 223 and RSat::NotifySendSsPCmd() for more information about
       
  4388     the command.
       
  4389 
       
  4390     For Symbian OS v6.1 or v7.0 pass RSat::TerminalRsp() a
       
  4391     RSat::TSendSsRspV1Pckg (a packaged TSendSsRspV1). For versions up to and
       
  4392     including v8.1a and v8.1b use RSat::TSendSsRspV2. For later versions of
       
  4393     Symbian OS, check for an updated API (RSat::TSendSsRspV3 etc).
       
  4394 
       
  4395     @see RSat::NotifySendSsPCmd()
       
  4396     */
       
  4397         {
       
  4398     public:
       
  4399         IMPORT_C TSendSsRspV2();
       
  4400     public:
       
  4401         TUssdString iUssdString;    //< Text returned within the Return Result message from the network.
       
  4402         };
       
  4403 
       
  4404     /** A packaged RSat::TSendSsRspV2. */
       
  4405     typedef TPckg<TSendSsRspV2>  TSendSsRspV2Pckg;
       
  4406 
       
  4407     //
       
  4408     // SEND USSD (Unstructured Supplementary Service Data)
       
  4409     //
       
  4410 
       
  4411     class TSendUssdV1 : public TSatPCmdBase
       
  4412     /**
       
  4413     Contains a SEND USSD (Unstructured Supplementary Service Data) proactive
       
  4414     command issued by the UICC.   See ETSI TS 102 223 and
       
  4415     RSat::NotifySendUssdPCmd() for more information about the command.
       
  4416 
       
  4417     Request notification for SEND USSD with RSat::NotifySendUssdPCmd(), passing
       
  4418     it an object in which to store the command when it arrives.  Pass a
       
  4419     packaged version of the  latest "TSendUssd" class. For Symbian OS versions
       
  4420     up to and including v8.1a and 8.1b use RSat::TSendUssdV1Pckg, a packaged
       
  4421     RSat::TSendUssdV1.  For later versions of Symbian OS, check for an updated
       
  4422     API (RSat::TSendUssdV2 etc).
       
  4423 
       
  4424     @see RSat::TSendUssdV1Pckg
       
  4425     @see RSat::NotifySendUssdPCmd()
       
  4426     */
       
  4427        {
       
  4428     public:
       
  4429         IMPORT_C TSendUssdV1();
       
  4430     public:
       
  4431         TAlphaId iAlphaId;       //< An alpha identifier containing text to display.
       
  4432         TUssdString iUssdString; //< The Unstructured Supplementary Service Data (USSD) string.
       
  4433         TIconId iIconId;         //< An icon to display.
       
  4434         };
       
  4435 
       
  4436     /** A packaged RSat::TSendUssdV1. */
       
  4437     typedef TPckg<TSendUssdV1>  TSendUssdV1Pckg;
       
  4438 
       
  4439     class TSendUssdV6 : public TSendUssdV1
       
  4440     /**
       
  4441     Contains a SEND USSD (Unstructured Supplementary Service Data) proactive
       
  4442     command issued by the UICC.   See ETSI TS 102 223 and
       
  4443     RSat::NotifySendUssdPCmd() for more information about the command.
       
  4444 
       
  4445     Request notification for SEND USSD with RSat::NotifySendUssdPCmd(), For Symbian OS versions
       
  4446     up to and including v8.1a and 8.1b use RSat::TSendUssdV1Pckg, a packaged RSat:TSendUssdV1. 
       
  4447     For Symbian OS v9.4, use RSat::TSendUssdV6Pckg, a packaged RSat:TSendUssdV6. For later versions of Symbian OS, check for 
       
  4448     an updated API (RSat::TSendUssdV7 etc). 
       
  4449     @see RSat::TSendUssdV6Pckg
       
  4450     @see RSat::NotifySendUssdPCmd()
       
  4451     
       
  4452     */
       
  4453        {
       
  4454     public:
       
  4455         IMPORT_C TSendUssdV6();
       
  4456     public:
       
  4457     	/** Contains formatting information to be applied when
       
  4458 		RSat::TSendUssdV1::iAlphaId is displayed.
       
  4459 		@see RSat::TTextAttribute 
       
  4460 		*/
       
  4461 		TTextAttribute iTextAttribute;
       
  4462         };
       
  4463 
       
  4464     /** A packaged RSat::TSendUssdV1. */
       
  4465     typedef TPckg<TSendUssdV6>  TSendUssdV6Pckg;
       
  4466     
       
  4467     IMPORT_C void NotifySendUssdPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  4468 
       
  4469 
       
  4470     class TSendUssdRspV1 : public TSatPCmdBase
       
  4471     /**
       
  4472     Contains your response to a SEND USSD proactive command.  Pass this to
       
  4473     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  4474     102 223 and RSat::NotifySendUssdPCmd() for more information about
       
  4475     the command.
       
  4476 
       
  4477     For Symbian OS versions up to and including  v8.1a and v8.1b pass
       
  4478     RSat::TerminalRsp() a RSat::TSendUssdRspV1Pckg (a packaged TSendUssdRspV1).
       
  4479     For later versions of Symbian OS, check for an updated API
       
  4480     (RSat::TSendUssdRspV2 etc).
       
  4481 
       
  4482     @see RSat::NotifySendUssdPCmd()
       
  4483     */
       
  4484         {
       
  4485     public:
       
  4486         IMPORT_C TSendUssdRspV1();
       
  4487     public:
       
  4488          /** General result of the proactive command. Set this as described in
       
  4489         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  4490         TPCmdResult iGeneralResult;
       
  4491 
       
  4492         TUint iInfoType;                    //< Additional info type
       
  4493         TAdditionalInfo iAdditionalInfo;    //< Additional info
       
  4494 
       
  4495          /** General result of the proactive command. Set this as described in
       
  4496         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  4497         TPCmdResult iGeneralResult2;
       
  4498 
       
  4499         TUint iInfoType2;                   //< Second additional info type
       
  4500         TAdditionalInfo iAdditionalInfo2;   //< Second additional info
       
  4501         TUssdString iUssdString;            //< USSD string
       
  4502         TCallControlV1 iCcRequestedAction;  //< Action requested by the call control procedure.
       
  4503         };
       
  4504 
       
  4505     /** A packaged RSat::TSendUssdRspV1. */
       
  4506     typedef TPckg<TSendUssdRspV1>  TSendUssdRspV1Pckg;
       
  4507 
       
  4508     //
       
  4509     // SET UP CALL
       
  4510     //
       
  4511     enum TSetUpCallType
       
  4512     /** Part of a SET UP CALL proactive command.  Determines the conditions
       
  4513     under which a call should be set up.
       
  4514     @see RSat::TSetUpCallV1
       
  4515     */
       
  4516         {
       
  4517         ESetUpCallTypeNotSet,            //< Value used in constructor.
       
  4518         EOnlyIfNotBusy,                  //< Only make the call if line is not busy.
       
  4519         EOnlyIfNotBusyWithRedial,        //< Only make the call if line is not busy. Redial if call cannot be made the first time.
       
  4520         EHoldOtherCalls,                 //< Put other calls on hold then make the call.
       
  4521         EHoldOtherCallsWithRedial,       //< Put other calls on hold then make the call. Redial if call cannot be made the first time.
       
  4522         EDisconnectOtherCalls,           //< Disconnect other calls then make the call.
       
  4523         EDisconnectOtherCallsWithRedial  //< Disconnect other calls then make the call. Redial if call cannot be made the first time.
       
  4524         };
       
  4525 
       
  4526 
       
  4527     class TSetUpCallV1 : public TSatPCmdBase
       
  4528     /**
       
  4529     Contains a SET UP CALL proactive command issued by the UICC.   See
       
  4530     ETSI TS 102 223 and RSat::NotifySetUpCallPCmd() for more information about
       
  4531     the command.
       
  4532 
       
  4533     Request notification for SET UP CALL with RSat::NotifySetUpCallPCmd(), passing
       
  4534     it an object in which to store the command when it arrives.  Pass a
       
  4535     packaged version of the  latest "TSetUpCall" class. For Symbian OS versions
       
  4536     up to and including v8.1a and 8.1b use RSat::TSetUpCallV1Pckg, a packaged
       
  4537     RSat::TSetUpCallV1.  For later versions of Symbian OS, check for an updated
       
  4538     API (RSat::TSetUpCallV2 etc).
       
  4539 
       
  4540     @see RSat::TSetUpCallV1Pckg
       
  4541     @see RSat::NotifySetUpCallPCmd()
       
  4542     */
       
  4543         {
       
  4544     public:
       
  4545         IMPORT_C TSetUpCallV1();
       
  4546     public:
       
  4547         /** Determines whether you re-dial if initial attempts to make the call fail.
       
  4548         Plus, determines what to do if there is already a call in progress. */
       
  4549         TSetUpCallType iType;
       
  4550         TAlphaId iAlphaIdConfirmationPhase; //< Some text for the confirmation phase.
       
  4551         TIconId iIconIdConfirmationPhase;   //< An icon for the confirmation phase.
       
  4552         TAddress iAddress;                  //< The number to call.
       
  4553         TCcp iCapabilityConfigParams;       //< Capability configuration parameters.
       
  4554         TSubAddress iSubAddress;            //< The sub-address of the remote party.
       
  4555         TDuration iDuration;                //< Determines how long you should you try to re-dial.
       
  4556         TAlphaId iAlphaIdCallSetUpPhase;    //< Some text for the call set up phase.
       
  4557         TIconId iIconIdCallSetUpPhase;      //< An icon for the call set up phase.
       
  4558         };
       
  4559 
       
  4560     /** A packaged RSat::TSetUpCallV1. */
       
  4561     typedef TPckg<TSetUpCallV1>  TSetUpCallV1Pckg;
       
  4562 
       
  4563 	class TSetUpCallV5 : public TSetUpCallV1
       
  4564 	/**
       
  4565 	Contains a SET UP CALL proactive command issued by the UICC.   See
       
  4566 	ETSI TS 102 223 and RSat::NotifySetUpCallPCmd() for more information about
       
  4567 	the command.
       
  4568 
       
  4569 	Request notification for SET UP CALL with RSat::NotifySetUpCallPCmd(), passing
       
  4570 	it an object in which to store the command when it arrives.  Pass a
       
  4571 	packaged version of the  latest "TSetUpCall" class. For Symbian OS versions
       
  4572 	up to and including v8.1a and 8.1b use RSat::TSetUpCallV1Pckg, a packaged
       
  4573 	RSat::TSetUpCallV1.  For Symbian OS 9.2, use RSat::TSetUpCallV5Pckg.
       
  4574 	For later versions of Symbian OS, check for an updated
       
  4575 	API (RSat::TSetUpCallV6 etc).
       
  4576 
       
  4577 	@see RSat::TSetUpCallV1
       
  4578 	@see RSat::TSetUpCallV5Pckg
       
  4579 	@see RSat::NotifySetUpCallPCmd()
       
  4580 	*/
       
  4581 		{
       
  4582 	public:
       
  4583 		IMPORT_C TSetUpCallV5();
       
  4584 
       
  4585 	public:
       
  4586 		/** Contains formatting information to be applied when
       
  4587 		RSat::TSetUpCallV1::iAlphaIdConfirmationPhase is displayed. 
       
  4588 		@see RSat::TTextAttribute
       
  4589 		*/
       
  4590 		TTextAttribute iTextAttributeConfirmationPhase;
       
  4591 
       
  4592 		/** Contains formatting information to be applied when
       
  4593 		RSat::TSetUpCallV1::iAlphaIdCallSetUpPhase is displayed. 
       
  4594 		@see RSat::TTextAttribute
       
  4595 		*/
       
  4596 		TTextAttribute iTextAttributeCallSetUpPhase;
       
  4597 		};
       
  4598 
       
  4599 	/** A packaged RSat::TSetUpCallV5. */
       
  4600 	typedef TPckg<TSetUpCallV5>  TSetUpCallV5Pckg;
       
  4601 
       
  4602 	class TSetUpCallV6 : public TSetUpCallV5
       
  4603 	/**
       
  4604 	Contains a SET UP CALL proactive command issued by the UICC.   See
       
  4605 	ETSI TS 102 223 and RSat::NotifySetUpCallPCmd() for more information about
       
  4606 	the command.
       
  4607 
       
  4608 	Request notification for SET UP CALL with RSat::NotifySetUpCallPCmd(), passing
       
  4609 	it an object in which to store the command when it arrives.  Pass a
       
  4610 	packaged version of the  latest "TSetUpCall" class. For Symbian OS versions
       
  4611 	up to and including v8.1a and 8.1b use RSat::TSetUpCallV1Pckg, a packaged
       
  4612 	RSat::TSetUpCallV1.  For Symbian OS 9.2, use RSat::TSetUpCallV5Pckg.
       
  4613 	For Symbian OS 9.4, use RSat::TSetUpCallV6Pckg.
       
  4614 	For later versions of Symbian OS, check for an updated
       
  4615 	API (RSat::TSetUpCallV7 etc).
       
  4616 
       
  4617 	@see RSat::TSetUpCallV5
       
  4618 	@see RSat::TSetUpCallV6Pckg
       
  4619 	@see RSat::NotifySetUpCallPCmd()
       
  4620 
       
  4621 	*/
       
  4622 		{
       
  4623 	public:
       
  4624 		IMPORT_C TSetUpCallV6();
       
  4625 
       
  4626 	public:
       
  4627 		TUint8 iFrameId; //<  Each frame has an ID. This field contains the ID of the frame. 
       
  4628 		};
       
  4629 
       
  4630 	/** A packaged RSat::TSetUpCallV6. */
       
  4631 	typedef TPckg<TSetUpCallV6>  TSetUpCallV6Pckg;
       
  4632 	
       
  4633 	IMPORT_C void NotifySetUpCallPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  4634     IMPORT_C void NotifySetUpCallPCmdCancel() const;
       
  4635 
       
  4636     class TSetUpCallRspV1 : public TSatPCmdBase
       
  4637     /**
       
  4638     Contains your response to a SET UP CALL proactive command.  Pass this to
       
  4639     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  4640     102 223 and RSat::NotifySetUpCallPCmd() for more information about
       
  4641     the command.
       
  4642 
       
  4643     For Symbian OS v6.1 or v7.0 pass RSat::TerminalRsp() a
       
  4644     RSat::TSetUpCallRspV1Pckg (a packaged TSetUpCallRspV1).  For versions up to
       
  4645     and included v8.1a and v8.1b use RSat::TSetUpCallRspV2Pckg (a packaged
       
  4646     TSetUpCallRspV2).   For later versions of Symbian OS, check for an updated
       
  4647     API (RSat::TSetUpCallRspV3 etc).
       
  4648 
       
  4649     @see RSat::TSetUpCallRspV2
       
  4650     @see RSat::NotifySetUpCallPCmd()
       
  4651     */
       
  4652         {
       
  4653     public:
       
  4654         IMPORT_C TSetUpCallRspV1();
       
  4655     public:
       
  4656          /** General result of the proactive command. Set this as described in
       
  4657         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  4658         TPCmdResult iGeneralResult;
       
  4659 
       
  4660         TUint iInfoType;                    //< Additional information type
       
  4661         TAdditionalInfo iAdditionalInfo;    //< Additional info
       
  4662 
       
  4663          /** General result of the proactive command. Set this as described in
       
  4664         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  4665         TPCmdResult iGeneralResult2;
       
  4666 
       
  4667         TUint iInfoType2;                   //< Second additional info type
       
  4668         TAdditionalInfo iAdditionalInfo2;   //< Second additional info
       
  4669         TCallControlV1 iCcRequestedAction;  //< Action requested by the call control procedure
       
  4670         };
       
  4671 
       
  4672     /** A packaged RSat::TSetUpCallRspV1. */
       
  4673     typedef TPckg<TSetUpCallRspV1>  TSetUpCallRspV1Pckg;
       
  4674 
       
  4675 
       
  4676     class TSetUpCallRspV2 : public TSetUpCallRspV1
       
  4677     /**
       
  4678     Contains your response to a SET UP CALL proactive command.  Pass this to
       
  4679     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  4680     102 223 and RSat::NotifySetUpCallPCmd() for more information about
       
  4681     the command.
       
  4682 
       
  4683     For Symbian OS v6.1 or v7.0 pass RSat::TerminalRsp() a
       
  4684     RSat::TSetUpCallRspV1Pckg (a packaged TSetUpCallRspV1).  For versions up to
       
  4685     and included v8.1a and v8.1b use RSat::TSetUpCallRspV2Pckg (a packaged
       
  4686     TSetUpCallRspV2).   For later versions of Symbian OS, check for an updated
       
  4687     API (RSat::TSetUpCallRspV3 etc).
       
  4688 
       
  4689     @see RSat::TSetUpCallRspV1
       
  4690     @see RSat::NotifySetUpCallPCmd()
       
  4691     */
       
  4692         {
       
  4693     public:
       
  4694         IMPORT_C TSetUpCallRspV2();
       
  4695     public:
       
  4696         TUssdString iUssdString;    //< Text returned within the Return Result message from the network.
       
  4697         };
       
  4698 
       
  4699     /** A packaged RSat::TSetUpCallRspV2. */
       
  4700     typedef TPckg<TSetUpCallRspV2>  TSetUpCallRspV2Pckg;
       
  4701 
       
  4702 
       
  4703     enum TRefreshType
       
  4704     /** Part of a REFRESH proactive command.
       
  4705     Indicates the type of REFRESH command sent by the UICC
       
  4706     @see RSat::TRefreshV1
       
  4707     */
       
  4708         {
       
  4709         ERefreshTypeNotSet,                 //< Initialization value used within constructor(s).
       
  4710         ESimInitFullFileChangeNotification, //< SIM or USIM Initialization and Full File Change Notification.
       
  4711         EFileChangeNotification,            //< SIM or USIM File Change Notification.
       
  4712         ESimInitFileChangeNotification,     //< SIM or USIM Initialization and File Change Notification.
       
  4713         ESimInit,                           //< SIM or USIM Initialization.
       
  4714         ESimReset,                          //< GSM SIM or UICC Reset.
       
  4715         EUsimApplicationReset,              //< USIM Application Reset.
       
  4716         E3GSessionReset                     //< 3G Session Reset.
       
  4717         };
       
  4718 
       
  4719 	/**
       
  4720 	@see RSat::TRefreshFileList
       
  4721 	*/
       
  4722     enum {KRefreshedFileListMaxSize=242};
       
  4723 
       
  4724     /** Part of a REFRESH proactive command.
       
  4725     Contains the list of files that have been changed by the UICC.
       
  4726     @see RSat::TRefreshV1
       
  4727     */
       
  4728     typedef TBuf16<KRefreshedFileListMaxSize> TRefreshFileList;
       
  4729 
       
  4730 
       
  4731     class TRefreshV1 : public TSatPCmdBase
       
  4732     /**
       
  4733     Contains a REFERSH proactive command issued by the UICC.   See ETSI TS
       
  4734     102 223 and RSat::NotifyRefreshPCmd() for more information about
       
  4735     the command.
       
  4736 
       
  4737     Request notification for REFRESH with RSat::NotifyRefreshPCmd(),
       
  4738     passing it an object in which to store the command when it arrives.  Pass a
       
  4739     packaged version of the latest "TRefresh" class. For Symbian OS 7.0s,
       
  4740     8.0 and 8.1 use RSat::TRefreshV2Pckg, a packged RSat::TRefreshV2.
       
  4741     Use RSat::TRefreshV1 with older versions of Symbian OS.  For later
       
  4742     versions of Symbian OS, check for an updated API (RSat::TRefreshV3
       
  4743     etc).
       
  4744 
       
  4745     @see RSat::TRefreshV2
       
  4746     @see RSat::TRefreshV1Pckg
       
  4747     @see RSat::NotifyRefreshPCmd()
       
  4748     */
       
  4749         {
       
  4750     public:
       
  4751         IMPORT_C TRefreshV1();
       
  4752     public:
       
  4753         TRefreshType iType;         //< Type of refresh command
       
  4754         TRefreshFileList iFileList; //< Optional list of files that need to be refreshed.
       
  4755         };
       
  4756 
       
  4757     /** A packaged RSat::TRefreshV1. */
       
  4758     typedef TPckg<TRefreshV1>  TRefreshV1Pckg;
       
  4759 
       
  4760 	/**
       
  4761 	@see RSat::TAid
       
  4762 	*/
       
  4763     enum {KAidMaxSize=16};
       
  4764 
       
  4765     /** Part of a REFRESH proactive command.
       
  4766     Indicates the application on the UICC to be refreshed as defined in ETSI TS 101 220.
       
  4767     @see RSat::TRefreshV1 */
       
  4768     typedef TBuf8<KAidMaxSize> TAid;
       
  4769 
       
  4770 
       
  4771     class TRefreshV2 : public TRefreshV1
       
  4772     /**
       
  4773     Contains a REFERSH proactive command issued by the UICC.   See ETSI TS
       
  4774     102 223 and RSat::NotifyRefreshPCmd() for more information about
       
  4775     the command.
       
  4776 
       
  4777     Request notification for REFRESH with RSat::NotifyRefreshPCmd(),
       
  4778     passing it an object in which to store the command when it arrives.  Pass a
       
  4779     packaged version of the latest "TRefresh" class. For Symbian OS 7.0s,
       
  4780     8.0 and 8.1 use RSat::TRefreshV2Pckg, a packged RSat::TRefreshV2.
       
  4781     Use RSat::TRefreshV1 with older versions of Symbian OS.  For later
       
  4782     versions of Symbian OS, check for an updated API (RSat::TRefreshV3
       
  4783     etc).
       
  4784 
       
  4785     @see RSat::TRefreshV2
       
  4786     @see RSat::TRefreshV1Pckg
       
  4787     @see RSat::NotifyRefreshPCmd()
       
  4788     */
       
  4789         {
       
  4790     public:
       
  4791         IMPORT_C TRefreshV2();
       
  4792     public:
       
  4793         TAid    iAid; //< ID of an application that needs to be refreshed.
       
  4794         };
       
  4795 
       
  4796     /** A packaged RSat::TRefreshV2. */
       
  4797     typedef TPckg<TRefreshV2>  TRefreshV2Pckg;
       
  4798 
       
  4799     IMPORT_C void NotifyRefreshPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  4800 
       
  4801 
       
  4802     class TRefreshRspV1 : public TSatPCmdBase
       
  4803     /**
       
  4804     Contains your response to a REFRESH proactive command.  Pass this to
       
  4805     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  4806     102 223 and RSat::NotifyRefreshPCmd() for more information about
       
  4807     the command.
       
  4808 
       
  4809     For Symbian OS versions up to and including  v8.1a and v8.1b pass
       
  4810     RSat::TerminalRsp() a RSat::TRefreshRspV1Pckg (a packaged TRefreshRspV1).
       
  4811     For later versions of Symbian OS, check for an updated API
       
  4812     (RSat::TRefreshRspV2 etc).
       
  4813 
       
  4814     @see RSat::NotifyRefreshPCmd()
       
  4815     */
       
  4816         {
       
  4817     public:
       
  4818         IMPORT_C TRefreshRspV1();
       
  4819     public:
       
  4820          /** General result of the proactive command. Set this as described in
       
  4821         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  4822         TPCmdResult iGeneralResult;
       
  4823 
       
  4824         TUint iInfoType;                //< Additional info type
       
  4825         TAdditionalInfo iAdditionalInfo;//< Additional info
       
  4826         };
       
  4827 
       
  4828     /** A packaged RSat::TRefreshRspV1. */
       
  4829     typedef TPckg<TRefreshRspV1>  TRefreshRspV1Pckg;
       
  4830 
       
  4831     //
       
  4832     //SET UP EVENT LIST
       
  4833     //
       
  4834     enum TSetUpEventListType
       
  4835     /** Part of the SET UP EVENT LIST proactive command. It determines the
       
  4836     command type: does the command contain a new event list or does it cancel
       
  4837     the previous event list. */
       
  4838         {
       
  4839         ESetUpEventListTypeNotSet, //< Value used in constructor.
       
  4840         EUpdateEventList,          //< Command contains a new event list that replaces any previous list.
       
  4841         ERemoveExistingEventList   //< Command contains no event list.  Instead, remove any existing events from the list.
       
  4842         };
       
  4843 
       
  4844 
       
  4845     class TSetUpEventListV1 : public TSatPCmdBase
       
  4846     /**
       
  4847     Contains a SET UP EVENT LIST proactive command issued by the UICC.   See
       
  4848     ETSI TS 102 223 and RSat::NotifySetUpEventListPCmd() for more information about
       
  4849     the command.
       
  4850 
       
  4851     Request notification for SET UP EVENT LIST with RSat::NotifySetUpEventListPCmd(), passing
       
  4852     it an object in which to store the command when it arrives.  Pass a
       
  4853     packaged version of the  latest "TSetUpEventList" class. For Symbian OS versions
       
  4854     up to and including v8.1a and 8.1b use RSat::TSetUpEventListV1Pckg, a packged
       
  4855     RSat::TSetUpEventListV1.  For later versions of Symbian OS, check for an updated
       
  4856     API (RSat::TSetUpEventListV2 etc).
       
  4857 
       
  4858     @see RSat::TSetUpEventListV1Pckg
       
  4859     @see RSat::NotifySetUpEventListPCmd()
       
  4860     */
       
  4861         {
       
  4862     public:
       
  4863         IMPORT_C TSetUpEventListV1();
       
  4864     public:
       
  4865         TSetUpEventListType iType; //< The command type.
       
  4866         TUint iEvents; //< The list of events in the form of flags from RSat::TEventList.
       
  4867         };
       
  4868 
       
  4869     /** A packaged RSat::TSetUpEventListV1. */
       
  4870     typedef TPckg<TSetUpEventListV1>  TSetUpEventListV1Pckg;
       
  4871 
       
  4872     IMPORT_C void NotifySetUpEventListPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  4873 
       
  4874 
       
  4875     class TSetUpEventListRspV1 : public TSatPCmdBase
       
  4876     /**
       
  4877     Contains your response to a SET UP EVENT LIST proactive command.  Pass this to
       
  4878     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  4879     102 223 and RSat::NotifySetUpEventListPCmd() for more information about
       
  4880     the command.
       
  4881 
       
  4882     For Symbian OS versions up to and including  v8.1a and v8.1b pass
       
  4883     RSat::TerminalRsp() a RSat::TSetUpEventListRspV1Pckg (a packaged TSetUpEventListRspV1).
       
  4884     For later versions of Symbian OS, check for an updated API
       
  4885     (RSat::TSetUpEventListRspV2 etc).
       
  4886 
       
  4887     @see RSat::NotifySetUpEventListPCmd()
       
  4888     */
       
  4889         {
       
  4890     public:
       
  4891         IMPORT_C TSetUpEventListRspV1();
       
  4892     public:
       
  4893          /** General result of the proactive command. Set this as described in
       
  4894         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  4895         TPCmdResult iGeneralResult;
       
  4896 
       
  4897         /** If the value of iGeneralResult requires additional information,
       
  4898         set this to RSat::KMeProblem.  Otherwise set to
       
  4899         RSat::KNoAdditionalInfo. */
       
  4900         TUint iInfoType;
       
  4901 
       
  4902         /** Contains additional information associated with certain error codes
       
  4903         set in iGeneralResult. If the value in iGeneralResult does not require
       
  4904         any information then leave this field empty.*/
       
  4905         TAdditionalInfo iAdditionalInfo;
       
  4906         };
       
  4907 
       
  4908     /** A packaged RSat::TSetUpEventListRspV1. */
       
  4909     typedef TPckg<TSetUpEventListRspV1>  TSetUpEventListRspV1Pckg;
       
  4910 
       
  4911     //
       
  4912     //SET UP IDLE MODE TEXT
       
  4913     //
       
  4914     enum TSetUpIdleModeTextType
       
  4915     /** Part of the SET UP IDLE MODE TEXT proactive command.
       
  4916     This determines the type of the command.
       
  4917     @see RSat::TSetUpIdleModeTextV1 */
       
  4918         {
       
  4919         ESetUpIdleModeTextTypeNotSet, //< Initialization value
       
  4920 
       
  4921         /** The SET UP IDLE MODE TEXT command contains idle mode text and
       
  4922         perhaps an icon to accompany it. */
       
  4923         EUpdateIdleModeText,
       
  4924 
       
  4925         /** The existing idle mode text and icon should no longer be used.
       
  4926         The SET UP IDLE MODE TEXT contains no new text. */
       
  4927         ERemoveExistingIdleModeText
       
  4928         };
       
  4929 
       
  4930 	/**
       
  4931 	The buffer needs to be able to contain 276 16-bit characters.
       
  4932 
       
  4933 	Expected Sequence 1.7 in section 27.22.4.22.1.4.2 of 3GPP TS 11.10-4
       
  4934 	v8.14.0 states that large text length to be tested should be of length
       
  4935 	274.  We are providing enough storage for 276 characters in any coding
       
  4936 	scheme as specified by TSatTextCoding.
       
  4937 
       
  4938 	@see RSat::TSatTextCoding
       
  4939 	@see RSat::TSetUpIdleModeTextV1
       
  4940 	*/
       
  4941     enum {KIdleModeTextMaxSize=276};
       
  4942 
       
  4943     /**
       
  4944     Part of the SET UP IDLE MODE TEXT proactive command.
       
  4945     This contains the idle mode text.
       
  4946 
       
  4947     This buffer assumes that 16-bit descriptors are being used by default.
       
  4948 
       
  4949     @see RSat::TSetUpIdleModeTextV1
       
  4950 	@see RSat::KIdleModeTextMaxSize
       
  4951     */
       
  4952     typedef TBuf16<KIdleModeTextMaxSize> TIdleModeText;
       
  4953 
       
  4954 
       
  4955     class TSetUpIdleModeTextV1 : public TSatPCmdBase
       
  4956     /**
       
  4957     Contains a SET UP IDLE MODE TEXT proactive command issued by the UICC.   See
       
  4958     ETSI TS 102 223 v5.9.0 section 6.6.22 and RSat::NotifySetUpIdleModeTextPCmd()
       
  4959     for more information about the command.
       
  4960 
       
  4961     Request notification for SET UP IDLE MODE TEXT with
       
  4962     RSat::NotifySetUpIdleModeTextPCmd(), passing it an object in which to store
       
  4963     the command when it arrives.  Pass a packaged version of the  latest
       
  4964     "TSetUpIdleModeText" class. For Symbian OS versions up to and including
       
  4965     v8.1a and 8.1b use RSat::TSetUpIdleModeTextV1Pckg, a packaged
       
  4966     RSat::TSetUpIdleModeTextV1.  For later versions of Symbian OS, check for an
       
  4967     updated API (RSat::TSetUpIdleModeTextV2 etc).
       
  4968 
       
  4969     @see RSat::TSetUpIdleModeTextV1Pckg
       
  4970     @see RSat::NotifySetUpIdleModeTextPCmd()
       
  4971 	@see RSat::TSatTextCoding
       
  4972     */
       
  4973         {
       
  4974     public:
       
  4975         IMPORT_C TSetUpIdleModeTextV1();
       
  4976     public:
       
  4977 
       
  4978         /** Describes the type of command: does it contain new idle mode text
       
  4979         or should the existing idle mode text be removed? */
       
  4980         TSetUpIdleModeTextType iType;
       
  4981 
       
  4982         /** Idle mode text.
       
  4983         Only valid if iType is RSat::EUpdateIdleModeText. */
       
  4984         TIdleModeText iText;
       
  4985 
       
  4986         /** Identifies the icon to display.
       
  4987         Only valid if iType is RSat::EUpdateIdleModeText. */
       
  4988         TIconId iIconId;
       
  4989 
       
  4990 		/**
       
  4991 		Specifies whether the text is 7-bit packed, 7-bit unpacked (i.e.
       
  4992 		8-bit) or UCS-2 16-bit.
       
  4993 		*/
       
  4994 		TSatTextCoding iCodingScheme;
       
  4995         };
       
  4996 
       
  4997     /** A packaged RSat::TSetUpIdleModeTextV1. */
       
  4998     typedef TPckg<TSetUpIdleModeTextV1>  TSetUpIdleModeTextV1Pckg;
       
  4999 
       
  5000 	class TSetUpIdleModeTextV5 : public TSetUpIdleModeTextV1
       
  5001 	/**
       
  5002    	Contains a SET UP IDLE MODE TEXT proactive command issued by the UICC.   See
       
  5003 	ETSI TS 102 223 v5.9.0 section 6.6.22 and RSat::NotifySetUpIdleModeTextPCmd()
       
  5004 	for more information about the command.
       
  5005 
       
  5006 	Request notification for SET UP IDLE MODE TEXT with
       
  5007 	RSat::NotifySetUpIdleModeTextPCmd(), passing it an object in which to store
       
  5008 	the command when it arrives.  Pass a packaged version of the  latest
       
  5009 	"TSetUpIdleModeText" class. For Symbian OS versions up to and including
       
  5010 	v8.1a and 8.1b use RSat::TSetUpIdleModeTextV1Pckg, a packaged
       
  5011 	RSat::TSetUpIdleModeTextV1.
       
  5012 	For Symbian OS 9.2, use RSat::TSetUpIdleModeTextV5Pckg.
       
  5013 	For later versions of Symbian OS, check for an
       
  5014 	updated API (RSat::TSetUpIdleModeTextV6 etc).
       
  5015 
       
  5016 	@see RSat::TSetUpIdleModeTextV1
       
  5017 	@see RSat::TSetUpIdleModeTextV5Pckg
       
  5018 	@see RSat::NotifySetUpIdleModeTextPCmd()
       
  5019 	*/
       
  5020 		{
       
  5021 	public:
       
  5022 		IMPORT_C TSetUpIdleModeTextV5();
       
  5023 
       
  5024 	public:
       
  5025 		/** Contains formatting information to be applied when
       
  5026 		RSat::TSetUpIdleModeTextV1::iText is displayed. 
       
  5027 		@see RSat::TTextAttribute
       
  5028 		*/
       
  5029 		TTextAttribute iTextAttribute;
       
  5030 		};
       
  5031 
       
  5032 	/** A packaged RSat::TSetUpIdleModeTextV5. */
       
  5033 	typedef TPckg<TSetUpIdleModeTextV5>  TSetUpIdleModeTextV5Pckg;
       
  5034 
       
  5035    	class TSetUpIdleModeTextV6 : public TSetUpIdleModeTextV5
       
  5036 	/**
       
  5037    	Contains a SET UP IDLE MODE TEXT proactive command issued by the UICC.   See
       
  5038 	ETSI TS 102 223 v5.9.0 section 6.6.22 and RSat::NotifySetUpIdleModeTextPCmd()
       
  5039 	for more information about the command.
       
  5040 
       
  5041 	Request notification for SET UP IDLE MODE TEXT with
       
  5042 	RSat::NotifySetUpIdleModeTextPCmd(), passing it an object in which to store
       
  5043 	the command when it arrives.  Pass a packaged version of the  latest
       
  5044 	"TSetUpIdleModeText" class. For Symbian OS versions up to and including
       
  5045 	v8.1a and 8.1b use RSat::TSetUpIdleModeTextV1Pckg, a packaged
       
  5046 	RSat::TSetUpIdleModeTextV1.
       
  5047 	For Symbian OS 9.2, use RSat::TSetUpIdleModeTextV5Pckg.
       
  5048 	For Symbian OS 9.4, use RSat::TSetUpIdleModeTextV6Pckg.
       
  5049 	For later versions of Symbian OS, check for an
       
  5050 	updated API (RSat::TSetUpIdleModeTextV7 etc).
       
  5051 
       
  5052 	@see RSat::TSetUpIdleModeTextV5
       
  5053 	@see RSat::TSetUpIdleModeTextV6Pckg
       
  5054 	@see RSat::NotifySetUpIdleModeTextPCmd()
       
  5055 	
       
  5056 	*/
       
  5057 		{
       
  5058 	public:
       
  5059 		IMPORT_C TSetUpIdleModeTextV6();
       
  5060 
       
  5061 	public:
       
  5062 		TUint8 iFrameId; //<  Each frame has an ID. This field contains the ID of the frame. 
       
  5063 		};
       
  5064 
       
  5065 	/** A packaged RSat::TSetUpIdleModeTextV6. */
       
  5066 	typedef TPckg<TSetUpIdleModeTextV6>  TSetUpIdleModeTextV6Pckg;
       
  5067 	
       
  5068     IMPORT_C void NotifySetUpIdleModeTextPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  5069 
       
  5070     class TSetUpIdleModeTextRspV1 : public TSatPCmdBase
       
  5071     /**
       
  5072     Contains your response to a SET UP IDLE TEXT proactive command.  Pass this to
       
  5073     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  5074     102 223 and RSat::NotifySetUpIdleModeTextPCmd() for more information about
       
  5075     the command.
       
  5076 
       
  5077     For Symbian OS versions up to and including  v8.1a and v8.1b pass
       
  5078     RSat::TerminalRsp() a RSat::TSetUpIdleModeTextRspV1Pckg (a packaged TSetUpIdleModeTextRspV1).
       
  5079     For later versions of Symbian OS, check for an updated API
       
  5080     (RSat::TSetUpIdleModeTextRspV2 etc).
       
  5081 
       
  5082     @see RSat::NotifySetUpIdleModeTextPCmd()
       
  5083     */
       
  5084         {
       
  5085     public:
       
  5086         IMPORT_C TSetUpIdleModeTextRspV1();
       
  5087     public:
       
  5088          /** General result of the proactive command. Set this as described in
       
  5089         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  5090         TPCmdResult iGeneralResult;
       
  5091 
       
  5092         /** If the value of iGeneralResult requires additional information,
       
  5093         set this to RSat::KMeProblem.  Otherwise set to
       
  5094         RSat::KNoAdditionalInfo. */
       
  5095         TUint iInfoType;
       
  5096 
       
  5097         /** Contains additional information associated with certain error codes
       
  5098         set in iGeneralResult. If the value in iGeneralResult does not require
       
  5099         any information then leave this field empty.*/
       
  5100         TAdditionalInfo iAdditionalInfo;
       
  5101         };
       
  5102 
       
  5103     /** A packaged RSat::TSetUpIdleModeTextRspV1. */
       
  5104     typedef TPckg<TSetUpIdleModeTextRspV1>  TSetUpIdleModeTextRspV1Pckg;
       
  5105 
       
  5106     //
       
  5107     //SEND DTMF COMMAND
       
  5108     //
       
  5109     /**
       
  5110     @see RSat::TDtmfString
       
  5111     */
       
  5112     enum{KDtmfStringMaxSize=243};
       
  5113 
       
  5114     /** Part of the SEND DTMF proactive command.
       
  5115     This contains the DTMF string. Maximum size is 243.
       
  5116     @see RSat::TSendDtmfV1 */
       
  5117     typedef TBuf8<KDtmfStringMaxSize> TDtmfString;
       
  5118 
       
  5119     class TSendDtmfV1 : public TSatPCmdBase
       
  5120     /**
       
  5121     Contains a SEND DTMF proactive command issued by the UICC.   See
       
  5122     ETSI TS 102 223 and RSat::NotifySendDtmfPCmd() for more information about
       
  5123     the command.
       
  5124 
       
  5125     Request notification for SEND DTMF with RSat::NotifySendDtmfPCmd(), passing
       
  5126     it an object in which to store the command when it arrives.  Pass a
       
  5127     packaged version of the  latest "TSendDtmf" class. For Symbian OS versions
       
  5128     up to and including v8.1a and 8.1b use RSat::TSendDtmfV1Pckg, a packaged
       
  5129     RSat::TSendDtmfV1.  For later versions of Symbian OS, check for an updated
       
  5130     API (RSat::TSendDtmfV2 etc).
       
  5131 
       
  5132     @see RSat::TSendDtmfV1Pckg
       
  5133     @see RSat::NotifySendDtmfPCmd()
       
  5134     */
       
  5135         {
       
  5136     public:
       
  5137         IMPORT_C TSendDtmfV1();
       
  5138     public:
       
  5139         TAlphaId iAlphaId;       //< An alpha identifier containing text to display.
       
  5140         TDtmfString iDtmfString; //< The DTMF string.
       
  5141         TIconId iIconId;         //< An icon to display.
       
  5142         };
       
  5143 
       
  5144     /** A packaged RSat::TSendDtmfV1. */
       
  5145     typedef TPckg<TSendDtmfV1>  TSendDtmfV1Pckg;
       
  5146 
       
  5147 	class TSendDtmfV5 : public TSendDtmfV1
       
  5148 	/**
       
  5149 	Contains a SEND DTMF proactive command issued by the UICC.   See
       
  5150 	ETSI TS 102 223 and RSat::NotifySendDtmfPCmd() for more information about
       
  5151 	the command.
       
  5152 
       
  5153 	Request notification for SEND DTMF with RSat::NotifySendDtmfPCmd(), passing
       
  5154 	it an object in which to store the command when it arrives.  Pass a
       
  5155 	packaged version of the  latest "TSendDtmf" class.
       
  5156 	For Symbian OS versions up to and including v8.1a and 8.1b use
       
  5157 	RSat::TSendDtmfV1Pckg, a packaged RSat::TSendDtmfV1.
       
  5158 	For Symbian OS 9.2, use RSat::TSendDtmfV5Pckg.
       
  5159 	For later versions of Symbian OS, check for an updated
       
  5160 	API (RSat::TSendDtmfV6 etc).
       
  5161 
       
  5162 	@see RSat::TSendDtmfV1
       
  5163 	@see RSat::TSendDtmfV5Pckg
       
  5164 	@see RSat::NotifySendDtmfPCmd()
       
  5165 	*/
       
  5166 		{
       
  5167 	public:
       
  5168 		IMPORT_C TSendDtmfV5();
       
  5169 
       
  5170 	public:
       
  5171 		/** Contains formatting information to be applied when
       
  5172 		RSat::TSendDtmfV5::iAlphaId is displayed. 
       
  5173 		@see RSat::TTextAttribute
       
  5174 		*/
       
  5175 		TTextAttribute iTextAttribute;
       
  5176 		};
       
  5177 
       
  5178 	/** A packaged RSat::TSendDtmfV5. */
       
  5179 	typedef TPckg<TSendDtmfV5>  TSendDtmfV5Pckg;
       
  5180 
       
  5181 	class TSendDtmfV6 : public TSendDtmfV5
       
  5182 	/**
       
  5183 	Contains a SEND DTMF proactive command issued by the UICC.   See
       
  5184 	ETSI TS 102 223 and RSat::NotifySendDtmfPCmd() for more information about
       
  5185 	the command.
       
  5186 
       
  5187 	Request notification for SEND DTMF with RSat::NotifySendDtmfPCmd(), passing
       
  5188 	it an object in which to store the command when it arrives.  Pass a
       
  5189 	packaged version of the  latest "TSendDtmf" class.
       
  5190 	For Symbian OS versions up to and including v8.1a and 8.1b use
       
  5191 	RSat::TSendDtmfV1Pckg, a packaged RSat::TSendDtmfV1.
       
  5192 	For Symbian OS 9.2, use RSat::TSendDtmfV5Pckg.
       
  5193 	For Symbian OS 9.4, use RSat::TSendDtmfV6Pckg.
       
  5194 	For later versions of Symbian OS, check for an updated
       
  5195 	API (RSat::TSendDtmfV7 etc).
       
  5196 
       
  5197 	@see RSat::TSendDtmfV1
       
  5198 	@see RSat::TSendDtmfV5
       
  5199 	@see RSat::TSendDtmfV6Pckg
       
  5200 	@see RSat::NotifySendDtmfPCmd()
       
  5201 
       
  5202 	*/
       
  5203 		{
       
  5204 	public:
       
  5205 		IMPORT_C TSendDtmfV6();
       
  5206 
       
  5207 	public:
       
  5208 		TUint8 iFrameId; //<  Each frame has an ID. This field contains the ID of the frame. 
       
  5209 		};
       
  5210 
       
  5211 	/** A packaged RSat::TSendDtmfV6. */
       
  5212 	typedef TPckg<TSendDtmfV6>  TSendDtmfV6Pckg;
       
  5213 	
       
  5214     IMPORT_C void NotifySendDtmfPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  5215 
       
  5216     class TSendDtmfRspV1 : public TSatPCmdBase
       
  5217     /**
       
  5218     Contains your response to a SEND DTMF proactive command.  Pass this to
       
  5219     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  5220     102 223 and RSat::NotifySendDtmfPCmd() for more information about
       
  5221     the command.
       
  5222 
       
  5223     For Symbian OS versions up to and including  v8.1a and v8.1b pass
       
  5224     RSat::TerminalRsp() a RSat::TSendDtmfRspV1Pckg (a packaged TSendDtmfRspV1).
       
  5225     For later versions of Symbian OS, check for an updated API
       
  5226     (RSat::TSendDtmfRspV2 etc).
       
  5227 
       
  5228     @see RSat::NotifySendDtmfPCmd()
       
  5229     */
       
  5230         {
       
  5231     public:
       
  5232         IMPORT_C TSendDtmfRspV1();
       
  5233     public:
       
  5234          /** General result of the proactive command. Set this as described in
       
  5235         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  5236         TPCmdResult iGeneralResult;
       
  5237 
       
  5238         /** If the value of iGeneralResult requires additional information,
       
  5239         set this to RSat::KMeProblem.  Otherwise set to
       
  5240         RSat::KNoAdditionalInfo. */
       
  5241         TUint iInfoType;
       
  5242 
       
  5243         /** Contains additional information associated with certain error codes
       
  5244         set in iGeneralResult. If the value in iGeneralResult does not require
       
  5245         any information then leave this field empty.*/
       
  5246         TAdditionalInfo iAdditionalInfo;
       
  5247         };
       
  5248 
       
  5249     /** A packaged RSat::TSendDtmfRspV1. */
       
  5250     typedef TPckg<TSendDtmfRspV1>  TSendDtmfRspV1Pckg;
       
  5251 
       
  5252     //
       
  5253     // PERFORM CARD APDU
       
  5254     //
       
  5255     /**
       
  5256     @see RSat::TApduData
       
  5257     */
       
  5258     enum{KApduDataMaxSize=236};
       
  5259     typedef TBuf8<KApduDataMaxSize> TApduData;
       
  5260 
       
  5261     struct TCApdu
       
  5262     /** Part of the PERFORM CARD APDU proactive command.
       
  5263     This contains the APDU command for the card. */
       
  5264         {
       
  5265         TUint8 iCla;    //< Command class
       
  5266         TUint8 iIns;    //< Command instruction code
       
  5267         TUint8 iP1;     //< P1 parameter
       
  5268         TUint8 iP2;     //< P2 parameter
       
  5269         TUint8 iLc;     //< Length of command data sent by the application layer in a case 3 or 4 Command.
       
  5270         TApduData iData;//< Data
       
  5271         TUint8 iLe;     //< Maximum length of data expected by the application layer in response to a case 2 or 4 Command.
       
  5272         };
       
  5273 
       
  5274 
       
  5275     class TPerformCardApduV2 : public TSatPCmdBase
       
  5276     /**
       
  5277     Contains a PERFORM CARD APDU proactive command issued by the UICC.   See
       
  5278     ETSI TS 102 223 and RSat::NotifyPerformCardApduPCmd() for more information about
       
  5279     the command.
       
  5280 
       
  5281     Request notification for  PERFORM CARD APDU with
       
  5282     RSat::NotifyPerformCardApduPCmd(), passing it an object in which to store
       
  5283     the command when it arrives.  Pass a packaged version of the  latest
       
  5284     "TPerformCardApdu" class. For Symbian OS version from 7.0s to v8.1a and
       
  5285     8.1b use RSat::TPerformCardApduV2Pckg, a packaged RSat::TPerformCardApduV2.
       
  5286     For later versions of Symbian OS, check for an updated API
       
  5287     (RSat::TPerformCardApduV3 etc).
       
  5288 
       
  5289     @see RSat::TPerformCardApduV2Pckg
       
  5290     @see RSat::NotifyPerformCardApduPCmd()
       
  5291     */
       
  5292         {
       
  5293     public:
       
  5294         IMPORT_C TPerformCardApduV2();
       
  5295     public:
       
  5296         TDeviceId   iDestination;  //< The destination for the command.
       
  5297         TCApdu iCApdu; //< The APDU command.
       
  5298         };
       
  5299 
       
  5300     /** A packaged RSat::TPerformCardApduV2. */
       
  5301     typedef TPckg<TPerformCardApduV2>  TPerformCardApduV2Pckg;
       
  5302 
       
  5303     IMPORT_C void NotifyPerformCardApduPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  5304 
       
  5305 
       
  5306     class TPerformCardApduRspV2 : public TSatPCmdBase
       
  5307     /**
       
  5308     Contains your response to a  PERFORM CARD APDU proactive command.  Pass
       
  5309     this to the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and
       
  5310     RSat::NotifyPerformCardApduPCmd() for more information about the command.
       
  5311 
       
  5312     For Symbian OS versions from 7.0s to v8.1a and v8.1b pass
       
  5313     RSat::TerminalRsp() a RSat::TPerformCardApduV2Pckg (a packaged
       
  5314     TPerformCardApduRspV2). For later versions of Symbian OS, check for an
       
  5315     updated API (RSat::TPerformCardApduRspV3 etc).
       
  5316 
       
  5317     @see RSat::NotifyPerformCardApduPCmd()
       
  5318     */
       
  5319         {
       
  5320     public:
       
  5321         IMPORT_C TPerformCardApduRspV2();
       
  5322     public:
       
  5323          /** General result of the proactive command. Set this as described in
       
  5324         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  5325         TPCmdResult iGeneralResult;
       
  5326 
       
  5327         /** If there a response to the APDU then set this to
       
  5328         RSat::KRApdu. If something goes wrong, then some error values of
       
  5329         iGeneralResult require additional information, in which case set this
       
  5330         to RSat::KMeProblem.  Otherwise set to RSat::KNoAdditionalInfo. */
       
  5331         TUint iInfoType;
       
  5332 
       
  5333         /** This should be the card's response to the APDU, is there is one.
       
  5334         Otherwise, some error values of iGeneralResult require additional
       
  5335         information, which goes here. */
       
  5336         TAdditionalInfo iAdditionalInfo;
       
  5337         };
       
  5338 
       
  5339     /** A packaged RSat::TPerformCardApduRspV2. */
       
  5340     typedef TPckg<TPerformCardApduRspV2>  TPerformCardApduRspV2Pckg;
       
  5341 
       
  5342     //
       
  5343     // POWER OFF CARD
       
  5344     //
       
  5345 
       
  5346     class TPowerOffCardV2 : public TSatPCmdBase
       
  5347     /**
       
  5348     Contains a POWER OFF CARD proactive command issued by the UICC.   See
       
  5349     ETSI TS 102 223 and RSat::NotifyPowerOffCardPCmd() for more information about
       
  5350     the command.
       
  5351 
       
  5352     Request notification for  POWER OFF CARD with RSat::NotifyPerformCardApduPCmd(), passing
       
  5353     it an object in which to store the command when it arrives.  Pass a
       
  5354     packaged version of the  latest "TPowerOffCard" class. For Symbian OS versions
       
  5355     from 7.0s to v8.1a and 8.1b use RSat::TPowerOffCardV2Pckg, a packaged
       
  5356     RSat::TPowerOffCardV2.  For later versions of Symbian OS, check for an updated
       
  5357     API (RSat::TPowerOffCardV3 etc).
       
  5358 
       
  5359     @see RSat::TPowerOffCardV2Pckg
       
  5360     @see RSat::NotifyPowerOffCardPCmd()
       
  5361     */
       
  5362         {
       
  5363     public:
       
  5364         IMPORT_C TPowerOffCardV2();
       
  5365     public:
       
  5366         TDeviceId   iDestination;  //< The card whose session should be closed.
       
  5367         };
       
  5368 
       
  5369     /** A packaged RSat::TPowerOffCardV2. */
       
  5370     typedef TPckg<TPowerOffCardV2>  TPowerOffCardV2Pckg;
       
  5371 
       
  5372     IMPORT_C void NotifyPowerOffCardPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  5373 
       
  5374     class TPowerOffCardRspV2 : public TSatPCmdBase
       
  5375     /**
       
  5376     Contains your response to a POWER OFF CARD proactive command.  Pass
       
  5377     this to the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and
       
  5378     RSat::NotifyPowerOffCardPCmd() for more information about the command.
       
  5379 
       
  5380     For Symbian OS versions from 7.0s to  v8.1a and v8.1b pass
       
  5381     RSat::TerminalRsp() a RSat::TPowerOffCardRspV2Pckg (a packaged
       
  5382     TPowerOffCardRspV2). For later versions of Symbian OS, check for an
       
  5383     updated API (RSat::TPowerOffCardRspV3 etc).
       
  5384 
       
  5385     @see RSat::NotifyPowerOffCardPCmd()
       
  5386     */
       
  5387         {
       
  5388     public:
       
  5389         IMPORT_C TPowerOffCardRspV2();
       
  5390     public:
       
  5391          /** General result of the proactive command. Set this as described in
       
  5392         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  5393         TPCmdResult iGeneralResult;
       
  5394 
       
  5395         /** If the value of iGeneralResult requires additional information,
       
  5396         set this to RSat::KMeProblem.  Otherwise set to
       
  5397         RSat::KNoAdditionalInfo. */
       
  5398         TUint iInfoType;
       
  5399 
       
  5400         /** Contains additional information associated with certain error codes
       
  5401         set in iGeneralResult. If the value in iGeneralResult does not require
       
  5402         any information then leave this field empty.*/
       
  5403         TAdditionalInfo iAdditionalInfo;
       
  5404         };
       
  5405 
       
  5406     /** A packaged RSat::TPowerOffCardRspV2. */
       
  5407     typedef TPckg<TPowerOffCardRspV2>  TPowerOffCardRspV2Pckg;
       
  5408 
       
  5409     //
       
  5410     // POWER ON CARD
       
  5411     //
       
  5412 
       
  5413 
       
  5414     class TPowerOnCardV2 : public TSatPCmdBase
       
  5415     /**
       
  5416     Contains aPOWER ON CARD proactive command issued by the UICC.   See
       
  5417     ETSI TS 102 223 and RSat::NotifyPowerOnCardPCmd() for more information about
       
  5418     the command.
       
  5419 
       
  5420     Request notification for POWER ON CARD with RSat::NotifyPerformCardApduPCmd(), passing
       
  5421     it an object in which to store the command when it arrives.  Pass a
       
  5422     packaged version of the  latest "TPowerOnCard" class. For Symbian OS versions
       
  5423     from 7.0s to v8.1a and 8.1b use RSat::TPowerOnCardV2Pckg, a packaged
       
  5424     RSat::TPowerOnCardV2.  For later versions of Symbian OS, check for an updated
       
  5425     API (RSat::TPowerOnCardV3 etc).
       
  5426 
       
  5427     @see RSat::TPowerOnCardV2Pckg
       
  5428     @see RSat::NotifyPowerOnCardPCmd()
       
  5429     */
       
  5430         {
       
  5431     public:
       
  5432         IMPORT_C TPowerOnCardV2();
       
  5433     public:
       
  5434         TDeviceId   iDestination;     //< The card to turn on.
       
  5435         };
       
  5436 
       
  5437     /** A packaged RSat::TPowerOnCardV2. */
       
  5438     typedef TPckg<TPowerOnCardV2>  TPowerOnCardV2Pckg;
       
  5439 
       
  5440     IMPORT_C void NotifyPowerOnCardPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  5441 
       
  5442 
       
  5443     class TPowerOnCardRspV2 : public TSatPCmdBase
       
  5444     /**
       
  5445     Contains your response to a POWER ON CARD proactive command.  Pass
       
  5446     this to the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and
       
  5447     RSat::NotifyPowerOnCardPCmd() for more information about the command.
       
  5448 
       
  5449     For Symbian OS versions from 7.0s to  v8.1a and v8.1b pass
       
  5450     RSat::TerminalRsp() a RSat::TPowerOnCardRspV2Pckg (a packaged
       
  5451     TPowerOnCardRspV2). For later versions of Symbian OS, check for an
       
  5452     updated API (RSat::TPowerOnCardRspV3 etc).
       
  5453 
       
  5454     @see RSat::NotifyPowerOnCardPCmd()
       
  5455     */
       
  5456         {
       
  5457     public:
       
  5458         IMPORT_C TPowerOnCardRspV2();
       
  5459     public:
       
  5460          /** General result of the proactive command. Set this as described in
       
  5461         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  5462         TPCmdResult iGeneralResult;
       
  5463 
       
  5464         /** If there a Answer To Reset (ATR) from the card, set this to
       
  5465         RSat::KCardATR. If something goes wrong, then some error values of
       
  5466         iGeneralResult require additional information, in which case set this
       
  5467         to RSat::KMeProblem.  Otherwise set to RSat::KNoAdditionalInfo. */
       
  5468         TUint iInfoType;
       
  5469 
       
  5470         /** This should be the card's Answer To Reset (ATR), is there is one.
       
  5471         Otherwise, some error values of iGeneralResult require additional
       
  5472         information, which goes here. */
       
  5473         TAdditionalInfo iAdditionalInfo;
       
  5474         };
       
  5475 
       
  5476     /** A packaged RSat::TPowerOnCardRspV2. */
       
  5477     typedef TPckg<TPowerOnCardRspV2>  TPowerOnCardRspV2Pckg;
       
  5478 
       
  5479     //
       
  5480     // GET READER STATUS
       
  5481     //
       
  5482 
       
  5483     enum TGetReaderStatusMode
       
  5484     /** Part of a GET READER STATUS proactive command.
       
  5485     Describes the information that the UICC is requesting.
       
  5486     @see RSat::TGetReaderStatusV2 */
       
  5487         {
       
  5488         ECardReaderModeNotSet, //< Initialisation value.
       
  5489         ECardReaderStatus,     //< Return the card reader's status, as described in the "Card Reader Status" object in ETSI TS 102 223.
       
  5490         ECardReaderIdentifier  //< Return the card reader's identifier, as described in the "Card Reader Identifier" object in ETSI TS 102 223.
       
  5491         };
       
  5492 
       
  5493 
       
  5494     class TGetReaderStatusV2 : public TSatPCmdBase
       
  5495     /**
       
  5496     Contains a GET READER STATUS proactive command issued by the UICC.   See
       
  5497     ETSI TS 102 223 and RSat::NotifyGetReaderStatusPCmd() for more information about
       
  5498     the command.
       
  5499 
       
  5500     Request notification for GET READER STATUS with RSat::NotifyGetReaderStatusPCmd(), passing
       
  5501     it an object in which to store the command when it arrives.  Pass a
       
  5502     packaged version of the  latest "TGetReaderStatus" class. For Symbian OS versions
       
  5503     from 7.0s to v8.1a and 8.1b use RSat::TGetReaderStatusV2Pckg, a packaged
       
  5504     RSat::TGetReaderStatusV2.  For later versions of Symbian OS, check for an updated
       
  5505     API (RSat::TGetReaderStatusV2 etc).
       
  5506 
       
  5507     @see RSat::TGetReaderStatusV2Pckg
       
  5508     @see RSat::NotifyGetReaderStatusPCmd()
       
  5509     */
       
  5510         {
       
  5511     public:
       
  5512         IMPORT_C TGetReaderStatusV2();
       
  5513     public:
       
  5514         /** The card reader whose information is wanted by the UICC. */
       
  5515         TDeviceId   iDestination;
       
  5516 
       
  5517         /** Describes the information that the UICC is requesting: the card
       
  5518         reader's identification or the card reader's status.*/
       
  5519         TGetReaderStatusMode iMode;
       
  5520         };
       
  5521 
       
  5522     /** A packaged RSat::TGetReaderStatusV2. */
       
  5523     typedef TPckg<TGetReaderStatusV2>  TGetReaderStatusV2Pckg;
       
  5524 
       
  5525     IMPORT_C void NotifyGetReaderStatusPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  5526 
       
  5527 
       
  5528     class TGetReaderStatusRspV2 : public TSatPCmdBase
       
  5529     /**
       
  5530     Contains your response to a DISPLAY TEXT proactive command.  Pass this to
       
  5531     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  5532     102 223 and RSat::NotifyGetReaderStatusPCmd() for more information about
       
  5533     the command.
       
  5534 
       
  5535     For Symbian OS versions from 7.0s to  v8.1a and v8.1b pass
       
  5536     RSat::TerminalRsp() a RSat::TGetReaderStatusRspV2Pckg (a packaged
       
  5537     TGetReaderStatusRspV2). For later versions of Symbian OS, check for an
       
  5538     updated API (RSat::TGetReaderStatusRspV3 etc).
       
  5539 
       
  5540     @see RSat::NotifyGetReaderStatusPCmd()
       
  5541     */
       
  5542         {
       
  5543     public:
       
  5544         IMPORT_C TGetReaderStatusRspV2();
       
  5545     public:
       
  5546          /** General result of the proactive command. Set this as described in
       
  5547         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  5548         TPCmdResult iGeneralResult;
       
  5549 
       
  5550         /** If returning card reader information to the UICC, set this to
       
  5551         RSat::KCardReaderInfo. If something goes wrong, then some error values of
       
  5552         iGeneralResult require additional information, in which case set this
       
  5553         to RSat::KMeProblem.  Otherwise set to RSat::KNoAdditionalInfo. */
       
  5554         TUint iInfoType;
       
  5555 
       
  5556         /** This should the card reader information, if it could read.
       
  5557         Otherwise, some error values of iGeneralResult require additional
       
  5558         information, which goes here. */
       
  5559         TAdditionalInfo iAdditionalInfo;
       
  5560 
       
  5561         /** Requested mode.  This should be the same as the
       
  5562         RSat::TGetReaderStatusV2::iMode in the initial GET READER STATUS. */
       
  5563         TGetReaderStatusMode iMode;
       
  5564         };
       
  5565 
       
  5566     /** A packaged RSat::TGetReaderStatusRspV2. */
       
  5567     typedef TPckg<TGetReaderStatusRspV2>  TGetReaderStatusRspV2Pckg;
       
  5568 
       
  5569     //
       
  5570     // RUN AT COMMAND
       
  5571     //
       
  5572 
       
  5573 	/**
       
  5574 	@see RSat::TAtCommand
       
  5575 	*/
       
  5576     enum {KAtCommandMaxSize=245};
       
  5577 
       
  5578     /** Part of the RUN AT COMMAND proactive command.
       
  5579     This contains the AT command string.  Maximum size is 245 bytes.
       
  5580     @see RSat::TRunAtCommandV2 */
       
  5581     typedef TBuf8<KAtCommandMaxSize> TAtCommand;
       
  5582 
       
  5583     class TRunAtCommandV2 : public TSatPCmdBase
       
  5584     /**
       
  5585     Contains a RUN AT COMMAND proactive command issued by the UICC.   See ETSI
       
  5586     TS 102 223 and RSat::NotifyRunAtCommandPCmd() for more information about
       
  5587     the command.  Symbian OS support for this command is available from v7.0s
       
  5588     onwards.
       
  5589 
       
  5590     Request notification for RUN AT COMMAND with
       
  5591     RSat::NotifyRunAtCommandPCmd(), passing it an object in which to store the
       
  5592     command when it arrives.  Pass a packaged version of the  latest
       
  5593     "TRunAtCommand" class. For Symbian OS versions from v7.0s to v8.1a
       
  5594     and 8.1b, use RSat::TRunAtCommandV2Pckg, a packaged RSat::TRunAtCommandV2.
       
  5595     For later versions of Symbian OS, check for an updated API
       
  5596     (RSat::TRunAtCommandV3 etc).
       
  5597 
       
  5598     @see RSat::TRunAtCommandV2Pckg
       
  5599     @see RSat::NotifyRunAtCommandPCmd()
       
  5600     */
       
  5601         {
       
  5602     public:
       
  5603         IMPORT_C TRunAtCommandV2();
       
  5604     public:
       
  5605         TAlphaId iAlphaId;     //< An optional alpha identifier.
       
  5606         TAtCommand iAtCommand; //< The AT command string.
       
  5607         TIconId iIconId;       //< An optional icon.
       
  5608         };
       
  5609 
       
  5610     /** A packaged RSat::TRunAtCommandV2. */
       
  5611     typedef TPckg<TRunAtCommandV2>  TRunAtCommandV2Pckg;
       
  5612 
       
  5613 	class TRunAtCommandV5 : public TRunAtCommandV2
       
  5614 	/**
       
  5615 	Contains a RUN AT COMMAND proactive command issued by the UICC.
       
  5616 	See ETSI TS 102 223 and RSat::NotifyRunAtCommandPCmd() for more
       
  5617 	information about the command.  Symbian OS support for this command
       
  5618 	is available from v7.0s onwards.
       
  5619 
       
  5620 	Request notification for RUN AT COMMAND with
       
  5621 	RSat::NotifyRunAtCommandPCmd(), passing it an object in which to
       
  5622 	store the command when it arrives.  Pass a packaged version of the
       
  5623 	latest "TRunAtCommand" class. For Symbian OS versions from v7.0s
       
  5624 	to v8.1a and 8.1b, use RSat::TRunAtCommandV2Pckg, a packaged RSat::TRunAtCommandV2.
       
  5625 	For Symbian OS 9.2, use RSat::TRunAtCommandV5.
       
  5626 	For later versions of Symbian OS, check for an updated API
       
  5627 	(RSat::TRunAtCommandV6 etc).
       
  5628 
       
  5629 	@see RSat::TSatPCmdBase
       
  5630 	@see RSat::TRunAtCommandV2
       
  5631 	@see RSat::TRunAtCommandV5Pckg
       
  5632 	@see RSat::NotifyRunAtCommandPCmd()
       
  5633 	*/
       
  5634 		{
       
  5635 	public:
       
  5636 		IMPORT_C TRunAtCommandV5();
       
  5637 
       
  5638 	public:
       
  5639 		/** Contains formatting information to be applied when
       
  5640 		RSat::TRunAtCommandV2::iAlphaId is displayed.
       
  5641 		@see RSat::TTextAttribute 
       
  5642 		*/
       
  5643 		TTextAttribute iTextAttribute;
       
  5644 		};
       
  5645 
       
  5646 	/** A packaged RSat::TRunAtCommandV5. */
       
  5647 	typedef TPckg<TRunAtCommandV5>  TRunAtCommandV5Pckg;
       
  5648 
       
  5649  	class TRunAtCommandV6 : public TRunAtCommandV5
       
  5650 	/**
       
  5651 	Contains a RUN AT COMMAND proactive command issued by the UICC.
       
  5652 	See ETSI TS 102 223 and RSat::NotifyRunAtCommandPCmd() for more
       
  5653 	information about the command.  Symbian OS support for this command
       
  5654 	is available from v7.0s onwards.
       
  5655 
       
  5656 	Request notification for RUN AT COMMAND with
       
  5657 	RSat::NotifyRunAtCommandPCmd(), passing it an object in which to
       
  5658 	store the command when it arrives.  Pass a packaged version of the
       
  5659 	latest "TRunAtCommand" class. For Symbian OS versions from v7.0s
       
  5660 	to v8.1a and 8.1b, use RSat::TRunAtCommandV2Pckg, a packaged RSat::TRunAtCommandV2.
       
  5661 	For Symbian OS 9.2, use RSat::TRunAtCommandV5.
       
  5662 	For Symbian OS 9.4, use RSat::TRunAtCommandV6.
       
  5663 	For later versions of Symbian OS, check for an updated API
       
  5664 	(RSat::TRunAtCommandV7 etc).
       
  5665 
       
  5666 	@see RSat::TSatPCmdBase
       
  5667 	@see RSat::TRunAtCommandV2
       
  5668 	@see RSat::TRunAtCommandV5
       
  5669 	@see RSat::TRunAtCommandV6Pckg
       
  5670 	@see RSat::NotifyRunAtCommandPCmd()
       
  5671 
       
  5672 	*/
       
  5673 		{
       
  5674 	public:
       
  5675 		IMPORT_C TRunAtCommandV6();
       
  5676 
       
  5677 	public:
       
  5678 		TUint8 iFrameId; //<  Each frame has an ID. This field contains the ID of the frame. 
       
  5679 		};
       
  5680 
       
  5681 	/** A packaged RSat::TRunAtCommandV6. */
       
  5682 	typedef TPckg<TRunAtCommandV6>  TRunAtCommandV6Pckg;
       
  5683 	
       
  5684     IMPORT_C void NotifyRunAtCommandPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  5685 
       
  5686 
       
  5687     class TRunAtCommandRspV2 : public TSatPCmdBase
       
  5688     /**
       
  5689     Contains your response to a RUN AT COMMAND proactive command. This should
       
  5690     include the AT response string, if there is one.  Pass this to the UICC
       
  5691     with RSat::TerminalRsp(). See ETSI TS 102 223 and
       
  5692     RSat::NotifyRunAtCommandPCmd() for more information about the command.
       
  5693 
       
  5694     For Symbian OS versions from v7.0s to v8.1a and v8.1b, pass
       
  5695     RSat::TerminalRsp() a RSat::TRunAtCommandRspV2Pckg (a packaged
       
  5696     TRunAtCommandRspV2). For later versions of Symbian OS, check for an
       
  5697     updated API (RSat::TRunAtCommandRspV3 etc).
       
  5698 
       
  5699     @see RSat::NotifyRunAtCommandPCmd()
       
  5700     */
       
  5701         {
       
  5702     public:
       
  5703         IMPORT_C TRunAtCommandRspV2();
       
  5704     public:
       
  5705          /** General result of the proactive command. Set this as described in
       
  5706         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  5707         TPCmdResult iGeneralResult;
       
  5708 
       
  5709         /** If there is a AT response string then set this to
       
  5710         RSat::KATResponse. If something goes wrong, then some error values of
       
  5711         iGeneralResult require additional information, in which case set this
       
  5712         to RSat::KMeProblem.  Otherwise set to RSat::KNoAdditionalInfo. */
       
  5713         TUint iInfoType;
       
  5714 
       
  5715         /** This should be the AT response string, if there is one.
       
  5716         Otherwise, some error values of iGeneralResult require additional information,
       
  5717         which goes here. */
       
  5718         TAdditionalInfo iAdditionalInfo;
       
  5719         };
       
  5720 
       
  5721     /** A packaged RSat::TRunAtCommandRspV2. */
       
  5722     typedef TPckg<TRunAtCommandRspV2>  TRunAtCommandRspV2Pckg;
       
  5723 
       
  5724     //
       
  5725     // LANGUAGE NOTIFICATION
       
  5726     //
       
  5727 
       
  5728     enum TLanguageNotificationType
       
  5729 
       
  5730     /** Part of the LANGUAGE NOTIFICATION proactive command. Determines whether
       
  5731     the UICC is specifying its current language in iLanguage, or is saying that
       
  5732     it is not using  a specific language.
       
  5733     @see RSat::TLanguageNotificationV2 */
       
  5734         {
       
  5735         ENotificationTypeNotSet, //<  Initialisation value
       
  5736 
       
  5737         /** No specific language is in use by the UICC. This has the effect of
       
  5738         cancelling previous specific LANGUAGE NOTIFICATION commands. */
       
  5739         ENonSpecificLangNotification,
       
  5740 
       
  5741         /** The language currently in use by the UICC is given in
       
  5742         RSat::TLanguageNotificationV2::iLanguage. */
       
  5743         ESpecificLangNotification
       
  5744         };
       
  5745 
       
  5746 
       
  5747     class TLanguageNotificationV2 : public TSatPCmdBase
       
  5748     /**
       
  5749     Contains a LANGUAGE NOTIFICATION proactive command issued by the UICC.   See
       
  5750     ETSI TS 102 223 and RSat::NotifyLanguageNotificationPCmd() for more information about
       
  5751     the command.
       
  5752 
       
  5753     Request notification for LANGUAGE NOTIFICATION with
       
  5754     RSat::NotifyLanguageNotificationPCmd(), passing it an object in which to
       
  5755     store the command when it arrives.  Pass a packaged version of the  latest
       
  5756     "TLanguageNotification" class. For Symbian OS versions up to and including
       
  5757     v8.1a and 8.1b use RSat::TLanguageNotificationV2Pckg, a packaged
       
  5758     RSat:TLanguageNotificationV2.  For later versions of Symbian OS, check for
       
  5759     an updated API (RSat::TLanguageNotificationV3 etc).
       
  5760 
       
  5761     @see RSat::TLanguageNotificationV2Pckg
       
  5762     @see RSat::NotifyLanguageNotificationPCmd()
       
  5763     */
       
  5764         {
       
  5765     public:
       
  5766         IMPORT_C TLanguageNotificationV2();
       
  5767     public:
       
  5768 
       
  5769         /** Describes the LANGUAGE NOTIFICATION command.  Determines whether
       
  5770         the UICC is specifying its current language in iLanguage, or is saying
       
  5771         that it is not using  a specific language. */
       
  5772         TLanguageNotificationType iNotificationType;
       
  5773 
       
  5774         /** Currently used language by (U)ICC.  This is pair of alpha-numeric
       
  5775         characters, defined in ISO 639. Each alpha-numeric character shall be
       
  5776         coded on one byte using the SMS default 7-bit coded alphabet as defined
       
  5777         in TS 123 038 with bit 8 set to 0.
       
  5778 
       
  5779         This is only valid if iNotificationType is set to RSat::ESpecificLangNotification. */
       
  5780         TUint16 iLanguage;
       
  5781         };
       
  5782 
       
  5783     /** A packaged RSat::TLanguageNotificationV2. */
       
  5784     typedef TPckg<TLanguageNotificationV2>  TLanguageNotificationV2Pckg;
       
  5785 
       
  5786     IMPORT_C void NotifyLanguageNotificationPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  5787 
       
  5788 
       
  5789     class TLanguageNotificationRspV2 : public TSatPCmdBase
       
  5790     /**
       
  5791     Contains your response to a LANGUAGE NITIFICATION proactive command.  Pass
       
  5792     this to the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and
       
  5793     RSat::NotifyLanguageNotificationPCmd() for more information about the command.
       
  5794 
       
  5795     For Symbian OS versions from v7.0s to v8.1a and v8.1b, pass
       
  5796     RSat::TerminalRsp() a RSat::TLanguageNotificationRspV2Pckg (a packaged
       
  5797     TLanguageNotificationRspV2). For later versions of Symbian OS, check for an
       
  5798     updated API (RSat::TLanguageNotificationRspV3 etc).
       
  5799 
       
  5800     @see RSat::NotifyLanguageNotificationPCmd()
       
  5801     */
       
  5802         {
       
  5803     public:
       
  5804         IMPORT_C TLanguageNotificationRspV2();
       
  5805     public:
       
  5806          /** General result of the proactive command. Set this as described in
       
  5807         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  5808         TPCmdResult iGeneralResult;
       
  5809 
       
  5810         /** If the value of iGeneralResult requires additional information,
       
  5811         set this to RSat::KMeProblem.  Otherwise set to
       
  5812         RSat::KNoAdditionalInfo. */
       
  5813         TUint iInfoType;
       
  5814 
       
  5815         /** Contains additional information associated with certain error codes
       
  5816         set in iGeneralResult. If the value in iGeneralResult does not require
       
  5817         any information then leave this field empty.*/
       
  5818         TAdditionalInfo iAdditionalInfo;
       
  5819         };
       
  5820 
       
  5821     /** A packaged RSat::TLanguageNotificationRspV2. */
       
  5822     typedef TPckg<TLanguageNotificationRspV2>  TLanguageNotificationRspV2Pckg;
       
  5823 
       
  5824     //
       
  5825     // LAUNCH BROWSER
       
  5826     //
       
  5827     enum TBrowserSelection
       
  5828     /** Part of the LAUNCH BROWSER proactive command.
       
  5829     It describes the browser to use.
       
  5830     @see RSat::TLaunchBrowserV2 */
       
  5831         {
       
  5832         EBrowserSelectionNotSet,                //< Command details do not specify the browser selection mode.
       
  5833         ELaunchBrowserIfNotAlreadyLaunched,     //< Launch browser if not already launched.
       
  5834         EUseExistingBrowser,                    //< Use the existing browser (the browser shall not use the active existing secured session).
       
  5835         ECloseExistingLaunchNewBrowserSession   //< Close the existing browser session and launch new browser session.
       
  5836         };
       
  5837 
       
  5838     enum TBrowserIdentity
       
  5839     /** Part of the LAUNCH BROWSER proactive command.
       
  5840     @see RSat::TLaunchBrowserV2 */
       
  5841         {
       
  5842         EBrowserIdNotSet,      //< Initialisation value.
       
  5843         EBrowserIdNotPresent,  //< Object not present in the proactive command.
       
  5844         EDefaultBrowser,       //< Default browser shall be used.
       
  5845         EBrowserIdNotSpecified, //< Object present but does not identified a known browser ID.
       
  5846         EWMLBrowser,            //< WML Browser shall be used.
       
  5847         EHTMLBrowser,           //< HTML Browser shall be used.
       
  5848         EXHTMLBrowser,          //< XHTML Browser shall be used.
       
  5849         ECHTMLBrowser		    //< CHTML Browser shall be used.
       
  5850         };
       
  5851 
       
  5852     enum TBrowserBearer
       
  5853     /** @see RSat::TBearerList */
       
  5854         {
       
  5855         KSmsBearer  =0x00, //< Use SMS.
       
  5856         KCsdBearer  =0x01, //< Use a circuit switched connection.
       
  5857         KUssdBearer =0x02, //< Use USSD on GSM/WCDMA networks.
       
  5858         KGprsBearer =0x03  //< Use a packet switched connection.
       
  5859         };
       
  5860 
       
  5861 	/**
       
  5862 	@see RSat::TUrl
       
  5863 	*/
       
  5864     enum {KUrlMaxSize=243};
       
  5865 
       
  5866     /** Part of the LAUNCH BROWSER proactive command.
       
  5867     Contains the URL to display.  Maximum size is 243 bytes.
       
  5868     @see RSat::TLaunchBrowserV2 */
       
  5869     typedef TBuf8<KUrlMaxSize> TUrl;
       
  5870 
       
  5871 	/**
       
  5872 	@see RSat::TBearerList
       
  5873 	*/
       
  5874     enum {KBearerListMaxSize=4};
       
  5875 
       
  5876     /** A list containing bearers in order of priority.  Each byte in this
       
  5877     descriptor will be a value from RSat::TBrowserBearer that describes the
       
  5878     bearer for the LAUNCH BROWSER command. Use the bearer in byte 1 if
       
  5879     possible, followed by byte 2 etc.  The maximum number is 4.
       
  5880     @see RSat::TLaunchBrowserV2 */
       
  5881     typedef TBuf8<KBearerListMaxSize> TBearerList;
       
  5882 
       
  5883 	/**
       
  5884 	@see RSat::TProvisioningFileRef
       
  5885 	*/
       
  5886     enum {KFileRefMaxSize=251};
       
  5887 
       
  5888     /** A provisioning file, used with the LAUNCH BROWESER proactive command. */
       
  5889     typedef TBuf8<KFileRefMaxSize> TProvisioningFileRef;
       
  5890 
       
  5891     /** A packaged RSat::TProvisioningFileRef. */
       
  5892     typedef TPckg<TProvisioningFileRef> TProvisioningFileRefPckg;
       
  5893 
       
  5894 
       
  5895     class TLaunchBrowserV2 : public TSatPCmdBase
       
  5896     /**
       
  5897     Contains a LAUNCH BROWSER proactive command issued by the UICC.   See ETSI
       
  5898     TS 102 223 and RSat::NotifyLaunchBrowserPCmd() for more information about
       
  5899     the command.  Symbian OS support for this command is available from v7.0s
       
  5900     onwards.
       
  5901 
       
  5902     Request notification for LAUNCH BROWSER with
       
  5903     RSat::NotifyLaunchBrowserPCmd(), passing it an object in which to store the
       
  5904     command when it arrives.  Pass a packaged version of the latest
       
  5905     "TLaunchBrowser" class. For Symbian OS 7.0s, 8.0 and 8.1 use
       
  5906     RSat::TLaunchBrowserV2Pckg, a packaged RSat::TLaunchBrowserV2.
       
  5907     For Symbian OS 9.2, use RSat::TLaunchBrowserV5Pckg.  For later
       
  5908     versions of Symbian OS, check for an updated API
       
  5909     (RSat::TLaunchBrowserV6 etc).
       
  5910 
       
  5911     @see RSat::TLaunchBrowserV2Pckg
       
  5912     @see RSat::NotifyLaunchBrowserPCmd()
       
  5913     */
       
  5914         {
       
  5915     public:
       
  5916         IMPORT_C TLaunchBrowserV2();
       
  5917     public:
       
  5918         IMPORT_C TUint NumberOfFileRef() const;
       
  5919         IMPORT_C TInt GetFileRef (TUint aIndex, TProvisioningFileRef& aFileRef) const;
       
  5920         IMPORT_C TInt AddFileRef (const TProvisioningFileRef& aFileRef);
       
  5921         IMPORT_C void ResetFileRef();
       
  5922 
       
  5923         TBrowserSelection iBrowserSel;  //< Describes the browser to use.
       
  5924         TBrowserIdentity iBrowserId;    //< Browser identity.
       
  5925         TUrl iUrl;                      //< URL to display.  Maximum size is 243 bytes.
       
  5926         TBearerList iBearerList;        //< List of bearers that can be used to access the URL. They are in order of priority.
       
  5927         TTextString iText;              //< Name/identity of the Gateway/Proxy
       
  5928         TAlphaId iAlphaId;              //< Alpha identifier for user confirmation phase; see RSat::NotifyLaunchBrowserPCmd()
       
  5929         TIconId iIconId;                //< Icon identifier for user confirmation phase; see RSat::NotifyLaunchBrowserPCmd()
       
  5930     protected:
       
  5931         TProvisioningFileRef    iFileRef;                       //< Stored file refs as passed by TSY
       
  5932         TUint8                  iOffset[KFileRefMaxSize];       //< Offsets of file ref entries in iFileRef
       
  5933         TUint8                  iLength[KFileRefMaxSize];       //< Lengths of file ref entries in iFileRef
       
  5934         TInt                    iNumOfFiles;                    //< Number of file refs in iFileRef
       
  5935         };
       
  5936 
       
  5937     /** A packaged RSat::TLaunchBrowserV2. */
       
  5938     typedef TPckg<TLaunchBrowserV2>  TLaunchBrowserV2Pckg;
       
  5939 
       
  5940 	class TLaunchBrowserV5 : public TLaunchBrowserV2
       
  5941 	/**
       
  5942 	Contains a LAUNCH BROWSER proactive command issued by the UICC.   See ETSI
       
  5943 	TS 102 223 and RSat::NotifyLaunchBrowserPCmd() for more information about
       
  5944 	the command.  Symbian OS support for this command is available from v7.0s
       
  5945 	onwards.
       
  5946 
       
  5947 	Request notification for LAUNCH BROWSER with
       
  5948 	RSat::NotifyLaunchBrowserPCmd(), passing it an object in which to store the
       
  5949 	command when it arrives.  Pass a packaged version of the latest
       
  5950 	"TLaunchBrowser" class. For Symbian OS 7.0s, 8.0 and 8.1 use
       
  5951 	RSat::TLaunchBrowserV2Pckg, a packaged RSat::TLaunchBrowserV2.
       
  5952 	For later versions of Symbian OS, check for an updated API
       
  5953 	(RSat::TLaunchBrowserV6 etc).
       
  5954 
       
  5955 	@see RSat::TLaunchBrowserV2
       
  5956 	@see RSat::TLaunchBrowserV5Pckg
       
  5957 	@see RSat::NotifyLaunchBrowserPCmd()
       
  5958 	*/
       
  5959 		{
       
  5960 	public:
       
  5961 		IMPORT_C TLaunchBrowserV5();
       
  5962 
       
  5963 	public:
       
  5964 		/** Contains formatting information to be applied when
       
  5965 		RSat::TLaunchBrowserV5::iAlphaId is displayed.
       
  5966 		@see RSat::TTextAttribute 
       
  5967 		*/
       
  5968 		TTextAttribute iTextAttribute;
       
  5969 		};
       
  5970 
       
  5971 	/** A packaged RSat::TLaunchBrowserV5. */
       
  5972 	typedef TPckg<TLaunchBrowserV5>  TLaunchBrowserV5Pckg;
       
  5973 
       
  5974 	class TLaunchBrowserV6 : public TLaunchBrowserV5
       
  5975 	/**
       
  5976 	Contains a LAUNCH BROWSER proactive command issued by the UICC.   See ETSI
       
  5977 	TS 102 223 and RSat::NotifyLaunchBrowserPCmd() for more information about
       
  5978 	the command.  Symbian OS support for this command is available from v7.0s
       
  5979 	onwards.
       
  5980 
       
  5981 	Request notification for LAUNCH BROWSER with
       
  5982 	RSat::NotifyLaunchBrowserPCmd(), passing it an object in which to store the
       
  5983 	command when it arrives.  Pass a packaged version of the latest "TLaunchBrowser" class. 
       
  5984 	For Symbian OS 7.0s, 8.0 and 8.1 use RSat::TLaunchBrowserV2Pckg, a packaged RSat::TLaunchBrowserV2.
       
  5985 	For Symbian OS 9.4 use RSat::TLaunchBrowserV6Pckg.For later versions of Symbian OS, check for an 
       
  5986 	updated API(RSat::TLaunchBrowserV7 etc).
       
  5987 
       
  5988 	@see RSat::TLaunchBrowserV2
       
  5989 	@see RSat::TLaunchBrowserV6Pckg
       
  5990 	@see RSat::NotifyLaunchBrowserPCmd()
       
  5991 
       
  5992 	*/
       
  5993 		{
       
  5994 	public:
       
  5995 		IMPORT_C TLaunchBrowserV6();
       
  5996 
       
  5997 	public:
       
  5998 		TUint8 iFrameId;   //< Each frame has an ID. This field contains the ID of the frame.
       
  5999 		};
       
  6000 
       
  6001 	/** A packaged RSat::TLaunchBrowserV6. */
       
  6002 	typedef TPckg<TLaunchBrowserV6>  TLaunchBrowserV6Pckg;
       
  6003 	
       
  6004     IMPORT_C void GetProvisioningRefFile(TRequestStatus& aReqStatus,const TProvisioningFileRef& aFileRef, TDes8& aFile) const;
       
  6005     IMPORT_C void NotifyLaunchBrowserPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  6006 
       
  6007 
       
  6008     class TLaunchBrowserRspV2 : public TSatPCmdBase
       
  6009     /**
       
  6010     Contains your response to a LAUNCH BROWSER proactive command.  Pass this to
       
  6011     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  6012     102 223 and RSat::NotifyLaunchBrowserPCmd() for more information about
       
  6013     the command.
       
  6014 
       
  6015     For Symbian OS versions from v7.0s to v8.1a and v8.1b, pass
       
  6016     RSat::TerminalRsp() a RSat::TLaunchBrowserRspV2Pckg (a packaged
       
  6017     TLaunchBrowserRspV2). For later versions of Symbian OS, check for an
       
  6018     updated API (RSat::TLaunchBrowserRspV3 etc).
       
  6019 
       
  6020     @see RSat::NotifyLaunchBrowserPCmd()
       
  6021     */
       
  6022         {
       
  6023     public:
       
  6024         IMPORT_C TLaunchBrowserRspV2();
       
  6025     public:
       
  6026          /** General result of the proactive command. Set this as described in
       
  6027         ETSI TS 102 223 and RSat::KLaunchBrowserError. */
       
  6028         TPCmdResult iGeneralResult;
       
  6029 
       
  6030         /** Some error values for iGeneralResult (such as
       
  6031         RSat::KLaunchBrowserError) require additional information, in which
       
  6032         case set iInfoType to RSat::KMeProblem.  Otherwise set to
       
  6033         RSat::KNoAdditionalInfo. */
       
  6034         TUint iInfoType;
       
  6035 
       
  6036         /** Some error values of iGeneralResult require additional information,
       
  6037         which goes here. If iGeneralResult is RSat::KLaunchBrowserError then
       
  6038         place a value from RSat::TBrowserError in here. */
       
  6039         TAdditionalInfo iAdditionalInfo;
       
  6040         };
       
  6041 
       
  6042     /** A packaged RSat::TLaunchBrowserRspV2. */
       
  6043     typedef TPckg<TLaunchBrowserRspV2>  TLaunchBrowserRspV2Pckg;
       
  6044 
       
  6045     //
       
  6046     // OPEN CHANNEL
       
  6047     //
       
  6048 
       
  6049 
       
  6050     enum TOpenChannelType
       
  6051     /** Part of an OPEN CHANNEL proactive command. There are three types of OPEN
       
  6052     CHANNEL command described in ETSI TS 102 223, 3GPP TS 31.111 and 3GPP2
       
  6053     C.S0035-0.  RSat::TOpenChannelType is set to the type of command.
       
  6054     @see RSat::TOpenChannelBaseV2
       
  6055     @see RSat::NotifyOpenChannelPCmd()
       
  6056     */
       
  6057         {
       
  6058         EPCmdTypeNotSet,    	//< OPEN CHANNEL type not set
       
  6059         ECsBearer,         		//< OPEN CHANNEL proactive command related to Circuit Switched (CS) bearer.
       
  6060         EGprsBearer,        	//< OPEN CHANNEL proactive command related to Packet Switched bearer.  On GSM/WCDMA networks, this means GPRS.
       
  6061         ELocalLinksBearer,  	//< OPEN CHANNEL proactive command for local links such as bluetooth and IrDA.
       
  6062         EAnyBearer,          	//< OPEN CHANNEL proactive comment related to any bearer.
       
  6063         EUiccServerMode			//< OPEN CHANNEL proactive command related to UICC in server mode.
       
  6064         };
       
  6065 
       
  6066 
       
  6067     enum TLinkEstablishment
       
  6068     /** Part of an OPEN CHANNEL proactive command. Should the channel be
       
  6069     opened now, or should you wait until you are given some data to send?
       
  6070     @see RSat::TOpenChannelBaseV2
       
  6071     */
       
  6072         {
       
  6073         ELinkEstablishmentNotSet,   //< Link establishment not set
       
  6074         EOnDemand,                  //< On demand link establishment
       
  6075         EImmediate                  //< Immediate link establishment
       
  6076         };
       
  6077 
       
  6078     enum TReconnectionMode
       
  6079 
       
  6080     /** Part of an OPEN CHANNEL proactive command. If an attempt to make a
       
  6081     connection fails, should you try again automatically?
       
  6082     @see RSat::TOpenChannelBaseV2
       
  6083     */
       
  6084         {
       
  6085         EReconnectionModeNotSet,  //< Reconnection mode not set
       
  6086 
       
  6087         /** Reconnection should not be automatic.  Do not attempt to reconnect. */
       
  6088         ENoAutomaticReconnection,
       
  6089 
       
  6090         /** Reconnection should be automatic.  Attempt to reconnect if the
       
  6091         first attempt fails. The OPEN CONNECTION command may include a time
       
  6092         limit for reconnection attempts. */
       
  6093         EAutomaticReconnection
       
  6094         };
       
  6095 
       
  6096     enum TBearerType
       
  6097     /** Part of an OPEN CHANNEL proactive command. Used by RSat::TBearer.
       
  6098     Defines the bearer type that you should use to open the channel.
       
  6099     @see RSat::TOpenChannelBaseV2
       
  6100     */
       
  6101         {
       
  6102         EBearerTypeNotSet,  //< Bearer type not set
       
  6103         ECSDBearer,         //< Circuit Switched Data bearer
       
  6104         EGPRSBearer,        //< GPRS bearer
       
  6105         EDefaultBearer,     //< Default bearer
       
  6106         EBTBearer,          //< Bluetooth bearer
       
  6107         EIrDaBearer,        //< Infra red  bearer
       
  6108         ERS232Bearer,       //< RS232 bearer
       
  6109         EUSBBearer,         //< USB bearer
       
  6110         EUtranBearer 		//<Utran bearer
       
  6111         };
       
  6112 
       
  6113 	/**
       
  6114 	@see RSat::TBearerParams
       
  6115 	*/
       
  6116     enum {KBearerParamsMaxSize=241};
       
  6117 
       
  6118     /** Part of an OPEN CHANNEL proactive command.  Used by RSat::TBearer.
       
  6119     Contains any parameters necessary to open the channel.
       
  6120     @see RSat::TOpenChannelBaseV2
       
  6121     */
       
  6122     typedef TBuf8<KBearerParamsMaxSize> TBearerParams;
       
  6123 
       
  6124     struct TBearer
       
  6125     /** Part of an OPEN CHANNEL proactive command. Defines the bearer that you
       
  6126     should use  to open a channel, plus any parameters necessary.
       
  6127     @see RSat::TOpenChannelBaseV2
       
  6128     */
       
  6129         {
       
  6130         TBearerType iType;      //< Indicates the type of bearer
       
  6131         TBearerParams iParams;  //< Params specific to the bearer
       
  6132         };
       
  6133 
       
  6134     enum TOtherAddressType
       
  6135     /** Part of an OPEN CHANNEL proactive command.  Used by RSat::TOtherAddress.
       
  6136     Defines the type of the IP addresses used when opening a channel.
       
  6137     @see RSat::TOpenChannelBaseV2
       
  6138     */
       
  6139         {
       
  6140         EAddressNotSet,     //< Initialisation value.
       
  6141         EAddressNotPresent, //< This optional element is not present in this proactive command.
       
  6142         EIPv4Address,       //< IP address is a IPv4 address
       
  6143         EIPv6Address        //< IP address is a IPv6 address
       
  6144         };
       
  6145 
       
  6146 	/**
       
  6147 	@see RSat::TOtherAddress
       
  6148 	*/
       
  6149     enum {KPcktAddressMaxSize=19};
       
  6150 
       
  6151     struct TOtherAddress
       
  6152     /** Part of an OPEN CHANNEL proactive command.
       
  6153     Used to define each the addresses needed when opening a channel.
       
  6154     @see RSat::TOpenChannelBaseV2
       
  6155     */
       
  6156         {
       
  6157         TOtherAddressType iType;                //< Other address type.
       
  6158         TBuf8<KPcktAddressMaxSize> iAddress;    //< Other address. Maximum size is 19 bytes.
       
  6159         };
       
  6160 
       
  6161     enum TTransportProtocol
       
  6162     /** Part of an OPEN CHANNEL proactive command.  Used by RSat::TSimMeInterface.
       
  6163     Describes the transport protocol to use for the channel.
       
  6164     @see RSat::TOpenChannelBaseV2
       
  6165     */
       
  6166         {
       
  6167         EProtocolNotSet,        //< Transport protocol not set
       
  6168         EProtocolNotPresent,    //< Transport protocol details not present in proactive comment
       
  6169         EUdp,                   //< UDP transport protocol
       
  6170         ETcp,                   //< TCP transport protocol
       
  6171         ETcpUiccInServerMode	//< TCP, UICC in server mode
       
  6172         };
       
  6173 
       
  6174     struct TSimMeInterface
       
  6175     /** Part of an OPEN CHANNEL proactive command.
       
  6176     Describes the transport protocol and port number to use for the channel.
       
  6177     @see RSat::TOpenChannelBaseV2
       
  6178     */
       
  6179         {
       
  6180         TTransportProtocol iTransportProto; //< Transport protocol
       
  6181         TUint16 iPrtNumber;                 //< Port Number
       
  6182         };
       
  6183 
       
  6184 
       
  6185     class TOpenChannelBaseV2 : public TSatPCmdBase
       
  6186     /**
       
  6187     Part of an OPEN CHANNEL proactive command which asks the phone to open a
       
  6188     channel to a particular bearer.  More description of this command can be
       
  6189     found in RSat::NotifyOpenChannelPCmd().
       
  6190 
       
  6191     OPEN CHANNEL commands can be of one of a number of types, depending upon 
       
  6192     the type of bearer required.  RSat::TOpenChannelBaseV2 contains fields
       
  6193     common to specific OPEN CHANNEL commands.  Other
       
  6194     classes inherit from this class to provide an OPEN CHANNEL command for
       
  6195     circuit switched (RSat::TOpenCsChannelV2), packet switched
       
  6196     (RSat::TOpenGprsChannelV2, local (RSat::TOpenLocalLinksChannelV2) channels
       
  6197     and a channel for UICC server mode (RSat::TOpenUiccServerModeChannelV7).
       
  6198 
       
  6199     @see RSat::TOpenChannelBaseV2Pckg
       
  6200     @see RSat::NotifyOpenChannelPCmd()
       
  6201     */
       
  6202         {
       
  6203     public:
       
  6204         IMPORT_C TOpenChannelBaseV2();
       
  6205     public:
       
  6206         /** Determines the type of OPEN CHANNEL command.  Indicates that a local,
       
  6207         circuit-switched or packet-switched channel should be opened. */
       
  6208         TOpenChannelType iPCmdType;
       
  6209         TLinkEstablishment iLinkEst;        //< Link establishment. Should the the channel be opened now, or should you wait until you are given some data to send?
       
  6210         TReconnectionMode iReconnectionMode;//< Reconnection mode.  If an attempt to make a connection fails, should you try again automatically?
       
  6211         TAlphaId iAlphaId;                  //< Alpha identifier to display to the user.
       
  6212         TIconId iIconId;                    //< Identifies the icon to display.
       
  6213         TBearer iBearer;                    //< Bearer for the channel.
       
  6214         TUint16 iBufferSize;                //< Buffer size
       
  6215         TSimMeInterface iSimMeInterface;    //< SIM / ME interface.
       
  6216         TOtherAddress iDestinationAddress;  //< Destination address.
       
  6217         };
       
  6218 
       
  6219     /** A packaged RSat::TOpenChannelBaseV2. */
       
  6220     typedef TPckg<TOpenChannelBaseV2>  TOpenChannelBaseV2Pckg;
       
  6221 
       
  6222 
       
  6223     class TOpenCsChannelV2 : public TOpenChannelBaseV2
       
  6224     /**
       
  6225     This contains a packet switched OPEN CHANNEL proactive command which asks
       
  6226     the phone to open a channel to a circuit switched bearer.  All the
       
  6227     parameters for the channel are supplied in RSat::TOpenCsChannelV2's
       
  6228     fields and its base class, RSat::TOpenChannelBaseV2.
       
  6229 
       
  6230     Note: Alternative OPEN CHANNEL commands request a packet switched or local
       
  6231     channel; see RSat::TOpenGprsChannelV2 and RSat::TOpenLocalLinksChannelV2
       
  6232     respectively.
       
  6233 
       
  6234     More description of the OPEN CHANNEL command can be found in
       
  6235     RSat::NotifyOpenChannelPCmd().
       
  6236 
       
  6237     @see RSat::NotifyOpenChannelPCmd()
       
  6238     @see RSat::TOpenChannelBaseV2
       
  6239     @see RSat::TOpenCsChannelV2Pckg
       
  6240     @see RSat::TOpenGprsChannelV2
       
  6241     @see RSat::TOpenLocalLinksChannelV2
       
  6242     */
       
  6243         {
       
  6244     public:
       
  6245         IMPORT_C TOpenCsChannelV2();
       
  6246     public:
       
  6247         TAddress iAddress;          //< Address to connect to
       
  6248         TSubAddress iSubAddress;    //< Sub-address
       
  6249         TDuration iDuration1;       //< Duration of reconnection tries
       
  6250         TDuration iDuration2;       //< Timeout value before the phone releases the link
       
  6251         TOtherAddress iLocalAddress;//< Local device IP address.  This identifers the phone opening the channel
       
  6252         TTextString iUserLogin;     //< User login
       
  6253         TTextString iUserPassword;  //< User password
       
  6254         };
       
  6255 
       
  6256     /** A packaged RSat::TOpenCsChannelV2. */
       
  6257     typedef TPckg<TOpenCsChannelV2>  TOpenCsChannelV2Pckg;
       
  6258 
       
  6259 	class TOpenCsChannelV5 : public TOpenCsChannelV2
       
  6260 	/**
       
  6261 	This contains a packet switched OPEN CHANNEL proactive command
       
  6262 	which asks the phone to open a channel to a circuit switched
       
  6263 	bearer.  All the parameters for the channel are supplied in
       
  6264 	RSat::TOpenCsChannelV5's fields and its base classes,
       
  6265 	RSat::TOpenCsChannelV2 and RSat::TOpenChannelBaseV2.
       
  6266 
       
  6267 	Note: Alternative OPEN CHANNEL commands request a packet
       
  6268 	switched or local channel; see RSat::TOpenGprsChannelV5
       
  6269 	and RSat::TOpenLocalLinksChannelV5 respectively.
       
  6270 
       
  6271 	More description of the OPEN CHANNEL command can be found in
       
  6272 	RSat::NotifyOpenChannelPCmd() and ETSI TS 102 223.
       
  6273 
       
  6274 	@see RSat::NotifyOpenChannelPCmd()
       
  6275 	@see RSat::TOpenChannelBaseV2
       
  6276 	@see RSat::TOpenCsChannelV2
       
  6277 	@see RSat::TOpenCsChannelV5Pckg
       
  6278 	@see RSat::TOpenGprsChannelV2
       
  6279 	@see RSat::TOpenLocalLinksChannelV2
       
  6280 	*/
       
  6281 		{
       
  6282 	public:
       
  6283 		IMPORT_C TOpenCsChannelV5();
       
  6284 
       
  6285 	public:
       
  6286 		/** Contains formatting information to be applied when
       
  6287 		RSat::TOpenChannelBaseV2::iAlphaId is displayed.
       
  6288 		@see RSat::TTextAttribute 
       
  6289 		*/
       
  6290 		TTextAttribute iTextAttribute;
       
  6291 		};
       
  6292 
       
  6293 	/** A packaged RSat::TOpenCsChannelV5. */
       
  6294 	typedef TPckg<TOpenCsChannelV5>  TOpenCsChannelV5Pckg;
       
  6295 
       
  6296 	class TOpenCsChannelV6 : public TOpenCsChannelV5
       
  6297 	/**
       
  6298 	This contains a packet switched OPEN CHANNEL proactive command
       
  6299 	which asks the phone to open a channel to a circuit switched
       
  6300 	bearer.  All the parameters for the channel are supplied in
       
  6301 	RSat::TOpenCsChannelV6's fields and its base classes,
       
  6302 	RSat::TOpenCsChannelV5,RSat::TOpenCsChannelV2 and RSat::TOpenChannelBaseV2.
       
  6303 
       
  6304 	Note: Alternative OPEN CHANNEL commands request a packet
       
  6305 	switched or local channel; see RSat::TOpenGprsChannelV6
       
  6306 	and RSat::TOpenLocalLinksChannelV6 respectively.
       
  6307 
       
  6308 	More description of the OPEN CHANNEL command can be found in
       
  6309 	RSat::NotifyOpenChannelPCmd() and ETSI TS 102 223.
       
  6310 
       
  6311 	@see RSat::NotifyOpenChannelPCmd()
       
  6312 	@see RSat::TOpenChannelBaseV2
       
  6313 	@see RSat::TOpenCsChannelV5
       
  6314 	@see RSat::TOpenCsChannelV2
       
  6315 	@see RSat::TOpenCsChannelV6Pckg
       
  6316 	@see RSat::TOpenGprsChannelV6
       
  6317 	@see RSat::TOpenLocalLinksChannelV6
       
  6318 
       
  6319 	*/
       
  6320 		{
       
  6321 	public:
       
  6322 		IMPORT_C TOpenCsChannelV6();
       
  6323 
       
  6324 	public:
       
  6325 		TUint iFrameId; //<  Each frame has an ID. This field contains the ID of the frame. 
       
  6326 		};
       
  6327 
       
  6328 	/** A packaged RSat::TOpenCsChannelV6. */
       
  6329 	typedef TPckg<TOpenCsChannelV6>  TOpenCsChannelV6Pckg;
       
  6330 	
       
  6331 	/** @see RSat::TAccessName */
       
  6332     enum {KAccessNameMaxSize=236};
       
  6333     typedef TBuf8<KAccessNameMaxSize> TAccessName;
       
  6334 
       
  6335 
       
  6336     class TOpenGprsChannelV2 : public TOpenChannelBaseV2
       
  6337     /**
       
  6338     This contains a packet switched OPEN CHANNEL proactive command which asks
       
  6339     the phone to open a channel to a packet switched bearer.  All the
       
  6340     parameters for the channel are supplied in RSat::TOpenGprsChannelV2's
       
  6341     fields and its base class, RSat::TOpenChannelBaseV2.
       
  6342 
       
  6343     Note: Alternative OPEN CHANNEL commands request a circuit switched or local
       
  6344     channel; see RSat::TOpenCsChannelV2 and RSat::TOpenLocalLinksChannelV2
       
  6345     respectively.
       
  6346 
       
  6347     More description of the OPEN CHANNEL command can be found in
       
  6348     RSat::NotifyOpenChannelPCmd().
       
  6349 
       
  6350     @see RSat::NotifyOpenChannelPCmd()
       
  6351     @see RSat::TOpenGprsChannelV2Pckg
       
  6352     @see RSat::TOpenChannelBaseV2
       
  6353     @see RSat::TOpenCsChannelV2
       
  6354     @see RSat::TOpenLocalLinksChannelV2
       
  6355     */
       
  6356         {
       
  6357     public:
       
  6358         IMPORT_C TOpenGprsChannelV2();
       
  6359     public:
       
  6360         TAccessName iAccessName;		//< Access Point Name indentifying the Gateway GSN
       
  6361         TOtherAddress iLocalAddress; 	//< Local device IP address
       
  6362         };
       
  6363 
       
  6364     /** A packaged RSat::TOpenGprsChannelV2. */
       
  6365     typedef TPckg<TOpenGprsChannelV2>  TOpenGprsChannelV2Pckg;
       
  6366 
       
  6367 	class TOpenGprsChannelV4 : public TOpenGprsChannelV2
       
  6368 	/**
       
  6369 	This class is derived from TOpenGprsChannelV2 and extends the class's functionality
       
  6370 	by adding username and password support.
       
  6371 
       
  6372 	@see RSat::TOpenGprsChannelV2
       
  6373 	@see RSat::TOpenGprsChannelV4Pckg
       
  6374 	*/
       
  6375 		{
       
  6376 	public:
       
  6377 		IMPORT_C TOpenGprsChannelV4();
       
  6378 	public:
       
  6379 		/** The user login to use to open the channel */
       
  6380 		TTextString iUserLogin;
       
  6381 
       
  6382 		/** The password to use to open the channel */
       
  6383 		TTextString iUserPassword;
       
  6384 		};
       
  6385 
       
  6386     /** A packaged RSat::TOpenGprsChannelV4. */
       
  6387     typedef TPckg<TOpenGprsChannelV4>  TOpenGprsChannelV4Pckg;
       
  6388 
       
  6389 	class TOpenGprsChannelV5 : public TOpenGprsChannelV4
       
  6390 	/**
       
  6391 	This contains a packet switched OPEN CHANNEL proactive command
       
  6392 	which asks the phone to open a channel to a packet switched
       
  6393 	bearer.  All the parameters for the channel are supplied in
       
  6394 	RSat::TOpenGprsChannelV5's fields and its base classes,
       
  6395 	RSat::TOpenGprsChannelV4, RSat::TOpenGprsChannelV2 and
       
  6396 	RSat::TOpenChannelBaseV2.
       
  6397 
       
  6398 	This class is derived from TOpenGprsChannelV4 and extends the
       
  6399 	class's functionality by adding text attribute support for
       
  6400 	the alpha identifier.
       
  6401 
       
  6402 	Note: Alternative OPEN CHANNEL commands request a circuit
       
  6403 	switched or local channel; see RSat::TOpenCsChannelV5 and
       
  6404 	RSat::TOpenLocalLinksChannelV5 respectively.
       
  6405 
       
  6406 	More description of the OPEN CHANNEL command can be found
       
  6407 	in RSat::NotifyOpenChannelPCmd().
       
  6408 
       
  6409 	@see RSat::TOpenChannelBaseV2
       
  6410 	@see RSat::TOpenGprsChannelV2
       
  6411 	@see RSat::TOpenGprsChannelV4
       
  6412 	@see RSat::TOpenGprsChannelV5Pckg
       
  6413 	@see RSat::TOpenCsChannelV5
       
  6414 	@see RSat::TOpenLocalLinksChannelV5
       
  6415 	*/
       
  6416 		{
       
  6417 	public:
       
  6418 		IMPORT_C TOpenGprsChannelV5();
       
  6419 
       
  6420 	public:
       
  6421 		/** Contains formatting information to be applied when
       
  6422 		RSat::TOpenChannelBaseV2::iAlphaId is displayed.
       
  6423 		@see RSat::TTextAttribute 
       
  6424 		*/
       
  6425 		TTextAttribute iTextAttribute;
       
  6426 		};
       
  6427 
       
  6428 	/** A packaged RSat::TOpenGprsChannelV5. */
       
  6429 	typedef TPckg<TOpenGprsChannelV5>  TOpenGprsChannelV5Pckg;
       
  6430 
       
  6431 	class TOpenGprsChannelV6 : public TOpenGprsChannelV5
       
  6432 	/**
       
  6433 	This contains a packet switched OPEN CHANNEL proactive command
       
  6434 	which asks the phone to open a channel to a packet switched
       
  6435 	bearer.  All the parameters for the channel are supplied in
       
  6436 	RSat::TOpenGprsChannelV6's fields and its base classes,
       
  6437 	RSat::TOpenGprsChannelV5, RSat::TOpenGprsChannelV4, RSat::TOpenGprsChannelV2 and
       
  6438 	RSat::TOpenChannelBaseV2.
       
  6439 
       
  6440 	This class is derived from TOpenGprsChannelV5 and extends the
       
  6441 	class's functionality by adding Frame identifier support.
       
  6442 	
       
  6443 	Note: Alternative OPEN CHANNEL commands request a circuit
       
  6444 	switched or local channel; see RSat::TOpenCsChannelV6 and
       
  6445 	RSat::TOpenLocalLinksChannelV6 respectively.
       
  6446 
       
  6447 	More description of the OPEN CHANNEL command can be found
       
  6448 	in RSat::NotifyOpenChannelPCmd().
       
  6449 
       
  6450 	@see RSat::TOpenChannelBaseV2
       
  6451 	@see RSat::TOpenGprsChannelV2
       
  6452 	@see RSat::TOpenGprsChannelV4
       
  6453 	@see RSat::TOpenGprsChannelV5
       
  6454 	@see RSat::TOpenGprsChannelV6Pckg
       
  6455 	@see RSat::TOpenCsChannelV6
       
  6456 	@see RSat::TOpenLocalLinksChannelV6
       
  6457 	*/
       
  6458 		{
       
  6459 	public:
       
  6460 		IMPORT_C TOpenGprsChannelV6();
       
  6461 
       
  6462 	public:
       
  6463 		TUint iFrameId; //<  Each frame has an ID. This field contains the ID of the frame. 
       
  6464 		};
       
  6465 
       
  6466 	/** A packaged RSat::TOpenGprsChannelV6. */
       
  6467 	typedef TPckg<TOpenGprsChannelV6>  TOpenGprsChannelV6Pckg;
       
  6468 
       
  6469     /**
       
  6470     This contains a packet switched OPEN CHANNEL proactive command which asks
       
  6471     the phone to open a channel to a local bearer such as Bluetooth or Irda.  All the
       
  6472     parameters for the channel are supplied in RSat::TOpenLocalLinksChannelV2's
       
  6473     fields and its base class, RSat::TOpenChannelBaseV2.
       
  6474     Note: Alternative OPEN CHANNEL commands request a circuit switched or packet
       
  6475     switched channel; see RSat::TOpenCsChannelV2 and RSat::TOpenGprsChannelV2
       
  6476     respectively.
       
  6477 
       
  6478     More description of the OPEN CHANNEL command can be found in
       
  6479     RSat::NotifyOpenChannelPCmd().
       
  6480 
       
  6481     @see RSat::NotifyOpenChannelPCmd()
       
  6482     @see RSat::TOpenLocalLinksChannelV2Pckg
       
  6483     @see RSat::TOpenChannelBaseV2
       
  6484     @see RSat::TOpenGprsChannelV2
       
  6485     @see RSat::TOpenCsChannelV2
       
  6486     */
       
  6487     class TOpenLocalLinksChannelV2 : public TOpenChannelBaseV2
       
  6488         {
       
  6489     public:
       
  6490         IMPORT_C TOpenLocalLinksChannelV2();
       
  6491     public:
       
  6492         TDuration iDuration1;               //< Duration of reconnection tries
       
  6493         TDuration iDuration2;               //< Timeout value before the ME releases the link
       
  6494         TTextString iUserPassword;          //< User password
       
  6495         TRemoteEntityAddress iRemoteAddress;//< Remote entity address
       
  6496         };
       
  6497 
       
  6498     /** A packaged RSat::TOpenLocalLinksChannelV2. */
       
  6499     typedef TPckg<TOpenLocalLinksChannelV2>  TOpenLocalLinksChannelV2Pckg;
       
  6500 
       
  6501 	class TOpenLocalLinksChannelV5 : public TOpenLocalLinksChannelV2
       
  6502 	/**
       
  6503 	This contains a packet switched OPEN CHANNEL proactive command which asks
       
  6504 	the phone to open a channel to a local bearer such as Bluetooth or Irda.
       
  6505 	All the parameters for the channel are supplied in
       
  6506 	RSat::TOpenLocalLinksChannelV5's fields and its base classes,
       
  6507 	RSat::TOpenLocalLinksChannelV2 and RSat::TOpenChannelBaseV2.
       
  6508 
       
  6509 	Note: Alternative OPEN CHANNEL commands request a circuit switched or packet
       
  6510 	switched channel; see RSat::TOpenCsChannelV5 and RSat::TOpenGprsChannelV5
       
  6511 	respectively.
       
  6512 
       
  6513 	More description of the OPEN CHANNEL command can be found in
       
  6514 	RSat::NotifyOpenChannelPCmd().
       
  6515 
       
  6516 	@see RSat::NotifyOpenChannelPCmd()
       
  6517 	@see RSat::TOpenLocalLinksChannelV5Pckg
       
  6518 	@see RSat::TOpenChannelBaseV2
       
  6519 	@see RSat::TOpenGprsChannelV5
       
  6520 	@see RSat::TOpenCsChannelV5
       
  6521    	*/
       
  6522 		{
       
  6523 	public:
       
  6524 		IMPORT_C TOpenLocalLinksChannelV5();
       
  6525 
       
  6526 	public:
       
  6527 		/** Contains formatting information to be applied when
       
  6528 		RSat::TOpenChannelBaseV2::iAlphaId is displayed. 
       
  6529 		@see RSat::TTextAttribute
       
  6530 		*/
       
  6531 		TTextAttribute iTextAttribute;
       
  6532 		};
       
  6533 
       
  6534 	/** A packaged RSat::TOpenLocalLinksChannelV5. */
       
  6535 	typedef TPckg<TOpenLocalLinksChannelV5>  TOpenLocalLinksChannelV5Pckg;
       
  6536 
       
  6537 	class TOpenLocalLinksChannelV6 : public TOpenLocalLinksChannelV5
       
  6538 	/**
       
  6539 	This contains a packet switched OPEN CHANNEL proactive command which asks
       
  6540 	the phone to open a channel to a local bearer such as Bluetooth or Irda.
       
  6541 	All the parameters for the channel are supplied in
       
  6542 	RSat::TOpenLocalLinksChannelV6's fields and its base classes,
       
  6543 	RSat::TOpenLocalLinksChannelV5,RSat::TOpenLocalLinksChannelV2 and RSat::TOpenChannelBaseV2.
       
  6544 
       
  6545 	Note: Alternative OPEN CHANNEL commands request a circuit switched or packet
       
  6546 	switched channel; see RSat::TOpenCsChannelV6 and RSat::TOpenGprsChannelV6
       
  6547 	respectively.
       
  6548 
       
  6549 	More description of the OPEN CHANNEL command can be found in
       
  6550 	RSat::NotifyOpenChannelPCmd().
       
  6551 
       
  6552 	@see RSat::NotifyOpenChannelPCmd()
       
  6553 	@see RSat::TOpenLocalLinksChannelV6Pckg
       
  6554 	@see RSat::TOpenChannelBaseV2
       
  6555 	@see RSat::TOpenGprsChannelV6
       
  6556 	@see RSat::TOpenCsChannelV6
       
  6557    	*/
       
  6558 		{
       
  6559 	public:
       
  6560 		IMPORT_C TOpenLocalLinksChannelV6();
       
  6561 
       
  6562 	public:
       
  6563 		TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame.
       
  6564 		};
       
  6565 
       
  6566 	/** A packaged RSat::TOpenLocalLinksChannelV6. */
       
  6567 	typedef TPckg<TOpenLocalLinksChannelV6>  TOpenLocalLinksChannelV6Pckg;
       
  6568 	
       
  6569 	class TOpenUiccServerModeChannelV7 : public TOpenChannelBaseV2
       
  6570 	/**
       
  6571 	This contains an OPEN CHANNEL proactive command which asks
       
  6572 	the phone to open a channel when the UICC is in server mode.
       
  6573 	
       
  6574 	All the parameters for the channel are supplied in the fields of
       
  6575 	RSat::TOpenUiccServerModeChannelV7 and its base class
       
  6576 	RSat::TOpenChannelBaseV2.  A number of fields inherited by this class
       
  6577 	from RSat::TOpenChannelBaseV2 are not relevant to this proactive command
       
  6578 	and should be set to the following values:
       
  6579 
       
  6580 	 - RSat::TOpenChannelBaseV2::iLinkEst should be set to
       
  6581 	   RSat::ELinkEstablishmentNotSet.
       
  6582 	 - RSat::TOpenChannelBaseV2::iReconnectionMode should be set to 
       
  6583 	   RSat::EReconnectionModeNotSet. 
       
  6584 	 - RSat::TBearer::iType in RSat::TOpenChannelBaseV2::iBearer should
       
  6585 	   be set to RSat::EBearerTypeNotSet.
       
  6586 	 - RSat::TOtherAddress::iType in RSat::TOpenChannelBaseV2::iDestinationAddress
       
  6587 	   should be set to RSat::EAddressNotSet.
       
  6588 	 - RSat::TSimMeInterface::iTransportProto in RSat::TOpenChannelBaseV2::iSimMeInterface
       
  6589 	   should be set to RSat::EProtocolNotSet.
       
  6590 	
       
  6591 	More details of the OPEN CHANNEL command can be found in
       
  6592 	RSat::NotifyOpenChannelPCmd().
       
  6593 
       
  6594 	@see RSat::NotifyOpenChannelPCmd()
       
  6595 	@see RSat::TOpenUiccServerModeChannelV7Pckg
       
  6596 	@see RSat::TOpenChannelBaseV2
       
  6597 	@see RSat::TOpenLocalLinksChannelV6
       
  6598 	@see RSat::TOpenGprsChannelV6
       
  6599 	@see RSat::TOpenCsChannelV6
       
  6600    	*/
       
  6601 		{
       
  6602 	public:
       
  6603 		IMPORT_C TOpenUiccServerModeChannelV7();
       
  6604 
       
  6605 	public:
       
  6606 		/** Contains formatting information to be applied when
       
  6607 		RSat::TOpenChannelBaseV2::iAlphaId is displayed.
       
  6608 		@see RSat::TTextAttribute 
       
  6609 		*/
       
  6610 		TTextAttribute iTextAttribute;
       
  6611 		/** Each frame has an ID. This field contains the ID of the frame. */
       
  6612 		TUint8 iFrameId;
       
  6613 		};
       
  6614 
       
  6615 	/** A packaged RSat::TOpenUiccServerModeChannelV7. */
       
  6616 	typedef TPckg<TOpenUiccServerModeChannelV7>  TOpenUiccServerModeChannelV7Pckg;
       
  6617 	
       
  6618     IMPORT_C void NotifyOpenChannelPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  6619     IMPORT_C void GetOpenChannelPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  6620 
       
  6621 	/**
       
  6622 	 *  TElementaryFile specifies the EFs that can be modified over the air by the
       
  6623 	 *  network or by the (U)SIM application toolkit on the (U)ICC. This is provided
       
  6624 	 *  in this API for ease of use.
       
  6625 	 *
       
  6626 	 *  Files that can not be modified are not mentioned in the following constants.
       
  6627 	 *  Other files that do not have a specified file number are not mentioned either
       
  6628 	 *  (mostly the file starting with 0x4F).
       
  6629 	 *
       
  6630 	 *  It is assumed that unless stated otherwise the following file ids are valid
       
  6631 	 *  for both GSM /WCDMA ICCs and CDMA RUIM. It has not been possible to define
       
  6632 	 *  which of the CDMA EFs can be refreshed. 
       
  6633 	 *
       
  6634 	 *  The enum values of TElementaryFiles are derived directly from ETSI 11.14,
       
  6635 	 *  3GPP TS 31.102 (Annex A) & 3GPP TS 31.103 (Annex A).
       
  6636 	 */
       
  6637 	enum TElementaryFiles
       
  6638 		{
       
  6639 		//
       
  6640 		// Commented out EFs cannot be modified over the air and are only included
       
  6641 		// to prevent people added them by mistake.
       
  6642 		//
       
  6643 		// There are already a number of EFs listed that cannot be modified over the
       
  6644 		// air: KCsp1Ef, KAdnEf, KCcpEf, KLndEf, KExt1Ef, KNiaEf, KLociGprsEf,
       
  6645 		// KRplmnActEf, KCsp2Ef, KPhaseEf, KGmsi, KHiddenKeyEf & KPnnEf.
       
  6646 		//
       
  6647 		KUnknownEf			=0x2000,	//< Unknown EF type
       
  6648 		KDirEf				=0x2F00,	//< Application directory EF
       
  6649 		KElpEf				=0x2F05,	//< Extended Language Preference EF
       
  6650 		KArrEf				=0x2F06,	//< Access Rule Reference EF at the MF level.
       
  6651 		//KIccId			=0x2FE2,	//< ICC identification	EF (operator dependant)
       
  6652 		KImgEf				=0x4F20,	//< Image EF
       
  6653 		KPscEf				=0x4F22,	//< Phonebook synchronisation counter EF
       
  6654 		KCcEf				=0x4F23,	//< Change counter EF
       
  6655 		KPuidEf				=0x4F24,	//< Previous unique identifier EF
       
  6656 		KPbr				=0x4F30,	//< Phonebook reference file EF
       
  6657 		//KSaiEf			=0x4F30,	//< SoLSA Access Indicator EF (clashes with KPbr)
       
  6658 		KSllEf				=0x4F31, 	//< SoLSA LSA List EF
       
  6659 		//KMexestEf			=0x4F40, 	//< MExE Service table EF
       
  6660 		//KOrpkEf			=0x4F41, 	//< Operator Root Public Key EF
       
  6661 		//KArpkEf			=0x4F42, 	//< Administrator Root Public Key EF
       
  6662 		//KTprpkEf			=0x4F43, 	//< Third Party Root Public Key EF
       
  6663 		KMmlEf			    =0x4F47, 	//< Multimedia Messages List EF
       
  6664 		KMmdfEf		        =0x4F48, 	//< Multimedia Messages Data File EF
       
  6665 		//KKcgprsEf			=0x4F52, 	//< GPRS Ciphering key KcGPRS EF
       
  6666 		//KCpbcchEf			=0x4F63, 	//< CPBCCH Information EF
       
  6667 		KInvScan			=0x4F64,	//< Investigation File EF
       
  6668 		KImpiEf				=0x6F02,	//< IMS private user identity EF
       
  6669 		KImpuEf				=0x6F03,	//< IMS public user identity EF (Note: TS 31.103 defines this as 6F04)
       
  6670 		KDomainEf			=0x6F04,	//< Home Network Domain Name EF (Note: TS 31.103 defines this as 6F03)
       
  6671 		KLpEf				=0x6F05,	//< Language Preference EF
       
  6672 		KArradEf			=0x6F06,	//< Access rule reference (under ADFUSIM and DFTELECOM) EF
       
  6673 		KImsiEf				=0x6F07,	//< IMSI EF
       
  6674 		//KKeysEf			=0x6F08, 	//< Ciphering and Integrity Keys EF
       
  6675 		//KKeysPsEf			=0x6F09, 	//< Ciphering and Integrity Keys for Packet Switched domain EF
       
  6676 		KCsp1Ef				=0x6F15,	//< CSP 1 EF (7F20/21 6F15)
       
  6677 		KDckEf				=0x6F2C,	//< De-personalization Control Keys EF
       
  6678 		KPlmnSelEf			=0x6F30,	//< PLMN Selection EF
       
  6679 		KHplmnEf			=0x6F31,	//< Higher Priority PLMN search period EF
       
  6680 		KCnlEf				=0x6F32,	//< Co-operative Network List EF
       
  6681 		KAcmMaxEf			=0x6F37,	//< ACM max value EF
       
  6682 		KSstEf				=0x6F38,	//< SIM Service Table EF
       
  6683 		KAcmEf				=0x6F39,	//< Accumulated Call Meter EF
       
  6684 		KAdnEf				=0x6F3A,	//< Abbreviated Dialling Numbers EF
       
  6685 		KFdnEf				=0x6F3B,	//< Fixed Diallind Numbers EF
       
  6686 		KSmsEf				=0x6F3C,	//< Short Messages EF
       
  6687 		KCcpEf				=0x6F3D,	//< Capability Configuration Parameters EF
       
  6688 		KGid1Ef				=0x6F3E,	//< Group Identifier Level 1 EF
       
  6689 		KGid2Ef				=0x6F3F,	//< Group Identifier Level 2 EF
       
  6690 		KMsisdnEf			=0x6F40,	//< MS ISDN EF
       
  6691 		KPuctEf				=0x6F41,	//< Price per Unit and Currency Table EF
       
  6692 		KSmspEf				=0x6F42,	//< SMS Parameters EF
       
  6693 		KSmssEf				=0x6F43,	//< SMS Status EF
       
  6694 		KLndEf				=0x6F44,	//< Last Number Dialled EF
       
  6695 		KCbmiEf				=0x6F45,	//< Cell Broadcast Message Identifier
       
  6696 		KSpnEf				=0x6F46,	//< Service Provider Name EF
       
  6697 		KSmsrEf				=0x6F47,	//< SMS reports EF
       
  6698 		KCbmidEf			=0x6F48,	//< CBMI for Data Download EF
       
  6699 		KSdnEf				=0x6F49,	//< Service Dialling Numbers EF
       
  6700 		KExt1Ef				=0x6F4A,	//< Extension 1 EF
       
  6701 		KExt2Ef				=0x6F4B,	//< Extension 2 EF
       
  6702 		KExt3Ef				=0x6F4C,	//< Extension 3 EF
       
  6703 		KBdnEf				=0x6F4D,	//< Barred Dialling Numbers EF
       
  6704 		KExt5Ef				=0x6F4E,	//< Extension 5 EF
       
  6705 		KCcp2Ef				=0x6F4F,	//< Capability configuration parameters 2 EF
       
  6706 		KCbmirEf			=0x6F50,	//< CBMI Range Selection EF
       
  6707 		KNiaEf				=0x6F51,	//< Network's Indication of Alerting EF (upto Rel 99)
       
  6708 		KLociGprsEf			=0x6F53,	//< GPRS Location Information EF
       
  6709 		KSumeEf				=0x6F54,	//< SetUpMenu Elements EF
       
  6710 		KExt4Ef				=0x6F55,	//< Extension 4 EF
       
  6711 		KEstEf				=0x6F56,	//< Enabled services table EF
       
  6712 		KAclEf				=0x6F57,	//< Access point name control list EF
       
  6713 		KCmiEf				=0x6F58,	//< Comparison method information EF
       
  6714 		KStartHfnEf			=0x6F5B,	//< Initialisation value for Hyperframe number EF
       
  6715 		KThresholdEf		=0x6F5C,	//< Maximum value of START EF
       
  6716 		//KUPlmnwAcTEf		=0x6F60, 	//< User controlled PLMN selector with Access Technology EF
       
  6717 		KOPlmnwAcTEf		=0x6F61,	//< Operator controlled PLMN selector with Access Technology EF
       
  6718 		KHPlmnwAcTEf		=0x6F62,	//< HPLMN selector with Access Technology EF
       
  6719 		KRplmnActEf			=0x6F65,	//< RPLMN Last used Access Technology EF
       
  6720 		KPsLociEf			=0x6F73,	//< Packet switched location information EF
       
  6721 		KAccEf				=0x6F78,	//< Access Control Class EF
       
  6722 		KFPlmnEf			=0x6F7B,	//< Forbidden PLMN EF
       
  6723 		//KLociEf			=0x6F7E, 	//< Location Information EF
       
  6724 		KIciEf				=0x6F80,	//< Incoming call information EF
       
  6725 		KOciEf				=0x6F81,	//< Outgoing call information EF
       
  6726 		KIctEf				=0x6F82,	//< Incoming call timer EF
       
  6727 		KOctEf				=0x6F83,	//< Outgoing call timer EF
       
  6728 		KCsp2Ef				=0x6F98,	//< CSP 2 EF (7F40 6F98)
       
  6729 		KAdEf				=0x6FAD,	//< Administrative Data EF
       
  6730 		KPhaseEf			=0x6FAE,	//< Phase Identification EF
       
  6731 		KVcgsEf				=0x6FB1,	//< Voice Group Call Service EF
       
  6732 		KVgcssEf			=0x6FB2,	//< Voice Group Call Service Status EF
       
  6733 		KVbsEf				=0x6FB3,	//< Voice Broadcast Service EF
       
  6734 		KVbssEf				=0x6FB4,	//< Voice Broadcast Service Status EF
       
  6735 		KeMlppEf			=0x6FB5,	//< enhanced Multi Level Pre-emption and Priority EF
       
  6736 		KAaemef				=0x6FB6,	//< Automatic Answer for eMLLP Service EF
       
  6737 		KEccEf				=0x6FB7,	//< Emergency Call Codes EF
       
  6738 		KGmsi				=0x6FC2,	//< Group Identity EF
       
  6739 		KHiddenKeyEf        =0x6FC3,	//< Key for hidden phone book entries EF
       
  6740 		//KNetpEf			=0x6FC4, 	//< Network Parameters EF
       
  6741 		KPnnEf				=0x6FC5,	//< PLMN Network Name EF
       
  6742 		KOplEf				=0x6FC6,	//< Operator Network List EF
       
  6743 		KMbdnEf				=0x6FC7,	//< Mailbox Dialling Numbers EF
       
  6744 		KExt6Ef				=0x6FC8,	//< Extension 6 EF
       
  6745 		KMbiEf				=0x6FC9,	//< Mailbox Identifier EF
       
  6746 		KMwisEf				=0x6FCA,	//< Message Waiting Indication Status EF
       
  6747 		KCfisEf				=0x6FCB,	//< Call Forwarding Indication Status EF
       
  6748 		KExt7Ef				=0x6FCC,	//< Extension 7 EF
       
  6749 		KSpdiEf				=0x6FCD,	//< Service provider display information EF
       
  6750 		KMmsnEF				=0x6FCE,	//< MMS notification EF
       
  6751 		KExt8Ef				=0x6FCF,	//< Extension 8 EF
       
  6752 		KMmsicpEf			=0x6FD0,	//< MMS issuer connectivity parameters EF
       
  6753 		KMmsupEf			=0x6FD1,	//< MMS user preferences EF
       
  6754 		KMmsucpEf			=0x6FD2, 	//< MMS user connectivity parameters EF
       
  6755 		KNiaRel5Ef			=0x6FD3,	//< Network's Indication of Alerting EF (from Rel 5 onwards)
       
  6756 		KVgcscaEf			=0x6FD4,    //< Voice Group Call Service Ciphering Algorithm EF
       
  6757         KVbscaEf            =0x6FD5,	//< Voice Broadcast Service Ciphering Algorithm EF
       
  6758         KGbabpEf            =0x6FD6,	//< GBA Bootstrapping parameters EF
       
  6759         KMsklEf          =0x6FD7,	//< MBMS Service Keys List EF
       
  6760         KMukEf           =0x6FD8,	//< MBMS User Key EF
       
  6761 		KGbanlEf          =0x6FDA,	//< GBA NAF List EF
       
  6762 		};
       
  6763 
       
  6764 
       
  6765 	//
       
  6766 	//REFRESH REQUIRED
       
  6767 	//
       
  6768 	IMPORT_C void NotifyRefreshRequired(TRequestStatus& aReqStatus) const;
       
  6769 	IMPORT_C void NotifyRefreshRequired(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  6770 	IMPORT_C void RefreshAllowed(TRequestStatus& aReqStatus, const TDesC8& aRefreshAllowedRsp) const;
       
  6771 
       
  6772     class TOpenChannelRspV2 : public TSatPCmdBase
       
  6773     /**
       
  6774     Contains your response to a OPEN CHANNEL proactive command.  Pass this to
       
  6775     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  6776     102 223 and RSat::NotifyOpenChannelPCmd() for more information about
       
  6777     the command.
       
  6778 
       
  6779     For Symbian OS versions from 7.0s to  v8.1a and v8.1b pass
       
  6780     RSat::TerminalRsp() a RSat::TOpenChannelRspV2Pckg (a packaged
       
  6781     TOpenChannelRspV2). For later versions of Symbian OS, check for an updated
       
  6782     API (RSat::TOpenChannelRspV3 etc).
       
  6783 
       
  6784     @see RSat::NotifyOpenChannelPCmd()
       
  6785     */
       
  6786         {
       
  6787     public:
       
  6788         IMPORT_C TOpenChannelRspV2();
       
  6789     public:
       
  6790          /** General result of the proactive command. Set this as described in
       
  6791         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  6792         TPCmdResult iGeneralResult;
       
  6793 
       
  6794         /** If you successfully opened a channel, then return the channel's number and
       
  6795         status in iAdditionalInfo and set iInfoType to
       
  6796         RSat::KChannelStatusInfo. Alternatively, some error values of
       
  6797         iGeneralResult require additional information, in which case set this
       
  6798         to RSat::KMeProblem.  Otherwise set to RSat::KNoAdditionalInfo. */
       
  6799         TUint iInfoType;
       
  6800 
       
  6801         /** If you successfully opened a channel, you need to give the channel
       
  6802         a number from 1 to 7.  Return this number plus the channel's status in
       
  6803         iAdditionalInfo.  The format is described in  ETSI TS 102 223 section
       
  6804         8.56.  See RSat::NotifyOpenChannelPCmd() for more information about
       
  6805         channel numbers.
       
  6806 
       
  6807         Alternatively, some error values of iGeneralResult require additional
       
  6808         information, which goes here. */
       
  6809         TAdditionalInfo iAdditionalInfo;
       
  6810 
       
  6811         /** The RSat::TBearer from the OPEN CHANNEL command to which you are responding. */
       
  6812         TBearer iBearer;
       
  6813 
       
  6814         /** The buffer size from the OPEN CHANNEL command to which you are responding.*/
       
  6815         TUint16 iBufferSize;
       
  6816         };
       
  6817 
       
  6818     /** A packaged RSat::TOpenChannelRspV2. */
       
  6819     typedef TPckg<TOpenChannelRspV2>  TOpenChannelRspV2Pckg;
       
  6820 
       
  6821 	//
       
  6822 	// CLOSE CHANNEL
       
  6823 	//
       
  6824     class TCloseChannelV2 : public TSatPCmdBase
       
  6825     /**
       
  6826     This contains a CLOSE CHANNEL proactive command which asks the phone to
       
  6827     close a channel previously open with an OPEN CHANNEL command.     See ETSI
       
  6828     TS 102 223 and RSat::NotifyCloseChannelPCmd() for more information about the
       
  6829     command.
       
  6830     Request notification for CLOSE CHANNEL with
       
  6831     RSat::NotifyCloseChannelPCmd(), passing it an object in which to store the
       
  6832     command when it arrives.  Pass a packaged version of the  latest
       
  6833     "TCloseChannel" class. For Symbian OS versions from 7.0s to v8.1a and
       
  6834     8.1b use RSat::TCloseChannelV2Pckg, a packaged RSat::TCloseChannelV2.  For later
       
  6835     versions of Symbian OS, check for an updated API (RSat::TCloseChannelV3 etc).
       
  6836 
       
  6837     @see RSat::TCloseChannelV2Pckg
       
  6838     @see RSat::NotifyCloseChannelPCmd()
       
  6839     */
       
  6840         {
       
  6841     public:
       
  6842         IMPORT_C TCloseChannelV2();
       
  6843     public:
       
  6844         TDeviceId iDestination; //< Specify which channel to close.
       
  6845         TAlphaId iAlphaId;      //< Alpha identifier containg text to display to the user.
       
  6846         TIconId iIconId;        //< Identifies the icon to display.
       
  6847         };
       
  6848 
       
  6849     /** A packaged RSat::TCloseChannelV2. */
       
  6850     typedef TPckg<TCloseChannelV2>  TCloseChannelV2Pckg;
       
  6851 
       
  6852 	class TCloseChannelV5 : public TCloseChannelV2
       
  6853 	/**
       
  6854 	This contains a CLOSE CHANNEL proactive command which asks the phone to
       
  6855 	close a channel previously open with an OPEN CHANNEL command.     See ETSI
       
  6856 	TS 102 223 and RSat::NotifyCloseChannelPCmd() for more information about the
       
  6857 	command.
       
  6858 	Request notification for CLOSE CHANNEL with
       
  6859 	RSat::NotifyCloseChannelPCmd(), passing it an object in which to store the
       
  6860 	command when it arrives.  Pass a packaged version of the latest
       
  6861 	"TCloseChannel" class. For Symbian OS versions from 7.0s to v8.1a and
       
  6862 	8.1b use RSat::TCloseChannelV2Pckg, a packaged RSat::TCloseChannelV2.
       
  6863 	For Symbian OS 9.2, use RSat::TCloseChannelV5Pckg.
       
  6864 	For later versions of Symbian OS, check for an updated API
       
  6865 	(RSat::TCloseChannelV6 etc).
       
  6866 
       
  6867 	@see RSat::TCloseChannelV2
       
  6868 	@see RSat::TCloseChannelV5Pckg
       
  6869 	@see RSat::NotifyCloseChannelPCmd()
       
  6870 	*/
       
  6871 		{
       
  6872 	public:
       
  6873 		IMPORT_C TCloseChannelV5();
       
  6874 
       
  6875 	public:
       
  6876 		/** Contains formatting information to be applied when
       
  6877 		RSat::TCloseChannelV2::iAlphaId is displayed.
       
  6878 		@see RSat::TTextAttribute 
       
  6879 		*/
       
  6880 		TTextAttribute iTextAttribute;
       
  6881 		};
       
  6882 
       
  6883 	/** A packaged RSat::TCloseChannelV5. */
       
  6884 	typedef TPckg<TCloseChannelV5>  TCloseChannelV5Pckg;
       
  6885 
       
  6886 	class TCloseChannelV6 : public TCloseChannelV5
       
  6887 	/**
       
  6888 	This contains a CLOSE CHANNEL proactive command which asks the phone to
       
  6889 	close a channel previously open with an OPEN CHANNEL command.     See ETSI
       
  6890 	TS 102 223 and RSat::NotifyCloseChannelPCmd() for more information about the
       
  6891 	command.
       
  6892 	Request notification for CLOSE CHANNEL with
       
  6893 	RSat::NotifyCloseChannelPCmd(), passing it an object in which to store the
       
  6894 	command when it arrives.  Pass a packaged version of the latest
       
  6895 	"TCloseChannel" class. For Symbian OS versions from 7.0s to v8.1a and
       
  6896 	8.1b use RSat::TCloseChannelV2Pckg, a packaged RSat::TCloseChannelV2.
       
  6897 	For Symbian OS 9.2, use RSat::TCloseChannelV5Pckg.
       
  6898 	For Symbian OS 9.4, use RSat::TCloseChannelV6Pckg.
       
  6899 	For later versions of Symbian OS, check for an updated API
       
  6900 	(RSat::TCloseChannelV7 etc).
       
  6901 
       
  6902 	@see RSat::TCloseChannelV5
       
  6903 	@see RSat::TCloseChannelV6Pckg
       
  6904 	@see RSat::NotifyCloseChannelPCmd()
       
  6905 	*/
       
  6906 		{
       
  6907 	public:
       
  6908 		IMPORT_C TCloseChannelV6();
       
  6909 
       
  6910 	public:
       
  6911 		TUint8 iFrameId; //< Each frame has an ID. This field contains the ID of the frame.
       
  6912 		};
       
  6913 
       
  6914 	/** A packaged RSat::TCloseChannelV6. */
       
  6915 	typedef TPckg<TCloseChannelV6>  TCloseChannelV6Pckg;
       
  6916 	
       
  6917     IMPORT_C void NotifyCloseChannelPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  6918 
       
  6919 
       
  6920     class TCloseChannelRspV2 : public TSatPCmdBase
       
  6921     /**
       
  6922     Contains your response to a CLOSE CHANNEL proactive command.  Pass this to
       
  6923     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  6924     102 223 and RSat::NotifyCloseChannelPCmd() for more information about
       
  6925     the command.
       
  6926 
       
  6927     For Symbian OS versions from 7.0s to  v8.1a and v8.1b pass
       
  6928     RSat::TerminalRsp() a RSat::TCloseChannelRspV2Pckg (a packaged
       
  6929     TCloseChannelRspV2). For later versions of Symbian OS, check for an updated
       
  6930     API (RSat::TCloseChannelRspV3 etc).
       
  6931 
       
  6932     @see RSat::NotifyCloseChannelPCmd()
       
  6933     */
       
  6934         {
       
  6935     public:
       
  6936         IMPORT_C TCloseChannelRspV2();
       
  6937     public:
       
  6938          /** General result of the proactive command. Set this as described in
       
  6939         ETSI TS 102 223. */
       
  6940         TPCmdResult iGeneralResult;
       
  6941 
       
  6942         /** If the value of iGeneralResult requires additional information,
       
  6943         set this to RSat::KMeProblem.  Otherwise set to
       
  6944         RSat::KNoAdditionalInfo. */
       
  6945         TUint iInfoType;
       
  6946 
       
  6947         /** Contains additional information associated with certain error codes
       
  6948         set in iGeneralResult. If the value in iGeneralResult does not require
       
  6949         any information then leave this field empty.*/
       
  6950         TAdditionalInfo iAdditionalInfo;
       
  6951         };
       
  6952 
       
  6953     /** A packaged RSat::TCloseChannelRspV2. */
       
  6954     typedef TPckg<TCloseChannelRspV2>  TCloseChannelRspV2Pckg;
       
  6955 
       
  6956     //
       
  6957     // RECEIVE DATA
       
  6958     //
       
  6959 
       
  6960     class TReceiveDataV2 : public TSatPCmdBase
       
  6961     /**
       
  6962     Contains a RECEIVE DATA proactive command issued by the UICC.   See
       
  6963     ETSI TS 102 223 and RSat::NotifyReceiveDataPCmd() for more information about
       
  6964     the command.
       
  6965 
       
  6966     Request notification for RECEIVE DATA with RSat::NotifyReceiveDataPCmd(), passing
       
  6967     it an object in which to store the command when it arrives.  Pass a
       
  6968     packaged version of the  latest "TReceiveData" class. For Symbian OS versions
       
  6969     up to and including v8.1a and 8.1b use RSat::TReceiveDataV1Pckg, a packaged
       
  6970     RSat::TReceiveDataV1.  For later versions of Symbian OS, check for an updated
       
  6971     API (RSat::TReceiveDataV2 etc).
       
  6972 
       
  6973     @see RSat::TReceiveDataV2Pckg
       
  6974     @see RSat::NotifyReceiveDataPCmd()
       
  6975     */
       
  6976         {
       
  6977     public:
       
  6978         IMPORT_C TReceiveDataV2();
       
  6979     public:
       
  6980         TDeviceId iDestination;     //< Specify which channel on which to receive data.
       
  6981         TAlphaId iAlphaId;          //< Alpha identifier containing text to display to the user.
       
  6982         TIconId iIconId;            //< Identifies the icon to display.
       
  6983         TUint8 iChannelDataLength;  //< Number of bytes that are requested.
       
  6984         };
       
  6985 
       
  6986     /** A packaged RSat::TReceiveDataV2. */
       
  6987     typedef TPckg<TReceiveDataV2>  TReceiveDataV2Pckg;
       
  6988 
       
  6989 	class TReceiveDataV5 : public TReceiveDataV2
       
  6990 	/**
       
  6991 	Contains a RECEIVE DATA proactive command issued by the UICC.   See
       
  6992 	ETSI TS 102 223 and RSat::NotifyReceiveDataPCmd() for more information about
       
  6993 	the command.
       
  6994 
       
  6995 	Request notification for RECEIVE DATA with RSat::NotifyReceiveDataPCmd(), passing
       
  6996 	it an object in which to store the command when it arrives.  Pass a
       
  6997 	packaged version of the  latest "TReceiveData" class. For Symbian OS versions
       
  6998 	up to and including v8.1a and 8.1b use RSat::TReceiveDataV1Pckg, a packaged
       
  6999 	RSat::TReceiveDataV1.
       
  7000 	For Symbian OS 9.2, use RSat::TReceiveDataV5Pckg. For later versions of
       
  7001 	Symbian OS,	check for an updated API (RSat::TReceiveDataV5 etc).
       
  7002 
       
  7003 	@see RSat::TReceiveDataV2
       
  7004 	@see RSat::TReceiveDataV5Pckg
       
  7005    	@see RSat::NotifyReceiveDataPCmd()
       
  7006 	*/
       
  7007 		{
       
  7008 	public:
       
  7009 		IMPORT_C TReceiveDataV5();
       
  7010 
       
  7011 	public:
       
  7012 		/** Contains formatting information to be applied when
       
  7013 		RSat::TReceiveDataV2::iAlphaId is displayed.
       
  7014 		@see RSat::TTextAttribute 
       
  7015 		*/
       
  7016 		TTextAttribute iTextAttribute;
       
  7017 		};
       
  7018 
       
  7019 	/** A packaged RSat::TReceiveDataV5. */
       
  7020 	typedef TPckg<TReceiveDataV5>  TReceiveDataV5Pckg;
       
  7021 
       
  7022 	class TReceiveDataV6 : public TReceiveDataV5
       
  7023 	/**
       
  7024 	Contains a RECEIVE DATA proactive command issued by the UICC.   See
       
  7025 	ETSI TS 102 223 and RSat::NotifyReceiveDataPCmd() for more information about
       
  7026 	the command.
       
  7027 
       
  7028 	Request notification for RECEIVE DATA with RSat::NotifyReceiveDataPCmd(), passing
       
  7029 	it an object in which to store the command when it arrives.  Pass a
       
  7030 	packaged version of the  latest "TReceiveData" class. For Symbian OS versions
       
  7031 	up to and including v8.1a and 8.1b use RSat::TReceiveDataV1Pckg, a packaged
       
  7032 	RSat::TReceiveDataV1.
       
  7033 	For Symbian OS 9.2, use RSat::TReceiveDataV5Pckg.
       
  7034 	For Symbian OS 9.4, use RSat::TReceiveDataV6Pckg.For later versions of
       
  7035 	Symbian OS,	check for an updated API (RSat::TReceiveDataV7 etc).
       
  7036 
       
  7037 	@see RSat::TReceiveDataV5
       
  7038 	@see RSat::TReceiveDataV6Pckg
       
  7039    	@see RSat::NotifyReceiveDataPCmd()
       
  7040    	*/
       
  7041 		{
       
  7042 	public:
       
  7043 		IMPORT_C TReceiveDataV6();
       
  7044 
       
  7045 	public:
       
  7046 		TUint8 iFrameId; //<  Each frame has an ID. This field contains the ID of the frame.
       
  7047 		};
       
  7048 
       
  7049 	/** A packaged RSat::TReceiveDataV6. */
       
  7050 	typedef TPckg<TReceiveDataV6>  TReceiveDataV6Pckg;
       
  7051 	
       
  7052     IMPORT_C void NotifyReceiveDataPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  7053 
       
  7054     class TReceiveDataRspV2 : public TSatPCmdBase
       
  7055     /**
       
  7056     Contains your response to a RECEIVE DATA proactive command.  Pass this to
       
  7057     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  7058     102 223 and RSat::NotifyReceiveDataPCmd() for more information about
       
  7059     the command.
       
  7060 
       
  7061     For Symbian OS versions from 7.0s to  v8.1a and v8.1b pass
       
  7062     RSat::TerminalRsp() a RSat::TReceiveDataRspV2Pckg (a packaged
       
  7063     TReceiveDataRspV2). For later versions of Symbian OS, check for an updated
       
  7064     API (RSat::TReceiveDataRspV3 etc).
       
  7065 
       
  7066     @see RSat::NotifyReceiveDataPCmd()
       
  7067     */
       
  7068         {
       
  7069     public:
       
  7070         IMPORT_C TReceiveDataRspV2();
       
  7071     public:
       
  7072          /** General result of the proactive command. Set this as described in
       
  7073         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  7074         TPCmdResult iGeneralResult;
       
  7075 
       
  7076         /** If you are returning data to the UICC then set this to
       
  7077         RSat::KChannelData.   Some error values of iGeneralResult require
       
  7078         additional information, in which case set this to RSat::KMeProblem.
       
  7079         Otherwise set to RSat::KNoAdditionalInfo. */
       
  7080         TUint iInfoType;
       
  7081 
       
  7082         /** Contains the data that you are returning to the UICC.
       
  7083         Alternatively, some error values of iGeneralResult require additional
       
  7084         information, which goes here. */
       
  7085         TAdditionalInfo iAdditionalInfo;
       
  7086 
       
  7087         TUint8 iChannelDataLength;
       
  7088         };
       
  7089 
       
  7090     /** A packaged RSat::TReceiveDataRspV2. */
       
  7091     typedef TPckg<TReceiveDataRspV2>  TReceiveDataRspV2Pckg;
       
  7092 
       
  7093     //
       
  7094     // SEND DATA
       
  7095     //
       
  7096 
       
  7097     enum TSendDataMode
       
  7098     /** Part of a SEND DATA proactive command.  Describes the way in which data
       
  7099     is send: should the SEND DATA command's data be sent immediately, or should
       
  7100     the data from a series of SEND DATA command be buffered by the phone and
       
  7101     sent at whatever rate the phone considers to be the best.
       
  7102 
       
  7103     @see RSat::TSendDataV2
       
  7104     @see RSat::NotifySendDataPCmd() */
       
  7105         {
       
  7106         ESendDataModeNotSet,
       
  7107         EStoreDataInTxBuffer,
       
  7108         ESendDataImmediately
       
  7109         };
       
  7110 
       
  7111 	/** @see RSat::TChannelData */
       
  7112     enum {KChannelDataMaxSize=245};
       
  7113 
       
  7114     /** Part of a SEND DATA proactive command.  Contains the data to be sent.
       
  7115     @see RSat::TSendDataV2
       
  7116     @see RSat::NotifySendDataPCmd() */
       
  7117     typedef TBuf8<KChannelDataMaxSize> TChannelData;
       
  7118 
       
  7119 
       
  7120     class TSendDataV2 : public TSatPCmdBase
       
  7121     /**
       
  7122     Contains a SEND DATA proactive command issued by the UICC.   See
       
  7123     ETSI TS 102 223 and RSat::NotifySendDataPCmd() for more information about
       
  7124     the command.
       
  7125 
       
  7126     Request notification for SEND DATA with RSat::NotifyReceiveDataPCmd(), passing
       
  7127     it an object in which to store the command when it arrives.  Pass a
       
  7128     packaged version of the  latest "TSendData" class. For Symbian OS versions
       
  7129     up to and including v8.1a and 8.1b use RSat::TSendDataV1Pckg, a packaged
       
  7130     RSat::TSendDataV1.  For later versions of Symbian OS, check for an updated
       
  7131     API (RSat::TSendDataV2 etc).
       
  7132 
       
  7133     @see RSat::TSendDataV2Pckg
       
  7134     @see RSat::NotifySendDataPCmd()
       
  7135     */
       
  7136         {
       
  7137     public:
       
  7138         IMPORT_C TSendDataV2();
       
  7139     public:
       
  7140         TDeviceId iDestination;
       
  7141 
       
  7142         /** Should the SEND DATA command's data be sent immediately, or should
       
  7143         the data from a series of SEND DATA command be buffered by the phone
       
  7144         and sent at whatever rate the phone considers to be the best. */
       
  7145         TSendDataMode iMode;
       
  7146 
       
  7147         TAlphaId iAlphaId;          //< Alpha identifier containing text to display to the user.
       
  7148         TIconId iIconId;            //< Identifies the icon to display.
       
  7149         TChannelData iChannelData;  //< Channel data to send.
       
  7150         };
       
  7151 
       
  7152     /** A packaged RSat::TSendDataV2. */
       
  7153     typedef TPckg<TSendDataV2>  TSendDataV2Pckg;
       
  7154 
       
  7155 	class TSendDataV5 : public TSendDataV2
       
  7156 	/**
       
  7157 	Contains a SEND DATA proactive command issued by the UICC.   See
       
  7158 	ETSI TS 102 223 and RSat::NotifySendDataPCmd() for more information about
       
  7159 	the command.
       
  7160 
       
  7161 	Request notification for SEND DATA with RSat::NotifyReceiveDataPCmd(), passing
       
  7162 	it an object in which to store the command when it arrives.  Pass a
       
  7163 	packaged version of the  latest "TSendData" class. For Symbian OS versions
       
  7164 	up to and including v8.1a and 8.1b use RSat::TSendDataV1Pckg, a packaged
       
  7165 	RSat::TSendDataV1.  For Symbian OS 9.2, use TSendDataV5Pckg.
       
  7166 	For later versions of Symbian OS, check for an updated
       
  7167 	API (RSat::TSendDataV6 etc).
       
  7168 
       
  7169 	@see RSat::TSendDataV5Pckg
       
  7170 	@see RSat::NotifySendDataPCmd()
       
  7171 	*/
       
  7172 		{
       
  7173 	public:
       
  7174 		IMPORT_C TSendDataV5();
       
  7175 
       
  7176 	public:
       
  7177 		/** Contains formatting information to be applied when
       
  7178 		RSat::TSendDataV2::iAlphaId is displayed.
       
  7179 		@see RSat::TTextAttribute 
       
  7180 		*/
       
  7181 		TTextAttribute iTextAttribute;
       
  7182 		};
       
  7183 
       
  7184 	/** A packaged RSat::TSendDataV5. */
       
  7185 	typedef TPckg<TSendDataV5>  TSendDataV5Pckg;
       
  7186 
       
  7187 	class TSendDataV6 : public TSendDataV5
       
  7188 	/**
       
  7189 	Contains a SEND DATA proactive command issued by the UICC.   See
       
  7190 	ETSI TS 102 223 and RSat::NotifySendDataPCmd() for more information about
       
  7191 	the command.
       
  7192 
       
  7193 	Request notification for SEND DATA with RSat::NotifyReceiveDataPCmd(), passing
       
  7194 	it an object in which to store the command when it arrives.  Pass a
       
  7195 	packaged version of the  latest "TSendData" class. For Symbian OS versions
       
  7196 	up to and including v8.1a and 8.1b use RSat::TSendDataV1Pckg, a packaged
       
  7197 	RSat::TSendDataV1.  For Symbian OS 9.2, use TSendDataV5Pckg.
       
  7198 	For Symbian OS 9.4, use TSendDataV6Pckg.
       
  7199 	For later versions of Symbian OS, check for an updated
       
  7200 	API (RSat::TSendDataV7 etc).
       
  7201 
       
  7202 	@see RSat::TSendDataV6Pckg
       
  7203 	@see RSat::NotifySendDataPCmd()
       
  7204 	*/
       
  7205 		{
       
  7206 	public:
       
  7207 		IMPORT_C TSendDataV6();
       
  7208 
       
  7209 	public:
       
  7210 		TUint8 iFrameId; //<  Each frame has an ID. This field contains the ID of the frame. 
       
  7211 		};
       
  7212 
       
  7213 	/** A packaged RSat::TSendDataV6. */
       
  7214 	typedef TPckg<TSendDataV6>  TSendDataV6Pckg;
       
  7215 	
       
  7216     IMPORT_C void NotifySendDataPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  7217 
       
  7218 
       
  7219     class TSendDataRspV2 : public TSatPCmdBase
       
  7220     /**
       
  7221     Contains your response to a SEND DATA proactive command.  Pass this to
       
  7222     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  7223     102 223 and RSat::NotifySendDataPCmd() for more information about
       
  7224     the command.
       
  7225 
       
  7226     For Symbian OS versions from 7.0s to  v8.1a and v8.1b pass
       
  7227     RSat::TerminalRsp() a RSat::TSendDataRspV2Pckg (a packaged
       
  7228     TSendDataRspV2). For later versions of Symbian OS, check for an updated
       
  7229     API (RSat::TSendDataRspV3 etc).
       
  7230 
       
  7231     @see RSat::NotifySendDataPCmd()
       
  7232     */
       
  7233         {
       
  7234     public:
       
  7235         IMPORT_C TSendDataRspV2();
       
  7236     public:
       
  7237          /** General result of the proactive command. Set this as described in
       
  7238         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  7239         TPCmdResult iGeneralResult;
       
  7240 
       
  7241         TUint iInfoType;                //< Additional Info type
       
  7242         TAdditionalInfo iAdditionalInfo;//< Additional information
       
  7243         TUint8 iChannelDataLength;      //< Channel data length.
       
  7244         };
       
  7245 
       
  7246     /** A packaged RSat::TSendDataRspV2. */
       
  7247     typedef TPckg<TSendDataRspV2>  TSendDataRspV2Pckg;
       
  7248 
       
  7249     //
       
  7250     // GET CHANNEL STATUS
       
  7251     //
       
  7252 
       
  7253     class TGetChannelStatusV2 : public TSatPCmdBase
       
  7254     /**
       
  7255     Contains a GET CHANNEL STATUS proactive command issued by the UICC.   See
       
  7256     ETSI TS 102 223 and RSat::NotifyGetChannelStatusPCmd() for more information about
       
  7257     the command.
       
  7258 
       
  7259     Request notification for GET CHANNEL STATUS with RSat::NotifyGetChannelStatusPCmd(), passing
       
  7260     it an object in which to store the command when it arrives.  Pass a
       
  7261     packaged version of the  latest "TGetChannelStatus" class. For Symbian OS versions
       
  7262     up to and including v8.1a and 8.1b use RSat::TGetChannelStatusV1Pckg, a packaged
       
  7263     RSat::TGetChannelStatusV1.  For later versions of Symbian OS, check for an updated
       
  7264     API (RSat::TGetChannelStatusV2 etc).
       
  7265 
       
  7266     @see RSat::TGetChannelStatusV2Pckg
       
  7267     @see RSat::NotifyGetChannelStatusPCmd()
       
  7268     */
       
  7269         {
       
  7270     public:
       
  7271         IMPORT_C TGetChannelStatusV2();
       
  7272         };
       
  7273 
       
  7274     /** A packaged RSat::TGetChannelStatusV2. */
       
  7275     typedef TPckg<TGetChannelStatusV2> TGetChannelStatusV2Pckg;
       
  7276 
       
  7277     IMPORT_C void NotifyGetChannelStatusPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  7278 
       
  7279 
       
  7280     class TGetChannelStatusRspV2 : public TSatPCmdBase
       
  7281     /**
       
  7282     Contains your response to a GET CHANNEL STATUS proactive command.  Pass this to
       
  7283     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  7284     102 223 and RSat::NotifyGetChannelStatusPCmd() for more information about
       
  7285     the command.
       
  7286 
       
  7287     For Symbian OS versions from 7.0s to  v8.1a and v8.1b pass
       
  7288     RSat::TerminalRsp() a RSat::TGetChannelStatusRspV2Pckg (a packaged
       
  7289     TGetChannelStatusRspV2). For later versions of Symbian OS, check for an updated
       
  7290     API (RSat::TGetChannelStatusRspV3 etc).
       
  7291 
       
  7292     @see RSat::NotifyGetChannelStatusPCmd()
       
  7293     */
       
  7294         {
       
  7295     public:
       
  7296         IMPORT_C TGetChannelStatusRspV2();
       
  7297     public:
       
  7298          /** General result of the proactive command. Set this as described in
       
  7299         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  7300         TPCmdResult iGeneralResult;
       
  7301 
       
  7302         TUint iInfoType;                //< Additional Info type
       
  7303         TAdditionalInfo iAdditionalInfo;//< Additional information
       
  7304         };
       
  7305 
       
  7306     /** A packaged RSat::TGetChannelStatusRspV2. */
       
  7307     typedef TPckg<TGetChannelStatusRspV2>  TGetChannelStatusRspV2Pckg;
       
  7308 
       
  7309     //
       
  7310     // SERVICE SEARCH
       
  7311     //
       
  7312 
       
  7313 	/** RSat::TServiceSearchParam */
       
  7314     enum {KServiceSearchMaxSize=242};
       
  7315     /** Part of a SERVICE SEARCH proactive command.
       
  7316     @see RSat::TServiceSearchV2 */
       
  7317     typedef TBuf8<KServiceSearchMaxSize> TServiceSearchParam;
       
  7318 
       
  7319     struct TServiceSearchInfo
       
  7320     /** Part of a SERVICE SEARCH proactive command.
       
  7321     @see RSat::TServiceSearchV2 */
       
  7322         {
       
  7323         TLocalBearerId iBearerId;           //< Local bearer identifier
       
  7324         TServiceSearchParam iSearchParam;   //< Service search parameters
       
  7325         };
       
  7326 
       
  7327 	/** @see RSat::TDeviceFilter */
       
  7328     enum {KDeviceFilterMaxSize=239};
       
  7329     /** Part of a SERVICE SEARCH proactive command.
       
  7330     @see RSat::TServiceSearchV2 */
       
  7331     typedef TBuf8<KDeviceFilterMaxSize> TDeviceFilter;
       
  7332 
       
  7333     struct TDeviceFilterInfo
       
  7334     /** Part of a SERVICE SEARCH proactive command.
       
  7335     @see RSat::TServiceSearchV2 */
       
  7336         {
       
  7337         TLocalBearerId iBearerId;       //< Bearer identifier
       
  7338         TDeviceFilter iDeviceFilter;    //< Device filter
       
  7339         };
       
  7340 
       
  7341 
       
  7342     class TServiceSearchV2 : public TSatPCmdBase
       
  7343     /**
       
  7344     Contains a SERVICE SEARCH proactive command issued by the UICC.   See
       
  7345     ETSI TS 102 223 and RSat::NotifyServiceSearchPCmd() for more information about
       
  7346     the command.
       
  7347 
       
  7348     Request notification for SERVICE SEARCH with
       
  7349     RSat::NotifyServiceSearchPCmd(), passing it an object in which to store
       
  7350     the command when it arrives.  Pass a packaged version of the  latest
       
  7351     "TServiceSearch" class. For Symbian OS version from 7.0s to v8.1a and
       
  7352     8.1b use RSat:TServiceSearchV2Pckg, a packaged RSat::TServiceSearchV2.
       
  7353     For later versions of Symbian OS, check for an updated API
       
  7354     (RSat::TServiceSearchV3 etc).
       
  7355 
       
  7356     @see RSat::TServiceSearchV2Pckg
       
  7357     @see RSat::NotifyServiceSearchPCmd()
       
  7358     */
       
  7359         {
       
  7360     public:
       
  7361         IMPORT_C TServiceSearchV2();
       
  7362     public:
       
  7363         TAlphaId iAlphaId;          //< Alpha identifier that may contain text to display to the user.
       
  7364         TIconId iIconId;            //< Identifies the icon to display.
       
  7365         TServiceSearchInfo iSearch; //< Service search information
       
  7366         TDeviceFilterInfo iFilter;  //< Device filter information
       
  7367         };
       
  7368 
       
  7369     /** A packaged RSat::TServiceSearchV2. */
       
  7370     typedef TPckg<TServiceSearchV2> TServiceSearchV2Pckg;
       
  7371 
       
  7372 	class TServiceSearchV5 : public TServiceSearchV2
       
  7373 	/**
       
  7374 	Contains a SERVICE SEARCH proactive command issued by the UICC.   See
       
  7375 	ETSI TS 102 223 and RSat::NotifyServiceSearchPCmd() for more information about
       
  7376 	the command.
       
  7377 
       
  7378    	Request notification for SERVICE SEARCH with
       
  7379 	RSat::NotifyServiceSearchPCmd(), passing it an object in which to store
       
  7380 	the command when it arrives.  Pass a packaged version of the  latest
       
  7381 	"TServiceSearch" class. For Symbian OS version from 7.0s to v8.1a and
       
  7382 	8.1b use RSat:TServiceSearchV2Pckg, a packaged RSat::TServiceSearchV2.
       
  7383 	For Symbian OS 9.2, use TServiceSearchV5Pckg.
       
  7384 	For later versions of Symbian OS, check for an updated API
       
  7385 	(RSat::TServiceSearchV6 etc).
       
  7386 
       
  7387 	@see RSat::TServiceSearchV2
       
  7388 	@see RSat::TServiceSearchV5Pckg
       
  7389 	@see RSat::NotifyServiceSearchPCmd()
       
  7390 	*/
       
  7391 		{
       
  7392 	public:
       
  7393 		IMPORT_C TServiceSearchV5();
       
  7394 
       
  7395 	public:
       
  7396 		/** Contains formatting information to be applied when
       
  7397 		RSat::TServiceSearchV2::iAlphaId is displayed.
       
  7398 		@see RSat::TTextAttribute 
       
  7399 		*/
       
  7400 		TTextAttribute iTextAttribute;
       
  7401 		};
       
  7402 
       
  7403     /** A packaged RSat::TServiceSearchV5. */
       
  7404     typedef TPckg<TServiceSearchV5> TServiceSearchV5Pckg;
       
  7405     
       
  7406    	class TServiceSearchV6 : public TServiceSearchV5
       
  7407 	/**
       
  7408 	Contains a SERVICE SEARCH proactive command issued by the UICC.   See
       
  7409 	ETSI TS 102 223 and RSat::NotifyServiceSearchPCmd() for more information about
       
  7410 	the command.
       
  7411 
       
  7412    	Request notification for SERVICE SEARCH with
       
  7413 	RSat::NotifyServiceSearchPCmd(), passing it an object in which to store
       
  7414 	the command when it arrives.  Pass a packaged version of the  latest
       
  7415 	"TServiceSearch" class. For Symbian OS version from 7.0s to v8.1a and
       
  7416 	8.1b use RSat:TServiceSearchV2Pckg, a packaged RSat::TServiceSearchV2.
       
  7417 	For Symbian OS 9.2, use TServiceSearchV5Pckg.
       
  7418 	For Symbian OS 9.4, use TServiceSearchV6Pckg.
       
  7419 	For later versions of Symbian OS, check for an updated API
       
  7420 	(RSat::TServiceSearchV7 etc).
       
  7421 
       
  7422 	@see RSat::TServiceSearchV5
       
  7423 	@see RSat::TServiceSearchV6Pckg
       
  7424 	@see RSat::NotifyServiceSearchPCmd()
       
  7425 	*/
       
  7426 		{
       
  7427 	public:
       
  7428 		IMPORT_C TServiceSearchV6();
       
  7429 
       
  7430 	public:
       
  7431 		TUint8 iFrameId; //<  Each frame has an ID. This field contains the ID of the frame. 
       
  7432 		};
       
  7433 
       
  7434     /** A packaged RSat::TServiceSearchV6. */
       
  7435     typedef TPckg<TServiceSearchV6> TServiceSearchV6Pckg;
       
  7436     
       
  7437     IMPORT_C void NotifyServiceSearchPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  7438 
       
  7439     class TServiceSearchRspV2 : public TSatPCmdBase
       
  7440     /**
       
  7441     Contains your response to a SERVICE SEARCH proactive command.  Pass this to
       
  7442     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  7443     102 223 and RSat::NotifyServiceSearchPCmd() for more information about
       
  7444     the command.
       
  7445 
       
  7446     For Symbian OS versions from 7.0s to v8.1a and 8.1b pass
       
  7447     RSat::TerminalRsp() a RSat::TServiceSearchRspV2Pckg (a packaged
       
  7448     TServiceSearchRspV2). For later versions of Symbian OS, check for an
       
  7449     updated API (RSat::TServiceSearchRspV3 etc).
       
  7450 
       
  7451     @see RSat::NotifyServiceSearchPCmd()
       
  7452     */
       
  7453         {
       
  7454     public:
       
  7455         IMPORT_C TServiceSearchRspV2();
       
  7456     public:
       
  7457          /** General result of the proactive command. Set this as described in
       
  7458         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  7459         TPCmdResult iGeneralResult;
       
  7460 
       
  7461         TUint iInfoType;                //< Additional Info type
       
  7462         TAdditionalInfo iAdditionalInfo;//< Additional information
       
  7463        };
       
  7464 
       
  7465     /** A packaged RSat::TServiceSearchRspV2. */
       
  7466     typedef TPckg<TServiceSearchRspV2>  TServiceSearchRspV2Pckg;
       
  7467 
       
  7468     //
       
  7469     // GET SERVICE INFO
       
  7470     //
       
  7471 
       
  7472 	/**
       
  7473 	@see RSat::TAttributeInfo
       
  7474 	*/
       
  7475     enum {KAttributeInfoMaxSize=242};
       
  7476     /** Part of a GET SERVICE INFO proactive command.
       
  7477     @see RSat::TGetServiceInfoV2 */
       
  7478     typedef TBuf8<KAttributeInfoMaxSize> TAttributeInfo;
       
  7479 
       
  7480     struct TAttributeInfoDetails
       
  7481     /** Part of a GET SERVICE INFO proactive command.
       
  7482     @see RSat::TGetServiceInfoV2 */
       
  7483         {
       
  7484         TLocalBearerId iBearerId;       //< Local bearer identifier
       
  7485         TAttributeInfo iAttributeInfo;  //< Attribute information
       
  7486         };
       
  7487 
       
  7488 
       
  7489     class TGetServiceInfoV2 : public TSatPCmdBase
       
  7490     /**
       
  7491     Contains a GET SERVICE INFO proactive command issued by the UICC.   See
       
  7492     ETSI TS 102 223 and RSat::NotifyGetServiceInfoPCmd() for more information about
       
  7493     the command.
       
  7494 
       
  7495     Request notification for GET SERVICE INFO with
       
  7496     RSat::NotifyGetServiceInfoPCmd(), passing it an object in which to store
       
  7497     the command when it arrives.  Pass a packaged version of the  latest
       
  7498     "TGetServiceInfo" class. For Symbian OS version from 7.0s to v8.1a and
       
  7499     8.1b use RSat:TGetServiceInfoV2Pckg, a packaged RSat::TGetServiceInfoV2.
       
  7500     For later versions of Symbian OS, check for an updated API
       
  7501     (RSat::TGetServiceInfoV3 etc).
       
  7502 
       
  7503     @see RSat::TGetServiceInfoV2Pckg
       
  7504     @see RSat::NotifyGetServiceInfoPCmd()
       
  7505     */
       
  7506         {
       
  7507     public:
       
  7508         IMPORT_C TGetServiceInfoV2();
       
  7509     public:
       
  7510         TAlphaId iAlphaId;                      //< Alpha identifier that may contain text to display to the user.
       
  7511         TIconId iIconId;                        //< Identifies the icon to display.
       
  7512         TAttributeInfoDetails iAttributeInfo;   //< Attribute information details
       
  7513         };
       
  7514 
       
  7515     /** A packaged RSat::TGetServiceInfoV2. */
       
  7516     typedef TPckg<TGetServiceInfoV2> TGetServiceInfoV2Pckg;
       
  7517 
       
  7518 	class TGetServiceInfoV5: public TGetServiceInfoV2
       
  7519 	/**
       
  7520 	Contains a GET SERVICE INFO proactive command issued by the UICC.   See
       
  7521 	ETSI TS 102 223 and RSat::NotifyGetServiceInfoPCmd() for more information about
       
  7522 	the command.
       
  7523 
       
  7524 	Request notification for GET SERVICE INFO with
       
  7525 	RSat::NotifyGetServiceInfoPCmd(), passing it an object in which to store
       
  7526 	the command when it arrives.  Pass a packaged version of the  latest
       
  7527 	"TGetServiceInfo" class. For Symbian OS version from 7.0s to v8.1a and
       
  7528 	8.1b use RSat:TGetServiceInfoV2Pckg, a packaged RSat::TGetServiceInfoV2.
       
  7529 	For Symbian OS version 9.2, use TGetServiceInfoV5Pckg.
       
  7530 	For later versions of Symbian OS, check for an updated API
       
  7531 	(RSat::TGetServiceInfoV6 etc).
       
  7532 
       
  7533 	@see RSat::TGetServiceInfoV2
       
  7534 	@see RSat::TGetServiceInfoV5Pckg
       
  7535 	@see RSat::NotifyGetServiceInfoPCmd()
       
  7536 	*/
       
  7537 		{
       
  7538 	public:
       
  7539 		IMPORT_C TGetServiceInfoV5();
       
  7540 
       
  7541 	public:
       
  7542 		/** Contains formatting information to be applied when
       
  7543 		RSat::TGetServiceInfoV2::iAlphaId is displayed. 
       
  7544 		@see RSat::TTextAttribute
       
  7545 		*/
       
  7546 		TTextAttribute iTextAttribute;
       
  7547 		};
       
  7548 
       
  7549 	/** A packaged RSat::TGetServiceInfoV5. */
       
  7550 	typedef TPckg<TGetServiceInfoV5>  TGetServiceInfoV5Pckg;
       
  7551 
       
  7552 	class TGetServiceInfoV6: public TGetServiceInfoV5
       
  7553 	/**
       
  7554 	Contains a GET SERVICE INFO proactive command issued by the UICC.   See
       
  7555 	ETSI TS 102 223 and RSat::NotifyGetServiceInfoPCmd() for more information about
       
  7556 	the command.
       
  7557 
       
  7558 	Request notification for GET SERVICE INFO with
       
  7559 	RSat::NotifyGetServiceInfoPCmd(), passing it an object in which to store
       
  7560 	the command when it arrives.  Pass a packaged version of the  latest
       
  7561 	"TGetServiceInfo" class. For Symbian OS version from 7.0s to v8.1a and
       
  7562 	8.1b use RSat:TGetServiceInfoV2Pckg, a packaged RSat::TGetServiceInfoV2.
       
  7563 	For Symbian OS version 9.2, use TGetServiceInfoV5Pckg.
       
  7564 	For Symbian OS version 9.4, use TGetServiceInfoV6Pckg.
       
  7565 	For later versions of Symbian OS, check for an updated API
       
  7566 	(RSat::TGetServiceInfoV7 etc).
       
  7567 
       
  7568 	@see RSat::TGetServiceInfoV5
       
  7569 	@see RSat::TGetServiceInfoV6Pckg
       
  7570 	@see RSat::NotifyGetServiceInfoPCmd()
       
  7571 	*/
       
  7572 		{
       
  7573 	public:
       
  7574 		IMPORT_C TGetServiceInfoV6();
       
  7575 
       
  7576 	public:
       
  7577 		TUint8 iFrameId; //<  Each frame has an ID. This field contains the ID of the frame. 
       
  7578 		};
       
  7579 
       
  7580 	/** A packaged RSat::TGetServiceInfoV6. */
       
  7581 	typedef TPckg<TGetServiceInfoV6>  TGetServiceInfoV6Pckg;
       
  7582 	
       
  7583     IMPORT_C void NotifyGetServiceInfoPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  7584 
       
  7585     class TGetServiceInfoRspV2 : public TSatPCmdBase
       
  7586     /**
       
  7587     Contains your response to a GET SERVICE INFO proactive command.  Pass this to
       
  7588     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  7589     102 223 and RSat::NotifyGetServiceInfoPCmd() for more information about
       
  7590     the command.
       
  7591 
       
  7592     For Symbian OS versions from 7.0s to v8.1a and 8.1b pass
       
  7593     RSat::TerminalRsp() a RSat::TGetServiceInfoRspV2Pckg (a packaged
       
  7594     TGetServiceInfoRspV2). For later versions of Symbian OS, check for an
       
  7595     updated API (RSat::TGetServiceInfoRspV3 etc).
       
  7596 
       
  7597     @see RSat::NotifyGetServiceInfoPCmd()
       
  7598     */
       
  7599         {
       
  7600     public:
       
  7601         IMPORT_C TGetServiceInfoRspV2();
       
  7602     public:
       
  7603          /** General result of the proactive command. Set this as described in
       
  7604         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  7605         TPCmdResult iGeneralResult;
       
  7606 
       
  7607         TUint iInfoType;                //< Additional Info type
       
  7608         TAdditionalInfo iAdditionalInfo;//< Additional information
       
  7609         TServiceRecordInfo iRecordInfo; //< Service record information
       
  7610         };
       
  7611 
       
  7612     /** A packaged RSat::TGetServiceInfoRspV2. */
       
  7613     typedef TPckg<TGetServiceInfoRspV2>  TGetServiceInfoRspV2Pckg;
       
  7614 
       
  7615     //
       
  7616     // DECLARE SERVICE
       
  7617     //
       
  7618 
       
  7619     enum TServiceDeclarationType
       
  7620     /** Part of a DECLARE SERVICE proactive command.
       
  7621 
       
  7622     @see RSat::TDeclareServiceV2 */
       
  7623         {
       
  7624         EDeclarationTypeNotSet, //< Initialization value.
       
  7625         EAddService,            //< Add a new service to the ME service database.
       
  7626         EDeleteService          //< Delete a service from the ME service database.
       
  7627         };
       
  7628 
       
  7629     class TDeclareServiceV2 : public TSatPCmdBase
       
  7630     /**
       
  7631     Contains a DECLARE SERVICE proactive command issued by the UICC.   See
       
  7632     ETSI TS 102 223 and RSat::NotifyDeclareServicePCmd() for more information about
       
  7633     the command.
       
  7634 
       
  7635     Request notification for DECLARE SERVICE with
       
  7636     RSat::NotifyDeclareServicePCmd(), passing it an object in which to store
       
  7637     the command when it arrives.  Pass a packaged version of the  latest
       
  7638     "TDeclareService" class. For Symbian OS version from 7.0s to v8.1a and
       
  7639     8.1b use RSat:TDeclareServiceV2Pckg, a packaged RSat::TDeclareServiceV2.
       
  7640     For later versions of Symbian OS, check for an updated API
       
  7641     (RSat::TDeclareServiceV3 etc).
       
  7642 
       
  7643     @see RSat::TDeclareServiceV2Pckg
       
  7644     @see RSat::NotifyDeclareServicePCmd()
       
  7645     */
       
  7646         {
       
  7647     public:
       
  7648         IMPORT_C TDeclareServiceV2();
       
  7649     public:
       
  7650         TServiceDeclarationType iType;      //< Service declaration type
       
  7651         TServiceRecordInfo iServiceRecord;  //< Service record information
       
  7652         TSimMeInterface iInterface;         //< SIM / ME interface
       
  7653         };
       
  7654 
       
  7655     /** A packaged RSat::TDeclareServiceV2. */
       
  7656     typedef TPckg<TDeclareServiceV2> TDeclareServiceV2Pckg;
       
  7657 
       
  7658     IMPORT_C void NotifyDeclareServicePCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  7659 
       
  7660 
       
  7661     class TDeclareServiceRspV2 : public TSatPCmdBase
       
  7662     /**
       
  7663     Contains your response to a DECLARE SERVICE proactive command.  Pass this to
       
  7664     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  7665     102 223 and RSat::NotifyDeclareServicePCmd() for more information about
       
  7666     the command.
       
  7667 
       
  7668     For Symbian OS versions from 7.0s to v8.1a and 8.1b pass
       
  7669     RSat::TerminalRsp() a RSat::TDeclareServiceRspV2Pckg (a packaged
       
  7670     TDeclareServiceRspV2). For later versions of Symbian OS, check for an
       
  7671     updated API (RSat::TDeclareServiceRspV3 etc).
       
  7672 
       
  7673     @see RSat::NotifyDeclareServicePCmd()
       
  7674     */
       
  7675         {
       
  7676     public:
       
  7677         IMPORT_C TDeclareServiceRspV2();
       
  7678     public:
       
  7679          /** General result of the proactive command. Set this as described in
       
  7680         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  7681         TPCmdResult iGeneralResult;
       
  7682 
       
  7683         TUint iInfoType;                //< Additional Info type
       
  7684         TAdditionalInfo iAdditionalInfo;//< Additional information
       
  7685         };
       
  7686 
       
  7687     /** A packaged RSat::TDeclareServiceRspV2. */
       
  7688     typedef TPckg<TDeclareServiceRspV2>  TDeclareServiceRspV2Pckg;
       
  7689 
       
  7690     IMPORT_C void NotifyTsyStateUpdated(TRequestStatus& aReqStatus, TPCmd& aPCmd) const;
       
  7691 
       
  7692     //
       
  7693     // TIMER MANAGEMENT
       
  7694     //
       
  7695 
       
  7696     enum TTimerMgmtType
       
  7697     /** Part of the TIMER MANAGEMENT proactive command. It describes the type
       
  7698     of command: start a timer, stop a timer, or read a timer's value.
       
  7699     @see RSat::TTimerMgmtV3 */
       
  7700         {
       
  7701         EStartTimer,      //< Start a timer running physically on the phone.
       
  7702         EDeactivateTimer, //< Deactivate a timer.
       
  7703         EGetTimerValue    //< Get the current value of a timer.
       
  7704         };
       
  7705 
       
  7706 
       
  7707     class TTimerMgmtV3 : public TSatPCmdBase
       
  7708     /**
       
  7709     Contains a TIMER MANAGEMENT proactive command issued by the UICC.
       
  7710     See ETSI TS 102 223 and RSat::NotifyTimerMgmtPCmd() for more information
       
  7711     about the command.
       
  7712 
       
  7713     Request notification for TIMER MANAGEMENT with
       
  7714     RSat::NotifyTimerMgmtPCmd(), passing it an object in which to store the
       
  7715     command when it arrives.  Pass a packaged version of the  latest
       
  7716     "TTimerMgmt" class. For Symbian OS versions from 7.0s to v8.1a and
       
  7717     8.1b use RSat::TTimerMgmtV3Pckg, a packaged RSat::TTimerMgmtV3.  For later
       
  7718     versions of Symbian OS, check for an updated API (RSat::TTimerMgmtV4 etc).
       
  7719 
       
  7720     @see RSat::TTimerMgmtV3Pckg
       
  7721     @see RSat::NotifyTimerMgmtPCmd()
       
  7722     */
       
  7723         {
       
  7724     public:
       
  7725         IMPORT_C TTimerMgmtV3();
       
  7726     public:
       
  7727         /** This identifies the timer.  There can be up to 8 timer. */
       
  7728         TTimerId    iTimerId;
       
  7729         /** The initial value of the timer when setting a new timer.    */
       
  7730         TDuration   iTimerValue;
       
  7731         /** Should you start, stop, or read the current value of the timer identifier in iTimerId? */
       
  7732         TTimerMgmtType  iOperation;
       
  7733         };
       
  7734 
       
  7735     /** A packaged RSat::TTimerMgmtV3. */
       
  7736     typedef TPckg<TTimerMgmtV3> TTimerMgmtV3Pckg;
       
  7737 
       
  7738     IMPORT_C void NotifyTimerMgmtPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  7739 
       
  7740     class TTimerMgmtRspV3 : public TSatPCmdBase
       
  7741     /**
       
  7742     Contains your response to a TIMER MANAGEMENT  proactive command.
       
  7743     Pass this to the UICC with RSat::TerminalRsp(). See
       
  7744     RSat::NotifyTimerMgmtPCmd() for more information about the command.
       
  7745 
       
  7746     For Symbian OS versions from 7.0s to  v8.1a and v8.1b pass
       
  7747     RSat::TerminalRsp() a RSat::TTimerMgmtRspV3Pckg (a packaged TTimerMgmtRspV3).
       
  7748     For later versions of Symbian OS, check for an updated API
       
  7749     (RSat::TTimerMgmtRspV4 etc).
       
  7750 
       
  7751     @see RSat::NotifyTimerMgmtPCmd()
       
  7752     */
       
  7753         {
       
  7754     public:
       
  7755         IMPORT_C TTimerMgmtRspV3();
       
  7756     public:
       
  7757          /** General result of the proactive command. Set this as described in
       
  7758         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  7759         TPCmdResult iGeneralResult;
       
  7760 
       
  7761        /** Set to RSat::KTimerMgmt if you are returning a timer's value to the
       
  7762        UICC. This occurs when RSat::TTimerMgmtV3::iMode in the original command
       
  7763        was is RSat::EGetTimerValue or RSat::EDeactivateTimer. Otherwise set to
       
  7764        RSat::KMeProblem or RSat::KNoAdditionalInfo. */
       
  7765        TUint iInfoType;
       
  7766 
       
  7767         /** Return the timer's value in here when RSat::TTimerMgmtV3::iMode in
       
  7768         the original command was is RSat::EGetTimerValue or
       
  7769         RSat::EDeactivateTimer. Alternatively, some error values of
       
  7770         iGeneralResult require additional information, which goes here. */
       
  7771         TAdditionalInfo iAdditionalInfo;
       
  7772         };
       
  7773 
       
  7774     /** A packaged RSat::TTimerMgmtRspV3. */
       
  7775     typedef TPckg<TTimerMgmtRspV3>  TTimerMgmtRspV3Pckg;
       
  7776 
       
  7777     //
       
  7778     // PROVIDE LOCAL INFORMATION
       
  7779     //
       
  7780 
       
  7781     /** Part of a PROVIDE LOCAL INFORMATION proactive command
       
  7782     This describes the information that you should provide to the UICC.
       
  7783 
       
  7784     The format of the information depends upon the network on which the phone is
       
  7785     running. For GSM/WCDMA networks, read 3GPP TS 31.111; for CDMA networks
       
  7786     read 3GPP2 C.S0035-0.  ETSI TS 102 223 provides generic information
       
  7787     about the PROVIDE LOCAL INFORMATION command.
       
  7788     @see RSat::TLocalInfoV3. */
       
  7789    enum TLocaInfomationType
       
  7790         {
       
  7791         /**
       
  7792         Location information & phone identity
       
  7793         UICC: MCC, MNC, LAC, Cell ID
       
  7794         */
       
  7795         KProvideLocalInfo               =0x00,
       
  7796         KProvideLocalInfoImei           =0x01,   //< IMEI of the phone.
       
  7797         KProvideLocalInformationNmr     =0x02,   //< Network Measurement Results.
       
  7798         KProvideLocalInfoDateTimeTimeZone =0x03, //< Current date, time and time zone.
       
  7799         KProvideLocalInfoLanguage       =0x04,   //< Language preference.
       
  7800         KProvideLocalInfoTimingAdv      =0x05,   //< Timing advance (access network dependent).
       
  7801         KProvideLocalInfoAccTech        =0x06,   //< Current access technology.
       
  7802         KProvideLocalInfoESN            =0x07,    //< ESN of the phone.
       
  7803         KProvideLocalInfoIMEISV         =0x08,    //< IMEISV of the terminal;
       
  7804         KProvideLocalInfoSearchMode     =0x09,    //< Search Mode;
       
  7805         KProvideLocalInfoChargeStateOfBattery   =0x0A, //< Charge State of the Battery;
       
  7806         KProvideLocalInfoMEID     =0x0B //< MEID of the terminal;
       
  7807         }; 
       
  7808      
       
  7809     class TLocalInfoV3 : public TSatPCmdBase
       
  7810     /**
       
  7811     Contains a PROVIDE LOCAL INFORMATION proactive command issued by the UICC.
       
  7812     See ETSI TS 102 223 and RSat::NotifyLocalInfoPCmd() for more information
       
  7813     about the command.
       
  7814 
       
  7815     Request notification for PROVIDE LOCAL INFORMATION with
       
  7816     RSat::NotifyLocalInfoPCmd(), passing it an object in which to store the
       
  7817     command when it arrives.  Pass a packaged version of the  latest
       
  7818     "TLocalInfo" class. For Symbian OS versions from 7.0s to v8.1a and
       
  7819     8.1b use RSat::TLocalInfoV3Pckg, a packaged RSat::TLocalInfoV3.  For later
       
  7820     versions of Symbian OS, check for an updated API (RSat::TLocalInfoV4 etc).
       
  7821 
       
  7822     @see RSat::TLocalInfoV3Pckg
       
  7823     @see RSat::NotifyLocalInfoPCmd()
       
  7824     */
       
  7825         {
       
  7826     public:
       
  7827         IMPORT_C TLocalInfoV3();
       
  7828     public:
       
  7829         TDeviceId iDevideId; //< The device for which the information is required.
       
  7830         TLocaInfomationType iInfoType; //< The type of information required.
       
  7831         };
       
  7832 
       
  7833     /** A packaged RSat::TLocalInfoV3. */
       
  7834     typedef TPckg<TLocalInfoV3> TLocalInfoV3Pckg;
       
  7835 
       
  7836  	/**
       
  7837     UTRAN Measurement Qualifier:It shall be included to indicate to the ME that 
       
  7838     "Network Measurement Results for a UTRAN" is required,read 3GPP TS 31.111.
       
  7839     @see  RSat::TLocalInfoV6. 
       
  7840     */    
       
  7841     enum TUtranMeasurementQualifier
       
  7842     	{
       
  7843     	EUtranMeasurementQualifierNotSet,         //<This value implies that a GERAN network measurement is required.
       
  7844     	EUtranMeasurementQualifierIntraFrequency, //<Intra-Frequency Measurement.
       
  7845     	EUtranMeasurementQualifierInterFrequency, //<Inter-Frequency Measurement.
       
  7846     	EUtranMeasurementQualifierInterRATGsm     //<Inter-RAT (GSM) measurement.	
       
  7847     	};
       
  7848     	
       
  7849     class TLocalInfoV6 : public TLocalInfoV3
       
  7850     /**
       
  7851     Contains a PROVIDE LOCAL INFORMATION proactive command issued by the UICC.
       
  7852     See 3GPP TS 31.111 Release 6, v 6.8.0, 2006-03 and RSat::NotifyLocalInfoPCmd()
       
  7853     for more information about the command.
       
  7854     
       
  7855     Request notification for PROVIDE LOCAL INFORMATION with
       
  7856     RSat::NotifyLocalInfoPCmd(), passing it an object in which to store the
       
  7857     command when it arrives.  Pass a packaged version of the  latest
       
  7858     "TLocalInfo" class. 
       
  7859     @see RSat::TLocalInfoV6Pckg
       
  7860     @see RSat::NotifyLocalInfoPCmd()
       
  7861     */
       
  7862         {
       
  7863     public:
       
  7864         IMPORT_C TLocalInfoV6();
       
  7865     public:
       
  7866         TUtranMeasurementQualifier iUtranMeasurementQualifier; //<This information is only available when ME is connected to UTRAN
       
  7867         };
       
  7868     
       
  7869     /** A packaged RSat::TLocalInfoV6. */
       
  7870     typedef TPckg<TLocalInfoV6> TLocalInfoV6Pckg;
       
  7871 
       
  7872     IMPORT_C void NotifyLocalInfoPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  7873 
       
  7874     class TLocalInfoRspV3 : public TSatPCmdBase
       
  7875     /**
       
  7876     Contains your response to a PROVIDE LOCAL INFORMATION proactive command.
       
  7877     Pass this to the UICC with RSat::TerminalRsp(). See
       
  7878     RSat::NotifyLocalInfoPCmd() for more information about the command.
       
  7879 
       
  7880     For Symbian OS versions from 7.0s to  v8.1a and v8.1b pass
       
  7881     RSat::TerminalRsp() a RSat::TLocalInfoRspV3Pckg (a packaged TLocalInfoRspV3).
       
  7882     For later versions of Symbian OS, check for an updated API
       
  7883     (RSat::TLocalInfoRspV4 etc).
       
  7884 
       
  7885     Set iGeneralResultSet as defined in the specifications. Set  iInfoType to
       
  7886     RSat::KLocalInformation.  The local information goes into iAdditionalInfo.
       
  7887     The format of the information depends upon the network on which the phone
       
  7888     is running. For GSM/WCDMA networks, read 3GPP TS 31.111; for CDMA networks
       
  7889     read 3GPP2 C.S0035-0.  ETSI TS 102 223 provides generic information about
       
  7890     the PROVIDE LOCAL INFORMATION command.
       
  7891 
       
  7892     @see RSat::NotifyLocalInfoPCmd()
       
  7893     */
       
  7894         {
       
  7895     public:
       
  7896         IMPORT_C TLocalInfoRspV3();
       
  7897     public:
       
  7898          /** General result of the proactive command. Set this as described in
       
  7899         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  7900         TPCmdResult iGeneralResult;
       
  7901 
       
  7902         /** Set to RSat::KLocalInformation to return local information, or
       
  7903         possibly RSat::KMeProblem is there is a problem. */
       
  7904         TUint iInfoType;
       
  7905 
       
  7906         /** Contains the local information requested by the UICC.
       
  7907         Alternatively, some error values of iGeneralResult require additional
       
  7908         information, which goes here. */
       
  7909         TAdditionalInfo iAdditionalInfo;
       
  7910         };
       
  7911 
       
  7912     /** A packaged RSat::TLocalInfoRspV3. */
       
  7913     typedef TPckg<TLocalInfoRspV3>  TLocalInfoRspV3Pckg;
       
  7914   
       
  7915     //
       
  7916     //POLLING INTERVAL
       
  7917     //
       
  7918     class TPollingIntervalV3 : public TSatPCmdBase
       
  7919     /**
       
  7920     Contains a POLL INTERVAL proactive command issued by the UICC.
       
  7921     See ETSI TS 102 223 and RSat::NotifyPollingIntervalPCmd() for more information
       
  7922     about the command.
       
  7923 
       
  7924     Request notification for POLL INTERVAL with
       
  7925     RSat::NotifyPollingIntervalPCmd(), passing it an object in which to store the
       
  7926     command when it arrives.  Pass a packaged version of the  latest
       
  7927     "TPollingInterval" class. For Symbian OS versions from 7.0s to v8.1a and
       
  7928     8.1b use RSat::TPollingIntervalV3Pckg, a packaged RSat::TPollingIntervalV3.  For later
       
  7929     versions of Symbian OS, check for an updated API (RSat::TPollingIntervalV4 etc).
       
  7930 
       
  7931     @see RSat::TPollingIntervalV3Pckg
       
  7932     @see RSat::NotifyPollingIntervalPCmd()
       
  7933     */
       
  7934         {
       
  7935     public:
       
  7936         IMPORT_C TPollingIntervalV3();
       
  7937     public:
       
  7938         TDuration   iIntv; //< The requested polling interval.
       
  7939         TDeviceId   iDestination; //< The device for which the polling is required.
       
  7940         };
       
  7941 
       
  7942     /** A packaged RSat::TPollingIntervalV3. */
       
  7943     typedef TPckg<TPollingIntervalV3> TPollingIntervalV3Pckg;
       
  7944 
       
  7945     IMPORT_C void NotifyPollingIntervalPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  7946 
       
  7947     class TPollingIntervalRspV3 : public TSatPCmdBase
       
  7948     /**
       
  7949     Contains your response to a POLL INTERVAL proactive command.  Pass this to
       
  7950     the UICC with RSat::TerminalRsp(). See ETSI TS
       
  7951     102 223 and RSat::NotifyPollingIntervalPCmd() for more information about
       
  7952     the command.
       
  7953 
       
  7954     For Symbian OS versions from 7.0s to  v8.1a and v8.1b pass
       
  7955     RSat::TerminalRsp() a RSat::TPollingIntervalRspV3Pckg (a packaged TPollingIntervalRspV3).
       
  7956     For later versions of Symbian OS, check for an updated API
       
  7957     (RSat::TPollingIntervalRspV4 etc).
       
  7958 
       
  7959     @see RSat::NotifyPollingIntervalPCmd()
       
  7960     */
       
  7961         {
       
  7962     public:
       
  7963         IMPORT_C TPollingIntervalRspV3();
       
  7964     public:
       
  7965          /** General result of the proactive command. Set this as described in
       
  7966         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  7967         TPCmdResult iGeneralResult;
       
  7968 
       
  7969         /** If you are returning a polling interval, set this to RSat::KPollingIntv.
       
  7970         If the value of iGeneralResult requires additional information,
       
  7971         set this to RSat::KMeProblem.  Otherwise set to
       
  7972         RSat::KNoAdditionalInfo. */
       
  7973         TUint iInfoType;
       
  7974 
       
  7975         /** Return the polling interval in here.  Alternatively, some error
       
  7976         values of iGeneralResult require additional information, which goes
       
  7977         here. */
       
  7978         TAdditionalInfo iAdditionalInfo;
       
  7979         };
       
  7980 
       
  7981     /** A packaged RSat::TPollingIntervalRspV3. */
       
  7982     typedef TPckg<TPollingIntervalRspV3> TPollingIntervalRspV3Pckg;
       
  7983 
       
  7984     //
       
  7985     //Polling Off Card
       
  7986     //
       
  7987 
       
  7988     class TPollingOffV3 : public TSatPCmdBase
       
  7989     /**
       
  7990     Contains a POLLING OFF proactive command issued by the UICC.
       
  7991     See ETSI TS 102 223 and RSat::NotifyPollingOffPCmd() for more information
       
  7992     about the command.
       
  7993 
       
  7994     Request notification for POLLING OFF with
       
  7995     RSat::NotifyPollingIntervalPCmd(), passing it an object in which to store the
       
  7996     command when it arrives.  Pass a packaged version of the  latest
       
  7997     "TPollingOff" class. For Symbian OS versions from 7.0s to v8.1a and
       
  7998     8.1b use RSat::TPollingOffV3Pckg, a packaged RSat::TPollingOffV3.  For later
       
  7999     versions of Symbian OS, check for an updated API (RSat::TPollingOffV4 etc).
       
  8000 
       
  8001     @see RSat::TPollingOffV3Pckg
       
  8002     @see RSat::NotifyPollingOffPCmd()
       
  8003     */
       
  8004         {
       
  8005     public:
       
  8006         IMPORT_C TPollingOffV3();
       
  8007     public:
       
  8008         TDuration   iIntv; //< The requested polling interval.
       
  8009         TDeviceId   iDestination; //< The device for which the polling is required.
       
  8010         };
       
  8011 
       
  8012     /** A packaged RSat::TPollingOffV3. */
       
  8013     typedef TPckg<TPollingOffV3> TPollingOffV3Pckg;
       
  8014 
       
  8015     IMPORT_C void NotifyPollingOffPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  8016 
       
  8017 
       
  8018     class TPollingOffRspV3 : public TSatPCmdBase
       
  8019     /**
       
  8020     Contains your response to a POLLING OFF proactive command.  Pass this to
       
  8021     the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and
       
  8022     RSat::NotifyPollingOffPCmd() for more information about the command.
       
  8023 
       
  8024     For Symbian OS versions from 7.0s to  v8.1a and v8.1b pass
       
  8025     RSat::TerminalRsp() a RSat::TPollingOffRspV3Pckg (a packaged TPollingOffRspV3).
       
  8026     For later versions of Symbian OS, check for an updated API
       
  8027     (RSat::TPollingOffRspV4 etc).
       
  8028 
       
  8029     @see RSat::NotifyPollingOffPCmd()
       
  8030     */
       
  8031        {
       
  8032     public:
       
  8033         IMPORT_C TPollingOffRspV3();
       
  8034     public:
       
  8035          /** General result of the proactive command. Set this as described in
       
  8036         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  8037         TPCmdResult iGeneralResult;
       
  8038 
       
  8039         /** If the value of iGeneralResult requires additional information,
       
  8040         set this to RSat::KMeProblem.  Otherwise set to
       
  8041         RSat::KNoAdditionalInfo. */
       
  8042         TUint iInfoType;
       
  8043 
       
  8044         /** Contains additional information associated with certain error codes
       
  8045         set in iGeneralResult. If the value in iGeneralResult does not require
       
  8046         any information then leave this field empty.*/
       
  8047         TAdditionalInfo iAdditionalInfo;
       
  8048         };
       
  8049 
       
  8050     /** A packaged RSat::TPollingOffRspV3. */
       
  8051     typedef TPckg<TPollingOffRspV3>  TPollingOffRspV3Pckg;
       
  8052 	
       
  8053 	//
       
  8054 	//  V6 PROACTIVE COMMANDS
       
  8055 	//
       
  8056 	
       
  8057 	/** 
       
  8058 	@see RSat::TMultimediaMessageRef
       
  8059 	*/
       
  8060 	enum {KMaxMultimediaMessageRefSize = 255};
       
  8061 	
       
  8062 	/** 
       
  8063 	@see RSat::TFileList
       
  8064 	*/
       
  8065 	enum {KMaxFileListSize = 242};
       
  8066 	
       
  8067 	/** 
       
  8068 	@see RSat::TMultimediaContentId
       
  8069 	*/
       
  8070 	enum {KMaxMultimediaContentIdSize = 255};
       
  8071 	
       
  8072 	/** 
       
  8073 	@see RSat::TMultimediaMessageId 
       
  8074 	*/
       
  8075 	enum {KMaxMultimediaMessageIdSize = 255};
       
  8076 	
       
  8077 	/**
       
  8078 	This buffer contains the URI identifying the multimedia message in the network.
       
  8079 	@see RSat::KMaxMultimediaMessageRefSize
       
  8080 	*/
       
  8081 	typedef TBuf<KMaxMultimediaMessageRefSize> TMultimediaMessageRef;
       
  8082 	
       
  8083 	/**
       
  8084 	This buffer contains the information of the received file.
       
  8085 	@see RSat::KMMSFileNameSize
       
  8086 	*/
       
  8087 	typedef TBuf<KMaxFileListSize> TFileList;
       
  8088 	
       
  8089 	/**
       
  8090 	This buffer ontains the Data Object tag to be used when the MM Content is stored in the referenced BER-TLV file.
       
  8091 	@see RSat::KMaxMultimediaContentIdSize
       
  8092 	*/
       
  8093     typedef TBuf<KMaxMultimediaContentIdSize> TMultimediaContentId;
       
  8094     
       
  8095     /**
       
  8096     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.
       
  8097     @see RSat::KMaxMultimediaMessageIdSize
       
  8098     */
       
  8099     typedef TBuf<KMaxMultimediaMessageIdSize> TMultimediaMessageId;
       
  8100     
       
  8101     //
       
  8102     // RETRIEVE MULTIMEDIA MESSAGE
       
  8103     //
       
  8104 
       
  8105     class TRetrieveMultimediaMessageV6 : public TSatPCmdBase
       
  8106     /**
       
  8107     Contains a RETRIEVE MULTIMEDIA MESSAGE proactive command issued by the UICC.
       
  8108     See ETSI TS 102 223 and RSat::NotifyRetrieveMultimediaMsgPCmd() for more information
       
  8109     about the command.
       
  8110 
       
  8111     Request notification for RETRIEVE MULTIMEDIA MESSAGE with
       
  8112     RSat::NotifyRetrieveMultimediaMsgPCmd(), passing it an object in which to store the
       
  8113     command when it arrives.  Pass a packaged version of the  latest
       
  8114     "TRetrieveMultimediaMessage" class. For Symbian OS version 9.4
       
  8115     use RSat::TRetrieveMultimediaMessageV6Pckg, a packaged RSat::TRetrieveMultimediaMessageV6.  
       
  8116     For later versions of Symbian OS, check for an updated API (RSat::TRetrieveMultimediaMessageV7 etc).
       
  8117 
       
  8118     @see RSat::TRetrieveMultimediaMessageV6Pckg
       
  8119     @see RSat::NotifyRetrieveMultimediaMsgPCmd()
       
  8120     */
       
  8121         {
       
  8122     public:
       
  8123         IMPORT_C TRetrieveMultimediaMessageV6();
       
  8124     public:
       
  8125 		TDeviceId iDestination; //< The destination device for the proactive command is the network.
       
  8126 		TAlphaId iAlphaId; //< Alpha Identifier
       
  8127 		TIconId	iIconId; //< Icon identifer
       
  8128 		TMultimediaMessageRef	iMultimediaMessageRef;  //< Contains the URI identifying the multimedia message in the network.
       
  8129 		TFileList iReceptionFile;            //< MMS Reception File is a path of a file on the UICC. 
       
  8130 		TMultimediaContentId iMultimediaContentId; //< Contains the Data Object tag to be used when the MM Content is stored in the referenced BER-TLV file.
       
  8131 		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.
       
  8132 		TTextAttribute	iTextAttribute; //< Contains formatting information to be applied when RSat::TRetrieveMultimediaMessageV6::iAlphaId  is displayed.
       
  8133        	};
       
  8134 
       
  8135     /** A packaged RSat::TRetrieveMultimediaMessageV6. */
       
  8136     typedef TPckg<TRetrieveMultimediaMessageV6> TRetrieveMultimediaMessageV6Pckg;
       
  8137 
       
  8138     IMPORT_C void NotifyRetrieveMultimediaMsgPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  8139 
       
  8140     class TRetrieveMultimediaMessageRspV6 : public TSatPCmdBase
       
  8141     /**
       
  8142     Contains your response to a RETRIEVE MULTIMEDIA MESSAGE proactive command.  Pass this to
       
  8143     the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and
       
  8144     RSat::NotifyRetrieveMultimediaMsgPCmd() for more information about the command.
       
  8145 
       
  8146     For Symbian OS version 9.4 pass
       
  8147     RSat::TerminalRsp() a RSat::TRetrieveMultimediaMessageRspV6Pckg (a packaged TRetrieveMultimediaMessageRspV6).
       
  8148     For later versions of Symbian OS, check for an updated API
       
  8149     (RSat::TRetrieveMultimediaMessageRspV7 etc).
       
  8150 
       
  8151 	@see RSat::TRetrieveMultimediaMessageRspV6Pckg
       
  8152     @see RSat::NotifyRetrieveMultimediaMsgPCmd()
       
  8153     */
       
  8154        {
       
  8155     public:
       
  8156         IMPORT_C TRetrieveMultimediaMessageRspV6();
       
  8157     public:
       
  8158          /** General result of the proactive command. Set this as described in
       
  8159         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  8160         TPCmdResult iGeneralResult;
       
  8161 
       
  8162         /** If the value of iGeneralResult requires additional information,
       
  8163         set this to RSat::KMeProblem.  Otherwise set to
       
  8164         RSat::KNoAdditionalInfo. */
       
  8165         TUint iInfoType;
       
  8166 
       
  8167         /** Contains additional information associated with certain error codes
       
  8168         set in iGeneralResult. If the value in iGeneralResult does not require
       
  8169         any information then leave this field empty.*/
       
  8170         TAdditionalInfo iAdditionalInfo;
       
  8171         };
       
  8172 
       
  8173     /** A packaged RSat::TRetrieveMultimediaMessageRspV6. */
       
  8174     typedef TPckg<TRetrieveMultimediaMessageRspV6>  TRetrieveMultimediaMessageRspV6Pckg;
       
  8175     
       
  8176 	//
       
  8177 	// SUBMIT MULTIMEDIA MESSAGE
       
  8178 	//    
       
  8179 
       
  8180     class TSubmitMultimediaMessageV6 : public TSatPCmdBase
       
  8181     /**
       
  8182     Contains a SUBMIT MULTIMEDIA MESSAGE proactive command issued by the UICC.
       
  8183     See ETSI TS 102 223 and RSat::NotifySubmitMultimediaMsgPCmd() for more information
       
  8184     about the command.
       
  8185 
       
  8186     Request notification for SUBMIT MULTIMEDIA MESSAGE with
       
  8187     RSat::NotifySubmitMultimediaMsgPCmd(), passing it an object in which to store the
       
  8188     command when it arrives.  Pass a packaged version of the  latest
       
  8189     "TSubmitMultimediaMessage" class. For Symbian OS version 9.4
       
  8190     use RSat::TSubmitMultimediaMessageV6Pckg, a packaged RSat::TSubmitMultimediaMessageV6.  
       
  8191     For later versions of Symbian OS, check for an updated API (RSat::TSubmitMultimediaMessageV7 etc).
       
  8192 
       
  8193     @see RSat::TSubmitMultimediaMessageV6Pckg
       
  8194     @see RSat::NotifySubmitMultimediaMsgPCmd()
       
  8195     */
       
  8196         {
       
  8197     public:
       
  8198         IMPORT_C TSubmitMultimediaMessageV6();
       
  8199     public:
       
  8200 		TDeviceId iDestination; //< The destination device for the proactive command is the network.
       
  8201 		TAlphaId iAlphaId; //< Alpha Identifier
       
  8202 		TIconId	iIconId; //< Icon identifer
       
  8203 		TFileList iSubmissionFile; //< MMS Submission File is a path of a file on the UICC.
       
  8204 		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.
       
  8205 		TTextAttribute	iTextAttribute; //< Contains formatting information to be applied when RSat::TSubmitMultimediaMessageV6::iAlphaId  is displayed.
       
  8206        	};
       
  8207 
       
  8208     /** A packaged RSat::TSubmitMultimediaMessageV6. */
       
  8209     typedef TPckg<TSubmitMultimediaMessageV6> TSubmitMultimediaMessageV6Pckg;
       
  8210 
       
  8211     IMPORT_C void NotifySubmitMultimediaMsgPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  8212 
       
  8213 
       
  8214     class TSubmitMultimediaMessageRspV6 : public TSatPCmdBase
       
  8215     /**
       
  8216     Contains your response to a SUBMIT MULTIMEDIA MESSAGE proactive command.  Pass this to
       
  8217     the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and
       
  8218     RSat::NotifySubmitMultimediaMsgPCmd() for more information about the command.
       
  8219 
       
  8220     For Symbian OS version 9.4 pass
       
  8221     RSat::TerminalRsp() a RSat::TSubmitMultimediaMessageRspV6Pckg (a packaged TSubmitMultimediaMessageRspV6).
       
  8222     For later versions of Symbian OS, check for an updated API
       
  8223     (RSat::TSubmitMultimediaMessageRspV7 etc).
       
  8224 
       
  8225     @see RSat::TSubmitMultimediaMessageRspV6Pckg
       
  8226     @see RSat::NotifySubmitMultimediaMsgPCmd()
       
  8227     */
       
  8228        {
       
  8229     public:
       
  8230         IMPORT_C TSubmitMultimediaMessageRspV6();
       
  8231     public:
       
  8232          /** General result of the proactive command. Set this as described in
       
  8233         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  8234         TPCmdResult iGeneralResult;
       
  8235 
       
  8236         /** If the value of iGeneralResult requires additional information,
       
  8237         set this to RSat::KMeProblem.  Otherwise set to
       
  8238         RSat::KNoAdditionalInfo. */
       
  8239         TUint iInfoType;
       
  8240 
       
  8241         /** Contains additional information associated with certain error codes
       
  8242         set in iGeneralResult. If the value in iGeneralResult does not require
       
  8243         any information then leave this field empty.*/
       
  8244         TAdditionalInfo iAdditionalInfo;
       
  8245         };
       
  8246 
       
  8247     /** A packaged RSat::TSubmitMultimediaMessageRspV6. */
       
  8248     typedef TPckg<TSubmitMultimediaMessageRspV6>  TSubmitMultimediaMessageRspV6Pckg;
       
  8249 
       
  8250 	//
       
  8251 	// DISPLAY MULTIMEDIA MESSAGE
       
  8252 	//
       
  8253 	
       
  8254     class TDisplayMultimediaMessageV6 : public TSatPCmdBase
       
  8255     /**
       
  8256     Contains a DISPLAY MULTIMEDIA MESSAGE proactive command issued by the UICC.
       
  8257     See ETSI TS 102 223 and RSat::NotifyDisplayMultimediaMsgPCmd() for more information
       
  8258     about the command.
       
  8259 
       
  8260     Request notification for DISPLAY MULTIMEDIA MESSAGE with
       
  8261     RSat::NotifyDisplayMultimediaMsgPCmd(), passing it an object in which to store the
       
  8262     command when it arrives.  Pass a packaged version of the  latest
       
  8263     "TDisplayMultimediaMessage" class. For Symbian OS version 9.4
       
  8264     use RSat::TDisplayMultimediaMessageV6Pckg, a packaged RSat::TDisplayMultimediaMessageV6.  
       
  8265     For later versions of Symbian OS, check for an updated API (RSat::TDisplayMultimediaMessageV7 etc).
       
  8266 
       
  8267     @see RSat::TDisplayMultimediaMessageV6Pckg
       
  8268     @see RSat::NotifyDisplayMultimediaMsgPCmd()
       
  8269     */
       
  8270         {
       
  8271     public:
       
  8272         IMPORT_C TDisplayMultimediaMessageV6();
       
  8273     public:
       
  8274 		TDeviceId iDestination; //< The destination device for the proactive command is the Mobile Equipment, typically a phone.
       
  8275 		TDisplayPriority iDisplayPriority;  //< This determines the text's priority.
       
  8276 		/** Determines whether the text should be removed from the screen
       
  8277         after a delay or after user action. */
       
  8278         TClearScreenTrigger iClearScreenTrigger;
       
  8279 		TFileList iSubmissionFile; //< Contains the information of the submitted file.
       
  8280 		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.
       
  8281 		TImmediateRsp iImmediateRsp; //< TImmediateRsp indicates if the (U)SAT UI client should sustain the display beyond sending the Terminal Response.
       
  8282        	};
       
  8283 
       
  8284     /** A packaged RSat::TDisplayMultimediaMessageV6. */
       
  8285     typedef TPckg<TDisplayMultimediaMessageV6> TDisplayMultimediaMessageV6Pckg;
       
  8286 
       
  8287     IMPORT_C void NotifyDisplayMultimediaMsgPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  8288 
       
  8289 
       
  8290     class TDisplayMultimediaMessageRspV6 : public TSatPCmdBase
       
  8291     /**
       
  8292     Contains your response to a DISPLAY MULTIMEDIA MESSAGE proactive command.  Pass this to
       
  8293     the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and
       
  8294     RSat::NotifyDisplayMultimediaMsgPCmd() for more information about the command.
       
  8295 
       
  8296     For Symbian OS version 9.4 pass
       
  8297     RSat::TerminalRsp() a RSat::TDisplayMultimediaMessageRspV6Pckg (a packaged TDisplayMultimediaMessageRspV6).
       
  8298     For later versions of Symbian OS, check for an updated API
       
  8299     (RSat::TDisplayMultimediaMessageRspV7 etc).
       
  8300 
       
  8301     @see RSat::TDisplayMultimediaMessageRspV6Pckg
       
  8302     @see RSat::NotifyDisplayMultimediaMsgPCmd()
       
  8303     */
       
  8304        {
       
  8305     public:
       
  8306         IMPORT_C TDisplayMultimediaMessageRspV6();
       
  8307     public:
       
  8308          /** General result of the proactive command. Set this as described in
       
  8309         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  8310         TPCmdResult iGeneralResult;
       
  8311 
       
  8312         /** If the value of iGeneralResult requires additional information,
       
  8313         set this to RSat::KMeProblem.  Otherwise set to
       
  8314         RSat::KNoAdditionalInfo. */
       
  8315         TUint iInfoType;
       
  8316 
       
  8317         /** Contains additional information associated with certain error codes
       
  8318         set in iGeneralResult. If the value in iGeneralResult does not require
       
  8319         any information then leave this field empty.*/
       
  8320         TAdditionalInfo iAdditionalInfo;
       
  8321         };
       
  8322 
       
  8323     /** A packaged RSat::TDisplayMultimediaMessageRspV6. */
       
  8324     typedef TPckg<TDisplayMultimediaMessageRspV6>  TDisplayMultimediaMessageRspV6Pckg;
       
  8325 	
       
  8326 	//
       
  8327 	// SET FRAMES
       
  8328 	//		
       
  8329 	
       
  8330 	/**
       
  8331 	This enum structure gives us the format of the Frame layout.
       
  8332 	@see RSat::TFrameLayout
       
  8333 	@see RSat::TSetFramesV6
       
  8334 	*/
       
  8335 	enum TFramesLayout
       
  8336 		{
       
  8337  		EFrameHorizontal 	= 0x01, //< This indicator is flagged when the frame layout is horizontal.
       
  8338  		EFrameVertical 		= 0x02  //< This indicator is flagged when the frame layout is vertical.
       
  8339 		};
       
  8340 	/**
       
  8341 	This enum structure gives us the format of the Frame Layout information
       
  8342 	@see RSat::TFrameLayout
       
  8343 	*/
       
  8344 	enum {KMaxFrameLayoutSize = 243};
       
  8345 	
       
  8346 	/** 
       
  8347 	@see RSat::KMaxFrameLayoutSize 
       
  8348 	*/
       
  8349 	typedef TBuf<KMaxFrameLayoutSize> TFrameLayoutBuf;
       
  8350 	 
       
  8351 	/**
       
  8352 	This structure gives us the Frame Layout details.
       
  8353 	@see RSat::TSetFramesV6
       
  8354 	*/
       
  8355 	struct TFrameLayout 
       
  8356 		{
       
  8357 		TFramesLayout iFramesLayout;  //< It gives us the format of the Frame layout
       
  8358 		TFrameLayoutBuf iFrameLayoutBuf;  //< It gives us the information about the number of sub frames in it.
       
  8359 		};
       
  8360 	
       
  8361 	/**
       
  8362 	@see RSat::TSetFramesV6
       
  8363 	*/
       
  8364 	enum TFramesSeparator
       
  8365 		{
       
  8366 		EFrameSeparatorNotSet, //< Indicates that the frame separator has not been set. This is the default value.
       
  8367 		EFrameSeparatorDrawn,  //< This value tells the terminal to draw a separator between every adjoining frame;
       
  8368 		EFrameSeparatorNotDrawn, //< This value tells the terminal not to draw a separator between every adjoining frame;	
       
  8369 		};
       
  8370 		
       
  8371     class TSetFramesV6 : public TSatPCmdBase
       
  8372     /**
       
  8373     Contains a SET FRAMES proactive command issued by the UICC.
       
  8374     See ETSI TS 102 223 and RSat::NotifySetFramesPCmd() for more information
       
  8375     about the command.
       
  8376 
       
  8377     Request notification for SET FRAMES with
       
  8378     RSat::NotifySetFramesPCmd(), passing it an object in which to store the
       
  8379     command when it arrives.  Pass a packaged version of the  latest
       
  8380     "TSetFramesV6" class. For Symbian OS version 9.4
       
  8381     use RSat::TSetFramesV6Pckg, a packaged RSat::TSetFramesV6.  
       
  8382     For later versions of Symbian OS, check for an updated API (RSat::TSetFramesV7 etc).
       
  8383 
       
  8384     @see RSat::TSetFramesV6Pckg
       
  8385     @see RSat::NotifySetFramesPCmd()
       
  8386     */
       
  8387         {
       
  8388     public:
       
  8389         IMPORT_C TSetFramesV6();
       
  8390     public:
       
  8391 		TDeviceId iDestination; //< The destination device for the proactive command is the Mobile Equipment, typically a phone.
       
  8392 		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.
       
  8393 		TFrameLayout iFrameLayout; //< It contains the information on layout and also the design details of the frame 	
       
  8394 		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.
       
  8395 		TFramesSeparator iFramesSeparator;//< This value tells the terminal to draw a separator between every adjoining frame;
       
  8396        	};
       
  8397 
       
  8398     /** A packaged RSat::TSetFramesV6. */
       
  8399     typedef TPckg<TSetFramesV6> TSetFramesV6Pckg;
       
  8400 
       
  8401     IMPORT_C void NotifySetFramesPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  8402 
       
  8403 
       
  8404     class TSetFramesRspV6 : public TSatPCmdBase
       
  8405     /**
       
  8406     Contains your response to a SET FRAMES proactive command.  Pass this to
       
  8407     the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and
       
  8408     RSat::NotifySetFramesPCmd() for more information about the command.
       
  8409 
       
  8410     For Symbian OS version 9.4 pass
       
  8411     RSat::TerminalRsp() a RSat::TSetFramesRspV6Pckg (a packaged TSetFramesRspV6).
       
  8412     For later versions of Symbian OS, check for an updated API
       
  8413     (RSat::TSetFramesRspV7 etc).
       
  8414 
       
  8415     @see RSat::TSetFramesRspV6Pckg
       
  8416     @see RSat::NotifySetFramesPCmd()
       
  8417     */
       
  8418        {
       
  8419     public:
       
  8420         IMPORT_C TSetFramesRspV6();
       
  8421     public:
       
  8422          /** General result of the proactive command. Set this as described in
       
  8423         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  8424         TPCmdResult iGeneralResult;
       
  8425 
       
  8426         /** If the value of iGeneralResult requires additional information,
       
  8427         set this to RSat::KFramesInfo or RSat::KMeProblem.  Otherwise set to
       
  8428         RSat::KNoAdditionalInfo. */
       
  8429         TUint iInfoType;
       
  8430 
       
  8431         /** Contains additional information associated with certain error codes
       
  8432         set in iGeneralResult. If the value in iGeneralResult does not require
       
  8433         any information then leave this field empty.*/
       
  8434         TAdditionalInfo iAdditionalInfo;
       
  8435         
       
  8436         /** Contains the Frames information in the ME, if iGeneralResult is KSuccess 
       
  8437         and the frames information is available. If not, this is left blank
       
  8438 		*/
       
  8439 		TFramesInformation iFramesInformation;
       
  8440         };
       
  8441 
       
  8442     /** A packaged RSat::TSetFramesRspV6. */
       
  8443     typedef TPckg<TSetFramesRspV6>  TSetFramesRspV6Pckg;
       
  8444 	
       
  8445 	//
       
  8446 	// GET FRAMES STATUS
       
  8447 	//
       
  8448 	
       
  8449     class TGetFramesStatusV6 : public TSatPCmdBase
       
  8450     /**
       
  8451     Contains a GET FRAMES STATUS proactive command issued by the UICC.
       
  8452     See ETSI TS 102 223 and RSat::NotifyGetFramesStatusPCmd() for more information
       
  8453     about the command.
       
  8454 
       
  8455     Request notification for GET FRAMES STATUS with
       
  8456     RSat::NotifyGetFramesStatusPCmd(), passing it an object in which to store the
       
  8457     command when it arrives.  Pass a packaged version of the  latest
       
  8458     "TGetFramesStatusV6" class. For Symbian OS version 9.4
       
  8459     use RSat::TGetFramesStatusV6Pckg, a packaged RSat::TGetFramesStatusV6.  
       
  8460     For later versions of Symbian OS, check for an updated API (RSat::TGetFramesStatusV7 etc).
       
  8461 
       
  8462     @see RSat::TGetFramesStatusV6Pckg
       
  8463     @see RSat::NotifyGetFramesStatusPCmd()
       
  8464     */
       
  8465         {
       
  8466     public:
       
  8467         IMPORT_C TGetFramesStatusV6();
       
  8468     public:
       
  8469 		TDeviceId iDestination; //< The destination device for the proactive command is the Mobile Equipment, typically a phone.
       
  8470        	};
       
  8471 
       
  8472     /** A packaged RSat::TGetFramesStatusV6. */
       
  8473     typedef TPckg<TGetFramesStatusV6> TGetFramesStatusV6Pckg;
       
  8474 
       
  8475     IMPORT_C void NotifyGetFramesStatusPCmd(TRequestStatus& aReqStatus, TDes8& aPCmd) const;
       
  8476 
       
  8477 
       
  8478     class TGetFramesStatusRspV6 : public TSatPCmdBase
       
  8479     /**
       
  8480     Contains the response to a GET FRAMES STATUS proactive command.  Pass this to
       
  8481     the UICC with RSat::TerminalRsp(). See ETSI TS 102 223 and
       
  8482     RSat::NotifyGetFramesStatusPCmd() for more information about the command.
       
  8483 
       
  8484     For Symbian OS version 9.4 pass
       
  8485     RSat::TerminalRsp() a RSat::TGetFramesStatusRspV6Pckg (a packaged TGetFramesStatusRspV6).
       
  8486     For later versions of Symbian OS, check for an updated API
       
  8487     (RSat::TGetFramesStatusRspV7 etc).
       
  8488 
       
  8489 	@see RSat::TGetFramesStatusRspV6Pckg
       
  8490     @see RSat::NotifyGetFramesStatusPCmd()
       
  8491     */
       
  8492        {
       
  8493     public:
       
  8494         IMPORT_C TGetFramesStatusRspV6();
       
  8495     public:
       
  8496          /** General result of the proactive command. Set this as described in
       
  8497         the proactive commands versus terminal response table in ETSI TS 102 223. */
       
  8498         TPCmdResult iGeneralResult;
       
  8499 
       
  8500         /** If the value of iGeneralResult requires additional information,
       
  8501         set this to RSat::KFramesInfo or RSat::KMeProblem.  Otherwise set to
       
  8502         RSat::KNoAdditionalInfo. */
       
  8503         TUint iInfoType;
       
  8504 	
       
  8505         /** Contains additional information associated with certain error codes
       
  8506         set in iGeneralResult. If the value in iGeneralResult does not require
       
  8507         any information then leave this field empty.*/
       
  8508         TAdditionalInfo iAdditionalInfo;
       
  8509         
       
  8510         /** Contains the Frames information in the ME, if iGeneralResult is KSuccess 
       
  8511         and the frames information is available. If not, this is left blank
       
  8512 		*/
       
  8513 		TFramesInformation iFramesInformation;
       
  8514         };
       
  8515 
       
  8516     /** A packaged RSat::TGetFramesStatusRspV6. */
       
  8517     typedef TPckg<TGetFramesStatusRspV6>  TGetFramesStatusRspV6Pckg;
       
  8518 	
       
  8519     //
       
  8520     // V6 ENVELOPE COMMANDS
       
  8521     //
       
  8522     
       
  8523     //
       
  8524     // MMS NOTIFICATION DOWNLOAD
       
  8525     //
       
  8526     
       
  8527     /** 
       
  8528     @see RSat::TMMSNotification
       
  8529     */
       
  8530    	enum {KMaxMMSNotificationSize = 243};
       
  8531    	
       
  8532    	/** 
       
  8533    	@see RSat::KMaxFrameLayoutSize
       
  8534    	@see RSat::TMmsNotificationDownloadV6
       
  8535    	*/
       
  8536     typedef TBuf<KMaxFrameLayoutSize> TMMSNotification;
       
  8537     
       
  8538     class TMmsNotificationDownloadV6 : public TSatBase
       
  8539     /**
       
  8540     This data structure contains the details of the MMS NOTIFICATION DOWNLOAD envelope command 
       
  8541     issued to the UICC. See ETSI TS 102 223 and RSat::MmsNotificationDownload() for 
       
  8542     more information about the command.
       
  8543 
       
  8544 	Pass a packaged version of the latest "TMMSNotificationDownloadV6" class. 
       
  8545     For Symbian OS version 9.4 use RSat::TMMSNotificationDownloadV6Pckg, a 
       
  8546     packaged version of RSat::TMMSNotificationDownloadV6.  
       
  8547     For later versions of Symbian OS, check for an updated API (RSat::TMMSNotificationDownloadV7 etc).
       
  8548 
       
  8549     @see RSat::TMMSNotificationDownloadV6Pckg
       
  8550     @see RSat::MmsNotificationDownload()
       
  8551     */
       
  8552         {
       
  8553     public:
       
  8554         IMPORT_C TMmsNotificationDownloadV6();
       
  8555     public:
       
  8556  		TDeviceId iDeviceId; //< The device identification is set to Network or ME
       
  8557 		TMMSNotification iMMSNotification; //<It contains the additional information requested by the network to retrieve a Multimedia Message(i.e MM1_notification.REQ).
       
  8558 		TBool	iLastEnvelope; //< Indicates the last envelope sent to transmit the MMS notification into the card. 
       
  8559        	};
       
  8560 
       
  8561     /** A packaged RSat::TMMSNotificationDownloadV6. */
       
  8562     typedef TPckg<TMmsNotificationDownloadV6> TMmsNotificationDownloadV6Pckg;
       
  8563 
       
  8564     IMPORT_C void MmsNotificationDownload(TRequestStatus& aReqStatus, const TDesC8& aMmsNotificationDownload) const;   
       
  8565     
       
  8566     //
       
  8567     // Multimedia Service Transfer Status
       
  8568     //
       
  8569     
       
  8570     /** 
       
  8571     Multimedia Service Transfer Status is the status information of a Submission/Reception File
       
  8572     It contains the details of MM1_Submit.RES/MM1_Retrieve.RES.
       
  8573     
       
  8574     The UICC is able to identify if the envelope corresponds to a previous submit or retrieve MMS by using the MMS Tranfer File 
       
  8575     and the Multimedia Message Identifier that shall be the same between both commands.
       
  8576 	Refer to section 7.7 of 3GPP TS 31.111 Release 6 for more information.
       
  8577 	
       
  8578 	@see RSat::TMultimediaMessageStatus
       
  8579 	*/
       
  8580     enum  {KMaxMultimediaMessageStatusSize=255};
       
  8581     
       
  8582     /** 
       
  8583     Contains the Multimedia Transfer status information.	
       
  8584     @see RSat::TMmsTransferStatusV6 
       
  8585     */
       
  8586     typedef TBuf<KMaxMultimediaMessageStatusSize> TMultimediaMessageStatus;
       
  8587        
       
  8588     class TMmsTransferStatusV6 : public TSatBase
       
  8589     /**
       
  8590     This asynchronous request is used to send the transfer status information of the Multimedia Message submitted/received 
       
  8591     from ME to the UICC. The ME receives this information from the network.
       
  8592     
       
  8593     @see RSat::TMmsTransferStatusV6Pckg
       
  8594     @see RSat::MmsTransferStatus()
       
  8595     */
       
  8596     	{
       
  8597     public:
       
  8598         IMPORT_C TMmsTransferStatusV6();
       
  8599     public:
       
  8600  		TDeviceId iDeviceId; //< The device identification is set to Network or ME
       
  8601 		TFileList iMMSTransferFile; //<MMS Transfer File is the path of the MMS Reception File or the MMS Submission File 
       
  8602 		TMultimediaMessageStatus  iMultimediaMessageStatus; //< MM Transfer status information	
       
  8603     	TMultimediaMessageId iMultimediaMessageId;  //<This information is used in identifying a Multimedia Message when MMS Reception or Submission file are capable of storing several MMs.
       
  8604     	};
       
  8605     	
       
  8606     /** A packaged RSat::TMmsTransferStatusV6. */
       
  8607     typedef TPckg<TMmsTransferStatusV6> TMmsTransferStatusV6Pckg;
       
  8608 	
       
  8609     IMPORT_C void MmsTransferStatus(TRequestStatus& aReqStatus, const TDesC8& aMmsTransferStatus) const;
       
  8610 
       
  8611 	//USSD Data Download in Application mode
       
  8612 	
       
  8613 	class TUssdDataDownloadV6:TSatBase
       
  8614 	/**
       
  8615 	 This data structure contains the details of the USSD Data Download ENVELOPE command 
       
  8616 	 issued to the UICC. See ETSI TS 102 223 and RSat::UssdDataDownload() for
       
  8617 	 more information about the command.
       
  8618 	  
       
  8619 	 Pass a packaged version of the latest "TUssdDataDownloadV6" class. 
       
  8620 	 For Symbian OS version 9.4 use RSat::TUssdDataDownloadV6Pckg, a 
       
  8621 	 packaged version of RSat::TUssdDataDownloadV6.  
       
  8622 	 For later versions of Symbian OS, check for an updated API (RSat::TUssdDataDownloadV7 etc).
       
  8623 	  
       
  8624 	  
       
  8625     @see RSat::TUssdDataDownloadV6Pckg
       
  8626     @see RSat::UssdDataDownload()
       
  8627     */
       
  8628 		{
       
  8629 	public:
       
  8630 		IMPORT_C TUssdDataDownloadV6();	
       
  8631 	public:
       
  8632 		TDeviceId iDeviceId; //< The device identification is set to Network 
       
  8633 		TUssdString iUssdString; //< An Unstructured Supplementary Services Data string.
       
  8634 		};
       
  8635 	
       
  8636 	 /** A packaged RSat::TUssdDataDownloadV6. */
       
  8637     typedef TPckg<TUssdDataDownloadV6> TUssdDataDownloadV6Pckg;
       
  8638     
       
  8639     IMPORT_C  void UssdDataDownload(TRequestStatus& aReqStatus, const TDesC8& aDes) const;
       
  8640     
       
  8641 protected:
       
  8642     IMPORT_C virtual void ConstructL();
       
  8643     IMPORT_C virtual void Destruct();
       
  8644  
       
  8645 private:
       
  8646     RSat(const RSat& aSat); //< Default copy constructor
       
  8647     CSatPtrHolder* iEtelSatPtrHolder;
       
  8648     };
       
  8649 
       
  8650 #endif // __ETELSAT_H__