phoneclientserver/phoneserver/inc/ussd/cphsrvussdmanager.h
author hgs
Wed, 21 Jul 2010 18:26:52 +0300
changeset 33 8d5d7fcf9b59
child 48 78df25012fda
permissions -rw-r--r--
201027
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Handles all the Ussd sessions.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef CPHSRVUSSDMANAGER_H
hgs
parents:
diff changeset
    19
#define CPHSRVUSSDMANAGER_H
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
// INCLUDES
hgs
parents:
diff changeset
    23
#include <etelmm.h>            // ETel
hgs
parents:
diff changeset
    24
#include "phcltclientserver.h" 
hgs
parents:
diff changeset
    25
#include "mphsrvussdnetworkobserver.h" 
hgs
parents:
diff changeset
    26
#include "mphsrvussdreplytimerobserver.h" 
hgs
parents:
diff changeset
    27
#include <badesca.h>
hgs
parents:
diff changeset
    28
#include <hbdevicemessageboxsymbian.h>
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    31
class RFs;
hgs
parents:
diff changeset
    32
class CPhSrvResourceManager;
hgs
parents:
diff changeset
    33
class CPhSrvUssdSendHandler;
hgs
parents:
diff changeset
    34
class CPhSrvUssdReceiveHandler;
hgs
parents:
diff changeset
    35
class CPhSrvUssdReplyTimer;
hgs
parents:
diff changeset
    36
class MPhSrvPhoneInterface;
hgs
parents:
diff changeset
    37
class MPhSrvUssdMessageSentObserver;
hgs
parents:
diff changeset
    38
class CPhSrvUssdSessionCancelWaiter;
hgs
parents:
diff changeset
    39
class CPhSrvUssdNotifyNWRelease;
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
// CLASS DECLARATION
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
/**
hgs
parents:
diff changeset
    44
*  Handles all the Ussd sessions.
hgs
parents:
diff changeset
    45
*
hgs
parents:
diff changeset
    46
*  @since 1.0
hgs
parents:
diff changeset
    47
*/
hgs
parents:
diff changeset
    48
class CPhSrvUssdManager : 
hgs
parents:
diff changeset
    49
    public CActive, 
hgs
parents:
diff changeset
    50
    public MPhSrvUssdNetworkObserver, 
hgs
parents:
diff changeset
    51
    public MPhSrvUssdReplyTimerObserver,
hgs
parents:
diff changeset
    52
    public MHbDeviceMessageBoxObserver
