diff -r 6b1d113cdff3 -r 6638e7f4bd8f telephonyserverplugins/ctsydispatchlayer/test/mockltsy_under_ctsydispatch/src/cmockcallcontrolmesshandler.cpp --- a/telephonyserverplugins/ctsydispatchlayer/test/mockltsy_under_ctsydispatch/src/cmockcallcontrolmesshandler.cpp Mon May 03 13:37:20 2010 +0300 +++ b/telephonyserverplugins/ctsydispatchlayer/test/mockltsy_under_ctsydispatch/src/cmockcallcontrolmesshandler.cpp Thu May 06 15:10:38 2010 +0100 @@ -1,588 +1,588 @@ -// Copyright (c) 2008-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: -// - -#include -#include -#include -#include - -#include "mmockmesshandlerbase.h" -#include "cmockcallcontrolmesshandler.h" -#include "cmockltsyengine.h" -#include -#include - -#include "mockltsyindicatorids.h" - -// Example emergency numbers, used here for testing purposes only. -_LIT(KEmergencyNumber999, "999"); -_LIT(KEmergencyNumber112, "112"); - -/** - * Factory function - */ -CMockCallControlMessHandler* CMockCallControlMessHandler::NewL(CMockLtsyEngine& aEngine, CCtsyDispatcherCallback& aCallback ) - { - CMockCallControlMessHandler* self = new (ELeave)CMockCallControlMessHandler(aEngine, aCallback); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } - -/** - * Constructor - */ -CMockCallControlMessHandler::CMockCallControlMessHandler(CMockLtsyEngine& aEngine, CCtsyDispatcherCallback& aCallback) - : iMockLtsyEngine(aEngine), iCompletionCallback(aCallback) - { - } - -/** - * 2nd phase contructor - */ -void CMockCallControlMessHandler::ConstructL() - { - } - -/** - * Destructor - */ -CMockCallControlMessHandler::~CMockCallControlMessHandler() - { - - } - -TBool CMockCallControlMessHandler::IsHandlerForApi(TInt aApiId) - { - switch (aApiId) - { - case KMockLtsyDispatchCallControlNotifyCallStatusChangeIndId: - case KMockLtsyDispatchCallControlReceiveUuiIndId: - case KMockLtsyDispatchCallControlNotifyDataCallCapsChangeIndId: - case KMockLtsyDispatchCallControlNotifyIncomingCallIndId: - case KMockLtsyDispatchCallControlNotifyHscsdInfoChangeIndId: - case KMockLtsyDispatchCallControlNotifyCallEventIndId: - case KMockLtsyDispatchCallControlNotifyCallInfoChangeIndId: - case KMockLtsyDispatchCallControlRemoteAlertingToneChangeIndId: - case MLtsyDispatchCallControlAnswer::KLtsyDispatchCallControlAnswerApiId: - case MLtsyDispatchCallControlHold::KLtsyDispatchCallControlHoldApiId: - case MLtsyDispatchCallControlDialEmergency::KLtsyDispatchCallControlDialEmergencyApiId: - case MLtsyDispatchCallControlStopDtmfTone::KLtsyDispatchCallControlStopDtmfToneApiId: - case MLtsyDispatchCallControlSetActiveAlsLine::KLtsyDispatchCallControlSetActiveAlsLineApiId: - case MLtsyDispatchCallControlSendDtmfTonesCancel::KLtsyDispatchCallControlSendDtmfTonesCancelApiId: - case MLtsyDispatchCallControlHangUp::KLtsyDispatchCallControlHangUpApiId: - case MLtsyDispatchCallControlResume::KLtsyDispatchCallControlResumeApiId: - case MLtsyDispatchCallControlSetDynamicHscsdParams::KLtsyDispatchCallControlSetDynamicHscsdParamsApiId: - case MLtsyDispatchCallControlDialVoice::KLtsyDispatchCallControlDialVoiceApiId: - case MLtsyDispatchCallControlTransfer::KLtsyDispatchCallControlTransferApiId: - case MLtsyDispatchCallControlSendDtmfTones::KLtsyDispatchCallControlSendDtmfTonesApiId: - case MLtsyDispatchCallControlGetIdentityServiceStatus::KLtsyDispatchCallControlGetIdentityServiceStatusApiId: - case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSwapApiId: - case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId: - case MLtsyDispatchCallControlLoanDataPort::KLtsyDispatchCallControlLoanDataPortApiId: - case MLtsyDispatchCallControlRecoverDataPort::KLtsyDispatchCallControlRecoverDataPortApiId: - case MLtsyDispatchCallControlStartDtmfTone::KLtsyDispatchCallControlStartDtmfToneApiId: - case MLtsyDispatchCallControlGetActiveAlsLine::KLtsyDispatchCallControlGetActiveAlsLineApiId: - case MLtsyDispatchCallControlDialData::KLtsyDispatchCallControlDialDataApiId: - case MLtsyDispatchCallControlQueryIsEmergencyNumber::KLtsyDispatchCallControlQueryIsEmergencyNumberApiId: - case KMockLtsyDispatchCallControlNotifyIccCallForwardingStatusChangeIndId: - case MLtsyDispatchCallControlGetAlsPpSupport::KLtsyDispatchCallControlGetAlsPpSupportApiId: - case MLtsyDispatchCallControlGetAlsBlockedStatus::KLtsyDispatchCallControlGetAlsBlockedStatusApiId: - case MLtsyDispatchCallControlSetAlsBlocked::KLtsyDispatchCallControlSetAlsBlockedApiId: - case MLtsyDispatchCallControlGetLifeTime::KLtsyDispatchCallControlGetLifeTimeApiId: - case MLtsyDispatchCallControlTerminateErrorCall::KLtsyDispatchCallControlTerminateErrorCallApiId: - case MLtsyDispatchCallControlTerminateAllCalls::KLtsyDispatchCallControlTerminateAllCallsApiId: - case MLtsyDispatchCallControlGetCallForwardingIndicator::KLtsyDispatchCallControlGetCallForwardingIndicatorApiId: - case MLtsyDispatchCallControlUpdateLifeTimer::KLtsyDispatchCallControlUpdateLifeTimerApiId: - return iConfig.IsSupported(aApiId); - default: - return EFalse; - } - } // CMockCallControlMessHandler::IsHandlerForApi - -/** - * Execute a request. - */ -TInt CMockCallControlMessHandler::ExtFuncL(TInt aInterfaceId, VA_LIST& aList) - { - switch (aInterfaceId) - { - case MLtsyDispatchCallControlAnswer::KLtsyDispatchCallControlAnswerApiId: - { - TInt callId = VA_ARG(aList, TInt); - TBool isIsvCall = VA_ARG(aList, TBool); - TMockLtsyData2 data(callId, isIsvCall); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlHold::KLtsyDispatchCallControlHoldApiId: - { - TInt callId = VA_ARG(aList, TInt); - TMockLtsyData1 data(callId); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlDialEmergency::KLtsyDispatchCallControlDialEmergencyApiId: - { - RMobileENStore::TEmergencyNumber& number = *VA_ARG(aList, RMobileENStore::TEmergencyNumber*); - TMockLtsyData1 data(number); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlStopDtmfTone::KLtsyDispatchCallControlStopDtmfToneApiId: - { - TInt callId = VA_ARG(aList, TInt); - TMockLtsyData1 data(callId); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlSetActiveAlsLine::KLtsyDispatchCallControlSetActiveAlsLineApiId: - { - RMobilePhone::TMobilePhoneALSLine& alsLine = *VA_ARG(aList, RMobilePhone::TMobilePhoneALSLine*); - TMockLtsyData1 data(alsLine); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlSendDtmfTonesCancel::KLtsyDispatchCallControlSendDtmfTonesCancelApiId: - { - TInt callId = VA_ARG(aList, TInt); - TMockLtsyData1 data(callId); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlHangUp::KLtsyDispatchCallControlHangUpApiId: - { - TInt callId = VA_ARG(aList, TInt); - TInt hangUpCause = VA_ARG(aList, TInt); - TMockLtsyData2 data(callId, hangUpCause); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlResume::KLtsyDispatchCallControlResumeApiId: - { - TInt callId = VA_ARG(aList, TInt); - TMockLtsyData1 data(callId); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlSetDynamicHscsdParams::KLtsyDispatchCallControlSetDynamicHscsdParamsApiId: - { - TInt callId = VA_ARG(aList, TInt); - RMobileCall::TMobileHscsdCallParamsV8& hscsdParams = *VA_ARG(aList, RMobileCall::TMobileHscsdCallParamsV8*); - TMockLtsyData2 data(callId, hscsdParams); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlDialVoice::KLtsyDispatchCallControlDialVoiceApiId: - { - RMobilePhone::TMobilePhoneALSLine& line = *VA_ARG(aList, RMobilePhone::TMobilePhoneALSLine*); - RMobilePhone::TMobileAddress& dialledParty = *VA_ARG(aList, RMobilePhone::TMobileAddress*); - RMobileCall::TMobileCallParamsV1& callParams = *VA_ARG(aList, RMobileCall::TMobileCallParamsV1*); - TBool isIsvCall = VA_ARG(aList, TBool); - RMobileCall::TCallParamOrigin& callOrigin = *VA_ARG(aList, RMobileCall::TCallParamOrigin*); - TBool performFdnCheck = VA_ARG(aList, TBool); - - TMockLtsyData6 - data(line, dialledParty, callParams, isIsvCall, callOrigin, performFdnCheck); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlTransfer::KLtsyDispatchCallControlTransferApiId: - { - TInt callId = VA_ARG(aList, TInt); - TInt callId2 = VA_ARG(aList, TInt); - TMockLtsyData2 data(callId, callId2); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlSendDtmfTones::KLtsyDispatchCallControlSendDtmfTonesApiId: - { - TInt callId = VA_ARG(aList, TInt); - const TDesC& tones = *(VA_ARG(aList, const TDesC*)); - TInfoName tonesBuf; - tonesBuf.Copy(tones.Left(KMaxInfoName)); - TMockLtsyData2 data(callId, tonesBuf); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlGetIdentityServiceStatus::KLtsyDispatchCallControlGetIdentityServiceStatusApiId: - { - RMobilePhone::TMobilePhoneIdService& service = *VA_ARG(aList, RMobilePhone::TMobilePhoneIdService*); - TMockLtsyData1 data(service); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSwapApiId: - { - TInt heldCallId = VA_ARG(aList, TInt); - TInt connectedCallId = VA_ARG(aList, TInt); - TMockLtsyData2 data(heldCallId, connectedCallId); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId: - { - TInt callId = VA_ARG(aList, TInt); - TMockLtsyData1 data(callId); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlLoanDataPort::KLtsyDispatchCallControlLoanDataPortApiId: - { - TInt callId = VA_ARG(aList, TInt); - RCall::TCommPort& commPort = *VA_ARG(aList, RCall::TCommPort*); - _LIT(KDataPort, "DATAPORT::0"); - commPort.iPort = KDataPort; - //sync call but data can still be checked. - TMockLtsyData2 data(callId, commPort); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlRecoverDataPort::KLtsyDispatchCallControlRecoverDataPortApiId: - { - TInt callId = VA_ARG(aList, TInt); - RCall::TCommPort& commPort = *VA_ARG(aList, RCall::TCommPort*); - //sync call but data can still be checked. - TMockLtsyData2 data(callId, commPort); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlStartDtmfTone::KLtsyDispatchCallControlStartDtmfToneApiId: - { - TInt callId = VA_ARG(aList, TInt); - TChar& tone = *(VA_ARG(aList, TChar*)); - TMockLtsyData2 data(callId, tone); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlGetActiveAlsLine::KLtsyDispatchCallControlGetActiveAlsLineApiId: - { - TMockLtsyData0 data; - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlDialData::KLtsyDispatchCallControlDialDataApiId: - { - RMobilePhone::TMobileAddress& dialledParty = *VA_ARG(aList, RMobilePhone::TMobileAddress*); - RMobileCall::TMobileDataCallParamsV1& callParams = *VA_ARG(aList, RMobileCall::TMobileDataCallParamsV1*); - TBool performFdnCheck = VA_ARG(aList, TBool); - TMockLtsyData3 - data(dialledParty, callParams, performFdnCheck); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlQueryIsEmergencyNumber::KLtsyDispatchCallControlQueryIsEmergencyNumberApiId: - { - TDesC* emergencyNumber = VA_ARG(aList, TDesC*); - TBool& isEmergencyNumber = *VA_ARG(aList, TBool*); - if (*emergencyNumber == KEmergencyNumber999 || *emergencyNumber == KEmergencyNumber112) - { - isEmergencyNumber = ETrue; - } - else - { - isEmergencyNumber = EFalse; - } - //sync call but data can still be checked. - TMockLtsyData2 data(emergencyNumber, isEmergencyNumber); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlGetAlsPpSupport::KLtsyDispatchCallControlGetAlsPpSupportApiId: - case MLtsyDispatchCallControlGetAlsBlockedStatus::KLtsyDispatchCallControlGetAlsBlockedStatusApiId: - case MLtsyDispatchCallControlGetLifeTime::KLtsyDispatchCallControlGetLifeTimeApiId: - case MLtsyDispatchCallControlGetCallForwardingIndicator::KLtsyDispatchCallControlGetCallForwardingIndicatorApiId: - case MLtsyDispatchCallControlTerminateAllCalls::KLtsyDispatchCallControlTerminateAllCallsApiId: - { - TMockLtsyData0 data; - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlSetAlsBlocked::KLtsyDispatchCallControlSetAlsBlockedApiId: - { - RMmCustomAPI::TSetAlsBlock blocked = VA_ARG_ENUM(aList, RMmCustomAPI::TSetAlsBlock); - TMockLtsyData1 data(blocked); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlTerminateErrorCall::KLtsyDispatchCallControlTerminateErrorCallApiId: - { - TInt callId = VA_ARG(aList, TInt); - TMockLtsyData1 data(callId); - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - case MLtsyDispatchCallControlUpdateLifeTimer::KLtsyDispatchCallControlUpdateLifeTimerApiId: - { - TUint32 duration =VA_ARG(aList, TUint32); - TMockLtsyData1 data(duration); - //The number of seconds that may have passed during a call is a timing measurement - //and could vary if logging is enabled or the CPU is busy. Thus data is not checked. - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data, EFalse); - } - default: - { - ASSERT(NULL); - TMockLtsyData0 data; - return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); - } - } - - } // CMockCallControlMessHandler::ExtFuncL - -/** - * Complete a request - */ -void CMockCallControlMessHandler::CompleteL(TInt aIpc, const TDesC8& aData, TInt aResult) - { - switch(aIpc) - { - case KMockLtsyDispatchCallControlNotifyCallStatusChangeIndId: - { - TMockLtsyCallData1Buf callStatusData; - callStatusData.DeserialiseL(aData); - RMobileCall::TMobileCallStatus callStatus = callStatusData.Data1(); - iCompletionCallback.CallbackCallControlNotifyCallStatusChangeInd(aResult, callStatusData.CallId(), callStatus); - } - break; - case KMockLtsyDispatchCallControlReceiveUuiIndId: - { - TMockLtsyCallData1Buf uuiData; - uuiData.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlReceiveUuiInd(aResult, uuiData.CallId(), uuiData.Data1()); - } - break; - case KMockLtsyDispatchCallControlNotifyDataCallCapsChangeIndId: - { - TMockLtsyCallData1Buf capsData; - capsData.DeserialiseL(aData); - RMobileCall::TMobileCallDataCapsV1 mobileCallDataCaps = capsData.Data1(); - iCompletionCallback.CallbackCallControlNotifyDataCallCapsChangeInd(aResult, capsData.CallId(), mobileCallDataCaps); - } - break; - case KMockLtsyDispatchCallControlNotifyIncomingCallIndId: - { - TMockLtsyCallData1Buf mockCallData1; - mockCallData1.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlNotifyIncomingCallInd(aResult, mockCallData1.Data1()); - } - break; - case KMockLtsyDispatchCallControlNotifyHscsdInfoChangeIndId: - { - TMockLtsyCallData2Buf infoData; - infoData.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlNotifyHscsdInfoChangeInd(aResult, infoData.CallId(), infoData.Data1(), infoData.Data2()); - } - break; - case KMockLtsyDispatchCallControlNotifyCallEventIndId: - { - TMockLtsyCallData1Buf callEventData; - callEventData.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlNotifyCallEventInd(aResult, callEventData.CallId(), callEventData.Data1()); - } - break; - case KMockLtsyDispatchCallControlNotifyCallInfoChangeIndId: - { - TMockLtsyData1Buf data; - data.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlNotifyCallInfoChangeInd(aResult, data.Data1()); - } - break; - case KMockLtsyDispatchCallControlRemoteAlertingToneChangeIndId: - { - TMockLtsyData1Buf data; - data.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlRemoteAlertingToneChangeInd(aResult, data.Data1()); - } - break; - case MLtsyDispatchCallControlAnswer::KLtsyDispatchCallControlAnswerApiId: - { - TMockLtsyData1Buf data; - data.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlAnswerComp(aResult, data.Data1()); - } - break; - case MLtsyDispatchCallControlHold::KLtsyDispatchCallControlHoldApiId: - { - TMockLtsyData1Buf data; - data.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlHoldComp(aResult, data.Data1()); - } - break; - case MLtsyDispatchCallControlDialEmergency::KLtsyDispatchCallControlDialEmergencyApiId: - { - TMockLtsyData1Buf data; - data.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlDialEmergencyComp(aResult, data.Data1()); - } - break; - case MLtsyDispatchCallControlStopDtmfTone::KLtsyDispatchCallControlStopDtmfToneApiId: - { - iCompletionCallback.CallbackCallControlStopDtmfToneComp(aResult); - } - break; - case MLtsyDispatchCallControlSetActiveAlsLine::KLtsyDispatchCallControlSetActiveAlsLineApiId: - { - iCompletionCallback.CallbackCallControlSetActiveAlsLineComp(aResult); - } - break; - case MLtsyDispatchCallControlSendDtmfTonesCancel::KLtsyDispatchCallControlSendDtmfTonesCancelApiId: - { - iCompletionCallback.CallbackCallControlSendDtmfTonesCancelComp(aResult); - } - break; - case MLtsyDispatchCallControlHangUp::KLtsyDispatchCallControlHangUpApiId: - { - TMockLtsyData1Buf callData; - callData.DeserialiseL(aData); - TInt callId = callData.Data1(); - iCompletionCallback.CallbackCallControlHangUpComp(aResult, callId); - } - break; - case MLtsyDispatchCallControlResume::KLtsyDispatchCallControlResumeApiId: - { - TMockLtsyData1Buf callData; - callData.DeserialiseL(aData); - TInt callId = callData.Data1(); - iCompletionCallback.CallbackCallControlResumeComp(aResult, callId); - } - break; - case MLtsyDispatchCallControlSetDynamicHscsdParams::KLtsyDispatchCallControlSetDynamicHscsdParamsApiId: - { - TMockLtsyData1Buf callData; - callData.DeserialiseL(aData); - TInt callId = callData.Data1(); - iCompletionCallback.CallbackCallControlSetDynamicHscsdParamsComp(aResult, callId); - } - break; - case MLtsyDispatchCallControlDialVoice::KLtsyDispatchCallControlDialVoiceApiId: - { - TMockLtsyCallData0 data; - data.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlDialVoiceComp(aResult, data.CallId()); - } - break; - case MLtsyDispatchCallControlTransfer::KLtsyDispatchCallControlTransferApiId: - { - iCompletionCallback.CallbackCallControlTransferComp(aResult); - } - break; - case MLtsyDispatchCallControlSendDtmfTones::KLtsyDispatchCallControlSendDtmfTonesApiId: - { - iCompletionCallback.CallbackCallControlSendDtmfTonesComp(aResult); - } - break; - case MLtsyDispatchCallControlGetIdentityServiceStatus::KLtsyDispatchCallControlGetIdentityServiceStatusApiId: - { - TMockLtsyData1Buf data; - data.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlGetIdentityServiceStatusComp(aResult, data.Data1()); - } - break; - case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSwapApiId: - { - iCompletionCallback.CallbackCallControlSwapComp(aResult); - } - break; - case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId: - { - iCompletionCallback.CallbackCallControlSwapComp(aResult); - } - break; - case MLtsyDispatchCallControlStartDtmfTone::KLtsyDispatchCallControlStartDtmfToneApiId: - { - iCompletionCallback.CallbackCallControlStartDtmfToneComp(aResult); - break; - } - case MLtsyDispatchCallControlGetActiveAlsLine::KLtsyDispatchCallControlGetActiveAlsLineApiId: - { - TMockLtsyData1Buf alsLineData; - alsLineData.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlGetActiveAlsLineComp(aResult, alsLineData.Data1()); - } - break; - case MLtsyDispatchCallControlDialData::KLtsyDispatchCallControlDialDataApiId: - { - TMockLtsyCallData0 data; - data.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlDialDataComp(aResult, data.CallId()); - } - break; - case KMockLtsyDispatchCallControlNotifyIccCallForwardingStatusChangeIndId: - { - TMockLtsyData3Buf data; - data.DeserialiseL(aData); - RMobilePhone::TMobileAddress addr = data.Data1(); - RMobilePhone::TCFUIndicatorStatusFlags flags = data.Data2(); - RMmCustomAPI::TMultipleSubscriberProfileID id = data.Data3(); - iCompletionCallback.CallbackCallControlNotifyIccCallForwardingStatusChangeInd(aResult, addr, flags, id); - } - break; - case MLtsyDispatchCallControlGetAlsPpSupport::KLtsyDispatchCallControlGetAlsPpSupportApiId: - { - TMockLtsyData1Buf alsSupported; - alsSupported.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlGetAlsPpSupportComp(aResult, alsSupported.Data1()); - } - break; - case MLtsyDispatchCallControlGetAlsBlockedStatus::KLtsyDispatchCallControlGetAlsBlockedStatusApiId: - { - TMockLtsyData1Buf alsStatus; - alsStatus.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlGetAlsBlockedStatusComp(aResult, alsStatus.Data1()); - } - break; - case MLtsyDispatchCallControlSetAlsBlocked::KLtsyDispatchCallControlSetAlsBlockedApiId: - { - iCompletionCallback.CallbackCallControlSetAlsBlockedComp(aResult); - } - break; - case MLtsyDispatchCallControlTerminateErrorCall::KLtsyDispatchCallControlTerminateErrorCallApiId: - { - iCompletionCallback.CallbackCallControlTerminateErrorCallComp(aResult); - } - break; - case MLtsyDispatchCallControlTerminateAllCalls::KLtsyDispatchCallControlTerminateAllCallsApiId: - { - iCompletionCallback.CallbackCallControlTerminateAllCallsComp(aResult); - } - break; - case MLtsyDispatchCallControlGetLifeTime::KLtsyDispatchCallControlGetLifeTimeApiId: - { - TMockLtsyData1Buf lifeTileData; - lifeTileData.DeserialiseL(aData); - switch(lifeTileData.Data1().iCaps) - { - case RMmCustomAPI::TLifeTimeData::ELifeTimeDataCapsLifeTime: - iCompletionCallback.CallbackCallControlGetLifeTimeComp(aResult, lifeTileData.Data1().iHours, lifeTileData.Data1().iMinutes); - break; - case RMmCustomAPI::TLifeTimeData::ELifeTimeDataCapsManufacturerDate: - iCompletionCallback.CallbackCallControlGetLifeTimeComp(aResult, lifeTileData.Data1().iManufacturingDate); - break; - case (RMmCustomAPI::TLifeTimeData::ELifeTimeDataCapsLifeTime | RMmCustomAPI::TLifeTimeData::ELifeTimeDataCapsManufacturerDate): - iCompletionCallback.CallbackCallControlGetLifeTimeComp(aResult, lifeTileData.Data1().iManufacturingDate, lifeTileData.Data1().iHours, lifeTileData.Data1().iMinutes); - break; - case 0: - default: - iCompletionCallback.CallbackCallControlGetLifeTimeComp(aResult); - break; - }; - } - break; - case MLtsyDispatchCallControlGetCallForwardingIndicator::KLtsyDispatchCallControlGetCallForwardingIndicatorApiId: - { - TMockLtsyData1Buf indicatorData; - indicatorData.DeserialiseL(aData); - iCompletionCallback.CallbackCallControlGetCallForwardingIndicatorComp(aResult, - indicatorData.Data1().iCFNumber.iTypeOfNumber, - indicatorData.Data1().iCFNumber.iNumberPlan, - indicatorData.Data1().iCFNumber.iTelNumber, - indicatorData.Data1().iIndicator, - indicatorData.Data1().iMultipleSubscriberProfileID); - } - break; - case MLtsyDispatchCallControlUpdateLifeTimer::KLtsyDispatchCallControlUpdateLifeTimerApiId: - { - iCompletionCallback.CallbackCallControlUpdateLifeTimerComp(aResult); - } - break; - default: - { - // Shouldn't get here. will panic MessageManager()->Complete if allowed to continue - ASSERT(NULL); - } - break; - } - } // CMockCallControlMessHandler::CompleteL +// Copyright (c) 2008-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: +// + +#include +#include +#include +#include + +#include "mmockmesshandlerbase.h" +#include "cmockcallcontrolmesshandler.h" +#include "cmockltsyengine.h" +#include +#include + +#include "mockltsyindicatorids.h" + +// Example emergency numbers, used here for testing purposes only. +_LIT(KEmergencyNumber999, "999"); +_LIT(KEmergencyNumber112, "112"); + +/** + * Factory function + */ +CMockCallControlMessHandler* CMockCallControlMessHandler::NewL(CMockLtsyEngine& aEngine, CCtsyDispatcherCallback& aCallback ) + { + CMockCallControlMessHandler* self = new (ELeave)CMockCallControlMessHandler(aEngine, aCallback); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +/** + * Constructor + */ +CMockCallControlMessHandler::CMockCallControlMessHandler(CMockLtsyEngine& aEngine, CCtsyDispatcherCallback& aCallback) + : iMockLtsyEngine(aEngine), iCompletionCallback(aCallback) + { + } + +/** + * 2nd phase contructor + */ +void CMockCallControlMessHandler::ConstructL() + { + } + +/** + * Destructor + */ +CMockCallControlMessHandler::~CMockCallControlMessHandler() + { + + } + +TBool CMockCallControlMessHandler::IsHandlerForApi(TInt aApiId) + { + switch (aApiId) + { + case KMockLtsyDispatchCallControlNotifyCallStatusChangeIndId: + case KMockLtsyDispatchCallControlReceiveUuiIndId: + case KMockLtsyDispatchCallControlNotifyDataCallCapsChangeIndId: + case KMockLtsyDispatchCallControlNotifyIncomingCallIndId: + case KMockLtsyDispatchCallControlNotifyHscsdInfoChangeIndId: + case KMockLtsyDispatchCallControlNotifyCallEventIndId: + case KMockLtsyDispatchCallControlNotifyCallInfoChangeIndId: + case KMockLtsyDispatchCallControlRemoteAlertingToneChangeIndId: + case MLtsyDispatchCallControlAnswer::KLtsyDispatchCallControlAnswerApiId: + case MLtsyDispatchCallControlHold::KLtsyDispatchCallControlHoldApiId: + case MLtsyDispatchCallControlDialEmergency::KLtsyDispatchCallControlDialEmergencyApiId: + case MLtsyDispatchCallControlStopDtmfTone::KLtsyDispatchCallControlStopDtmfToneApiId: + case MLtsyDispatchCallControlSetActiveAlsLine::KLtsyDispatchCallControlSetActiveAlsLineApiId: + case MLtsyDispatchCallControlSendDtmfTonesCancel::KLtsyDispatchCallControlSendDtmfTonesCancelApiId: + case MLtsyDispatchCallControlHangUp::KLtsyDispatchCallControlHangUpApiId: + case MLtsyDispatchCallControlResume::KLtsyDispatchCallControlResumeApiId: + case MLtsyDispatchCallControlSetDynamicHscsdParams::KLtsyDispatchCallControlSetDynamicHscsdParamsApiId: + case MLtsyDispatchCallControlDialVoice::KLtsyDispatchCallControlDialVoiceApiId: + case MLtsyDispatchCallControlTransfer::KLtsyDispatchCallControlTransferApiId: + case MLtsyDispatchCallControlSendDtmfTones::KLtsyDispatchCallControlSendDtmfTonesApiId: + case MLtsyDispatchCallControlGetIdentityServiceStatus::KLtsyDispatchCallControlGetIdentityServiceStatusApiId: + case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSwapApiId: + case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId: + case MLtsyDispatchCallControlLoanDataPort::KLtsyDispatchCallControlLoanDataPortApiId: + case MLtsyDispatchCallControlRecoverDataPort::KLtsyDispatchCallControlRecoverDataPortApiId: + case MLtsyDispatchCallControlStartDtmfTone::KLtsyDispatchCallControlStartDtmfToneApiId: + case MLtsyDispatchCallControlGetActiveAlsLine::KLtsyDispatchCallControlGetActiveAlsLineApiId: + case MLtsyDispatchCallControlDialData::KLtsyDispatchCallControlDialDataApiId: + case MLtsyDispatchCallControlQueryIsEmergencyNumber::KLtsyDispatchCallControlQueryIsEmergencyNumberApiId: + case KMockLtsyDispatchCallControlNotifyIccCallForwardingStatusChangeIndId: + case MLtsyDispatchCallControlGetAlsPpSupport::KLtsyDispatchCallControlGetAlsPpSupportApiId: + case MLtsyDispatchCallControlGetAlsBlockedStatus::KLtsyDispatchCallControlGetAlsBlockedStatusApiId: + case MLtsyDispatchCallControlSetAlsBlocked::KLtsyDispatchCallControlSetAlsBlockedApiId: + case MLtsyDispatchCallControlGetLifeTime::KLtsyDispatchCallControlGetLifeTimeApiId: + case MLtsyDispatchCallControlTerminateErrorCall::KLtsyDispatchCallControlTerminateErrorCallApiId: + case MLtsyDispatchCallControlTerminateAllCalls::KLtsyDispatchCallControlTerminateAllCallsApiId: + case MLtsyDispatchCallControlGetCallForwardingIndicator::KLtsyDispatchCallControlGetCallForwardingIndicatorApiId: + case MLtsyDispatchCallControlUpdateLifeTimer::KLtsyDispatchCallControlUpdateLifeTimerApiId: + return iConfig.IsSupported(aApiId); + default: + return EFalse; + } + } // CMockCallControlMessHandler::IsHandlerForApi + +/** + * Execute a request. + */ +TInt CMockCallControlMessHandler::ExtFuncL(TInt aInterfaceId, VA_LIST& aList) + { + switch (aInterfaceId) + { + case MLtsyDispatchCallControlAnswer::KLtsyDispatchCallControlAnswerApiId: + { + TInt callId = VA_ARG(aList, TInt); + TBool isIsvCall = VA_ARG(aList, TBool); + TMockLtsyData2 data(callId, isIsvCall); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlHold::KLtsyDispatchCallControlHoldApiId: + { + TInt callId = VA_ARG(aList, TInt); + TMockLtsyData1 data(callId); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlDialEmergency::KLtsyDispatchCallControlDialEmergencyApiId: + { + RMobileENStore::TEmergencyNumber& number = *VA_ARG(aList, RMobileENStore::TEmergencyNumber*); + TMockLtsyData1 data(number); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlStopDtmfTone::KLtsyDispatchCallControlStopDtmfToneApiId: + { + TInt callId = VA_ARG(aList, TInt); + TMockLtsyData1 data(callId); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlSetActiveAlsLine::KLtsyDispatchCallControlSetActiveAlsLineApiId: + { + RMobilePhone::TMobilePhoneALSLine& alsLine = *VA_ARG(aList, RMobilePhone::TMobilePhoneALSLine*); + TMockLtsyData1 data(alsLine); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlSendDtmfTonesCancel::KLtsyDispatchCallControlSendDtmfTonesCancelApiId: + { + TInt callId = VA_ARG(aList, TInt); + TMockLtsyData1 data(callId); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlHangUp::KLtsyDispatchCallControlHangUpApiId: + { + TInt callId = VA_ARG(aList, TInt); + TInt hangUpCause = VA_ARG(aList, TInt); + TMockLtsyData2 data(callId, hangUpCause); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlResume::KLtsyDispatchCallControlResumeApiId: + { + TInt callId = VA_ARG(aList, TInt); + TMockLtsyData1 data(callId); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlSetDynamicHscsdParams::KLtsyDispatchCallControlSetDynamicHscsdParamsApiId: + { + TInt callId = VA_ARG(aList, TInt); + RMobileCall::TMobileHscsdCallParamsV8& hscsdParams = *VA_ARG(aList, RMobileCall::TMobileHscsdCallParamsV8*); + TMockLtsyData2 data(callId, hscsdParams); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlDialVoice::KLtsyDispatchCallControlDialVoiceApiId: + { + RMobilePhone::TMobilePhoneALSLine& line = *VA_ARG(aList, RMobilePhone::TMobilePhoneALSLine*); + RMobilePhone::TMobileAddress& dialledParty = *VA_ARG(aList, RMobilePhone::TMobileAddress*); + RMobileCall::TMobileCallParamsV1& callParams = *VA_ARG(aList, RMobileCall::TMobileCallParamsV1*); + TBool isIsvCall = VA_ARG(aList, TBool); + RMobileCall::TCallParamOrigin& callOrigin = *VA_ARG(aList, RMobileCall::TCallParamOrigin*); + TBool performFdnCheck = VA_ARG(aList, TBool); + + TMockLtsyData6 + data(line, dialledParty, callParams, isIsvCall, callOrigin, performFdnCheck); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlTransfer::KLtsyDispatchCallControlTransferApiId: + { + TInt callId = VA_ARG(aList, TInt); + TInt callId2 = VA_ARG(aList, TInt); + TMockLtsyData2 data(callId, callId2); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlSendDtmfTones::KLtsyDispatchCallControlSendDtmfTonesApiId: + { + TInt callId = VA_ARG(aList, TInt); + const TDesC& tones = *(VA_ARG(aList, const TDesC*)); + TInfoName tonesBuf; + tonesBuf.Copy(tones.Left(KMaxInfoName)); + TMockLtsyData2 data(callId, tonesBuf); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlGetIdentityServiceStatus::KLtsyDispatchCallControlGetIdentityServiceStatusApiId: + { + RMobilePhone::TMobilePhoneIdService& service = *VA_ARG(aList, RMobilePhone::TMobilePhoneIdService*); + TMockLtsyData1 data(service); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSwapApiId: + { + TInt heldCallId = VA_ARG(aList, TInt); + TInt connectedCallId = VA_ARG(aList, TInt); + TMockLtsyData2 data(heldCallId, connectedCallId); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId: + { + TInt callId = VA_ARG(aList, TInt); + TMockLtsyData1 data(callId); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlLoanDataPort::KLtsyDispatchCallControlLoanDataPortApiId: + { + TInt callId = VA_ARG(aList, TInt); + RCall::TCommPort& commPort = *VA_ARG(aList, RCall::TCommPort*); + _LIT(KDataPort, "DATAPORT::0"); + commPort.iPort = KDataPort; + //sync call but data can still be checked. + TMockLtsyData2 data(callId, commPort); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlRecoverDataPort::KLtsyDispatchCallControlRecoverDataPortApiId: + { + TInt callId = VA_ARG(aList, TInt); + RCall::TCommPort& commPort = *VA_ARG(aList, RCall::TCommPort*); + //sync call but data can still be checked. + TMockLtsyData2 data(callId, commPort); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlStartDtmfTone::KLtsyDispatchCallControlStartDtmfToneApiId: + { + TInt callId = VA_ARG(aList, TInt); + TChar& tone = *(VA_ARG(aList, TChar*)); + TMockLtsyData2 data(callId, tone); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlGetActiveAlsLine::KLtsyDispatchCallControlGetActiveAlsLineApiId: + { + TMockLtsyData0 data; + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlDialData::KLtsyDispatchCallControlDialDataApiId: + { + RMobilePhone::TMobileAddress& dialledParty = *VA_ARG(aList, RMobilePhone::TMobileAddress*); + RMobileCall::TMobileDataCallParamsV1& callParams = *VA_ARG(aList, RMobileCall::TMobileDataCallParamsV1*); + TBool performFdnCheck = VA_ARG(aList, TBool); + TMockLtsyData3 + data(dialledParty, callParams, performFdnCheck); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlQueryIsEmergencyNumber::KLtsyDispatchCallControlQueryIsEmergencyNumberApiId: + { + TDesC* emergencyNumber = VA_ARG(aList, TDesC*); + TBool& isEmergencyNumber = *VA_ARG(aList, TBool*); + if (*emergencyNumber == KEmergencyNumber999 || *emergencyNumber == KEmergencyNumber112) + { + isEmergencyNumber = ETrue; + } + else + { + isEmergencyNumber = EFalse; + } + //sync call but data can still be checked. + TMockLtsyData2 data(emergencyNumber, isEmergencyNumber); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlGetAlsPpSupport::KLtsyDispatchCallControlGetAlsPpSupportApiId: + case MLtsyDispatchCallControlGetAlsBlockedStatus::KLtsyDispatchCallControlGetAlsBlockedStatusApiId: + case MLtsyDispatchCallControlGetLifeTime::KLtsyDispatchCallControlGetLifeTimeApiId: + case MLtsyDispatchCallControlGetCallForwardingIndicator::KLtsyDispatchCallControlGetCallForwardingIndicatorApiId: + case MLtsyDispatchCallControlTerminateAllCalls::KLtsyDispatchCallControlTerminateAllCallsApiId: + { + TMockLtsyData0 data; + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlSetAlsBlocked::KLtsyDispatchCallControlSetAlsBlockedApiId: + { + RMmCustomAPI::TSetAlsBlock blocked = VA_ARG_ENUM(aList, RMmCustomAPI::TSetAlsBlock); + TMockLtsyData1 data(blocked); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlTerminateErrorCall::KLtsyDispatchCallControlTerminateErrorCallApiId: + { + TInt callId = VA_ARG(aList, TInt); + TMockLtsyData1 data(callId); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + case MLtsyDispatchCallControlUpdateLifeTimer::KLtsyDispatchCallControlUpdateLifeTimerApiId: + { + TUint32 duration =VA_ARG(aList, TUint32); + TMockLtsyData1 data(duration); + //The number of seconds that may have passed during a call is a timing measurement + //and could vary if logging is enabled or the CPU is busy. Thus data is not checked. + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data, EFalse); + } + default: + { + ASSERT(NULL); + TMockLtsyData0 data; + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } + } + + } // CMockCallControlMessHandler::ExtFuncL + +/** + * Complete a request + */ +void CMockCallControlMessHandler::CompleteL(TInt aIpc, const TDesC8& aData, TInt aResult) + { + switch(aIpc) + { + case KMockLtsyDispatchCallControlNotifyCallStatusChangeIndId: + { + TMockLtsyCallData1Buf callStatusData; + callStatusData.DeserialiseL(aData); + RMobileCall::TMobileCallStatus callStatus = callStatusData.Data1(); + iCompletionCallback.CallbackCallControlNotifyCallStatusChangeInd(aResult, callStatusData.CallId(), callStatus); + } + break; + case KMockLtsyDispatchCallControlReceiveUuiIndId: + { + TMockLtsyCallData1Buf uuiData; + uuiData.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlReceiveUuiInd(aResult, uuiData.CallId(), uuiData.Data1()); + } + break; + case KMockLtsyDispatchCallControlNotifyDataCallCapsChangeIndId: + { + TMockLtsyCallData1Buf capsData; + capsData.DeserialiseL(aData); + RMobileCall::TMobileCallDataCapsV1 mobileCallDataCaps = capsData.Data1(); + iCompletionCallback.CallbackCallControlNotifyDataCallCapsChangeInd(aResult, capsData.CallId(), mobileCallDataCaps); + } + break; + case KMockLtsyDispatchCallControlNotifyIncomingCallIndId: + { + TMockLtsyCallData1Buf mockCallData1; + mockCallData1.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlNotifyIncomingCallInd(aResult, mockCallData1.Data1()); + } + break; + case KMockLtsyDispatchCallControlNotifyHscsdInfoChangeIndId: + { + TMockLtsyCallData2Buf infoData; + infoData.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlNotifyHscsdInfoChangeInd(aResult, infoData.CallId(), infoData.Data1(), infoData.Data2()); + } + break; + case KMockLtsyDispatchCallControlNotifyCallEventIndId: + { + TMockLtsyCallData1Buf callEventData; + callEventData.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlNotifyCallEventInd(aResult, callEventData.CallId(), callEventData.Data1()); + } + break; + case KMockLtsyDispatchCallControlNotifyCallInfoChangeIndId: + { + TMockLtsyData1Buf data; + data.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlNotifyCallInfoChangeInd(aResult, data.Data1()); + } + break; + case KMockLtsyDispatchCallControlRemoteAlertingToneChangeIndId: + { + TMockLtsyData1Buf data; + data.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlRemoteAlertingToneChangeInd(aResult, data.Data1()); + } + break; + case MLtsyDispatchCallControlAnswer::KLtsyDispatchCallControlAnswerApiId: + { + TMockLtsyData1Buf data; + data.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlAnswerComp(aResult, data.Data1()); + } + break; + case MLtsyDispatchCallControlHold::KLtsyDispatchCallControlHoldApiId: + { + TMockLtsyData1Buf data; + data.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlHoldComp(aResult, data.Data1()); + } + break; + case MLtsyDispatchCallControlDialEmergency::KLtsyDispatchCallControlDialEmergencyApiId: + { + TMockLtsyData1Buf data; + data.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlDialEmergencyComp(aResult, data.Data1()); + } + break; + case MLtsyDispatchCallControlStopDtmfTone::KLtsyDispatchCallControlStopDtmfToneApiId: + { + iCompletionCallback.CallbackCallControlStopDtmfToneComp(aResult); + } + break; + case MLtsyDispatchCallControlSetActiveAlsLine::KLtsyDispatchCallControlSetActiveAlsLineApiId: + { + iCompletionCallback.CallbackCallControlSetActiveAlsLineComp(aResult); + } + break; + case MLtsyDispatchCallControlSendDtmfTonesCancel::KLtsyDispatchCallControlSendDtmfTonesCancelApiId: + { + iCompletionCallback.CallbackCallControlSendDtmfTonesCancelComp(aResult); + } + break; + case MLtsyDispatchCallControlHangUp::KLtsyDispatchCallControlHangUpApiId: + { + TMockLtsyData1Buf callData; + callData.DeserialiseL(aData); + TInt callId = callData.Data1(); + iCompletionCallback.CallbackCallControlHangUpComp(aResult, callId); + } + break; + case MLtsyDispatchCallControlResume::KLtsyDispatchCallControlResumeApiId: + { + TMockLtsyData1Buf callData; + callData.DeserialiseL(aData); + TInt callId = callData.Data1(); + iCompletionCallback.CallbackCallControlResumeComp(aResult, callId); + } + break; + case MLtsyDispatchCallControlSetDynamicHscsdParams::KLtsyDispatchCallControlSetDynamicHscsdParamsApiId: + { + TMockLtsyData1Buf callData; + callData.DeserialiseL(aData); + TInt callId = callData.Data1(); + iCompletionCallback.CallbackCallControlSetDynamicHscsdParamsComp(aResult, callId); + } + break; + case MLtsyDispatchCallControlDialVoice::KLtsyDispatchCallControlDialVoiceApiId: + { + TMockLtsyCallData0 data; + data.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlDialVoiceComp(aResult, data.CallId()); + } + break; + case MLtsyDispatchCallControlTransfer::KLtsyDispatchCallControlTransferApiId: + { + iCompletionCallback.CallbackCallControlTransferComp(aResult); + } + break; + case MLtsyDispatchCallControlSendDtmfTones::KLtsyDispatchCallControlSendDtmfTonesApiId: + { + iCompletionCallback.CallbackCallControlSendDtmfTonesComp(aResult); + } + break; + case MLtsyDispatchCallControlGetIdentityServiceStatus::KLtsyDispatchCallControlGetIdentityServiceStatusApiId: + { + TMockLtsyData1Buf data; + data.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlGetIdentityServiceStatusComp(aResult, data.Data1()); + } + break; + case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSwapApiId: + { + iCompletionCallback.CallbackCallControlSwapComp(aResult); + } + break; + case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId: + { + iCompletionCallback.CallbackCallControlSwapComp(aResult); + } + break; + case MLtsyDispatchCallControlStartDtmfTone::KLtsyDispatchCallControlStartDtmfToneApiId: + { + iCompletionCallback.CallbackCallControlStartDtmfToneComp(aResult); + break; + } + case MLtsyDispatchCallControlGetActiveAlsLine::KLtsyDispatchCallControlGetActiveAlsLineApiId: + { + TMockLtsyData1Buf alsLineData; + alsLineData.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlGetActiveAlsLineComp(aResult, alsLineData.Data1()); + } + break; + case MLtsyDispatchCallControlDialData::KLtsyDispatchCallControlDialDataApiId: + { + TMockLtsyCallData0 data; + data.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlDialDataComp(aResult, data.CallId()); + } + break; + case KMockLtsyDispatchCallControlNotifyIccCallForwardingStatusChangeIndId: + { + TMockLtsyData3Buf data; + data.DeserialiseL(aData); + RMobilePhone::TMobileAddress addr = data.Data1(); + RMobilePhone::TCFUIndicatorStatusFlags flags = data.Data2(); + RMmCustomAPI::TMultipleSubscriberProfileID id = data.Data3(); + iCompletionCallback.CallbackCallControlNotifyIccCallForwardingStatusChangeInd(aResult, addr, flags, id); + } + break; + case MLtsyDispatchCallControlGetAlsPpSupport::KLtsyDispatchCallControlGetAlsPpSupportApiId: + { + TMockLtsyData1Buf alsSupported; + alsSupported.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlGetAlsPpSupportComp(aResult, alsSupported.Data1()); + } + break; + case MLtsyDispatchCallControlGetAlsBlockedStatus::KLtsyDispatchCallControlGetAlsBlockedStatusApiId: + { + TMockLtsyData1Buf alsStatus; + alsStatus.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlGetAlsBlockedStatusComp(aResult, alsStatus.Data1()); + } + break; + case MLtsyDispatchCallControlSetAlsBlocked::KLtsyDispatchCallControlSetAlsBlockedApiId: + { + iCompletionCallback.CallbackCallControlSetAlsBlockedComp(aResult); + } + break; + case MLtsyDispatchCallControlTerminateErrorCall::KLtsyDispatchCallControlTerminateErrorCallApiId: + { + iCompletionCallback.CallbackCallControlTerminateErrorCallComp(aResult); + } + break; + case MLtsyDispatchCallControlTerminateAllCalls::KLtsyDispatchCallControlTerminateAllCallsApiId: + { + iCompletionCallback.CallbackCallControlTerminateAllCallsComp(aResult); + } + break; + case MLtsyDispatchCallControlGetLifeTime::KLtsyDispatchCallControlGetLifeTimeApiId: + { + TMockLtsyData1Buf lifeTileData; + lifeTileData.DeserialiseL(aData); + switch(lifeTileData.Data1().iCaps) + { + case RMmCustomAPI::TLifeTimeData::ELifeTimeDataCapsLifeTime: + iCompletionCallback.CallbackCallControlGetLifeTimeComp(aResult, lifeTileData.Data1().iHours, lifeTileData.Data1().iMinutes); + break; + case RMmCustomAPI::TLifeTimeData::ELifeTimeDataCapsManufacturerDate: + iCompletionCallback.CallbackCallControlGetLifeTimeComp(aResult, lifeTileData.Data1().iManufacturingDate); + break; + case (RMmCustomAPI::TLifeTimeData::ELifeTimeDataCapsLifeTime | RMmCustomAPI::TLifeTimeData::ELifeTimeDataCapsManufacturerDate): + iCompletionCallback.CallbackCallControlGetLifeTimeComp(aResult, lifeTileData.Data1().iManufacturingDate, lifeTileData.Data1().iHours, lifeTileData.Data1().iMinutes); + break; + case 0: + default: + iCompletionCallback.CallbackCallControlGetLifeTimeComp(aResult); + break; + }; + } + break; + case MLtsyDispatchCallControlGetCallForwardingIndicator::KLtsyDispatchCallControlGetCallForwardingIndicatorApiId: + { + TMockLtsyData1Buf indicatorData; + indicatorData.DeserialiseL(aData); + iCompletionCallback.CallbackCallControlGetCallForwardingIndicatorComp(aResult, + indicatorData.Data1().iCFNumber.iTypeOfNumber, + indicatorData.Data1().iCFNumber.iNumberPlan, + indicatorData.Data1().iCFNumber.iTelNumber, + indicatorData.Data1().iIndicator, + indicatorData.Data1().iMultipleSubscriberProfileID); + } + break; + case MLtsyDispatchCallControlUpdateLifeTimer::KLtsyDispatchCallControlUpdateLifeTimerApiId: + { + iCompletionCallback.CallbackCallControlUpdateLifeTimerComp(aResult); + } + break; + default: + { + // Shouldn't get here. will panic MessageManager()->Complete if allowed to continue + ASSERT(NULL); + } + break; + } + } // CMockCallControlMessHandler::CompleteL