diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/simatktsy/inc/CSatNotifyMoSmControlRequest.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserverplugins/simatktsy/inc/CSatNotifyMoSmControlRequest.h Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,179 @@ +/* +* Copyright (c) 2005-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 : CSatNotifyMoSmControlRequest.h +* Part of : Common SIM ATK TSY / commonsimatktsy +* Class for mobile oriented short message control +* Version : 1.0 +* +*/ + + + +#ifndef CSATNOTIFYMOSMCONTROLREQUEST_H +#define CSATNOTIFYMOSMCONTROLREQUEST_H + + +// INCLUDES +#include "MSatNotificationsBase.h" + +// FORWARD DECLARATIONS +class CSatDataPackage; +class CSatNotificationsTsy; + +/** +* DESCRIPTION +* SAT MO-SMS Control notification class. +* Used when client requests to be notified when MO SM control request +* command arrives from SIM. +* +* This is used especially for returning AlphaId and +* ControlResult to SatServer. +* @lib Commonsimatktsy +* @since 3.1 +*/ +NONSHARABLE_CLASS ( CSatNotifyMoSmControlRequest ) : public CBase, + public MSatNotificationsBase + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aNotificationsTsy: Pointer to NotificationsTsy + * return CSatNotifyMoSmControlRequest*: created object + */ + static CSatNotifyMoSmControlRequest* NewL( + CSatNotificationsTsy* aNotificationsTsy ); + + /** + * C++ Destructor. + */ + ~CSatNotifyMoSmControlRequest(); + + private: + /** + * By default C++ constructor is private. + * @param aNotificationsTsy: Pointer to NotificationsTsy + * @return None + */ + CSatNotifyMoSmControlRequest( CSatNotificationsTsy* aNotificationsTsy ); + + /** + * Class attributes are created in ConstructL. + * @param None + * @return None + */ + void ConstructL(); + + public: // Functions from base classes + + + /** + * GetInput Notification request received from client + * @param aTsyReqHandle request handle from ETel + * @param aPackage: Packed data + * @return KErrNone + */ + TInt Notify( const TTsyReqHandle aTsyReqHandle, + const TDataPackage& aPackage ); + + /** + * Cancels notification request for GetInput. + * @param aReqHandle notify request handle + * @return KErrNone + */ + TInt CancelNotification( const TTsyReqHandle aReqHandle ); + + /** + * Completes GetInput message to client + * @param aDataPackage: Packaged return data + * @param aErrorCode: Possible error code + * @return KErrNone/ KErrCorrupt + */ + TInt CompleteNotifyL( CSatDataPackage* aDataPackage, TInt aErrorCode ); + + public: // New methods + + /* + * Create an MO-SMS envelope to in order to check wheter the SMS + * can be sent or not. The response will be used to send forward + * to the server needing the information + * @param aDataPackage contains aAddressData1 RP address and + * aAddressData2 TP address + * @param aResult KErrNone + */ + void CreateMoSmsCtrlEnvelopeL( CSatDataPackage* aDataPackage, + TInt aResult ); + + /* + * Set iIsMoSmsCtrlActivated to the given value + * @param aDataPackage contains aAddressData1 RP address and + * aAddressData2 TP address + * @return none + */ + void SetActivationStatus( CSatDataPackage* aDataPackage ); + + /* + * Returns MO-SMS Control activation status + * If ETrue: Allows this object to process incoming Mo-Sm requests + * If EFalse: Prevents this object to process incoming Mo-Sm requests + * @return activation status + */ + TBool ActivationStatus(); + + /* + * This method cleans the address data, so that all the byte found + * after a 0xXF or a 0xFX are ignored and removed. + * @param aAddr Address data to be cleaned + * @return None + */ + void CleanAddressData( TDes8& aAddr ); + + /* + * Extracts data from AtkSwDataNtf message data part + * @param aAtkData, TLV data from NAA + * @param aAddr1, contains the RP address provided by the SIM + * @param aAddr2, contains the TP address provided by the SIM + * @param aAlphaId, contains the alpha id provided by the SIM + * @return none + */ + void ParseNotification( const TDesC8& aAtkData, TDes8& aAddr1, + TDes8& aAddr2, RSat::TAlphaId& aAlphaId ); + + /* + * This method checks the consistency of the data sent by the NAA to + * the ME, when the call is allowed and modified. + * @param aRPAddr SMSC RP address + * @param aTPAddr TP Destinatiion address + * @return ETtrue if data is consistent, else EFalse + */ + TBool VerifyNotificationData( TDes8& aRPAddr, TDes8& aTPAddr ); + + private: // Data + + // Pointer to the notifications tsy class + CSatNotificationsTsy* iNotificationsTsy; + + // Notify Call Control struct. Package allocated + // in this class and received from ETel + RSat::TMoSmControlV1Pckg* iMoSmControlV1Pckg; + + // Boolean to check whether MO-SMS Control is activated. This is used + // by CTsySatMessaging::MoSmsControlReceived, in order to know if this + // object is in use or not + TBool iIsMoSmsCtrlActivated; + + }; + +#endif // CSATNOTIFYMOSMCONTROLREQUEST_H