hgs
parents:
diff changeset
    53
    {
hgs
parents:
diff changeset
    54
    public:  // Constructors and destructor
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
        /**
hgs
parents:
diff changeset
    57
        * C++ constructor.
hgs
parents:
diff changeset
    58
        *
hgs
parents:
diff changeset
    59
        * @param aFsSession The file session.
hgs
parents:
diff changeset
    60
        * @param aResourceManager The resource manager.
hgs
parents:
diff changeset
    61
        */
hgs
parents:
diff changeset
    62
        CPhSrvUssdManager( 
hgs
parents:
diff changeset
    63
            RFs& aFsSession, 
hgs
parents:
diff changeset
    64
            CPhSrvResourceManager& aResourceManager
hgs
parents:
diff changeset
    65
         );
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
        /**
hgs
parents:
diff changeset
    68
        * C++ destructor.
hgs
parents:
diff changeset
    69
        */
hgs
parents:
diff changeset
    70
        ~CPhSrvUssdManager();
hgs
parents:
diff changeset
    71
        
hgs
parents:
diff changeset
    72
        /**
hgs
parents:
diff changeset
    73
        * Symbian OS second phase constructor
hgs
parents:
diff changeset
    74
        *
hgs
parents:
diff changeset
    75
        * @param aPhoneInterface The phone interfaces.
hgs
parents:
diff changeset
    76
        */
hgs
parents:
diff changeset
    77
        void ConstructL( MPhSrvPhoneInterface& aPhoneInterface );
hgs
parents:
diff changeset
    78
        
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
    public: // New functions
hgs
parents:
diff changeset
    81
        
hgs
parents:
diff changeset
    82
        /**
hgs
parents:
diff changeset
    83
        * Send the USSD message.
hgs
parents:
diff changeset
    84
        * 
hgs
parents:
diff changeset
    85
        * @param aMsgData The USSD message to be sent.
hgs
parents:
diff changeset
    86
        * @param aMsgAttribute The USSD message attributes.
hgs
parents:
diff changeset
    87
        * @param aObserver Observer for sent event.
hgs
parents:
diff changeset
    88
        */
hgs
parents:
diff changeset
    89
        void SendUssdL( 
hgs
parents:
diff changeset
    90
            const TDesC8& aMsgData, 
hgs
parents:
diff changeset
    91
            RMobileUssdMessaging::TMobileUssdAttributesV1& aMsgAttribute, 
hgs
parents:
diff changeset
    92
            MPhSrvUssdMessageSentObserver& aObserver );
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
        /**
hgs
parents:
diff changeset
    95
        * Cancel sending the USSD.
hgs
parents:
diff changeset
    96
        */
hgs
parents:
diff changeset
    97
        void SendUssdCancel();
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
        
hgs
parents:
diff changeset
   100
        /**
hgs
parents:
diff changeset
   101
        * These are called when status of Ussd application changes.
hgs
parents:
diff changeset
   102
        * 
hgs
parents:
diff changeset
   103
        * @return 0 if editor should not be cleared.
hgs
parents:
diff changeset
   104
        */
hgs
parents:
diff changeset
   105
        void InformUssdApplicationStarting();
hgs
parents:
diff changeset
   106
        void InformUssdApplicationTerminatingL( const RMessage2& aMessage );
hgs
parents:
diff changeset
   107
        TInt InformUssdApplicationToForeground();      
hgs
parents:
diff changeset
   108
        void InformUssdApplicationToBackground();
hgs
parents:
diff changeset
   109
        
hgs
parents:
diff changeset
   110
        /**
hgs
parents:
diff changeset
   111
        * Starts the editor.
hgs
parents:
diff changeset
   112
        */
hgs
parents:
diff changeset
   113
        void RequestStartEditingL();
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
        /**
hgs
parents:
diff changeset
   116
        * SAT starts.
hgs
parents:
diff changeset
   117
        *
hgs
parents:
diff changeset
   118
        * @param aSatMessage Message to be comleted when session ends.
hgs
parents:
diff changeset
   119
        */
hgs
parents:
diff changeset
   120
        void InformStartSAT( const RMessage2& aSatMessage );
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
        /**
hgs
parents:
diff changeset
   123
        * SAT ends.
hgs
parents:
diff changeset
   124
        */
hgs
parents:
diff changeset
   125
        void InformStopSAT();
hgs
parents:
diff changeset
   126
        
hgs
parents:
diff changeset
   127
        /**
hgs
parents:
diff changeset
   128
        * Completes SAT request if it's ongoing.
hgs
parents:
diff changeset
   129
        *
hgs
parents:
diff changeset
   130
        * @param aReceiveString If session end with a string it is passed
hgs
parents:
diff changeset
   131
        *        as a paramter.
hgs
parents:
diff changeset
   132
        * @param aError Completion code.
hgs
parents:
diff changeset
   133
        * @return The error code of the SAT request.
hgs
parents:
diff changeset
   134
        */
hgs
parents:
diff changeset
   135
         void CompleteSatL( 
hgs
parents:
diff changeset
   136
            TDesC* aReceiveString, 
hgs
parents:
diff changeset
   137
            TInt aError );
hgs
parents:
diff changeset
   138
        
hgs
parents:
diff changeset
   139
    protected: // From base classes
hgs
parents:
diff changeset
   140
        
hgs
parents:
diff changeset
   141
        /**
hgs
parents:
diff changeset
   142
        * @see MPhSrvUssdNetworkObserver
hgs
parents:
diff changeset
   143
        */
hgs
parents:
diff changeset
   144
        void UssdNetworkObserverHandleSendEventL( TInt aError );
hgs
parents:
diff changeset
   145
        
hgs
parents:
diff changeset
   146
        /**
hgs
parents:
diff changeset
   147
        * @see MPhSrvUssdNetworkObserver
hgs
parents:
diff changeset
   148
        */
hgs
parents:
diff changeset
   149
        void UssdNetworkObserverHandleReceivedEventL(
hgs
parents:
diff changeset
   150
            const TDes8& aMsgData, 
hgs
parents:
diff changeset
   151
            const RMobileUssdMessaging::TMobileUssdAttributesV1& 
hgs
parents:
diff changeset
   152
                  aMsgAttributes,
hgs
parents:
diff changeset
   153
            TInt aError );
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
        void UssdNetworkObserverHandleNotifyNWReleaseL( 
hgs
parents:
diff changeset
   156
        const RMobilePhone::TMobilePhoneSendSSRequestV3 & aReturnResult, 
hgs
parents:
diff changeset
   157
        TInt aError );
hgs
parents:
diff changeset
   158
        
hgs
parents:
diff changeset
   159
        /**
hgs
parents:
diff changeset
   160
        * @see MPhSrvUssdReplyTimerObserver
hgs
parents:
diff changeset
   161
        */
hgs
parents:
diff changeset
   162
        void UssdReplyTimerObserverHandleExpiredL( TInt aError );
hgs
parents:
diff changeset
   163
        
hgs
parents:
diff changeset
   164
        /**
hgs
parents:
diff changeset
   165
        * @see MHbDeviceMessageBoxObserver
hgs
parents:
diff changeset
   166
        */        
hgs
parents:
diff changeset
   167
        void MessageBoxClosed(const CHbDeviceMessageBoxSymbian* aMessageBox,
hgs
parents:
diff changeset
   168
            CHbDeviceMessageBoxSymbian::TButtonId aButton);
hgs
parents:
diff changeset
   169
        
hgs
parents:
diff changeset
   170
        /*
hgs
parents:
diff changeset
   171
        * @see CActive
hgs
parents:
diff changeset
   172
        */
hgs
parents:
diff changeset
   173
        void RunL();
hgs
parents:
diff changeset
   174
        
hgs
parents:
diff changeset
   175
        /*
hgs
parents:
diff changeset
   176
        * @see CActive
hgs
parents:
diff changeset
   177
        */
hgs
parents:
diff changeset
   178
        void DoCancel();
hgs
parents:
diff changeset
   179
        
hgs
parents:
diff changeset
   180
        /*
hgs
parents:
diff changeset
   181
        * @see CActive
hgs
parents:
diff changeset
   182
        */
hgs
parents:
diff changeset
   183
        TInt RunError( TInt aError );
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
    private: // New functions
hgs
parents:
diff changeset
   186
        
hgs
parents:
diff changeset
   187
        CPhSrvUssdSendHandler& SendHandlerL();
hgs
parents:
diff changeset
   188
hgs
parents:
diff changeset
   189
        void ShowErrorNoteL( TInt aError );
hgs
parents:
diff changeset
   190
hgs
parents:
diff changeset
   191
        void DecodeL( 
hgs
parents:
diff changeset
   192
            const TDesC8& aSrc, 
hgs
parents:
diff changeset
   193
            TDes& aDes, 
hgs
parents:
diff changeset
   194
            TUint8 aDcs );
hgs
parents:
diff changeset
   195
       
hgs
parents:
diff changeset
   196
        void FindFirstCarriageReturnL( 
hgs
parents:
diff changeset
   197
            const TDesC8& aBuffer ,
hgs
parents:
diff changeset
   198
            TUint& aSkipChars , 
hgs
parents:
diff changeset
   199
            TUint& aStartBit );
hgs
parents:
diff changeset
   200
        
hgs
parents:
diff changeset
   201
        /** Display the "Done" note */
hgs
parents:
diff changeset
   202
        void ShowDoneNoteL();
hgs
parents:
diff changeset
   203
        
hgs
parents:
diff changeset
   204
        /** Check is the ussd app running 
hgs
parents:
diff changeset
   205
         * @return app running or not
hgs
parents:
diff changeset
   206
         */
hgs
parents:
diff changeset
   207
        TBool UssdAppTaskExistsL();
hgs
parents:
diff changeset
   208
        
hgs
parents:
diff changeset
   209
        // If the notification array is empty, close the session.
hgs
parents:
diff changeset
   210
        void TryCloseSession();
hgs
parents:
diff changeset
   211
        
hgs
parents:
diff changeset
   212
        // Close the session; clear state etc.
hgs
parents:
diff changeset
   213
        void CloseSession();
hgs
parents:
diff changeset
   214
        
hgs
parents:
diff changeset
   215
        /** Second stage handler for received messages 
hgs
parents:
diff changeset
   216
         */
hgs
parents:
diff changeset
   217
        void UssdHandleReceivedEventL(
hgs
parents:
diff changeset
   218
            const TDes8& aMsgData, 
hgs
parents:
diff changeset
   219
            const RMobileUssdMessaging::TMobileUssdAttributesV1& 
hgs
parents:
diff changeset
   220
                  aMsgAttributes);
hgs
parents:
diff changeset
   221
        // Restart the reply timer
hgs
parents:
diff changeset
   222
        void RestartReplyTimerL();
hgs
parents:
diff changeset
   223
        
hgs
parents:
diff changeset
   224
        /** Is the reply timer up and running? */
hgs
parents:
diff changeset
   225
        TBool NetworkWaitingForAnAnswer();
hgs
parents:
diff changeset
   226
        
hgs
parents:
diff changeset
   227
        // Set timer and activate it if there are notifications available
hgs
parents:
diff changeset
   228
        void SetActiveIfPendingNotificationsExist();
hgs
parents:
diff changeset
   229
        
hgs
parents:
diff changeset
   230
        // Launch the global message query (used from RunL)
hgs
parents:
diff changeset
   231
        void LaunchGlobalMessageQueryL();
hgs
parents:
diff changeset
   232
        
hgs
parents:
diff changeset
   233
        // Send an MO ACK message if any such are pending
hgs
parents:
diff changeset
   234
        void ProcessMoAcksL();
hgs
parents:
diff changeset
   235
        
hgs
parents:
diff changeset
   236
        // Trigger an asynchronous call to call ProcessMoAcksL later
hgs
parents:
diff changeset
   237
        void AsyncProcessMoAcks();
hgs
parents:
diff changeset
   238
        
hgs
parents:
diff changeset
   239
        // The static callback function for AsyncProcessMoAcks
hgs
parents:
diff changeset
   240
        static TInt MoAckCallback(TAny *);
hgs
parents:
diff changeset
   241
        
hgs
parents:
diff changeset
   242
        /**
hgs
parents:
diff changeset
   243
        * Return boolean value that states whether or not 
hgs
parents:
diff changeset
   244
        * indicated feature is supported or not.
hgs
parents:
diff changeset
   245
        * 
hgs
parents:
diff changeset
   246
        * @since 2.1
hgs
parents:
diff changeset
   247
        * @param aFeatureId The feature that is inspected 
hgs
parents:
diff changeset
   248
        *        (see values from Telephony_Variant.hrh)
hgs
parents:
diff changeset
   249
        * @return ETrue if the feature is supported, EFalse otherwise.
hgs
parents:
diff changeset
   250
        */
hgs
parents:
diff changeset
   251
        TBool IsTelephonyFeatureSupported( const TInt aFeatureId );
hgs
parents:
diff changeset
   252
hgs
parents:
diff changeset
   253
        /**
hgs
parents:
diff changeset
   254
        * Play USSD tone.
hgs
parents:
diff changeset
   255
        * 
hgs
parents:
diff changeset
   256
        * @since 2.1
hgs
parents:
diff changeset
   257
        * @return KErrNone if successful, otherwise Symbian error code.
hgs
parents:
diff changeset
   258
        */
hgs
parents:
diff changeset
   259
        TInt PlayUssdTone();
hgs
parents:
diff changeset
   260
hgs
parents:
diff changeset
   261
        /**
hgs
parents:
diff changeset
   262
        * Returns telephony variant read-only data.
hgs
parents:
diff changeset
   263
        * 
hgs
parents:
diff changeset
   264
        * @since 2.1
hgs
parents:
diff changeset
   265
        * @return Error code.
hgs
parents:
diff changeset
   266
        */
hgs
parents:
diff changeset
   267
        TInt GetTelephonyVariantData();
hgs
parents:
diff changeset
   268
hgs
parents:
diff changeset
   269
        /**
hgs
parents:
diff changeset
   270
        * Send the MO acknowledgement.
hgs
parents:
diff changeset
   271
        * 
hgs
parents:
diff changeset
   272
        * @since 2.6
hgs
parents:
diff changeset
   273
        */
hgs
parents:
diff changeset
   274
        void SendMoAcknowledgementL();
hgs
parents:
diff changeset
   275
        
hgs
parents:
diff changeset
   276
        /**
hgs
parents:
diff changeset
   277
        * Return boolean value that states whether notes are shown or not
hgs
parents:
diff changeset
   278
        * 
hgs
parents:
diff changeset
   279
        * @since 3.0
hgs
parents:
diff changeset
   280
        */
hgs
parents:
diff changeset
   281
        TBool ShowNotesL();
hgs
parents:
diff changeset
   282
        
hgs
parents:
diff changeset
   283
        /**
hgs
parents:
diff changeset
   284
        * Check notify message array
hgs
parents:
diff changeset
   285
        * 
hgs
parents:
diff changeset
   286
        * @since 3.1
hgs
parents:
diff changeset
   287
        */
hgs
parents:
diff changeset
   288
        void CheckArray( );
hgs
parents:
diff changeset
   289
        
hgs
parents:
diff changeset
   290
        /**
hgs
parents:
diff changeset
   291
        * Clears notify message array
hgs
parents:
diff changeset
   292
        * 
hgs
parents:
diff changeset
   293
        * @since 3.1
hgs
parents:
diff changeset
   294
        */
hgs
parents:
diff changeset
   295
        void ClearArrayL();
hgs
parents:
diff changeset
   296
        
hgs
parents:
diff changeset
   297
        /**
hgs
parents:
diff changeset
   298
        * Returns notify message count
hgs
parents:
diff changeset
   299
        * 
hgs
parents:
diff changeset
   300
        * @since 3.1
hgs
parents:
diff changeset
   301
        */
hgs
parents:
diff changeset
   302
        TInt NotifyCount();
hgs
parents:
diff changeset
   303
        
hgs
parents:
diff changeset
   304
        
hgs
parents:
diff changeset
   305
        /**
hgs
parents:
diff changeset
   306
        * Updates Notify Message
hgs
parents:
diff changeset
   307
        * 
hgs
parents:
diff changeset
   308
        * @since 3.1
hgs
parents:
diff changeset
   309
        */
hgs
parents:
diff changeset
   310
        void UpdateNotifyMessageL();
hgs
parents:
diff changeset
   311
        
hgs
parents:
diff changeset
   312
        /**
hgs
parents:
diff changeset
   313
        * Turn lights on
hgs
parents:
diff changeset
   314
        * 
hgs
parents:
diff changeset
   315
        * @since 3.1
hgs
parents:
diff changeset
   316
        */
hgs
parents:
diff changeset
   317
        void TurnLightsOn();
hgs
parents:
diff changeset
   318
        
hgs
parents:
diff changeset
   319
        /**
hgs
parents:
diff changeset
   320
        * Load default string by QT style localization
hgs
parents:
diff changeset
   321
        * @param aText default string id defined by _LIT
hgs
parents:
diff changeset
   322
        */        
hgs
parents:
diff changeset
   323
        const TPtrC LoadDefaultString( const TDesC& aText );
hgs
parents:
diff changeset
   324
hgs
parents:
diff changeset
   325
    private:     // Data
hgs
parents:
diff changeset
   326
        
hgs
parents:
diff changeset
   327
        // The file session reference.
hgs
parents:
diff changeset
   328
        RFs& iFsSession;
hgs
parents:
diff changeset
   329
        
hgs
parents:
diff changeset
   330
        // The resource manager reference.
hgs
parents:
diff changeset
   331
        CPhSrvResourceManager& iResourceManager;
hgs
parents:
diff changeset
   332
hgs
parents:
diff changeset
   333
        // The USSD functionality in lower level (TSY).
hgs
parents:
diff changeset
   334
        RMobileUssdMessaging iMobileUssdMessaging;
hgs
parents:
diff changeset
   335
        
hgs
parents:
diff changeset
   336
        // The observer waiting message sent notification.
hgs
parents:
diff changeset
   337
        MPhSrvUssdMessageSentObserver* iObserver;
hgs
parents:
diff changeset
   338
hgs
parents:
diff changeset
   339
        // The send operation handler.
hgs
parents:
diff changeset
   340
        CPhSrvUssdSendHandler* iUssdSendHandler;
hgs
parents:
diff changeset
   341
hgs
parents:
diff changeset
   342
        // The receive operation handler.
hgs
parents:
diff changeset
   343
        CPhSrvUssdReceiveHandler* iUssdReceiveHandler;
hgs
parents:
diff changeset
   344
        
hgs
parents:
diff changeset
   345
        // The network release notifier.
hgs
parents:
diff changeset
   346
         CPhSrvUssdNotifyNWRelease* iUssdNotifyNWRelease;
hgs
parents:
diff changeset
   347
        
hgs
parents:
diff changeset
   348
        // The reply timer.
hgs
parents:
diff changeset
   349
        CPhSrvUssdReplyTimer* iUssdReplyTimer;
hgs
parents:
diff changeset
   350
        
hgs
parents:
diff changeset
   351
        // The buffer for received message.
hgs
parents:
diff changeset
   352
        TBuf< KPhCltUssdMax8BitCharacters > iReceivedMessage;
hgs
parents:
diff changeset
   353
        
hgs
parents:
diff changeset
   354
        // The message query for showing USSD operation queries.
hgs
parents:
diff changeset
   355
        CHbDeviceMessageBoxSymbian* iDeviceDialog;
hgs
parents:
diff changeset
   356
       
hgs
parents:
diff changeset
   357
        // Is editor emptied.
hgs
parents:
diff changeset
   358
        TBool iEmptyEditor;
hgs
parents:
diff changeset
   359
        
hgs
parents:
diff changeset
   360
        // Will the editor be started.
hgs
parents:
diff changeset
   361
        TBool iStartEditor;
hgs
parents:
diff changeset
   362
        
hgs
parents:
diff changeset
   363
        // The timer.
hgs
parents:
diff changeset
   364
        RTimer iTimer;
hgs
parents:
diff changeset
   365
hgs
parents:
diff changeset
   366
        // Is there pending SAT message.
hgs
parents:
diff changeset
   367
        TBool iHavePendingSatMessagePointer;
hgs
parents:
diff changeset
   368
hgs
parents:
diff changeset
   369
        // The pending SAT message.
hgs
parents:
diff changeset
   370
        RMessage2 iPendingSatMessagePointer;
hgs
parents:
diff changeset
   371
hgs
parents:
diff changeset
   372
        // Reference to phone interfaces.
hgs
parents:
diff changeset
   373
        MPhSrvPhoneInterface* iPhoneInterface;
hgs
parents:
diff changeset
   374
hgs
parents:
diff changeset
   375
        // The used DCS in the SAT message
hgs
parents:
diff changeset
   376
        TUint iDCS;
hgs
parents:
diff changeset
   377
hgs
parents:
diff changeset
   378
        // Softkeys in Global MessageQuery.
hgs
parents:
diff changeset
   379
        TInt iSoftkeys;
hgs
parents:
diff changeset
   380
hgs
parents:
diff changeset
   381
        // Global MessageQuery launching indicator.
hgs
parents:
diff changeset
   382
        TBool iLaunchGMQ;
hgs
parents:
diff changeset
   383
hgs
parents:
diff changeset
   384
        // Local Telephony variant read-only data.
hgs
parents:
diff changeset
   385
        TInt iVariantReadOnlyValues;
hgs
parents:
diff changeset
   386
hgs
parents:
diff changeset
   387
        // The buffer for received decoded message.
hgs
parents:
diff changeset
   388
        TBuf< KPhCltUssdMax8BitCharacters > iDecodedMessage;
hgs
parents:
diff changeset
   389
hgs
parents:
diff changeset
   390
        // If ETrue, then the last received USSD message was EUssdMtNotify.
hgs
parents:
diff changeset
   391
        TBool iNotifyMessage;
hgs
parents:
diff changeset
   392
        
hgs
parents:
diff changeset
   393
        //NotifyNetWorkRelease return result
hgs
parents:
diff changeset
   394
        RMobilePhone::TMobilePhoneSendSSRequestV3 iReturnResult;
hgs
parents:
diff changeset
   395
        
hgs
parents:
diff changeset
   396
        //NotifyNetWorkRelease return result
hgs
parents:
diff changeset
   397
        RMobilePhone::TMobilePhoneSendSSRequestV3Pckg iReturnResultPckg;
hgs
parents:
diff changeset
   398
        
hgs
parents:
diff changeset
   399
        // Array for notify messages
hgs
parents:
diff changeset
   400
        CDesCArray* iNotifyArray;
hgs
parents:
diff changeset
   401
        
hgs
parents:
diff changeset
   402
        //Sending Release status
hgs
parents:
diff changeset
   403
        TBool iSendRelease;
hgs
parents:
diff changeset
   404
hgs
parents:
diff changeset
   405
        // Notify array reset status
hgs
parents:
diff changeset
   406
        TBool iClearArray;
hgs
parents:
diff changeset
   407
hgs
parents:
diff changeset
   408
        // Sat cancel status
hgs
parents:
diff changeset
   409
        TBool iSatCanceled;
hgs
parents:
diff changeset
   410
        
hgs
parents:
diff changeset
   411
        // Show Done note
hgs
parents:
diff changeset
   412
        TBool iShowDone;
hgs
parents:
diff changeset
   413
hgs
parents:
diff changeset
   414
        // Checks if received message type is Reply
hgs
parents:
diff changeset
   415
        TBool iMsgTypeReply;
hgs
parents:
diff changeset
   416
        
hgs
parents:
diff changeset
   417
        // Has the transaction been closed or not
hgs
parents:
diff changeset
   418
        TBool iNetworkReleased;
hgs
parents:
diff changeset
   419
        
hgs
parents:
diff changeset
   420
        // Is the current send operation an MO ACK message or not 
hgs
parents:
diff changeset
   421
        TBool iSendingAck;
hgs
parents:
diff changeset
   422
        
hgs
parents:
diff changeset
   423
        // Number of MO ACK messages pending to be sent. Normally max 2.
hgs
parents:
diff changeset
   424
        TInt iAcksToBeSent;
hgs
parents:
diff changeset
   425
        
hgs
parents:
diff changeset
   426
        // An asynchronous callback for sending MO ACK messages
hgs
parents:
diff changeset
   427
        CAsyncCallBack* iMoAckCallback;
hgs
parents:
diff changeset
   428
        
hgs
parents:
diff changeset
   429
        HBufC* iTextBuffer;
hgs
parents:
diff changeset
   430
hgs
parents:
diff changeset
   431
    };
hgs
parents:
diff changeset
   432
    
hgs
parents:
diff changeset
   433
#endif // CPHSRVUSSDMANAGER_H
hgs
parents:
diff changeset
   434
hgs
parents:
diff changeset
   435
hgs
parents:
diff changeset
   436
// End of File