telephonyserverplugins/licenseetsystub/licensee_tsy_stub/src/cmmmockmesshandler.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/licenseetsystub/licensee_tsy_stub/src/cmmmockmesshandler.cpp Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,420 @@
+// Copyright (c) 2002-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:
+//
+
+// INCLUDE FILES
+#include "cmmmockmesshandler.h"
+#include "cmmmessagerouter.h"
+#include "cmmcustomstubext.h"
+#include "tflogger.h"
+#include <pcktcs.h>
+#include <ctsy/rmmcustomapi.h>
+
+// callback timer interval
+const TInt KTimeInterval = 1000000;
+const TUint KTmpPckgSize = 15;
+
+// ======== MEMBER FUNCTIONS ========
+
+CMmMockMessHandler::CMmMockMessHandler()
+ {
+ }
+
+void CMmMockMessHandler::ConstructL( CMmMessageRouter* aMessageRouter )
+ {
+ iMessageRouter = aMessageRouter;
+
+ if ( !iTimer )
+ {
+ iTimer = CPeriodic::NewL( CActive::EPriorityStandard );
+ TFLOGSTRING("TSY: CMmMockMessHandler::ConstructL: timer created" );
+ }
+ }
+
+CMmMockMessHandler* CMmMockMessHandler::NewL(
+ CMmMessageRouter* aMessageRouter )
+ {
+ CMmMockMessHandler* self = new( ELeave ) CMmMockMessHandler();
+ CleanupStack::PushL( self );
+ self->ConstructL( aMessageRouter );
+ CleanupStack::Pop();
+ return self;
+ }
+
+CMmMockMessHandler::~CMmMockMessHandler()
+ {
+ delete iTimer;
+ iTimer = NULL;
+ }
+
+// ---------------------------------------------------------------------------
+// CMmMockMessHandler::ExtFuncL
+// Handles stub requests
+// (other items were commented in a header)
+// ---------------------------------------------------------------------------
+//
+TInt CMmMockMessHandler::ExtFuncL(
+ TInt aIpc,
+ const CMmDataPackage* aDataPackage )
+ {
+TFLOGSTRING2("TSY: CMmMockMessHandler::ExtFuncL. IPC: %d", aIpc );
+
+ // callback indicators
+ TInt ret( KErrNotSupported );
+ TBool complete( EFalse );
+
+ // datapackage for complete
+ CMmDataPackage data;
+ CMmDataPackage* package;
+ package = NULL;
+ TBuf8<KTmpPckgSize> temp;
+ TUint8 routingActivated = 0x0;
+ TInt mode( 0 );
+
+ switch ( aIpc )
+ {
+ // return KErrNone without complete
+ case EMobilePhoneGetWaitingStatusPhase1:
+ case EMobilePhoneGetALSLine:
+ case EMobilePhoneGetCallForwardingStatusPhase1:
+ case EMobilePhoneGetLockInfo:
+ case EMobilePhoneSetLockSetting:
+ case EMobilePhoneGetBarringStatusPhase1:
+ case EMobileConferenceCallNotifyConferenceEvent:
+ case EMobileConferenceCallNotifyCapsChangeCancel:
+ case EMobileConferenceCallNotifyConferenceStatusChangeCancel:
+ case EMobileConferenceCallNotifyConferenceEventCancel:
+ case EMobileConferenceCallNotifyCapsChange:
+ case EMmTsyPhoneBookStoreWriteIPC:
+ case EMmTsyONStoreDeleteIPC:
+ case EMmTsyPhoneBookStoreInitIPC:
+ case EMmTsyPhoneBookStoreGetInfoIPC:
+ case EMmTsyONStoreReadIPC:
+ case EMmTsyONStoreNotifyStoreEventIPC:
+ case EMobilePhoneStoreGetInfo:
+ case EMobileSmsMessagingAckSmsStored:
+ case EMobileSmsMessagingNackSmsStored:
+ case EMobilePhoneStoreDelete:
+ case EMobilePhoneStoreDeleteAll:
+ case EMobilePhoneStoreRead:
+ case EMobilePhoneStoreWrite:
+ case EMobileBroadcastMessagingReceiveMessage:
+ case EMobileUssdMessagingSendMessage:
+ case EMobileSmsMessagingGetMessageStoreInfo:
+ case EMobileSmsMessagingGetSmspListPhase1:
+ case EMobilePhoneStoreReadAllPhase1:
+ case EPacketNotifyDynamicCapsChange:
+ case EPacketNotifyContextAdded:
+ case EPacketNotifyStatusChange:
+ case EPacketContextAddPacketFilter:
+ ret = KErrNone;
+ break;
+
+ // return KErrNone and complete
+ case EMobilePhoneSetALSLine:
+ case EMobilePhoneSelectNetwork:
+ case EMmTsyBootNotifySimStatusReadyIPC:
+ case EMobilePhoneSetCallWaitingStatus:
+ case EMobilePhoneStopDTMFTone:
+ case EMobilePhoneSetNetworkSelectionSetting:
+ case EMobilePhoneSetCallForwardingStatus:
+ case EMobilePhoneSetCallBarringStatus:
+ case EMobilePhoneSendNetworkServiceRequest:
+ case EMobilePhoneChangeSecurityCode:
+ case EMobilePhoneAbortSecurityCode:
+ case EMobilePhoneSetSSPassword:
+ case EMobilePhoneSelectNetworkCancel:
+ case EMobilePhoneGetDetectedNetworksCancel:
+ case EMobileCallDialEmergencyCall:
+ case EMobileCallSwap:
+ case EMobileCallHold:
+ case EMobileCallResume:
+ case EMobileCallGoOneToOne:
+ case EMobileCallTransfer:
+ case EEtelCallAnswer:
+ case EEtelCallHangUp:
+ case EMobileCallSetDynamicHscsdParams:
+ case EMobileConferenceCallAddCall:
+ case EMobileConferenceCallCreateConference:
+ case EMobileConferenceCallSwap:
+ case EMobileConferenceCallHangUp:
+ case EMobileConferenceCallNotifyConferenceStatusChange:
+ case EMmTsyPhoneBookStoreCacheIPC:
+ case EMmTsyPhoneBookStoreDeleteIPC:
+ case EMmTsyPhoneBookStoreDeleteAllIPC:
+ case EMmTsyONStoreWriteIPC:
+ case EMmTsyONStoreStoreAllIPC:
+ case EMmTsyONStoreDeleteAllIPC:
+ case EMobileSmsMessagingStoreSmspList:
+ case EMobileBroadcastMessagingReceiveMessageCancel:
+ case EMobileSmsMessagingSetMoSmsBearer:
+ case ECustomTerminateCallIPC:
+ case ECustomNetWakeupIPC:
+ case ECustomSetAlsBlockedIPC:
+ case ECustomClearCallBlackListIPC:
+ case ECustomResetNetServerIPC:
+ case ECustomSimLockActivateIPC:
+ case ECustomSimLockDeActivateIPC:
+ case ECustomDeleteSimCbTopicIPC:
+ case ECustomCheckSecurityCodeIPC:
+ case ECustomCheckSecurityCodeCancelIPC:
+ case ECustomDisablePhoneLockIPC:
+ case EPacketSetAttachMode:
+ case EPacketSetDefaultContextParams:
+ complete = ETrue;
+ ret = KErrNone;
+ break;
+
+ // return KErrNotSupported and complete
+ case EMobilePhoneSendDTMFTones:
+ case EMobilePhoneSendDTMFTonesCancel:
+ case EMobilePhoneGetIdentityServiceStatus:
+ case ECustomStartSimCbTopicBrowsingIPC:
+ ret = KErrNotSupported;
+ complete = ETrue;
+ break;
+
+ // return KErrNotSupported
+ case EMobilePhoneGetNetworkRegistrationStatus:
+ case EMobilePhoneGetPhoneStoreInfo:
+ case EMmTsySimGetICCType:
+ case EMmTsySecurityGetSimActivePinStateIPC:
+ case EMobilePhoneGetDetectedNetworksV2Phase1:
+ case EMobilePhoneGetCipheringIndicatorStatus:
+ case EMobilePhoneContinueDTMFStringSending:
+ case EMobilePhoneStartDTMFTone:
+ case EMobilePhoneGetServiceTable:
+ case EMobilePhoneVerifySecurityCode:
+ case EMobileCallActivateCCBS:
+ case EMobilePhoneAcceptCCBSRecall:
+ case EMobilePhoneClearBlacklist:
+ case EMobileCallDeflect:
+ case EMobileConferenceCallCreateConferenceCancel:
+ case EMobileConferenceCallAddCallCancel:
+ case EMobileConferenceCallSwapCancel:
+ case EMobileConferenceCallHangUpCancel:
+ case EMobileConferenceCallGetCaps:
+ case EMobileConferenceCallEnumerateCalls:
+ case EMmTsyENStoreReadAllPhase1IPC:
+ case EMmTsyENStoreReadIPC:
+ case EMmTsyENStoreGetInfoIPC:
+ case EMmTsyONStoreGetInfoIPC:
+ case EMobileSmsMessagingSendMessage:
+ case EMmTsySmsSendSatMessage:
+ case EMobileSmsMessagingResumeSmsReception:
+ case ECustomCheckAlsPpSupportIPC:
+ case ECustomGetCipheringInfoIPC:
+ case ECustomGetAlsBlockedIPC:
+ case ECustomCheckEmergencyNumberIPC:
+ case ECustomGetOperatorNameIPC:
+ case ECustomCheckTwoDigitDialSupportIPC:
+ case ECustomGetNetworkProviderNameIPC:
+ case ECustomReadSimFileIPC:
+ case ECustomGetLifeTimeIPC:
+ case ECustomSendAPDUReqIPC:
+ case ECustomIsBlockedIPC:
+ case EPacketAttach:
+ case EPacketDetach:
+ case EPacketGetNtwkRegStatus:
+ case EPacketSetPrefBearer:
+ case EPacketRejectActivationRequest:
+ case EPacketContextGetDataVolumeTransferred:
+ case EPacketContextInitialiseContext:
+ case EPacketContextDelete:
+ case EPacketContextSetConfig:
+ case EPacketContextActivate:
+ case EPacketContextDeactivate:
+ case EPacketContextModifyActiveContext:
+ case EPacketQoSSetProfileParams:
+ ret = KErrNotSupported;
+ break;
+
+ // return KErrNotReady
+ case EMobileConferenceCallGetMobileCallInfo:
+ ret = KErrNotReady;
+ break;
+
+ // return KErrNotFound
+ case EMmTsyPhoneBookStoreReadIPC:
+ ret = KErrNotFound;
+ break;
+
+
+ case EPacketInitProxiesIPC:
+ GetHomeNetworkInfo();
+ ret = KErrNone;
+ break;
+ case EPacketGetAttachMode:
+ complete = ETrue;
+ mode = 1; // 1 = When needed
+ data.PackData( &mode );
+ package = &data;
+ ret = KErrNone;
+ break;
+ case EMobilePhoneGetPhoneId:
+ iTimer->Cancel();
+ iTimer->Start( KTimeInterval, KTimeInterval,
+ TCallBack( TimerCallback, this ) );
+ ret = KErrNone;
+ break;
+ case EMobilePhoneGetSubscriberId:
+ iTimer->Cancel();
+ iTimer->Start( KTimeInterval, KTimeInterval,
+ TCallBack( TimerCallback, this ) );
+ ret = KErrNone;
+ break;
+ case EMobilePhoneGetHomeNetwork:
+ complete = ETrue;
+ data.PackData( &iMyNetworkInfo );
+ package = &data;
+ ret = KErrNone;
+ break;
+ case EMmTsyPhoneGetPin1DisableSupportedIPC:
+ complete = ETrue;
+ data.PackData ( &complete ); //Needed value for packet is ETrue
+ package = &data;
+ ret = KErrNone;
+ break;
+ case EMmTsyActivateSmsRouting:
+ routingActivated = 0x1; //routing activated
+ data.PackData( &routingActivated );
+ package = &data;
+ ret = KErrNone;
+ complete = ETrue;
+ break;
+
+ // Custom functionality
+ case EMmTsyGetCustomVendorExtPtrIPC:
+ {
+TFLOGSTRING("TSY: CMmCustomMessHandler::ExtFuncL --- EMmTsyGetCustomVendorExtPtrIPC");
+ // return pointer to customapi extension
+ CMmCustomVendorExt** extPtr;
+ aDataPackage->UnPackData( &extPtr );
+
+ if ( !iMmCustomStubExt )
+ {
+ iMmCustomStubExt = new ( ELeave ) CMmCustomStubExt( );
+ }
+
+ *extPtr = iMmCustomStubExt;
+ iMmCustomStubExt->SetMessageRouter( iMessageRouter );
+ break;
+ }
+
+ default:
+ ret = KErrNotSupported;
+ break;
+ }
+
+ if( complete )
+ {
+ if( NULL != package )
+ {
+ iMessageRouter->MessageManager()->Complete( aIpc, package, ret );
+ }
+ else
+ {
+ iMessageRouter->MessageManager()->Complete( aIpc, ret );
+ }
+
+ return KErrNone;
+ }
+
+ return ret;
+ }
+
+// ---------------------------------------------------------------------------
+// CMmMockMessHandler::GetHomeNetwork
+// Creates and sends default values of Home network
+// (other items were commented in a header)
+// ---------------------------------------------------------------------------
+//
+void CMmMockMessHandler::GetHomeNetwork()
+ {
+TFLOGSTRING("TSY: CMmMockMessHandler::GetHomeNetwork.");
+
+ iMyNetworkInfo.iMode = RMobilePhone::ENetworkModeGsm,
+ iMyNetworkInfo.iStatus = RMobilePhone::ENetworkStatusCurrent,
+ iMyNetworkInfo.iBandInfo = RMobilePhone::EBandUnknown;
+ _LIT(KCountryCode, "358");
+ iMyNetworkInfo.iCountryCode = KCountryCode;
+ _LIT(KCdmaSID, "");
+ iMyNetworkInfo.iCdmaSID = KCdmaSID;
+ _LIT(KAnalogSID, "");
+ iMyNetworkInfo.iAnalogSID = KAnalogSID;
+ _LIT(KNetworkId, "NMC");
+ iMyNetworkInfo.iNetworkId = KNetworkId;
+ _LIT(KDisplayTag, "?");
+ iMyNetworkInfo.iDisplayTag = KDisplayTag;
+ _LIT(KShortName, "stub");
+ iMyNetworkInfo.iShortName = KShortName;
+ _LIT(KLongName, "stubtsy");
+ iMyNetworkInfo.iLongName = KLongName;
+ }
+
+// ---------------------------------------------------------------------------
+// CMmMockMessHandler::GetHomeNetworkInfo
+// Requests for GetHomeNetwork
+// (other items were commented in a header)
+// ---------------------------------------------------------------------------
+//
+void CMmMockMessHandler::GetHomeNetworkInfo()
+ {
+TFLOGSTRING("TSY: CMmMockMessHandler::GetHomeNetworkInfo.");
+ // call for completion
+ TRAP_IGNORE( ExtFuncL( EMobilePhoneGetHomeNetwork, NULL ); );
+ }
+
+// ---------------------------------------------------------------------------
+// CMmMockMessHandler::TimerCallback
+// Compeltes IMEI and IMSI code to CommonTSY
+// (other items were commented in a header)
+// ---------------------------------------------------------------------------
+//
+TInt CMmMockMessHandler::TimerCallback( TAny* aThis )
+ {
+TFLOGSTRING("TSY: CMmMockMessHandler::TimerCallback.");
+
+ // cancel the callback timer
+ ( ( CMmMockMessHandler* )aThis )->iTimer->Cancel();
+
+ // create datapackage
+ CMmDataPackage data;
+ CMmDataPackage* package;
+ package = NULL;
+
+ // create dummy phone id
+ TBuf8<KTmpPckgSize> tmp;
+ _LIT8( phoneid,"000000000000000" );
+ tmp.Copy( phoneid );
+ data.PackData( &tmp );
+ package = &data;
+
+TFLOGSTRING2("TSY: CMmMockMessHandler::TimerCallback: IPC EMobilePhoneGetPhoneId Phone Id : %d", phoneid );
+ ( ( CMmMockMessHandler* ) aThis )->iMessageRouter->MessageManager()->
+ Complete( EMobilePhoneGetPhoneId, package, KErrNone );
+
+ //Create dummy IMSI
+ _LIT8( imsi,"000000000000000" );
+ TBuf8<KTmpPckgSize> temp;
+ temp.Copy( imsi );
+ data.PackData( &temp );
+ package = &data;
+
+TFLOGSTRING2("TSY:CMmMockMessHandler::TimerCallback: IPC EMobilePhoneGetSubscriberId Dummy imsi : %d", imsi );
+ ( ( CMmMockMessHandler* ) aThis )->iMessageRouter->MessageManager()->
+ Complete( EMobilePhoneGetSubscriberId, package, KErrNone );
+
+ return ETrue;
+ }
+
+// End of File