--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/simatktsy/inc/csattsy.h Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,376 @@
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Name : CSatTsy.h
+* Part of : Common SIM ATK TSY / commonsimatktsy
+* Main entry point for Etel requests
+* Version : 1.0
+*
+*/
+
+
+
+#ifndef CSATTSY_H
+#define CSATTSY_H
+
+// INCLUDES
+#include <e32base.h> // Etel base
+#include <etelsat.h> // Etel sat
+#include <ctsy/serviceapi/ctsysatmessagingbase.h> // SatMessaging Base class
+
+#include "CSatTimer.h" // SatTimer class
+// CONSTANTS
+// Max address length
+const TUint8 KAddrMaxLength = 255;
+const TUint8 KCountryCodeLength = 3;
+
+// FORWARD DECLARATIONS
+class CMmPhoneTsy;
+class CMmSmsTsy;
+class CSatMessageRouterBase;
+class CSatCCTsy;
+class CSatIconTsy;
+class CMmMessageRouterBase;
+class CMmMessageManagerBase;
+class CMmMessageManager;
+class CSatTsyReqHandleStore;
+class CSatNotificationsTsy;
+class CSatDataDownloadTsy;
+class CSatEventDownloadTsy;
+class CTsySatMessaging;
+
+class MMessageRouter;
+class MCtsySatService;
+class MmMessageManagerCallback;
+
+
+// DESCRIPTION
+// SAT TSY class.
+//
+// This class is a main entry point for all the requests coming from Etel.
+// The requests are routed to specific Tsy if such exists, otherwise the
+// request is handled here by calling the corresponding method directly.
+// e.g. SMS message sending and menu selection SAT features are handled here.
+// The functions that are not supported are completed at arrival.
+
+/*
+* @lib Commonsimatktsy
+* @since 3.1
+*/
+NONSHARABLE_CLASS ( CSatTsy ) : public CTsySatMessagingBase
+ {
+ public: // Enumerations
+
+ enum TSatRequestTypes
+ {
+ ESatReqHandleUnknown, // 0
+ ESatNotifyDisplayTextPCmdReqType,
+ ESatNotifyProactiveSimSessionEndReqType,
+ ESatNotifyGetInkeyPCmdReqType,
+ ESatNotifyGetInputPCmdReqType,
+ ESatNotifyPlayTonePCmdReqType,
+ ESatNotifySetUpMenuPCmdReqType,
+ ESatNotifySelectItemPCmdReqType,
+ ESatNotifySendSmPCmdReqType,
+ ESatNotifySendSsPCmdReqType,
+ ESatNotifySetUpEventListPCmdReqType,
+ ESatNotifySendDtmfPCmdReqType,
+ ESatNotifyPollingOffPCmdReqType,
+ ESatNotifyPollIntervalPCmdReqType,
+ ESatNotifySendUssdPCmdReqType,
+ ESatNotifySetUpIdleModeTextPCmdReqType,
+ ESatNotifyLaunchBrowserPCmdReqType,
+ ESatNotifyCallControlRequestPCmdReqType,
+ ESatNotifySetUpCallPCmdReqType,
+ ESatNotifyLanguageNotificationPCmdReqType,
+ ESatNotifyLocalInfoPCmdReqType,
+ ESatNotifyRefreshPCmdReqType,
+ ESatNotifyRefreshRequiredPCmdReqType,
+ ESatNotifyOpenChannelPCmdReqType,
+ ESatNotifyGetChannelStatusPCmdReqType,
+ ESatNotifyMoSmControlRequestPCmdReqType,
+ ESatNotifyCloseChannelPCmdReqType,
+ ESatNotifySendDataPCmdReqType,
+ ESatNotifyReceiveDataPCmdReqType,
+ ESatGetIconReqType,
+ ESatGetImageInstanceReqType,
+ ESatGetClutReqType,
+ ESatTerminalRspReqType,
+ ESatSendMessageNoLoggingReqType,
+ // ATTENTION:: Declare constant for those requests that need
+ // own request handle record in iSatTsyReqHandleStore above the
+ // following!
+ ESatMaxNumOfRequests
+ };
+
+ /*
+ * This structure contains data needed for LocationStatus
+ * envelope. (used by EventDownload and MoSmContol)
+ */
+ struct TLocationStatusEnvelope
+ {
+ TUint8 iLocationStatus; // Location satus
+ TBuf8<KCountryCodeLength> iCountryCode; // Country code
+ TUint16 iLocationAreaCode;// Location area code
+ TUint16 iCellId; // Cell id
+ };
+
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * @param aMmPhoneTsy: Pointer to TSY phone object
+ * @param aMmMessageRouter: Pointer to Message router base in Common TSY
+ * @param aName: Sat application fixed name
+ * @param aTsySatMessaging: SAT messaging pointer
+ * @return CSatTsy
+ */
+ static CSatTsy* NewL( MMessageRouter& aMmMessageRouter, MCtsySatService& aSatService);
+
+ /**
+ * Destructor.
+ */
+ ~CSatTsy();
+
+ private:
+
+ /**
+ * C++ default constructor.
+ * @param aMmPhone: Pointer to TSY phone object
+ * @param aName: Sat application fixed name
+ * @param aTsySatMessaging: Sat messaging pointer
+ */
+ CSatTsy( MMessageRouter& aMmMessageRouter, MCtsySatService& SatService);
+
+ /**
+ * By default EPOC constructor is private.
+ * @param aMmPhoneTsy: Pointer to TSY phone object
+ */
+ void ConstructL();
+
+ public: // Functions from base classes
+
+ /**
+ * Command handler for Etel messages.
+ * @param aTsyReqHandle: Tsy request handle
+ * @param aIpc: command identifier
+ * @param aPackage: Data pointer
+ * @return status
+ */
+ TInt ExtFunc( const TTsyReqHandle aTsyReqHandle,
+ const TInt aIpc, const TDataPackage& aPackage );
+
+ /**
+ * Saves the request type to request handle table
+ * @param aTsyReqHandle: Tsy request handle
+ * @param aSatRequestType: Request type to be saved
+ */
+ void SaveReqHandle( const TTsyReqHandle aTsyReqHandle,
+ const TSatRequestTypes aSatRequestType );
+
+ /**
+ * ReqMode method for checking what modes this component supports
+ * @param aIpc: Command identifier
+ * @return reqmode
+ */
+ CTelObject::TReqMode ReqModeL( const TInt aIPC );
+
+ /**
+ * Cancels the ongoing service
+ * @param aIpc: Command identifier
+ * @param aTsyReqHandle: Tsy request handle
+ * @return status
+ */
+ TInt CancelService( const TInt aIpc,
+ const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Register given command, checks if the command is supported
+ * @param aIpc: Command identifier
+ * @return status
+ */
+ TInt RegisterNotification( const TInt aIpc );
+
+ /**
+ * Deregisters given command, checks if the command is supported
+ * @param aIpc: Command identifier
+ * @return status
+ */
+ TInt DeregisterNotification( const TInt aIpc );
+
+ /**
+ * Returns number of slots to be used for given IPC
+ * @param aIpc: Command identifier
+ * @return status
+ */
+ TInt NumberOfSlotsL( const TInt aIpc );
+
+ public: // New functions
+
+ /**
+ * Completes requests to ETel
+ * @param aReqHandle: Registered req handle
+ * @param aRet: return value
+ */
+ void ReqCompleted( TTsyReqHandle aReqHandle,
+ TInt aRet );
+ /**
+ * Cache call connected envelope
+ * @param aEnvelope Call connected envelope
+ */
+ void StoreCallConnectedEvent( const TDesC8& aEnvelope );
+
+ /**
+ * Set Status of SetUpCall command to CSatEventDownloadTsy class.
+ * @param aStatus status of Set up Call proactive command
+ */
+ void SetSetUpCallStatus( const TBool aStatus );
+
+ /**
+ * Set up events to report for USIM.
+ * @param aEvents: bit mask
+ */
+ void SetUpEventList( TUint32 aEvents );
+
+ /**
+ * Returns pointer to the message manager
+ * @return CMmMessageManager*: pointer to the requested object
+ */
+ CMmMessageManagerBase* MessageManager();
+
+ /**
+ * Returns pointer to the Call Control TSY
+ * @return CSatCCTsy*: pointer to the requested object
+ */
+ CSatCCTsy* SatCCTsy();
+
+ /**
+ * Get pointer to SAT request handle
+ * @return CSatTsyReqHandleStore*:
+ */
+ CSatTsyReqHandleStore* GetSatReqHandleStore();
+
+ /**
+ * Get pointer to request handle type
+ * @return pointer to request handle type
+ */
+ TSatRequestTypes* GetReqHandleType();
+
+ /**
+ * Reports to CSatCCTsy whether call or SS has been activated by PCmd
+ * @param aAddress: Destination address of proactive command or NULL
+ */
+ void StoreProactiveAddress( const TDesC8* aAddress );
+
+ /**
+ * Set Internal TON and NPI
+ * @param aTonNpi: TON and NPI
+ */
+ void SetTonNpi( const TUint8 aTonNpi );
+
+ MmMessageManagerCallback* GetMessageManagerCallback();
+
+ public: //from MStkTsySatService
+ /**
+ * From MStkTsySatService
+ * Dummy implementation for CompleteSendSmsMessage function
+ *
+ * @param aError Error value
+ * @return Return always KErrNone
+ */
+ virtual TInt CompleteSendSmsMessage( TInt aError );
+
+ /**
+ * From MStkTsySatService
+ * Dummy implementation for IsMoSmControlBySimActivated function
+ *
+ * @return Return always EFalse
+ */
+ virtual TBool IsMoSmControlBySimActivated();
+
+#ifdef USING_CTSY_DISPATCHER
+ public: //from MStkTsyCallOrigin
+ /**
+ * From MStkTsyCallOrigin
+ * Dummy implementation for IsSimOriginatedCall function
+ *
+ * @param aAddress The number whose origin is required.
+ * @return ETrue if call originates from a Proactive Command
+ */
+ virtual TBool IsSimOriginatedCall( const TDesC8& aAddress );
+#endif //USING_CTSY_DISPATCHER
+ private:
+
+ /**
+ * Handles extended client requests. Uses TRAP to ensure functioning on
+ * memory allocation failure
+ * @param aTsyReqHandle: TSY request handle
+ * @param aIpc: Request IPC number
+ * @param aPackage: Packaged request parameters
+ * @return result of the request
+ */
+ TInt DoExtFuncL( const TTsyReqHandle aTsyReqHandle,
+ const TInt aIpc, const TDataPackage& aPackage );
+
+ /**
+ * Menu selection command handler from client application.
+ * @param aTsyReqHandle: TSY request handle
+ * @param aSelection: Packed menu item nr and help item indicator
+ * @return status
+ */
+ TInt MenuSelectionL( TTsyReqHandle aTsyReqHandle,
+ RSat::TMenuSelectionV1Pckg* aSelection );
+
+ /**
+ * Send SMS No Logging command handler from client application.
+ * @param aMsg pointer to msg
+ * @param aTsyReqHandle TsyReqHandle
+ * @return status
+ */
+ TInt SendMessageNoLogging( TDes8* aMsg, TTsyReqHandle aTsyReqHandle );
+
+ private: // Data
+
+ // A table for SAT request handles
+ TTsyReqHandle iSatReqHandles[ESatMaxNumOfRequests];
+ // Request handle type
+ TSatRequestTypes iReqHandleType;
+ // Request handle array type
+ TSatRequestTypes iReqHandleArrayType;
+ // Message manager
+ CMmMessageManagerBase* iMessageManager;
+ // SMS messaging class pointer for sending SMS messages
+ CMmSmsTsy* iMmSmsTsy;
+ // Store for request handles
+ CSatTsyReqHandleStore* iSatReqHandleStore;
+
+ // Pointer to the CCTsy class
+ CSatCCTsy* iSatCCTsy;
+ // Pointer to the IconTsy class
+ CSatIconTsy* iSatIconTsy;
+ // Pointer to the NotificationsTsy class
+ CSatNotificationsTsy* iSatNotificationsTsy;
+ // Pointer to the DataDownloadTsy class
+ CSatDataDownloadTsy* iSatDataDownloadTsy;
+ // Pointer to the EventDownloadTsy class
+ CSatEventDownloadTsy* iSatEventDownloadTsy;
+
+ MMessageRouter& iMessageRouter;
+ MCtsySatService& iSatService;
+
+ };
+
+#endif // CSATTSY_H
+
+// End of File