adaptationlayer/tsy/simatktsy_dll/inc/satcc.h
changeset 0 63b37f68c1ce
child 5 8ccc39f9d787
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/adaptationlayer/tsy/simatktsy_dll/inc/satcc.h	Fri Nov 06 17:28:23 2009 +0000
@@ -0,0 +1,314 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+
+#ifndef SATCC_H
+#define SATCC_H
+
+
+//  INCLUDES
+#include <e32base.h>        // base class cbase
+#include <etelsat.h>        // etel sat api
+
+
+// CONSTANTS
+const TUint8 KBccMaxSize = 0x10; // Maximum length for BCC
+const TUint8 KStringMaxSize = 249; // Maximum length for SS and 
+                                   // Call Destination address string
+const TUint8 KUssdStringMaxSize = 160; // Maximum length for USSD string
+const TUint8 KCallModeSize = 2; // Call Mode + Call Mode Info
+
+
+// FORWARD DECLARATIONS
+class TTlv;
+class CSatMessHandler;
+class CTsySatMessaging;
+class TIsiReceiveC;
+
+
+// CLASS DECLARATION
+/**
+*  Sat Call control handling
+*
+*  @lib simatktsy.lib
+*  @since Series60_ver 2.6
+*/
+class CSatCC : public CBase
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        * @since NCP 5.0
+        * @param aSatMessHandler pointer to satmessagehandler class
+        * @param aSatMessaging pointer to satmessaging class
+        */
+        static CSatCC* NewL( CSatMessHandler* aSatMessHandler,
+            CTsySatMessaging* aSatMessaging );
+
+        /**
+        * Destructor.
+        * @since NCP 5.0
+        */
+        virtual ~CSatCC();
+
+
+    private:    // Constructors
+
+        /**
+        * C++ default constructor.
+        * @since NCP 5.0
+        * @param aSatMessHandler pointer to satmessagehandler class
+        * @param aSatMessaging pointer to satmessaging class
+        */
+        CSatCC( CSatMessHandler* aSatMessHandler,
+            CTsySatMessaging* aSatMessaging );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        * @since NCP 5.0
+        */
+        void ConstructL();
+
+
+    public: // New functions
+
+        /**
+        * Handles an incoming command from phonet
+        * Called by Phonet receiver when it receives ISI msg.
+        * @since NCP 3.1
+        * @param aIsiMessage received ISI message
+        * @return none
+        */
+        void MessageReceivedL( const TIsiReceiveC& aIsiMessage );
+
+        /*
+        * Empties the arrays in case of refresh
+        * @since Series60_ver 2.6
+        * @return none
+        */
+        void ClearArraysForRefresh();
+
+        /*
+        *  Set internal flag according to EF-SST
+        * @since Series60_ver 2.6
+        * @param aStatus
+        * @return none
+        */
+        void SetStatusOfUssdSupport( TBool aStatus );
+
+        /**
+        * Set CSatCC internal Ton and Npi
+        * @since Series60_ver 2.6
+        * @param aTonNpi
+        * @return none
+        */
+        void SetTonNpi( const TUint8 aTonNpi );
+
+    private: // Data structures
+
+        struct TCallControl
+            {
+            // General with all resource control indications
+            TUint8 iTransId;
+
+            TUint8 iRecourceId;
+
+            TUint8 iResourceSeqId;
+
+            // Call specific
+            TUint8 iCallId;
+
+            TBuf8<KCallModeSize> iCallMode;
+
+            TBuf8<KBccMaxSize> iBearerCapabilities;
+
+            TUint8 iAddressType;
+
+            // SS and Call specific
+            TBuf8<KStringMaxSize> iString;
+
+            // USSD specific
+            TUint8 iUssdCodingInfo;
+            TBuf8<KUssdStringMaxSize> iUssdString;
+            };
+
+    private: // New methods
+
+        /**
+        * add Location Information simple TLV to TTlv
+        * @since Series60_ver 2.6
+        * @param TLV to add location information
+        * @ return none
+        */
+        void AddLocationInformationToTlv( TTlv& aTlv );
+
+        /**
+        * send (to sim) call control envelope for SS operation
+        * @param aCcstruct structure containing data to be sent
+        * @return phonet sender status
+        */
+        TInt SendSSEnvelope(const TCallControl& aCcstruct);
+
+        /**
+        * send (to sim) call control envelope for USSD operation
+        * @param aCcstruct structure containing data to be sent
+        * @return phonet sender status
+        */
+        TInt SendUSSDEnvelope( const TCallControl& aCcstruct );
+
+        /**
+        * send (to sim) call control envelope for Call operation
+        * @param aCallControl structure containing data to be sent
+        * @return phonet sender status
+        */
+        TInt SendCallEnvelope
+            (
+            const TIsiReceiveC& aIsiMessage,
+            const TCallControl& aCallControl
+            );
+
+        /**
+        * Send (to UICC) call control envelope for PDP Context Activation
+        * @since NCP 5.1
+        * @param aPdpCcEnvelopeTid: Transaction ID received in CC GPRS event
+        * @param aPdpContextActivationParams: PDP Activation Parameters
+        * @return phonet sender status
+        */
+        TInt SendPdpContextActivationEnvelope( const TUint8 aPdpCcEnvelopeTid,
+            const TDesC8& aPdpContextActivationParams );
+
+        /**
+        * Handles UICC_CAT_RESP, which comes from UICC as a reply
+        * to call control envelope.
+        * @param aIsiMessage Received UICC_CAT_RESP
+        * @return void
+        */
+        void UiccCatRespEnvelopeReceived( const TIsiReceiveC& aIsiMessage );
+
+        /*
+        * This methods returns ETrue when a Ussd string contains
+        * only "*", "#", and the numbers 0-9.
+        * @since Series60_ver 2.6
+        * @param aUSSDString
+        * @return true if ussd string contains valid values
+        */
+        TBool IsOnlyDigitsInUssd( TPtrC8 aUSSDString );
+
+        /**
+        * Search thought the iCCarray and finds the index of requested
+        * CC event info
+        * @since Series60_ver 3.0
+        * @param aTid requested transaction ID
+        * @return index of CC event or KErrNotFound
+        */
+        TInt GetArrayIndexById( const TInt &aTid );
+
+        /**
+        * Handles resource control request from modem Call server
+        * @param aIsiMessage CALL_MODEM_RESOURCE_IND
+        * @return none
+        */
+        void CallModemResourceInd( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Creates resource control response for modem Call server
+        * @param aTcc internally stored call control structure
+        * @param aResult call control result from (U)SIM
+        * @param aAtkData possible additional response data provided by (U)SIM
+        * @return none
+        */
+        void SendCallModemResourceReq(
+            const TCallControl& aTcc,
+            const TUint8 aResult,
+            TPtrC8 aAtkData );
+
+        /**
+        * Handles resource control request from modem SS server
+        * @param aIsiMessage SS_RESOURCE_CONTROL_IND
+        * @return none
+        */
+        void SsResourceControlInd( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Creates resource control response for modem SS server
+        * @param aTcc internally stored call control structure
+        * @param aResult call control result from (U)SIM
+        * @param aAtkData possible additional response data provided by (U)SIM
+        * @return none
+        */
+        void SendSsResourceControlReq(
+            const TCallControl& aTcc,
+            const TUint8 aResult,
+            TPtrC8 aAtkData );
+
+        /**
+        * Handles resource control request from modem GPDS server
+        * @param aIsiMessage GPDS_RESOURCE_CONTROL_IND
+        * @return none
+        */
+        void GpdsResourceControlInd( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Creates resource control response for modem GPDS server
+        * @param aTcc internally stored call control structure
+        * @param aResult call control result from (U)SIM
+        * @param aAtkData possible additional response data provided by (U)SIM
+        * @return none
+        */
+        void SendGpdsResourceControlReq(
+            const TCallControl& aTcc,
+            const TUint8 aResult,
+            TPtrC8 aAtkData );
+
+    private: // Data
+
+        // Array for storing structures
+        RArray<TCallControl>*   iCallControlArray;
+
+        // Pointers for messaging classes for internal communication
+        CSatMessHandler*        iSatMessHandler;
+        CTsySatMessaging*       iSatMessaging;
+
+        // True if Service n°41 in EF-SST is supported.
+        TBool                   iUssdTlvSupported;
+
+        // True if TonNpi is resolved from SEND SS proactive commmand
+        TBool                   iTonNpiPresent;
+
+        // For setting TON/NPI for SendSSEnvelope
+        TUint8                  iTonNpiForSS;
+
+        // Storage to temporarily store response to call control envelope
+        HBufC8* iEnvelopeResponseData;
+
+        // CC result reported to cellmo
+        TUint8 iCcResult;
+
+        // call control status in (U)SIM card
+        TBool iCallControlEnabled;
+
+        // call control on GPRS status in (U)SIM card
+        TBool iCallControlOnGPRSEnabled;
+    };
+
+
+#endif // SATCC_H
+
+
+// End of file