telephonyserver/etelmultimode/DTsy/mmtsyphone.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 20 244d7c5f118e
--- a/telephonyserver/etelmultimode/DTsy/mmtsyphone.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserver/etelmultimode/DTsy/mmtsyphone.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,8453 +1,8453 @@
-// Copyright (c) 1997-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:
-//
-
-/**
- @file
-*/
-
-
-#include "mmtsy.h"
-#include "testdef.h"
-#include "ETELMM.H"
-#include <et_clsvr.h>
-#include "Dmmlog.h"
-#include <etelmmerr.h>
-
-//
-//	CPhoneDMmTsy
-//
-CPhoneDMmTsy* CPhoneDMmTsy::NewL(CPhoneFactoryDummyBase* aFac)
-	{
-	CPhoneDMmTsy* phone=new(ELeave) CPhoneDMmTsy(aFac);
-	CleanupStack::PushL(phone);
-	phone->ConstructL();
-	CleanupStack::Pop();
-	return phone;
-	}
-
-CPhoneDMmTsy::CPhoneDMmTsy(CPhoneFactoryDummyBase* aFac)
-: CPhoneDummyBase(aFac),
-  iActiveRequestObjects(_FOFF(CPhoneDMmTsy::CActiveListNode,iNext))
-	{}
-
-void CPhoneDMmTsy::ConstructL()
-	{
-	iPhoneTestCount=1;
-	CPhoneDummyBase::ConstructL();
-	iGetDetectedNetworks = new CArrayPtrFlat<CListReadAllAttempt>(1);
-	iGetCFStatus = new CArrayPtrFlat<CListReadAllAttempt>(1);
-	iGetCB = new CArrayPtrFlat<CListReadAllAttempt>(1);
-	iGetCWStatus = new CArrayPtrFlat<CListReadAllAttempt>(1);
-	iGetCcbsRequests = new CArrayPtrFlat<CListReadAllAttempt>(1);
-	iGetPreferredNetworks = new CArrayPtrFlat<CListReadAllAttempt>(1);
-	iGetAuthorizationData = new CArrayPtrFlat<CListReadAllAttempt>(1);
-	iGetWlanSIDsData = new CArrayPtrFlat<CListReadAllAttempt>(1);
-	iAuthReadAll = new CArrayPtrFlat<CListReadAllAttempt>(1);
-
-	iAuthInfo=RMobilePhone::CImsAuthorizationInfoV5::NewL();
-	LOGTEXT(_L8("CPhoneDMmTsy created"));
-	}
-
-CPhoneDMmTsy::~CPhoneDMmTsy()
-	{
-	if (iGetDetectedNetworks)
-		iGetDetectedNetworks->ResetAndDestroy();
-	if (iGetCFStatus)
-		iGetCFStatus->ResetAndDestroy();
-	if (iGetCB)
-		iGetCB->ResetAndDestroy();
-	if (iGetCWStatus)
-		iGetCWStatus->ResetAndDestroy();
-	if (iGetCcbsRequests)
-		iGetCcbsRequests->ResetAndDestroy();
-	if(iGetPreferredNetworks)
-		iGetPreferredNetworks->ResetAndDestroy();
-	
-	if(iGetAuthorizationData)
-		iGetAuthorizationData->ResetAndDestroy();
-	
-	if(iGetWlanSIDsData)
-		iGetWlanSIDsData->ResetAndDestroy();
-	
-  	if(iAuthReadAll)
-		iAuthReadAll->ResetAndDestroy();
-  
-	delete iGetDetectedNetworks;
-	delete iGetCFStatus;
-	delete iGetCB;
-	delete iGetCWStatus;
-	delete iGetCcbsRequests;
-	delete iGetPreferredNetworks;
-	delete iGetAuthorizationData;
-	delete iAuthInfo;
-	delete iGetWlanSIDsData;
-	delete iAuthReadAll;
-	
-	LOGTEXT(_L8("CPhoneDMmTsy destroyed"));
-	}
-
-void CPhoneDMmTsy::Init()
-	{
-	// server calls this function once it has created the sub-session
-	// it gives the TSY chance to do any initialisation it may need to do for
-	// this sub-session
-	}
-
-CTelObject* CPhoneDMmTsy::OpenNewObjectByNameL(const TDesC& aName)
-	{
-	// Server calls this function when a client is opening an object from the phone
-	// for the first time.
-	// Multiple clients opening handles to the same sub-session object will be dealt with
-	// by the server - i.e. by reference counting
-
-	if((aName.Compare(DMMTSY_LINE_VOICE_NAME)==KErrNone) ||
-	   (aName.Compare(DMMTSY_LINE_VOICE2_NAME)==KErrNone) ||
-	   (aName.Compare(DMMTSY_LINE_DATA_NAME)==KErrNone) ||
-	   (aName.Compare(DMMTSY_LINE_FAX_NAME)==KErrNone))
-
-	   return REINTERPRET_CAST(CTelObject*,CLineDMmTsy::NewL(this,FacPtr()));
-
-	if (aName.Compare(KETelSmsMessaging)==KErrNone)
-	   return REINTERPRET_CAST(CTelObject*,CSmsMessagingDMmTsy::NewL(this,FacPtr(),aName));
-
-	if (aName.Compare(KETelBroadcastMessaging)==KErrNone)
-	   return REINTERPRET_CAST(CTelObject*,CBroadcastMessagingDMmTsy::NewL(this,FacPtr(),aName));
-
-	if (aName.Compare(KETelUssdMessaging)==KErrNone)
-	   return REINTERPRET_CAST(CTelObject*,CUssdMessagingDMmTsy::NewL(this,FacPtr(),aName));
-
-	if (aName.Compare(KETelNamStore)==KErrNone)
-		return REINTERPRET_CAST(CTelObject*, CNamStoreDMmTsy::NewL(this,FacPtr(),aName));
-
-	if (aName.Compare(KETelOwnNumberStore)==KErrNone)
-		return REINTERPRET_CAST(CTelObject*, CONStoreDMmTsy::NewL(this,FacPtr(),aName));
-
-	if (aName.Compare(KETelEmergencyNumberStore)==KErrNone)
-		return REINTERPRET_CAST(CTelObject*, CENStoreDMmTsy::NewL(this,FacPtr(),aName));
-
-	if (aName.Compare(KETelIccVoiceMailBox)==KErrNone)
-		return REINTERPRET_CAST(CTelObject*, CMobilePhoneBookStoreDMmTsy::NewL(this,FacPtr(),aName));
-
-	if (aName.Compare(KETelConferenceCall) == 0)
-		return REINTERPRET_CAST(CTelObject*, CMobileConferenceCallDMmTsy::NewL(this,FacPtr(),aName));
-    
-    if (aName.Compare(KETelLocationServices) == 0)
-		return REINTERPRET_CAST(CTelObject*, CMobileLocationServicesDMmTsy::NewL(this,FacPtr(),aName));
-	
-	if (aName.Left(SCEAP_SSN_LENGTH).Compare(KETelSmartCardEapSession) == 0)
-		{
-		TInt len;
-
-		// Extracting AID
-		RMobilePhone::TAID tempAID;
-		len = CharToSeptNumL(aName[SCEAP_SSN_LENGTH]) * 2;
-		TPtrC ptrAid = aName.Mid(SCEAP_SSN_LENGTH + 1, len);
-		ConvertTextToBinary(ptrAid, tempAID);
-
-		// Extracting EapType
-		RMobileSmartCardEap::TEapType eapType;
-		TInt posTypeLength = SCEAP_SSN_LENGTH + len + 1;
-		len = CharToSeptNumL(aName[posTypeLength]);
-		TPtrC ptrEapT = aName.Mid(posTypeLength + 1, len);
-		eapType.Copy(ptrEapT);
-
-		CSmartCardEapDMmTsy* eapSubSessObj = NULL;
-		TRAPD(err, eapSubSessObj = CSmartCardEapDMmTsy::NewL(this, tempAID, eapType, FacPtr()));
-
-		if (err != KErrNone || eapSubSessObj == NULL)
-			{
-			User::Leave((err == KErrNone ? KErrGeneral : err));
-			}
-
-		return eapSubSessObj;
-		} // End of opening Smart Card EAP sub-session
-
-	TInt tLength;
-	TPtrC remain(aName);
-
-	if ((tLength=remain.Find(PHBOOK_DELIMITER))!=KErrNotFound)
-		{
-		if(aName.Left(tLength) == KETelIccVoiceMailBox
-			&&	aName.Right(aName.Length()-tLength-2) == KEtelUSimPhoneBookType) 
-			return REINTERPRET_CAST(CTelObject*, 
-					CMobilePhoneBookStoreDMmTsy::NewL(this,FacPtr(),aName.Left(tLength),
-												  aName.Right(aName.Length()-tLength-2)));
-		}
-
-	return NULL;
-	}
-
-/**
-Returns the numerical value that corresponds to the numeric character
-of its parameter (in base 17).
-
-@param aDigit A char between '0' to '9' or between 'A' to 'G'
-*/
-TInt CPhoneDMmTsy::CharToSeptNumL(const TChar& aChar) const
-	{
-	TInt ret = 0;
-
-	if((aChar >= '0') && (aChar <= '9'))
-		{
-		ret = TUint(aChar) - '0';
-		}
-	else if((aChar >= 'A') && (aChar <= 'G'))
-		{
-		ret = TUint(aChar) - 'A' + 10;
-		}
-	else
-		{
-		User::Leave(KErrArgument);
-		}
-
-	return ret;
-	}
-
-/**
-Converts a buffer containing string of the hexadecimal characters,
-representing the binary data, into this binary data!
-
-@param aSrc The buffer containing text representation.
-@param aDst Binary data will be written to this buffer.
-*/
-void CPhoneDMmTsy::ConvertTextToBinary(const TDesC& aSrc, TDes8& aDst)
-	{
-	aDst.SetLength(aSrc.Length() / 2);
-
-	for (TInt i = 0; i < aSrc.Length(); i += 2)
-		{
-		TInt val = 0;
-		if ((aSrc[i] >= '0') && (aSrc[i] <= '9'))
-			{
-			val = ((aSrc[i] - '0') << 4);
-			}
-		else if ((aSrc[i] >= 'A') && (aSrc[i] <= 'F'))
-			{
-			val = ((aSrc[i] - 'A' + 10) << 4);
-			}
-
-		if ((aSrc[i+1] >= '0') && (aSrc[i+1] <= '9'))
-			{
-			val += (aSrc[i+1] - '0');
-			}
-		else if ((aSrc[i+1] >= 'A') && (aSrc[i+1] <= 'F'))
-			{
-			val += (aSrc[i+1] - 'A' + 10);
-			}
-
-		aDst[i/2] = (TUint8) val;
-		}
-	}
-
-CTelObject* CPhoneDMmTsy::OpenNewObjectL(TDes& /*aNewName*/)
-	{
-	// all objects opened from the phone are opened by name, hence this method
-	// is not supported
-	User::Leave(KErrNotSupported);
-	return NULL;
-	}
-
-
-CTelObject::TReqMode CPhoneDMmTsy::ReqModeL(const TInt aIpc)
-	{
-	// ReqModeL is called from the server's CTelObject::ReqAnalyserL
-	// in order to check the type of request it has.
-
-	// The following are example request types for this dummy TSY
-	// All TSYs do not have to have these request types but they have been given
-	// "sensible" values in this test code
-
-	CTelObject::TReqMode ret=0;
-	switch (aIpc)
-		{
-	// Asynchronous Notification Requests
-	case EMobilePhoneNotifyDTMFCapsChange:
-	case EMobilePhoneNotifyStopInDTMFString:
-	case EMobilePhoneNotifyModeChange:
-	case EMobilePhoneNotifyNetworkRegistrationStatusChange:
-	case EMobilePhoneNotifyCurrentNetworkChange:
-	case EMobilePhoneNotifyCellInfoChange:
-	case EMobilePhoneNotifyIccAccessCapsChange:
-	case EMobilePhoneNotifyBatteryInfoChange:
-	case EMobilePhoneNotifySignalStrengthChange:
-	case EMobilePhoneNotifyIndicatorChange:
-	case EMobilePhoneNotifyCallServiceCapsChange:
-	case EMobilePhoneNotifyCallForwardingStatusChange:
-	case EMobilePhoneNotifyCallForwardingActive:
-	case EMobilePhoneNotifyNetworkSelectionSettingChange:
-	case EMobilePhoneNotifyNITZInfoChange:
-	case EMobilePhoneNotifyCallBarringStatusChange:
-	case EMobilePhoneNotifyCallWaitingStatusChange:
-	case EMobilePhoneNotifyCCBSStatusChange:
-	case EMobilePhoneNotifyCCBSRecall:
-	case EMobilePhoneNotifyAlternatingCallCapsChange:
-	case EMobilePhoneNotifyAlternatingCallModeChange:
-	case EMobilePhoneNotifyALSLineChange:
-	case EMobilePhoneNotifyCostCapsChange:
-	case EMobilePhoneNotifyCostInfoChange:
-	case EMobilePhoneNotifySecurityCapsChange:
-	case EMobilePhoneNotifyLockInfoChange:
-	case EMobilePhoneNotifySecurityCodeInfoChange:
-	case EMobilePhoneNotifySecurityEvent:
-	case EMobilePhoneNotifyMessageWaiting:
-	case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange:
-	case EMobilePhoneNotifyFdnStatusChange:
-	case EMobilePhoneNotifyMulticallParamsChange:
-	case EMobilePhoneNotifyIncomingCallTypeChange:
-	case EMobilePhoneNotifyUUSSettingChange:
-	case EMobilePhoneNotifyDefaultPrivacyChange:
-	case EMobilePhoneNotifyMultimediaCallPreferenceChange:
-	case EMobilePhoneNotifyNetworkSecurityLevelChange:
-	case EMobilePhoneNotifyUSimAppsSelectionModeChange:
-	case EMobilePhoneNotifyUSimApplicationsInfoChange:
-	case EMobilePhoneNotifyMailboxNumbersChange:
-	case EMobilePhoneNotifyMmsUpdate:
-	case EMobilePhoneNotifyMmsConfig:
-	case EMobilePhoneNotifyNetworkInvScanChange:
-	case EMobilePhoneNotifyNetworkInvScanEvent:
-	case EMobilePhoneNotifyAirTimeDurationChange:
-	case EMobilePhoneNotifySendNetworkServiceRequest:
-	case EMobilePhoneNotifyAllSendNetworkServiceRequest:
-	case EMobilePhoneNotifyDTMFEvent:
-	case EMobilePhoneNotifyStorePreferredNetworksListChange:
-	case EMobilePhoneNotifyCipheringIndicatorStatus:
-	case EMobilePhoneNotifyIdentityServiceStatus:
-	case EMobilePhoneNotifyIdentitySuppressionRejected:
-	case EMobilePhoneNotifyMulticallIndicatorChange:
-	case EMobilePhoneNotifySmartCardApplicationInfoChange:
-	case EMobilePhoneNotifyCurrentNetworkNoLocationChange:
-	case EMobilePhoneNotifyImsAuthorizationInfoChanged:
-	case EMobilePhoneNotifyAPNListChanged:
-	case EMobilePhoneNotifyAuthenticateDataChange:
-	case EMobilePhoneNotifyWlanDataChange:
-	case EMobilePhoneNotifyPreferredWlanSIDListChange:
-	
-
-	case EMobilePhoneNotifyAPNControlListServiceStatusChange:
-	ret=KReqModeMultipleCompletionEnabled | KReqModeRePostImmediately;
-		break;
-	
-	// Non flow-controlled requests
-	case EMobilePhoneGetDTMFCaps:
-	case EMobilePhoneStopDTMFTone:
-	case EMobilePhoneGetNetworkCaps:
-	case EMobilePhoneGetCurrentMode:
-	case EMobilePhoneGetNetworkRegistrationStatus:
-	case EMobilePhoneGetHomeNetwork:
-	case EMobilePhoneGetCurrentNetwork:
-	case EMobilePhoneGetCellInfo:
-	case EMobilePhoneGetDetectedNetworksPhase1:
-	case EMobilePhoneGetDetectedNetworksPhase2:
-	case EMobilePhoneGetDetectedNetworksV2Phase1:
-	case EMobilePhoneGetDetectedNetworksV2Phase2:
-	case EMobilePhoneGetDetectedNetworksV5Phase1:
-	case EMobilePhoneGetDetectedNetworksV5Phase2:
-	case EMobilePhoneGetDetectedNetworksV8Phase1:
-	case EMobilePhoneGetDetectedNetworksV8Phase2:
-	case EMobilePhoneGetMultimodeCaps:
-	case EMobilePhoneGetPhoneStoreInfo:
-	case EMobilePhoneGetIccAccessCaps:
-	case EMobilePhoneGetIccIdentity:
-	case EMobilePhoneGetCustomerServiceProfile:
-	case EMobilePhoneGetServiceTable:
-	case EMobilePhoneGetBatteryCaps:
-	case EMobilePhoneGetBatteryInfo:
-	case EMobilePhoneGetSignalCaps:
-	case EMobilePhoneGetSignalStrength:
-	case EMobilePhoneGetIndicatorCaps:
-	case EMobilePhoneGetIndicator:
-	case EMobilePhoneGetIdentityCaps:
-	case EMobilePhoneGetPhoneId:
-	case EMobilePhoneGetSubscriberId:
-	case EMobilePhoneGetCallServiceCaps:
-	case EMobilePhoneGetCallForwardingStatusPhase1:
-	case EMobilePhoneGetCallForwardingStatusPhase2:
-	case EMobilePhoneGetFeatureCode:
-	case EMobilePhoneGetNetworkSelectionSetting:
-	case EMobilePhoneSetNetworkSelectionSetting:
-	case EMobilePhoneSelectNetwork:
-	case EMobilePhoneGetNITZInfo:
-	case EMobilePhoneGetServiceProviderName:
-	case EMobilePhoneGetIdentityServiceStatus:
-	case EMobilePhoneGetBarringStatusPhase1:
-	case EMobilePhoneGetBarringStatusPhase2:
-	case EMobilePhoneSetCallBarringStatus:
-	case EMobilePhoneSetCallBarringPassword:
-	case EMobilePhoneGetWaitingStatusPhase1:
-	case EMobilePhoneGetWaitingStatusPhase2:
-	case EMobilePhoneSetCallWaitingStatus:
-	case EMobilePhoneGetCCBSStatus:
-	case EMobilePhoneDeactivateCCBS:
-	case EMobilePhoneAcceptCCBSRecall:
-	case EMobilePhoneRefuseCCBSRecall:
-	case EMobilePhoneGetCompletionRequestsPhase1:
-	case EMobilePhoneGetCompletionRequestsPhase2:
-	case EMobilePhoneGetAlternatingCallCaps:
-	case EMobilePhoneGetAlternatingCallMode:
-	case EMobilePhoneSetAlternatingCallMode:
-	case EMobilePhoneGetALSLine:
-	case EMobilePhoneSetALSLine:
-	case EMobilePhoneGetCostCaps:
-	case EMobilePhoneClearCostMeter:
-	case EMobilePhoneSetMaxCostMeter:
-	case EMobilePhoneSetPuct:
-	case EMobilePhoneGetCostInfo:
-	case EMobilePhoneGetSecurityCaps:
-	case EMobilePhoneGetLockInfo:
-	case EMobilePhoneSetLockSetting:
-	case EMobilePhoneGetSecurityCodeInfo:
-	case EMobilePhoneChangeSecurityCode:
-	case EMobilePhoneVerifySecurityCode:
-	case EMobilePhoneAbortSecurityCode:
-	case EMobilePhoneGetFdnStatus:
-	case EMobilePhoneSetFdnSetting:
-	case EMobilePhoneGetMulticallParams:
-	case EMobilePhoneSetMulticallParams:
-	case EMobilePhoneGetIncomingCallType:
-	case EMobilePhoneSetIncomingCallType:
-	case EMobilePhoneGetUUSSetting:
-	case EMobilePhoneSetUUSSetting:
-	case EMobilePhoneGetDefaultPrivacy:
-	case EMobilePhoneSetDefaultPrivacy:
-	case EMobilePhoneGetIccMessageWaitingIndicators:
-	case EMobilePhoneSetIccMessageWaitingIndicators:
-	case EMobilePhoneGetMultimediaCallPreference:
-	case EMobilePhoneSetMultimediaCallPreference:
-	case EMobilePhoneGetNetworkSecurityLevel:
-	case EMobilePhoneEnumerateUSimApplications:
-	case EMobilePhoneGetUSimAppsSelectionMode:
-	case EMobilePhoneSetUSimAppsSelectionMode:
-	case EMobilePhoneSetUSimApplicationStatus:
-	case EMobilePhoneGetUSimApplicationsInfo:
-	case EMobilePhoneSetSSPassword:
-	case EMobilePhoneGetMailboxNumbers:
-	case EMobilePhoneSetMmsUserConnParams:	
-	case EMobilePhoneSetMmsUserPreferences:
-	case EMobilePhoneGetMmsConfig:
-	case EMobilePhoneGetHomeNetworkSearchPeriod:
-	case EMobilePhoneGetLastUsedAccessTechnology:
-	case EMobilePhoneGetNetworkInvScanSetting:
-	case EMobilePhoneGetCallForwardingIndicator:
-	case EMobilePhoneGetCompMethodName:
-	case EMobilePhoneEnumerateAPNEntries:
-	case EMobilePhoneGetAPNname:
-	case EMobilePhoneAppendAPNName:
-	case EMobilePhoneDeleteAPNName:
-	case EMobilePhoneSetAPNControlListServiceStatus:
-	case EMobilePhoneGetAPNControlListServiceStatus:
-	case EMobilePhoneGetAirTimeDuration:
-	case EMobilePhoneClearBlacklist:
-	case EMobilePhoneGetPersonalisationCaps:
-	case EMobilePhoneGetPersonalisationStatus:
-	case EMobilePhoneSetPersonalisationStatus:
-	case EMobilePhoneGetNetworkName:
-	case EMobilePhoneGetPreferredNetworksPhase1:
-	case EMobilePhoneGetPreferredNetworksPhase2:
-	case EMobilePhoneStorePreferredNetworksList:
-	case EMobilePhoneGetCipheringIndicatorStatus:
-	case EMobilePhoneSetIdentityServiceStatus:
-	case EMobilePhoneEnumerateSmartCardApplications:
-	case EMobilePhoneGetSmartCardApplicationInfo:
-	case EMobilePhoneSetSmartCardApplicationStatus:
-	case EMobilePhoneGetScFileInfo:
-	case EMobilePhoneReadScFile:
-	case EMobilePhoneUpdateScFile:
-	case EMobilePhoneGetCurrentActiveUSimApplication:
-	case EMobilePhoneGetCurrentNetworkNoLocation:		
-	case EMobilePhoneAuthorizationInfoPhase1:
-	case EMobilePhoneAuthorizationInfoPhase2:
-	case EMobilePhoneIMSAuthenticate:
-	case EMobilePhoneSmartCardAuthenticate:
-	case EETelPhoneSetEmergencyClient:
-	case EMobilePhoneGetAuthenticationParams:
-	case EMobilePhoneSetGbaBootstrapParams:
-	case EMobilePhoneAuthenticationListPhase1:
-	case EMobilePhoneAuthenticationListPhase2:
-	case EMobilePhoneGetWlanData:
-	case EMobilePhoneSetWlanData:
-	case EMobilePhoneGetPreferredWlanSIDsPhase1:
-	case EMobilePhoneGetPreferredWlanSIDsPhase2:
-	case EMobilePhoneStorePreferredWlanSIDList:
-		break;
-
-	// Flow controlled requests
-	case EMobilePhoneSendNetworkServiceRequest:
-	case EMobilePhoneSendDTMFTones:
-	case EMobilePhoneReadDTMFTones:
-	case EMobilePhoneStartDTMFTone:
-	case EMobilePhoneContinueDTMFStringSending:
-	case EMobilePhoneSetCallForwardingStatus:
-	case EMobilePhoneProgramFeatureCode:
-	case EMobilePhoneTerminateAllCalls:
-	case EMobilePhoneTerminateActiveCalls:
-		ret=KReqModeFlowControlObeyed;
-		break;
-	default:
-		ret=CPhoneBase::ReqModeL(aIpc);
-		break;
-		}
-	return ret;
-	}
-
-TInt CPhoneDMmTsy::RegisterNotification(const TInt aIpc)
-	{
-	// RegisterNotification is called when the server recognises that this notification
-	// is being posted for the first time on this sub-session object.
-
-	// It enables the TSY to "turn on" any regular notification messages that it may 
-	// receive from the phone
-
-	switch (aIpc)
-		{
-	case EMobilePhoneNotifyDTMFCapsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - DTMF Caps Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyStopInDTMFString:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - DTMF Stop In DTMF String "));
-		return KErrNone;
-	case EMobilePhoneNotifyModeChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Mode Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyNetworkRegistrationStatusChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Registration Status Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyCurrentNetworkChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Current network Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyCurrentNetworkNoLocationChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Current network ISV Change No Location"));
-		return KErrNone;
-	case EMobilePhoneNotifyCellInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Cell information Change "));
-		return KErrNone;		
-	case EMobilePhoneNotifyIccAccessCapsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - SIM Access Caps Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyBatteryInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Battery Info Change "));
-		return KErrNone;
-	case EMobilePhoneNotifySignalStrengthChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Signal Strength Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyIndicatorChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Indicator Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyCallServiceCapsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Call Service Caps Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyCallForwardingStatusChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Call Forwarding Status Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyCallForwardingActive:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Call Forwarding Active"));
-		return KErrNone;
-	case EMobilePhoneNotifyNetworkSelectionSettingChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Selection Setting Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyNITZInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Time Info Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyCallBarringStatusChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Call Barring Status Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyCallWaitingStatusChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Call Waiting Status Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyCCBSStatusChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify CCBS Status Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyCCBSRecall:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify CCBS Recall"));
-		return KErrNone;
-	case EMobilePhoneNotifyAlternatingCallCapsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Alternating Call Caps Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyAlternatingCallModeChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Alternating Mode Caps Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyALSLineChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify ALSLine Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyCostCapsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Cost Caps Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyCostInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Cost Info Change"));
-		return KErrNone;
-	case EMobilePhoneNotifySecurityCapsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Security Caps Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyLockInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Lock Info Change"));
-		return KErrNone;
-	case EMobilePhoneNotifySecurityCodeInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Security Code Info Change"));
-		return KErrNone;
-	case EMobilePhoneNotifySecurityEvent:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify On Security Event"));
-		return KErrNone;
-	case EMobilePhoneNotifyMessageWaiting:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Message Waiting"));
-		return KErrNone;
-	case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Icc Message Waiting Indicators Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyFdnStatusChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Fdn Status Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyMulticallParamsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Multicall Params Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyIncomingCallTypeChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Incoming Call Type Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyUUSSettingChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify UUS Setting Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyDefaultPrivacyChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Privacy Setting Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyMultimediaCallPreferenceChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Multimedia Call Setting Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyNetworkSecurityLevelChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Security Level Change"));
-		return KErrNone;	
-	case EMobilePhoneNotifyUSimAppsSelectionModeChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify USim Applications Selection Mode Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyUSimApplicationsInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify USim Applications Info Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyMailboxNumbersChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Mobile Mailbox Numbers functionality"));
-		return KErrNone;
-	case EMobilePhoneNotifyMmsUpdate:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Mobile MMS Update functionality"));
-		return KErrNone;
-	case EMobilePhoneNotifyMmsConfig:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Mobile MMS  Config functionality"));
-		return KErrNone;
-	case EMobilePhoneNotifyNetworkInvScanChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Investigation Scan Change functionality"));
-		return KErrNone;
-	case EMobilePhoneNotifyNetworkInvScanEvent:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Investigation Scan Event functionality"));
-		return KErrNone;
-	case EMobilePhoneNotifyAirTimeDurationChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Air Time Duration Change"));
-		return KErrNone;
-	case EMobilePhoneNotifySendNetworkServiceRequest:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Send Network Service Request"));
-		return KErrNone;
-	case EMobilePhoneNotifyAllSendNetworkServiceRequest:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify All Send Network Service Request"));
-		return KErrNone;
-	case EMobilePhoneNotifyDTMFEvent:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify DTMF Event"));
-		return KErrNone;
-	case EMobilePhoneNotifyStorePreferredNetworksListChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Stored Networks List Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyCipheringIndicatorStatus:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Ciphering Indicator Status Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyIdentityServiceStatus:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Identity Service Status Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyIdentitySuppressionRejected:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Identity Suppression Rejected"));
-		return KErrNone;
-	case EMobilePhoneNotifyMulticallIndicatorChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Multicall Indicator Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyImsAuthorizationInfoChanged:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Ims Authorization Info Changed"));
-		return KErrNone;
-	case EMobilePhoneNotifySmartCardApplicationInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Smart Card Application Info Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyAPNListChanged:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify APN Control List Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyAPNControlListServiceStatusChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify APN Control List Service Status Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyAuthenticateDataChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Authentication Data Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyWlanDataChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Wlan Data Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyPreferredWlanSIDListChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Wlan SIDs List Change"));
-		return KErrNone;		
-		
-	default:
-		// Unknown or invalid SMS IPC
-		return KErrNotSupported;
-		}
-	}
-
-TInt CPhoneDMmTsy::DeregisterNotification(const TInt aIpc)
-	{
-	// DeregisterNotification is called when the server recognises that this notification
-	// will not be posted again because the last client to have a handle on this sub-session
-	// object has just closed the handle.
-
-	// It enables the TSY to "turn off" any regular notification messages that it may
-	// receive from the phone.
-
-	switch (aIpc)
-		{
-	case EMobilePhoneNotifyDTMFCapsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - DTMF Caps Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyStopInDTMFString:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - DTMF Stop In DTMF String "));
-		return KErrNone;
-	case EMobilePhoneNotifyModeChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Mode Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyNetworkRegistrationStatusChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Registration Status Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyCurrentNetworkChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Current network Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyCurrentNetworkNoLocationChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Current network Change No Location"));
-		return KErrNone;
-	case EMobilePhoneNotifyCellInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Cell information Change "));
-		return KErrNone;		
-	case EMobilePhoneNotifyIccAccessCapsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - SIM Access Caps Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyBatteryInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Battery Info Change "));
-		return KErrNone;
-	case EMobilePhoneNotifySignalStrengthChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Signal Strength Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyIndicatorChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Indicator Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyCallServiceCapsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Call Service Caps Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyCallForwardingStatusChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Call Forwarding Status Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyCallForwardingActive:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Call Forwarding Active"));
-		return KErrNone;
-	case EMobilePhoneNotifyNetworkSelectionSettingChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Selection Setting Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyNITZInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Time Info Change "));
-		return KErrNone;
-	case EMobilePhoneNotifyCallBarringStatusChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Call Barring Status Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyCallWaitingStatusChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Call Waiting Status Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyCCBSStatusChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify CCBS Status Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyCCBSRecall:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify CCBS Recall"));
-		return KErrNone;
-	case EMobilePhoneNotifyAlternatingCallCapsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Alternating Call Caps Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyAlternatingCallModeChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Alternating Mode Caps Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyALSLineChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify ALSLine Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyCostCapsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Cost Caps Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyCostInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Cost Info Change"));
-		return KErrNone;
-	case EMobilePhoneNotifySecurityCapsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Security Caps Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyLockInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Lock Info Change"));
-		return KErrNone;
-	case EMobilePhoneNotifySecurityCodeInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Security Code Info Change"));
-		return KErrNone;
-	case EMobilePhoneNotifySecurityEvent:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify On Security Event"));
-		return KErrNone;	
-	case EMobilePhoneNotifyMessageWaiting:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Message Waiting"));
-		return KErrNone;
-	case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Icc Message Waiting Indicators Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyFdnStatusChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Fdn Status Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyMulticallParamsChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Multicall Params Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyIncomingCallTypeChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Incoming Call Type Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyUUSSettingChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify UUS Setting Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyDefaultPrivacyChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Privacy Setting Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyMultimediaCallPreferenceChange:	
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Multimedia Call Setting Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyNetworkSecurityLevelChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Security Level Change"));
-		return KErrNone;	
-	case EMobilePhoneNotifyUSimAppsSelectionModeChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify USim Applications Selection Mode Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyUSimApplicationsInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify USim Applications Info Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyMailboxNumbersChange:			
-		LOGTEXT(_L8("CPhoneDMmTsy:  DeregisterNotification - Notify Mobile Mailbox Numbers functionality"));
-		return KErrNone;
-	case EMobilePhoneNotifyMmsUpdate:
-		LOGTEXT(_L8("CPhoneDMmTsy:  DeregisterNotification - Notify Mobile MMS Update functionality"));
-		return KErrNone;
-	case EMobilePhoneNotifyMmsConfig:
-		LOGTEXT(_L8("CPhoneDMmTsy:  DeregisterNotification - Notify Mobile MMS Config functionality"));
-		return KErrNone;
-	case EMobilePhoneNotifyNetworkInvScanChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Investigation Scan Change functionality"));
-		return KErrNone;
-	case EMobilePhoneNotifyNetworkInvScanEvent:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Investigation Scan Event functionality"));
-		return KErrNone;
-	case EMobilePhoneNotifyAirTimeDurationChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Air Time Duration Change"));
-		return KErrNone;
-	case EMobilePhoneNotifySendNetworkServiceRequest:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Send Network Service Request"));
-		return KErrNone;
-	case EMobilePhoneNotifyAllSendNetworkServiceRequest:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify All Send Network Service Request"));
-		return KErrNone;
-	case EMobilePhoneNotifyDTMFEvent:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify DTMF Event"));
-		return KErrNone;	
-	case EMobilePhoneNotifyStorePreferredNetworksListChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Stored Networks List Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyCipheringIndicatorStatus:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Ciphering IndicatorStatus Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyIdentityServiceStatus:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Identity Service Status Change"));
-		return KErrNone;	
-	case EMobilePhoneNotifyIdentitySuppressionRejected:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Identity Suppression Rejected"));
-		return KErrNone;	
-	case EMobilePhoneNotifyMulticallIndicatorChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify MulticallIndicator Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyImsAuthorizationInfoChanged:
-		LOGTEXT(_L8("CPhoneDMmTsy:DeregisterNotification - Notify Ims Authorization Info Changed"));
-		return KErrNone;
-	case EMobilePhoneNotifySmartCardApplicationInfoChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Smart Card Application Info Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyAPNListChanged:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify APN Control List Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyAPNControlListServiceStatusChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify APN Control List Service Status Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyAuthenticateDataChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Authentication Data Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyWlanDataChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Wlan Data Change"));
-		return KErrNone;
-	case EMobilePhoneNotifyPreferredWlanSIDListChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Wlan SIDs list Change"));
-		return KErrNone;		
-	default:
-		// Unknown or invalid sms IPC
-		return KErrNotSupported;
-		}
-	}
-
-TInt CPhoneDMmTsy::NumberOfSlotsL(const TInt aIpc)
-	{
-	// NumberOfSlotsL is called by the server when it is registering a new notification.
-	// It enables the TSY to tell the server how many buffer slots to allocate for
-	// "repost immediately" notifications that may trigger before clients collect them
-
-	TInt numberOfSlots=1;
-	switch (aIpc)
-		{
-	case EMobilePhoneNotifyBatteryInfoChange:
-	case EMobilePhoneNotifySignalStrengthChange:
-	case EMobilePhoneNotifyIndicatorChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: Registered with 10 slots"));
-		numberOfSlots=10;
-		break;
-
-	case EMobilePhoneNotifyDTMFCapsChange:
-	case EMobilePhoneNotifyStopInDTMFString:
-	case EMobilePhoneNotifyCallServiceCapsChange:
-	case EMobilePhoneNotifyCCBSRecall:
-	case EMobilePhoneNotifyDTMFEvent:
-		LOGTEXT(_L8("CPhoneDMmTsy: Registered with 5 slots"));
-		numberOfSlots=5;
-		break;
-	
-	case EMobilePhoneNotifyModeChange:
-	case EMobilePhoneNotifyNetworkRegistrationStatusChange:
-	case EMobilePhoneNotifyCurrentNetworkChange:
-	case EMobilePhoneNotifyCurrentNetworkNoLocationChange:
-	case EMobilePhoneNotifyCellInfoChange:
-	case EMobilePhoneNotifyIccAccessCapsChange:
-	case EMobilePhoneNotifyCallForwardingStatusChange:
-	case EMobilePhoneNotifyCallForwardingActive:
-	case EMobilePhoneNotifyNetworkSelectionSettingChange:
-	case EMobilePhoneNotifyNITZInfoChange:
-	case EMobilePhoneNotifyCallBarringStatusChange:
-	case EMobilePhoneNotifyCallWaitingStatusChange:
-	case EMobilePhoneNotifyCCBSStatusChange:
-	case EMobilePhoneNotifyAlternatingCallCapsChange:
-	case EMobilePhoneNotifyAlternatingCallModeChange:
-	case EMobilePhoneNotifyALSLineChange:
-	case EMobilePhoneNotifyCostCapsChange:
-	case EMobilePhoneNotifyCostInfoChange:
-	case EMobilePhoneNotifySecurityCapsChange:
-	case EMobilePhoneNotifyLockInfoChange:
-	case EMobilePhoneNotifySecurityCodeInfoChange:
-	case EMobilePhoneNotifySecurityEvent:
-	case EMobilePhoneNotifyMessageWaiting:
-	case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange:
-	case EMobilePhoneNotifyFdnStatusChange:
-	case EMobilePhoneNotifyMulticallParamsChange:
-	case EMobilePhoneNotifyIncomingCallTypeChange:
-	case EMobilePhoneNotifyUUSSettingChange:
-	case EMobilePhoneNotifyDefaultPrivacyChange:
-	case EMobilePhoneNotifyMultimediaCallPreferenceChange:
-	case EMobilePhoneNotifyNetworkSecurityLevelChange:
-	case EMobilePhoneNotifyUSimAppsSelectionModeChange:
-	case EMobilePhoneNotifyUSimApplicationsInfoChange:
-	case EMobilePhoneNotifyMailboxNumbersChange:
-	case EMobilePhoneNotifyMmsUpdate:
-	case EMobilePhoneNotifyMmsConfig:
-	case EMobilePhoneNotifyNetworkInvScanChange:
-	case EMobilePhoneNotifyNetworkInvScanEvent:
-	case EMobilePhoneNotifyAirTimeDurationChange:
-	case EMobilePhoneNotifySendNetworkServiceRequest:
-	case EMobilePhoneNotifyAllSendNetworkServiceRequest:
-	case EMobilePhoneNotifyStorePreferredNetworksListChange:
-	case EMobilePhoneNotifyCipheringIndicatorStatus:
-	case EMobilePhoneNotifyIdentityServiceStatus:
-	case EMobilePhoneNotifyIdentitySuppressionRejected:
-	case EMobilePhoneNotifyMulticallIndicatorChange:
-	case EMobilePhoneNotifyImsAuthorizationInfoChanged:
-	case EMobilePhoneNotifySmartCardApplicationInfoChange:
-	case EMobilePhoneNotifyAPNListChanged:
-	case EMobilePhoneNotifyAPNControlListServiceStatusChange:
-	case EMobilePhoneNotifyAuthenticateDataChange:
-	case EMobilePhoneNotifyWlanDataChange:
-	case EMobilePhoneNotifyPreferredWlanSIDListChange:
-		LOGTEXT(_L8("CPhoneDMmTsy: Registered with 2 slots"));
-		numberOfSlots=2;
-		break;
-	default:
-		// Unknown or invalid Phone IPC
-		User::Leave(KErrNotSupported);
-		break;
-		}
-	return numberOfSlots;
-	}
-
-
-TInt CPhoneDMmTsy::ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,
-		 				 const TDataPackage& aPackage)
-	{
-	// ExtFunc is called by the server when it has a "extended", i.e. non-core ETel request 
-	// for the TSY to process
-	// A request handle, request type and request data are passed to the TSY
-
-	TAny* dataPtr=aPackage.Ptr1();
-	TAny* dataPtr2=aPackage.Ptr2();
-	
-	// The request data has to extracted from TDataPackage and the TAny* pointers have to
-	// be "cast" to the expected request data type
-	
-	switch (aIpc)
-		{
-	// Non-Flow controlled requests
-
-	case EMobilePhoneGetDTMFCaps:
-		return GetDTMFCaps(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*, dataPtr));
-
-	case EMobilePhoneStopDTMFTone:
-		return StopDTMFTone(aTsyReqHandle);
-
-	case EMobilePhoneGetNetworkCaps:
-		return GetNetworkCaps(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*, dataPtr));
-
-	case EMobilePhoneGetNetworkRegistrationStatus:
-		return GetNetworkRegistrationStatus(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneRegistrationStatus*, dataPtr));
-
-	case EMobilePhoneGetHomeNetwork:
-		return GetHomeNetwork(aTsyReqHandle, aPackage.Des1n());
-
-	case EMobilePhoneGetCurrentMode:
-		return GetCurrentMode(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkMode*, dataPtr));
-
-	case EMobilePhoneGetCurrentNetwork:
-		return GetCurrentNetwork(aTsyReqHandle, aPackage.Des1n(),
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneLocationAreaV1*, dataPtr2));
-
-	case EMobilePhoneGetCellInfo:
-		return GetCellInfo(aTsyReqHandle, aPackage.Des1n());
-		
-	case EMobilePhoneGetCurrentNetworkNoLocation:
-		return GetCurrentNetwork(aTsyReqHandle, aPackage.Des1n(), NULL);
-
-	case EMobilePhoneGetDetectedNetworksPhase1:
-		return GetDetectedNetworksPhase1(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr),
-			REINTERPRET_CAST(TInt*, dataPtr2));
-
-	case EMobilePhoneGetDetectedNetworksPhase2:
-		return GetDetectedNetworksPhase2(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
-
-	case EMobilePhoneGetDetectedNetworksV2Phase1:
-		return GetDetectedNetworksV2Phase1(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr),
-			REINTERPRET_CAST(TInt*, dataPtr2));
-
-	case EMobilePhoneGetDetectedNetworksV2Phase2:
-		return GetDetectedNetworksV2Phase2(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
-
-	case EMobilePhoneGetDetectedNetworksV5Phase1:
-		return GetDetectedNetworksV5Phase1(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr),
-			REINTERPRET_CAST(TInt*, dataPtr2));
-
-	case EMobilePhoneGetDetectedNetworksV5Phase2:
-		return GetDetectedNetworksV5Phase2(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
-
-	case EMobilePhoneGetDetectedNetworksV8Phase1:
-		return GetDetectedNetworksV8Phase1(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr),
-			REINTERPRET_CAST(TInt*, dataPtr2));
-
-	case EMobilePhoneGetDetectedNetworksV8Phase2:
-		return GetDetectedNetworksV8Phase2(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
-
-	case EMobilePhoneGetNetworkSelectionSetting:
-		return GetNetworkSelectionSetting(aTsyReqHandle, aPackage.Des1n());
-
-	case EMobilePhoneSetNetworkSelectionSetting:
-		return SetNetworkSelectionSetting(aTsyReqHandle, aPackage.Des1n());
-
-	case EMobilePhoneSelectNetwork:
-		return SelectNetwork(aTsyReqHandle,
-			REINTERPRET_CAST(TBool*, dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkManualSelection*, dataPtr2));
-
-	case EMobilePhoneGetNITZInfo:
-		return GetNetworkTimeInfo(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNITZ*, dataPtr));
-
-	case EMobilePhoneGetServiceProviderName:
-		return GetServiceProviderName(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneServiceProviderNameV2*, dataPtr));
-
-	case EMobilePhoneGetMultimodeCaps:
-		return GetMultimodeCaps(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*, dataPtr));
-
-	case EMobilePhoneGetPhoneStoreInfo:
-		switch(aPackage.Type())
-			{
-			// Switch between the alternative implementations of GetPhoneStoreInfo
-			case TDataPackage::EPackage1n2u:
-				return GetPhoneStoreInfo(aTsyReqHandle,
-						aPackage.Des1n(),aPackage.Des2u());
-			case TDataPackage::EPackage1n2n:
-				return GetPhoneStoreInfo(aTsyReqHandle, aPackage.Des2n(),
-						REINTERPRET_CAST(RMobilePhone::TPhoneStoreNameAndIccType*, dataPtr));
-			default:
-				return NULL;
-			}
-
-	case EMobilePhoneGetIccAccessCaps:
-		return GetIccAccessCaps(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*, dataPtr));
-			
-	case EMobilePhoneGetIccIdentity:
-		return GetIccIdentity(aTsyReqHandle, REINTERPRET_CAST(RMobilePhone::TIccIdentity*, dataPtr));
-
-	case EMobilePhoneGetCustomerServiceProfile:
-		return GetCustomerServiceProfile(aTsyReqHandle, aPackage.Des1n());
-
-	case EMobilePhoneGetServiceTable:
-		return GetServiceTable(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneServiceTable*,dataPtr),
-			aPackage.Des2n());
-
-	case EMobilePhoneGetBatteryCaps:
-		return GetBatteryCaps(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*, dataPtr));
-
-	case EMobilePhoneGetBatteryInfo:
-		return GetBatteryInfo(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneBatteryInfoV1*, dataPtr));
-
-	case EMobilePhoneGetSignalCaps:
-		return GetSignalCaps(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*, dataPtr));
-
-	case EMobilePhoneGetSignalStrength:
-		return GetSignalStrength(aTsyReqHandle,
-			REINTERPRET_CAST(TInt32*, dataPtr),
-			REINTERPRET_CAST(TInt8*, dataPtr2));
-
-	case EMobilePhoneGetIndicatorCaps:
-		return GetIndicatorCaps(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*, dataPtr),
-			REINTERPRET_CAST(TUint32*, dataPtr2));
-
-	case EMobilePhoneGetIndicator:
-		return GetIndicator(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*, dataPtr));
-
-	case EMobilePhoneGetIdentityCaps:
-		return GetIdentityCaps(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*, dataPtr));
-
-	case EMobilePhoneGetPhoneId:
-		return GetPhoneId(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdentityV1*, dataPtr));
-
-	case EMobilePhoneGetSubscriberId:
-		return GetSubscriberId(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneSubscriberId*, dataPtr));
-
-	case EMobilePhoneGetDefaultPrivacy:
-		return GetDefaultPrivacy(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhonePrivacy*, dataPtr));
-
-	case EMobilePhoneSetDefaultPrivacy:
-		return SetDefaultPrivacy(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhonePrivacy*, dataPtr));
-
-	case EMobilePhoneGetCallServiceCaps:
-		return GetCallServiceCaps(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*, dataPtr));
-
-	case EMobilePhoneGetCallForwardingStatusPhase1:
-		return GetCallForwardingStatusPhase1(aTsyReqHandle,
-			REINTERPRET_CAST(CRetrieveMobilePhoneCFList::TGetCallForwardingRequest*, dataPtr),
-			REINTERPRET_CAST(TInt*, dataPtr2));
-
-	case EMobilePhoneGetCallForwardingStatusPhase2:
-		return GetCallForwardingStatusPhase2(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
-
-	case EMobilePhoneGetFeatureCode:
-		return GetFeatureCodeString(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TNetworkServiceAndAction*, dataPtr),
-			aPackage.Des2u());
-
-	case EMobilePhoneGetIdentityServiceStatus:
-		return GetIdentityServiceStatus(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TIdServiceAndLocation*, dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdServiceStatus*,dataPtr2));
-
-	case EMobilePhoneGetBarringStatusPhase1:
-		return GetCallBarringPhase1(aTsyReqHandle,
-			REINTERPRET_CAST(CRetrieveMobilePhoneCBList::TGetCallBarringRequest*, dataPtr),
-			REINTERPRET_CAST(TInt*, dataPtr2));
-
-	case EMobilePhoneGetBarringStatusPhase2:
-		return GetCallBarringPhase2(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
-
-	case EMobilePhoneSetCallBarringStatus:
-		return SetCallBarringStatus(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCBCondition*,dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCBChangeV1*,dataPtr2));
-
-	case EMobilePhoneSetCallBarringPassword:
-		return SetCallBarringPassword(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhonePasswordChangeV1*,dataPtr));
-
-	case EMobilePhoneSetSSPassword:
-		return SetSSPassword(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhonePasswordChangeV2*,dataPtr),
-			REINTERPRET_CAST(TInt*, dataPtr2));
-
-	case EMobilePhoneGetWaitingStatusPhase1:
-		return GetCallWaitingPhase1(aTsyReqHandle,
-			REINTERPRET_CAST(CRetrieveMobilePhoneCWList::TGetCallWaitingRequest*, dataPtr),
-			REINTERPRET_CAST(TInt*, dataPtr2));
-
-	case EMobilePhoneGetWaitingStatusPhase2:
-		return GetCallWaitingPhase2(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
-
-	case EMobilePhoneSetCallWaitingStatus:
-		return SetCallWaitingStatus(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobileService*, dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneServiceAction*, dataPtr2));
-
-	case EMobilePhoneGetCCBSStatus:
-		return GetCCBSStatus(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCCBSStatus*,dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TMobileInfoLocation*,dataPtr2));
-
-	case EMobilePhoneAcceptCCBSRecall:
-		return AcceptCCBSRecall(aTsyReqHandle,
-			REINTERPRET_CAST(TInt* ,dataPtr),aPackage.Des2u());
-
-	case EMobilePhoneRefuseCCBSRecall:
-		return RefuseCCBSRecall(aTsyReqHandle,
-			REINTERPRET_CAST(TInt* ,dataPtr));
-
-	case EMobilePhoneDeactivateCCBS:
-		return DeactivateCCBS(aTsyReqHandle, 
-			REINTERPRET_CAST(TInt* ,dataPtr));
-
-	case EMobilePhoneGetCompletionRequestsPhase1:
-		return GetCallCompletionPhase1(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr), REINTERPRET_CAST(TInt*,dataPtr2));
-
-	case EMobilePhoneGetCompletionRequestsPhase2:
-		return GetCallCompletionPhase2(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr), aPackage.Des2n());
-
-	case EMobilePhoneGetAlternatingCallCaps:
-		return GetAlternatingCallCaps(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*,dataPtr));
-
-	case EMobilePhoneGetAlternatingCallMode:
-		return GetAlternatingCallMode(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneAlternatingCallMode*,dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TMobileService*,dataPtr2));
-	
-	case EMobilePhoneSetAlternatingCallMode:
-		return SetAlternatingCallMode(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneAlternatingCallMode*,dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TMobileService*,dataPtr2));
-	
-	case EMobilePhoneGetALSLine:
-		return GetALSLine(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneALSLine*,dataPtr));
-	
-	case EMobilePhoneSetALSLine:
-		return SetALSLine(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneALSLine*,dataPtr));
-
-	case EMobilePhoneGetCostCaps:
-		return GetCostCaps(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*,dataPtr));
-
-	case EMobilePhoneSetMaxCostMeter:
-		return SetMaxCostMeter(aTsyReqHandle,
-			REINTERPRET_CAST(TUint*,dataPtr));
-
-	case EMobilePhoneClearCostMeter:
-		return ClearCostMeter(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCostMeters*,dataPtr));
-
-	case EMobilePhoneSetPuct:
-		return SetPuct(aTsyReqHandle,aPackage.Des1n());
-
-	case EMobilePhoneGetCostInfo:
-		return GetCostInfo(aTsyReqHandle,aPackage.Des1n());
-
-	case EMobilePhoneGetSecurityCaps:
-		return GetSecurityCaps(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*,dataPtr));
-
-	case EMobilePhoneGetLockInfo:
-		return GetLockInfo(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneLock *, dataPtr),
-			aPackage.Des2n());
-
-	case EMobilePhoneSetLockSetting:
-		return SetLockSetting(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneLock *, dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneLockSetting *, dataPtr2)
-			);
-	case EMobilePhoneChangeSecurityCode:
-		return ChangeSecurityCode(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityCode *, dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TMobilePhonePasswordChangeV1 *, dataPtr2));
-
-	case EMobilePhoneGetSecurityCodeInfo:
-		return GetSecurityCodeInfo(aTsyReqHandle,
-			reinterpret_cast<RMobilePhone::TMobilePhoneSecurityCode *> (dataPtr),
-			aPackage.Des2n());
-
-	case EMobilePhoneVerifySecurityCode:
-		return VerifySecurityCode(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityCode *,dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TCodeAndUnblockCode *, dataPtr2));
-
-	case EMobilePhoneAbortSecurityCode:
-		return AbortSecurityCode(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityCode *, dataPtr));
-
-	case EMobilePhoneGetFdnStatus:
-		return GetFdnStatus(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneFdnStatus*, dataPtr));
-
-	case EMobilePhoneSetFdnSetting:
-		return SetFdnSetting(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneFdnSetting*, dataPtr));
-
-	case EMobilePhoneGetMulticallParams:
-		return GetMulticallParams(aTsyReqHandle, aPackage.Des1n());
-
-	case EMobilePhoneSetMulticallParams:
-		return SetMulticallParams(aTsyReqHandle, REINTERPRET_CAST(TInt*, dataPtr));
-
-	case EMobilePhoneGetIncomingCallType:
-		return GetIncomingCallType(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneIncomingCallType*, dataPtr), 
-			aPackage.Des2n());
-
-	case EMobilePhoneSetIncomingCallType:
-		return SetIncomingCallType(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneIncomingCallType*, dataPtr), 
-			aPackage.Des2n());
-
-	case EMobilePhoneGetUUSSetting:
-		return GetUUSSetting(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneUUSSetting*, dataPtr));
-
-	case EMobilePhoneSetUUSSetting:
-		return SetUUSSetting(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneUUSSetting*, dataPtr));
-
-	case EMobilePhoneGetIccMessageWaitingIndicators:
-		return GetIccMessageWaitingIndicators(aTsyReqHandle,aPackage.Des1n());
-
-	case EMobilePhoneSetIccMessageWaitingIndicators:
-		return SetIccMessageWaitingIndicators(aTsyReqHandle,aPackage.Des1n());
-	
-	case EMobilePhoneGetMultimediaCallPreference:
-		return GetMultimediaCallPreference(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneMultimediaSettings*, dataPtr));
-
-	case EMobilePhoneSetMultimediaCallPreference:
-		return SetMultimediaCallPreference(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneMultimediaSettings*, dataPtr));
-
-	case EMobilePhoneGetNetworkSecurityLevel:
-		return GetNetworkSecurityLevel(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkSecurity*, dataPtr));
-
-	case EMobilePhoneEnumerateUSimApplications:
-		return EnumerateUSimApplications(aTsyReqHandle,
-			REINTERPRET_CAST(TInt*, dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TAID*, dataPtr2));
-
-	case EMobilePhoneGetUSimAppsSelectionMode:
-		return GetUSimAppsSelectionMode(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TUSimSelectionMode*, dataPtr));
-
-	case EMobilePhoneSetUSimAppsSelectionMode:
-		return SetUSimAppsSelectionMode(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TUSimSelectionMode*, dataPtr));
-
-	case EMobilePhoneSetUSimApplicationStatus:
-		return SetUSimApplicationStatus(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TAID*, dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TUSimAppAction*, dataPtr2));
-
-	case EMobilePhoneGetUSimApplicationsInfo:
-		return GetUSimApplicationInfo(aTsyReqHandle,
-			REINTERPRET_CAST(TInt*, dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TUSimApplicationInfoV2*, dataPtr2));
-			
-	case EMobilePhoneEnumerateSmartCardApplications:
-		return EnumerateSmartCardApplications(aTsyReqHandle,
-			reinterpret_cast<TUint*>(dataPtr));
-			
-	case EMobilePhoneGetSmartCardApplicationInfo:
-		return GetSmartCardApplicationInfo(aTsyReqHandle, reinterpret_cast<TUint*>(dataPtr), aPackage.Des2n());
-		
-	case EMobilePhoneNotifySmartCardApplicationInfoChange:
-		return NotifySmartCardApplicationInfoChange(aTsyReqHandle, reinterpret_cast<RMobilePhone::TSmartCardApplicationEvent*>(dataPtr2), reinterpret_cast<RMobilePhone::TAID*>(dataPtr));
-		
-	case EMobilePhoneSetSmartCardApplicationStatus:
-		return SetSmartCardApplicationStatus(aTsyReqHandle, reinterpret_cast<RMobilePhone::TAID*>(dataPtr), *reinterpret_cast<RMobilePhone::TSmartCardApplicationAction*>(dataPtr2));
-		
-	case EMobilePhoneGetScFileInfo:
-		return GetScFileInfo(aTsyReqHandle, *reinterpret_cast<RMobilePhone::TScFilePath*>(dataPtr), aPackage.Des2n());
-		
-	case EMobilePhoneReadScFile:
-		return ReadScFile(aTsyReqHandle, *reinterpret_cast<RMobilePhone::TScFilePathWithAccessOffsets*>(dataPtr), aPackage.Des2n());
-		
-	case EMobilePhoneUpdateScFile:
-		return UpdateScFile(aTsyReqHandle, *reinterpret_cast<RMobilePhone::TScFilePathWithAccessOffsets*>(dataPtr), aPackage.Des2n());
-		
-	case EMobilePhoneGetCurrentActiveUSimApplication:
-		return GetCurrentActiveUSimApplication(aTsyReqHandle, reinterpret_cast<RMobilePhone::TAID*>(dataPtr));
-			
-	case EMobilePhoneGetHomeNetworkSearchPeriod:
-		return GetHomeNetworkSearchPeriod(aTsyReqHandle,
-			REINTERPRET_CAST(TInt*, dataPtr));
-			
-	case EMobilePhoneGetLastUsedAccessTechnology:
-		return GetLastUsedAccessTechnology(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkAccess*, dataPtr));
-			
-	case EMobilePhoneGetNetworkInvScanSetting:
-		return GetNetworkInvScanSetting(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneInvestigationScan*, dataPtr));
-			
-	case EMobilePhoneGetCallForwardingIndicator:
-		return GetCallForwardingIndicator(aTsyReqHandle, aPackage.Des1n());
-		
-	case EMobilePhoneGetCompMethodName:
-		return GetCompMethodName(aTsyReqHandle, 
-			*REINTERPRET_CAST(TUint8*, dataPtr), aPackage.Des2u());
-			
-	case EMobilePhoneEnumerateAPNEntries:
-		return EnumerateAPNEntries(aTsyReqHandle, 
-			REINTERPRET_CAST(TUint32*, dataPtr));
-	
-	case EMobilePhoneGetAPNname:
-		return GetAPNname(aTsyReqHandle, 
-			*REINTERPRET_CAST(TUint32*, dataPtr), aPackage.Des2n());
-
-	case EMobilePhoneAppendAPNName:
-		return AppendAPNName(aTsyReqHandle, aPackage.Des1n());
-			
-	case EMobilePhoneDeleteAPNName:
-		return DeleteAPNName(aTsyReqHandle, 
-			*REINTERPRET_CAST(TUint32*, dataPtr));
-	
-	case EMobilePhoneNotifyAPNListChanged:
-		return NotifyAPNListChanged(aTsyReqHandle);
-	
-	case EMobilePhoneSetAPNControlListServiceStatus:
-		return SetAPNControlListServiceStatus(aTsyReqHandle, 
-			*REINTERPRET_CAST(RMobilePhone::TAPNControlListServiceStatus*, dataPtr));
-			
-	case EMobilePhoneGetAPNControlListServiceStatus:
-		return GetAPNControlListServiceStatus(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TAPNControlListServiceStatus*, dataPtr));
-			
-	case EMobilePhoneNotifyAPNControlListServiceStatusChange:
-		return NotifyAPNControlListServiceStatusChange(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TAPNControlListServiceStatus*, dataPtr));
-	
-	case EMobilePhoneGetAirTimeDuration:
-		return GetAirTimeDuration(aTsyReqHandle, 
-			REINTERPRET_CAST(TTimeIntervalSeconds*, dataPtr));
-			
-	case EMobilePhoneClearBlacklist:
-		return ClearBlacklist(aTsyReqHandle);
-		
-	case EMobilePhoneGetPersonalisationCaps:
-		return GetPersonalisationCaps(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*, dataPtr));
-			
-	case EMobilePhoneGetPersonalisationStatus:
-		return GetPersonalisationStatus(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*, dataPtr));
-			
-	case EMobilePhoneSetPersonalisationStatus:
-		return SetPersonalisationStatus(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhonePersonalisation*, dataPtr), aPackage.Des2u()); 
-			
-	case EMobilePhoneGetNetworkName:
-		return GetCurrentNetworkName(aTsyReqHandle, aPackage.Des1n(), aPackage.Des2n());	
-		
-	case EMobilePhoneGetPreferredNetworksPhase1:
-		return GetPreferredNetworksPhase1(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), 
-			REINTERPRET_CAST(TInt*, dataPtr2));
-
-	case EMobilePhoneGetPreferredNetworksPhase2:
-		return GetPreferredNetworksPhase2(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());		
-			
-	case EMobilePhoneStorePreferredNetworksList:
-		return StorePreferredNetworksList(aTsyReqHandle, aPackage.Des1n());
-		
-	case EMobilePhoneGetCipheringIndicatorStatus:
-		return GetCipheringIndicatorStatus(aTsyReqHandle, 
-			*REINTERPRET_CAST(RMobilePhone::TMobileCallCipheringIndicator*, dataPtr));
-			
-	case EMobilePhoneSetIdentityServiceStatus:
-		return SetIdentityServiceStatus(aTsyReqHandle, 
-			*REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdService*, dataPtr),
-			*REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdServiceSetting*, dataPtr2));
-
-	// Flow controlled requests
-
-	case EMobilePhoneSendNetworkServiceRequest:
-		return SendNetworkServiceRequest(aTsyReqHandle, aPackage.Des1u());
-
-	case EMobilePhoneSendDTMFTones:
-		return SendDTMFTones(aTsyReqHandle, aPackage.Des1u());
-
-	case EMobilePhoneReadDTMFTones:
-		return ReadDTMFTones(aTsyReqHandle, aPackage.Des1u());
-
-	case EMobilePhoneStartDTMFTone:
-		return StartDTMFTone(aTsyReqHandle, 
-			REINTERPRET_CAST(TChar*, dataPtr));
-
-	case EMobilePhoneContinueDTMFStringSending:
-		return ContinueDTMFStringSending(aTsyReqHandle,
-			REINTERPRET_CAST(TBool*,dataPtr));
-
-	case EMobilePhoneSetCallForwardingStatus:
-		return SetCallForwardingStatus(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFCondition*, dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFChangeV1*, dataPtr2) );
-
-	case EMobilePhoneProgramFeatureCode:
-		return ProgramFeatureCodeString(aTsyReqHandle, 
-			aPackage.Des2u(),
-			REINTERPRET_CAST(RMobilePhone::TNetworkServiceAndAction*, dataPtr));
-		
-	case EMobilePhoneTerminateAllCalls:
-		return TerminateAllCalls(aTsyReqHandle);
-		
-    case EMobilePhoneTerminateActiveCalls:
-        return TerminateActiveCalls(aTsyReqHandle);
-			
-	case EMobilePhoneGetMailboxNumbers:
-		return GetMailboxNumbers (aTsyReqHandle, aPackage.Des1n());
-		
-	case EMobilePhoneSetMmsUserConnParams:
-		return SetMmsUserConnParams(aTsyReqHandle, aPackage.Des1n());
-		
-	case EMobilePhoneSetMmsUserPreferences:
-		return SetMmsUserPreferences(aTsyReqHandle, aPackage.Des1n());
-		
-	case EMobilePhoneGetMmsConfig:
-		return GetMmsConfig(aTsyReqHandle, 		
-			*REINTERPRET_CAST(RMobilePhone::TMmsConnParams*,dataPtr), aPackage.Des2n());			
-	//
-	// Notification requests
-	//
-
-	case EMobilePhoneNotifyModeChange:
-		return NotifyModeChange(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkMode*, dataPtr));
-
-	case EMobilePhoneNotifyDTMFCapsChange:
-		return NotifyDTMFCapsChange(aTsyReqHandle, 
-			REINTERPRET_CAST(TUint32*, dataPtr));
-	
-	case EMobilePhoneNotifyStopInDTMFString:
-		return NotifyStopInDTMFString(aTsyReqHandle);
-
-	case EMobilePhoneNotifyNetworkRegistrationStatusChange:
-		return NotifyNetworkRegistrationStatusChange(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneRegistrationStatus*, dataPtr));
-
-	case EMobilePhoneNotifyCurrentNetworkChange:
-		return NotifyCurrentNetworkChange(aTsyReqHandle, aPackage.Des1n(),
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneLocationAreaV1*, dataPtr2));
-
-	case EMobilePhoneNotifyCurrentNetworkNoLocationChange:
-		return NotifyCurrentNetworkChange(aTsyReqHandle, aPackage.Des1n(), NULL);
-
-	case EMobilePhoneNotifyCellInfoChange:
-		return NotifyCellInfoChange(aTsyReqHandle, aPackage.Des1n());
-	
-	case EMobilePhoneNotifyIccAccessCapsChange:
-		return NotifyIccAccessCapsChange(aTsyReqHandle, 
-			REINTERPRET_CAST(TUint32*, dataPtr));
-
-	case EMobilePhoneNotifyBatteryInfoChange:
-		return NotifyBatteryInfoChange(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneBatteryInfoV1*, dataPtr));
-
-	case EMobilePhoneNotifySignalStrengthChange:
-		return NotifySignalStrengthChange(aTsyReqHandle,
-			REINTERPRET_CAST(TInt32*, dataPtr), REINTERPRET_CAST(TInt8*, dataPtr2));
-
-	case EMobilePhoneNotifyIndicatorChange:
-		return NotifyIndicatorChange(aTsyReqHandle, REINTERPRET_CAST(TUint32*, dataPtr));
-
-	case EMobilePhoneNotifyDefaultPrivacyChange:
-		return NotifyDefaultPrivacyChange(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhonePrivacy*, dataPtr));
-
-	case EMobilePhoneNotifyCallForwardingStatusChange:
-		return NotifyCallForwardingStatusChange(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFCondition*, dataPtr));
-
-	case EMobilePhoneNotifyCallForwardingActive:
-		return NotifyCallForwardingActive(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobileService*, dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFActive*, dataPtr2));
-
-	case EMobilePhoneNotifyNetworkSelectionSettingChange:
-		return NotifyNetworkSelectionSettingChange(aTsyReqHandle, aPackage.Des1n());
-
-	case EMobilePhoneNotifyNITZInfoChange:
-		return NotifyNetworkTimeInfoChange(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNITZ*, dataPtr));
-
-	case EMobilePhoneNotifyCallServiceCapsChange:
-		return NotifyCallServiceCapsChange(aTsyReqHandle, 
-			REINTERPRET_CAST(TUint32*, dataPtr));
-
-	case EMobilePhoneNotifyCallBarringStatusChange:
-		return NotifyCallBarringStatusChange(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCBCondition*,dataPtr));
-	
-	case EMobilePhoneNotifyCallWaitingStatusChange:
-		return NotifyCallWaitingStatusChange(aTsyReqHandle,
-			aPackage.Des1n());
-
-	case EMobilePhoneNotifyCCBSStatusChange:
-		return NotifyCCBSStatusChange(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCCBSStatus*,dataPtr));
-
-	case EMobilePhoneNotifyCCBSRecall:
-		return NotifyCCBSRecall(aTsyReqHandle,aPackage.Des1n());
-
-	case EMobilePhoneNotifyAlternatingCallCapsChange:
-		return NotifyAlternatingCallCapsChange(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*,dataPtr));
-
-	case EMobilePhoneNotifyAlternatingCallModeChange:
-		return NotifyAlternatingCallModeChange(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneAlternatingCallMode*,dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TMobileService*,dataPtr2));
-
-	case EMobilePhoneNotifyALSLineChange:
-		return NotifyALSLineChange(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneALSLine*,dataPtr));
-
-	case EMobilePhoneNotifyCostCapsChange:
-		return NotifyCostCapsChange(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*,dataPtr));
-
-	case EMobilePhoneNotifyCostInfoChange:
-		return NotifyCostInfoChange(aTsyReqHandle,aPackage.Des1n());
-
-	case EMobilePhoneNotifySecurityCapsChange:
-		return NotifySecurityCapsChange(aTsyReqHandle,
-			REINTERPRET_CAST(TUint32*, dataPtr));
-
-	case EMobilePhoneNotifyLockInfoChange:
-		return NotifyLockInfoChange(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneLock *, dataPtr),
-			aPackage.Des2n());
-
-	case EMobilePhoneNotifySecurityCodeInfoChange:
-		return NotifySecurityCodeInfoChange(aTsyReqHandle,
-			reinterpret_cast<RMobilePhone::TMobilePhoneSecurityCode*> (dataPtr),
-			aPackage.Des2n());
-
-	case EMobilePhoneNotifySecurityEvent:
-		return NotifyOnSecurityEvent(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityEvent*,dataPtr));
-
-	case EMobilePhoneNotifyMessageWaiting:
-		return NotifyMessageWaiting(aTsyReqHandle,REINTERPRET_CAST(TInt*,dataPtr));
-
-	case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange:
-		return NotifyIccMessageWaitingIndicatorsChange(aTsyReqHandle,aPackage.Des1n());
-	
-	case EMobilePhoneNotifyFdnStatusChange:
-		return NotifyFdnStatusChange(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneFdnStatus*,dataPtr));
-
-	case EMobilePhoneNotifyMulticallParamsChange:
-		return NotifyMulticallParamsChange(aTsyReqHandle, aPackage.Des1n());
-
-	case EMobilePhoneNotifyIncomingCallTypeChange:
-		return NotifyIncomingCallTypeChange(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneIncomingCallType*, dataPtr),
-			aPackage.Des2n());
-	
-	case EMobilePhoneNotifyUUSSettingChange:
-		return NotifyUUSSettingChange(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneUUSSetting*, dataPtr));
-
-	case EMobilePhoneNotifyMultimediaCallPreferenceChange:
-		return NotifyMultimediaCallPreferenceChange(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneMultimediaSettings*, dataPtr));
-
-	case EMobilePhoneNotifyNetworkSecurityLevelChange:
-		return NotifyNetworkSecurityLevelChange(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkSecurity*, dataPtr));
-
-	case EMobilePhoneNotifyUSimAppsSelectionModeChange:
-		return NotifyUSimAppsSelectionModeChange(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TUSimSelectionMode*, dataPtr));	
-
-	case EMobilePhoneNotifyUSimApplicationsInfoChange:
-		return NotifyUSimApplicationsInfoChange(aTsyReqHandle,
-			REINTERPRET_CAST(TInt*, dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TAID*, dataPtr2));	
-			
-	case EMobilePhoneNotifyMailboxNumbersChange:		
-			return NotifyMailboxNumbersChange (aTsyReqHandle, aPackage.Des1n());		
-
-	case EMobilePhoneNotifyMmsUpdate:
-		return NotifyMmsUpdate (aTsyReqHandle, aPackage.Des1n());
-
-	case EMobilePhoneNotifyMmsConfig:
-		return NotifyMmsConfig(aTsyReqHandle, 		
-			*REINTERPRET_CAST(RMobilePhone::TMmsConnParams*,dataPtr), aPackage.Des2n());
-		
-	case EMobilePhoneNotifyNetworkInvScanChange:
-		return NotifyNetworkInvScanChange(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneInvestigationScan*, dataPtr));
-			
-	case EMobilePhoneNotifyNetworkInvScanEvent:
-		return NotifyNetworkInvScanEvent(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneInvestigationScanEvent*, dataPtr));
-			
-	case EMobilePhoneNotifyAirTimeDurationChange:
-		return NotifyAirTimeDurationChange(aTsyReqHandle,
-			REINTERPRET_CAST(TTimeIntervalSeconds*,dataPtr));
-
-	case EMobilePhoneNotifySendNetworkServiceRequest:
-		return NotifySendNetworkServiceRequest(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNotifySendSSOperation*, dataPtr), aPackage.Des2n());
-
-	case EMobilePhoneNotifyAllSendNetworkServiceRequest:
-		return NotifyAllSendNetworkServiceRequest(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNotifySendSSOperation*, dataPtr), aPackage.Des2n());
-	
-	case EMobilePhoneNotifyDTMFEvent:
-		return NotifyDTMFEvent(aTsyReqHandle, REINTERPRET_CAST(RMobilePhone::TMobilePhoneDTMFEvent*, dataPtr));
-
-	case EMobilePhoneNotifyStorePreferredNetworksListChange:
-		return NotifyStorePreferredNetworksListChange(aTsyReqHandle);
-
-	case EMobilePhoneNotifyCipheringIndicatorStatus:
-		return NotifyCipheringIndicatorStatus(aTsyReqHandle,
-			*REINTERPRET_CAST(RMobilePhone::TMobileCallCipheringIndicator*, dataPtr));
-
-	case EMobilePhoneNotifyIdentityServiceStatus:
-		return NotifyIdentityServiceStatus(aTsyReqHandle,
-			*REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdService*, dataPtr),
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdServiceStatus*, dataPtr2));
-
-	case EMobilePhoneNotifyIdentitySuppressionRejected:
-		return NotifyIdentitySuppressionRejected(aTsyReqHandle);
-
-	case EMobilePhoneNotifyMulticallIndicatorChange:
-		return NotifyMulticallIndicatorChange(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TMobilePhoneMulticallIndicator*, dataPtr));
-
-	case EMobilePhoneAuthorizationInfoPhase1:
-			return GetAuthorizationInfoPhase1(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr),
-			REINTERPRET_CAST(TInt*,dataPtr2));
-
-
-	case EMobilePhoneAuthorizationInfoPhase2:
-		return GetAuthorizationInfoPhase2(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr), aPackage.Des2n());
-			
-	case EMobilePhoneIMSAuthenticate:
-		return GetAuthenticationData(aTsyReqHandle, aPackage.Des1n());
-
-	case EMobilePhoneSmartCardAuthenticate:
-		return GetSmartCardAuthenticationData(aTsyReqHandle, aPackage.Des1n(),
-		         reinterpret_cast<RMobilePhone::TAID*>(dataPtr2));
-
-	case EMobilePhoneNotifyImsAuthorizationInfoChanged:
-		return NotifyImsAuthorizationInfoChanged(aTsyReqHandle);
-	
-	case EETelPhoneSetEmergencyClient:
-		return SetEmergencyClient(aTsyReqHandle,REINTERPRET_CAST(TUint32*, dataPtr));
-
-	case EMobilePhoneNotifyAuthenticateDataChange:
-		return NotifyAuthenticateDataChange(aTsyReqHandle, aPackage.Des1n());
-
-	case EMobilePhoneGetAuthenticationParams:
-		return GetAuthenticationParams(aTsyReqHandle, aPackage.Des1n(),aPackage.Des2n());
-		
-	case EMobilePhoneSetGbaBootstrapParams:
-		return SetGbaBootstrapParams(aTsyReqHandle, reinterpret_cast<RMobilePhone::TAID*>(dataPtr2),aPackage.Des1n());
-	
-	case EMobilePhoneAuthenticationListPhase1:
-		return GetAuthenticationListPhase1(aTsyReqHandle,
-			REINTERPRET_CAST(CRetrieveMobilePhoneAuthenticationIds::TAuthRequestData*, dataPtr),REINTERPRET_CAST(TInt*, dataPtr2));
-			
-	case EMobilePhoneAuthenticationListPhase2:
-		return GetAuthenticationListPhase2(aTsyReqHandle,
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
-	
-	case EMobilePhoneNotifyWlanDataChange:
-		return NotifyWlanDataChange(aTsyReqHandle,aPackage.Des1n());
-	
-	case EMobilePhoneNotifyPreferredWlanSIDListChange:
-		return NotifyPreferredWlanSIDListChange(aTsyReqHandle);
-		
-	case EMobilePhoneGetWlanData:
-		return GetWlanData(aTsyReqHandle,aPackage.Des1n());
-		
-	case EMobilePhoneSetWlanData:
-		return SetWlanData(aTsyReqHandle,aPackage.Des1n());
-	
-	case EMobilePhoneGetPreferredWlanSIDsPhase1:
-		return GetPreferredWlanSIDsPhase1(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), 
-			REINTERPRET_CAST(TInt*, dataPtr2));
-			
-	case EMobilePhoneGetPreferredWlanSIDsPhase2:
-		return GetPreferredWlanSIDsPhase2(aTsyReqHandle, 
-			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());		
-						
-	case EMobilePhoneStorePreferredWlanSIDList:
-		return StorePreferredWlanSIDList(aTsyReqHandle, aPackage.Des1n());
-		
-	default:
-		return KErrNotSupported;
-		}
-	}
-
-TInt CPhoneDMmTsy::CancelService(const TInt aIpc,const TTsyReqHandle aTsyReqHandle)
-	{
-	// CancelService is called by the server when it is "cleaning-up" any still outstanding
-	// asynchronous requests before closing a client's sub-session.
-	// This will happen if a client closes its R-class handle without cancelling outstanding
-	// asynchronous requests.
-
-	switch (aIpc)
-		{
-	case EMobilePhoneGetHomeNetwork:
-		return GetHomeNetworkCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyModeChange:
-		return NotifyModeChangeCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyDTMFCapsChange:
-		return NotifyDTMFCapsChangeCancel(aTsyReqHandle);
-	case EMobilePhoneSendDTMFTones:
-		return SendDTMFTonesCancel(aTsyReqHandle);
-	case EMobilePhoneReadDTMFTones:
-		return ReadDTMFTonesCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyStopInDTMFString:
-		return NotifyStopInDTMFStringCancel(aTsyReqHandle);
-	case EMobilePhoneGetNetworkRegistrationStatus:
-		return GetNetworkRegistrationStatusCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyNetworkRegistrationStatusChange:
-		return NotifyNetworkRegistrationStatusChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetCurrentNetwork:
-		return GetCurrentNetworkCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyCurrentNetworkChange:
-		return NotifyCurrentNetworkChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetCurrentNetworkNoLocation:
-		return GetCurrentNetworkCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyCurrentNetworkNoLocationChange:
-		return NotifyCurrentNetworkChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetCellInfo:
-		return GetCellInfoCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyCellInfoChange:
-		return NotifyCellInfoChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetDetectedNetworksPhase1:
-	case EMobilePhoneGetDetectedNetworksPhase2:
-		return GetDetectedNetworksCancel(aTsyReqHandle);
-	case EMobilePhoneGetDetectedNetworksV2Phase1:
-	case EMobilePhoneGetDetectedNetworksV2Phase2:
-		return GetDetectedNetworksV2Cancel(aTsyReqHandle);
-	case EMobilePhoneGetDetectedNetworksV5Phase1:
-	case EMobilePhoneGetDetectedNetworksV5Phase2:
-		return GetDetectedNetworksV5Cancel(aTsyReqHandle);	
-	case EMobilePhoneGetDetectedNetworksV8Phase1:
-	case EMobilePhoneGetDetectedNetworksV8Phase2:
-		return GetDetectedNetworksV8Cancel(aTsyReqHandle);
-	case EMobilePhoneGetPhoneStoreInfo:
-		return GetPhoneStoreInfoCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyIccAccessCapsChange:
-		return NotifyIccAccessCapsChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetCustomerServiceProfile:
-		return GetCustomerServiceProfileCancel(aTsyReqHandle);
-	case EMobilePhoneGetServiceTable:
-		return GetServiceTableCancel(aTsyReqHandle);
-	case EMobilePhoneGetBatteryInfo:
-		return GetBatteryInfoCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyBatteryInfoChange:
-		return NotifyBatteryInfoChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetSignalStrength:
-		return GetSignalStrengthCancel(aTsyReqHandle);
-	case EMobilePhoneNotifySignalStrengthChange:
-		return NotifySignalStrengthChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetIndicator:
-		return GetIndicatorCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyIndicatorChange:
-		return NotifyIndicatorChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetPhoneId:
-		return GetPhoneIdCancel(aTsyReqHandle);
-	case EMobilePhoneGetSubscriberId:
-		return GetSubscriberIdCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyCallServiceCapsChange:
-		return NotifyCallServiceCapsChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetCallForwardingStatusPhase1:
-	case EMobilePhoneGetCallForwardingStatusPhase2:
-		return GetCallForwardingStatusCancel(aTsyReqHandle);
-	case EMobilePhoneSetCallForwardingStatus:
-		return SetCallForwardingStatusCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyCallForwardingStatusChange:
-		return NotifyCallForwardingStatusChangeCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyCallForwardingActive:
-		return NotifyCallForwardingActiveCancel(aTsyReqHandle);
-	case EMobilePhoneProgramFeatureCode:
-		return ProgramFeatureCodeStringCancel(aTsyReqHandle);
-	case EMobilePhoneGetFeatureCode:
-		return GetFeatureCodeStringCancel(aTsyReqHandle);
-	case EMobilePhoneSendNetworkServiceRequest:
-		return SendNetworkServiceRequestCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyNetworkSelectionSettingChange:
-		return NotifyNetworkSelectionSettingChangeCancel(aTsyReqHandle);
-	case EMobilePhoneSelectNetwork:
-		return SelectNetworkCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyNITZInfoChange:
-		return NotifyNetworkTimeInfoChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetServiceProviderName:
-		return GetServiceProviderNameCancel(aTsyReqHandle);
-	case EMobilePhoneGetIdentityServiceStatus:
-		return GetIdentityServiceStatusCancel(aTsyReqHandle);
-	case EMobilePhoneGetBarringStatusPhase1:
-	case EMobilePhoneGetBarringStatusPhase2:
-		return GetCallBarringCancel(aTsyReqHandle);
-	case EMobilePhoneSetCallBarringStatus:
-		return SetCallBarringStatusCancel(aTsyReqHandle);
-	case EMobilePhoneSetCallBarringPassword:
-		return SetCallBarringPasswordCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyCallBarringStatusChange:
-		return NotifyCallBarringStatusChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetWaitingStatusPhase1:
-	case EMobilePhoneGetWaitingStatusPhase2:
-		return GetCallWaitingCancel(aTsyReqHandle);
-	case EMobilePhoneSetCallWaitingStatus:
-		return SetCallWaitingStatusCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyCallWaitingStatusChange:
-		return NotifyCallWaitingStatusChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetCCBSStatus:
-		return GetCCBSStatusCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyCCBSStatusChange:
-		return NotifyCCBSStatusChangeCancel(aTsyReqHandle);
-	case EMobilePhoneDeactivateCCBS:
-		return DeactivateCCBSCancel(aTsyReqHandle);
-	case EMobilePhoneAcceptCCBSRecall:
-		return AcceptCCBSRecallCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyCCBSRecall:
-		return NotifyCCBSRecallCancel(aTsyReqHandle);
-	case EMobilePhoneGetCompletionRequestsPhase1:
-	case EMobilePhoneGetCompletionRequestsPhase2:
-		return GetCallCompletionCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyAlternatingCallCapsChange:
-		return NotifyAlternatingCallCapsChangeCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyAlternatingCallModeChange:
-		return NotifyAlternatingCallModeChangeCancel(aTsyReqHandle);
-	case EMobilePhoneSetALSLine:
-		return SetALSLineCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyALSLineChange:
-		return NotifyALSLineChangeCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyCostCapsChange:
-		return NotifyCostCapsChangeCancel(aTsyReqHandle);
-	case EMobilePhoneClearCostMeter:
-		return ClearCostMeterCancel(aTsyReqHandle);
-	case EMobilePhoneSetMaxCostMeter:
-		return SetMaxCostMeterCancel(aTsyReqHandle);
-	case EMobilePhoneSetPuct:
-		return SetPuctCancel(aTsyReqHandle);
-	case EMobilePhoneGetCostInfo:
-		return GetCostInfoCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyCostInfoChange:
-		return NotifyCostInfoChangeCancel(aTsyReqHandle);
-	case EMobilePhoneNotifySecurityCapsChange:
-		return NotifySecurityCapsChangeCancel(aTsyReqHandle);
-	 case EMobilePhoneGetLockInfo:
-		return GetLockInfoCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyLockInfoChange:
-		return NotifyLockInfoChangeCancel(aTsyReqHandle);
-	case EMobilePhoneSetLockSetting:
-		return SetLockSettingCancel(aTsyReqHandle);
-	case EMobilePhoneChangeSecurityCode:
-		return ChangeSecurityCodeCancel(aTsyReqHandle);
-	case EMobilePhoneGetSecurityCodeInfo:
-		return GetSecurityCodeInfoCancel(aTsyReqHandle);
-	case EMobilePhoneNotifySecurityCodeInfoChange:
-		return NotifySecurityCodeInfoChangeCancel(aTsyReqHandle);
-	case EMobilePhoneNotifySecurityEvent:
-		return NotifyOnSecurityEventCancel(aTsyReqHandle);
-	case EMobilePhoneVerifySecurityCode:
-		return VerifySecurityCodeCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyMessageWaiting:
-		return NotifyMessageWaitingCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange:
-		return NotifyIccMessageWaitingIndicatorsChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetIccMessageWaitingIndicators:
-		return GetIccMessageWaitingIndicatorsCancel(aTsyReqHandle);
-	case EMobilePhoneSetIccMessageWaitingIndicators:
-		return SetIccMessageWaitingIndicatorsCancel(aTsyReqHandle);
-	case EMobilePhoneGetFdnStatus:
-		return GetFdnStatusCancel(aTsyReqHandle);
-	case EMobilePhoneSetFdnSetting:
-		return SetFdnSettingCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyFdnStatusChange:
-		return NotifyFdnStatusChangeCancel(aTsyReqHandle);
-	case EMobilePhoneSetNetworkSelectionSetting:
-		return SetNetworkSelectionSettingCancel(aTsyReqHandle);
-	case EMobilePhoneSetAlternatingCallMode:
-		return SetAlternatingCallModeCancel(aTsyReqHandle);
-	case EMobilePhoneGetMulticallParams:
-		return GetMulticallParamsCancel(aTsyReqHandle);
-	case EMobilePhoneSetMulticallParams:
-		return SetMulticallParamsCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyMulticallParamsChange:
-		return NotifyMulticallParamsChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetIncomingCallType:
-		return GetIncomingCallTypeCancel(aTsyReqHandle);
-	case EMobilePhoneSetIncomingCallType:
-		return SetIncomingCallTypeCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyIncomingCallTypeChange:
-		return NotifyIncomingCallTypeChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetUUSSetting:
-		return GetUUSSettingCancel(aTsyReqHandle);
-	case EMobilePhoneSetUUSSetting:
-		return SetUUSSettingCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyUUSSettingChange:
-		return NotifyUUSSettingChangeCancel(aTsyReqHandle);
-	case EMobilePhoneSetDefaultPrivacy:
-		return SetDefaultPrivacyCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyDefaultPrivacyChange:
-		return NotifyDefaultPrivacyChangeCancel(aTsyReqHandle);
-	case EMobilePhoneSetMultimediaCallPreference:
-		return SetMultimediaCallPreferenceCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyMultimediaCallPreferenceChange:
-		return NotifyMultimediaCallPreferenceChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetNetworkSecurityLevel:
-		return GetNetworkSecurityLevelCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyNetworkSecurityLevelChange:
-		return NotifyNetworkSecurityLevelChangeCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyUSimAppsSelectionModeChange:
-		return NotifyUSimAppsSelectionModeChangeCancel(aTsyReqHandle);
-	case EMobilePhoneSetUSimApplicationStatus:
-		return SetUSimApplicationStatusCancel(aTsyReqHandle);
-	case EMobilePhoneGetUSimApplicationsInfo:
-		return GetUSimApplicationInfoCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyUSimApplicationsInfoChange:
-		return NotifyUSimApplicationsInfoChangeCancel(aTsyReqHandle);
-	case EMobilePhoneEnumerateUSimApplications:
-		return EnumerateUSimApplicationsCancel(aTsyReqHandle);
-	case EMobilePhoneEnumerateSmartCardApplications:
-		return EnumerateSmartCardApplicationsCancel(aTsyReqHandle);
-	case EMobilePhoneGetSmartCardApplicationInfo:
-		return GetSmartCardApplicationInfoCancel(aTsyReqHandle);
-	case EMobilePhoneNotifySmartCardApplicationInfoChange:
-		return NotifySmartCardApplicationInfoChangeCancel(aTsyReqHandle);
-	case EMobilePhoneSetSmartCardApplicationStatus:
-		return SetSmartCardApplicationStatusCancel(aTsyReqHandle);
-	case EMobilePhoneGetScFileInfo:
-		return GetScFileInfoCancel(aTsyReqHandle);
-	case EMobilePhoneReadScFile:
-		return ReadScFileCancel(aTsyReqHandle);
-	case EMobilePhoneUpdateScFile:
-		return UpdateScFileCancel(aTsyReqHandle);
-	case EMobilePhoneGetCurrentActiveUSimApplication:
-		return GetCurrentActiveUSimApplicationCancel(aTsyReqHandle);
-	case EMobilePhoneSetSSPassword:
-		return SetSSPasswordCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyMailboxNumbersChange:
-		return NotifyMailboxNumbersChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetMailboxNumbers:
-		return GetMailboxNumbersCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyMmsUpdate:
-		return NotifyMmsUpdateCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyMmsConfig:
-		return SetMmsUserConnParamsCancel(aTsyReqHandle);
-	case EMobilePhoneSetMmsUserConnParams:
-		return SetMmsUserConnParamsCancel(aTsyReqHandle);
-	case EMobilePhoneSetMmsUserPreferences:
-		return SetMmsUserPreferencesCancel(aTsyReqHandle);
-	case EMobilePhoneGetMmsConfig:
-		return GetMmsConfigCancel(aTsyReqHandle);
-	case EMobilePhoneGetHomeNetworkSearchPeriod:
-		return GetHomeNetworkSearchPeriodCancel(aTsyReqHandle);
-	case EMobilePhoneGetLastUsedAccessTechnology:
-		return GetLastUsedAccessTechnologyCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyNetworkInvScanChange:
-		return NotifyNetworkInvScanChangeCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyNetworkInvScanEvent:
-		return NotifyNetworkInvScanEventCancel(aTsyReqHandle);
-	case EMobilePhoneGetCallForwardingIndicator:
-		return GetCallForwardingIndicatorCancel(aTsyReqHandle);
-	case EMobilePhoneGetCompMethodName:
-		return GetCompMethodNameCancel(aTsyReqHandle);
-	case EMobilePhoneEnumerateAPNEntries:
-		return EnumerateAPNEntriesCancel(aTsyReqHandle);
-	case EMobilePhoneGetAPNname:
-		return GetAPNnameCancel(aTsyReqHandle);
-	case EMobilePhoneAppendAPNName:
-		return AppendAPNNameCancel(aTsyReqHandle);
-	case EMobilePhoneDeleteAPNName:
-		return DeleteAPNNameCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyAPNListChanged:
-		return NotifyAPNListChangedCancel(aTsyReqHandle);
-	case EMobilePhoneSetAPNControlListServiceStatus:
-		return SetAPNControlListServiceStatusCancel(aTsyReqHandle);
-	case EMobilePhoneGetAPNControlListServiceStatus:
-		return GetAPNControlListServiceStatusCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyAPNControlListServiceStatusChange:
-		return NotifyAPNControlListServiceStatusChangeCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyAirTimeDurationChange:
-		return NotifyAirTimeDurationChangeCancel(aTsyReqHandle);
-	case EMobilePhoneTerminateAllCalls:
-		return TerminateAllCallsCancel(aTsyReqHandle);
-    case EMobilePhoneTerminateActiveCalls:
-        return TerminateActiveCallsCancel(aTsyReqHandle);
-	case EMobilePhoneNotifySendNetworkServiceRequest:
-		return NotifySendNetworkServiceRequestCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyAllSendNetworkServiceRequest:
-		return NotifyAllSendNetworkServiceRequestCancel(aTsyReqHandle);
-	case EMobilePhoneClearBlacklist:
-		return ClearBlacklistCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyDTMFEvent:
-		return NotifyDTMFEventCancel(aTsyReqHandle);
-	case EMobilePhoneGetPersonalisationCaps:
-		return GetPersonalisationCapsCancel(aTsyReqHandle);
-	case EMobilePhoneGetPersonalisationStatus:
-		return GetPersonalisationStatusCancel(aTsyReqHandle);
-	case EMobilePhoneSetPersonalisationStatus:
-		return SetPersonalisationStatusCancel(aTsyReqHandle);
-	case EMobilePhoneGetNetworkName:
-		return GetCurrentNetworkNameCancel(aTsyReqHandle);
-	case EMobilePhoneGetPreferredNetworksPhase1:
-	case EMobilePhoneGetPreferredNetworksPhase2:
-		return GetPreferredNetworksCancel(aTsyReqHandle);
-	case EMobilePhoneStorePreferredNetworksList:
-		return StorePreferredNetworksListCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyStorePreferredNetworksListChange:
-		return NotifyStorePreferredNetworksListChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetCipheringIndicatorStatus:
-		return GetCipheringIndicatorStatusCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyCipheringIndicatorStatus:
-		return NotifyCipheringIndicatorStatusCancel(aTsyReqHandle);
-	case EMobilePhoneSetIdentityServiceStatus:
-		return SetIdentityServiceStatusCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyIdentityServiceStatus:
-		return NotifyIdentityServiceStatusCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyIdentitySuppressionRejected:
-		return NotifyIdentitySuppressionRejectedCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyMulticallIndicatorChange:
-		return NotifyMulticallIndicatorChangeCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyImsAuthorizationInfoChanged:
-		return NotifyImsAuthorizationInfoChangedCancel(aTsyReqHandle);
-	case EMobilePhoneAuthorizationInfoPhase1:
-	case EMobilePhoneAuthorizationInfoPhase2:
-		return GetAuthorizationInfoCancel(aTsyReqHandle);
-	case EMobilePhoneIMSAuthenticate:
-		return GetAuthenticationDataCancel(aTsyReqHandle);
-	case EMobilePhoneSmartCardAuthenticate:
-		return GetSmartCardAuthenticationDataCancel(aTsyReqHandle);
-	case EMobilePhoneGetIccIdentity:
-		return GetIccIdentityCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyAuthenticateDataChange:
-		return NotifyAuthenticateDataChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetAuthenticationParams:
-		return GetAuthenticationParamsCancel(aTsyReqHandle);
-	case EMobilePhoneSetGbaBootstrapParams:
-		return SetGbaBootstrapParamsCancel(aTsyReqHandle);
-	case EMobilePhoneAuthenticationListPhase1:
-	case EMobilePhoneAuthenticationListPhase2:
-		return GetAuthenticationListCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyWlanDataChange:
-		return NotifyWlanDataChangeCancel(aTsyReqHandle);
-	case EMobilePhoneNotifyPreferredWlanSIDListChange:
-		return NotifyPreferredWlanSIDListChangeCancel(aTsyReqHandle);
-	case EMobilePhoneGetWlanData:
-		return GetWlanDataCancel(aTsyReqHandle);
-	case EMobilePhoneSetWlanData:
-		return SetWlanDataCancel(aTsyReqHandle);
-	case EMobilePhoneGetPreferredWlanSIDsPhase1:
-	case EMobilePhoneGetPreferredWlanSIDsPhase2:
-		return GetPreferredWlanSIDsCancel(aTsyReqHandle);
-	case EMobilePhoneStorePreferredWlanSIDList:
-		return StorePreferredWlanSIDListCancel(aTsyReqHandle);
-	
-	default:
-		return CPhoneBase::CancelService(aIpc,aTsyReqHandle);
-		}
-	}
-
-/***********************************************************************************/
-//
-// The following methods are called from ExtFunc and/or CancelService.
-// Each of these will process a TSY request or cancel a TSY request
-// Here, example values are returned or checked within this dummy TSY in order to ensure
-// that the integrity of the data passed to/from client is maintained
-//
-/***********************************************************************************/
-
-TInt CPhoneDMmTsy::GetMultimodeCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetMultimodeCaps called"));
-	*aCaps=DMMTSY_PHONE_MULTIMODE_CAPS;
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetPhoneStoreInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aGetInfo,
-		TDes* aName)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneStoreInfo called"));
-
-	RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *infoPckg = REINTERPRET_CAST(RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *,aGetInfo);
-	RMobilePhoneStore::TMobilePhoneStoreInfoV1 &info = (*infoPckg)();
-
-	if (aName->Compare(DMMTSY_PHONE_STORE_NAME1) == 0)
-		{
-		info.iName=DMMTSY_PHONE_STORE_NAME1;
-		info.iType=DMMTSY_PHONE_STORE_TYPE1;
-		info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES1;
-		info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES1;
-		info.iCaps=DMMTSY_PHONE_STORE_CAPS1;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	else if (aName->Compare(DMMTSY_PHONE_STORE_NAME2) == 0)
-		{
-		info.iName=DMMTSY_PHONE_STORE_NAME2;
-		info.iType=DMMTSY_PHONE_STORE_TYPE2;
-		info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES2;
-		info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES2;
-		info.iCaps=DMMTSY_PHONE_STORE_CAPS2;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetPhoneStoreInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aGetInfo, 
-		RMobilePhone::TPhoneStoreNameAndIccType* aTable)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneStoreInfo called using IccType"));
-
-	RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *infoPckg = REINTERPRET_CAST(RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *,aGetInfo);
-	RMobilePhoneStore::TMobilePhoneStoreInfoV1 &info = (*infoPckg)();
-
-	if ((aTable->iStoreName.Compare(DMMTSY_PHONE_STORE_NAME1) == 0) &&
-				(aTable->iMode.Compare(DMMTSY_PHONEBOOK_TYPE) == 0))
-		{
-		info.iName=DMMTSY_PHONE_STORE_NAME1;
-		info.iType=DMMTSY_PHONE_STORE_TYPE1;
-		info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES1;
-		info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES1;
-		info.iCaps=DMMTSY_PHONE_STORE_CAPS1;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	else if ((aTable->iStoreName.Compare(DMMTSY_PHONE_STORE_NAME2) == 0) &&
-					(aTable->iMode.Compare(DMMTSY_PHONEBOOK_TYPE) == 0))
-		{
-		info.iName=DMMTSY_PHONE_STORE_NAME2;
-		info.iType=DMMTSY_PHONE_STORE_TYPE2;
-		info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES2;
-		info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES2;
-		info.iCaps=DMMTSY_PHONE_STORE_CAPS2;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetPhoneStoreInfoCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneStoreInfoCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetIccAccessCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetIccAccessCaps called"));
-	*aCaps=DMMTSY_PHONE_SIM_ACCESS_CAPS1;
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyIccAccessCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	if (!iNotifyIccAccessCaps++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccAccessCapsChange called"));
-		*aCaps=DMMTSY_PHONE_SIM_ACCESS_CAPS2;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyIccAccessCapsChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccAccessCapsChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetIccIdentity(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TIccIdentity* aIdentity)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetIccIdentity called"));
-	*aIdentity=DMMTSY_PHONE_ICC_ID;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetIccIdentityCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetIccIdentity called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCustomerServiceProfile(const TTsyReqHandle aTsyReqHandle, TDes8* aFile)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCustomerServiceProfile called"));
-	RMobilePhone::TMobilePhoneCspFileV1Pckg* cspV1Pckg = (RMobilePhone::TMobilePhoneCspFileV1Pckg*)aFile;
-	RMobilePhone::TMobilePhoneCspFileV1& cspV1 = (*cspV1Pckg)();
-
-	cspV1.iCallOfferingServices=DMMTSY_PHONE_CSP_BYTE1;
-	cspV1.iCallRestrictionServices=DMMTSY_PHONE_CSP_BYTE2;
-	cspV1.iOtherSuppServices=DMMTSY_PHONE_CSP_BYTE3;
-	cspV1.iCallCompletionServices=DMMTSY_PHONE_CSP_BYTE4;
-	cspV1.iTeleservices=DMMTSY_PHONE_CSP_BYTE5;
-	cspV1.iCphsTeleservices=DMMTSY_PHONE_CSP_BYTE6;
-	cspV1.iCphsFeatures=DMMTSY_PHONE_CSP_BYTE7;
-	cspV1.iNumberIdentServices=DMMTSY_PHONE_CSP_BYTE8;
-	cspV1.iPhase2PlusServices=DMMTSY_PHONE_CSP_BYTE9;
-	cspV1.iValueAddedServices=DMMTSY_PHONE_CSP_BYTE10;
-
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCustomerServiceProfileCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCustomerServiceProfileCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetServiceTable(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneServiceTable* aTable, TDes8* aFile)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable called"));
-	RMobilePhone::TMobilePhoneServiceTableV1Pckg* sstFilePckg = (RMobilePhone::TMobilePhoneServiceTableV1Pckg*) aFile;
-	RMobilePhone::TMobilePhoneServiceTableV1 &sstFile = (*sstFilePckg)();
-		
-	if (*aTable!=DMMTSY_PHONE_SERVICE_TABLE)
-		ReqCompleted(aTsyReqHandle,KErrCancel);
-	else
-		{
-		if(sstFile.ExtensionId()==KEtelExtMultimodeV8)
-			{
-			LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable is using V8table"));
-			RMobilePhone::TMobilePhoneServiceTableV8Pckg* sstV8Pckg = (RMobilePhone::TMobilePhoneServiceTableV8Pckg*)aFile;
-			RMobilePhone::TMobilePhoneServiceTableV8& sstV8 = (*sstV8Pckg)();
-
-			sstV8.iServices1To8=DMMTSY_PHONE_SST_BYTE1;
-			sstV8.iServices9To16=DMMTSY_PHONE_SST_BYTE2;
-			sstV8.iServices17To24=DMMTSY_PHONE_SST_BYTE3;
-			sstV8.iServices25To32=DMMTSY_PHONE_SST_BYTE4;
-			sstV8.iServices33To40=DMMTSY_PHONE_SST_BYTE5;
-			sstV8.iServices41To48=DMMTSY_PHONE_SST_BYTE6;
-			sstV8.iServices49To56=DMMTSY_PHONE_SST_BYTE7;
-			sstV8.iAID=DMMTSY_PHONE_USIM_AID;			
-			sstV8.iServices57To64=DMMTSY_PHONE_SST_BYTE8;
-			sstV8.iServices65To72=DMMTSY_PHONE_SST_BYTE9;
-			}
-			
-		if(sstFile.ExtensionId()==KETelExtMultimodeV2)
-			{
-			LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable is using V2table"));
-			RMobilePhone::TMobilePhoneServiceTableV2Pckg* sstV2Pckg = (RMobilePhone::TMobilePhoneServiceTableV2Pckg*)aFile;
-			RMobilePhone::TMobilePhoneServiceTableV2& sstV2 = (*sstV2Pckg)();
-
-			sstV2.iServices1To8=DMMTSY_PHONE_SST_BYTE1;
-			sstV2.iServices9To16=DMMTSY_PHONE_SST_BYTE2;
-			sstV2.iServices17To24=DMMTSY_PHONE_SST_BYTE3;
-			sstV2.iServices25To32=DMMTSY_PHONE_SST_BYTE4;
-			sstV2.iServices33To40=DMMTSY_PHONE_SST_BYTE5;
-			sstV2.iServices41To48=DMMTSY_PHONE_SST_BYTE6;
-			sstV2.iServices49To56=DMMTSY_PHONE_SST_BYTE7;
-			sstV2.iAID=DMMTSY_PHONE_USIM_AID;
-			}
-		else if(sstFile.ExtensionId()==KETelExtMultimodeV1)
-			{
-			LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable is using V1table"));
-
-			sstFile.iServices1To8=DMMTSY_PHONE_SST_BYTE1;
-			sstFile.iServices9To16=DMMTSY_PHONE_SST_BYTE2;
-			sstFile.iServices17To24=DMMTSY_PHONE_SST_BYTE3;
-			sstFile.iServices25To32=DMMTSY_PHONE_SST_BYTE4;
-			sstFile.iServices33To40=DMMTSY_PHONE_SST_BYTE5;
-			sstFile.iServices41To48=DMMTSY_PHONE_SST_BYTE6;
-			sstFile.iServices49To56=DMMTSY_PHONE_SST_BYTE7;
-			}
-
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetServiceTableCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTableCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetBatteryCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetBatteryCaps called"));
-	*aCaps=DMMTSY_PHONE_BATTERY_CAPS;
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetBatteryInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneBatteryInfoV1* aInfo)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetBatteryInfo called"));
-	aInfo->iStatus=DMMTSY_PHONE_BATTERY_STATUS1;
-	aInfo->iChargeLevel=DMMTSY_PHONE_BATTERY_CHARGE1;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetBatteryInfoCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetBatteryInfoCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyBatteryInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneBatteryInfoV1* aInfo)
-	{
-	if (!iNotifyBatteryInfoChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyBatteryInfoChange called"));
-		aInfo->iStatus=DMMTSY_PHONE_BATTERY_STATUS2;
-		aInfo->iChargeLevel=DMMTSY_PHONE_BATTERY_CHARGE2;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyBatteryInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyBatteryInfoChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetSignalCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetSignalCaps called"));
-	*aCaps=DMMTSY_PHONE_SIGNAL_CAPS;
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetSignalStrength(const TTsyReqHandle aTsyReqHandle, TInt32* aSignalStrength, TInt8* aBar)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetSignalStrength called"));
-	*aSignalStrength=DMMTSY_PHONE_SIGNAL_STRENGTH1;
-	*aBar=DMMTSY_PHONE_SIGNAL_BAR1;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetSignalStrengthCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetSignalStrengthCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifySignalStrengthChange(const TTsyReqHandle aTsyReqHandle, TInt32* aSignalStrength, TInt8* aBar)
-	{
-	if (!iNotifySignalStrengthChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifySignalStrengthChange called"));
-		*aSignalStrength=DMMTSY_PHONE_SIGNAL_STRENGTH2;
-		*aBar=DMMTSY_PHONE_SIGNAL_BAR2;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifySignalStrengthChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifySignalStrengthChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetIndicatorCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aActionCaps, TUint32* aIndCaps)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetIndicatorCaps called"));
-	*aActionCaps=DMMTSY_PHONE_ACTION_INDICATOR_CAPS;
-	*aIndCaps=DMMTSY_PHONE_INDICATOR_CAPS;
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetIndicator(const TTsyReqHandle aTsyReqHandle, TUint32* aIndicator)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetIndicator called"));
-	*aIndicator=DMMTSY_PHONE_INDICATOR1;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetIndicatorCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetIndicatorCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyIndicatorChange(const TTsyReqHandle aTsyReqHandle, TUint32* aIndicator)
-	{
-	if (!iNotifyIndicatorChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyIndicatorChange called"));
-		*aIndicator=DMMTSY_PHONE_INDICATOR2;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyIndicatorChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIndicatorChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetIdentityCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetIdentityCaps called"));
-	*aCaps=DMMTSY_PHONE_IDENTITY_CAPS;
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetPhoneId(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIdentityV1* aId)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneId called"));
-	aId->iManufacturer=DMMTSY_PHONE_MANUFACTURER;
-	aId->iModel=DMMTSY_PHONE_MODEL;
-	aId->iRevision=DMMTSY_PHONE_REVISION;
-	aId->iSerialNumber=DMMTSY_PHONE_SERIAL_NUMBER;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetPhoneIdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneIdCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetSubscriberId(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSubscriberId* aId)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetSubscriberId called"));
-	*aId=DMMTSY_PHONE_SUBSCRIBER_ID;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetSubscriberIdCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetSubscriberIdCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetDTMFCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetDTMFCaps called"));
-	*aCaps=DMMTSY_PHONE_DTMF_CAPS1;
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyDTMFCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	if (!iNotifyDTMFCapsChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFCapsChange called"));
-		*aCaps=DMMTSY_PHONE_DTMF_CAPS2;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyDTMFCapsChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFCapsChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyStopInDTMFString(const TTsyReqHandle aTsyReqHandle)
-	{
-	if (!iNotifyStopInDTMFString++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyStopInDTMFString called"));
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyStopInDTMFStringCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyStopInDTMFStringCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::ContinueDTMFStringSending(const TTsyReqHandle aTsyReqHandle, TBool *aContinue)
-	{
-	TInt err = KErrNone;
-	if (!(*aContinue))
-		err = KErrCorrupt;
-	ReqCompleted(aTsyReqHandle,err);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SendDTMFTones(const TTsyReqHandle aTsyReqHandle, TDesC* aTones)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SendDTMFTones called"));
-	if (aTones->Length()!=DMMTSY_PHONE_SEND_TONES_LENGTH)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else if (aTones->Compare(DMMTSY_PHONE_SEND_TONES)!=KErrNone)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SendDTMFTonesCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SendDTMFTonesCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::ReadDTMFTones(const TTsyReqHandle aTsyReqHandle, TDes* aTones)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::ReadDTMFTones called"));
-	aTones->Copy(DMMTSY_PHONE_READ_TONES);
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::ReadDTMFTonesCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::ReadDTMFTonesCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::StartDTMFTone(const TTsyReqHandle aTsyReqHandle, TChar* aTone)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::StartDTMFTone called"));
-	if (*aTone != DMMTSY_PHONE_SINGLE_TONE)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::StopDTMFTone(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::StopDTMFTone called"));
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetNetworkCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkCaps called"));
-	*aCaps=DMMTSY_PHONE_NETWORK_CAPS;
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCurrentMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkMode* aMode)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentMode called"));
-	*aMode=DMMTSY_PHONE_NETWORK_MODE1;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyModeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkMode* aMode)
-	{
-	if (!iNotifyModeChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyModeChange called"));
-		*aMode=DMMTSY_PHONE_NETWORK_MODE2;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyModeChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyModeChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetHomeNetwork(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkInfoPckg)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetwork called"));
-	RMobilePhone::TMobilePhoneNetworkInfoV1Pckg* networkInfoV1Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV1Pckg*)aNetworkInfoPckg;
-	RMobilePhone::TMobilePhoneNetworkInfoV1& networkInfoV1 = (*networkInfoV1Pckg)();
-	
-	networkInfoV1.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
-	networkInfoV1.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
-	networkInfoV1.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
-	networkInfoV1.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
-	networkInfoV1.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
-	networkInfoV1.iCdmaSID=DMMTSY_PHONE_HOME_NETWORK_SID;
-	networkInfoV1.iAnalogSID=DMMTSY_PHONE_HOME_NETWORK_SID;
-	networkInfoV1.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
-	networkInfoV1.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
-	networkInfoV1.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
-
-	if(networkInfoV1.ExtensionId() == KEtelExtMultimodeV8)
-	{
-		RMobilePhone::TMobilePhoneNetworkInfoV8Pckg* networkInfoV8Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV8Pckg*)aNetworkInfoPckg;
-		RMobilePhone::TMobilePhoneNetworkInfoV8& networkInfoV8 = (*networkInfoV8Pckg)();
-		networkInfoV8.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH;
-		networkInfoV8.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY;
-		networkInfoV8.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY;
-		networkInfoV8.iHsupaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSUPA_AVAILABILITY;
-	}
-
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetHomeNetworkCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetworkCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCurrentNetwork(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkInfoPckg, RMobilePhone::TMobilePhoneLocationAreaV1* aArea)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetwork called"));
-	RMobilePhone::TMobilePhoneNetworkInfoV1Pckg* networkInfoV1Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV1Pckg*)aNetworkInfoPckg;
-	RMobilePhone::TMobilePhoneNetworkInfoV1& networkInfoV1 = (*networkInfoV1Pckg)();
-	
-	if(networkInfoV1.ExtensionId() == KETelExt3rdPartyV1)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkISV called"));
-		RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg* networkInfoISVPckg = (RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg*)aNetworkInfoPckg;
-		RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1& networkInfoISV = (*networkInfoISVPckg)();
-
-		networkInfoISV.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE_ISV;
-		networkInfoISV.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS_ISV;
-		networkInfoISV.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND_ISV;
-		networkInfoISV.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC_ISV;
-		networkInfoISV.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID_ISV;
-		networkInfoISV.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG_ISV;
-		networkInfoISV.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME_ISV;
-		networkInfoISV.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME_ISV;
-		networkInfoISV.iCdmaSID=DMMTSY_PHONE_CURRENT_NETWORK_CDMASID_ISV;
-		networkInfoISV.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_UTRAN_ISV;
-		
-		if(aArea)
-			{
-			aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN_ISV;
-			aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC_ISV;
-			aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID_ISV;
-			
-			}	
-		
-		}
-	else
-		{
-		if(networkInfoV1.ExtensionId() == KEtelExtMultimodeV8)
-			{
-			RMobilePhone::TMobilePhoneNetworkInfoV8Pckg* networkInfoV8Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV8Pckg*)aNetworkInfoPckg;
-			RMobilePhone::TMobilePhoneNetworkInfoV8& networkInfoV8 = (*networkInfoV8Pckg)();
-			networkInfoV8.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1;
-			
-			networkInfoV8.iHsdpaAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY1;
-			networkInfoV8.iEgprsAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY1;
-			networkInfoV8.iHsupaAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY1;
-			}
-			
-
-		else if(networkInfoV1.ExtensionId() == KEtelExtMultimodeV5)
-			{
-			RMobilePhone::TMobilePhoneNetworkInfoV5Pckg* networkInfoV5Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV5Pckg*)aNetworkInfoPckg;
-			RMobilePhone::TMobilePhoneNetworkInfoV5& networkInfoV5 = (*networkInfoV5Pckg)();
-			networkInfoV5.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_GSM;
-			
-			networkInfoV5.iHsdpaAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY;
-			networkInfoV5.iEgprsAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY;
-			}
-			
-		else if(networkInfoV1.ExtensionId() == KETelExtMultimodeV2)
-			{
-			RMobilePhone::TMobilePhoneNetworkInfoV2Pckg* networkInfoV2Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV2Pckg*)aNetworkInfoPckg;
-			RMobilePhone::TMobilePhoneNetworkInfoV2& networkInfoV2 = (*networkInfoV2Pckg)();
-			networkInfoV2.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_GSM;
-			}
-		
-		networkInfoV1.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1;
-		networkInfoV1.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1;
-		networkInfoV1.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1;
-		networkInfoV1.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1;
-		networkInfoV1.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1;
-		networkInfoV1.iCdmaSID=DMMTSY_PHONE_CURRENT_NETWORK_SID;
-		networkInfoV1.iAnalogSID=DMMTSY_PHONE_CURRENT_NETWORK_SID;
-		networkInfoV1.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1;
-		networkInfoV1.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1;
-		networkInfoV1.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1;
-
-		if(aArea)
-			{
-			aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN;
-			aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC1;
-			aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID1;
-			}	
-		}
-
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCurrentNetworkCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCurrentNetworkChange(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkInfoPckg, RMobilePhone::TMobilePhoneLocationAreaV1* aArea)
-	{
-	if (!iNotifyCurrentNetworkChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCurrentNetworkChange called"));
-
-		RMobilePhone::TMobilePhoneNetworkInfoV1Pckg* networkInfoPckg = (RMobilePhone::TMobilePhoneNetworkInfoV1Pckg*)aNetworkInfoPckg;
-		RMobilePhone::TMobilePhoneNetworkInfoV1& networkInfo = (*networkInfoPckg)();
-		
-		if(networkInfo.ExtensionId() == KETelExt3rdPartyV1)
-			{
-			LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkISV called"));
-			RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg* networkInfoISVPckg = (RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg*)aNetworkInfoPckg;
-			RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1& networkInfoISV = (*networkInfoISVPckg)();
-
-			networkInfoISV.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE_ISV2;
-			networkInfoISV.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS_ISV2;
-			networkInfoISV.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND_ISV2;
-			networkInfoISV.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC_ISV2;
-			networkInfoISV.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID_ISV2;
-			networkInfoISV.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG_ISV2;
-			networkInfoISV.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME_ISV2;
-			networkInfoISV.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME_ISV2;
-			networkInfoISV.iCdmaSID=DMMTSY_PHONE_CURRENT_NETWORK_CDMASID_ISV2;
-			networkInfoISV.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_UTRAN_ISV2;
-					
-			aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN_ISV2;
-			aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC_ISV2;
-			aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID_ISV2;		
-			
-			}
-		else
-			{
-			if(networkInfo.ExtensionId() == KETelExtMultimodeV2)
-				{
-				RMobilePhone::TMobilePhoneNetworkInfoV2Pckg* networkInfoV2Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV2Pckg*)aNetworkInfoPckg;
-				RMobilePhone::TMobilePhoneNetworkInfoV2& networkInfoV2 = (*networkInfoV2Pckg)();
-				networkInfoV2.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_GSM;
-				//reset for V1
-				iNotifyCurrentNetworkChange = 0;
-				}		
-
-			if(networkInfo.ExtensionId() == KEtelExtMultimodeV8)
-				{
-				RMobilePhone::TMobilePhoneNetworkInfoV8Pckg* networkInfoV8Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV8Pckg*)aNetworkInfoPckg;
-				RMobilePhone::TMobilePhoneNetworkInfoV8& networkInfoV8 = (*networkInfoV8Pckg)();
-				networkInfoV8.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2;
-				//reset for V8
-				networkInfoV8.iHsdpaAvailableIndicator= DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY2;
-				networkInfoV8.iEgprsAvailableIndicator= DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY2;
-				networkInfoV8.iHsupaAvailableIndicator= DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY2;
-				iNotifyCurrentNetworkChange = 0;
-				}		
-
-			networkInfo.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2;
-			networkInfo.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2;
-			networkInfo.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2;
-			networkInfo.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2;
-			networkInfo.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2;
-			networkInfo.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2;
-			networkInfo.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2;
-			networkInfo.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2;
-
-			if(aArea)
-				{
-				aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN;
-				aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC2;
-				aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID2;
-				}
-				
-
-			}
-		//reset for etel3rd
-		iNotifyCurrentNetworkChange = 0;
-
-		AddDelayedReq(aTsyReqHandle,this);	
-		}
-	else
-		{
-		//reset for multiple completion test
-		iNotifyCurrentNetworkChange = 0;
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCurrentNetworkChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCurrentNetworkChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCellInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aCellInfoPckg)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCellInfo called"));
-	RMobilePhone::TMobilePhoneCellInfoV9Pckg* cellInfoPckg = (RMobilePhone::TMobilePhoneCellInfoV9Pckg*)aCellInfoPckg;
-	RMobilePhone::TMobilePhoneCellInfoV9& cellInfo = (*cellInfoPckg)();
-	
-	cellInfo.iMode = DMMTSY_PHONE_CELL_INFO_MODE;
-	cellInfo.iCellId = DMMTSY_PHONE_CELL_INFO_CELLID;
-	cellInfo.iTimingAdvance = DMMTSY_PHONE_CELL_INFO_TIMING_ADVANCE;	
-	cellInfo.iStatus = DMMTSY_PHONE_CELL_INFO_STATUS;
-	
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCellInfoCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCellInfoCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCellInfoChange(const TTsyReqHandle aTsyReqHandle, TDes8* aCellInfoPckg)
-	{
-	if (!iNotifyCellInfoChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCellInfoChange called"));
-
-		RMobilePhone::TMobilePhoneCellInfoV9Pckg* cellInfoPckg = (RMobilePhone::TMobilePhoneCellInfoV9Pckg*)aCellInfoPckg;
-		RMobilePhone::TMobilePhoneCellInfoV9& cellInfo = (*cellInfoPckg)();
-	
-		cellInfo.iMode = DMMTSY_PHONE_CELL_INFO_MODE2;
-		cellInfo.iCellId = DMMTSY_PHONE_CELL_INFO_CELLID2;
-		cellInfo.iTimingAdvance = DMMTSY_PHONE_CELL_INFO_TIMING_ADVANCE2;
-		cellInfo.iStatus = DMMTSY_PHONE_CELL_INFO_STATUS2;
-		
-		AddDelayedReq(aTsyReqHandle,this);	
-		}
-	else
-		{
-		//reset for multiple completion test
-		iNotifyCellInfoChange = 0;
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCellInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCellInfoChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetNetworkRegistrationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneRegistrationStatus* aStatus)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkRegistrationStatus called"));
-	*aStatus=DMMTSY_PHONE_REGISTRATION_STATUS1;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetNetworkRegistrationStatusCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkRegistrationStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyNetworkRegistrationStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneRegistrationStatus* aStatus)
-	{
-	if(!iNotifyNetworkRegistrationStatusChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkRegistrationStatusChange called"));
-		*aStatus=DMMTSY_PHONE_REGISTRATION_STATUS2;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyNetworkRegistrationStatusChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkRegistrationStatusChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetDetectedNetworksPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksPhase1 called"));
-	TInt ret=KErrNone;
-	TInt leaveCode=KErrNone;
-	TRAP(leaveCode, ret=ProcessGetDetectedNetworksPhase1L(aTsyReqHandle, aClient, aBufSize););
-	if (leaveCode != KErrNone)
-		ReqCompleted(aTsyReqHandle,leaveCode);
-	return ret;
-	}
-
-TInt CPhoneDMmTsy::ProcessGetDetectedNetworksPhase1L(const TTsyReqHandle aTsyReqHandle, 
-													 RMobilePhone::TClientId* aClient, 
-													 TInt* aBufSize)
-	{
-	// retrieve detected networks from phone, 
-	// store each network as a list entry,
-	// stream the list and then return size of this buffer to client
-	CMobilePhoneNetworkList* list=CMobilePhoneNetworkList::NewL();
-	CleanupStack::PushL(list);
-
-	RMobilePhone::TMobilePhoneNetworkInfoV1 entry;
-
-	// fill up an example list
-	for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++)
-		{
-		switch (index)
-			{
-		case 0:
-			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1;
-			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1;
-			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1;
-			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1;
-			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1;
-			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1;
-			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1;
-			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1;
-			break;
-		case 1:
-			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2;
-			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2;
-			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2;
-			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2;
-			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2;
-			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2;
-			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2;
-			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2;
-			break;
-		case 2:
-		default:
-			entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
-			entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
-			entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
-			entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
-			entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
-			entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
-			entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
-			entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
-			break;
-			}
-			// Add the entry into the list, at the next empty location
-			list->AddEntryL(entry);
-		}
-
-	// Store the streamed list and the client ID
-	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle);
-	CleanupStack::PushL(read);
-	
-	read->iListBuf = list->StoreLC();
-	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
-	
-	iGetDetectedNetworks->AppendL(read);
-	CleanupStack::Pop(); // pop the CListReadAllAttempt
-	
-	// return the CBufBase’s size to client
-	*aBufSize=(read->iListBuf)->Size();
-	
-	// Complete first phase of list retrieval
-	AddDelayedReq(aTsyReqHandle,this);
-	CleanupStack::PopAndDestroy(); // pop&destroy list
-	return KErrNone;
-	}
-
-
-
-TInt CPhoneDMmTsy::GetDetectedNetworksPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksPhase2 called"));
-	CListReadAllAttempt* read=NULL;
-	// Find the get detected network attempt from this client
-	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
-		{
-		read = iGetDetectedNetworks->At(i);
-		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
-		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
-			{
-			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
-			// Copy the streamed list to the client
-			aBuf->Copy(bufPtr);
-			delete read;
-			iGetDetectedNetworks->Delete(i);
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			return KErrNone;
-			}
-		}
-	// Should handle error case of not finding the matching client from read all phase 1
-	return KErrNotFound;
-	}
-
-TInt CPhoneDMmTsy::GetDetectedNetworksCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	// Remove the read all attempt from iGetDetectedNetworks
-	CListReadAllAttempt* read=NULL;
-	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
-		{
-		read = iGetDetectedNetworks->At(i);
-		if (read->iReqHandle == aTsyReqHandle)
-			{
-			delete read;
-			iGetDetectedNetworks->Delete(i);
-			break;
-			}
-		}
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetDetectedNetworksV2Phase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV2Phase1 called"));
-	TInt ret=KErrNone;
-	TInt leaveCode=KErrNone;
-	TRAP(leaveCode, ret=ProcessGetDetectedNetworksV2Phase1L(aTsyReqHandle, aClient, aBufSize););
-	if (leaveCode != KErrNone)
-		ReqCompleted(aTsyReqHandle,leaveCode);
-	return ret;
-	}
-
-TInt CPhoneDMmTsy::ProcessGetDetectedNetworksV2Phase1L(const TTsyReqHandle aTsyReqHandle, 
-													 RMobilePhone::TClientId* aClient, 
-													 TInt* aBufSize)
-	{
-	// Retrieve detected networks from phone, 
-	// Store each network as a list entry of type TMobilePhoneNetworkInfoV2,
-	// Stream the list and then return size of this buffer to client
-	CMobilePhoneNetworkListV2* list=CMobilePhoneNetworkListV2::NewL();
-	CleanupStack::PushL(list);
-
-	RMobilePhone::TMobilePhoneNetworkInfoV2 entry;
-
-	// fill up an example list
-	for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++)
-		{
-		switch (index)
-			{
-		case 0:
-			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1;
-			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1;
-			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1;
-			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1;
-			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1;
-			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1;
-			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1;
-			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1;
-			entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1;
-			break;
-		case 1:
-			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2;
-			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2;
-			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2;
-			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2;
-			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2;
-			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2;
-			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2;
-			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2;
-			entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2;
-			break;
-		case 2:
-			entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
-			entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
-			entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
-			entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
-			entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
-			entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
-			entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
-			entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
-			entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH;
-			break;
-		case 3:
-		default:
-			entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
-			entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
-			entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
-			entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
-			entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
-			entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
-			entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
-			entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
-			entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH3;
-			break;
-			}
-			// Add the entry into the list, at the next empty location
-			list->AddEntryL(entry);
-		}
-
-	// Store the streamed list and the client ID
-	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle);
-	CleanupStack::PushL(read);
-	
-	read->iListBuf = list->StoreLC();
-	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
-	
-	iGetDetectedNetworks->AppendL(read);
-	CleanupStack::Pop(); // pop the CListReadAllAttempt
-	
-	// return the CBufBase’s size to client
-	*aBufSize=(read->iListBuf)->Size();
-	
-	// Complete first phase of list retrieval
-	AddDelayedReq(aTsyReqHandle,this);
-	CleanupStack::PopAndDestroy(); // pop&destroy list
-	return KErrNone;
-	}
-
-
-
-TInt CPhoneDMmTsy::GetDetectedNetworksV2Phase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV2Phase2 called"));
-	CListReadAllAttempt* read=NULL;
-	// Find the get detected network attempt from this client
-	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
-		{
-		read = iGetDetectedNetworks->At(i);
-		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
-		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
-			{
-			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
-			// Copy the streamed list to the client
-			aBuf->Copy(bufPtr);
-			delete read;
-			iGetDetectedNetworks->Delete(i);
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			return KErrNone;
-			}
-		}
-	// Should handle error case of not finding the matching client from read all phase 1
-	return KErrNotFound;
-	}
-
-TInt CPhoneDMmTsy::GetDetectedNetworksV2Cancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV2Cancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	// Remove the read all attempt from iGetDetectedNetworks
-	CListReadAllAttempt* read=NULL;
-	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
-		{
-		read = iGetDetectedNetworks->At(i);
-		if (read->iReqHandle == aTsyReqHandle)
-			{
-			delete read;
-			iGetDetectedNetworks->Delete(i);
-			break;
-			}
-		}
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-//
-// GetDetectedNetworksV8 //
-//
-TInt CPhoneDMmTsy::GetDetectedNetworksV8Phase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV8Phase1 called"));
-	TInt ret=KErrNone;
-	TRAPD(leaveCode, ret=ProcessGetDetectedNetworksV8Phase1L(aTsyReqHandle, aClient, aBufSize););
-	if (leaveCode != KErrNone)
-		ReqCompleted(aTsyReqHandle,leaveCode);
-	return ret;
-	}
-
-TInt CPhoneDMmTsy::ProcessGetDetectedNetworksV8Phase1L(const TTsyReqHandle aTsyReqHandle, 
-					RMobilePhone::TClientId* aClient, TInt* aBufSize)
-	{
-	// Retrieve detected networks from phone, 
-	// Store each network as a list entry of type TMobilePhoneNetworkInfoV8,
-	// Stream the list and then return size of this buffer to client
-	CMobilePhoneNetworkListV8* list=CMobilePhoneNetworkListV8::NewL();
-	CleanupStack::PushL(list);
-
-	RMobilePhone::TMobilePhoneNetworkInfoV8 entry;
-
-	// fill up an example list
-	for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++)
-		{
-		switch (index)
-			{
-		case 0:
-			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1;
-			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1;
-			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1;
-			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1;
-			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1;
-			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1;
-			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1;
-			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1;
-			entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1;
-			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY1;
-			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY1;
-			entry.iHsupaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY1;
-			break;
-		case 1:
-			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2;
-			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2;
-			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2;
-			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2;
-			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2;
-			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2;
-			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2;
-			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2;
-			entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2;
-			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY2;
-			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY2;
-			entry.iHsupaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY2;
-			break;
-		case 2:
-			entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
-			entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
-			entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
-			entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
-			entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
-			entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
-			entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
-			entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
-			entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH;
-			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY;
-			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY;
-			entry.iHsupaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSUPA_AVAILABILITY;
-			break;
-		case 3:
-		default:
-			entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
-			entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
-			entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
-			entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
-			entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
-			entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
-			entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
-			entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
-			entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH3;
-			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY;
-			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY;
-			entry.iHsupaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSUPA_AVAILABILITY;
-			break;
-			}
-			// Add the entry into the list, at the next empty location
-			list->AddEntryL(entry);
-		}
-	// Store the streamed list and the client ID
-	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle);
-	CleanupStack::PushL(read);
-	
-	read->iListBuf = list->StoreLC();
-	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
-	
-	iGetDetectedNetworks->AppendL(read);
-	CleanupStack::Pop(); // pop the CListReadAllAttempt
-	
-	// return the CBufBase’s size to client
-	*aBufSize=(read->iListBuf)->Size();
-	
-	// Complete first phase of list retrieval
-	AddDelayedReq(aTsyReqHandle,this);
-	CleanupStack::PopAndDestroy(); // pop&destroy list
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetDetectedNetworksV8Phase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV8Phase2 called"));
-	CListReadAllAttempt* read=NULL;
-	// Find the get detected network attempt from this client
-	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
-		{
-		read = iGetDetectedNetworks->At(i);
-		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
-		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
-			{
-			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
-			// Copy the streamed list to the client
-			aBuf->Copy(bufPtr);
-			delete read;
-			iGetDetectedNetworks->Delete(i);
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			return KErrNone;
-			}
-		}
-	// Should handle error case of not finding the matching client from read all phase 1
-	return KErrNotFound;
-	}
-
-TInt CPhoneDMmTsy::GetDetectedNetworksV8Cancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV8Cancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	// Remove the read all attempt from iGetDetectedNetworks
-	CListReadAllAttempt* read=NULL;
-	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
-		{
-		read = iGetDetectedNetworks->At(i);
-		if (read->iReqHandle == aTsyReqHandle)
-			{
-			delete read;
-			iGetDetectedNetworks->Delete(i);
-			break;
-			}
-		}
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-
-//
-// GetDetectedNetworksV5 //
-//
-TInt CPhoneDMmTsy::GetDetectedNetworksV5Phase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV5Phase1 called"));
-	TInt ret=KErrNone;
-	TInt leaveCode=KErrNone;
-	TRAP(leaveCode, ret=ProcessGetDetectedNetworksV5Phase1L(aTsyReqHandle, aClient, aBufSize););
-	if (leaveCode != KErrNone)
-		ReqCompleted(aTsyReqHandle,leaveCode);
-	return ret;
-	}
-
-TInt CPhoneDMmTsy::ProcessGetDetectedNetworksV5Phase1L(const TTsyReqHandle aTsyReqHandle, 
-													 RMobilePhone::TClientId* aClient, 
-													 TInt* aBufSize)
-	{
-	// Retrieve detected networks from phone, 
-	// Store each network as a list entry of type TMobilePhoneNetworkInfoV2,
-	// Stream the list and then return size of this buffer to client
-	CMobilePhoneNetworkListV5* list=CMobilePhoneNetworkListV5::NewL();
-	CleanupStack::PushL(list);
-
-	RMobilePhone::TMobilePhoneNetworkInfoV5 entry;
-
-	// fill up an example list
-	for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++)
-		{
-		switch (index)
-			{
-		case 0:
-			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1;
-			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1;
-			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1;
-			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1;
-			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1;
-			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1;
-			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1;
-			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1;
-			entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1;
-			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY1;
-			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY1;
-			break;
-		case 1:
-			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2;
-			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2;
-			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2;
-			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2;
-			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2;
-			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2;
-			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2;
-			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2;
-			entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2;
-			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY2;
-			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY2;
-			break;
-		case 2:
-			entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
-			entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
-			entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
-			entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
-			entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
-			entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
-			entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
-			entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
-			entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH;
-			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY;
-			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY;
-			break;
-		case 3:
-		default:
-			entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
-			entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
-			entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
-			entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
-			entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
-			entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
-			entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
-			entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
-			entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH3;
-			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY;
-			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY;
-			break;
-			}
-			// Add the entry into the list, at the next empty location
-			list->AddEntryL(entry);
-		}
-
-	// Store the streamed list and the client ID
-	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle);
-	CleanupStack::PushL(read);
-	
-	read->iListBuf = list->StoreLC();
-	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
-	
-	iGetDetectedNetworks->AppendL(read);
-	CleanupStack::Pop(); // pop the CListReadAllAttempt
-	
-	// return the CBufBase’s size to client
-	*aBufSize=(read->iListBuf)->Size();
-	
-	// Complete first phase of list retrieval
-	AddDelayedReq(aTsyReqHandle,this);
-	CleanupStack::PopAndDestroy(); // pop&destroy list
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetDetectedNetworksV5Phase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV5Phase2 called"));
-	CListReadAllAttempt* read=NULL;
-	// Find the get detected network attempt from this client
-	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
-		{
-		read = iGetDetectedNetworks->At(i);
-		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
-		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
-			{
-			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
-			// Copy the streamed list to the client
-			aBuf->Copy(bufPtr);
-			delete read;
-			iGetDetectedNetworks->Delete(i);
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			return KErrNone;
-			}
-		}
-	// Should handle error case of not finding the matching client from read all phase 1
-	return KErrNotFound;
-	}
-
-TInt CPhoneDMmTsy::GetDetectedNetworksV5Cancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV5Cancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	// Remove the read all attempt from iGetDetectedNetworks
-	CListReadAllAttempt* read=NULL;
-	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
-		{
-		read = iGetDetectedNetworks->At(i);
-		if (read->iReqHandle == aTsyReqHandle)
-			{
-			delete read;
-			iGetDetectedNetworks->Delete(i);
-			break;
-			}
-		}
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-//
-
-TInt CPhoneDMmTsy::GetNetworkSelectionSetting(const TTsyReqHandle aTsyReqHandle, TDes8* aSetting)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkSelectionSetting called"));
-	RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg* selectionPckg = (RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg*)aSetting;
-	RMobilePhone::TMobilePhoneNetworkSelectionV1& selection = (*selectionPckg)();
-
-	selection.iMethod = DMMTSY_PHONE_NETWORK_SELECTION_METHOD1;
-	selection.iBandClass = DMMTSY_PHONE_NETWORK_SELECTION_BAND1;
-	selection.iOperationMode = DMMTSY_PHONE_NETWORK_SELECTION_OPERATION1;
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetNetworkSelectionSetting(const TTsyReqHandle aTsyReqHandle, TDes8* aSetting)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetNetworkSelectionSetting called"));
-	RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg* selectionPckg = (RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg*)aSetting;
-	RMobilePhone::TMobilePhoneNetworkSelectionV1& selection = (*selectionPckg)();
-
-	if ((selection.iMethod != DMMTSY_PHONE_NETWORK_SELECTION_METHOD2) ||
-	    (selection.iBandClass != DMMTSY_PHONE_NETWORK_SELECTION_BAND2) ||
-	    (selection.iOperationMode != DMMTSY_PHONE_NETWORK_SELECTION_OPERATION2))
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetNetworkSelectionSettingCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetNetworkSelectionSettingCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyNetworkSelectionSettingChange(const TTsyReqHandle aTsyReqHandle, TDes8* aSetting)
-	{
-	if(!iNotifyNetworkSelectionSettingChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSelectionSettingChange called"));
-
-		RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg* selectionPckg = (RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg*)aSetting;
-		RMobilePhone::TMobilePhoneNetworkSelectionV1& selection = (*selectionPckg)();
-		
-		selection.iMethod = DMMTSY_PHONE_NETWORK_SELECTION_METHOD1;
-		selection.iBandClass = DMMTSY_PHONE_NETWORK_SELECTION_BAND1;
-		selection.iOperationMode = DMMTSY_PHONE_NETWORK_SELECTION_OPERATION1;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyNetworkSelectionSettingChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSelectionSettingChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SelectNetwork(const TTsyReqHandle aTsyReqHandle, 
-								 TBool* aIsManual, 
-								 RMobilePhone::TMobilePhoneNetworkManualSelection* aManualSelection)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SelectNetwork called"));
-	
-	if (*aIsManual==DMMTSY_PHONE_MANUAL_SELECTION)
-		{
-		if ((aManualSelection->iCountry != DMMTSY_PHONE_COUNTRY_ID) ||
-		    (aManualSelection->iNetwork != DMMTSY_PHONE_NETWORK_ID))
-
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		else
-			AddDelayedReq(aTsyReqHandle,this);
-		}
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SelectNetworkCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SelectNetworkCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetNetworkTimeInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNITZ* aDateTime)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkTimeInfo called"));
-
-	aDateTime->iNitzFieldsUsed = DMMTSY_PHONE_NWTINFO_NITZ_USED;
-	aDateTime->Set(DMMTSY_PHONE_NWTINFO_YEAR,DMMTSY_PHONE_NWTINFO_MONTH,DMMTSY_PHONE_NWTINFO_DAY,
-		DMMTSY_PHONE_NWTINFO_HOUR, DMMTSY_PHONE_NWTINFO_MINUTE, DMMTSY_PHONE_NWTINFO_SECOND,
-		DMMTSY_PHONE_NWTINFO_MICRO);
-	aDateTime->iTimeZone = DMMTSY_PHONE_NWTINFO_TIMEZONE;
-	aDateTime->iLongNetworkId = DMMTSY_PHONE_NWTINFO_LONG_ID;
-	aDateTime->iShortNetworkId = DMMTSY_PHONE_NWTINFO_SHORT_ID;
-	aDateTime->iDST = DMMTSY_PHONE_NWTINFO_DST;
-
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyNetworkTimeInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNITZ* aDateTime)
-	{
-	if(!iNotifyNetworkTimeInfoChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkTimeInfoChange called"));
-
-		aDateTime->iNitzFieldsUsed = DMMTSY_PHONE_NWTINFO_NITZ_USED;
-		aDateTime->Set(DMMTSY_PHONE_NWTINFO_YEAR,DMMTSY_PHONE_NWTINFO_MONTH,DMMTSY_PHONE_NWTINFO_DAY,
-			DMMTSY_PHONE_NWTINFO_HOUR, DMMTSY_PHONE_NWTINFO_MINUTE, DMMTSY_PHONE_NWTINFO_SECOND,
-			DMMTSY_PHONE_NWTINFO_MICRO);
-		aDateTime->iTimeZone = DMMTSY_PHONE_NWTINFO_TIMEZONE;
-		aDateTime->iLongNetworkId = DMMTSY_PHONE_NWTINFO_LONG_ID;
-		aDateTime->iShortNetworkId = DMMTSY_PHONE_NWTINFO_SHORT_ID;
-		aDateTime->iDST = DMMTSY_PHONE_NWTINFO_DST;
-
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyNetworkTimeInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkTimeInfoChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-
-TInt CPhoneDMmTsy::GetServiceProviderName(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneServiceProviderNameV2* aName)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetServiceProviderName called"));
-
-	aName->iDisplayReq = DMMTSY_PHONE_DISPREQ;
-	aName->iSPName = DMMTSY_PHONE_SPN_NAME;
-	aName->iPLMNField = DMMTSY_PHONE_PLMN_FIELD;
-
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetServiceProviderNameCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetServiceProviderNameCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetDefaultPrivacy(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePrivacy* aSetting)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetDefaultPrivacy called"));
-
-	*aSetting = DMMTSY_PHONE_PRIVACY_SETTING1;
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetDefaultPrivacy(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePrivacy* aSetting)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetDefaultPrivacy called"));
-
-	if (*aSetting != DMMTSY_PHONE_PRIVACY_SETTING1)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetDefaultPrivacyCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetDefaultPrivacyCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyDefaultPrivacyChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePrivacy* aSetting)
-	{
-	if(!iNotifyDefaultPrivacyChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyDefaultPrivacyChange called"));
-
-		*aSetting = DMMTSY_PHONE_PRIVACY_SETTING2;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyDefaultPrivacyChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyDefaultPrivacyChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCallServiceCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCallServiceCaps called"));
-	*aCaps=DMMTSY_PHONE_CALL_SERVICE_CAPS1;
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCallServiceCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	if (!iNotifyCallServiceCaps++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallServiceCapsChange called"));
-		*aCaps=DMMTSY_PHONE_CALL_SERVICE_CAPS2;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCallServiceCapsChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallServiceCapsChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::ProgramFeatureCodeString(const TTsyReqHandle aTsyReqHandle, 
-											TDesC* aFCString, RMobilePhone::TNetworkServiceAndAction *aFeatureCode)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::ProgramFeatureCodeString called"));
-	if ((aFCString->Compare(DMMTSY_PHONE_FEATURE_CODE) != 0) ||
-	    (aFeatureCode->iService != DMMTSY_PHONE_NETWORK_SERVICE) || 
-		(aFeatureCode->iAction != DMMTSY_PHONE_NETWORK_SERVICE_ACTION))
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::ProgramFeatureCodeStringCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::ProgramFeatureCodeStringCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetFeatureCodeString(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TNetworkServiceAndAction *aFeatureCode, TDes *aFCString)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetFeatureCodeString called"));
-	if	(aFeatureCode->iService!=DMMTSY_PHONE_NETWORK_SERVICE2 || aFeatureCode->iAction!=DMMTSY_PHONE_NETWORK_SERVICE_ACTION2)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		{
-		*aFCString=DMMTSY_PHONE_FEATURE_CODE2;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetFeatureCodeStringCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetFeatureCodeStringCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SendNetworkServiceRequest(const TTsyReqHandle aTsyReqHandle, TDesC* aString)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SendNetworkServiceRequest called"));
-	if (aString->Compare(DMMTSY_PHONE_NETWORK_SERVICE_REQUEST)!=0)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SendNetworkServiceRequestCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SendNetworkServiceRequestCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCallForwardingStatusPhase1(const TTsyReqHandle aTsyReqHandle, 
-												 CRetrieveMobilePhoneCFList::TGetCallForwardingRequest* aReqData, 
-												 TInt* aBufSize)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingStatusPhase1 called"));
-	TInt ret=KErrNone;
-
-	if ( ( (aReqData->iCondition==DMMTSY_PHONE_CF_CONDITION_CFU) &&
-		   (aReqData->iLocation==DMMTSY_PHONE_CF_LOCATION) &&
-		   (aReqData->iServiceGroup==DMMTSY_PHONE_CF_SERVICE_GROUP_ALL) ) ||
-		 ( (aReqData->iCondition==DMMTSY_PHONE_CF_CONDITION_CFU) &&
-		   (aReqData->iServiceGroup==DMMTSY_PHONE_CF_SERVICE_GROUP_FAX) &&
-    	   (aReqData->iLocation==DMMTSY_PHONE_CF_CACHELOCATION) ) )		
-		{
-		TInt leaveCode=KErrNone;
-		TRAP(leaveCode, ret=ProcessGetCallForwardingStatusPhase1L(aTsyReqHandle, aReqData, aBufSize););
-		if (leaveCode != KErrNone)
-			ReqCompleted(aTsyReqHandle,leaveCode);
-		}
-		else
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	return ret;
-	}
-
-TInt CPhoneDMmTsy::ProcessGetCallForwardingStatusPhase1L(const TTsyReqHandle aTsyReqHandle, 
-														 CRetrieveMobilePhoneCFList::TGetCallForwardingRequest* aReqData, 
-														 TInt* aBufSize)
-	{
-	// retrieve call forwarding status of each line from phone, 
-	// store each CF status response as a list entry,
-	// stream the list and then return size of this buffer to client
-
-	CMobilePhoneCFList* list=CMobilePhoneCFList::NewL();
-	CleanupStack::PushL(list);
-
-	RMobilePhone::TMobilePhoneCFInfoEntryV1 entry;
-	RMobilePhone::TMobileService servicegroup = aReqData->iServiceGroup;
-
-	// fill up an example list
-	for (TInt index=0; index < DMMTSY_CF_ENTRY_COUNT; index++)
-		{
-		switch (index)
-			{
-		case 0:
-			entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU;
-			entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_VOICE;
-			entry.iStatus=DMMTSY_PHONE_CF_NOT_ACTIVE;
-			entry.iNumber.iTelNumber=DMMTSY_PHONE_TEL_NUMBER;
-			entry.iTimeout=DMMTSY_PHONE_CF_TIMEOUT;
-			break;
-		case 1:
-			entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU;
-			entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_DATA;
-			entry.iStatus=DMMTSY_PHONE_CF_ACTIVE;
-			entry.iNumber.iTelNumber=DMMTSY_PHONE_TEL_NUMBER;
-			entry.iTimeout=DMMTSY_PHONE_CF_TIMEOUT;
-			break;
-		case 2:
-			entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU;
-			entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_FAX;
-			entry.iStatus=DMMTSY_PHONE_CF_ACTIVE;
-			entry.iNumber.iTelNumber=DMMTSY_PHONE_TEL_NUMBER;
-			entry.iTimeout=DMMTSY_PHONE_CF_TIMEOUT;
-			break;
-		case 3:
-		default:
-			entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU;
-			entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_AUXVOICE;
-			entry.iStatus=DMMTSY_PHONE_CF_UNKNOWN;
-			entry.iTimeout=-1;
-			break;
-			}
-			// Add the entry into the list, at the next empty location
-		if( (servicegroup == DMMTSY_PHONE_CF_SERVICE_GROUP_ALL) || (servicegroup == entry.iServiceGroup) )
-		list->AddEntryL(entry);
-		}
-
-	// Store the streamed list and the client ID
-	CListReadAllAttempt* read=CListReadAllAttempt::NewL(&(aReqData->iClient),aTsyReqHandle);
-	CleanupStack::PushL(read);
-	
-	read->iListBuf = list->StoreLC();
-	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
-
-	iGetCFStatus->AppendL(read);
-	CleanupStack::Pop(); // pop the CListReadAllAttempt
-	
-	// return the CBufBase’s size to client
-	*aBufSize=(read->iListBuf)->Size();
-	
-	// Complete first phase of list retrieval
-	AddDelayedReq(aTsyReqHandle,this);
-	CleanupStack::PopAndDestroy(); // pop&destroy list
-	return KErrNone;
-	}
-
-
-TInt CPhoneDMmTsy::GetCallForwardingStatusPhase2(const TTsyReqHandle aTsyReqHandle, 
-												 RMobilePhone::TClientId* aClient, TDes8* aBuf)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingStatusPhase2 called"));
-	CListReadAllAttempt* read=NULL;
-	// Find the get detected network attempt from this client
-	for (TInt i=0; i<iGetCFStatus->Count(); ++i)
-		{
-		read = iGetCFStatus->At(i);
-		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
-		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
-			{
-			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
-			// Copy the streamed list to the client
-			aBuf->Copy(bufPtr);
-			delete read;
-			iGetCFStatus->Delete(i);
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			return KErrNone;
-			}
-		}
-	// Should handle error case of not finding the matching client from read all phase 1
-	return KErrNotFound;
-	}
-
-TInt CPhoneDMmTsy::GetCallForwardingStatusCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	// Remove the read all attempt from iGetCFStatus
-	CListReadAllAttempt* read=NULL;
-	for (TInt i=0; i<iGetCFStatus->Count(); ++i)
-		{
-		read = iGetCFStatus->At(i);
-		if (read->iReqHandle == aTsyReqHandle)
-			{
-			delete read;
-			iGetCFStatus->Delete(i);
-			break;
-			}
-		}
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCallForwardingStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCFCondition* aCondition)
-	{
-	if(!iNotifyCallForwardingStatusChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingStatusChange called"));
-		*aCondition=DMMTSY_PHONE_CF_CONDITION_ALL;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCallForwardingStatusChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingStatusChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetCallForwardingStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCFCondition* aCondition, RMobilePhone::TMobilePhoneCFChangeV1* aInfo)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetCallForwardingStatus called"));
-	if ((*aCondition!=DMMTSY_PHONE_CF_CONDITION_CFNRy) ||
-		(aInfo->iServiceGroup!=DMMTSY_PHONE_CF_SERVICE_GROUP_VOICE) ||
-		(aInfo->iAction!=DMMTSY_PHONE_CF_SETTING) ||
-		(aInfo->iNumber.iTelNumber!=DMMTSY_PHONE_TEL_NUMBER) ||
-		(aInfo->iTimeout!=DMMTSY_PHONE_CF_TIMEOUT))
-
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetCallForwardingStatusCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetCallForwardingStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCallForwardingActive(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobileService* aServiceGroup, RMobilePhone::TMobilePhoneCFActive* aActive)
-	{
-	if(!iNotifyCallForwardingActive++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingActive called"));
-		*aActive=DMMTSY_PHONE_CF_ACTIVE_TYPE;
-		*aServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_FAX;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCallForwardingActiveCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingActiveCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetIdentityServiceStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TIdServiceAndLocation *aInfo,
-											RMobilePhone::TMobilePhoneIdServiceStatus* aStatus)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetIdentityServiceStatus called"));
-	if (aInfo->iLocation != DMMTSY_PHONE_ID_LOCATION || aInfo->iService != DMMTSY_PHONE_ID_SERVICE)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		{
-		*aStatus = DMMTSY_PHONE_ID_STATUS;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetIdentityServiceStatusCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetIdentityServiceStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCallBarringPhase1(const TTsyReqHandle aTsyReqHandle, 
-												 CRetrieveMobilePhoneCBList::TGetCallBarringRequest* aReqData, 
-												 TInt* aBufSize)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCallBarringPhase1 called"));
-	TInt ret=KErrNone;
-
-	if ((aReqData->iCondition!=DMMTSY_PHONE_CB_CONDITION) ||
-		(aReqData->iLocation!=DMMTSY_PHONE_CB_LOCATION))
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		{
-		TInt leaveCode=KErrNone;
-		TRAP(leaveCode, ret=ProcessGetCallBarringPhase1L(aTsyReqHandle, aReqData, aBufSize));
-		if (leaveCode != KErrNone)
-			ReqCompleted(aTsyReqHandle,leaveCode);
-		}
-	return ret;
-	}
-
-TInt CPhoneDMmTsy::ProcessGetCallBarringPhase1L(const TTsyReqHandle aTsyReqHandle, 
-														 CRetrieveMobilePhoneCBList::TGetCallBarringRequest* aReqData,
-														 TInt* aBufSize)
-	{
-	// retrieve call forwarding status of each line from phone, 
-	// store each CB status response as a list entry,
-	// stream the list and then return size of this buffer to client
-
-	CMobilePhoneCBList* list=CMobilePhoneCBList::NewL();
-	CleanupStack::PushL(list);
-
-	RMobilePhone::TMobilePhoneCBInfoEntryV1 entry;
-
-	// fill up an example list
-	for (TInt index=0; index < DMMTSY_CALL_BARRING_COUNT; index++)
-		{
-		switch (index)
-			{
-		case 0:
-			entry.iCondition = DMMTSY_PHONE_CB_CONDITION0;
-			entry.iServiceGroup = DMMTSY_PHONE_CB_SG0;
-			entry.iStatus = DMMTSY_PHONE_CB_STATUS0;
-			break;
-		case 1:
-			entry.iCondition = DMMTSY_PHONE_CB_CONDITION1;
-			entry.iServiceGroup = DMMTSY_PHONE_CB_SG1;
-			entry.iStatus = DMMTSY_PHONE_CB_STATUS1;
-			break;
-		case 2:
-			entry.iCondition = DMMTSY_PHONE_CB_CONDITION2;
-			entry.iServiceGroup = DMMTSY_PHONE_CB_SG2;
-			entry.iStatus = DMMTSY_PHONE_CB_STATUS2;
-			break;
-		case 3:
-		default:
-			entry.iCondition = DMMTSY_PHONE_CB_CONDITION3;
-			entry.iServiceGroup = DMMTSY_PHONE_CB_SG3;
-			entry.iStatus = DMMTSY_PHONE_CB_STATUS3;
-			break;
-			}
-			// Add the entry into the list, at the next empty location
-			list->AddEntryL(entry);
-		}
-
-	// Store the streamed list and the client ID
-	CListReadAllAttempt* read=CListReadAllAttempt::NewL(&(aReqData->iClient),aTsyReqHandle);
-	CleanupStack::PushL(read);
-	
-	read->iListBuf = list->StoreLC();
-	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
-	
-	iGetCB->AppendL(read);
-	CleanupStack::Pop(); // pop the CListReadAllAttempt
-	
-	// return the CBufBase’s size to client
-	*aBufSize=(read->iListBuf)->Size();
-	
-	// Complete first phase of list retrieval
-	AddDelayedReq(aTsyReqHandle,this);
-	CleanupStack::PopAndDestroy(); // pop&destroy list
-	return KErrNone;
-	}
-
-
-TInt CPhoneDMmTsy::GetCallBarringPhase2(const TTsyReqHandle aTsyReqHandle, 
-												 RMobilePhone::TClientId* aClient, TDes8* aBuf)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCallBarringPhase2 called"));
-	CListReadAllAttempt* read=NULL;
-	// Find the get call barring attempt from this client
-	for (TInt i=0; i<iGetCB->Count(); ++i)
-		{
-		read = iGetCB->At(i);
-		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
-		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
-			{
-			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
-			// Copy the streamed list to the client
-			aBuf->Copy(bufPtr);
-			delete read;
-			iGetCB->Delete(i);
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			return KErrNone;
-			}
-		}
-	// Should handle error case of not finding the matching client from read all phase 1
-	return KErrNotFound;
-	}
-	
-TInt CPhoneDMmTsy::GetCallBarringCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCallBarringCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	// Remove the read all attempt from iGetCB
-	CListReadAllAttempt* read=NULL;
-	for (TInt i=0; i<iGetCB->Count(); ++i)
-		{
-		read = iGetCB->At(i);
-		if (read->iReqHandle == aTsyReqHandle)
-			{
-			delete read;
-			iGetCB->Delete(i);
-			break;
-			}
-		}
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetCallBarringStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCBCondition *aCondition, RMobilePhone::TMobilePhoneCBChangeV1* aInfo)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringStatus called"));
-	if (*aCondition != DMMTSY_PHONE_CB_CONDITION ||  aInfo->iAction != DMMTSY_PHONE_CB_ACTION ||
-		(aInfo->iPassword.Compare(DMMTSY_PHONE_CB_PASSWORD) != 0))
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetCallBarringStatusCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCallBarringStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCBCondition* aCondition)
-	{
-	if (!iNotifyCallBarringStatusChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallBarringStatusChange called"));
-		*aCondition = DMMTSY_PHONE_CB_CONDITION;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCallBarringStatusChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallBarringStatusChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::SetCallBarringPassword(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePasswordChangeV1* aPassword)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringPassword called"));
-	if ((aPassword->iOldPassword.Compare(DMMTSY_PHONE_CB_PASSWORD) != 0) ||
-		(aPassword->iNewPassword.Compare(DMMTSY_PHONE_CB_NEW_PASSWORD) != 0))
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetCallBarringPasswordCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringPasswordCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetSSPassword(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePasswordChangeV2* aPassword, TInt* aService)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetSSPassword called"));
-	if ((aPassword->iOldPassword.Compare(DMMTSY_PHONE_CB_PASSWORD) != 0) ||
-		(aPassword->iNewPassword.Compare(DMMTSY_PHONE_CB_NEW_PASSWORD) != 0) ||
-		(aPassword->iVerifiedPassword.Compare(DMMTSY_PHONE_CB_VERIFIED_PASSWORD) != 0) &&
-		aService != DMMTSY_PHONE_CB_ALL_SERVICES )
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetSSPasswordCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetSSPasswordCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-
-
-TInt CPhoneDMmTsy::GetCallWaitingPhase1(const TTsyReqHandle aTsyReqHandle, 
-												 CRetrieveMobilePhoneCWList::TGetCallWaitingRequest* aReqData, 
-												 TInt* aBufSize)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingPhase1 called"));
-	TInt ret=KErrNone;
-
-	if (aReqData->iLocation!=DMMTSY_PHONE_CW_LOCATION)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		{
-		TInt leaveCode=KErrNone;
-		TRAP(leaveCode, ret=ProcessGetCallWaitingPhase1L(aTsyReqHandle, aReqData, aBufSize));
-		if (leaveCode != KErrNone)
-			ReqCompleted(aTsyReqHandle,leaveCode);
-		}
-	return ret;
-	}
-
-TInt CPhoneDMmTsy::ProcessGetCallWaitingPhase1L(const TTsyReqHandle aTsyReqHandle, 
-														 CRetrieveMobilePhoneCWList::TGetCallWaitingRequest* aReqData, 
-														 TInt* aBufSize)
-	{
-	// retrieve call forwarding status of each line from phone,
-	// store each CW status response as a list entry,
-	// stream the list and then return size of this buffer to client
-
-	CMobilePhoneCWList* list=CMobilePhoneCWList::NewL();
-	CleanupStack::PushL(list);
-
-	RMobilePhone::TMobilePhoneCWInfoEntryV1 entry;
-
-	// fill up an example list
-	for (TInt index=0; index < DMMTSY_CW_ENTRY_COUNT; index++)
-		{
-		switch (index)
-			{
-		case 0:
-			entry.iServiceGroup = DMMTSY_PHONE_CW_SG0;
-			entry.iStatus = DMMTSY_PHONE_CW_STATUS0;
-			break;
-		case 1:
-			entry.iServiceGroup = DMMTSY_PHONE_CW_SG1;
-			entry.iStatus = DMMTSY_PHONE_CW_STATUS1;
-			break;
-		case 2:
-			entry.iServiceGroup = DMMTSY_PHONE_CW_SG2;
-			entry.iStatus = DMMTSY_PHONE_CW_STATUS2;
-			break;
-		case 3:
-		default:
-			entry.iServiceGroup = DMMTSY_PHONE_CW_SG3;
-			entry.iStatus = DMMTSY_PHONE_CW_STATUS3;
-			break;
-			}
-			// Add the entry into the list, at the next empty location
-			list->AddEntryL(entry);
-		}
-
-	// Store the streamed list and the client ID
-	CListReadAllAttempt* read=CListReadAllAttempt::NewL(&(aReqData->iClient),aTsyReqHandle);
-	CleanupStack::PushL(read);
-	
-	read->iListBuf = list->StoreLC();
-	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
-	
-	iGetCWStatus->AppendL(read);
-	CleanupStack::Pop(); // pop the CListReadAllAttempt
-	
-	// return the CBufBase’s size to client
-	*aBufSize=(read->iListBuf)->Size();
-	
-	// Complete first phase of list retrieval
-	AddDelayedReq(aTsyReqHandle,this);
-	CleanupStack::PopAndDestroy(); // pop&destroy list
-	return KErrNone;
-	}
-
-
-TInt CPhoneDMmTsy::GetCallWaitingPhase2(const TTsyReqHandle aTsyReqHandle, 
-												 RMobilePhone::TClientId* aClient, TDes8* aBuf)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingPhase2 called"));
-	CListReadAllAttempt* read=NULL;
-	// Find the get call waiting attempt from this client
-	for (TInt i=0; i<iGetCWStatus->Count(); ++i)
-		{
-		read = iGetCWStatus->At(i);
-		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
-		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
-			{
-			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
-			// Copy the streamed list to the client
-			aBuf->Copy(bufPtr);
-			delete read;
-			iGetCWStatus->Delete(i);
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			return KErrNone;
-			}
-		}
-	// Should handle error case of not finding the matching client from read all phase 1
-	return KErrNotFound;
-	}
-
-TInt CPhoneDMmTsy::GetCallWaitingCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	// Remove the read all attempt from iGetCWStatus
-	CListReadAllAttempt* read=NULL;
-	for (TInt i=0; i<iGetCWStatus->Count(); ++i)
-		{
-		read = iGetCWStatus->At(i);
-		if (read->iReqHandle == aTsyReqHandle)
-			{
-			delete read;
-			iGetCWStatus->Delete(i);
-			break;
-			}
-		}
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-
-TInt CPhoneDMmTsy::SetCallWaitingStatus(const TTsyReqHandle aTsyReqHandle,
-										RMobilePhone::TMobileService* aServiceGroup,
-										RMobilePhone::TMobilePhoneServiceAction *aAction)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetCallWaitingStatus called"));
-	if ((*aAction != DMMTSY_PHONE_CW_SET_STATUS_ACTION) ||
-		(*aServiceGroup != DMMTSY_PHONE_CW_SG0))
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetCallWaitingStatusCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetCallWaitingStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCallWaitingStatusChange(const TTsyReqHandle aTsyReqHandle, TDes8* aCWStatus)
-	{
-	if (!iNotifyCallWaitingStatusChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallWaitingStatusChange called"));
-		RMobilePhone::TMobilePhoneCWInfoEntryV1Pckg *cwInfoPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCWInfoEntryV1Pckg*,aCWStatus);
-		RMobilePhone::TMobilePhoneCWInfoEntryV1 &cwInfo = (*cwInfoPckg)();
-		cwInfo.iServiceGroup = DMMTSY_PHONE_CW_SG0;
-		cwInfo.iStatus = DMMTSY_PHONE_CW_STATUS0;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCallWaitingStatusChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallWaitingStatusChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCCBSStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCCBSStatus* aCcbsStatus, RMobilePhone::TMobileInfoLocation* aLocation)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCCBSStatus called"));
-	if (*aLocation != DMMTSY_PHONE_CCC_LOCATION)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		{
-		*aCcbsStatus = DMMTSY_PHONE_CCC_STATUS;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCCBSStatusCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCCBSStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCCBSStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCCBSStatus* aCcbsStatus)
-	{
-	if (!iNotifyCCBSStatusChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSStatusChange called"));
-		*aCcbsStatus = DMMTSY_PHONE_CCC_STATUS;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCCBSStatusChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSStatusChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCCBSRecall(const TTsyReqHandle aTsyReqHandle, TDes8* aCCBSEntry)
-	{
-//	_asm{int 3};
-	if (!iNotifyCCBSRecall++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSRecall called"));
-		
-		RMobilePhone::TMobilePhoneCCBSEntryV1Pckg* ccbsPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCCBSEntryV1Pckg*,aCCBSEntry);
-		RMobilePhone::TMobilePhoneCCBSEntryV1& ccbs = (*ccbsPckg)();
-
-		ccbs.iCcbsIndex=DMMTSY_PHONE_CCC_INDEX1;
-		ccbs.iServiceGroup=DMMTSY_PHONE_CCC_SERVICE_GROUP0;
-		ccbs.iDestination.iNumberPlan=DMMTSY_PHONE_CCC_DESTINATION_NP0;
-		ccbs.iDestination.iTelNumber= DMMTSY_PHONE_CCC_DESTINATION_NUM0;
-		ccbs.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON0;
-		
-		if(ccbs.ExtensionId()==KETelExtMultimodeV2)
-			{
-			RMobilePhone::TMobilePhoneCCBSEntryV2Pckg* ccbsPckgV2 = STATIC_CAST(RMobilePhone::TMobilePhoneCCBSEntryV2Pckg*,aCCBSEntry);
-			RMobilePhone::TMobilePhoneCCBSEntryV2& ccbs2 = (*ccbsPckgV2)();
-			
-			// Set that the network has informed us that the CCBS request can proceed
-			ccbs2.iEvent = DMMTSY_PHONE_CCC_DESTINATION_CCBS_RECEIVED;
-			//reset for multiple complete V1
-			iNotifyCCBSRecall = 0;
-			}
-
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	else
-		{
-			// reset for the V2 test 
-			iNotifyCCBSRecall=0;
-		}
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::NotifyCCBSRecallCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSRecallCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::AcceptCCBSRecall(const TTsyReqHandle aTsyReqHandle, TInt* aIndex, TDes* aCallName)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::AcceptCCBSRecall called"));
-	if(*aIndex!=DMMTSY_PHONE_CCC_INDEX1)
-		return KErrCorrupt;
-	*aCallName = DMMTSY_PHONE_CCC_CALLNAME0;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::AcceptCCBSRecallCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::AcceptCCBSRecallCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::RefuseCCBSRecall(const TTsyReqHandle aTsyReqHandle, TInt* aIndex)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::RefuseCCBSRecall called"));
-	if(*aIndex!=DMMTSY_PHONE_CCC_INDEX1)
-		return KErrCorrupt;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-
-TInt CPhoneDMmTsy::DeactivateCCBS(const TTsyReqHandle aTsyReqHandle, TInt* aIndex)
-	{
-	if (*aIndex== -1)		//-1 means deactivate all
-		return KErrEtelCallNotActive;
-	if(*aIndex!=DMMTSY_PHONE_CCC_INDEX1) 
-		return KErrCorrupt;
-		
-	LOGTEXT(_L8("CPhoneDMmTsy::DeactivateAllCCBS called"));
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::DeactivateCCBSCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::DeactivateAllCCBSCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCallCompletionPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aReqData, TInt* aBufSize)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCallCompletionPhase1 called"));
-	TInt ret = KErrNone;
-
-	TRAPD(leaveCode, ret=ProcessGetCallCompletionPhase1L(aTsyReqHandle, aReqData, aBufSize));
-	if (leaveCode != KErrNone)
-		ReqCompleted(aTsyReqHandle,leaveCode);
-	return ret;	
-	}
-
-TInt CPhoneDMmTsy::ProcessGetCallCompletionPhase1L(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClientId, TInt* aBufSize)
-	{
-	CMobilePhoneCcbsList* list=CMobilePhoneCcbsList::NewL();
-	CleanupStack::PushL(list);
-
-	RMobilePhone::TMobilePhoneCCBSEntryV1 entry;
-
-	// fill up an example list
-	for (TInt index=0; index < DMMTSY_PHONE_CCC_ENTRY_COUNT; index++)
-		{
-		switch (index)
-			{
-		case 0:
-			entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP0;
-			entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX0;
-			entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON0;
-			entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP0;
-			entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM0;
-			break;
-		case 1:
-			entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP1;
-			entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX1;
-			entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON1;
-			entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP1;
-			entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM1;
-			break;
-		case 2:
-			entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP2;
-			entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX2;
-			entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON2;
-			entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP2;
-			entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM2;
-			break;
-		case 3:
-			entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP3;
-			entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX3;
-			entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON3;
-			entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP3;
-			entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM3;
-		default:
-			break;
-			}
-			// Add the entry into the list, at the next empty location
-			list->AddEntryL(entry);
-		}
-
-	// Store the streamed list and the client ID
-	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClientId,aTsyReqHandle);
-	CleanupStack::PushL(read);
-
-	read->iListBuf = list->StoreLC();
-	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
-	
-	iGetCcbsRequests->AppendL(read);
-	CleanupStack::Pop(); // pop the CListReadAllAttempt
-	
-	// return the CBufBase’s size to client
-	*aBufSize=(read->iListBuf)->Size();
-	
-	// Complete first phase of list retrieval
-	AddDelayedReq(aTsyReqHandle,this);
-	CleanupStack::PopAndDestroy(); // pop&destroy list
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCallCompletionPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCallCompletionPhase2 called"));
-	CListReadAllAttempt* read=NULL;
-	
-	for (TInt i=0; i<iGetCcbsRequests->Count(); ++i)
-		{
-		read = iGetCcbsRequests->At(i);
-		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
-		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
-			{
-			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
-			// Copy the streamed list to the client
-			aBuf->Copy(bufPtr);
-			delete read;
-			iGetCcbsRequests->Delete(i);
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			return KErrNone;
-			}
-		}
-	// Should handle error case of not finding the matching client from read all phase 1
-	return KErrNotFound;
-	}
-
-TInt CPhoneDMmTsy::GetCallCompletionCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	// Remove the read all attempt from iGetCcbsRequests
-	CListReadAllAttempt* read=NULL;
-	for (TInt i=0; i<iGetCcbsRequests->Count(); ++i)
-		{
-		read = iGetCcbsRequests->At(i);
-		if (read->iReqHandle == aTsyReqHandle)
-			{
-			delete read;
-			iGetCcbsRequests->Delete(i);
-			break;
-			}
-		}
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetAlternatingCallCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetAlternatingCallCaps called"));
-
-	*aCaps = DMMTSY_PHONE_ALTERNATING_CALL_CAPS;
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyAlternatingCallCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	if (!iNotifyAlternatingCallCapsChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallCapsChange called"));
-		*aCaps = DMMTSY_PHONE_ALTERNATING_CALL_CAPS;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyAlternatingCallCapsChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallCapsChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetAlternatingCallMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneAlternatingCallMode* aMode, RMobilePhone::TMobileService* aFirstService)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetAlternatingCallMode called"));
-	*aMode = DMMTSY_PHONE_ALTERNATING_CALL_MODE;
-	*aFirstService = DMMTSY_PHONE_ALTERNATING_CALL_SERVICE;
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetAlternatingCallMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneAlternatingCallMode* aMode, RMobilePhone::TMobileService* aFirstService)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetAlternatingCallMode called"));
-	if (*aMode != DMMTSY_PHONE_ALTERNATING_CALL_MODE || *aFirstService != DMMTSY_PHONE_ALTERNATING_CALL_SERVICE)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetAlternatingCallModeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetAlternatingCallModeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyAlternatingCallModeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneAlternatingCallMode* aMode,RMobilePhone::TMobileService* aFirstService)
-	{
-	if (!iNotifyAlternatingCallModeChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallModeChange called"));
-		*aMode = DMMTSY_PHONE_ALTERNATING_CALL_MODE;
-		*aFirstService = DMMTSY_PHONE_ALTERNATING_CALL_SERVICE;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyAlternatingCallModeChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallModeChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetALSLine(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneALSLine* aALSLine)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetALSLine called"));
-	*aALSLine = DMMTSY_PHONE_ALS_LINE;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetALSLine(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneALSLine* aALSLine)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetALSLine called"));
-	if (*aALSLine != DMMTSY_PHONE_ALS_LINE)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetALSLineCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetALSLineCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-
-TInt CPhoneDMmTsy::NotifyALSLineChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneALSLine* aALSLine)
-	{
-	if (!iNotifyALSLineChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyALSLineChange called"));
-		*aALSLine = DMMTSY_PHONE_ALS_LINE;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyALSLineChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyALSLineChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCostCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCostCaps called"));
-	*aCaps = DMMTSY_PHONE_COST_CAPS;	
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCostCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	if (!iNotifyCostCapsChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostCapsChange called"));
-		*aCaps = DMMTSY_PHONE_COST_CAPS;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCostCapsChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostCapsChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::ClearCostMeter(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCostMeters* aMeters)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::ClearCostMeter called"));
-	if (*aMeters != DMMTSY_PHONE_COST_METER)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::ClearCostMeterCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::ClearCostMeterCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetMaxCostMeter(const TTsyReqHandle aTsyReqHandle, TUint *aUnits)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetMaxCostMeter called"));
-	if (*aUnits != DMMTSY_PHONE_COST_UNITS)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetMaxCostMeterCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetMaxCostMeterCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetPuct(const TTsyReqHandle aTsyReqHandle, TDes8* aPuct)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetPuct called"));
-	RMobilePhone::TMobilePhonePuctV1Pckg* puctPckg = STATIC_CAST(RMobilePhone::TMobilePhonePuctV1Pckg*,aPuct);
-	RMobilePhone::TMobilePhonePuctV1& puct = (*puctPckg)();
-	
-	if ((puct.iCurrencyName.Compare(DMMTSY_PHONE_COST_PUCT_CNAME) != 0) || 
-		(puct.iPricePerUnit != DMMTSY_PHONE_COST_PUCT_PPU))
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetPuctCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetPuctCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCostInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aCostInfo)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCostInfo called"));
-	RMobilePhone::TMobilePhoneCostInfoV1Pckg* ciPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCostInfoV1Pckg*,aCostInfo);
-	RMobilePhone::TMobilePhoneCostInfoV1& ci = (*ciPckg)();
-
-	ci.iService = DMMTSY_PHONE_COST_SERVICE;
-	ci.iCCM = DMMTSY_PHONE_COST_CCM;
-	ci.iACM = DMMTSY_PHONE_COST_ACM;
-	ci.iACMmax = DMMTSY_PHONE_COST_ACMMAX;
-	ci.iPuct.iCurrencyName = DMMTSY_PHONE_COST_PUCT_CNAME;
-	ci.iPuct.iPricePerUnit = DMMTSY_PHONE_COST_PUCT_PPU;
-
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::GetCostInfoCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCostInfoCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::NotifyCostInfoChange(const TTsyReqHandle aTsyReqHandle, TDes8* aCostInfo)
-	{
-	if (!iNotifyCostInfoChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostInfoChange called"));
-		RMobilePhone::TMobilePhoneCostInfoV1Pckg* ciPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCostInfoV1Pckg*,aCostInfo);
-		RMobilePhone::TMobilePhoneCostInfoV1& ci = (*ciPckg)();
-	
-		ci.iService = DMMTSY_PHONE_COST_SERVICE;
-		ci.iCCM = DMMTSY_PHONE_COST_CCM;
-		ci.iACM = DMMTSY_PHONE_COST_ACM;
-		ci.iACMmax = DMMTSY_PHONE_COST_ACMMAX;
-		ci.iPuct.iCurrencyName = DMMTSY_PHONE_COST_PUCT_CNAME;
-		ci.iPuct.iPricePerUnit = DMMTSY_PHONE_COST_PUCT_PPU;
-
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCostInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostInfoChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::GetSecurityCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetSecurityCaps called"));
-	*aCaps = DMMTSY_PHONE_SECURITY_CAPS;
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifySecurityCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
-	{
-	if (!iNotifySecurityCapsChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifySecurityCapsChange called"));
-		*aCaps = DMMTSY_PHONE_SECURITY_CAPS;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifySecurityCapsChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifySecurityCapsChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::GetLockInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneLock *aLock, TDes8* aLockInfo)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetLockInfo called"));
-	if (*aLock != DMMTSY_PHONE_SECURITY_LOCK)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		{
-		RMobilePhone::TMobilePhoneLockInfoV1Pckg* liPckg = STATIC_CAST(RMobilePhone::TMobilePhoneLockInfoV1Pckg*,aLockInfo);
-		RMobilePhone::TMobilePhoneLockInfoV1& li = (*liPckg)();
-		li.iStatus = DMMTSY_PHONE_SECURITY_STATUS;
-		li.iSetting = DMMTSY_PHONE_SECURITY_SETTING;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetLockInfoCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetLockInfoCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::NotifyLockInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneLock* aLock, TDes8* aLockInfo)
-	{
-	if (!iNotifyLockInfoChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyLockInfoChange called"));
-		RMobilePhone::TMobilePhoneLockInfoV1Pckg* liPckg = STATIC_CAST(RMobilePhone::TMobilePhoneLockInfoV1Pckg*,aLockInfo);
-		RMobilePhone::TMobilePhoneLockInfoV1& li = (*liPckg)();
-		li.iStatus = DMMTSY_PHONE_SECURITY_STATUS;
-		li.iSetting = DMMTSY_PHONE_SECURITY_SETTING;
-		*aLock = DMMTSY_PHONE_SECURITY_LOCK;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyLockInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyLockInfoChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
- 
-TInt CPhoneDMmTsy::SetLockSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneLock *aLock, RMobilePhone::TMobilePhoneLockSetting *aLockSetting)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetLockSetting called"));
-	if (*aLock != DMMTSY_PHONE_SECURITY_SC_LOCK || 
-		*aLockSetting != DMMTSY_PHONE_SECURITY_SC_SETTING)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetLockSettingCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetLockSettingCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::ChangeSecurityCode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aType, RMobilePhone::TMobilePhonePasswordChangeV1 *aChange)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::ChangeSecurityCode called"));
-	if ((*aType != DMMTSY_PHONE_SECURITY_CODE) || 
-		(aChange->iOldPassword.Compare(DMMTSY_PHONE_SECURITY_OLD_PASS) != 0) ||
-		(aChange->iNewPassword.Compare(DMMTSY_PHONE_SECURITY_NEW_PASS) != 0)) 
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-		
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::ChangeSecurityCodeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::ChangeSecurityCodeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::GetSecurityCodeInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aSecurityCode, TDes8* aSecurityCodeInfo)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetSecurityCodeInfo called"));
-	if (*aSecurityCode != DMMTSY_PHONE_SECURITY_CODE)
-		ReqCompleted(aTsyReqHandle,KErrNotFound);
-	else
-		{
-		RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg* infoPckg = STATIC_CAST(RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg*,aSecurityCodeInfo);
-		RMobilePhone::TMobilePhoneSecurityCodeInfoV5& info = (*infoPckg)();
-		info.iRemainingEntryAttempts = DMMTSY_PHONE_SECURITY_REMAINING_ATTEMPTS;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetSecurityCodeInfoCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetSecurityCodeInfoCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::NotifySecurityCodeInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode* aSecurityCode,TDes8* aSecurityCodeInfo)
-	{
-	if (!iNotifySecurityCodeInfoChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::SecurityCodeInfoChange called"));
-		RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg* infoPckg = STATIC_CAST(RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg*,aSecurityCodeInfo);
-		RMobilePhone::TMobilePhoneSecurityCodeInfoV5& info = (*infoPckg)();
-		info.iRemainingEntryAttempts = DMMTSY_PHONE_SECURITY_REMAINING_ATTEMPTS;
-		*aSecurityCode = DMMTSY_PHONE_SECURITY_CODE;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifySecurityCodeInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifySecurityCodeInfoChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-	
-TInt CPhoneDMmTsy::NotifyOnSecurityEvent(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityEvent* aEvent)
-	{
-	if (!iNotifyOnSecurityEvent++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::Notify On Security Event called"));
-		*aEvent = DMMTSY_PHONE_SECURITY_EVENT;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyOnSecurityEventCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyOnSecurityEventCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::VerifySecurityCode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aType, RMobilePhone::TCodeAndUnblockCode* aData)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::Verify Security Code called"));
-
-	if ((*aType != DMMTSY_PHONE_SECURITY_CODE) ||
-		(aData->iCode.Compare(DMMTSY_PHONE_SECURITY_OLD_PASS) != 0) ||
-		(aData->iUnblockCode.Compare(DMMTSY_PHONE_SECURITY_NEW_PASS) != 0))
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::VerifySecurityCodeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::VerifySecurityCodeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::AbortSecurityCode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aType)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::AbortSecurityCode called"));
-	if (*aType != DMMTSY_PHONE_SECURITY_CODE)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-
-
-TInt CPhoneDMmTsy::NotifyMessageWaiting(const TTsyReqHandle aTsyReqHandle, TInt* aCount)
-	{
-	if (!iNotifyMessageWaiting++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyMessageWaiting called"));
-		*aCount = DMMTSY_PHONE_MW_COUNT;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyMessageWaitingCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMessageWaitingCanel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::GetIccMessageWaitingIndicators(const TTsyReqHandle aTsyReqHandle, TDes8* aMsgIndicators)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetIccMessageWaitingIndicators called"));
-	RMobilePhone::TMobilePhoneMessageWaitingV1Pckg* indPckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV1Pckg*,aMsgIndicators);
-	RMobilePhone::TMobilePhoneMessageWaitingV1& indicators = (*indPckg)();
-	indicators.iDisplayStatus=DMMTSY_PHONE_DISPLAYSTATUS; 
-	indicators.iVoiceMsgs=DMMTSY_PHONE_VOICEMSGS;
-	indicators.iAuxVoiceMsgs=DMMTSY_PHONE_AUXVOICEMSGS;
-	indicators.iDataMsgs=DMMTSY_PHONE_DATAMSGS;
-	indicators.iFaxMsgs=DMMTSY_PHONE_FAXMSGS;
-	indicators.iEmailMsgs=DMMTSY_PHONE_EMAILMSGS;
-	indicators.iOtherMsgs=DMMTSY_PHONE_OTHERMSGS;	
-	
-	if(indicators.ExtensionId() == KEtelExtMultimodeV8 )
-		{
-		RMobilePhone::TMobilePhoneMessageWaitingV8Pckg* indV8Pckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV8Pckg*,aMsgIndicators);
-		RMobilePhone::TMobilePhoneMessageWaitingV8& indicatorsV8 = (*indV8Pckg)();
-		indicatorsV8.iVideoMsgs=DMMTSY_PHONE_VIDEOMSGS1;	
-		}
-	
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetIccMessageWaitingIndicatorsCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetIccMessageWaitingIndicators called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::SetIccMessageWaitingIndicators(const TTsyReqHandle aTsyReqHandle, TDes8* aMsgIndicators)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetIccMessageWaitingIndicators called"));
-	RMobilePhone::TMobilePhoneMessageWaitingV1Pckg* indPckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV1Pckg*,aMsgIndicators);
-	RMobilePhone::TMobilePhoneMessageWaitingV1& indicators = (*indPckg)();
-	if ((indicators.iDisplayStatus!=DMMTSY_PHONE_DISPLAYSTATUS) || 
-			(indicators.iVoiceMsgs != DMMTSY_PHONE_VOICEMSGS2) ||
-			(indicators.iAuxVoiceMsgs != DMMTSY_PHONE_AUXVOICEMSGS2) ||
-			(indicators.iDataMsgs != DMMTSY_PHONE_DATAMSGS2) ||
-			(indicators.iFaxMsgs != DMMTSY_PHONE_FAXMSGS2) ||
-			(indicators.iEmailMsgs != DMMTSY_PHONE_EMAILMSGS2) ||
-			(indicators.iOtherMsgs != DMMTSY_PHONE_OTHERMSGS2))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	
-	if(indicators.ExtensionId() == KEtelExtMultimodeV8 ) 
- 		{
- 		RMobilePhone::TMobilePhoneMessageWaitingV8Pckg* indV8Pckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV8Pckg*,aMsgIndicators);
-		RMobilePhone::TMobilePhoneMessageWaitingV8& indicatorsV8 = (*indV8Pckg)();
-		if (indicatorsV8.iVideoMsgs != DMMTSY_PHONE_VIDEOMSGS2)
-			{
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);
-			}
-		}
-
-	AddDelayedReq(aTsyReqHandle,this);			
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetIccMessageWaitingIndicatorsCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetIccMessageWaitingIndicators called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChange(const TTsyReqHandle aTsyReqHandle, TDes8* aMsgIndicators)
-	{
-	if (!iNotifyIccMessageWaitingChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChange called"));
-		RMobilePhone::TMobilePhoneMessageWaitingV1Pckg* indPckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV1Pckg*,aMsgIndicators);
-		RMobilePhone::TMobilePhoneMessageWaitingV1& indicators = (*indPckg)();
-		
-		indicators.iDisplayStatus=DMMTSY_PHONE_DISPLAYSTATUS; 
-		indicators.iVoiceMsgs=DMMTSY_PHONE_VOICEMSGS2;
-		indicators.iAuxVoiceMsgs=DMMTSY_PHONE_AUXVOICEMSGS2;
-		indicators.iDataMsgs=DMMTSY_PHONE_DATAMSGS2;
-		indicators.iFaxMsgs=DMMTSY_PHONE_FAXMSGS2;
-		indicators.iEmailMsgs=DMMTSY_PHONE_EMAILMSGS2;
-		indicators.iOtherMsgs=DMMTSY_PHONE_OTHERMSGS2;
-		
-		if(indicators.ExtensionId() == KEtelExtMultimodeV8)
-			{
-			RMobilePhone::TMobilePhoneMessageWaitingV8Pckg* indV8Pckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV8Pckg*,aMsgIndicators);
-			RMobilePhone::TMobilePhoneMessageWaitingV8& indicatorsV8 = (*indV8Pckg)();
-			indicatorsV8.iVideoMsgs=DMMTSY_PHONE_VIDEOMSGS2;
-			iNotifyIccMessageWaitingChange = 0;	
-			} 
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	else
-		{
-		//reset for multiple complete test
-		iNotifyIccMessageWaitingChange = 0;		
-		}	
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChange called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::GetFdnStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneFdnStatus* aFdnStatus)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetFdnStatus called"));
-	*aFdnStatus = DMMTSY_PHONE_FDN_STATUS;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetFdnStatusCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetFdnStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::SetFdnSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneFdnSetting *aFdnSetting)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetFdnSetting called"));
-	if (*aFdnSetting != DMMTSY_PHONE_FDN_SETTING)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);	
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetFdnSettingCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetFdnSettingCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::NotifyFdnStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneFdnStatus* aFdnStatus)
-	{
-	if (!iNotifyFdnStatusChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyFdnStatusChange called"));
-		*aFdnStatus = DMMTSY_PHONE_FDN_STATUS;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyFdnStatusChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyFdnStatusChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::GetMulticallParams(const TTsyReqHandle aTsyReqHandle, TDes8* aMulticallParams)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetMulticallParams called"));
-
-	RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *multicallParamsPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *, aMulticallParams);
-	RMobilePhone::TMobilePhoneMulticallSettingsV1     &multicallParams     = (*multicallParamsPckg)();
-
-	multicallParams.iUserMaxBearers              = DMMTSY_PHONE_USER_MAX_BEARERS1;
-	multicallParams.iServiceProviderMaxBearers  = DMMTSY_PHONE_PROVIDER_MAX_BEARERS1;
-	multicallParams.iNetworkSupportedMaxBearers = DMMTSY_PHONE_NETWORK_MAX_BEARERS1;
-	multicallParams.iUESupportedMaxBearers      = DMMTSY_PHONE_UE_MAX_BEARERS1;
-
-	AddDelayedReq(aTsyReqHandle, this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetMulticallParams(const TTsyReqHandle aTsyReqHandle, TInt* aUserMaxBearers)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetMulticallParams called"));
-
-	if (*aUserMaxBearers != DMMTSY_PHONE_USER_MAX_BEARERS1)
-		ReqCompleted(aTsyReqHandle, KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetMulticallParamsCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetMulticallParamsCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetMulticallParamsCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetMulticallParamsCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifyMulticallParamsChange(const TTsyReqHandle aTsyReqHandle, TDes8* aMulticallParams)
-	{
-	if (!iNotifyMulticallParamsChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallParamsChange called"));
-
-		RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *multicallParamsPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *, aMulticallParams);
-		RMobilePhone::TMobilePhoneMulticallSettingsV1     &multicallParams     = (*multicallParamsPckg)();
-
-		multicallParams.iUserMaxBearers              = DMMTSY_PHONE_USER_MAX_BEARERS2;
-		multicallParams.iServiceProviderMaxBearers  = DMMTSY_PHONE_PROVIDER_MAX_BEARERS2;
-		multicallParams.iNetworkSupportedMaxBearers = DMMTSY_PHONE_NETWORK_MAX_BEARERS2;
-		multicallParams.iUESupportedMaxBearers      = DMMTSY_PHONE_UE_MAX_BEARERS2;		
-
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyMulticallParamsChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallParamsChangeCancel called"));
-	
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetIncomingCallType(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIncomingCallType* aCallType, TDes8* aDataParams)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetIncomingCallType called"));
-
-	RMobileCall::TMobileDataCallParamsV1Pckg *dataParamsPckgV1 = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV1Pckg*, aDataParams);
-	RMobileCall::TMobileDataCallParamsV1     &dataParamsV1     = (*dataParamsPckgV1)();
-
-	dataParamsV1.iService = DMMTSY_DATA_CALL_SERVICE;
-	dataParamsV1.iSpeed = DMMTSY_DATA_CALL_SPEED;
-	dataParamsV1.iProtocol = DMMTSY_DATA_CALL_PROTOCOL;
-	dataParamsV1.iQoS = DMMTSY_DATA_CALL_QOS;
-	dataParamsV1.iRLPVersion = DMMTSY_DATA_CALL_RLP;
-	dataParamsV1.iV42bisReq = DMMTSY_DATA_CALL_V42BIS;
- 	dataParamsV1.iUseEdge = DMMTSY_DATA_CALL_EGPRS_REQUIRED;
-
-	*aCallType = DMMTSY_PHONE_INCOMING_CALL_TYPES;
-
-	AddDelayedReq(aTsyReqHandle, this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetIncomingCallTypeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetIncomingCallTypeCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-
-	}
-
-TInt CPhoneDMmTsy::SetIncomingCallType(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIncomingCallType* aCallType, TDes8* aDataParams)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetIncomingCallType called"));
-
-	RMobileCall::TMobileDataCallParamsV1Pckg *dataParamsPckgV1 = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV1Pckg*, aDataParams);
-	RMobileCall::TMobileDataCallParamsV1     &dataParamsV1     = (*dataParamsPckgV1)();
-
-	if ((*aCallType != DMMTSY_PHONE_INCOMING_CALL_TYPES) ||
-		(dataParamsV1.iService != DMMTSY_DATA_CALL_SERVICE) ||
-		(dataParamsV1.iSpeed != DMMTSY_DATA_CALL_SPEED) ||
-		(dataParamsV1.iProtocol != DMMTSY_DATA_CALL_PROTOCOL) ||
-		(dataParamsV1.iQoS != DMMTSY_DATA_CALL_QOS) || 
-		(dataParamsV1.iRLPVersion != DMMTSY_DATA_CALL_RLP) ||
-		(dataParamsV1.iV42bisReq != DMMTSY_DATA_CALL_V42BIS) ||
- 		(dataParamsV1.iUseEdge != DMMTSY_DATA_CALL_EGPRS_REQUIRED))
-
-		ReqCompleted(aTsyReqHandle, KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetIncomingCallTypeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetIncomingCallTypeCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-
-	}
-
-TInt CPhoneDMmTsy::NotifyIncomingCallTypeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIncomingCallType* aCallType, TDes8* aDataParams)
-	{
-	if (!iNotifyIncomingCallTypeChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyIncomingCallTypeChange called"));
-
-		RMobileCall::TMobileDataCallParamsV1Pckg *dataParamsPckg = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV1Pckg*, aDataParams);
-		RMobileCall::TMobileDataCallParamsV1     &dataParams     = (*dataParamsPckg)();
-
-		if(dataParams.ExtensionId() == RMobileCall::KETelMobileDataCallParamsV2)
-			{
-			RMobileCall::TMobileDataCallParamsV2Pckg *dataParamsPckgV2 = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV2Pckg*, aDataParams);
-			RMobileCall::TMobileDataCallParamsV2     &dataParamsV2     = (*dataParamsPckgV2)();
-			dataParamsV2.iBearerMode = DMMTSY_PHONE_MULTICALLBEARERMODE_NOTSUPPORTED;
-			//reset for V1
-			iNotifyIncomingCallTypeChange = 0;
-			}
-		dataParams.iService = DMMTSY_DATA_CALL_SERVICE1;
-		dataParams.iSpeed = DMMTSY_DATA_CALL_SPEED1;
-		dataParams.iProtocol = DMMTSY_DATA_CALL_PROTOCOL1;
-		dataParams.iQoS = DMMTSY_DATA_CALL_QOS1;
-		dataParams.iRLPVersion = DMMTSY_DATA_CALL_RLP1;
-		dataParams.iV42bisReq = DMMTSY_DATA_CALL_V42BIS1;
- 		dataParams.iUseEdge = DMMTSY_DATA_CALL_EGPRS_NOTREQUIRED;
-
-		*aCallType = DMMTSY_PHONE_INCOMING_CALL_TYPES1;
-		
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	else
-		{
-		//reset for multiple complete test
-		iNotifyIncomingCallTypeChange = 0;
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyIncomingCallTypeChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIncomingCallTypeChangeCancel called"));
-	
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetUUSSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneUUSSetting* aSetting)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetUUSSetting called"));
-
-	*aSetting = DMMTSY_PHONE_UUS_SETTING1;
-
-	AddDelayedReq(aTsyReqHandle, this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetUUSSettingCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetUUSSettingCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetUUSSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneUUSSetting* aSetting)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetUUSSetting called"));
-
-	if(*aSetting != DMMTSY_PHONE_UUS_SETTING2)
-		ReqCompleted(aTsyReqHandle, KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetUUSSettingCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetUUSSettingCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyUUSSettingChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneUUSSetting* aSetting)
-	{
-	if (!iNotifyUUSSettingChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyUUSSettingChange called"));
-
-		*aSetting = DMMTSY_PHONE_UUS_SETTING2;
-
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyUUSSettingChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyUUSSettingChangeCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetMultimediaCallPreference(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMultimediaSettings* aSetting)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetMultimediaCallPreference called"));
-
-	*aSetting = DMMTSY_PHONE_MM_SETTING;
-
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetMultimediaCallPreference(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMultimediaSettings* aSetting)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetMultimediaCallPreference called"));
-
-	if(*aSetting != DMMTSY_PHONE_MM_SETTING)
-		ReqCompleted(aTsyReqHandle, KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetMultimediaCallPreferenceCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetMultimediaCallPreferenceCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyMultimediaCallPreferenceChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMultimediaSettings* aSetting)
-	{
-	if (!iNotifyMmCallPrefChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyMultimediaCallPreferenceChange called"));
-
-		*aSetting = DMMTSY_PHONE_MM_SETTING_2;
-
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyMultimediaCallPreferenceChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMultimediaCallPreferenceChangeCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetNetworkSecurityLevel(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkSecurity* aSecurity)
-	{
-
-	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkSecurityLevel called"));
-
-	*aSecurity = DMMTSY_PHONE_NET_SECURITY;
-
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetNetworkSecurityLevelCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkSecurityLevelCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyNetworkSecurityLevelChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkSecurity* aSecurity)
-	{
-
-	if (!iNotifyNetworkSecurityChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSecurityLevelChange called"));
-	
-		*aSecurity = DMMTSY_PHONE_NET_SECURITY;
-
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyNetworkSecurityLevelChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSecurityLevelChangeCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::EnumerateUSimApplications(const TTsyReqHandle aTsyReqHandle, TInt* aCount, RMobilePhone::TAID* aActiveAID)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::EnumerateUSimApplications called"));
-
-	*aCount = DMMTSY_PHONE_USIM_COUNT;
-	aActiveAID->Copy(DMMTSY_PHONE_USIM_AID);
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::EnumerateUSimApplicationsCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::EnumerateUSimApplicationsCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetUSimApplicationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAID* aAID, RMobilePhone::TUSimAppAction* aAction)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetUSimApplicationStatus called"));
-
-	if ((*aAction != DMMTSY_PHONE_USIM_ACTIVATE) ||
-		(aAID->Compare(DMMTSY_PHONE_USIM_AID) !=0 ))
-		ReqCompleted(aTsyReqHandle, KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetUSimApplicationStatusCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetUSimApplicationStatusCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-
-TInt CPhoneDMmTsy::GetUSimApplicationInfo(const TTsyReqHandle aTsyReqHandle, TInt* aIndex, RMobilePhone::TUSimApplicationInfoV2* aInfo)
-	{
-
-	LOGTEXT(_L8("CPhoneDMmTsy::GetUSimApplicationInfo called"));
-
-	if(*aIndex != DMMTSY_PHONE_USIM_APPINDEX)
-		ReqCompleted(aTsyReqHandle, KErrCorrupt);
-	else
-		{
-		aInfo->iLabel.Copy(DMMTSY_PHONE_USIM_APPLABEL);
-		aInfo->iAID.Copy(DMMTSY_PHONE_USIM_AID);
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetUSimApplicationInfoCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetUSimApplicationInfoCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyUSimApplicationsInfoChange(const TTsyReqHandle aTsyReqHandle, TInt* aCount, RMobilePhone::TAID* aActiveAID)
-	{
-	if (!iNotifyUSimApplicationsInfoChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimApplicationsInfoChange called"));
-		
-		aActiveAID->Copy(DMMTSY_PHONE_USIM_AID);
-		*aCount = DMMTSY_PHONE_USIM_COUNT;
-
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyUSimApplicationsInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimApplicationsInfoChangeCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetUSimAppsSelectionMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aMode)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetUSimAppsSelectionMode called"));
-
-	*aMode = DMMTSY_PHONE_USIM_SELMODE;
-
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetUSimAppsSelectionMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aMode)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetUSimAppsSelectionMode called"));
-
-	if(*aMode != DMMTSY_PHONE_USIM_SELMODE)
-		ReqCompleted(aTsyReqHandle, KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyUSimAppsSelectionModeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aMode)
-	{
-	if (!iNotifyUSimAppsSelectionModeChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimAppsSelectionModeChange called"));
-
-		*aMode = DMMTSY_PHONE_USIM_SELMODE;
-
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyUSimAppsSelectionModeChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimAppsSelectionModeChangeCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetMailboxNumbers(const TTsyReqHandle aTsyReqHandle, TDes8 *aMailBox)
-	{
-	RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg *mailboxPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg*, aMailBox);
-	RMobilePhone::TMobilePhoneVoicemailIdsV3 &mailbox     = (*mailboxPckg)();
-		
-	LOGTEXT(_L8("CPhoneDMmTsy::GetMailboxNumbers called"));
-	mailbox.iVoice = DMMTSY_PHONE_MAILBOXNUMBER_VOICE;
-	mailbox.iData = DMMTSY_PHONE_MAILBOXNUMBER_DATA;
-	mailbox.iFax = DMMTSY_PHONE_MAILBOXNUMBER_FAX;
-	mailbox.iOther = DMMTSY_PHONE_MAILBOXNUMBER_OTHER;
-		
-	if(mailbox.ExtensionId() == KEtelExtMultimodeV8 )
-		{
-		RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg *mailboxV8Pckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg*, aMailBox);
-		RMobilePhone::TMobilePhoneVoicemailIdsV8 &mailboxV8     = (*mailboxV8Pckg)();
-		LOGTEXT(_L8("CPhoneDMmTsy::GetMailboxNumbers V8 class is called"));
-		mailboxV8.iVideo = DMMTSY_PHONE_MAILBOXNUMBER_VIDEO;
-		}
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;	
-	}
-
-	
-TInt CPhoneDMmTsy::GetMailboxNumbersCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetMailboxNumbersCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifyMailboxNumbersChange(const TTsyReqHandle aTsyReqHandle, TDes8 *aMailBox)
-	
-	{
-	RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg *mailboxPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg*, aMailBox);
-	RMobilePhone::TMobilePhoneVoicemailIdsV3 &mailbox     = (*mailboxPckg)();
-	
-	if (!iNotifyMailBoxNumbersChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyMailboxNumbersChange called"));
-		mailbox.iVoice = DMMTSY_PHONE_MAILBOXNUMBER_VOICE;
-		mailbox.iData = DMMTSY_PHONE_MAILBOXNUMBER_DATA;
-		mailbox.iFax = DMMTSY_PHONE_MAILBOXNUMBER_FAX;
-		mailbox.iOther = DMMTSY_PHONE_MAILBOXNUMBER_OTHER;
-		
-		if(mailbox.ExtensionId() == KEtelExtMultimodeV8)
-			{
-			RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg *mailboxPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg*, aMailBox);
-			RMobilePhone::TMobilePhoneVoicemailIdsV8 &mailbox     = (*mailboxPckg)();
-			mailbox.iVideo = DMMTSY_PHONE_MAILBOXNUMBER_VIDEO;
-			iNotifyMailBoxNumbersChange=0;
-			}
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	else
-		{
-		iNotifyMailBoxNumbersChange=0;		
-		}
-
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifyMailboxNumbersChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMailboxNumbersChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyMmsUpdate(const TTsyReqHandle aTsyReqHandle, TDes8 *aNotification)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsUpdate called"));
-
-	RMobilePhone::TMmsNotificationV3Pckg *mmsPckg = REINTERPRET_CAST(RMobilePhone::TMmsNotificationV3Pckg *, aNotification);
-	RMobilePhone::TMmsNotificationV3 &mms = (*mmsPckg)();
-
-	if (!iNotifyMmsUpdate++)
-		{
-		mms.iSpace = DMMTSY_PHONE_MMS_UPDATE_SPACE;
-		mms.iNotification = DMMTSY_PHONE_MMS_UPDATE_NOTIFICATION;
-		mms.iMmsStatus = DMMTSY_PHONE_MMS_UPDATE_STATUS;
-		mms.iImplementation = DMMTSY_PHONE_MMS_UPDATE_IMPLEMENTATION;
-		mms.iNotify = DMMTSY_PHONE_MMS_UPDATE_NOTIFY;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetAirTimeDuration(const TTsyReqHandle aTsyReqHandle, TTimeIntervalSeconds* aTime)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetAirTimeDuration called"));
-	*aTime=DMMTSY_AIR_TIME_DURATION1;
-	ReqCompleted(aTsyReqHandle,KErrNone);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifyAirTimeDurationChange(const TTsyReqHandle aTsyReqHandle, TTimeIntervalSeconds* aTime)
-	{
-	if (!iNotifyAirTimeChangeChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyAirTimeDurationChange called"));
-		*aTime=DMMTSY_AIR_TIME_DURATION2;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyAirTimeDurationChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAirTimeDurationChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::TerminateAllCalls(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::TerminateAllCalls called"));
-	if (!iTerminateAllCalls++)
-		{
-		//Just return KErrNone
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::TerminateAllCallsCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::TerminateAllCallsCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::TerminateActiveCalls(const TTsyReqHandle aTsyReqHandle)
-    {
-    LOGTEXT(_L8("CPhoneDMmTsy::TerminateActiveCalls called"));
-    if (!iTerminateActiveCalls++)
-        {
-        //Just return KErrNone
-        ReqCompleted(aTsyReqHandle,KErrNone);
-        }
-    return KErrNone;
-    }
-    
-TInt CPhoneDMmTsy::TerminateActiveCallsCancel(const TTsyReqHandle aTsyReqHandle)
-    {
-    LOGTEXT(_L8("CPhoneDMmTsy::TerminateActiveCallsCancel called"));
-    RemoveDelayedReq(aTsyReqHandle);
-    ReqCompleted(aTsyReqHandle,KErrCancel);
-    return KErrNone;
-    }
-
- TInt CPhoneDMmTsy::NotifySendNetworkServiceRequest(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNotifySendSSOperation* aOperation, TDes8* aRequestComplete)
- 	{
- 	LOGTEXT(_L8("CPhoneDMmTsy::NotifySendNetworkServiceRequest called"));
-	if (!iNotifySendNetworkServiceRequest++)
-		{
-		RMobilePhone::TMobilePhoneSendSSRequestV3Pckg* ssRequestPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneSendSSRequestV3Pckg*,aRequestComplete);
-		RMobilePhone::TMobilePhoneSendSSRequestV3& ssRequest = (*ssRequestPckg)();
-			
-		if(*aOperation!=DMMTSY_PHONE_NOTIFY_SERVICEREQUEST || 
-			ssRequest.ExtensionId()!=KETelExtMultimodeV3)
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		else
-			{	
-			ssRequest.iOpCode = DMMTSY_PHONE_NOTIFY_OPCODE;
-			ssRequest.iAdditionalInfo = DMMTSY_PHONE_NOTIFY_ADDINFO;			
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			}
-		}	
-	return KErrNone;
- 	}
- 
- TInt CPhoneDMmTsy::NotifySendNetworkServiceRequestCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifySendNetworkServiceRequestCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
- TInt CPhoneDMmTsy::NotifyAllSendNetworkServiceRequest(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNotifySendSSOperation* aOperation, TDes8* aRequestComplete)
- 	{
- 	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAllSendNetworkServiceRequest called"));
-	
-	RMobilePhone::TMobilePhoneSendSSRequestV3Pckg* ssRequestPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneSendSSRequestV3Pckg*,aRequestComplete);
-	RMobilePhone::TMobilePhoneSendSSRequestV3& ssRequest = (*ssRequestPckg)();
-			
-	if(ssRequest.ExtensionId()!=KETelExtMultimodeV3)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		{
-		//Return the error for some Invoke operation, like received from network.
-		*aOperation = DMMTSY_PHONE_NOTIFY_SERVICEREQUEST_ERROR;
-		//Return result problem code (return Mistyped Parameter)
-		ssRequest.iOpCode = DMMTSY_PHONE_NOTIFY_RETURN_ERROR_PROBLEM_CODE;
-		ssRequest.iAdditionalInfo = DMMTSY_PHONE_NOTIFY_ADDINFO;
-		AddDelayedReq(aTsyReqHandle, this);
-		}				
-	
-	return KErrNone;
- 	}
- 	
- TInt CPhoneDMmTsy::NotifyAllSendNetworkServiceRequestCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAllSendNetworkServiceRequestCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
- TInt CPhoneDMmTsy::ClearBlacklist(const TTsyReqHandle aTsyReqHandle)
- 	{
-	LOGTEXT(_L8("CPhoneDMmTsy::ClearBlacklist called"));
-	if (!iClearBlacklist++)
-		{
-		//Just return KErrNone
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	return KErrNone; 	
- 	}
- 	
-TInt CPhoneDMmTsy::ClearBlacklistCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::ClearBlacklistCancel called"));
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifyDTMFEvent(const TTsyReqHandle aTsyReqHandle,RMobilePhone::TMobilePhoneDTMFEvent* aEvent)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFEvent called"));
-	if (!iNotifyDTMFEvent++)
-		{
-		*aEvent = DMMTSY_PHONE_NOTIFY_DTMFEVENT_ON;
-		ReqCompleted(aTsyReqHandle,KErrNone);
-		}
-	return KErrNone; 	
-	}
-	
-TInt CPhoneDMmTsy::NotifyDTMFEventCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFEventCancel called"));
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetPersonalisationCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) 
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationCaps called"));
-	*aCaps = (DMMTSY_PHONE_PERS_CAPS_SERV_PROV | DMMTSY_PHONE_PERS_CAPS_NETWORK);
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetPersonalisationCapsCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationCapsCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetPersonalisationStatus(const TTsyReqHandle aTsyReqHandle, TUint32* aPersSchemes) 
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationStatus called"));
-	*aPersSchemes = (DMMTSY_PHONE_PERS_GET_NETWORK_SUB | DMMTSY_PHONE_PERS_GET_CORPORATE);
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetPersonalisationStatusCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetPersonalisationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePersonalisation* aPersSchemes, TDes* aPersCode) 
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetPersonalisationStatus called"));
-	if((*aPersSchemes == DMMTSY_PHONE_PERS_SET_USIM) &&
-	   (*aPersCode == DMMTSY_PHONE_PERS_SET_CODE))
-		AddDelayedReq(aTsyReqHandle,this);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);			
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::SetPersonalisationStatusCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetPersonalisationStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCurrentNetworkName(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkName, TDes8* aLocInfo)	
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkName called"));
-
-	RMobilePhone::TMobilePhoneNetworkNameV3Pckg* networkNamePckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkNameV3Pckg*,aNetworkName);
-	RMobilePhone::TMobilePhoneNetworkNameV3& networkName = (*networkNamePckg)();
-	
-	RMobilePhone::TMobilePhoneOPlmnV3Pckg* plmnPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneOPlmnV3Pckg*,aLocInfo);
-	RMobilePhone::TMobilePhoneOPlmnV3& plmn = (*plmnPckg)();
-	
-	if(networkName.ExtensionId() != KETelExtMultimodeV3 ||
-	   plmn.ExtensionId() != KETelExtMultimodeV3)
-	   		ReqCompleted(aTsyReqHandle,KErrCorrupt);	
-	 else
-	 	{
-	 	//Fill TMobilePhoneNetworkNameV3
-	 	networkName.iLongName = DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
-		networkName.iShortName = DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
-		networkName.iOtherNames = DMMTSY_PHONE_HOME_NETWORK_OTHER_NAMES;
-		//Fill TMobilePhoneOPlmnV3
-		plmn.iCountryCode = DMMTSY_PHONE_COUNTRY_ID;
-		plmn.iNetworkId = DMMTSY_PHONE_NETWORK_ID;
-		plmn.iPNNid = DMMTSY_PHONE_HOME_NETWORK_NAME_LOC_ID;		
-		plmn.iFirstLocationAreaCode = DMMTSY_PHONE_HOME_NETWORK_FIRST_ID;
-		plmn.iLastLocationAreaCode = DMMTSY_PHONE_HOME_NETWORK_LAST_ID;
-		AddDelayedReq(aTsyReqHandle,this);
-	 	}
-	return KErrNone;	
-	}
-	
-TInt CPhoneDMmTsy::GetCurrentNetworkNameCancel(const TTsyReqHandle aTsyReqHandle)	
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkNameCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetPreferredNetworksPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhase1 called"));
-	TInt ret=KErrNone;
-	TInt leaveCode=KErrNone;
-	TRAP(leaveCode, ret=ProcessGetPreferredNetworksPhase1L(aTsyReqHandle, aClient, aBufSize););
-	if (leaveCode != KErrNone)
-		ReqCompleted(aTsyReqHandle,leaveCode);
-	return ret;
-	}	
-	
-TInt CPhoneDMmTsy::ProcessGetPreferredNetworksPhase1L(const TTsyReqHandle aTsyReqHandle, 
-													 RMobilePhone::TClientId* aClient, 
-													 TInt* aBufSize)
-	{
-	// retrieve stored networks from USIM,
-	// store each entry.
-	// stream the list and then return size of this buffer to client
-	CMobilePhoneStoredNetworkList* list=CMobilePhoneStoredNetworkList::NewL();
-	CleanupStack::PushL(list);
-
-	RMobilePhone::TMobilePreferredNetworkEntryV3 entry;
-
-	// fill up an example list
-	for (TInt index=0; index < DMMTSY_PHONE_NTWK_LIST_ENTRIES; index++)
-		{
-		switch (index)
-			{
-		case 0:
-			entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM;
-			entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE;
-			entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID1;
-			entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1;
-			break;
-		case 1:
-			entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSMC;
-			entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE;
-			entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2;
-			entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID2;
-			break;
-		case 2:
-		default:
-			entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_UTRAN;
-			entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE;
-			entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2;
-			entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1;
-			break;
-		case 3:
-			entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_WLAN;
-			entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE;
-			entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2;
-			entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1;
-			break;
-			
-			}
-		// Add the entry into the list, at the next empty location
-		list->AddEntryL(entry);
-		}
-
-	// Store the streamed list and the client ID
-	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle);
-	CleanupStack::PushL(read);
-	
-	read->iListBuf = list->StoreLC();
-	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
-	
-	iGetPreferredNetworks->AppendL(read);
-	CleanupStack::Pop(); // pop the CListReadAllAttempt
-	
-	// return the CBufBase’s size to client
-	*aBufSize=(read->iListBuf)->Size();
-	
-	// Complete first phase of list retrieval
-	AddDelayedReq(aTsyReqHandle,this);
-	CleanupStack::PopAndDestroy(); // pop&destroy list
-	return KErrNone;
-	}
-
-
-
-TInt CPhoneDMmTsy::GetPreferredNetworksPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhase2 called"));
-	CListReadAllAttempt* read=NULL;
-	// Find the get detected network attempt from this client
-	for (TInt i=0; i<iGetPreferredNetworks->Count(); ++i)
-		{
-		read = iGetPreferredNetworks->At(i);
-		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
-		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
-			{
-			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
-			// Copy the streamed list to the client
-			aBuf->Copy(bufPtr);
-			delete read;
-			iGetPreferredNetworks->Delete(i);
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			return KErrNone;
-			}
-		}
-	// Should handle error case of not finding the matching client from read all phase 1
-	return KErrNotFound;
-	}
-	
-TInt CPhoneDMmTsy::GetPreferredNetworksCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhaseCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	// Remove the read all attempt from iGetPreferredNetworks
-	CListReadAllAttempt* read=NULL;
-	for (TInt i=0; i<iGetPreferredNetworks->Count(); ++i)
-		{
-		read = iGetPreferredNetworks->At(i);
-		if (read->iReqHandle == aTsyReqHandle)
-			{
-			delete read;
-			iGetPreferredNetworks->Delete(i);
-			break;
-			}
-		}
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyMmsUpdateCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsUpdateCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetMmsUserConnParams(const TTsyReqHandle aTsyReqHandle, TDes8* aConnectivity)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserConnParams called"));
-	if(aConnectivity->Compare(DMMTSY_PHONE_MMS_USER_CONN_PARAMS) == 0 )
-		AddDelayedReq(aTsyReqHandle,this);		
-	else
-		ReqCompleted(aTsyReqHandle, KErrCorrupt);
-	return KErrNone;
-	} 
-	
-TInt CPhoneDMmTsy::SetMmsUserConnParamsCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserConnParamsCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetMmsUserPreferences(const TTsyReqHandle aTsyReqHandle, TDes8* aPreferences)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserPreferences called"));
-	if(aPreferences->Compare(DMMTSY_PHONE_MMS_USER_PREF_PARAMS) == 0 )
-		AddDelayedReq(aTsyReqHandle,this);		
-	else
-		ReqCompleted(aTsyReqHandle, KErrCorrupt);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetMmsUserPreferencesCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserPreferencesCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetMmsConfig(const TTsyReqHandle aTsyReqHandle,  RMobilePhone::TMmsConnParams aType, TDes8* aConnectivity)
-
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetMmsConfig called"));
-	if (aType == DMMTSY_PHONE_MMS_USER_CONN_PARAMS_TYPE )
-		{
-		*aConnectivity = DMMTSY_PHONE_MMS_USER_CONN_PARAMS;
-		AddDelayedReq(aTsyReqHandle,this);
-		} 
-	else
-		ReqCompleted(aTsyReqHandle, KErrCorrupt);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetMmsConfigCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetMmsConfigCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}	
-	
-TInt CPhoneDMmTsy::NotifyMmsConfig(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMmsConnParams aType, TDes8* aConnectivity)
-	
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsConfig called"));
-	if(!iNotifyMmsConfig++)
-		{
-		if (aType == DMMTSY_PHONE_MMS_USER_CONN_PARAMS_TYPE )
-			{
-			*aConnectivity = DMMTSY_PHONE_MMS_USER_CONN_PARAMS;
-			AddDelayedReq(aTsyReqHandle,this);
-			} 
-		else
-			ReqCompleted(aTsyReqHandle, KErrCorrupt);
-		}
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifyMmsConfigCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsConfigCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetHomeNetworkSearchPeriod(const TTsyReqHandle aTsyReqHandle, TInt* aSearchIntv)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetworkSearchPeriod called"));
-	*aSearchIntv = DMMTSY_PHONE_HOME_NETWORK_SEARCHINTV;
-	AddDelayedReq(aTsyReqHandle,this);	
-	return KErrNone;
-	
-	}
-	
-TInt CPhoneDMmTsy::GetHomeNetworkSearchPeriodCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetworkSearchPeriodCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::GetLastUsedAccessTechnology(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkAccess* aAccessTech)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetLastUsedAccessTechnology called"));
-	*aAccessTech = DMMTSY_PHONE_LAST_USED_ACCESS_TECH;
-	AddDelayedReq(aTsyReqHandle,this);	
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetLastUsedAccessTechnologyCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetLastUsedAccessTechnologyCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::GetNetworkInvScanSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneInvestigationScan* aSetting)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkInvScanSetting called"));
-	*aSetting = DMMTSY_PHONE_NETWORK_INV_SCAN;
-	AddDelayedReq(aTsyReqHandle,this);	
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifyNetworkInvScanChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneInvestigationScan* aSetting)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanChange called"));
-	if(!iNotifyNetworkInvScanChange++)
-		{
-		*aSetting = DMMTSY_PHONE_NETWORK_INV_SCAN;
-		AddDelayedReq(aTsyReqHandle,this);	
-		}
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifyNetworkInvScanChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-	
-TInt CPhoneDMmTsy::NotifyNetworkInvScanEvent(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneInvestigationScanEvent* aEvent)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanEvent called"));
-	if(!iNotifyNetworkInvScanEvent++)
-		{
-		*aEvent = DMMTSY_PHONE_NETWORK_INV_SCAN_EVENT;
-		AddDelayedReq(aTsyReqHandle,this);	
-		}
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifyNetworkInvScanEventCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanEventCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-	
-TInt CPhoneDMmTsy::GetCallForwardingIndicator(const TTsyReqHandle aTsyReqHandle, TDes8* aIndicator)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingIndicator called"));
-	
-	RMobilePhone::TMobilePhoneCFUIndicatorV3Pckg* indicatorPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFUIndicatorV3Pckg*, aIndicator);
-	RMobilePhone::TMobilePhoneCFUIndicatorV3& indicator = (*indicatorPckg)();
-	if( indicator.ExtensionId() == KETelExtMultimodeV3 )
-		{
-		indicator.iIndicator = DMMTSY_PHONE_CFU_INDICATOR;
-		}
-	else if(indicator.ExtensionId() == KEtelExtMultimodeV6 )
-		{
-		RMobilePhone::TMobilePhoneCFUIndicatorV6Pckg* indicatorPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFUIndicatorV6Pckg*, aIndicator);
-		RMobilePhone::TMobilePhoneCFUIndicatorV6& indicator = (*indicatorPckg)();
-		indicator.iIndicator = DMMTSY_PHONE_CFU_INDICATOR1;
-		indicator.iCFNumber.iTypeOfNumber = DMMTSY_PHONE_CFU_TON;
-		indicator.iCFNumber.iNumberPlan = DMMTSY_PHONE_CFU_NPI;
-		indicator.iCFNumber.iTelNumber = DMMTSY_PHONE_CFU_TELNUMBER;
-		indicator.iMultipleSubscriberProfileID = DMMTSY_PHONE_CFU_MSP;
-		}
-	AddDelayedReq(aTsyReqHandle,this);	
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetCallForwardingIndicatorCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingIndicatorCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetCompMethodName(const TTsyReqHandle aTsyReqHandle, TUint aCmi, TDes* aAlphaTag)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCompMethodName called"));
-	if(aCmi != DMMTSY_PHONE_CB_COMP_METHOD_ID)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		{
-		*aAlphaTag = DMMTSY_PHONE_CB_ALPHA_TAG;
-		AddDelayedReq(aTsyReqHandle,this);	
-		}
-	return KErrNone;
-	}
-TInt CPhoneDMmTsy::GetCompMethodNameCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCompMethodNameCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::EnumerateAPNEntries(const TTsyReqHandle aTsyReqHandle, TUint32* aIndex)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::EnumerateAPNEntries called"));
-	*aIndex = DMMTSY_PHONE_APN_ENUMERATE;
-	AddDelayedReq(aTsyReqHandle,this);	
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::EnumerateAPNEntriesCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::EnumerateAPNEntriesCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetAPNname(const TTsyReqHandle aTsyReqHandle, TUint32 aIndex, TDes8* aAPN)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetAPNname called"));
-	
-	RMobilePhone::TAPNEntryV3Pckg* entryPckg = REINTERPRET_CAST(RMobilePhone::TAPNEntryV3Pckg*, aAPN);
-	RMobilePhone::TAPNEntryV3& entry = (*entryPckg)();
-	
-	switch(aIndex)
-		{
-	case 0:
-		{
-		entry.iApn.Append(DMMTSY_PHONE_APN_ENTRY1);
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-		break;
-	case 1:
-		{
-		entry.iApn.Append(DMMTSY_PHONE_APN_ENTRY2);
-		AddDelayedReq(aTsyReqHandle,this);	
-		}
-		break;
-	case 2:
-		{
-		entry.iApn.Append(DMMTSY_PHONE_APN_ENTRY3);
-		AddDelayedReq(aTsyReqHandle,this);	
-		}
-		break;
-	default:
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		break;
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetAPNnameCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetAPNnameCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::AppendAPNName(const TTsyReqHandle aTsyReqHandle, TDes8* aAPN)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::AppendAPNName called"));
-	
-	RMobilePhone::TAPNEntryV3Pckg* entryPckg = REINTERPRET_CAST(RMobilePhone::TAPNEntryV3Pckg*, aAPN);
-	RMobilePhone::TAPNEntryV3& entry = (*entryPckg)();
-	
-	if ((entry.iApn.Length() > RMobilePhone::KMaxApnName) ||
-		(entry.iApn != DMMTSY_PHONE_APN_ENTRY_TO_APPEND))
-		{
-		// Checking that the entry passed in is equal to DMMTSY_PHONE_APN_ENTRY_TO_APPEND
-		// confirms that the APN entry has made it from the client to the TSY properly,
-		// i.e the packaging etc. works.
-		ReqCompleted(aTsyReqHandle, KErrBadName);
-		}
-	else 
-		{
-		AddDelayedReq(aTsyReqHandle, this);
-		}
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::AppendAPNNameCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::AppendAPNNameCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle, KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::DeleteAPNName(const TTsyReqHandle aTsyReqHandle, TUint32 aIndex)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::DeleteAPNName called"));
-	if (aIndex > (DMMTSY_PHONE_APN_ENUMERATE-1))
-		{
-		ReqCompleted(aTsyReqHandle, KErrTooBig);
-		}
-	else
-		{
-		AddDelayedReq(aTsyReqHandle, this);
-		}
-	return KErrNone; 
-	}
-	
-TInt CPhoneDMmTsy::DeleteAPNNameCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::DeleteAPNNameCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle, KErrCancel);	
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyAPNListChanged(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNListChanged called"));
-	AddDelayedReq(aTsyReqHandle, this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyAPNListChangedCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNListChangedCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle, KErrCancel);	
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::SetAPNControlListServiceStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAPNControlListServiceStatus aAPNControlListServiceStatus)
-	{
-	if ((aAPNControlListServiceStatus != DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_ENABLED) &&
-		(aAPNControlListServiceStatus != DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_DISABLED))
-		{
-		ReqCompleted(aTsyReqHandle, KErrArgument);
-		}
-	else
-		{
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::SetAPNControlListServiceStatusCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetAPNControlListServiceStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle, KErrCancel);	
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetAPNControlListServiceStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAPNControlListServiceStatus* aAPNControlListServiceStatus)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetAPNControlListServiceStatus called"));
-	*aAPNControlListServiceStatus = DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_DISABLED;
-	AddDelayedReq(aTsyReqHandle, this);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetAPNControlListServiceStatusCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetAPNControlListServiceStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle, KErrCancel);	
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::NotifyAPNControlListServiceStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAPNControlListServiceStatus* aAPNControlListServiceStatus)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNControlListServiceStatusChange called"));
-	*aAPNControlListServiceStatus = DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_ENABLED;
-	AddDelayedReq(aTsyReqHandle, this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyAPNControlListServiceStatusChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNControlListServiceStatusChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle, KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::StorePreferredNetworksList(const TTsyReqHandle aTsyReqHandle, TDes8* aBuffer)
-	{
-	LOGTEXT(_L8("CSmsMessagingDMmTsy::StorePreferredNetworksList called"));
-	TInt ret=KErrNone;
-	TInt leaveCode=KErrNone;
-	TRAP(leaveCode, ret=ProcessStorePreferredNetworksListL(aTsyReqHandle, aBuffer););
-	if (leaveCode != KErrNone)
-		ReqCompleted(aTsyReqHandle,leaveCode);
-	return ret;
-	};
-
-TInt CPhoneDMmTsy::ProcessStorePreferredNetworksListL(TTsyReqHandle aTsyReqHandle, TDes8* aBuffer)
-	{
-	CMobilePhoneStoredNetworkList* list=CMobilePhoneStoredNetworkList::NewL();
-	CleanupStack::PushL(list);
-	
-	list->RestoreL(*aBuffer);
-
-	RMobilePhone::TMobilePreferredNetworkEntryV3 entry;
-
-	if (list->Enumerate() != DMMTSY_PHONE_NTWK_LIST_ENTRIES)
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		CleanupStack::PopAndDestroy(); // list
-		return KErrNone;
-		}
-
-	TInt error=KErrNone;
-	TInt ret;
-	for (TInt i=0; i<DMMTSY_PHONE_NTWK_LIST_ENTRIES; ++i)
-		{
-		TRAP(ret,entry=list->GetEntryL(i));
-		if (ret != KErrNone)
-			break;
-			switch(i)
-			{
-			case 0:
-				{
-				if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_WLAN ||
-				entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE ||
-				entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2 ||
-				entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1)
-					error  = KErrCorrupt;
-				}
-				
-				break;
-			case 1:
-				{
-				if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_UTRAN ||
-				entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE ||
-				entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2 ||
-				entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1)
-					error  = KErrCorrupt;
-				}
-				
-				break;
-			case 2:
-				{
-				if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSMC ||
-				entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE ||
-				entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2 ||
-				entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID2)
-					error  = KErrCorrupt;
-				}
-				break;
-			case 3:
-			default:
-				{
-				if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM ||
-				entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE ||
-				entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID1 ||
-				entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1)
-					error  = KErrCorrupt;
-				}
-				break;
-			}
-		}
-	if(error==KErrNone)	
-		AddDelayedReq(aTsyReqHandle,this);
-	else
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	CleanupStack::PopAndDestroy(); // list
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::StorePreferredNetworksListCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CSmspStoreDMmTsy::StorePreferredNetworksListCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifyStorePreferredNetworksListChange(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyStorePreferredNetworksListChange called"));
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifyStorePreferredNetworksListChangeCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyStorePreferredNetworksListChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetCipheringIndicatorStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobileCallCipheringIndicator& aIndicatorStatus)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCipheringIndicatorStatus called"));
-	aIndicatorStatus = DMMTSY_PHONE_NET_CIPHER_IND;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetCipheringIndicatorStatusCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCipheringIndicatorStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifyCipheringIndicatorStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobileCallCipheringIndicator& aIndicatorStatus)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCipheringIndicatorStatus called"));
-	if (!iNotifyCipheringIndicatorStatus++)
-		{
-		aIndicatorStatus = DMMTSY_PHONE_NET_CIPHER_IND;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyCipheringIndicatorStatusCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCipheringIndicatorStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetIdentityServiceStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIdService aService, RMobilePhone::TMobilePhoneIdServiceSetting aSetting)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetIdentityServiceStatus called"));
-	if(aService != DMMTSY_PHONE_ID_SERVICE || aSetting != DMMTSY_PHONE_ID_SETTING)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else
-		AddDelayedReq(aTsyReqHandle,this);
-
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetIdentityServiceStatusCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetIdentityServiceStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt  CPhoneDMmTsy::NotifyIdentityServiceStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIdService aService, RMobilePhone::TMobilePhoneIdServiceStatus* aStatus)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentityServiceStatus called"));
-	if (!iNotifyIdentityServiceStatus++)
-		{
-		if(aService!=DMMTSY_PHONE_ID_SERVICE)
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		else
-			{
-			*aStatus = DMMTSY_PHONE_ID_STATUS;
-			AddDelayedReq(aTsyReqHandle,this);
-			}
-		}
-	return KErrNone;
-	}
-TInt CPhoneDMmTsy::NotifyIdentityServiceStatusCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentityServiceStatusCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt  CPhoneDMmTsy::NotifyIdentitySuppressionRejected(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentitySuppressionRejected called"));
-	if (!iNotifyIdentitySuppressionRejected++)
-		{
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-TInt CPhoneDMmTsy::NotifyIdentitySuppressionRejectedCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentitySuppressionRejectedCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyMulticallIndicatorChange(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMulticallIndicator* aMulticallIndicator)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallIndicatorChange called"));
-	if (!iNotifyMulticallIndicatorChange++)
-		{
-		*aMulticallIndicator = DMMTSY_PHONE_MULTICALL_IND;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyMulticallIndicatorChangeCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallIndicatorChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::EnumerateSmartCardApplications(const TTsyReqHandle aTsyReqHandle,TUint* aCount)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::EnumerateSmartCardApplications called"));
-
-	*aCount = DMMTSY_PHONE_SC_COUNT;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::EnumerateSmartCardApplicationsCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::EnumerateSmartCardApplicationsCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetSmartCardApplicationInfo(const TTsyReqHandle aTsyReqHandle,TUint* aAppIndex, TDes8* aInfoBuffer)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardApplicationInfo called"));
-
-	if(*aAppIndex == DMMTSY_PHONE_SC_APP_INDEX1)
-		{
-		RMobilePhone::TSmartCardApplicationInfoV5Pckg *ScAppInfoPckg = REINTERPRET_CAST(RMobilePhone::TSmartCardApplicationInfoV5Pckg *, aInfoBuffer);
-		RMobilePhone::TSmartCardApplicationInfoV5 &ScAppInfo = (*ScAppInfoPckg)();
-		
-		if(ScAppInfo.ExtensionId() != KEtelExtMultimodeV5)
-			{
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);
-			}
-		else
-			{
-			ScAppInfo.iAID = DMMTSY_PHONE_SC_AID;
-			ScAppInfo.iLabel = DMMTSY_PHONE_SC_LABEL;
-			}			
-		}
-	else
-		{
-		return DMMTSY_PHONE_SC_OUTOFRANGE;	
-		}	
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;		
-	}
-	
-TInt CPhoneDMmTsy::GetSmartCardApplicationInfoCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardApplicationInfoCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifySmartCardApplicationInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TSmartCardApplicationEvent* aEvent, RMobilePhone::TAID* aAID)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifySmartCardApplicationInfoChange called"));
-	if(!iNotifySmartCardApplicationInfoChange++)
-		{
-		*aEvent = DMMTSY_PHONE_SC_EVENT_ACTIVATE;
-		*aAID = DMMTSY_PHONE_SC_AID;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifySmartCardApplicationInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifySmartCardApplicationInfoChange called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::SetSmartCardApplicationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAID* aAID, RMobilePhone::TSmartCardApplicationAction aAction)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetSmartCardApplicationStatus called"));
-
-	if(*aAID != DMMTSY_PHONE_SC_AID2 || aAction != DMMTSY_PHONE_SC_ACTION_TERMINATE)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else		
-		AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;		
-	}
-	
-TInt CPhoneDMmTsy::SetSmartCardApplicationStatusCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetSmartCardApplicationStatusCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::GetScFileInfo(const TTsyReqHandle aTsyReqHandle, const RMobilePhone::TScFilePath& aFilePathId, TDes8* aInfo)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetScFileInfo called"));
-
-	if(aFilePathId.iAID != DMMTSY_PHONE_SC_AID || aFilePathId.iPath != DMMTSY_PHONE_SC_PATH_REF)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else		
-		{
-		RMobilePhone::TScFileInfoV5Pckg *scFileInfoPckg = REINTERPRET_CAST(RMobilePhone::TScFileInfoV5Pckg*, aInfo);
-		RMobilePhone::TScFileInfoV5 &scFileInfo = (*scFileInfoPckg)();
-		
-		if(scFileInfo.ExtensionId() != KEtelExtMultimodeV5)
-			{
-			ReqCompleted(aTsyReqHandle,KErrCorrupt);
-			}
-		else
-			{
-			scFileInfo.iFileID = DMMTSY_PHONE_SC_FILEID;
-			scFileInfo.iNumberRecords = DMMTSY_PHONE_SC_NORECORDS;
-			scFileInfo.iRecordLength = DMMTSY_PHONE_SC_RECORD_SIZE;
-			scFileInfo.iType = DMMTSY_PHONE_SC_TYPE;
-			scFileInfo.iTotalLength = DMMTSY_PHONE_SC_FILESIZE;
-			}	
-		AddDelayedReq(aTsyReqHandle,this);
-		}		
-	return KErrNone;		
-	}
-	
-TInt CPhoneDMmTsy::GetScFileInfoCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetScFileInfoCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::ReadScFile(const TTsyReqHandle aTsyReqHandle, const RMobilePhone::TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8* aReadBuffer)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::ReadScFile called"));
-	
-	if(aFilePathOffsets.iAID != DMMTSY_PHONE_SC_AID || aFilePathOffsets.iPath != DMMTSY_PHONE_SC_PATH_REF || aFilePathOffsets.iType != DMMTSY_PHONE_SC_TYPE || aFilePathOffsets.iCount != DMMTSY_PHONE_SC_NORECORDS || aFilePathOffsets.iStartOffset != DMMTSY_PHONE_SC_START_OFFSET)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else		
-		{
-		aReadBuffer->Zero();
-		aReadBuffer->Append(DMMTSY_PHONE_SC_RECORD0);
-		aReadBuffer->Append(DMMTSY_PHONE_SC_RECORD1);
-		aReadBuffer->Append(DMMTSY_PHONE_SC_RECORD2);
-		
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::ReadScFileCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::ReadScFileCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-	
-TInt CPhoneDMmTsy::UpdateScFile(const TTsyReqHandle aTsyReqHandle, const RMobilePhone::TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8* aWriteBuffer)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::UpdateScFile called"));
-	
-	TInt startoffset = 0;
-	TPtr8 record0(aWriteBuffer->MidTPtr(startoffset,DMMTSY_PHONE_SC_RECORD_SIZE));
-	startoffset += DMMTSY_PHONE_SC_RECORD_SIZE;
-	TPtr8 record1(aWriteBuffer->MidTPtr(startoffset,DMMTSY_PHONE_SC_RECORD_SIZE));
-	startoffset += DMMTSY_PHONE_SC_RECORD_SIZE;
-	TPtr8 record2(aWriteBuffer->MidTPtr(startoffset,DMMTSY_PHONE_SC_RECORD_SIZE));
-		
-	if(aFilePathOffsets.iAID != DMMTSY_PHONE_SC_AID || aFilePathOffsets.iPath != DMMTSY_PHONE_SC_PATH_REF || aFilePathOffsets.iType != DMMTSY_PHONE_SC_TYPE || aFilePathOffsets.iCount != DMMTSY_PHONE_SC_NORECORDS || aFilePathOffsets.iStartOffset != DMMTSY_PHONE_SC_START_OFFSET)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else if(record0 != DMMTSY_PHONE_SC_RECORD0 || record1 != DMMTSY_PHONE_SC_RECORD1 || record2 != DMMTSY_PHONE_SC_RECORD2)
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-	else	
-		AddDelayedReq(aTsyReqHandle,this);
-		
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::UpdateScFileCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::UpdateScFileCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-	
-TInt CPhoneDMmTsy::GetCurrentActiveUSimApplication(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAID* aAID)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentActiveUSimApplication called"));
-
-	*aAID = DMMTSY_PHONE_SC_AID;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;		
-	}
-	
-TInt CPhoneDMmTsy::GetCurrentActiveUSimApplicationCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentActiveUSimApplicationCancel called"));
-
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-	
-CPhoneDMmTsy* CPhoneDMmTsy::This(TAny* aPtr)
-	{
-	return REINTERPRET_CAST(CPhoneDMmTsy*,aPtr);
-	}
-
-TInt CPhoneDMmTsy::GetAuthorizationInfoPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aId, TInt* aBufSize)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoPhase1 called"));
-	TInt ret(KErrNone);
-	TInt leaveCode(KErrNone);
-	TRAP(leaveCode, ret=ProcessGetAuthorizationInfoPhase1L(aTsyReqHandle, aId, aBufSize););
-	if (leaveCode != KErrNone)
-		ReqCompleted(aTsyReqHandle,leaveCode);
-	return ret;
-	};
-
-TInt CPhoneDMmTsy::ProcessGetAuthorizationInfoPhase1L(const TTsyReqHandle aTsyReqHandle,
-											 RMobilePhone::TClientId* aClient,
-											 TInt* aBufSize)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoPhase1 called"));	
-
-	// Store the streamed list and the client ID
-	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle);
-	CleanupStack::PushL(read);
-	
-	HBufC8* iBuff=NULL;
-	iAuthInfo->ExternalizeL(iBuff);	
-	CleanupStack::PushL(iBuff);
-		
-	CBufFlat* buf=CBufFlat::NewL(iBuff->Length());
-	CleanupStack::PushL(buf);
-	buf->InsertL(0,*iBuff);	
-	
-	read->iListBuf = buf;
-	CleanupStack::Pop(buf);	
-	CleanupStack::PopAndDestroy(iBuff);
-	
-	iGetAuthorizationData->AppendL(read);
-	CleanupStack::Pop(); // pop the CListReadAllAttempt
-	
-	// return the CBufBase’s size to client
-	*aBufSize=(read->iListBuf)->Size();
-	
-	
-	// Complete first phase of list retrieval
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-TInt CPhoneDMmTsy::GetAuthorizationInfoPhase2(TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuffer)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoPhase2 called"));	
-	CListReadAllAttempt* read=NULL;
-	// Find the get detected network attempt from this client
-	for (TInt i=0; i<iGetAuthorizationData->Count(); ++i)
-		{
-		read = iGetAuthorizationData->At(i);
-		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
-		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
-			{
-			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
-			// Copy the streamed list to the client
-			aBuffer->Copy(bufPtr);
-			delete read;
-			iGetAuthorizationData->Delete(i);
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			return KErrNone;
-			}
-		}
-	ReqCompleted(aTsyReqHandle,KErrBadHandle);
-	return KErrNone;
-	}
-
-
-TInt CPhoneDMmTsy::GetAuthorizationInfoCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoCancel called"));
-
-	// Remove the read all attempt from iGetAuthorizationData
-	CListReadAllAttempt* read=NULL;
-	for (TInt i=0; i<iGetAuthorizationData->Count(); ++i)
-		{
-		read = iGetAuthorizationData->At(i);
-		if (read->iReqHandle == aTsyReqHandle)
-			{
-			delete read;
-			iGetAuthorizationData->Delete(i);
-			break;
-			}
-		}
-		
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetAuthenticationData(const TTsyReqHandle aTsyReqHandle,TDes8* aAuthenticationData)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::AuthentificationData called"));
-	TInt ret(KErrNone);
-	User::After(300000); // wait to have KRequestPending
-	RMobilePhone::TImsAuthenticateDataV5Pckg* authenticateDataPckgd=(RMobilePhone::TImsAuthenticateDataV5Pckg*)aAuthenticationData;
-	RMobilePhone::TImsAuthenticateDataV5& authenticateData=(*authenticateDataPckgd)();
-	if(authenticateData.iAUTN!=DMMTSY_PHONE_AUTN_IN || authenticateData.iRAND!=DMMTSY_PHONE_RAND_IN)
-		{
-		ret=KErrCorrupt;
-		ReqCompleted(aTsyReqHandle,ret);
-		}
-	else
-		{
-		authenticateData.iAUTN=DMMTSY_PHONE_AUTN_OUT;
-		authenticateData.iRAND=DMMTSY_PHONE_RAND_OUT;
-		authenticateData.iRES=DMMTSY_PHONE_RES_OUT;
-		authenticateData.iIK=DMMTSY_PHONE_IK_OUT;
-		authenticateData.iCK=DMMTSY_PHONE_CK_OUT;
-		authenticateData.iAUTS=DMMTSY_PHONE_AUTS_OUT;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetAuthenticationDataCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::AuthentificationDataCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifyImsAuthorizationInfoChanged(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyImsAuthorizationInfoChanged called"));
-	if (!iNotifyImsAuthorizationInfoChange++)
-		{
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	
-	}
-TInt CPhoneDMmTsy::NotifyImsAuthorizationInfoChangedCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyImsAuthorizationInfoChangedCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::GetSmartCardAuthenticationData(const TTsyReqHandle aTsyReqHandle, TDes8* aSmartCardAuthData, RMobilePhone::TAID* aAID)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardAuthenticationData called"));
-
-	RMobilePhone::TSmartCardAuthenticateDataV6Pckg *smartCardAuthenticateDataPckg =
-	  reinterpret_cast<RMobilePhone::TSmartCardAuthenticateDataV6Pckg*>(aSmartCardAuthData);
-
-	RMobilePhone::TSmartCardAuthenticateDataV6 &smartCardAuthenticateData =
-	  (*smartCardAuthenticateDataPckg)();
-
-	if (aAID != NULL)
-		{
-		if (*aAID != DMMTSY_PHONE_GBA_AID() && 
-			*aAID != DMMTSY_PHONE_EAPAPP_AID() &&
-			*aAID != DMMTSY_PHONE_MBMS_AID())
-			{
-			ReqCompleted(aTsyReqHandle, KErrCorrupt);
-			return KErrNone;
-			}
-		}
-	// USIM authentication
-	if(smartCardAuthenticateData.ExtensionId() == KEtelExtMultimodeV6)
-		{
-		if(smartCardAuthenticateData.iAUTN != DMMTSY_PHONE_SC_AUTN_IN ||
-		  smartCardAuthenticateData.iRAND != DMMTSY_PHONE_SC_RAND_IN)
-			{
-			ReqCompleted(aTsyReqHandle, KErrCorrupt);
-			}
-		else
-			{
-			smartCardAuthenticateData.iAUTN=DMMTSY_PHONE_SC_AUTN_OUT;
-			smartCardAuthenticateData.iRAND=DMMTSY_PHONE_SC_RAND_OUT;
-			smartCardAuthenticateData.iRES=DMMTSY_PHONE_SC_RES_OUT;
-			smartCardAuthenticateData.iIK=DMMTSY_PHONE_SC_IK_OUT;
-			smartCardAuthenticateData.iCK=DMMTSY_PHONE_SC_CK_OUT;
-			smartCardAuthenticateData.iAUTS=DMMTSY_PHONE_SC_AUTS_OUT;
-			smartCardAuthenticateData.iKc=DMMTSY_PHONE_SC_KC_OUT;
-			AddDelayedReq(aTsyReqHandle,this);
-			}
-		}
-	else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileGbaBootstrapAuthDataV8)
-		{
-		RMobilePhone::TGbaBootstrapAuthDataV8Pckg *gbaBootstrapAuthenticateDataPckg =
-		  STATIC_CAST(RMobilePhone::TGbaBootstrapAuthDataV8Pckg*,aSmartCardAuthData);
-
-		RMobilePhone::TGbaBootstrapAuthDataV8 &gbaBootstrapAuthData =
-		  (*gbaBootstrapAuthenticateDataPckg)();
-		
-		 if(gbaBootstrapAuthData.iAUTN != DMMTSY_PHONE_GBA_AUTN_IN ||
-				gbaBootstrapAuthData.iRAND != DMMTSY_PHONE_GBA_RAND_IN)
-			{
-			iGbaBootstrapAuthDataFail++;
-			switch(iGbaBootstrapAuthDataFail)
-				{
-			case 1:
-				gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_FAIL_RES_OUT;
-				gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_FAIL_AUTS_OUT;
-				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthVerificationFailure);
-				break;
-			
-			case 2:
-				gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_FAIL_RES_OUT;
-				gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_SUCC_AUTS_OUT;
-				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthMacInvalid);
-				break;
-				
-			case 3:
-			default:
-				gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_FAIL_RES_OUT;
-				gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_SUCC_AUTS_OUT;
-				ReqCompleted(aTsyReqHandle, KErrInUse);
-				iGbaBootstrapAuthDataFail=0;
-				break;
-				}
-			}
-		else
-			{
-			gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_SUCC_RES_OUT;
-			gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_SUCC_AUTS_OUT;
-			AddDelayedReq(aTsyReqHandle,this);
-			}
-		}
-	else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileGbaNafAuthDataV8)
-		{
-		RMobilePhone::TGbaNafAuthDataV8Pckg *gbaNafAuthenticateDataPckg =
-		  STATIC_CAST(RMobilePhone::TGbaNafAuthDataV8Pckg*,aSmartCardAuthData);
-
-		RMobilePhone::TGbaNafAuthDataV8 &gbaNafAuthData=
-		  (*gbaNafAuthenticateDataPckg)();
-		if(gbaNafAuthData.iNafId != DMMTSY_PHONE_GBA_VALID_NAFID ||
-				gbaNafAuthData.iImpi != DMMTSY_PHONE_GBA_VALID_IMPI)
-			{
-			iGbaNafAuthDataFail++;
-			switch(iGbaNafAuthDataFail)
-				{	
-			case 1:
-				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyNotFound);
-				break;
-				
-			case 2:
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-				break;	
-					
-			case 3:
-			default:
-				ReqCompleted(aTsyReqHandle, KErrInUse);
-				iGbaNafAuthDataFail=0;
-				break;	
-				}
-			}
-		else
-			{
-			gbaNafAuthData.iKsExtNaf=DMMTSY_PHONE_GBA_KS_EXTNAF;
-			AddDelayedReq(aTsyReqHandle,this);
-			}
-		}
-	else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMskUpdateDataV8)
-		{
-		RMobilePhone::TMbmsMskUpdateDataV8Pckg *mbmsMskUpdateAuthenticateDataPckg =
-		  STATIC_CAST(RMobilePhone::TMbmsMskUpdateDataV8Pckg*,aSmartCardAuthData);
-
-		RMobilePhone::TMbmsMskUpdateDataV8 &mbmsMskUpdateAuthData=
-		  (*mbmsMskUpdateAuthenticateDataPckg)();
-		 if(mbmsMskUpdateAuthData.iInputMikey == DMMTSY_PHONE_MBMS_INVALID_IMIKEY)
-			{
-			iMbmsMskUpdateAuthDataFail++;
-			switch(iMbmsMskUpdateAuthDataFail)
-				{
-			case 1:
-				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyNotFound);
-				break;
-					
-			case 2:
-				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyInvalid);
-				break;
-					
-			case 3:
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-				break;
-					
-			case 4:
-			default:
-				ReqCompleted(aTsyReqHandle, KErrInUse);
-				iMbmsMskUpdateAuthDataFail=0;
-				break;
-				}
-			} 
-		else if(mbmsMskUpdateAuthData.iInputMikey == DMMTSY_PHONE_MBMS_VALID_IMIKEY_WO_VBIT)
-			{
-			AddDelayedReq(aTsyReqHandle,this);
-			}
-		else if (mbmsMskUpdateAuthData.iInputMikey == DMMTSY_PHONE_MBMS_VALID_IMIKEY_W_VBIT)
-			{
-			mbmsMskUpdateAuthData.iOutputMikey=DMMTSY_PHONE_MBMS_OMIKEY_FOR_W_VBIT;
-			AddDelayedReq(aTsyReqHandle,this);
-			}
-		}
-		
-	else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMtkGenerateDataV8)
-		{
-		RMobilePhone::TMbmsMtkGenerateDataV8Pckg *mbmsMtkGenerateAuthenticateDataPckg =
-		  STATIC_CAST(RMobilePhone::TMbmsMtkGenerateDataV8Pckg*,aSmartCardAuthData);
-
-		RMobilePhone::TMbmsMtkGenerateDataV8 &mbmsMtkGenerateAuthData=
-		  (*mbmsMtkGenerateAuthenticateDataPckg)();
-		  
-		if(mbmsMtkGenerateAuthData.iMikey!= DMMTSY_PHONE_MBMS_VALID_IMIKEY)
-			{
-			iMbmsMtkGenerateAuthDataFail++;
-			switch(iMbmsMtkGenerateAuthDataFail)
-				{
-			case 1:
-				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyNotFound);
-				break;
-						
-			case 2:
-				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyInvalid);
-				break;
-						
-			case 3:
-				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthMacInvalid);
-				break;
-						
-			case 4:
-				ReqCompleted(aTsyReqHandle, KErrCorrupt);
-				break;
-						
-			case 5:
-			default:
-				ReqCompleted(aTsyReqHandle, KErrInUse);
-				iMbmsMtkGenerateAuthDataFail=0;
-				break;
-				}
-			}
-		else
-			{
-			mbmsMtkGenerateAuthData.iMtk = DMMTSY_PHONE_MBMS_VALID_MTK;
-			mbmsMtkGenerateAuthData.iSaltKey = DMMTSY_PHONE_MBMS_VALID_SALTKEY;
-			AddDelayedReq(aTsyReqHandle,this);
-			}
-		}
-	else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMskDeleteDataV8)
-		{
-		RMobilePhone::TMbmsMskDeleteDataV8Pckg *mbmsMskDeleteAuthenticateDataPckg =
-		  STATIC_CAST(RMobilePhone::TMbmsMskDeleteDataV8Pckg*,aSmartCardAuthData);
-
-		RMobilePhone::TMbmsMskDeleteDataV8 &mbmsMskDeleteAuthData=
-		  (*mbmsMskDeleteAuthenticateDataPckg)();
-		  
-		if((mbmsMskDeleteAuthData.iKeyDomainId!= DMMTSY_PHONE_MBMS_VALID_KEYDMN) ||
-		   (mbmsMskDeleteAuthData.iMskIdKeyGroup != DMMTSY_PHONE_MBMS_VALID_MSKIDGRP))	
-			{
-			iMbmsMskDeleteAuthDataFail++;
-			switch(iMbmsMskDeleteAuthDataFail)
-				{
-			case 1:
-				ReqCompleted(aTsyReqHandle, KErrNotFound);
-				break;
-					
-			case 2:
-			default:
-				ReqCompleted(aTsyReqHandle, KErrInUse);
-				iMbmsMskDeleteAuthDataFail=0;
-				break;
-				}	
-			}
-		else
-			{
-			AddDelayedReq(aTsyReqHandle,this);	
-			}
-		}
-	else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMukDeleteDataV8)
-		{
-		RMobilePhone::TMbmsMukDeleteDataV8Pckg *mbmsMukDeleteAuthenticateDataPckg =
-		  STATIC_CAST(RMobilePhone::TMbmsMukDeleteDataV8Pckg*,aSmartCardAuthData);
-
-		RMobilePhone::TMbmsMukDeleteDataV8 &mbmsMukDeleteAuthData=
-		  (*mbmsMukDeleteAuthenticateDataPckg)();
-		  
-		if(mbmsMukDeleteAuthData.iMukIdTlv!= DMMTSY_PHONE_MBMS_VALID_MUKID) 
-			{
-			iMbmsMukDeleteAuthDataFail++;
-			switch(iMbmsMukDeleteAuthDataFail)
-				{
-			case 1:
-				ReqCompleted(aTsyReqHandle, KErrNotFound);
-				break;
-					
-			case 2:
-			default:
-				ReqCompleted(aTsyReqHandle, KErrInUse);
-				iMbmsMukDeleteAuthDataFail=0;
-				break;
-				}	
-			}
-		else
-			{
-			AddDelayedReq(aTsyReqHandle,this);	
-			}
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetSmartCardAuthenticationDataCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardAuthenticationDataCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle, KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::SetEmergencyClient(const TTsyReqHandle aTsyReqHandle, TUint32* aEmergencyRequest)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetEmergencyClient called"));
-	
-	switch (*aEmergencyRequest)
-		{
-	case RPhone::EEmergencyLCSRequest:
-	case RPhone::EEmergencyCSVoiceCallRequest:
-	case RPhone::EEmergencyLCSRequest | RPhone::EEmergencyCSVoiceCallRequest:
-		ReqCompleted(aTsyReqHandle, KErrNone);
-		break;
-	default:
-		return KErrCorrupt;
-		}
-	
-	return KErrNone;
-	}
-
-//
-// First Ordinal Functions
-//
-extern "C"
-	{
-	IMPORT_C CPhoneFactoryBase* LibEntry();	// Force "Proper Name" export
-	}
-
-EXPORT_C CPhoneFactoryBase* LibEntry()
-	{
-	CPhoneFactoryDMmTsy* factory = NULL;
-	TRAP_IGNORE(factory = CPhoneFactoryDMmTsy::NewL());
-	return factory;
-	}
-
-//
-// DMmTsy Phone Factory Functions
-//
-
-CPhoneFactoryDMmTsy* CPhoneFactoryDMmTsy::NewL()
-	{
-	CPhoneFactoryDMmTsy *This = new (ELeave) CPhoneFactoryDMmTsy;
-	CleanupStack::PushL(This);
-	This->ConstructL();
-	CleanupStack::Pop();
-	return This;
-	}
-
-CPhoneFactoryDMmTsy::CPhoneFactoryDMmTsy()
-	{
-	iVersion=TVersion(	KTsyEtelMajorVersionNumber,
-						KTsyEtelMinorVersionNumber,
-						KTsyEtelBuildVersionNumber);
-	}
-
-CPhoneFactoryDMmTsy::~CPhoneFactoryDMmTsy()
-	{
-	LOGDESTROY();
-	}
-
-CPhoneBase * CPhoneFactoryDMmTsy::NewPhoneL(const TDesC& aName)
-	{
-	if (aName.Compare(DMMTSY_PHONE_NAME)==KErrNone)
-		return CPhoneDMmTsy::NewL(this);
-	else if (aName.Compare(DMMTSY_PHONE_NAMEAUTH1)==KErrNone)
-		{
-		CPhoneDMmTsy* phone=CPhoneDMmTsy::NewL(this);
-		CleanupStack::PushL(phone);
-		// it van be initialised in different ways by using name of the phone -
-		// that's why different names of phones shall be used
-		phone->iAuthInfo->iIMPI=DMMTSY_PHONE1_IMPI;
-		phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE1_IMPU0);
-		phone->iAuthInfo->iHomeNetworkDomainName=DMMTSY_PHONE1_HNDN;
-		phone->iAuthInfo->iAuthenticationDataSource=DMMTSY_PHONE1_DATASOURCE;
-		CleanupStack::Pop(phone);
-		return phone;
-		}
-	else if (aName.Compare(DMMTSY_PHONE_NAMEAUTH2)==KErrNone)
-		{
-		CPhoneDMmTsy* phone=CPhoneDMmTsy::NewL(this);
-		CleanupStack::PushL(phone);
-		// it van be initialised in different ways by using name of the phone -
-		// that's why different names of phones shall be used
-		phone->iAuthInfo->iIMPI=DMMTSY_PHONE2_IMPI;
-		phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU1);
-		phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU2);
-		phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU3);
-		phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU4);
-		phone->iAuthInfo->iHomeNetworkDomainName=DMMTSY_PHONE2_HNDN;
-		phone->iAuthInfo->iAuthenticationDataSource=DMMTSY_PHONE2_DATASOURCE;
-		CleanupStack::Pop(phone);
-		return phone;
-		}
-	else if (aName.Compare(DMMTSY_PHONE_NAMEAUTH3)==KErrNone)
-		{
-		CPhoneDMmTsy* phone=CPhoneDMmTsy::NewL(this);
-		CleanupStack::PushL(phone);
-		// it van be initialised in different ways by using name of the phone -
-		// that's why different names of phones shall be used
-		phone->iAuthInfo->iIMPI=DMMTSY_PHONE3_IMPI;
-		phone->iAuthInfo->iHomeNetworkDomainName=DMMTSY_PHONE3_HNDN;
-		phone->iAuthInfo->iAuthenticationDataSource=DMMTSY_PHONE3_DATASOURCE;
-		CleanupStack::Pop(phone);
-		return phone;
-		}
-	return NULL;
-	}
-
-TBool CPhoneFactoryDMmTsy::IsSupported(const TInt /*aMixin*/)
-	{
-	return EFalse;
-	}
-
-//
-// methods for CActiveListNode
-//
-
-CPhoneDMmTsy::CActiveListNode::CActiveListNode(CActive *aActive, const TTsyReqHandle aTsyReqHandle) :
-	iActive(aActive), iTsyReqHandle(aTsyReqHandle)
-	{
-
-	}
-
-CPhoneDMmTsy::CActiveListNode::~CActiveListNode()
-	{
-	delete iActive;
-	}
-
-//
-// methods for the list of aos which corresspond to the outstanding delayed asyncrhonous reqs
-//
-
-TInt CPhoneDMmTsy::FindDelayedReq(const TTsyReqHandle aTsyReqHandle, CActiveListNode *& aNode)
-	{
-	TInt err = KErrNotFound;
-	TSglQueIter<CActiveListNode> iter(iActiveRequestObjects);
-	iter.SetToFirst();
-
-	CActiveListNode *node = aNode = NULL;
-	while ((node = iter++) != NULL)
-		if (node->iTsyReqHandle == aTsyReqHandle)
-			break;
-
-	if (node != NULL)
-		{
-		aNode = node;
-		err = KErrNone;
-		}
-
-	return err;
-	}
-
-TInt CPhoneDMmTsy::RemoveDelayedReq(const TTsyReqHandle aTsyReqHandle)
-	{
-	CActiveListNode *aNode = NULL;
-	TInt err = FindDelayedReq(aTsyReqHandle,aNode);
-	if (err == KErrNone)
-		{
-		iActiveRequestObjects.Remove(*aNode);
-		delete aNode;
-		}
-	return err;
-	}
-
-void CPhoneDMmTsy::RegisterDelayedReqL(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject)
-	{
-	CDelayedCompleter *delayed = CDelayedCompleter::NewL(aTsyReqHandle,this,aTelObject);
-	CleanupStack::PushL(delayed);
-	CActiveListNode *newNode = new (ELeave) CActiveListNode(delayed,aTsyReqHandle);
-	iActiveRequestObjects.AddLast(*newNode);
-	delayed->After(100000);
-	CleanupStack::Pop(); // delayed
-	}
-void CPhoneDMmTsy::RegisterDelayedReqL(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject,TInt aPriority)
-	{
-	CDelayedCompleter *delayed = CDelayedCompleter::NewL(aTsyReqHandle,this,aTelObject);
-	CleanupStack::PushL(delayed);
-	CActiveListNode *newNode = new (ELeave) CActiveListNode(delayed,aTsyReqHandle);
-	iActiveRequestObjects.AddLast(*newNode);
-	delayed->After(aPriority);
-	CleanupStack::Pop(); // delayed
-	}
-void CPhoneDMmTsy::AddDelayedReq(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject)
-	{
-	TRAPD(err, RegisterDelayedReqL(aTsyReqHandle, aTelObject));
-
-	if (err != KErrNone)
-		{
-		ReqCompleted(aTsyReqHandle, err);
-		}
-	}
-void CPhoneDMmTsy::AddDelayedReq(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject,TInt aPriority)
-	{
-	TRAPD(err, RegisterDelayedReqL(aTsyReqHandle, aTelObject, aPriority));
-
-
-	if (err != KErrNone)
-		{
-		ReqCompleted(aTsyReqHandle, err);
-		}
-	}
-
-TInt CPhoneDMmTsy::NotifyAuthenticateDataChange(const TTsyReqHandle aTsyReqHandle,TDes8* aAuthInfo)
-	{
-	if(!iNotifyAuthenticationDataChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyAuthenticationDataChange called"));
-		RMobilePhone::TAuthInfoV8Pckg *authInfoV8Pckg = STATIC_CAST(RMobilePhone::TAuthInfoV8Pckg*,aAuthInfo);
-		RMobilePhone::TAuthInfoV8 &authInfoV8 = (*authInfoV8Pckg)();
-		authInfoV8.iAID = DMMTSY_PHONE_GBA_AID;
-		authInfoV8.iData = DMMTSY_PHONE_AUTH_DATA_GBA_PARAMS;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyAuthenticateDataChangeCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAuthenticationDataChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetGbaBootstrapParams(const TTsyReqHandle aTsyReqHandle,RMobilePhone::TAID* aAID,TDes8* aParams)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetGbaBootstrapParams called"));
-	RMobilePhone::TBsfDataV8Pckg *bsfDataV8Pckg = STATIC_CAST(RMobilePhone::TBsfDataV8Pckg*,aParams);
-	RMobilePhone::TBsfDataV8 &bsfDataV8 = (*bsfDataV8Pckg)();
-	if((bsfDataV8.iBtid != DMMTSY_PHONE_BSF_VALID_BTID) ||
-		(bsfDataV8.iKeyLifetime != DMMTSY_PHONE_BSF_VALID_KEYLIFETIME) ||
-		(*aAID != DMMTSY_PHONE_GBA_AID )) 
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else
-		{
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::SetGbaBootstrapParamsCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetGbaBootstrapParamsCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}	
-
-TInt CPhoneDMmTsy::GetAuthenticationParams(const TTsyReqHandle aTsyReqHandle,TDes8* aAuthInfo,TDes8* aParams)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetAuthenticationParams called"));
-	RMobilePhone::TAuthInfoV8Pckg *authInfoV8Pckg = STATIC_CAST(RMobilePhone::TAuthInfoV8Pckg*,aAuthInfo);
-	RMobilePhone::TAuthInfoV8 &authInfoV8 = (*authInfoV8Pckg)();
-	if(authInfoV8.iData == DMMTSY_PHONE_AUTH_DATA_GBA_PARAMS && authInfoV8.iAID == DMMTSY_PHONE_GBA_AID)
-		{
-		RMobilePhone::TGbaBootstrapParamsV8Pckg *gbaBootstrapV8Pckg = STATIC_CAST(RMobilePhone::TGbaBootstrapParamsV8Pckg*,aParams);
-		RMobilePhone::TGbaBootstrapParamsV8 &gbaBootstrapV8 = (*gbaBootstrapV8Pckg)();
-		gbaBootstrapV8.iRand = DMMTSY_PHONE_GBA_RAND_IN;
-		gbaBootstrapV8.iBtid = DMMTSY_PHONE_BSF_VALID_BTID;
-		gbaBootstrapV8.iKeyLifetime = DMMTSY_PHONE_BSF_VALID_KEYLIFETIME;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	else if(authInfoV8.iData == DMMTSY_PHONE_AUTH_DATA_MBMS_MUK && authInfoV8.iAID == DMMTSY_PHONE_MBMS_AID)
-		{
-		RMobilePhone::TMbmsUserKeyV8Pckg *mbmsUserKeyV8Pckg = STATIC_CAST(RMobilePhone::TMbmsUserKeyV8Pckg*,aParams);
-		RMobilePhone::TMbmsUserKeyV8 &mbmsUserKeyV8 = (*mbmsUserKeyV8Pckg)();
-		mbmsUserKeyV8.iMukIdi = DMMTSY_PHONE_MBMS_VALID_MUK_IDI;
-		mbmsUserKeyV8.iMukIdr = DMMTSY_PHONE_MBMS_VALID_MUK_IDR;
-		mbmsUserKeyV8.iTimeStampCounter = DMMTSY_PHONE_MBMS_VALID_MUK_ITIMESTM;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	else
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::GetAuthenticationParamsCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetAuthenticationParamsCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetAuthenticationListPhase1(const TTsyReqHandle aTsyReqHandle,CRetrieveMobilePhoneAuthenticationIds::TAuthRequestData* aRequest,TInt* aBufSize)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetAuthenticationListPhase1 called"));
-	TInt ret=KErrNone;
-	TInt leaveCode=KErrNone;
-	
-	if (((aRequest->iAuthInfo.iData) == DMMTSY_PHONE_AUTH_DATA_NAF_LIST) ||
-		((aRequest->iAuthInfo.iData) == DMMTSY_PHONE_AUTH_DATA_MBMS_MSK))
-		{
-		leaveCode = KErrNone;
-		}
-	else
-	 	{
-	 	leaveCode = KErrCorrupt;	
-	 	}  
-
-	if (leaveCode == KErrNone)
-		{
-		if (aRequest->iAuthInfo.iData==DMMTSY_PHONE_AUTH_DATA_NAF_LIST)
-			{
-			TRAP(leaveCode, ret=ProcessGetGbaPhase1L(aTsyReqHandle, &aRequest->iClient,aBufSize););
-			}
-		else if(aRequest->iAuthInfo.iData==DMMTSY_PHONE_AUTH_DATA_MBMS_MSK)
-			{
-			TRAP(leaveCode, ret=ProcessGetMbmsPhase1L(aTsyReqHandle, &aRequest->iClient,aBufSize););
-			}
-		}
-
-	if (leaveCode != KErrNone)
-		{
-		ReqCompleted(aTsyReqHandle,leaveCode);
-		}
-	return ret;
-	};
-
-TInt CPhoneDMmTsy::ProcessGetGbaPhase1L(const TTsyReqHandle aTsyReqHandle,
-											   RMobilePhone::TClientId* aId,TInt* aBufSize)
-	{
-	// read the list, store its content and then return size of this buffer to client
-	CMobilePhoneGbaNafIdList* list=CMobilePhoneGbaNafIdList::NewL();
-	CleanupStack::PushL(list);
-
-	RMobilePhone::TGbaNafEntryV8 entry;
-
-	// fill up an example list
-	for (TInt index=0; index < DMMTSY_PHONE_GBA_NAFLIST_COUNT; index++)
-		{
-		switch (index)
-			{
-		case 0:
-			entry.iNafId = DMMTSY_PHONE_GBA_NAFLIST_NAFID_ONE;
-			entry.iBtid = DMMTSY_PHONE_GBA_NAFLIST_BTID_ONE;
-			break;
-		case 1:
-			entry.iNafId = DMMTSY_PHONE_GBA_NAFLIST_NAFID_TWO;
-			entry.iBtid = DMMTSY_PHONE_GBA_NAFLIST_BTID_TWO;
-			break;
-		case 2:
-			entry.iNafId = DMMTSY_PHONE_GBA_NAFLIST_NAFID_THREE;
-			entry.iBtid = DMMTSY_PHONE_GBA_NAFLIST_BTID_THREE;
-			break;
-		case 3:
-		default:
-			break;
-			}
-			// Add the entry into the list, at the next empty location
-			list->AddEntryL(entry);
-		}
-	// Store the streamed list and the client ID
-	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aId, aTsyReqHandle);
-	CleanupStack::PushL(read);
-
-	read->iListBuf = list->StoreLC();
-	CleanupStack::Pop(); // pop the CBufFlat allocated by StoreLC
-
-	iAuthReadAll->AppendL(read);
-	CleanupStack::Pop(); // pop the CListReadAllAttempt
-
-	// return the CBufFlat’s size to client
-	*aBufSize=(read->iListBuf)->Size();
-
-	// Complete first phase of list retrieval
-	AddDelayedReq(aTsyReqHandle,this);
-	CleanupStack::PopAndDestroy(); // pop&destroy list
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::ProcessGetMbmsPhase1L(const TTsyReqHandle aTsyReqHandle,
-											   RMobilePhone::TClientId* aId,TInt* aBufSize)
-	{
-	// read the list, store its content and then return size of this buffer to client
-	CMobilePhoneMbmsMskIdList* list=CMobilePhoneMbmsMskIdList::NewL();
-	CleanupStack::PushL(list);
-
-	RMobilePhone::TMskEntryV8 entry;
-
-	// fill up an example list
-	for (TInt index=0; index < DMMTSY_PHONE_MBMS_LIST_COUNT; index++)
-		{
-		switch (index)
-			{
-		case 0:
-			entry.iKeyDomainId = DMMTSY_PHONE_MBMSLIST_KEYDMN_ONE;
-			entry.iMskId = DMMTSY_PHONE_MBMSLIST_MSKID_ONE;
-			entry.iTimeStampCounter = DMMTSY_PHONE_MBMSLIST_TIMESTM_ONE;
-			break;
-		case 1:
-			entry.iKeyDomainId = DMMTSY_PHONE_MBMSLIST_KEYDMN_TWO;
-			entry.iMskId = DMMTSY_PHONE_MBMSLIST_MSKID_TWO;
-			entry.iTimeStampCounter = DMMTSY_PHONE_MBMSLIST_TIMESTM_TWO;
-			break;
-		case 2:
-			entry.iKeyDomainId = DMMTSY_PHONE_MBMSLIST_KEYDMN_THREE;
-			entry.iMskId = DMMTSY_PHONE_MBMSLIST_MSKID_THREE;
-			entry.iTimeStampCounter = DMMTSY_PHONE_MBMSLIST_TIMESTM_THREE;
-			break;
-		case 3:
-		default:
-			break;
-			}
-			// Add the entry into the list, at the next empty location
-			list->AddEntryL(entry);
-		}
-	// Store the streamed list and the client ID
-	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aId, aTsyReqHandle);
-	CleanupStack::PushL(read);
-
-	read->iListBuf = list->StoreLC();
-	CleanupStack::Pop(); // pop the CBufFlat allocated by StoreLC
-
-	iAuthReadAll->AppendL(read);
-	CleanupStack::Pop(); // pop the CListReadAllAttempt
-
-	// return the CBufFlat’s size to client
-	*aBufSize=(read->iListBuf)->Size();
-
-	// Complete first phase of list retrieval
-	AddDelayedReq(aTsyReqHandle,this);
-	CleanupStack::PopAndDestroy(); // pop&destroy list
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetAuthenticationListPhase2(TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aId, TDes8* aBuffer)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::ReadAllPhase2 called"));
-	CListReadAllAttempt* read=NULL;
-	// Find the read attempt from this client
-	for (TInt i=0; i<iAuthReadAll->Count(); ++i)
-		{
-		read = iAuthReadAll->At(i);
-		if ((read->iClient.iSessionHandle==aId->iSessionHandle) &&
-		    (read->iClient.iSubSessionHandle==aId->iSubSessionHandle))
-			{
-			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
-			// Copy the streamed list to the client
-			aBuffer->Copy(bufPtr);
-			delete read;
-			iAuthReadAll->Delete(i);
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			return KErrNone;
-			}
-		}
-	// Should handle error case of not finding the matching client from read all phase 1
-	return KErrNotFound;
-	}
-	
-TInt CPhoneDMmTsy::GetAuthenticationListCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::ReadAllCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	// Remove the read all attempt from iAuthReadAll
-	CListReadAllAttempt* read=NULL;
-	for (TInt i=0; i<iAuthReadAll->Count(); ++i)
-		{
-		read = iAuthReadAll->At(i);
-		if (read->iReqHandle == aTsyReqHandle)
-			{
-			delete read;
-			iAuthReadAll->Delete(i);
-			break;
-			}
-		}
-
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-//
-// Wlan
-//
-TInt CPhoneDMmTsy::NotifyWlanDataChange(const TTsyReqHandle aTsyReqHandle,TDes8* aData)
-	{
-	if(!iNotifyWlanDataChange++)
-		{
-		LOGTEXT(_L8("CPhoneDMmTsy::NotifyWlanDataChange called"));
-		RMobilePhone::TUsimWlanDataV8Pckg *WlanDataV8Pckg = STATIC_CAST(RMobilePhone::TUsimWlanDataV8Pckg*,aData);
-		RMobilePhone::TUsimWlanDataV8 &WlanDataV8 = (*WlanDataV8Pckg)();
-		WlanDataV8.iFieldsUsed = DMMTSY_PHONE_WLAN_LIST_DATA_FLAGS;
-		WlanDataV8.iPseudonym = DMMTSY_PHONE_WLAN_VALID_PSEUDONYM;
-		WlanDataV8.iReauthenticationId = DMMTSY_PHONE_WLAN_VALID_REAUTHID;
-		WlanDataV8.iMasterKey = DMMTSY_PHONE_WLAN_VALID_MASTERKEY;
-		WlanDataV8.iCounter = DMMTSY_PHONE_WLAN_VALID_COUNTER;
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::NotifyWlanDataChangeCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyWlanDataChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::SetWlanData(const TTsyReqHandle aTsyReqHandle,TDes8* aData)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetWlanData called"));
-	RMobilePhone::TUsimWlanDataV8Pckg *WlanDataV8Pckg = STATIC_CAST(RMobilePhone::TUsimWlanDataV8Pckg*,aData);
-	RMobilePhone::TUsimWlanDataV8 &WlanDataV8 = (*WlanDataV8Pckg)();
-	if((WlanDataV8.iFieldsUsed != DMMTSY_PHONE_WLAN_LIST_DATA_FLAGS) ||
-	(WlanDataV8.iPseudonym != DMMTSY_PHONE_WLAN_VALID_PSEUDONYM) ||
-	(WlanDataV8.iReauthenticationId != DMMTSY_PHONE_WLAN_VALID_REAUTHID) ||
-	(WlanDataV8.iMasterKey != DMMTSY_PHONE_WLAN_VALID_MASTERKEY) ||
-	(WlanDataV8.iCounter != DMMTSY_PHONE_WLAN_VALID_COUNTER))
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	else
-		{
-		AddDelayedReq(aTsyReqHandle,this);
-		}
-		
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::SetWlanDataCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::SetWlanDataCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}	
-
-TInt CPhoneDMmTsy::GetWlanData(const TTsyReqHandle aTsyReqHandle,TDes8* aData)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetWlanData called"));
-	RMobilePhone::TUsimWlanDataV8Pckg *WlanDataV8Pckg = STATIC_CAST(RMobilePhone::TUsimWlanDataV8Pckg*,aData);
-	RMobilePhone::TUsimWlanDataV8 &WlanDataV8 = (*WlanDataV8Pckg)();
-	WlanDataV8.iFieldsUsed = DMMTSY_PHONE_WLAN_LIST_DATA_FLAGS;
-	WlanDataV8.iPseudonym = DMMTSY_PHONE_WLAN_VALID_PSEUDONYM;
-	WlanDataV8.iReauthenticationId = DMMTSY_PHONE_WLAN_VALID_REAUTHID;
-	WlanDataV8.iMasterKey = DMMTSY_PHONE_WLAN_VALID_MASTERKEY;
-	WlanDataV8.iCounter = DMMTSY_PHONE_WLAN_VALID_COUNTER;
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;	
-	}
-
-TInt CPhoneDMmTsy::GetWlanDataCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetWlanDataCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::StorePreferredWlanSIDList(const TTsyReqHandle aTsyReqHandle, TDes8* aBuffer)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::StorePreferredWlanSIDList called"));
-	TInt ret=KErrNone;
-	TInt leaveCode=KErrNone;
-	TRAP(leaveCode, ret=ProcessStorePreferredWlanSIDListL(aTsyReqHandle, aBuffer););
-	if (leaveCode != KErrNone)
-		{
-		ReqCompleted(aTsyReqHandle,leaveCode);
-		}
-	return ret;
-	};
-
-TInt CPhoneDMmTsy::ProcessStorePreferredWlanSIDListL(TTsyReqHandle aTsyReqHandle, TDes8* aBuffer)
-	{
-	CMobilePhoneStoredWlanSIDList* list=CMobilePhoneStoredWlanSIDList::NewL();
-	CleanupStack::PushL(list);
-	
-	list->RestoreL(*aBuffer);
-
-	RMobilePhone::TWlanSIDV8 entry;
-
-	if (list->Enumerate() != DMMTSY_PHONE_WLAN_SIDLIST_COUNT)
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		CleanupStack::PopAndDestroy(); // list
-		return KErrNone;
-		}
-
-	TInt error=KErrNone;
-	TInt ret;
-	for (TInt i=0; i<DMMTSY_PHONE_WLAN_SIDLIST_COUNT; ++i)
-		{
-		TRAP(ret,entry=list->GetEntryL(i));
-		if (ret != KErrNone)
-			break;
-		switch(i)
-			{
-		case 0:
-			{
-			if(entry.iWSID != DMMTSY_PHONE_WLAN_WSID_ONE ||
-			   entry.iUserDefined != DMMTSY_PHONE_WLAN_USERDEFD_ONE)
-				{
-				error  = KErrCorrupt;
-				}
-			}
-			break;
-		case 1:
-			{
-			if(entry.iWSID != DMMTSY_PHONE_WLAN_WSID_TWO ||
-			   entry.iUserDefined != DMMTSY_PHONE_WLAN_USERDEFD_TWO)
-				{
-				error  = KErrCorrupt;
-				}
-			}
-			break;
-		case 2:
-		default:
-			{
-			if(entry.iWSID != DMMTSY_PHONE_WLAN_WSID_THREE ||
-			   entry.iUserDefined != DMMTSY_PHONE_WLAN_USERDEFD_THREE)
-				{
-				error  = KErrCorrupt;
-				}
-			}
-			break;
-			}
-		}
-	if(error==KErrNone)	
-		{
-		AddDelayedReq(aTsyReqHandle,this);	
-		}
-	else
-		{
-		ReqCompleted(aTsyReqHandle,KErrCorrupt);
-		}
-	CleanupStack::PopAndDestroy(); 
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::StorePreferredWlanSIDListCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::StorePreferredWlanSIDListCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifyPreferredWlanSIDListChange(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyPreferredWlanSIDListChange called"));
-	AddDelayedReq(aTsyReqHandle,this);
-	return KErrNone;
-	}
-	
-TInt CPhoneDMmTsy::NotifyPreferredWlanSIDListChangeCancel(TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::NotifyPreferredWlanSIDListChangeCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetPreferredWlanSIDsPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredWlanSIDsPhase1 called"));
-	TInt ret=KErrNone;
-	TInt leaveCode=KErrNone;
-	TRAP(leaveCode, ret=ProcessGetPreferredWlanSIDsPhase1L(aTsyReqHandle, aClient, aBufSize););
-	if (leaveCode != KErrNone)
-		{
-		ReqCompleted(aTsyReqHandle,leaveCode);
-		}
-	return ret;
-	}	
-	
-TInt CPhoneDMmTsy::ProcessGetPreferredWlanSIDsPhase1L(const TTsyReqHandle aTsyReqHandle, 
-													 RMobilePhone::TClientId* aClient, 
-													 TInt* aBufSize)
-	{
-	// retrieve stored Wlan specific IDs from USIM,
-	// store each entry.
-	// stream the list and then return size of this buffer to client
-	CMobilePhoneStoredWlanSIDList* list=CMobilePhoneStoredWlanSIDList::NewL();
-	CleanupStack::PushL(list);
-
-	RMobilePhone::TWlanSIDV8 entry;
-
-	// fill up an example list
-	for (TInt index=0; index < DMMTSY_PHONE_WLAN_SIDLIST_COUNT; index++)
-		{
-		switch (index)
-			{
-		case 0:
-			entry.iWSID = DMMTSY_PHONE_WLAN_WSID_ONE;
-		    entry.iUserDefined = DMMTSY_PHONE_WLAN_USERDEFD_ONE;
-			break;
-			
-		case 1:
-			entry.iWSID = DMMTSY_PHONE_WLAN_WSID_TWO;
-		    entry.iUserDefined = DMMTSY_PHONE_WLAN_USERDEFD_TWO;
-			break;
-		
-		case 2:
-		default:
-			entry.iWSID = DMMTSY_PHONE_WLAN_WSID_THREE;
-		    entry.iUserDefined = DMMTSY_PHONE_WLAN_USERDEFD_THREE;
-			break;
-			}
-		// Add the entry into the list, at the next empty location
-		list->AddEntryL(entry);
-		}
-	// Store the streamed list and the client ID
-	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle);
-	CleanupStack::PushL(read);
-	
-	read->iListBuf = list->StoreLC();
-	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
-	
-	iGetWlanSIDsData->AppendL(read);
-	CleanupStack::Pop(); // pop the CListReadAllAttempt
-	
-	// return the CBufBase’s size to client
-	*aBufSize=(read->iListBuf)->Size();
-	
-	// Complete first phase of list retrieval
-	AddDelayedReq(aTsyReqHandle,this);
-	CleanupStack::PopAndDestroy(); // pop&destroy list
-	return KErrNone;
-	}
-
-TInt CPhoneDMmTsy::GetPreferredWlanSIDsPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhase2 called"));
-	CListReadAllAttempt* read=NULL;
-	// Find the get preferred wlan SIDs from this client
-	for (TInt i=0; i<iGetWlanSIDsData->Count(); ++i)
-		{
-		read = iGetWlanSIDsData->At(i);
-		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
-		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
-			{
-			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
-			// Copy the streamed list to the client
-			aBuf->Copy(bufPtr);
-			delete read;
-			iGetWlanSIDsData->Delete(i);
-			ReqCompleted(aTsyReqHandle,KErrNone);
-			return KErrNone;
-			}
-		}
-	// Should handle error case of not finding the matching client from read all phase 1
-	return KErrNotFound;
-	}
-	
-TInt CPhoneDMmTsy::GetPreferredWlanSIDsCancel(const TTsyReqHandle aTsyReqHandle)
-	{
-	LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredWlanSIDsCancel called"));
-	RemoveDelayedReq(aTsyReqHandle);
-	// Remove the read all attempt from iGetWlanSIDsData
-	CListReadAllAttempt* read=NULL;
-	for (TInt i=0; i<iGetWlanSIDsData->Count(); ++i)
-		{
-		read = iGetWlanSIDsData->At(i);
-		if (read->iReqHandle == aTsyReqHandle)
-			{
-			delete read;
-			iGetWlanSIDsData->Delete(i);
-			break;
-			}
-		}
-	ReqCompleted(aTsyReqHandle,KErrCancel);
-	return KErrNone;
-	}
-
-/*******************************************************************/
-//
-// CDelayedCompleter
-//
-/*******************************************************************/
-
-
-
-CDelayedCompleter::CDelayedCompleter(const TTsyReqHandle aTsyReqHandle, CPhoneDMmTsy *aPhoneObject,
-									CTelObject *aTelObject) :
-		CTimer(EPriorityStandard),iTsyReqHandle(aTsyReqHandle), iPhoneObject(aPhoneObject),
-			iTelObject(aTelObject)
-	{
-
-	}
-
-CDelayedCompleter* CDelayedCompleter::NewL(const TTsyReqHandle aTsyReqHandle, CPhoneDMmTsy *aPhoneObject,
-									CTelObject *aTelObject)
-	{
-	CDelayedCompleter* This = new (ELeave) CDelayedCompleter(aTsyReqHandle,aPhoneObject,aTelObject);
-	CleanupStack::PushL(This);
-	This->ConstructL();
-	CleanupStack::Pop();
-	return This;
-	}
-
-void CDelayedCompleter::ConstructL()
-	{
-	CTimer::ConstructL();
-	CActiveScheduler::Add(this);
-	}
-
-void CDelayedCompleter::RunL()
-	{
-	iTelObject->ReqCompleted(iTsyReqHandle,KErrNone);
-	(void) iPhoneObject->RemoveDelayedReq(iTsyReqHandle); // we get deleted here
-	}
+// Copyright (c) 1997-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:
+//
+
+/**
+ @file
+*/
+
+
+#include "mmtsy.h"
+#include "testdef.h"
+#include "ETELMM.H"
+#include <et_clsvr.h>
+#include "Dmmlog.h"
+#include <etelmmerr.h>
+
+//
+//	CPhoneDMmTsy
+//
+CPhoneDMmTsy* CPhoneDMmTsy::NewL(CPhoneFactoryDummyBase* aFac)
+	{
+	CPhoneDMmTsy* phone=new(ELeave) CPhoneDMmTsy(aFac);
+	CleanupStack::PushL(phone);
+	phone->ConstructL();
+	CleanupStack::Pop();
+	return phone;
+	}
+
+CPhoneDMmTsy::CPhoneDMmTsy(CPhoneFactoryDummyBase* aFac)
+: CPhoneDummyBase(aFac),
+  iActiveRequestObjects(_FOFF(CPhoneDMmTsy::CActiveListNode,iNext))
+	{}
+
+void CPhoneDMmTsy::ConstructL()
+	{
+	iPhoneTestCount=1;
+	CPhoneDummyBase::ConstructL();
+	iGetDetectedNetworks = new CArrayPtrFlat<CListReadAllAttempt>(1);
+	iGetCFStatus = new CArrayPtrFlat<CListReadAllAttempt>(1);
+	iGetCB = new CArrayPtrFlat<CListReadAllAttempt>(1);
+	iGetCWStatus = new CArrayPtrFlat<CListReadAllAttempt>(1);
+	iGetCcbsRequests = new CArrayPtrFlat<CListReadAllAttempt>(1);
+	iGetPreferredNetworks = new CArrayPtrFlat<CListReadAllAttempt>(1);
+	iGetAuthorizationData = new CArrayPtrFlat<CListReadAllAttempt>(1);
+	iGetWlanSIDsData = new CArrayPtrFlat<CListReadAllAttempt>(1);
+	iAuthReadAll = new CArrayPtrFlat<CListReadAllAttempt>(1);
+
+	iAuthInfo=RMobilePhone::CImsAuthorizationInfoV5::NewL();
+	LOGTEXT(_L8("CPhoneDMmTsy created"));
+	}
+
+CPhoneDMmTsy::~CPhoneDMmTsy()
+	{
+	if (iGetDetectedNetworks)
+		iGetDetectedNetworks->ResetAndDestroy();
+	if (iGetCFStatus)
+		iGetCFStatus->ResetAndDestroy();
+	if (iGetCB)
+		iGetCB->ResetAndDestroy();
+	if (iGetCWStatus)
+		iGetCWStatus->ResetAndDestroy();
+	if (iGetCcbsRequests)
+		iGetCcbsRequests->ResetAndDestroy();
+	if(iGetPreferredNetworks)
+		iGetPreferredNetworks->ResetAndDestroy();
+	
+	if(iGetAuthorizationData)
+		iGetAuthorizationData->ResetAndDestroy();
+	
+	if(iGetWlanSIDsData)
+		iGetWlanSIDsData->ResetAndDestroy();
+	
+  	if(iAuthReadAll)
+		iAuthReadAll->ResetAndDestroy();
+  
+	delete iGetDetectedNetworks;
+	delete iGetCFStatus;
+	delete iGetCB;
+	delete iGetCWStatus;
+	delete iGetCcbsRequests;
+	delete iGetPreferredNetworks;
+	delete iGetAuthorizationData;
+	delete iAuthInfo;
+	delete iGetWlanSIDsData;
+	delete iAuthReadAll;
+	
+	LOGTEXT(_L8("CPhoneDMmTsy destroyed"));
+	}
+
+void CPhoneDMmTsy::Init()
+	{
+	// server calls this function once it has created the sub-session
+	// it gives the TSY chance to do any initialisation it may need to do for
+	// this sub-session
+	}
+
+CTelObject* CPhoneDMmTsy::OpenNewObjectByNameL(const TDesC& aName)
+	{
+	// Server calls this function when a client is opening an object from the phone
+	// for the first time.
+	// Multiple clients opening handles to the same sub-session object will be dealt with
+	// by the server - i.e. by reference counting
+
+	if((aName.Compare(DMMTSY_LINE_VOICE_NAME)==KErrNone) ||
+	   (aName.Compare(DMMTSY_LINE_VOICE2_NAME)==KErrNone) ||
+	   (aName.Compare(DMMTSY_LINE_DATA_NAME)==KErrNone) ||
+	   (aName.Compare(DMMTSY_LINE_FAX_NAME)==KErrNone))
+
+	   return REINTERPRET_CAST(CTelObject*,CLineDMmTsy::NewL(this,FacPtr()));
+
+	if (aName.Compare(KETelSmsMessaging)==KErrNone)
+	   return REINTERPRET_CAST(CTelObject*,CSmsMessagingDMmTsy::NewL(this,FacPtr(),aName));
+
+	if (aName.Compare(KETelBroadcastMessaging)==KErrNone)
+	   return REINTERPRET_CAST(CTelObject*,CBroadcastMessagingDMmTsy::NewL(this,FacPtr(),aName));
+
+	if (aName.Compare(KETelUssdMessaging)==KErrNone)
+	   return REINTERPRET_CAST(CTelObject*,CUssdMessagingDMmTsy::NewL(this,FacPtr(),aName));
+
+	if (aName.Compare(KETelNamStore)==KErrNone)
+		return REINTERPRET_CAST(CTelObject*, CNamStoreDMmTsy::NewL(this,FacPtr(),aName));
+
+	if (aName.Compare(KETelOwnNumberStore)==KErrNone)
+		return REINTERPRET_CAST(CTelObject*, CONStoreDMmTsy::NewL(this,FacPtr(),aName));
+
+	if (aName.Compare(KETelEmergencyNumberStore)==KErrNone)
+		return REINTERPRET_CAST(CTelObject*, CENStoreDMmTsy::NewL(this,FacPtr(),aName));
+
+	if (aName.Compare(KETelIccVoiceMailBox)==KErrNone)
+		return REINTERPRET_CAST(CTelObject*, CMobilePhoneBookStoreDMmTsy::NewL(this,FacPtr(),aName));
+
+	if (aName.Compare(KETelConferenceCall) == 0)
+		return REINTERPRET_CAST(CTelObject*, CMobileConferenceCallDMmTsy::NewL(this,FacPtr(),aName));
+    
+    if (aName.Compare(KETelLocationServices) == 0)
+		return REINTERPRET_CAST(CTelObject*, CMobileLocationServicesDMmTsy::NewL(this,FacPtr(),aName));
+	
+	if (aName.Left(SCEAP_SSN_LENGTH).Compare(KETelSmartCardEapSession) == 0)
+		{
+		TInt len;
+
+		// Extracting AID
+		RMobilePhone::TAID tempAID;
+		len = CharToSeptNumL(aName[SCEAP_SSN_LENGTH]) * 2;
+		TPtrC ptrAid = aName.Mid(SCEAP_SSN_LENGTH + 1, len);
+		ConvertTextToBinary(ptrAid, tempAID);
+
+		// Extracting EapType
+		RMobileSmartCardEap::TEapType eapType;
+		TInt posTypeLength = SCEAP_SSN_LENGTH + len + 1;
+		len = CharToSeptNumL(aName[posTypeLength]);
+		TPtrC ptrEapT = aName.Mid(posTypeLength + 1, len);
+		eapType.Copy(ptrEapT);
+
+		CSmartCardEapDMmTsy* eapSubSessObj = NULL;
+		TRAPD(err, eapSubSessObj = CSmartCardEapDMmTsy::NewL(this, tempAID, eapType, FacPtr()));
+
+		if (err != KErrNone || eapSubSessObj == NULL)
+			{
+			User::Leave((err == KErrNone ? KErrGeneral : err));
+			}
+
+		return eapSubSessObj;
+		} // End of opening Smart Card EAP sub-session
+
+	TInt tLength;
+	TPtrC remain(aName);
+
+	if ((tLength=remain.Find(PHBOOK_DELIMITER))!=KErrNotFound)
+		{
+		if(aName.Left(tLength) == KETelIccVoiceMailBox
+			&&	aName.Right(aName.Length()-tLength-2) == KEtelUSimPhoneBookType) 
+			return REINTERPRET_CAST(CTelObject*, 
+					CMobilePhoneBookStoreDMmTsy::NewL(this,FacPtr(),aName.Left(tLength),
+												  aName.Right(aName.Length()-tLength-2)));
+		}
+
+	return NULL;
+	}
+
+/**
+Returns the numerical value that corresponds to the numeric character
+of its parameter (in base 17).
+
+@param aDigit A char between '0' to '9' or between 'A' to 'G'
+*/
+TInt CPhoneDMmTsy::CharToSeptNumL(const TChar& aChar) const
+	{
+	TInt ret = 0;
+
+	if((aChar >= '0') && (aChar <= '9'))
+		{
+		ret = TUint(aChar) - '0';
+		}
+	else if((aChar >= 'A') && (aChar <= 'G'))
+		{
+		ret = TUint(aChar) - 'A' + 10;
+		}
+	else
+		{
+		User::Leave(KErrArgument);
+		}
+
+	return ret;
+	}
+
+/**
+Converts a buffer containing string of the hexadecimal characters,
+representing the binary data, into this binary data!
+
+@param aSrc The buffer containing text representation.
+@param aDst Binary data will be written to this buffer.
+*/
+void CPhoneDMmTsy::ConvertTextToBinary(const TDesC& aSrc, TDes8& aDst)
+	{
+	aDst.SetLength(aSrc.Length() / 2);
+
+	for (TInt i = 0; i < aSrc.Length(); i += 2)
+		{
+		TInt val = 0;
+		if ((aSrc[i] >= '0') && (aSrc[i] <= '9'))
+			{
+			val = ((aSrc[i] - '0') << 4);
+			}
+		else if ((aSrc[i] >= 'A') && (aSrc[i] <= 'F'))
+			{
+			val = ((aSrc[i] - 'A' + 10) << 4);
+			}
+
+		if ((aSrc[i+1] >= '0') && (aSrc[i+1] <= '9'))
+			{
+			val += (aSrc[i+1] - '0');
+			}
+		else if ((aSrc[i+1] >= 'A') && (aSrc[i+1] <= 'F'))
+			{
+			val += (aSrc[i+1] - 'A' + 10);
+			}
+
+		aDst[i/2] = (TUint8) val;
+		}
+	}
+
+CTelObject* CPhoneDMmTsy::OpenNewObjectL(TDes& /*aNewName*/)
+	{
+	// all objects opened from the phone are opened by name, hence this method
+	// is not supported
+	User::Leave(KErrNotSupported);
+	return NULL;
+	}
+
+
+CTelObject::TReqMode CPhoneDMmTsy::ReqModeL(const TInt aIpc)
+	{
+	// ReqModeL is called from the server's CTelObject::ReqAnalyserL
+	// in order to check the type of request it has.
+
+	// The following are example request types for this dummy TSY
+	// All TSYs do not have to have these request types but they have been given
+	// "sensible" values in this test code
+
+	CTelObject::TReqMode ret=0;
+	switch (aIpc)
+		{
+	// Asynchronous Notification Requests
+	case EMobilePhoneNotifyDTMFCapsChange:
+	case EMobilePhoneNotifyStopInDTMFString:
+	case EMobilePhoneNotifyModeChange:
+	case EMobilePhoneNotifyNetworkRegistrationStatusChange:
+	case EMobilePhoneNotifyCurrentNetworkChange:
+	case EMobilePhoneNotifyCellInfoChange:
+	case EMobilePhoneNotifyIccAccessCapsChange:
+	case EMobilePhoneNotifyBatteryInfoChange:
+	case EMobilePhoneNotifySignalStrengthChange:
+	case EMobilePhoneNotifyIndicatorChange:
+	case EMobilePhoneNotifyCallServiceCapsChange:
+	case EMobilePhoneNotifyCallForwardingStatusChange:
+	case EMobilePhoneNotifyCallForwardingActive:
+	case EMobilePhoneNotifyNetworkSelectionSettingChange:
+	case EMobilePhoneNotifyNITZInfoChange:
+	case EMobilePhoneNotifyCallBarringStatusChange:
+	case EMobilePhoneNotifyCallWaitingStatusChange:
+	case EMobilePhoneNotifyCCBSStatusChange:
+	case EMobilePhoneNotifyCCBSRecall:
+	case EMobilePhoneNotifyAlternatingCallCapsChange:
+	case EMobilePhoneNotifyAlternatingCallModeChange:
+	case EMobilePhoneNotifyALSLineChange:
+	case EMobilePhoneNotifyCostCapsChange:
+	case EMobilePhoneNotifyCostInfoChange:
+	case EMobilePhoneNotifySecurityCapsChange:
+	case EMobilePhoneNotifyLockInfoChange:
+	case EMobilePhoneNotifySecurityCodeInfoChange:
+	case EMobilePhoneNotifySecurityEvent:
+	case EMobilePhoneNotifyMessageWaiting:
+	case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange:
+	case EMobilePhoneNotifyFdnStatusChange:
+	case EMobilePhoneNotifyMulticallParamsChange:
+	case EMobilePhoneNotifyIncomingCallTypeChange:
+	case EMobilePhoneNotifyUUSSettingChange:
+	case EMobilePhoneNotifyDefaultPrivacyChange:
+	case EMobilePhoneNotifyMultimediaCallPreferenceChange:
+	case EMobilePhoneNotifyNetworkSecurityLevelChange:
+	case EMobilePhoneNotifyUSimAppsSelectionModeChange:
+	case EMobilePhoneNotifyUSimApplicationsInfoChange:
+	case EMobilePhoneNotifyMailboxNumbersChange:
+	case EMobilePhoneNotifyMmsUpdate:
+	case EMobilePhoneNotifyMmsConfig:
+	case EMobilePhoneNotifyNetworkInvScanChange:
+	case EMobilePhoneNotifyNetworkInvScanEvent:
+	case EMobilePhoneNotifyAirTimeDurationChange:
+	case EMobilePhoneNotifySendNetworkServiceRequest:
+	case EMobilePhoneNotifyAllSendNetworkServiceRequest:
+	case EMobilePhoneNotifyDTMFEvent:
+	case EMobilePhoneNotifyStorePreferredNetworksListChange:
+	case EMobilePhoneNotifyCipheringIndicatorStatus:
+	case EMobilePhoneNotifyIdentityServiceStatus:
+	case EMobilePhoneNotifyIdentitySuppressionRejected:
+	case EMobilePhoneNotifyMulticallIndicatorChange:
+	case EMobilePhoneNotifySmartCardApplicationInfoChange:
+	case EMobilePhoneNotifyCurrentNetworkNoLocationChange:
+	case EMobilePhoneNotifyImsAuthorizationInfoChanged:
+	case EMobilePhoneNotifyAPNListChanged:
+	case EMobilePhoneNotifyAuthenticateDataChange:
+	case EMobilePhoneNotifyWlanDataChange:
+	case EMobilePhoneNotifyPreferredWlanSIDListChange:
+	
+
+	case EMobilePhoneNotifyAPNControlListServiceStatusChange:
+	ret=KReqModeMultipleCompletionEnabled | KReqModeRePostImmediately;
+		break;
+	
+	// Non flow-controlled requests
+	case EMobilePhoneGetDTMFCaps:
+	case EMobilePhoneStopDTMFTone:
+	case EMobilePhoneGetNetworkCaps:
+	case EMobilePhoneGetCurrentMode:
+	case EMobilePhoneGetNetworkRegistrationStatus:
+	case EMobilePhoneGetHomeNetwork:
+	case EMobilePhoneGetCurrentNetwork:
+	case EMobilePhoneGetCellInfo:
+	case EMobilePhoneGetDetectedNetworksPhase1:
+	case EMobilePhoneGetDetectedNetworksPhase2:
+	case EMobilePhoneGetDetectedNetworksV2Phase1:
+	case EMobilePhoneGetDetectedNetworksV2Phase2:
+	case EMobilePhoneGetDetectedNetworksV5Phase1:
+	case EMobilePhoneGetDetectedNetworksV5Phase2:
+	case EMobilePhoneGetDetectedNetworksV8Phase1:
+	case EMobilePhoneGetDetectedNetworksV8Phase2:
+	case EMobilePhoneGetMultimodeCaps:
+	case EMobilePhoneGetPhoneStoreInfo:
+	case EMobilePhoneGetIccAccessCaps:
+	case EMobilePhoneGetIccIdentity:
+	case EMobilePhoneGetCustomerServiceProfile:
+	case EMobilePhoneGetServiceTable:
+	case EMobilePhoneGetBatteryCaps:
+	case EMobilePhoneGetBatteryInfo:
+	case EMobilePhoneGetSignalCaps:
+	case EMobilePhoneGetSignalStrength:
+	case EMobilePhoneGetIndicatorCaps:
+	case EMobilePhoneGetIndicator:
+	case EMobilePhoneGetIdentityCaps:
+	case EMobilePhoneGetPhoneId:
+	case EMobilePhoneGetSubscriberId:
+	case EMobilePhoneGetCallServiceCaps:
+	case EMobilePhoneGetCallForwardingStatusPhase1:
+	case EMobilePhoneGetCallForwardingStatusPhase2:
+	case EMobilePhoneGetFeatureCode:
+	case EMobilePhoneGetNetworkSelectionSetting:
+	case EMobilePhoneSetNetworkSelectionSetting:
+	case EMobilePhoneSelectNetwork:
+	case EMobilePhoneGetNITZInfo:
+	case EMobilePhoneGetServiceProviderName:
+	case EMobilePhoneGetIdentityServiceStatus:
+	case EMobilePhoneGetBarringStatusPhase1:
+	case EMobilePhoneGetBarringStatusPhase2:
+	case EMobilePhoneSetCallBarringStatus:
+	case EMobilePhoneSetCallBarringPassword:
+	case EMobilePhoneGetWaitingStatusPhase1:
+	case EMobilePhoneGetWaitingStatusPhase2:
+	case EMobilePhoneSetCallWaitingStatus:
+	case EMobilePhoneGetCCBSStatus:
+	case EMobilePhoneDeactivateCCBS:
+	case EMobilePhoneAcceptCCBSRecall:
+	case EMobilePhoneRefuseCCBSRecall:
+	case EMobilePhoneGetCompletionRequestsPhase1:
+	case EMobilePhoneGetCompletionRequestsPhase2:
+	case EMobilePhoneGetAlternatingCallCaps:
+	case EMobilePhoneGetAlternatingCallMode:
+	case EMobilePhoneSetAlternatingCallMode:
+	case EMobilePhoneGetALSLine:
+	case EMobilePhoneSetALSLine:
+	case EMobilePhoneGetCostCaps:
+	case EMobilePhoneClearCostMeter:
+	case EMobilePhoneSetMaxCostMeter:
+	case EMobilePhoneSetPuct:
+	case EMobilePhoneGetCostInfo:
+	case EMobilePhoneGetSecurityCaps:
+	case EMobilePhoneGetLockInfo:
+	case EMobilePhoneSetLockSetting:
+	case EMobilePhoneGetSecurityCodeInfo:
+	case EMobilePhoneChangeSecurityCode:
+	case EMobilePhoneVerifySecurityCode:
+	case EMobilePhoneAbortSecurityCode:
+	case EMobilePhoneGetFdnStatus:
+	case EMobilePhoneSetFdnSetting:
+	case EMobilePhoneGetMulticallParams:
+	case EMobilePhoneSetMulticallParams:
+	case EMobilePhoneGetIncomingCallType:
+	case EMobilePhoneSetIncomingCallType:
+	case EMobilePhoneGetUUSSetting:
+	case EMobilePhoneSetUUSSetting:
+	case EMobilePhoneGetDefaultPrivacy:
+	case EMobilePhoneSetDefaultPrivacy:
+	case EMobilePhoneGetIccMessageWaitingIndicators:
+	case EMobilePhoneSetIccMessageWaitingIndicators:
+	case EMobilePhoneGetMultimediaCallPreference:
+	case EMobilePhoneSetMultimediaCallPreference:
+	case EMobilePhoneGetNetworkSecurityLevel:
+	case EMobilePhoneEnumerateUSimApplications:
+	case EMobilePhoneGetUSimAppsSelectionMode:
+	case EMobilePhoneSetUSimAppsSelectionMode:
+	case EMobilePhoneSetUSimApplicationStatus:
+	case EMobilePhoneGetUSimApplicationsInfo:
+	case EMobilePhoneSetSSPassword:
+	case EMobilePhoneGetMailboxNumbers:
+	case EMobilePhoneSetMmsUserConnParams:	
+	case EMobilePhoneSetMmsUserPreferences:
+	case EMobilePhoneGetMmsConfig:
+	case EMobilePhoneGetHomeNetworkSearchPeriod:
+	case EMobilePhoneGetLastUsedAccessTechnology:
+	case EMobilePhoneGetNetworkInvScanSetting:
+	case EMobilePhoneGetCallForwardingIndicator:
+	case EMobilePhoneGetCompMethodName:
+	case EMobilePhoneEnumerateAPNEntries:
+	case EMobilePhoneGetAPNname:
+	case EMobilePhoneAppendAPNName:
+	case EMobilePhoneDeleteAPNName:
+	case EMobilePhoneSetAPNControlListServiceStatus:
+	case EMobilePhoneGetAPNControlListServiceStatus:
+	case EMobilePhoneGetAirTimeDuration:
+	case EMobilePhoneClearBlacklist:
+	case EMobilePhoneGetPersonalisationCaps:
+	case EMobilePhoneGetPersonalisationStatus:
+	case EMobilePhoneSetPersonalisationStatus:
+	case EMobilePhoneGetNetworkName:
+	case EMobilePhoneGetPreferredNetworksPhase1:
+	case EMobilePhoneGetPreferredNetworksPhase2:
+	case EMobilePhoneStorePreferredNetworksList:
+	case EMobilePhoneGetCipheringIndicatorStatus:
+	case EMobilePhoneSetIdentityServiceStatus:
+	case EMobilePhoneEnumerateSmartCardApplications:
+	case EMobilePhoneGetSmartCardApplicationInfo:
+	case EMobilePhoneSetSmartCardApplicationStatus:
+	case EMobilePhoneGetScFileInfo:
+	case EMobilePhoneReadScFile:
+	case EMobilePhoneUpdateScFile:
+	case EMobilePhoneGetCurrentActiveUSimApplication:
+	case EMobilePhoneGetCurrentNetworkNoLocation:		
+	case EMobilePhoneAuthorizationInfoPhase1:
+	case EMobilePhoneAuthorizationInfoPhase2:
+	case EMobilePhoneIMSAuthenticate:
+	case EMobilePhoneSmartCardAuthenticate:
+	case EETelPhoneSetEmergencyClient:
+	case EMobilePhoneGetAuthenticationParams:
+	case EMobilePhoneSetGbaBootstrapParams:
+	case EMobilePhoneAuthenticationListPhase1:
+	case EMobilePhoneAuthenticationListPhase2:
+	case EMobilePhoneGetWlanData:
+	case EMobilePhoneSetWlanData:
+	case EMobilePhoneGetPreferredWlanSIDsPhase1:
+	case EMobilePhoneGetPreferredWlanSIDsPhase2:
+	case EMobilePhoneStorePreferredWlanSIDList:
+		break;
+
+	// Flow controlled requests
+	case EMobilePhoneSendNetworkServiceRequest:
+	case EMobilePhoneSendDTMFTones:
+	case EMobilePhoneReadDTMFTones:
+	case EMobilePhoneStartDTMFTone:
+	case EMobilePhoneContinueDTMFStringSending:
+	case EMobilePhoneSetCallForwardingStatus:
+	case EMobilePhoneProgramFeatureCode:
+	case EMobilePhoneTerminateAllCalls:
+	case EMobilePhoneTerminateActiveCalls:
+		ret=KReqModeFlowControlObeyed;
+		break;
+	default:
+		ret=CPhoneBase::ReqModeL(aIpc);
+		break;
+		}
+	return ret;
+	}
+
+TInt CPhoneDMmTsy::RegisterNotification(const TInt aIpc)
+	{
+	// RegisterNotification is called when the server recognises that this notification
+	// is being posted for the first time on this sub-session object.
+
+	// It enables the TSY to "turn on" any regular notification messages that it may 
+	// receive from the phone
+
+	switch (aIpc)
+		{
+	case EMobilePhoneNotifyDTMFCapsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - DTMF Caps Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyStopInDTMFString:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - DTMF Stop In DTMF String "));
+		return KErrNone;
+	case EMobilePhoneNotifyModeChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Mode Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyNetworkRegistrationStatusChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Registration Status Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyCurrentNetworkChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Current network Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyCurrentNetworkNoLocationChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Current network ISV Change No Location"));
+		return KErrNone;
+	case EMobilePhoneNotifyCellInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Cell information Change "));
+		return KErrNone;		
+	case EMobilePhoneNotifyIccAccessCapsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - SIM Access Caps Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyBatteryInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Battery Info Change "));
+		return KErrNone;
+	case EMobilePhoneNotifySignalStrengthChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Signal Strength Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyIndicatorChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Indicator Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyCallServiceCapsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Call Service Caps Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyCallForwardingStatusChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Call Forwarding Status Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyCallForwardingActive:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Call Forwarding Active"));
+		return KErrNone;
+	case EMobilePhoneNotifyNetworkSelectionSettingChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Selection Setting Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyNITZInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Time Info Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyCallBarringStatusChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Call Barring Status Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyCallWaitingStatusChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Call Waiting Status Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyCCBSStatusChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify CCBS Status Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyCCBSRecall:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify CCBS Recall"));
+		return KErrNone;
+	case EMobilePhoneNotifyAlternatingCallCapsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Alternating Call Caps Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyAlternatingCallModeChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Alternating Mode Caps Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyALSLineChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify ALSLine Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyCostCapsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Cost Caps Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyCostInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Cost Info Change"));
+		return KErrNone;
+	case EMobilePhoneNotifySecurityCapsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Security Caps Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyLockInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Lock Info Change"));
+		return KErrNone;
+	case EMobilePhoneNotifySecurityCodeInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Security Code Info Change"));
+		return KErrNone;
+	case EMobilePhoneNotifySecurityEvent:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify On Security Event"));
+		return KErrNone;
+	case EMobilePhoneNotifyMessageWaiting:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Message Waiting"));
+		return KErrNone;
+	case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Icc Message Waiting Indicators Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyFdnStatusChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Fdn Status Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyMulticallParamsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Multicall Params Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyIncomingCallTypeChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Incoming Call Type Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyUUSSettingChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify UUS Setting Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyDefaultPrivacyChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Privacy Setting Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyMultimediaCallPreferenceChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Multimedia Call Setting Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyNetworkSecurityLevelChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Security Level Change"));
+		return KErrNone;	
+	case EMobilePhoneNotifyUSimAppsSelectionModeChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify USim Applications Selection Mode Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyUSimApplicationsInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify USim Applications Info Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyMailboxNumbersChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Mobile Mailbox Numbers functionality"));
+		return KErrNone;
+	case EMobilePhoneNotifyMmsUpdate:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Mobile MMS Update functionality"));
+		return KErrNone;
+	case EMobilePhoneNotifyMmsConfig:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Mobile MMS  Config functionality"));
+		return KErrNone;
+	case EMobilePhoneNotifyNetworkInvScanChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Investigation Scan Change functionality"));
+		return KErrNone;
+	case EMobilePhoneNotifyNetworkInvScanEvent:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Investigation Scan Event functionality"));
+		return KErrNone;
+	case EMobilePhoneNotifyAirTimeDurationChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Air Time Duration Change"));
+		return KErrNone;
+	case EMobilePhoneNotifySendNetworkServiceRequest:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Send Network Service Request"));
+		return KErrNone;
+	case EMobilePhoneNotifyAllSendNetworkServiceRequest:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify All Send Network Service Request"));
+		return KErrNone;
+	case EMobilePhoneNotifyDTMFEvent:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify DTMF Event"));
+		return KErrNone;
+	case EMobilePhoneNotifyStorePreferredNetworksListChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Stored Networks List Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyCipheringIndicatorStatus:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Ciphering Indicator Status Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyIdentityServiceStatus:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Identity Service Status Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyIdentitySuppressionRejected:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Identity Suppression Rejected"));
+		return KErrNone;
+	case EMobilePhoneNotifyMulticallIndicatorChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Multicall Indicator Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyImsAuthorizationInfoChanged:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Ims Authorization Info Changed"));
+		return KErrNone;
+	case EMobilePhoneNotifySmartCardApplicationInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Smart Card Application Info Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyAPNListChanged:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify APN Control List Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyAPNControlListServiceStatusChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify APN Control List Service Status Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyAuthenticateDataChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Authentication Data Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyWlanDataChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Wlan Data Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyPreferredWlanSIDListChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Wlan SIDs List Change"));
+		return KErrNone;		
+		
+	default:
+		// Unknown or invalid SMS IPC
+		return KErrNotSupported;
+		}
+	}
+
+TInt CPhoneDMmTsy::DeregisterNotification(const TInt aIpc)
+	{
+	// DeregisterNotification is called when the server recognises that this notification
+	// will not be posted again because the last client to have a handle on this sub-session
+	// object has just closed the handle.
+
+	// It enables the TSY to "turn off" any regular notification messages that it may
+	// receive from the phone.
+
+	switch (aIpc)
+		{
+	case EMobilePhoneNotifyDTMFCapsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - DTMF Caps Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyStopInDTMFString:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - DTMF Stop In DTMF String "));
+		return KErrNone;
+	case EMobilePhoneNotifyModeChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Mode Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyNetworkRegistrationStatusChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Registration Status Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyCurrentNetworkChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Current network Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyCurrentNetworkNoLocationChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Current network Change No Location"));
+		return KErrNone;
+	case EMobilePhoneNotifyCellInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Cell information Change "));
+		return KErrNone;		
+	case EMobilePhoneNotifyIccAccessCapsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - SIM Access Caps Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyBatteryInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Battery Info Change "));
+		return KErrNone;
+	case EMobilePhoneNotifySignalStrengthChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Signal Strength Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyIndicatorChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Indicator Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyCallServiceCapsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Call Service Caps Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyCallForwardingStatusChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Call Forwarding Status Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyCallForwardingActive:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Call Forwarding Active"));
+		return KErrNone;
+	case EMobilePhoneNotifyNetworkSelectionSettingChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Selection Setting Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyNITZInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Time Info Change "));
+		return KErrNone;
+	case EMobilePhoneNotifyCallBarringStatusChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Call Barring Status Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyCallWaitingStatusChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Call Waiting Status Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyCCBSStatusChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify CCBS Status Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyCCBSRecall:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify CCBS Recall"));
+		return KErrNone;
+	case EMobilePhoneNotifyAlternatingCallCapsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Alternating Call Caps Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyAlternatingCallModeChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Alternating Mode Caps Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyALSLineChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify ALSLine Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyCostCapsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Cost Caps Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyCostInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Cost Info Change"));
+		return KErrNone;
+	case EMobilePhoneNotifySecurityCapsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Security Caps Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyLockInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Lock Info Change"));
+		return KErrNone;
+	case EMobilePhoneNotifySecurityCodeInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Security Code Info Change"));
+		return KErrNone;
+	case EMobilePhoneNotifySecurityEvent:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify On Security Event"));
+		return KErrNone;	
+	case EMobilePhoneNotifyMessageWaiting:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Message Waiting"));
+		return KErrNone;
+	case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Icc Message Waiting Indicators Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyFdnStatusChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Fdn Status Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyMulticallParamsChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Multicall Params Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyIncomingCallTypeChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Incoming Call Type Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyUUSSettingChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify UUS Setting Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyDefaultPrivacyChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Privacy Setting Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyMultimediaCallPreferenceChange:	
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Multimedia Call Setting Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyNetworkSecurityLevelChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Security Level Change"));
+		return KErrNone;	
+	case EMobilePhoneNotifyUSimAppsSelectionModeChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify USim Applications Selection Mode Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyUSimApplicationsInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify USim Applications Info Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyMailboxNumbersChange:			
+		LOGTEXT(_L8("CPhoneDMmTsy:  DeregisterNotification - Notify Mobile Mailbox Numbers functionality"));
+		return KErrNone;
+	case EMobilePhoneNotifyMmsUpdate:
+		LOGTEXT(_L8("CPhoneDMmTsy:  DeregisterNotification - Notify Mobile MMS Update functionality"));
+		return KErrNone;
+	case EMobilePhoneNotifyMmsConfig:
+		LOGTEXT(_L8("CPhoneDMmTsy:  DeregisterNotification - Notify Mobile MMS Config functionality"));
+		return KErrNone;
+	case EMobilePhoneNotifyNetworkInvScanChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Investigation Scan Change functionality"));
+		return KErrNone;
+	case EMobilePhoneNotifyNetworkInvScanEvent:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Investigation Scan Event functionality"));
+		return KErrNone;
+	case EMobilePhoneNotifyAirTimeDurationChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Air Time Duration Change"));
+		return KErrNone;
+	case EMobilePhoneNotifySendNetworkServiceRequest:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Send Network Service Request"));
+		return KErrNone;
+	case EMobilePhoneNotifyAllSendNetworkServiceRequest:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify All Send Network Service Request"));
+		return KErrNone;
+	case EMobilePhoneNotifyDTMFEvent:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify DTMF Event"));
+		return KErrNone;	
+	case EMobilePhoneNotifyStorePreferredNetworksListChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Stored Networks List Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyCipheringIndicatorStatus:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Ciphering IndicatorStatus Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyIdentityServiceStatus:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Identity Service Status Change"));
+		return KErrNone;	
+	case EMobilePhoneNotifyIdentitySuppressionRejected:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Identity Suppression Rejected"));
+		return KErrNone;	
+	case EMobilePhoneNotifyMulticallIndicatorChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify MulticallIndicator Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyImsAuthorizationInfoChanged:
+		LOGTEXT(_L8("CPhoneDMmTsy:DeregisterNotification - Notify Ims Authorization Info Changed"));
+		return KErrNone;
+	case EMobilePhoneNotifySmartCardApplicationInfoChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Smart Card Application Info Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyAPNListChanged:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify APN Control List Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyAPNControlListServiceStatusChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify APN Control List Service Status Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyAuthenticateDataChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Authentication Data Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyWlanDataChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Wlan Data Change"));
+		return KErrNone;
+	case EMobilePhoneNotifyPreferredWlanSIDListChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Wlan SIDs list Change"));
+		return KErrNone;		
+	default:
+		// Unknown or invalid sms IPC
+		return KErrNotSupported;
+		}
+	}
+
+TInt CPhoneDMmTsy::NumberOfSlotsL(const TInt aIpc)
+	{
+	// NumberOfSlotsL is called by the server when it is registering a new notification.
+	// It enables the TSY to tell the server how many buffer slots to allocate for
+	// "repost immediately" notifications that may trigger before clients collect them
+
+	TInt numberOfSlots=1;
+	switch (aIpc)
+		{
+	case EMobilePhoneNotifyBatteryInfoChange:
+	case EMobilePhoneNotifySignalStrengthChange:
+	case EMobilePhoneNotifyIndicatorChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: Registered with 10 slots"));
+		numberOfSlots=10;
+		break;
+
+	case EMobilePhoneNotifyDTMFCapsChange:
+	case EMobilePhoneNotifyStopInDTMFString:
+	case EMobilePhoneNotifyCallServiceCapsChange:
+	case EMobilePhoneNotifyCCBSRecall:
+	case EMobilePhoneNotifyDTMFEvent:
+		LOGTEXT(_L8("CPhoneDMmTsy: Registered with 5 slots"));
+		numberOfSlots=5;
+		break;
+	
+	case EMobilePhoneNotifyModeChange:
+	case EMobilePhoneNotifyNetworkRegistrationStatusChange:
+	case EMobilePhoneNotifyCurrentNetworkChange:
+	case EMobilePhoneNotifyCurrentNetworkNoLocationChange:
+	case EMobilePhoneNotifyCellInfoChange:
+	case EMobilePhoneNotifyIccAccessCapsChange:
+	case EMobilePhoneNotifyCallForwardingStatusChange:
+	case EMobilePhoneNotifyCallForwardingActive:
+	case EMobilePhoneNotifyNetworkSelectionSettingChange:
+	case EMobilePhoneNotifyNITZInfoChange:
+	case EMobilePhoneNotifyCallBarringStatusChange:
+	case EMobilePhoneNotifyCallWaitingStatusChange:
+	case EMobilePhoneNotifyCCBSStatusChange:
+	case EMobilePhoneNotifyAlternatingCallCapsChange:
+	case EMobilePhoneNotifyAlternatingCallModeChange:
+	case EMobilePhoneNotifyALSLineChange:
+	case EMobilePhoneNotifyCostCapsChange:
+	case EMobilePhoneNotifyCostInfoChange:
+	case EMobilePhoneNotifySecurityCapsChange:
+	case EMobilePhoneNotifyLockInfoChange:
+	case EMobilePhoneNotifySecurityCodeInfoChange:
+	case EMobilePhoneNotifySecurityEvent:
+	case EMobilePhoneNotifyMessageWaiting:
+	case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange:
+	case EMobilePhoneNotifyFdnStatusChange:
+	case EMobilePhoneNotifyMulticallParamsChange:
+	case EMobilePhoneNotifyIncomingCallTypeChange:
+	case EMobilePhoneNotifyUUSSettingChange:
+	case EMobilePhoneNotifyDefaultPrivacyChange:
+	case EMobilePhoneNotifyMultimediaCallPreferenceChange:
+	case EMobilePhoneNotifyNetworkSecurityLevelChange:
+	case EMobilePhoneNotifyUSimAppsSelectionModeChange:
+	case EMobilePhoneNotifyUSimApplicationsInfoChange:
+	case EMobilePhoneNotifyMailboxNumbersChange:
+	case EMobilePhoneNotifyMmsUpdate:
+	case EMobilePhoneNotifyMmsConfig:
+	case EMobilePhoneNotifyNetworkInvScanChange:
+	case EMobilePhoneNotifyNetworkInvScanEvent:
+	case EMobilePhoneNotifyAirTimeDurationChange:
+	case EMobilePhoneNotifySendNetworkServiceRequest:
+	case EMobilePhoneNotifyAllSendNetworkServiceRequest:
+	case EMobilePhoneNotifyStorePreferredNetworksListChange:
+	case EMobilePhoneNotifyCipheringIndicatorStatus:
+	case EMobilePhoneNotifyIdentityServiceStatus:
+	case EMobilePhoneNotifyIdentitySuppressionRejected:
+	case EMobilePhoneNotifyMulticallIndicatorChange:
+	case EMobilePhoneNotifyImsAuthorizationInfoChanged:
+	case EMobilePhoneNotifySmartCardApplicationInfoChange:
+	case EMobilePhoneNotifyAPNListChanged:
+	case EMobilePhoneNotifyAPNControlListServiceStatusChange:
+	case EMobilePhoneNotifyAuthenticateDataChange:
+	case EMobilePhoneNotifyWlanDataChange:
+	case EMobilePhoneNotifyPreferredWlanSIDListChange:
+		LOGTEXT(_L8("CPhoneDMmTsy: Registered with 2 slots"));
+		numberOfSlots=2;
+		break;
+	default:
+		// Unknown or invalid Phone IPC
+		User::Leave(KErrNotSupported);
+		break;
+		}
+	return numberOfSlots;
+	}
+
+
+TInt CPhoneDMmTsy::ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,
+		 				 const TDataPackage& aPackage)
+	{
+	// ExtFunc is called by the server when it has a "extended", i.e. non-core ETel request 
+	// for the TSY to process
+	// A request handle, request type and request data are passed to the TSY
+
+	TAny* dataPtr=aPackage.Ptr1();
+	TAny* dataPtr2=aPackage.Ptr2();
+	
+	// The request data has to extracted from TDataPackage and the TAny* pointers have to
+	// be "cast" to the expected request data type
+	
+	switch (aIpc)
+		{
+	// Non-Flow controlled requests
+
+	case EMobilePhoneGetDTMFCaps:
+		return GetDTMFCaps(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*, dataPtr));
+
+	case EMobilePhoneStopDTMFTone:
+		return StopDTMFTone(aTsyReqHandle);
+
+	case EMobilePhoneGetNetworkCaps:
+		return GetNetworkCaps(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*, dataPtr));
+
+	case EMobilePhoneGetNetworkRegistrationStatus:
+		return GetNetworkRegistrationStatus(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneRegistrationStatus*, dataPtr));
+
+	case EMobilePhoneGetHomeNetwork:
+		return GetHomeNetwork(aTsyReqHandle, aPackage.Des1n());
+
+	case EMobilePhoneGetCurrentMode:
+		return GetCurrentMode(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkMode*, dataPtr));
+
+	case EMobilePhoneGetCurrentNetwork:
+		return GetCurrentNetwork(aTsyReqHandle, aPackage.Des1n(),
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneLocationAreaV1*, dataPtr2));
+
+	case EMobilePhoneGetCellInfo:
+		return GetCellInfo(aTsyReqHandle, aPackage.Des1n());
+		
+	case EMobilePhoneGetCurrentNetworkNoLocation:
+		return GetCurrentNetwork(aTsyReqHandle, aPackage.Des1n(), NULL);
+
+	case EMobilePhoneGetDetectedNetworksPhase1:
+		return GetDetectedNetworksPhase1(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr),
+			REINTERPRET_CAST(TInt*, dataPtr2));
+
+	case EMobilePhoneGetDetectedNetworksPhase2:
+		return GetDetectedNetworksPhase2(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
+
+	case EMobilePhoneGetDetectedNetworksV2Phase1:
+		return GetDetectedNetworksV2Phase1(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr),
+			REINTERPRET_CAST(TInt*, dataPtr2));
+
+	case EMobilePhoneGetDetectedNetworksV2Phase2:
+		return GetDetectedNetworksV2Phase2(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
+
+	case EMobilePhoneGetDetectedNetworksV5Phase1:
+		return GetDetectedNetworksV5Phase1(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr),
+			REINTERPRET_CAST(TInt*, dataPtr2));
+
+	case EMobilePhoneGetDetectedNetworksV5Phase2:
+		return GetDetectedNetworksV5Phase2(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
+
+	case EMobilePhoneGetDetectedNetworksV8Phase1:
+		return GetDetectedNetworksV8Phase1(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr),
+			REINTERPRET_CAST(TInt*, dataPtr2));
+
+	case EMobilePhoneGetDetectedNetworksV8Phase2:
+		return GetDetectedNetworksV8Phase2(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
+
+	case EMobilePhoneGetNetworkSelectionSetting:
+		return GetNetworkSelectionSetting(aTsyReqHandle, aPackage.Des1n());
+
+	case EMobilePhoneSetNetworkSelectionSetting:
+		return SetNetworkSelectionSetting(aTsyReqHandle, aPackage.Des1n());
+
+	case EMobilePhoneSelectNetwork:
+		return SelectNetwork(aTsyReqHandle,
+			REINTERPRET_CAST(TBool*, dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkManualSelection*, dataPtr2));
+
+	case EMobilePhoneGetNITZInfo:
+		return GetNetworkTimeInfo(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNITZ*, dataPtr));
+
+	case EMobilePhoneGetServiceProviderName:
+		return GetServiceProviderName(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneServiceProviderNameV2*, dataPtr));
+
+	case EMobilePhoneGetMultimodeCaps:
+		return GetMultimodeCaps(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*, dataPtr));
+
+	case EMobilePhoneGetPhoneStoreInfo:
+		switch(aPackage.Type())
+			{
+			// Switch between the alternative implementations of GetPhoneStoreInfo
+			case TDataPackage::EPackage1n2u:
+				return GetPhoneStoreInfo(aTsyReqHandle,
+						aPackage.Des1n(),aPackage.Des2u());
+			case TDataPackage::EPackage1n2n:
+				return GetPhoneStoreInfo(aTsyReqHandle, aPackage.Des2n(),
+						REINTERPRET_CAST(RMobilePhone::TPhoneStoreNameAndIccType*, dataPtr));
+			default:
+				return NULL;
+			}
+
+	case EMobilePhoneGetIccAccessCaps:
+		return GetIccAccessCaps(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*, dataPtr));
+			
+	case EMobilePhoneGetIccIdentity:
+		return GetIccIdentity(aTsyReqHandle, REINTERPRET_CAST(RMobilePhone::TIccIdentity*, dataPtr));
+
+	case EMobilePhoneGetCustomerServiceProfile:
+		return GetCustomerServiceProfile(aTsyReqHandle, aPackage.Des1n());
+
+	case EMobilePhoneGetServiceTable:
+		return GetServiceTable(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneServiceTable*,dataPtr),
+			aPackage.Des2n());
+
+	case EMobilePhoneGetBatteryCaps:
+		return GetBatteryCaps(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*, dataPtr));
+
+	case EMobilePhoneGetBatteryInfo:
+		return GetBatteryInfo(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneBatteryInfoV1*, dataPtr));
+
+	case EMobilePhoneGetSignalCaps:
+		return GetSignalCaps(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*, dataPtr));
+
+	case EMobilePhoneGetSignalStrength:
+		return GetSignalStrength(aTsyReqHandle,
+			REINTERPRET_CAST(TInt32*, dataPtr),
+			REINTERPRET_CAST(TInt8*, dataPtr2));
+
+	case EMobilePhoneGetIndicatorCaps:
+		return GetIndicatorCaps(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*, dataPtr),
+			REINTERPRET_CAST(TUint32*, dataPtr2));
+
+	case EMobilePhoneGetIndicator:
+		return GetIndicator(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*, dataPtr));
+
+	case EMobilePhoneGetIdentityCaps:
+		return GetIdentityCaps(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*, dataPtr));
+
+	case EMobilePhoneGetPhoneId:
+		return GetPhoneId(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdentityV1*, dataPtr));
+
+	case EMobilePhoneGetSubscriberId:
+		return GetSubscriberId(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneSubscriberId*, dataPtr));
+
+	case EMobilePhoneGetDefaultPrivacy:
+		return GetDefaultPrivacy(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhonePrivacy*, dataPtr));
+
+	case EMobilePhoneSetDefaultPrivacy:
+		return SetDefaultPrivacy(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhonePrivacy*, dataPtr));
+
+	case EMobilePhoneGetCallServiceCaps:
+		return GetCallServiceCaps(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*, dataPtr));
+
+	case EMobilePhoneGetCallForwardingStatusPhase1:
+		return GetCallForwardingStatusPhase1(aTsyReqHandle,
+			REINTERPRET_CAST(CRetrieveMobilePhoneCFList::TGetCallForwardingRequest*, dataPtr),
+			REINTERPRET_CAST(TInt*, dataPtr2));
+
+	case EMobilePhoneGetCallForwardingStatusPhase2:
+		return GetCallForwardingStatusPhase2(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
+
+	case EMobilePhoneGetFeatureCode:
+		return GetFeatureCodeString(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TNetworkServiceAndAction*, dataPtr),
+			aPackage.Des2u());
+
+	case EMobilePhoneGetIdentityServiceStatus:
+		return GetIdentityServiceStatus(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TIdServiceAndLocation*, dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdServiceStatus*,dataPtr2));
+
+	case EMobilePhoneGetBarringStatusPhase1:
+		return GetCallBarringPhase1(aTsyReqHandle,
+			REINTERPRET_CAST(CRetrieveMobilePhoneCBList::TGetCallBarringRequest*, dataPtr),
+			REINTERPRET_CAST(TInt*, dataPtr2));
+
+	case EMobilePhoneGetBarringStatusPhase2:
+		return GetCallBarringPhase2(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
+
+	case EMobilePhoneSetCallBarringStatus:
+		return SetCallBarringStatus(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCBCondition*,dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCBChangeV1*,dataPtr2));
+
+	case EMobilePhoneSetCallBarringPassword:
+		return SetCallBarringPassword(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhonePasswordChangeV1*,dataPtr));
+
+	case EMobilePhoneSetSSPassword:
+		return SetSSPassword(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhonePasswordChangeV2*,dataPtr),
+			REINTERPRET_CAST(TInt*, dataPtr2));
+
+	case EMobilePhoneGetWaitingStatusPhase1:
+		return GetCallWaitingPhase1(aTsyReqHandle,
+			REINTERPRET_CAST(CRetrieveMobilePhoneCWList::TGetCallWaitingRequest*, dataPtr),
+			REINTERPRET_CAST(TInt*, dataPtr2));
+
+	case EMobilePhoneGetWaitingStatusPhase2:
+		return GetCallWaitingPhase2(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
+
+	case EMobilePhoneSetCallWaitingStatus:
+		return SetCallWaitingStatus(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobileService*, dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneServiceAction*, dataPtr2));
+
+	case EMobilePhoneGetCCBSStatus:
+		return GetCCBSStatus(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCCBSStatus*,dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TMobileInfoLocation*,dataPtr2));
+
+	case EMobilePhoneAcceptCCBSRecall:
+		return AcceptCCBSRecall(aTsyReqHandle,
+			REINTERPRET_CAST(TInt* ,dataPtr),aPackage.Des2u());
+
+	case EMobilePhoneRefuseCCBSRecall:
+		return RefuseCCBSRecall(aTsyReqHandle,
+			REINTERPRET_CAST(TInt* ,dataPtr));
+
+	case EMobilePhoneDeactivateCCBS:
+		return DeactivateCCBS(aTsyReqHandle, 
+			REINTERPRET_CAST(TInt* ,dataPtr));
+
+	case EMobilePhoneGetCompletionRequestsPhase1:
+		return GetCallCompletionPhase1(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr), REINTERPRET_CAST(TInt*,dataPtr2));
+
+	case EMobilePhoneGetCompletionRequestsPhase2:
+		return GetCallCompletionPhase2(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr), aPackage.Des2n());
+
+	case EMobilePhoneGetAlternatingCallCaps:
+		return GetAlternatingCallCaps(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*,dataPtr));
+
+	case EMobilePhoneGetAlternatingCallMode:
+		return GetAlternatingCallMode(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneAlternatingCallMode*,dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TMobileService*,dataPtr2));
+	
+	case EMobilePhoneSetAlternatingCallMode:
+		return SetAlternatingCallMode(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneAlternatingCallMode*,dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TMobileService*,dataPtr2));
+	
+	case EMobilePhoneGetALSLine:
+		return GetALSLine(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneALSLine*,dataPtr));
+	
+	case EMobilePhoneSetALSLine:
+		return SetALSLine(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneALSLine*,dataPtr));
+
+	case EMobilePhoneGetCostCaps:
+		return GetCostCaps(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*,dataPtr));
+
+	case EMobilePhoneSetMaxCostMeter:
+		return SetMaxCostMeter(aTsyReqHandle,
+			REINTERPRET_CAST(TUint*,dataPtr));
+
+	case EMobilePhoneClearCostMeter:
+		return ClearCostMeter(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCostMeters*,dataPtr));
+
+	case EMobilePhoneSetPuct:
+		return SetPuct(aTsyReqHandle,aPackage.Des1n());
+
+	case EMobilePhoneGetCostInfo:
+		return GetCostInfo(aTsyReqHandle,aPackage.Des1n());
+
+	case EMobilePhoneGetSecurityCaps:
+		return GetSecurityCaps(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*,dataPtr));
+
+	case EMobilePhoneGetLockInfo:
+		return GetLockInfo(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneLock *, dataPtr),
+			aPackage.Des2n());
+
+	case EMobilePhoneSetLockSetting:
+		return SetLockSetting(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneLock *, dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneLockSetting *, dataPtr2)
+			);
+	case EMobilePhoneChangeSecurityCode:
+		return ChangeSecurityCode(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityCode *, dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TMobilePhonePasswordChangeV1 *, dataPtr2));
+
+	case EMobilePhoneGetSecurityCodeInfo:
+		return GetSecurityCodeInfo(aTsyReqHandle,
+			reinterpret_cast<RMobilePhone::TMobilePhoneSecurityCode *> (dataPtr),
+			aPackage.Des2n());
+
+	case EMobilePhoneVerifySecurityCode:
+		return VerifySecurityCode(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityCode *,dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TCodeAndUnblockCode *, dataPtr2));
+
+	case EMobilePhoneAbortSecurityCode:
+		return AbortSecurityCode(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityCode *, dataPtr));
+
+	case EMobilePhoneGetFdnStatus:
+		return GetFdnStatus(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneFdnStatus*, dataPtr));
+
+	case EMobilePhoneSetFdnSetting:
+		return SetFdnSetting(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneFdnSetting*, dataPtr));
+
+	case EMobilePhoneGetMulticallParams:
+		return GetMulticallParams(aTsyReqHandle, aPackage.Des1n());
+
+	case EMobilePhoneSetMulticallParams:
+		return SetMulticallParams(aTsyReqHandle, REINTERPRET_CAST(TInt*, dataPtr));
+
+	case EMobilePhoneGetIncomingCallType:
+		return GetIncomingCallType(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneIncomingCallType*, dataPtr), 
+			aPackage.Des2n());
+
+	case EMobilePhoneSetIncomingCallType:
+		return SetIncomingCallType(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneIncomingCallType*, dataPtr), 
+			aPackage.Des2n());
+
+	case EMobilePhoneGetUUSSetting:
+		return GetUUSSetting(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneUUSSetting*, dataPtr));
+
+	case EMobilePhoneSetUUSSetting:
+		return SetUUSSetting(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneUUSSetting*, dataPtr));
+
+	case EMobilePhoneGetIccMessageWaitingIndicators:
+		return GetIccMessageWaitingIndicators(aTsyReqHandle,aPackage.Des1n());
+
+	case EMobilePhoneSetIccMessageWaitingIndicators:
+		return SetIccMessageWaitingIndicators(aTsyReqHandle,aPackage.Des1n());
+	
+	case EMobilePhoneGetMultimediaCallPreference:
+		return GetMultimediaCallPreference(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneMultimediaSettings*, dataPtr));
+
+	case EMobilePhoneSetMultimediaCallPreference:
+		return SetMultimediaCallPreference(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneMultimediaSettings*, dataPtr));
+
+	case EMobilePhoneGetNetworkSecurityLevel:
+		return GetNetworkSecurityLevel(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkSecurity*, dataPtr));
+
+	case EMobilePhoneEnumerateUSimApplications:
+		return EnumerateUSimApplications(aTsyReqHandle,
+			REINTERPRET_CAST(TInt*, dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TAID*, dataPtr2));
+
+	case EMobilePhoneGetUSimAppsSelectionMode:
+		return GetUSimAppsSelectionMode(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TUSimSelectionMode*, dataPtr));
+
+	case EMobilePhoneSetUSimAppsSelectionMode:
+		return SetUSimAppsSelectionMode(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TUSimSelectionMode*, dataPtr));
+
+	case EMobilePhoneSetUSimApplicationStatus:
+		return SetUSimApplicationStatus(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TAID*, dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TUSimAppAction*, dataPtr2));
+
+	case EMobilePhoneGetUSimApplicationsInfo:
+		return GetUSimApplicationInfo(aTsyReqHandle,
+			REINTERPRET_CAST(TInt*, dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TUSimApplicationInfoV2*, dataPtr2));
+			
+	case EMobilePhoneEnumerateSmartCardApplications:
+		return EnumerateSmartCardApplications(aTsyReqHandle,
+			reinterpret_cast<TUint*>(dataPtr));
+			
+	case EMobilePhoneGetSmartCardApplicationInfo:
+		return GetSmartCardApplicationInfo(aTsyReqHandle, reinterpret_cast<TUint*>(dataPtr), aPackage.Des2n());
+		
+	case EMobilePhoneNotifySmartCardApplicationInfoChange:
+		return NotifySmartCardApplicationInfoChange(aTsyReqHandle, reinterpret_cast<RMobilePhone::TSmartCardApplicationEvent*>(dataPtr2), reinterpret_cast<RMobilePhone::TAID*>(dataPtr));
+		
+	case EMobilePhoneSetSmartCardApplicationStatus:
+		return SetSmartCardApplicationStatus(aTsyReqHandle, reinterpret_cast<RMobilePhone::TAID*>(dataPtr), *reinterpret_cast<RMobilePhone::TSmartCardApplicationAction*>(dataPtr2));
+		
+	case EMobilePhoneGetScFileInfo:
+		return GetScFileInfo(aTsyReqHandle, *reinterpret_cast<RMobilePhone::TScFilePath*>(dataPtr), aPackage.Des2n());
+		
+	case EMobilePhoneReadScFile:
+		return ReadScFile(aTsyReqHandle, *reinterpret_cast<RMobilePhone::TScFilePathWithAccessOffsets*>(dataPtr), aPackage.Des2n());
+		
+	case EMobilePhoneUpdateScFile:
+		return UpdateScFile(aTsyReqHandle, *reinterpret_cast<RMobilePhone::TScFilePathWithAccessOffsets*>(dataPtr), aPackage.Des2n());
+		
+	case EMobilePhoneGetCurrentActiveUSimApplication:
+		return GetCurrentActiveUSimApplication(aTsyReqHandle, reinterpret_cast<RMobilePhone::TAID*>(dataPtr));
+			
+	case EMobilePhoneGetHomeNetworkSearchPeriod:
+		return GetHomeNetworkSearchPeriod(aTsyReqHandle,
+			REINTERPRET_CAST(TInt*, dataPtr));
+			
+	case EMobilePhoneGetLastUsedAccessTechnology:
+		return GetLastUsedAccessTechnology(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkAccess*, dataPtr));
+			
+	case EMobilePhoneGetNetworkInvScanSetting:
+		return GetNetworkInvScanSetting(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneInvestigationScan*, dataPtr));
+			
+	case EMobilePhoneGetCallForwardingIndicator:
+		return GetCallForwardingIndicator(aTsyReqHandle, aPackage.Des1n());
+		
+	case EMobilePhoneGetCompMethodName:
+		return GetCompMethodName(aTsyReqHandle, 
+			*REINTERPRET_CAST(TUint8*, dataPtr), aPackage.Des2u());
+			
+	case EMobilePhoneEnumerateAPNEntries:
+		return EnumerateAPNEntries(aTsyReqHandle, 
+			REINTERPRET_CAST(TUint32*, dataPtr));
+	
+	case EMobilePhoneGetAPNname:
+		return GetAPNname(aTsyReqHandle, 
+			*REINTERPRET_CAST(TUint32*, dataPtr), aPackage.Des2n());
+
+	case EMobilePhoneAppendAPNName:
+		return AppendAPNName(aTsyReqHandle, aPackage.Des1n());
+			
+	case EMobilePhoneDeleteAPNName:
+		return DeleteAPNName(aTsyReqHandle, 
+			*REINTERPRET_CAST(TUint32*, dataPtr));
+	
+	case EMobilePhoneNotifyAPNListChanged:
+		return NotifyAPNListChanged(aTsyReqHandle);
+	
+	case EMobilePhoneSetAPNControlListServiceStatus:
+		return SetAPNControlListServiceStatus(aTsyReqHandle, 
+			*REINTERPRET_CAST(RMobilePhone::TAPNControlListServiceStatus*, dataPtr));
+			
+	case EMobilePhoneGetAPNControlListServiceStatus:
+		return GetAPNControlListServiceStatus(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TAPNControlListServiceStatus*, dataPtr));
+			
+	case EMobilePhoneNotifyAPNControlListServiceStatusChange:
+		return NotifyAPNControlListServiceStatusChange(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TAPNControlListServiceStatus*, dataPtr));
+	
+	case EMobilePhoneGetAirTimeDuration:
+		return GetAirTimeDuration(aTsyReqHandle, 
+			REINTERPRET_CAST(TTimeIntervalSeconds*, dataPtr));
+			
+	case EMobilePhoneClearBlacklist:
+		return ClearBlacklist(aTsyReqHandle);
+		
+	case EMobilePhoneGetPersonalisationCaps:
+		return GetPersonalisationCaps(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*, dataPtr));
+			
+	case EMobilePhoneGetPersonalisationStatus:
+		return GetPersonalisationStatus(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*, dataPtr));
+			
+	case EMobilePhoneSetPersonalisationStatus:
+		return SetPersonalisationStatus(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhonePersonalisation*, dataPtr), aPackage.Des2u()); 
+			
+	case EMobilePhoneGetNetworkName:
+		return GetCurrentNetworkName(aTsyReqHandle, aPackage.Des1n(), aPackage.Des2n());	
+		
+	case EMobilePhoneGetPreferredNetworksPhase1:
+		return GetPreferredNetworksPhase1(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), 
+			REINTERPRET_CAST(TInt*, dataPtr2));
+
+	case EMobilePhoneGetPreferredNetworksPhase2:
+		return GetPreferredNetworksPhase2(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());		
+			
+	case EMobilePhoneStorePreferredNetworksList:
+		return StorePreferredNetworksList(aTsyReqHandle, aPackage.Des1n());
+		
+	case EMobilePhoneGetCipheringIndicatorStatus:
+		return GetCipheringIndicatorStatus(aTsyReqHandle, 
+			*REINTERPRET_CAST(RMobilePhone::TMobileCallCipheringIndicator*, dataPtr));
+			
+	case EMobilePhoneSetIdentityServiceStatus:
+		return SetIdentityServiceStatus(aTsyReqHandle, 
+			*REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdService*, dataPtr),
+			*REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdServiceSetting*, dataPtr2));
+
+	// Flow controlled requests
+
+	case EMobilePhoneSendNetworkServiceRequest:
+		return SendNetworkServiceRequest(aTsyReqHandle, aPackage.Des1u());
+
+	case EMobilePhoneSendDTMFTones:
+		return SendDTMFTones(aTsyReqHandle, aPackage.Des1u());
+
+	case EMobilePhoneReadDTMFTones:
+		return ReadDTMFTones(aTsyReqHandle, aPackage.Des1u());
+
+	case EMobilePhoneStartDTMFTone:
+		return StartDTMFTone(aTsyReqHandle, 
+			REINTERPRET_CAST(TChar*, dataPtr));
+
+	case EMobilePhoneContinueDTMFStringSending:
+		return ContinueDTMFStringSending(aTsyReqHandle,
+			REINTERPRET_CAST(TBool*,dataPtr));
+
+	case EMobilePhoneSetCallForwardingStatus:
+		return SetCallForwardingStatus(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFCondition*, dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFChangeV1*, dataPtr2) );
+
+	case EMobilePhoneProgramFeatureCode:
+		return ProgramFeatureCodeString(aTsyReqHandle, 
+			aPackage.Des2u(),
+			REINTERPRET_CAST(RMobilePhone::TNetworkServiceAndAction*, dataPtr));
+		
+	case EMobilePhoneTerminateAllCalls:
+		return TerminateAllCalls(aTsyReqHandle);
+		
+    case EMobilePhoneTerminateActiveCalls:
+        return TerminateActiveCalls(aTsyReqHandle);
+			
+	case EMobilePhoneGetMailboxNumbers:
+		return GetMailboxNumbers (aTsyReqHandle, aPackage.Des1n());
+		
+	case EMobilePhoneSetMmsUserConnParams:
+		return SetMmsUserConnParams(aTsyReqHandle, aPackage.Des1n());
+		
+	case EMobilePhoneSetMmsUserPreferences:
+		return SetMmsUserPreferences(aTsyReqHandle, aPackage.Des1n());
+		
+	case EMobilePhoneGetMmsConfig:
+		return GetMmsConfig(aTsyReqHandle, 		
+			*REINTERPRET_CAST(RMobilePhone::TMmsConnParams*,dataPtr), aPackage.Des2n());			
+	//
+	// Notification requests
+	//
+
+	case EMobilePhoneNotifyModeChange:
+		return NotifyModeChange(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkMode*, dataPtr));
+
+	case EMobilePhoneNotifyDTMFCapsChange:
+		return NotifyDTMFCapsChange(aTsyReqHandle, 
+			REINTERPRET_CAST(TUint32*, dataPtr));
+	
+	case EMobilePhoneNotifyStopInDTMFString:
+		return NotifyStopInDTMFString(aTsyReqHandle);
+
+	case EMobilePhoneNotifyNetworkRegistrationStatusChange:
+		return NotifyNetworkRegistrationStatusChange(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneRegistrationStatus*, dataPtr));
+
+	case EMobilePhoneNotifyCurrentNetworkChange:
+		return NotifyCurrentNetworkChange(aTsyReqHandle, aPackage.Des1n(),
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneLocationAreaV1*, dataPtr2));
+
+	case EMobilePhoneNotifyCurrentNetworkNoLocationChange:
+		return NotifyCurrentNetworkChange(aTsyReqHandle, aPackage.Des1n(), NULL);
+
+	case EMobilePhoneNotifyCellInfoChange:
+		return NotifyCellInfoChange(aTsyReqHandle, aPackage.Des1n());
+	
+	case EMobilePhoneNotifyIccAccessCapsChange:
+		return NotifyIccAccessCapsChange(aTsyReqHandle, 
+			REINTERPRET_CAST(TUint32*, dataPtr));
+
+	case EMobilePhoneNotifyBatteryInfoChange:
+		return NotifyBatteryInfoChange(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneBatteryInfoV1*, dataPtr));
+
+	case EMobilePhoneNotifySignalStrengthChange:
+		return NotifySignalStrengthChange(aTsyReqHandle,
+			REINTERPRET_CAST(TInt32*, dataPtr), REINTERPRET_CAST(TInt8*, dataPtr2));
+
+	case EMobilePhoneNotifyIndicatorChange:
+		return NotifyIndicatorChange(aTsyReqHandle, REINTERPRET_CAST(TUint32*, dataPtr));
+
+	case EMobilePhoneNotifyDefaultPrivacyChange:
+		return NotifyDefaultPrivacyChange(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhonePrivacy*, dataPtr));
+
+	case EMobilePhoneNotifyCallForwardingStatusChange:
+		return NotifyCallForwardingStatusChange(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFCondition*, dataPtr));
+
+	case EMobilePhoneNotifyCallForwardingActive:
+		return NotifyCallForwardingActive(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobileService*, dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFActive*, dataPtr2));
+
+	case EMobilePhoneNotifyNetworkSelectionSettingChange:
+		return NotifyNetworkSelectionSettingChange(aTsyReqHandle, aPackage.Des1n());
+
+	case EMobilePhoneNotifyNITZInfoChange:
+		return NotifyNetworkTimeInfoChange(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNITZ*, dataPtr));
+
+	case EMobilePhoneNotifyCallServiceCapsChange:
+		return NotifyCallServiceCapsChange(aTsyReqHandle, 
+			REINTERPRET_CAST(TUint32*, dataPtr));
+
+	case EMobilePhoneNotifyCallBarringStatusChange:
+		return NotifyCallBarringStatusChange(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCBCondition*,dataPtr));
+	
+	case EMobilePhoneNotifyCallWaitingStatusChange:
+		return NotifyCallWaitingStatusChange(aTsyReqHandle,
+			aPackage.Des1n());
+
+	case EMobilePhoneNotifyCCBSStatusChange:
+		return NotifyCCBSStatusChange(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneCCBSStatus*,dataPtr));
+
+	case EMobilePhoneNotifyCCBSRecall:
+		return NotifyCCBSRecall(aTsyReqHandle,aPackage.Des1n());
+
+	case EMobilePhoneNotifyAlternatingCallCapsChange:
+		return NotifyAlternatingCallCapsChange(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*,dataPtr));
+
+	case EMobilePhoneNotifyAlternatingCallModeChange:
+		return NotifyAlternatingCallModeChange(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneAlternatingCallMode*,dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TMobileService*,dataPtr2));
+
+	case EMobilePhoneNotifyALSLineChange:
+		return NotifyALSLineChange(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneALSLine*,dataPtr));
+
+	case EMobilePhoneNotifyCostCapsChange:
+		return NotifyCostCapsChange(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*,dataPtr));
+
+	case EMobilePhoneNotifyCostInfoChange:
+		return NotifyCostInfoChange(aTsyReqHandle,aPackage.Des1n());
+
+	case EMobilePhoneNotifySecurityCapsChange:
+		return NotifySecurityCapsChange(aTsyReqHandle,
+			REINTERPRET_CAST(TUint32*, dataPtr));
+
+	case EMobilePhoneNotifyLockInfoChange:
+		return NotifyLockInfoChange(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneLock *, dataPtr),
+			aPackage.Des2n());
+
+	case EMobilePhoneNotifySecurityCodeInfoChange:
+		return NotifySecurityCodeInfoChange(aTsyReqHandle,
+			reinterpret_cast<RMobilePhone::TMobilePhoneSecurityCode*> (dataPtr),
+			aPackage.Des2n());
+
+	case EMobilePhoneNotifySecurityEvent:
+		return NotifyOnSecurityEvent(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityEvent*,dataPtr));
+
+	case EMobilePhoneNotifyMessageWaiting:
+		return NotifyMessageWaiting(aTsyReqHandle,REINTERPRET_CAST(TInt*,dataPtr));
+
+	case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange:
+		return NotifyIccMessageWaitingIndicatorsChange(aTsyReqHandle,aPackage.Des1n());
+	
+	case EMobilePhoneNotifyFdnStatusChange:
+		return NotifyFdnStatusChange(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneFdnStatus*,dataPtr));
+
+	case EMobilePhoneNotifyMulticallParamsChange:
+		return NotifyMulticallParamsChange(aTsyReqHandle, aPackage.Des1n());
+
+	case EMobilePhoneNotifyIncomingCallTypeChange:
+		return NotifyIncomingCallTypeChange(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneIncomingCallType*, dataPtr),
+			aPackage.Des2n());
+	
+	case EMobilePhoneNotifyUUSSettingChange:
+		return NotifyUUSSettingChange(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneUUSSetting*, dataPtr));
+
+	case EMobilePhoneNotifyMultimediaCallPreferenceChange:
+		return NotifyMultimediaCallPreferenceChange(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneMultimediaSettings*, dataPtr));
+
+	case EMobilePhoneNotifyNetworkSecurityLevelChange:
+		return NotifyNetworkSecurityLevelChange(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkSecurity*, dataPtr));
+
+	case EMobilePhoneNotifyUSimAppsSelectionModeChange:
+		return NotifyUSimAppsSelectionModeChange(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TUSimSelectionMode*, dataPtr));	
+
+	case EMobilePhoneNotifyUSimApplicationsInfoChange:
+		return NotifyUSimApplicationsInfoChange(aTsyReqHandle,
+			REINTERPRET_CAST(TInt*, dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TAID*, dataPtr2));	
+			
+	case EMobilePhoneNotifyMailboxNumbersChange:		
+			return NotifyMailboxNumbersChange (aTsyReqHandle, aPackage.Des1n());		
+
+	case EMobilePhoneNotifyMmsUpdate:
+		return NotifyMmsUpdate (aTsyReqHandle, aPackage.Des1n());
+
+	case EMobilePhoneNotifyMmsConfig:
+		return NotifyMmsConfig(aTsyReqHandle, 		
+			*REINTERPRET_CAST(RMobilePhone::TMmsConnParams*,dataPtr), aPackage.Des2n());
+		
+	case EMobilePhoneNotifyNetworkInvScanChange:
+		return NotifyNetworkInvScanChange(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneInvestigationScan*, dataPtr));
+			
+	case EMobilePhoneNotifyNetworkInvScanEvent:
+		return NotifyNetworkInvScanEvent(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneInvestigationScanEvent*, dataPtr));
+			
+	case EMobilePhoneNotifyAirTimeDurationChange:
+		return NotifyAirTimeDurationChange(aTsyReqHandle,
+			REINTERPRET_CAST(TTimeIntervalSeconds*,dataPtr));
+
+	case EMobilePhoneNotifySendNetworkServiceRequest:
+		return NotifySendNetworkServiceRequest(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNotifySendSSOperation*, dataPtr), aPackage.Des2n());
+
+	case EMobilePhoneNotifyAllSendNetworkServiceRequest:
+		return NotifyAllSendNetworkServiceRequest(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneNotifySendSSOperation*, dataPtr), aPackage.Des2n());
+	
+	case EMobilePhoneNotifyDTMFEvent:
+		return NotifyDTMFEvent(aTsyReqHandle, REINTERPRET_CAST(RMobilePhone::TMobilePhoneDTMFEvent*, dataPtr));
+
+	case EMobilePhoneNotifyStorePreferredNetworksListChange:
+		return NotifyStorePreferredNetworksListChange(aTsyReqHandle);
+
+	case EMobilePhoneNotifyCipheringIndicatorStatus:
+		return NotifyCipheringIndicatorStatus(aTsyReqHandle,
+			*REINTERPRET_CAST(RMobilePhone::TMobileCallCipheringIndicator*, dataPtr));
+
+	case EMobilePhoneNotifyIdentityServiceStatus:
+		return NotifyIdentityServiceStatus(aTsyReqHandle,
+			*REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdService*, dataPtr),
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdServiceStatus*, dataPtr2));
+
+	case EMobilePhoneNotifyIdentitySuppressionRejected:
+		return NotifyIdentitySuppressionRejected(aTsyReqHandle);
+
+	case EMobilePhoneNotifyMulticallIndicatorChange:
+		return NotifyMulticallIndicatorChange(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TMobilePhoneMulticallIndicator*, dataPtr));
+
+	case EMobilePhoneAuthorizationInfoPhase1:
+			return GetAuthorizationInfoPhase1(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr),
+			REINTERPRET_CAST(TInt*,dataPtr2));
+
+
+	case EMobilePhoneAuthorizationInfoPhase2:
+		return GetAuthorizationInfoPhase2(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr), aPackage.Des2n());
+			
+	case EMobilePhoneIMSAuthenticate:
+		return GetAuthenticationData(aTsyReqHandle, aPackage.Des1n());
+
+	case EMobilePhoneSmartCardAuthenticate:
+		return GetSmartCardAuthenticationData(aTsyReqHandle, aPackage.Des1n(),
+		         reinterpret_cast<RMobilePhone::TAID*>(dataPtr2));
+
+	case EMobilePhoneNotifyImsAuthorizationInfoChanged:
+		return NotifyImsAuthorizationInfoChanged(aTsyReqHandle);
+	
+	case EETelPhoneSetEmergencyClient:
+		return SetEmergencyClient(aTsyReqHandle,REINTERPRET_CAST(TUint32*, dataPtr));
+
+	case EMobilePhoneNotifyAuthenticateDataChange:
+		return NotifyAuthenticateDataChange(aTsyReqHandle, aPackage.Des1n());
+
+	case EMobilePhoneGetAuthenticationParams:
+		return GetAuthenticationParams(aTsyReqHandle, aPackage.Des1n(),aPackage.Des2n());
+		
+	case EMobilePhoneSetGbaBootstrapParams:
+		return SetGbaBootstrapParams(aTsyReqHandle, reinterpret_cast<RMobilePhone::TAID*>(dataPtr2),aPackage.Des1n());
+	
+	case EMobilePhoneAuthenticationListPhase1:
+		return GetAuthenticationListPhase1(aTsyReqHandle,
+			REINTERPRET_CAST(CRetrieveMobilePhoneAuthenticationIds::TAuthRequestData*, dataPtr),REINTERPRET_CAST(TInt*, dataPtr2));
+			
+	case EMobilePhoneAuthenticationListPhase2:
+		return GetAuthenticationListPhase2(aTsyReqHandle,
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());
+	
+	case EMobilePhoneNotifyWlanDataChange:
+		return NotifyWlanDataChange(aTsyReqHandle,aPackage.Des1n());
+	
+	case EMobilePhoneNotifyPreferredWlanSIDListChange:
+		return NotifyPreferredWlanSIDListChange(aTsyReqHandle);
+		
+	case EMobilePhoneGetWlanData:
+		return GetWlanData(aTsyReqHandle,aPackage.Des1n());
+		
+	case EMobilePhoneSetWlanData:
+		return SetWlanData(aTsyReqHandle,aPackage.Des1n());
+	
+	case EMobilePhoneGetPreferredWlanSIDsPhase1:
+		return GetPreferredWlanSIDsPhase1(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), 
+			REINTERPRET_CAST(TInt*, dataPtr2));
+			
+	case EMobilePhoneGetPreferredWlanSIDsPhase2:
+		return GetPreferredWlanSIDsPhase2(aTsyReqHandle, 
+			REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n());		
+						
+	case EMobilePhoneStorePreferredWlanSIDList:
+		return StorePreferredWlanSIDList(aTsyReqHandle, aPackage.Des1n());
+		
+	default:
+		return KErrNotSupported;
+		}
+	}
+
+TInt CPhoneDMmTsy::CancelService(const TInt aIpc,const TTsyReqHandle aTsyReqHandle)
+	{
+	// CancelService is called by the server when it is "cleaning-up" any still outstanding
+	// asynchronous requests before closing a client's sub-session.
+	// This will happen if a client closes its R-class handle without cancelling outstanding
+	// asynchronous requests.
+
+	switch (aIpc)
+		{
+	case EMobilePhoneGetHomeNetwork:
+		return GetHomeNetworkCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyModeChange:
+		return NotifyModeChangeCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyDTMFCapsChange:
+		return NotifyDTMFCapsChangeCancel(aTsyReqHandle);
+	case EMobilePhoneSendDTMFTones:
+		return SendDTMFTonesCancel(aTsyReqHandle);
+	case EMobilePhoneReadDTMFTones:
+		return ReadDTMFTonesCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyStopInDTMFString:
+		return NotifyStopInDTMFStringCancel(aTsyReqHandle);
+	case EMobilePhoneGetNetworkRegistrationStatus:
+		return GetNetworkRegistrationStatusCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyNetworkRegistrationStatusChange:
+		return NotifyNetworkRegistrationStatusChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetCurrentNetwork:
+		return GetCurrentNetworkCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyCurrentNetworkChange:
+		return NotifyCurrentNetworkChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetCurrentNetworkNoLocation:
+		return GetCurrentNetworkCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyCurrentNetworkNoLocationChange:
+		return NotifyCurrentNetworkChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetCellInfo:
+		return GetCellInfoCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyCellInfoChange:
+		return NotifyCellInfoChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetDetectedNetworksPhase1:
+	case EMobilePhoneGetDetectedNetworksPhase2:
+		return GetDetectedNetworksCancel(aTsyReqHandle);
+	case EMobilePhoneGetDetectedNetworksV2Phase1:
+	case EMobilePhoneGetDetectedNetworksV2Phase2:
+		return GetDetectedNetworksV2Cancel(aTsyReqHandle);
+	case EMobilePhoneGetDetectedNetworksV5Phase1:
+	case EMobilePhoneGetDetectedNetworksV5Phase2:
+		return GetDetectedNetworksV5Cancel(aTsyReqHandle);	
+	case EMobilePhoneGetDetectedNetworksV8Phase1:
+	case EMobilePhoneGetDetectedNetworksV8Phase2:
+		return GetDetectedNetworksV8Cancel(aTsyReqHandle);
+	case EMobilePhoneGetPhoneStoreInfo:
+		return GetPhoneStoreInfoCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyIccAccessCapsChange:
+		return NotifyIccAccessCapsChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetCustomerServiceProfile:
+		return GetCustomerServiceProfileCancel(aTsyReqHandle);
+	case EMobilePhoneGetServiceTable:
+		return GetServiceTableCancel(aTsyReqHandle);
+	case EMobilePhoneGetBatteryInfo:
+		return GetBatteryInfoCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyBatteryInfoChange:
+		return NotifyBatteryInfoChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetSignalStrength:
+		return GetSignalStrengthCancel(aTsyReqHandle);
+	case EMobilePhoneNotifySignalStrengthChange:
+		return NotifySignalStrengthChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetIndicator:
+		return GetIndicatorCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyIndicatorChange:
+		return NotifyIndicatorChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetPhoneId:
+		return GetPhoneIdCancel(aTsyReqHandle);
+	case EMobilePhoneGetSubscriberId:
+		return GetSubscriberIdCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyCallServiceCapsChange:
+		return NotifyCallServiceCapsChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetCallForwardingStatusPhase1:
+	case EMobilePhoneGetCallForwardingStatusPhase2:
+		return GetCallForwardingStatusCancel(aTsyReqHandle);
+	case EMobilePhoneSetCallForwardingStatus:
+		return SetCallForwardingStatusCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyCallForwardingStatusChange:
+		return NotifyCallForwardingStatusChangeCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyCallForwardingActive:
+		return NotifyCallForwardingActiveCancel(aTsyReqHandle);
+	case EMobilePhoneProgramFeatureCode:
+		return ProgramFeatureCodeStringCancel(aTsyReqHandle);
+	case EMobilePhoneGetFeatureCode:
+		return GetFeatureCodeStringCancel(aTsyReqHandle);
+	case EMobilePhoneSendNetworkServiceRequest:
+		return SendNetworkServiceRequestCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyNetworkSelectionSettingChange:
+		return NotifyNetworkSelectionSettingChangeCancel(aTsyReqHandle);
+	case EMobilePhoneSelectNetwork:
+		return SelectNetworkCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyNITZInfoChange:
+		return NotifyNetworkTimeInfoChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetServiceProviderName:
+		return GetServiceProviderNameCancel(aTsyReqHandle);
+	case EMobilePhoneGetIdentityServiceStatus:
+		return GetIdentityServiceStatusCancel(aTsyReqHandle);
+	case EMobilePhoneGetBarringStatusPhase1:
+	case EMobilePhoneGetBarringStatusPhase2:
+		return GetCallBarringCancel(aTsyReqHandle);
+	case EMobilePhoneSetCallBarringStatus:
+		return SetCallBarringStatusCancel(aTsyReqHandle);
+	case EMobilePhoneSetCallBarringPassword:
+		return SetCallBarringPasswordCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyCallBarringStatusChange:
+		return NotifyCallBarringStatusChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetWaitingStatusPhase1:
+	case EMobilePhoneGetWaitingStatusPhase2:
+		return GetCallWaitingCancel(aTsyReqHandle);
+	case EMobilePhoneSetCallWaitingStatus:
+		return SetCallWaitingStatusCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyCallWaitingStatusChange:
+		return NotifyCallWaitingStatusChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetCCBSStatus:
+		return GetCCBSStatusCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyCCBSStatusChange:
+		return NotifyCCBSStatusChangeCancel(aTsyReqHandle);
+	case EMobilePhoneDeactivateCCBS:
+		return DeactivateCCBSCancel(aTsyReqHandle);
+	case EMobilePhoneAcceptCCBSRecall:
+		return AcceptCCBSRecallCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyCCBSRecall:
+		return NotifyCCBSRecallCancel(aTsyReqHandle);
+	case EMobilePhoneGetCompletionRequestsPhase1:
+	case EMobilePhoneGetCompletionRequestsPhase2:
+		return GetCallCompletionCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyAlternatingCallCapsChange:
+		return NotifyAlternatingCallCapsChangeCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyAlternatingCallModeChange:
+		return NotifyAlternatingCallModeChangeCancel(aTsyReqHandle);
+	case EMobilePhoneSetALSLine:
+		return SetALSLineCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyALSLineChange:
+		return NotifyALSLineChangeCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyCostCapsChange:
+		return NotifyCostCapsChangeCancel(aTsyReqHandle);
+	case EMobilePhoneClearCostMeter:
+		return ClearCostMeterCancel(aTsyReqHandle);
+	case EMobilePhoneSetMaxCostMeter:
+		return SetMaxCostMeterCancel(aTsyReqHandle);
+	case EMobilePhoneSetPuct:
+		return SetPuctCancel(aTsyReqHandle);
+	case EMobilePhoneGetCostInfo:
+		return GetCostInfoCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyCostInfoChange:
+		return NotifyCostInfoChangeCancel(aTsyReqHandle);
+	case EMobilePhoneNotifySecurityCapsChange:
+		return NotifySecurityCapsChangeCancel(aTsyReqHandle);
+	 case EMobilePhoneGetLockInfo:
+		return GetLockInfoCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyLockInfoChange:
+		return NotifyLockInfoChangeCancel(aTsyReqHandle);
+	case EMobilePhoneSetLockSetting:
+		return SetLockSettingCancel(aTsyReqHandle);
+	case EMobilePhoneChangeSecurityCode:
+		return ChangeSecurityCodeCancel(aTsyReqHandle);
+	case EMobilePhoneGetSecurityCodeInfo:
+		return GetSecurityCodeInfoCancel(aTsyReqHandle);
+	case EMobilePhoneNotifySecurityCodeInfoChange:
+		return NotifySecurityCodeInfoChangeCancel(aTsyReqHandle);
+	case EMobilePhoneNotifySecurityEvent:
+		return NotifyOnSecurityEventCancel(aTsyReqHandle);
+	case EMobilePhoneVerifySecurityCode:
+		return VerifySecurityCodeCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyMessageWaiting:
+		return NotifyMessageWaitingCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange:
+		return NotifyIccMessageWaitingIndicatorsChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetIccMessageWaitingIndicators:
+		return GetIccMessageWaitingIndicatorsCancel(aTsyReqHandle);
+	case EMobilePhoneSetIccMessageWaitingIndicators:
+		return SetIccMessageWaitingIndicatorsCancel(aTsyReqHandle);
+	case EMobilePhoneGetFdnStatus:
+		return GetFdnStatusCancel(aTsyReqHandle);
+	case EMobilePhoneSetFdnSetting:
+		return SetFdnSettingCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyFdnStatusChange:
+		return NotifyFdnStatusChangeCancel(aTsyReqHandle);
+	case EMobilePhoneSetNetworkSelectionSetting:
+		return SetNetworkSelectionSettingCancel(aTsyReqHandle);
+	case EMobilePhoneSetAlternatingCallMode:
+		return SetAlternatingCallModeCancel(aTsyReqHandle);
+	case EMobilePhoneGetMulticallParams:
+		return GetMulticallParamsCancel(aTsyReqHandle);
+	case EMobilePhoneSetMulticallParams:
+		return SetMulticallParamsCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyMulticallParamsChange:
+		return NotifyMulticallParamsChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetIncomingCallType:
+		return GetIncomingCallTypeCancel(aTsyReqHandle);
+	case EMobilePhoneSetIncomingCallType:
+		return SetIncomingCallTypeCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyIncomingCallTypeChange:
+		return NotifyIncomingCallTypeChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetUUSSetting:
+		return GetUUSSettingCancel(aTsyReqHandle);
+	case EMobilePhoneSetUUSSetting:
+		return SetUUSSettingCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyUUSSettingChange:
+		return NotifyUUSSettingChangeCancel(aTsyReqHandle);
+	case EMobilePhoneSetDefaultPrivacy:
+		return SetDefaultPrivacyCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyDefaultPrivacyChange:
+		return NotifyDefaultPrivacyChangeCancel(aTsyReqHandle);
+	case EMobilePhoneSetMultimediaCallPreference:
+		return SetMultimediaCallPreferenceCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyMultimediaCallPreferenceChange:
+		return NotifyMultimediaCallPreferenceChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetNetworkSecurityLevel:
+		return GetNetworkSecurityLevelCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyNetworkSecurityLevelChange:
+		return NotifyNetworkSecurityLevelChangeCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyUSimAppsSelectionModeChange:
+		return NotifyUSimAppsSelectionModeChangeCancel(aTsyReqHandle);
+	case EMobilePhoneSetUSimApplicationStatus:
+		return SetUSimApplicationStatusCancel(aTsyReqHandle);
+	case EMobilePhoneGetUSimApplicationsInfo:
+		return GetUSimApplicationInfoCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyUSimApplicationsInfoChange:
+		return NotifyUSimApplicationsInfoChangeCancel(aTsyReqHandle);
+	case EMobilePhoneEnumerateUSimApplications:
+		return EnumerateUSimApplicationsCancel(aTsyReqHandle);
+	case EMobilePhoneEnumerateSmartCardApplications:
+		return EnumerateSmartCardApplicationsCancel(aTsyReqHandle);
+	case EMobilePhoneGetSmartCardApplicationInfo:
+		return GetSmartCardApplicationInfoCancel(aTsyReqHandle);
+	case EMobilePhoneNotifySmartCardApplicationInfoChange:
+		return NotifySmartCardApplicationInfoChangeCancel(aTsyReqHandle);
+	case EMobilePhoneSetSmartCardApplicationStatus:
+		return SetSmartCardApplicationStatusCancel(aTsyReqHandle);
+	case EMobilePhoneGetScFileInfo:
+		return GetScFileInfoCancel(aTsyReqHandle);
+	case EMobilePhoneReadScFile:
+		return ReadScFileCancel(aTsyReqHandle);
+	case EMobilePhoneUpdateScFile:
+		return UpdateScFileCancel(aTsyReqHandle);
+	case EMobilePhoneGetCurrentActiveUSimApplication:
+		return GetCurrentActiveUSimApplicationCancel(aTsyReqHandle);
+	case EMobilePhoneSetSSPassword:
+		return SetSSPasswordCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyMailboxNumbersChange:
+		return NotifyMailboxNumbersChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetMailboxNumbers:
+		return GetMailboxNumbersCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyMmsUpdate:
+		return NotifyMmsUpdateCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyMmsConfig:
+		return SetMmsUserConnParamsCancel(aTsyReqHandle);
+	case EMobilePhoneSetMmsUserConnParams:
+		return SetMmsUserConnParamsCancel(aTsyReqHandle);
+	case EMobilePhoneSetMmsUserPreferences:
+		return SetMmsUserPreferencesCancel(aTsyReqHandle);
+	case EMobilePhoneGetMmsConfig:
+		return GetMmsConfigCancel(aTsyReqHandle);
+	case EMobilePhoneGetHomeNetworkSearchPeriod:
+		return GetHomeNetworkSearchPeriodCancel(aTsyReqHandle);
+	case EMobilePhoneGetLastUsedAccessTechnology:
+		return GetLastUsedAccessTechnologyCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyNetworkInvScanChange:
+		return NotifyNetworkInvScanChangeCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyNetworkInvScanEvent:
+		return NotifyNetworkInvScanEventCancel(aTsyReqHandle);
+	case EMobilePhoneGetCallForwardingIndicator:
+		return GetCallForwardingIndicatorCancel(aTsyReqHandle);
+	case EMobilePhoneGetCompMethodName:
+		return GetCompMethodNameCancel(aTsyReqHandle);
+	case EMobilePhoneEnumerateAPNEntries:
+		return EnumerateAPNEntriesCancel(aTsyReqHandle);
+	case EMobilePhoneGetAPNname:
+		return GetAPNnameCancel(aTsyReqHandle);
+	case EMobilePhoneAppendAPNName:
+		return AppendAPNNameCancel(aTsyReqHandle);
+	case EMobilePhoneDeleteAPNName:
+		return DeleteAPNNameCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyAPNListChanged:
+		return NotifyAPNListChangedCancel(aTsyReqHandle);
+	case EMobilePhoneSetAPNControlListServiceStatus:
+		return SetAPNControlListServiceStatusCancel(aTsyReqHandle);
+	case EMobilePhoneGetAPNControlListServiceStatus:
+		return GetAPNControlListServiceStatusCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyAPNControlListServiceStatusChange:
+		return NotifyAPNControlListServiceStatusChangeCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyAirTimeDurationChange:
+		return NotifyAirTimeDurationChangeCancel(aTsyReqHandle);
+	case EMobilePhoneTerminateAllCalls:
+		return TerminateAllCallsCancel(aTsyReqHandle);
+    case EMobilePhoneTerminateActiveCalls:
+        return TerminateActiveCallsCancel(aTsyReqHandle);
+	case EMobilePhoneNotifySendNetworkServiceRequest:
+		return NotifySendNetworkServiceRequestCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyAllSendNetworkServiceRequest:
+		return NotifyAllSendNetworkServiceRequestCancel(aTsyReqHandle);
+	case EMobilePhoneClearBlacklist:
+		return ClearBlacklistCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyDTMFEvent:
+		return NotifyDTMFEventCancel(aTsyReqHandle);
+	case EMobilePhoneGetPersonalisationCaps:
+		return GetPersonalisationCapsCancel(aTsyReqHandle);
+	case EMobilePhoneGetPersonalisationStatus:
+		return GetPersonalisationStatusCancel(aTsyReqHandle);
+	case EMobilePhoneSetPersonalisationStatus:
+		return SetPersonalisationStatusCancel(aTsyReqHandle);
+	case EMobilePhoneGetNetworkName:
+		return GetCurrentNetworkNameCancel(aTsyReqHandle);
+	case EMobilePhoneGetPreferredNetworksPhase1:
+	case EMobilePhoneGetPreferredNetworksPhase2:
+		return GetPreferredNetworksCancel(aTsyReqHandle);
+	case EMobilePhoneStorePreferredNetworksList:
+		return StorePreferredNetworksListCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyStorePreferredNetworksListChange:
+		return NotifyStorePreferredNetworksListChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetCipheringIndicatorStatus:
+		return GetCipheringIndicatorStatusCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyCipheringIndicatorStatus:
+		return NotifyCipheringIndicatorStatusCancel(aTsyReqHandle);
+	case EMobilePhoneSetIdentityServiceStatus:
+		return SetIdentityServiceStatusCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyIdentityServiceStatus:
+		return NotifyIdentityServiceStatusCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyIdentitySuppressionRejected:
+		return NotifyIdentitySuppressionRejectedCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyMulticallIndicatorChange:
+		return NotifyMulticallIndicatorChangeCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyImsAuthorizationInfoChanged:
+		return NotifyImsAuthorizationInfoChangedCancel(aTsyReqHandle);
+	case EMobilePhoneAuthorizationInfoPhase1:
+	case EMobilePhoneAuthorizationInfoPhase2:
+		return GetAuthorizationInfoCancel(aTsyReqHandle);
+	case EMobilePhoneIMSAuthenticate:
+		return GetAuthenticationDataCancel(aTsyReqHandle);
+	case EMobilePhoneSmartCardAuthenticate:
+		return GetSmartCardAuthenticationDataCancel(aTsyReqHandle);
+	case EMobilePhoneGetIccIdentity:
+		return GetIccIdentityCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyAuthenticateDataChange:
+		return NotifyAuthenticateDataChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetAuthenticationParams:
+		return GetAuthenticationParamsCancel(aTsyReqHandle);
+	case EMobilePhoneSetGbaBootstrapParams:
+		return SetGbaBootstrapParamsCancel(aTsyReqHandle);
+	case EMobilePhoneAuthenticationListPhase1:
+	case EMobilePhoneAuthenticationListPhase2:
+		return GetAuthenticationListCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyWlanDataChange:
+		return NotifyWlanDataChangeCancel(aTsyReqHandle);
+	case EMobilePhoneNotifyPreferredWlanSIDListChange:
+		return NotifyPreferredWlanSIDListChangeCancel(aTsyReqHandle);
+	case EMobilePhoneGetWlanData:
+		return GetWlanDataCancel(aTsyReqHandle);
+	case EMobilePhoneSetWlanData:
+		return SetWlanDataCancel(aTsyReqHandle);
+	case EMobilePhoneGetPreferredWlanSIDsPhase1:
+	case EMobilePhoneGetPreferredWlanSIDsPhase2:
+		return GetPreferredWlanSIDsCancel(aTsyReqHandle);
+	case EMobilePhoneStorePreferredWlanSIDList:
+		return StorePreferredWlanSIDListCancel(aTsyReqHandle);
+	
+	default:
+		return CPhoneBase::CancelService(aIpc,aTsyReqHandle);
+		}
+	}
+
+/***********************************************************************************/
+//
+// The following methods are called from ExtFunc and/or CancelService.
+// Each of these will process a TSY request or cancel a TSY request
+// Here, example values are returned or checked within this dummy TSY in order to ensure
+// that the integrity of the data passed to/from client is maintained
+//
+/***********************************************************************************/
+
+TInt CPhoneDMmTsy::GetMultimodeCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetMultimodeCaps called"));
+	*aCaps=DMMTSY_PHONE_MULTIMODE_CAPS;
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetPhoneStoreInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aGetInfo,
+		TDes* aName)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneStoreInfo called"));
+
+	RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *infoPckg = REINTERPRET_CAST(RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *,aGetInfo);
+	RMobilePhoneStore::TMobilePhoneStoreInfoV1 &info = (*infoPckg)();
+
+	if (aName->Compare(DMMTSY_PHONE_STORE_NAME1) == 0)
+		{
+		info.iName=DMMTSY_PHONE_STORE_NAME1;
+		info.iType=DMMTSY_PHONE_STORE_TYPE1;
+		info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES1;
+		info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES1;
+		info.iCaps=DMMTSY_PHONE_STORE_CAPS1;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	else if (aName->Compare(DMMTSY_PHONE_STORE_NAME2) == 0)
+		{
+		info.iName=DMMTSY_PHONE_STORE_NAME2;
+		info.iType=DMMTSY_PHONE_STORE_TYPE2;
+		info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES2;
+		info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES2;
+		info.iCaps=DMMTSY_PHONE_STORE_CAPS2;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetPhoneStoreInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aGetInfo, 
+		RMobilePhone::TPhoneStoreNameAndIccType* aTable)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneStoreInfo called using IccType"));
+
+	RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *infoPckg = REINTERPRET_CAST(RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *,aGetInfo);
+	RMobilePhoneStore::TMobilePhoneStoreInfoV1 &info = (*infoPckg)();
+
+	if ((aTable->iStoreName.Compare(DMMTSY_PHONE_STORE_NAME1) == 0) &&
+				(aTable->iMode.Compare(DMMTSY_PHONEBOOK_TYPE) == 0))
+		{
+		info.iName=DMMTSY_PHONE_STORE_NAME1;
+		info.iType=DMMTSY_PHONE_STORE_TYPE1;
+		info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES1;
+		info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES1;
+		info.iCaps=DMMTSY_PHONE_STORE_CAPS1;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	else if ((aTable->iStoreName.Compare(DMMTSY_PHONE_STORE_NAME2) == 0) &&
+					(aTable->iMode.Compare(DMMTSY_PHONEBOOK_TYPE) == 0))
+		{
+		info.iName=DMMTSY_PHONE_STORE_NAME2;
+		info.iType=DMMTSY_PHONE_STORE_TYPE2;
+		info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES2;
+		info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES2;
+		info.iCaps=DMMTSY_PHONE_STORE_CAPS2;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetPhoneStoreInfoCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneStoreInfoCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetIccAccessCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetIccAccessCaps called"));
+	*aCaps=DMMTSY_PHONE_SIM_ACCESS_CAPS1;
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyIccAccessCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	if (!iNotifyIccAccessCaps++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccAccessCapsChange called"));
+		*aCaps=DMMTSY_PHONE_SIM_ACCESS_CAPS2;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyIccAccessCapsChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccAccessCapsChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetIccIdentity(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TIccIdentity* aIdentity)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetIccIdentity called"));
+	*aIdentity=DMMTSY_PHONE_ICC_ID;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetIccIdentityCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetIccIdentity called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCustomerServiceProfile(const TTsyReqHandle aTsyReqHandle, TDes8* aFile)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCustomerServiceProfile called"));
+	RMobilePhone::TMobilePhoneCspFileV1Pckg* cspV1Pckg = (RMobilePhone::TMobilePhoneCspFileV1Pckg*)aFile;
+	RMobilePhone::TMobilePhoneCspFileV1& cspV1 = (*cspV1Pckg)();
+
+	cspV1.iCallOfferingServices=DMMTSY_PHONE_CSP_BYTE1;
+	cspV1.iCallRestrictionServices=DMMTSY_PHONE_CSP_BYTE2;
+	cspV1.iOtherSuppServices=DMMTSY_PHONE_CSP_BYTE3;
+	cspV1.iCallCompletionServices=DMMTSY_PHONE_CSP_BYTE4;
+	cspV1.iTeleservices=DMMTSY_PHONE_CSP_BYTE5;
+	cspV1.iCphsTeleservices=DMMTSY_PHONE_CSP_BYTE6;
+	cspV1.iCphsFeatures=DMMTSY_PHONE_CSP_BYTE7;
+	cspV1.iNumberIdentServices=DMMTSY_PHONE_CSP_BYTE8;
+	cspV1.iPhase2PlusServices=DMMTSY_PHONE_CSP_BYTE9;
+	cspV1.iValueAddedServices=DMMTSY_PHONE_CSP_BYTE10;
+
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCustomerServiceProfileCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCustomerServiceProfileCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetServiceTable(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneServiceTable* aTable, TDes8* aFile)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable called"));
+	RMobilePhone::TMobilePhoneServiceTableV1Pckg* sstFilePckg = (RMobilePhone::TMobilePhoneServiceTableV1Pckg*) aFile;
+	RMobilePhone::TMobilePhoneServiceTableV1 &sstFile = (*sstFilePckg)();
+		
+	if (*aTable!=DMMTSY_PHONE_SERVICE_TABLE)
+		ReqCompleted(aTsyReqHandle,KErrCancel);
+	else
+		{
+		if(sstFile.ExtensionId()==KEtelExtMultimodeV8)
+			{
+			LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable is using V8table"));
+			RMobilePhone::TMobilePhoneServiceTableV8Pckg* sstV8Pckg = (RMobilePhone::TMobilePhoneServiceTableV8Pckg*)aFile;
+			RMobilePhone::TMobilePhoneServiceTableV8& sstV8 = (*sstV8Pckg)();
+
+			sstV8.iServices1To8=DMMTSY_PHONE_SST_BYTE1;
+			sstV8.iServices9To16=DMMTSY_PHONE_SST_BYTE2;
+			sstV8.iServices17To24=DMMTSY_PHONE_SST_BYTE3;
+			sstV8.iServices25To32=DMMTSY_PHONE_SST_BYTE4;
+			sstV8.iServices33To40=DMMTSY_PHONE_SST_BYTE5;
+			sstV8.iServices41To48=DMMTSY_PHONE_SST_BYTE6;
+			sstV8.iServices49To56=DMMTSY_PHONE_SST_BYTE7;
+			sstV8.iAID=DMMTSY_PHONE_USIM_AID;			
+			sstV8.iServices57To64=DMMTSY_PHONE_SST_BYTE8;
+			sstV8.iServices65To72=DMMTSY_PHONE_SST_BYTE9;
+			}
+			
+		if(sstFile.ExtensionId()==KETelExtMultimodeV2)
+			{
+			LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable is using V2table"));
+			RMobilePhone::TMobilePhoneServiceTableV2Pckg* sstV2Pckg = (RMobilePhone::TMobilePhoneServiceTableV2Pckg*)aFile;
+			RMobilePhone::TMobilePhoneServiceTableV2& sstV2 = (*sstV2Pckg)();
+
+			sstV2.iServices1To8=DMMTSY_PHONE_SST_BYTE1;
+			sstV2.iServices9To16=DMMTSY_PHONE_SST_BYTE2;
+			sstV2.iServices17To24=DMMTSY_PHONE_SST_BYTE3;
+			sstV2.iServices25To32=DMMTSY_PHONE_SST_BYTE4;
+			sstV2.iServices33To40=DMMTSY_PHONE_SST_BYTE5;
+			sstV2.iServices41To48=DMMTSY_PHONE_SST_BYTE6;
+			sstV2.iServices49To56=DMMTSY_PHONE_SST_BYTE7;
+			sstV2.iAID=DMMTSY_PHONE_USIM_AID;
+			}
+		else if(sstFile.ExtensionId()==KETelExtMultimodeV1)
+			{
+			LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable is using V1table"));
+
+			sstFile.iServices1To8=DMMTSY_PHONE_SST_BYTE1;
+			sstFile.iServices9To16=DMMTSY_PHONE_SST_BYTE2;
+			sstFile.iServices17To24=DMMTSY_PHONE_SST_BYTE3;
+			sstFile.iServices25To32=DMMTSY_PHONE_SST_BYTE4;
+			sstFile.iServices33To40=DMMTSY_PHONE_SST_BYTE5;
+			sstFile.iServices41To48=DMMTSY_PHONE_SST_BYTE6;
+			sstFile.iServices49To56=DMMTSY_PHONE_SST_BYTE7;
+			}
+
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetServiceTableCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTableCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetBatteryCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetBatteryCaps called"));
+	*aCaps=DMMTSY_PHONE_BATTERY_CAPS;
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetBatteryInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneBatteryInfoV1* aInfo)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetBatteryInfo called"));
+	aInfo->iStatus=DMMTSY_PHONE_BATTERY_STATUS1;
+	aInfo->iChargeLevel=DMMTSY_PHONE_BATTERY_CHARGE1;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetBatteryInfoCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetBatteryInfoCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyBatteryInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneBatteryInfoV1* aInfo)
+	{
+	if (!iNotifyBatteryInfoChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyBatteryInfoChange called"));
+		aInfo->iStatus=DMMTSY_PHONE_BATTERY_STATUS2;
+		aInfo->iChargeLevel=DMMTSY_PHONE_BATTERY_CHARGE2;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyBatteryInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyBatteryInfoChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetSignalCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetSignalCaps called"));
+	*aCaps=DMMTSY_PHONE_SIGNAL_CAPS;
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetSignalStrength(const TTsyReqHandle aTsyReqHandle, TInt32* aSignalStrength, TInt8* aBar)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetSignalStrength called"));
+	*aSignalStrength=DMMTSY_PHONE_SIGNAL_STRENGTH1;
+	*aBar=DMMTSY_PHONE_SIGNAL_BAR1;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetSignalStrengthCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetSignalStrengthCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifySignalStrengthChange(const TTsyReqHandle aTsyReqHandle, TInt32* aSignalStrength, TInt8* aBar)
+	{
+	if (!iNotifySignalStrengthChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifySignalStrengthChange called"));
+		*aSignalStrength=DMMTSY_PHONE_SIGNAL_STRENGTH2;
+		*aBar=DMMTSY_PHONE_SIGNAL_BAR2;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifySignalStrengthChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifySignalStrengthChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetIndicatorCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aActionCaps, TUint32* aIndCaps)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetIndicatorCaps called"));
+	*aActionCaps=DMMTSY_PHONE_ACTION_INDICATOR_CAPS;
+	*aIndCaps=DMMTSY_PHONE_INDICATOR_CAPS;
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetIndicator(const TTsyReqHandle aTsyReqHandle, TUint32* aIndicator)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetIndicator called"));
+	*aIndicator=DMMTSY_PHONE_INDICATOR1;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetIndicatorCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetIndicatorCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyIndicatorChange(const TTsyReqHandle aTsyReqHandle, TUint32* aIndicator)
+	{
+	if (!iNotifyIndicatorChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyIndicatorChange called"));
+		*aIndicator=DMMTSY_PHONE_INDICATOR2;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyIndicatorChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIndicatorChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetIdentityCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetIdentityCaps called"));
+	*aCaps=DMMTSY_PHONE_IDENTITY_CAPS;
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetPhoneId(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIdentityV1* aId)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneId called"));
+	aId->iManufacturer=DMMTSY_PHONE_MANUFACTURER;
+	aId->iModel=DMMTSY_PHONE_MODEL;
+	aId->iRevision=DMMTSY_PHONE_REVISION;
+	aId->iSerialNumber=DMMTSY_PHONE_SERIAL_NUMBER;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetPhoneIdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneIdCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetSubscriberId(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSubscriberId* aId)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetSubscriberId called"));
+	*aId=DMMTSY_PHONE_SUBSCRIBER_ID;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetSubscriberIdCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetSubscriberIdCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetDTMFCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetDTMFCaps called"));
+	*aCaps=DMMTSY_PHONE_DTMF_CAPS1;
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyDTMFCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	if (!iNotifyDTMFCapsChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFCapsChange called"));
+		*aCaps=DMMTSY_PHONE_DTMF_CAPS2;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyDTMFCapsChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFCapsChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyStopInDTMFString(const TTsyReqHandle aTsyReqHandle)
+	{
+	if (!iNotifyStopInDTMFString++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyStopInDTMFString called"));
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyStopInDTMFStringCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyStopInDTMFStringCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::ContinueDTMFStringSending(const TTsyReqHandle aTsyReqHandle, TBool *aContinue)
+	{
+	TInt err = KErrNone;
+	if (!(*aContinue))
+		err = KErrCorrupt;
+	ReqCompleted(aTsyReqHandle,err);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SendDTMFTones(const TTsyReqHandle aTsyReqHandle, TDesC* aTones)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SendDTMFTones called"));
+	if (aTones->Length()!=DMMTSY_PHONE_SEND_TONES_LENGTH)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else if (aTones->Compare(DMMTSY_PHONE_SEND_TONES)!=KErrNone)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SendDTMFTonesCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SendDTMFTonesCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::ReadDTMFTones(const TTsyReqHandle aTsyReqHandle, TDes* aTones)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::ReadDTMFTones called"));
+	aTones->Copy(DMMTSY_PHONE_READ_TONES);
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::ReadDTMFTonesCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::ReadDTMFTonesCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::StartDTMFTone(const TTsyReqHandle aTsyReqHandle, TChar* aTone)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::StartDTMFTone called"));
+	if (*aTone != DMMTSY_PHONE_SINGLE_TONE)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::StopDTMFTone(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::StopDTMFTone called"));
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetNetworkCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkCaps called"));
+	*aCaps=DMMTSY_PHONE_NETWORK_CAPS;
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCurrentMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkMode* aMode)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentMode called"));
+	*aMode=DMMTSY_PHONE_NETWORK_MODE1;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyModeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkMode* aMode)
+	{
+	if (!iNotifyModeChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyModeChange called"));
+		*aMode=DMMTSY_PHONE_NETWORK_MODE2;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyModeChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyModeChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetHomeNetwork(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkInfoPckg)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetwork called"));
+	RMobilePhone::TMobilePhoneNetworkInfoV1Pckg* networkInfoV1Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV1Pckg*)aNetworkInfoPckg;
+	RMobilePhone::TMobilePhoneNetworkInfoV1& networkInfoV1 = (*networkInfoV1Pckg)();
+	
+	networkInfoV1.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
+	networkInfoV1.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
+	networkInfoV1.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
+	networkInfoV1.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
+	networkInfoV1.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
+	networkInfoV1.iCdmaSID=DMMTSY_PHONE_HOME_NETWORK_SID;
+	networkInfoV1.iAnalogSID=DMMTSY_PHONE_HOME_NETWORK_SID;
+	networkInfoV1.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
+	networkInfoV1.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
+	networkInfoV1.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
+
+	if(networkInfoV1.ExtensionId() == KEtelExtMultimodeV8)
+	{
+		RMobilePhone::TMobilePhoneNetworkInfoV8Pckg* networkInfoV8Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV8Pckg*)aNetworkInfoPckg;
+		RMobilePhone::TMobilePhoneNetworkInfoV8& networkInfoV8 = (*networkInfoV8Pckg)();
+		networkInfoV8.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH;
+		networkInfoV8.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY;
+		networkInfoV8.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY;
+		networkInfoV8.iHsupaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSUPA_AVAILABILITY;
+	}
+
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetHomeNetworkCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetworkCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCurrentNetwork(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkInfoPckg, RMobilePhone::TMobilePhoneLocationAreaV1* aArea)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetwork called"));
+	RMobilePhone::TMobilePhoneNetworkInfoV1Pckg* networkInfoV1Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV1Pckg*)aNetworkInfoPckg;
+	RMobilePhone::TMobilePhoneNetworkInfoV1& networkInfoV1 = (*networkInfoV1Pckg)();
+	
+	if(networkInfoV1.ExtensionId() == KETelExt3rdPartyV1)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkISV called"));
+		RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg* networkInfoISVPckg = (RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg*)aNetworkInfoPckg;
+		RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1& networkInfoISV = (*networkInfoISVPckg)();
+
+		networkInfoISV.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE_ISV;
+		networkInfoISV.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS_ISV;
+		networkInfoISV.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND_ISV;
+		networkInfoISV.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC_ISV;
+		networkInfoISV.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID_ISV;
+		networkInfoISV.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG_ISV;
+		networkInfoISV.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME_ISV;
+		networkInfoISV.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME_ISV;
+		networkInfoISV.iCdmaSID=DMMTSY_PHONE_CURRENT_NETWORK_CDMASID_ISV;
+		networkInfoISV.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_UTRAN_ISV;
+		
+		if(aArea)
+			{
+			aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN_ISV;
+			aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC_ISV;
+			aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID_ISV;
+			
+			}	
+		
+		}
+	else
+		{
+		if(networkInfoV1.ExtensionId() == KEtelExtMultimodeV8)
+			{
+			RMobilePhone::TMobilePhoneNetworkInfoV8Pckg* networkInfoV8Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV8Pckg*)aNetworkInfoPckg;
+			RMobilePhone::TMobilePhoneNetworkInfoV8& networkInfoV8 = (*networkInfoV8Pckg)();
+			networkInfoV8.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1;
+			
+			networkInfoV8.iHsdpaAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY1;
+			networkInfoV8.iEgprsAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY1;
+			networkInfoV8.iHsupaAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY1;
+			}
+			
+
+		else if(networkInfoV1.ExtensionId() == KEtelExtMultimodeV5)
+			{
+			RMobilePhone::TMobilePhoneNetworkInfoV5Pckg* networkInfoV5Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV5Pckg*)aNetworkInfoPckg;
+			RMobilePhone::TMobilePhoneNetworkInfoV5& networkInfoV5 = (*networkInfoV5Pckg)();
+			networkInfoV5.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_GSM;
+			
+			networkInfoV5.iHsdpaAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY;
+			networkInfoV5.iEgprsAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY;
+			}
+			
+		else if(networkInfoV1.ExtensionId() == KETelExtMultimodeV2)
+			{
+			RMobilePhone::TMobilePhoneNetworkInfoV2Pckg* networkInfoV2Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV2Pckg*)aNetworkInfoPckg;
+			RMobilePhone::TMobilePhoneNetworkInfoV2& networkInfoV2 = (*networkInfoV2Pckg)();
+			networkInfoV2.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_GSM;
+			}
+		
+		networkInfoV1.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1;
+		networkInfoV1.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1;
+		networkInfoV1.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1;
+		networkInfoV1.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1;
+		networkInfoV1.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1;
+		networkInfoV1.iCdmaSID=DMMTSY_PHONE_CURRENT_NETWORK_SID;
+		networkInfoV1.iAnalogSID=DMMTSY_PHONE_CURRENT_NETWORK_SID;
+		networkInfoV1.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1;
+		networkInfoV1.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1;
+		networkInfoV1.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1;
+
+		if(aArea)
+			{
+			aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN;
+			aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC1;
+			aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID1;
+			}	
+		}
+
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCurrentNetworkCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCurrentNetworkChange(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkInfoPckg, RMobilePhone::TMobilePhoneLocationAreaV1* aArea)
+	{
+	if (!iNotifyCurrentNetworkChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCurrentNetworkChange called"));
+
+		RMobilePhone::TMobilePhoneNetworkInfoV1Pckg* networkInfoPckg = (RMobilePhone::TMobilePhoneNetworkInfoV1Pckg*)aNetworkInfoPckg;
+		RMobilePhone::TMobilePhoneNetworkInfoV1& networkInfo = (*networkInfoPckg)();
+		
+		if(networkInfo.ExtensionId() == KETelExt3rdPartyV1)
+			{
+			LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkISV called"));
+			RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg* networkInfoISVPckg = (RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg*)aNetworkInfoPckg;
+			RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1& networkInfoISV = (*networkInfoISVPckg)();
+
+			networkInfoISV.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE_ISV2;
+			networkInfoISV.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS_ISV2;
+			networkInfoISV.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND_ISV2;
+			networkInfoISV.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC_ISV2;
+			networkInfoISV.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID_ISV2;
+			networkInfoISV.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG_ISV2;
+			networkInfoISV.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME_ISV2;
+			networkInfoISV.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME_ISV2;
+			networkInfoISV.iCdmaSID=DMMTSY_PHONE_CURRENT_NETWORK_CDMASID_ISV2;
+			networkInfoISV.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_UTRAN_ISV2;
+					
+			aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN_ISV2;
+			aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC_ISV2;
+			aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID_ISV2;		
+			
+			}
+		else
+			{
+			if(networkInfo.ExtensionId() == KETelExtMultimodeV2)
+				{
+				RMobilePhone::TMobilePhoneNetworkInfoV2Pckg* networkInfoV2Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV2Pckg*)aNetworkInfoPckg;
+				RMobilePhone::TMobilePhoneNetworkInfoV2& networkInfoV2 = (*networkInfoV2Pckg)();
+				networkInfoV2.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_GSM;
+				//reset for V1
+				iNotifyCurrentNetworkChange = 0;
+				}		
+
+			if(networkInfo.ExtensionId() == KEtelExtMultimodeV8)
+				{
+				RMobilePhone::TMobilePhoneNetworkInfoV8Pckg* networkInfoV8Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV8Pckg*)aNetworkInfoPckg;
+				RMobilePhone::TMobilePhoneNetworkInfoV8& networkInfoV8 = (*networkInfoV8Pckg)();
+				networkInfoV8.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2;
+				//reset for V8
+				networkInfoV8.iHsdpaAvailableIndicator= DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY2;
+				networkInfoV8.iEgprsAvailableIndicator= DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY2;
+				networkInfoV8.iHsupaAvailableIndicator= DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY2;
+				iNotifyCurrentNetworkChange = 0;
+				}		
+
+			networkInfo.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2;
+			networkInfo.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2;
+			networkInfo.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2;
+			networkInfo.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2;
+			networkInfo.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2;
+			networkInfo.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2;
+			networkInfo.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2;
+			networkInfo.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2;
+
+			if(aArea)
+				{
+				aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN;
+				aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC2;
+				aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID2;
+				}
+				
+
+			}
+		//reset for etel3rd
+		iNotifyCurrentNetworkChange = 0;
+
+		AddDelayedReq(aTsyReqHandle,this);	
+		}
+	else
+		{
+		//reset for multiple completion test
+		iNotifyCurrentNetworkChange = 0;
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCurrentNetworkChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCurrentNetworkChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCellInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aCellInfoPckg)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCellInfo called"));
+	RMobilePhone::TMobilePhoneCellInfoV9Pckg* cellInfoPckg = (RMobilePhone::TMobilePhoneCellInfoV9Pckg*)aCellInfoPckg;
+	RMobilePhone::TMobilePhoneCellInfoV9& cellInfo = (*cellInfoPckg)();
+	
+	cellInfo.iMode = DMMTSY_PHONE_CELL_INFO_MODE;
+	cellInfo.iCellId = DMMTSY_PHONE_CELL_INFO_CELLID;
+	cellInfo.iTimingAdvance = DMMTSY_PHONE_CELL_INFO_TIMING_ADVANCE;	
+	cellInfo.iStatus = DMMTSY_PHONE_CELL_INFO_STATUS;
+	
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCellInfoCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCellInfoCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCellInfoChange(const TTsyReqHandle aTsyReqHandle, TDes8* aCellInfoPckg)
+	{
+	if (!iNotifyCellInfoChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCellInfoChange called"));
+
+		RMobilePhone::TMobilePhoneCellInfoV9Pckg* cellInfoPckg = (RMobilePhone::TMobilePhoneCellInfoV9Pckg*)aCellInfoPckg;
+		RMobilePhone::TMobilePhoneCellInfoV9& cellInfo = (*cellInfoPckg)();
+	
+		cellInfo.iMode = DMMTSY_PHONE_CELL_INFO_MODE2;
+		cellInfo.iCellId = DMMTSY_PHONE_CELL_INFO_CELLID2;
+		cellInfo.iTimingAdvance = DMMTSY_PHONE_CELL_INFO_TIMING_ADVANCE2;
+		cellInfo.iStatus = DMMTSY_PHONE_CELL_INFO_STATUS2;
+		
+		AddDelayedReq(aTsyReqHandle,this);	
+		}
+	else
+		{
+		//reset for multiple completion test
+		iNotifyCellInfoChange = 0;
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCellInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCellInfoChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetNetworkRegistrationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneRegistrationStatus* aStatus)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkRegistrationStatus called"));
+	*aStatus=DMMTSY_PHONE_REGISTRATION_STATUS1;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetNetworkRegistrationStatusCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkRegistrationStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyNetworkRegistrationStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneRegistrationStatus* aStatus)
+	{
+	if(!iNotifyNetworkRegistrationStatusChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkRegistrationStatusChange called"));
+		*aStatus=DMMTSY_PHONE_REGISTRATION_STATUS2;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyNetworkRegistrationStatusChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkRegistrationStatusChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetDetectedNetworksPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksPhase1 called"));
+	TInt ret=KErrNone;
+	TInt leaveCode=KErrNone;
+	TRAP(leaveCode, ret=ProcessGetDetectedNetworksPhase1L(aTsyReqHandle, aClient, aBufSize););
+	if (leaveCode != KErrNone)
+		ReqCompleted(aTsyReqHandle,leaveCode);
+	return ret;
+	}
+
+TInt CPhoneDMmTsy::ProcessGetDetectedNetworksPhase1L(const TTsyReqHandle aTsyReqHandle, 
+													 RMobilePhone::TClientId* aClient, 
+													 TInt* aBufSize)
+	{
+	// retrieve detected networks from phone, 
+	// store each network as a list entry,
+	// stream the list and then return size of this buffer to client
+	CMobilePhoneNetworkList* list=CMobilePhoneNetworkList::NewL();
+	CleanupStack::PushL(list);
+
+	RMobilePhone::TMobilePhoneNetworkInfoV1 entry;
+
+	// fill up an example list
+	for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++)
+		{
+		switch (index)
+			{
+		case 0:
+			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1;
+			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1;
+			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1;
+			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1;
+			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1;
+			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1;
+			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1;
+			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1;
+			break;
+		case 1:
+			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2;
+			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2;
+			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2;
+			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2;
+			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2;
+			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2;
+			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2;
+			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2;
+			break;
+		case 2:
+		default:
+			entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
+			entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
+			entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
+			entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
+			entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
+			entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
+			entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
+			entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
+			break;
+			}
+			// Add the entry into the list, at the next empty location
+			list->AddEntryL(entry);
+		}
+
+	// Store the streamed list and the client ID
+	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle);
+	CleanupStack::PushL(read);
+	
+	read->iListBuf = list->StoreLC();
+	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
+	
+	iGetDetectedNetworks->AppendL(read);
+	CleanupStack::Pop(); // pop the CListReadAllAttempt
+	
+	// return the CBufBase’s size to client
+	*aBufSize=(read->iListBuf)->Size();
+	
+	// Complete first phase of list retrieval
+	AddDelayedReq(aTsyReqHandle,this);
+	CleanupStack::PopAndDestroy(); // pop&destroy list
+	return KErrNone;
+	}
+
+
+
+TInt CPhoneDMmTsy::GetDetectedNetworksPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksPhase2 called"));
+	CListReadAllAttempt* read=NULL;
+	// Find the get detected network attempt from this client
+	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
+		{
+		read = iGetDetectedNetworks->At(i);
+		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
+		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
+			{
+			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
+			// Copy the streamed list to the client
+			aBuf->Copy(bufPtr);
+			delete read;
+			iGetDetectedNetworks->Delete(i);
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			return KErrNone;
+			}
+		}
+	// Should handle error case of not finding the matching client from read all phase 1
+	return KErrNotFound;
+	}
+
+TInt CPhoneDMmTsy::GetDetectedNetworksCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	// Remove the read all attempt from iGetDetectedNetworks
+	CListReadAllAttempt* read=NULL;
+	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
+		{
+		read = iGetDetectedNetworks->At(i);
+		if (read->iReqHandle == aTsyReqHandle)
+			{
+			delete read;
+			iGetDetectedNetworks->Delete(i);
+			break;
+			}
+		}
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetDetectedNetworksV2Phase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV2Phase1 called"));
+	TInt ret=KErrNone;
+	TInt leaveCode=KErrNone;
+	TRAP(leaveCode, ret=ProcessGetDetectedNetworksV2Phase1L(aTsyReqHandle, aClient, aBufSize););
+	if (leaveCode != KErrNone)
+		ReqCompleted(aTsyReqHandle,leaveCode);
+	return ret;
+	}
+
+TInt CPhoneDMmTsy::ProcessGetDetectedNetworksV2Phase1L(const TTsyReqHandle aTsyReqHandle, 
+													 RMobilePhone::TClientId* aClient, 
+													 TInt* aBufSize)
+	{
+	// Retrieve detected networks from phone, 
+	// Store each network as a list entry of type TMobilePhoneNetworkInfoV2,
+	// Stream the list and then return size of this buffer to client
+	CMobilePhoneNetworkListV2* list=CMobilePhoneNetworkListV2::NewL();
+	CleanupStack::PushL(list);
+
+	RMobilePhone::TMobilePhoneNetworkInfoV2 entry;
+
+	// fill up an example list
+	for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++)
+		{
+		switch (index)
+			{
+		case 0:
+			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1;
+			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1;
+			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1;
+			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1;
+			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1;
+			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1;
+			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1;
+			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1;
+			entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1;
+			break;
+		case 1:
+			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2;
+			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2;
+			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2;
+			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2;
+			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2;
+			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2;
+			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2;
+			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2;
+			entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2;
+			break;
+		case 2:
+			entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
+			entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
+			entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
+			entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
+			entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
+			entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
+			entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
+			entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
+			entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH;
+			break;
+		case 3:
+		default:
+			entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
+			entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
+			entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
+			entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
+			entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
+			entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
+			entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
+			entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
+			entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH3;
+			break;
+			}
+			// Add the entry into the list, at the next empty location
+			list->AddEntryL(entry);
+		}
+
+	// Store the streamed list and the client ID
+	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle);
+	CleanupStack::PushL(read);
+	
+	read->iListBuf = list->StoreLC();
+	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
+	
+	iGetDetectedNetworks->AppendL(read);
+	CleanupStack::Pop(); // pop the CListReadAllAttempt
+	
+	// return the CBufBase’s size to client
+	*aBufSize=(read->iListBuf)->Size();
+	
+	// Complete first phase of list retrieval
+	AddDelayedReq(aTsyReqHandle,this);
+	CleanupStack::PopAndDestroy(); // pop&destroy list
+	return KErrNone;
+	}
+
+
+
+TInt CPhoneDMmTsy::GetDetectedNetworksV2Phase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV2Phase2 called"));
+	CListReadAllAttempt* read=NULL;
+	// Find the get detected network attempt from this client
+	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
+		{
+		read = iGetDetectedNetworks->At(i);
+		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
+		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
+			{
+			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
+			// Copy the streamed list to the client
+			aBuf->Copy(bufPtr);
+			delete read;
+			iGetDetectedNetworks->Delete(i);
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			return KErrNone;
+			}
+		}
+	// Should handle error case of not finding the matching client from read all phase 1
+	return KErrNotFound;
+	}
+
+TInt CPhoneDMmTsy::GetDetectedNetworksV2Cancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV2Cancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	// Remove the read all attempt from iGetDetectedNetworks
+	CListReadAllAttempt* read=NULL;
+	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
+		{
+		read = iGetDetectedNetworks->At(i);
+		if (read->iReqHandle == aTsyReqHandle)
+			{
+			delete read;
+			iGetDetectedNetworks->Delete(i);
+			break;
+			}
+		}
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+//
+// GetDetectedNetworksV8 //
+//
+TInt CPhoneDMmTsy::GetDetectedNetworksV8Phase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV8Phase1 called"));
+	TInt ret=KErrNone;
+	TRAPD(leaveCode, ret=ProcessGetDetectedNetworksV8Phase1L(aTsyReqHandle, aClient, aBufSize););
+	if (leaveCode != KErrNone)
+		ReqCompleted(aTsyReqHandle,leaveCode);
+	return ret;
+	}
+
+TInt CPhoneDMmTsy::ProcessGetDetectedNetworksV8Phase1L(const TTsyReqHandle aTsyReqHandle, 
+					RMobilePhone::TClientId* aClient, TInt* aBufSize)
+	{
+	// Retrieve detected networks from phone, 
+	// Store each network as a list entry of type TMobilePhoneNetworkInfoV8,
+	// Stream the list and then return size of this buffer to client
+	CMobilePhoneNetworkListV8* list=CMobilePhoneNetworkListV8::NewL();
+	CleanupStack::PushL(list);
+
+	RMobilePhone::TMobilePhoneNetworkInfoV8 entry;
+
+	// fill up an example list
+	for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++)
+		{
+		switch (index)
+			{
+		case 0:
+			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1;
+			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1;
+			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1;
+			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1;
+			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1;
+			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1;
+			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1;
+			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1;
+			entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1;
+			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY1;
+			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY1;
+			entry.iHsupaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY1;
+			break;
+		case 1:
+			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2;
+			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2;
+			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2;
+			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2;
+			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2;
+			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2;
+			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2;
+			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2;
+			entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2;
+			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY2;
+			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY2;
+			entry.iHsupaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY2;
+			break;
+		case 2:
+			entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
+			entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
+			entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
+			entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
+			entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
+			entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
+			entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
+			entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
+			entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH;
+			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY;
+			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY;
+			entry.iHsupaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSUPA_AVAILABILITY;
+			break;
+		case 3:
+		default:
+			entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
+			entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
+			entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
+			entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
+			entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
+			entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
+			entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
+			entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
+			entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH3;
+			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY;
+			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY;
+			entry.iHsupaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSUPA_AVAILABILITY;
+			break;
+			}
+			// Add the entry into the list, at the next empty location
+			list->AddEntryL(entry);
+		}
+	// Store the streamed list and the client ID
+	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle);
+	CleanupStack::PushL(read);
+	
+	read->iListBuf = list->StoreLC();
+	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
+	
+	iGetDetectedNetworks->AppendL(read);
+	CleanupStack::Pop(); // pop the CListReadAllAttempt
+	
+	// return the CBufBase’s size to client
+	*aBufSize=(read->iListBuf)->Size();
+	
+	// Complete first phase of list retrieval
+	AddDelayedReq(aTsyReqHandle,this);
+	CleanupStack::PopAndDestroy(); // pop&destroy list
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetDetectedNetworksV8Phase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV8Phase2 called"));
+	CListReadAllAttempt* read=NULL;
+	// Find the get detected network attempt from this client
+	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
+		{
+		read = iGetDetectedNetworks->At(i);
+		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
+		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
+			{
+			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
+			// Copy the streamed list to the client
+			aBuf->Copy(bufPtr);
+			delete read;
+			iGetDetectedNetworks->Delete(i);
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			return KErrNone;
+			}
+		}
+	// Should handle error case of not finding the matching client from read all phase 1
+	return KErrNotFound;
+	}
+
+TInt CPhoneDMmTsy::GetDetectedNetworksV8Cancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV8Cancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	// Remove the read all attempt from iGetDetectedNetworks
+	CListReadAllAttempt* read=NULL;
+	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
+		{
+		read = iGetDetectedNetworks->At(i);
+		if (read->iReqHandle == aTsyReqHandle)
+			{
+			delete read;
+			iGetDetectedNetworks->Delete(i);
+			break;
+			}
+		}
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+
+//
+// GetDetectedNetworksV5 //
+//
+TInt CPhoneDMmTsy::GetDetectedNetworksV5Phase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV5Phase1 called"));
+	TInt ret=KErrNone;
+	TInt leaveCode=KErrNone;
+	TRAP(leaveCode, ret=ProcessGetDetectedNetworksV5Phase1L(aTsyReqHandle, aClient, aBufSize););
+	if (leaveCode != KErrNone)
+		ReqCompleted(aTsyReqHandle,leaveCode);
+	return ret;
+	}
+
+TInt CPhoneDMmTsy::ProcessGetDetectedNetworksV5Phase1L(const TTsyReqHandle aTsyReqHandle, 
+													 RMobilePhone::TClientId* aClient, 
+													 TInt* aBufSize)
+	{
+	// Retrieve detected networks from phone, 
+	// Store each network as a list entry of type TMobilePhoneNetworkInfoV2,
+	// Stream the list and then return size of this buffer to client
+	CMobilePhoneNetworkListV5* list=CMobilePhoneNetworkListV5::NewL();
+	CleanupStack::PushL(list);
+
+	RMobilePhone::TMobilePhoneNetworkInfoV5 entry;
+
+	// fill up an example list
+	for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++)
+		{
+		switch (index)
+			{
+		case 0:
+			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1;
+			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1;
+			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1;
+			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1;
+			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1;
+			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1;
+			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1;
+			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1;
+			entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1;
+			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY1;
+			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY1;
+			break;
+		case 1:
+			entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2;
+			entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2;
+			entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2;
+			entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2;
+			entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2;
+			entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2;
+			entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2;
+			entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2;
+			entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2;
+			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY2;
+			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY2;
+			break;
+		case 2:
+			entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
+			entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
+			entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
+			entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
+			entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
+			entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
+			entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
+			entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
+			entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH;
+			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY;
+			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY;
+			break;
+		case 3:
+		default:
+			entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE;
+			entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS;
+			entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND;
+			entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC;
+			entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID;
+			entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG;
+			entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
+			entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
+			entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH3;
+			entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY;
+			entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY;
+			break;
+			}
+			// Add the entry into the list, at the next empty location
+			list->AddEntryL(entry);
+		}
+
+	// Store the streamed list and the client ID
+	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle);
+	CleanupStack::PushL(read);
+	
+	read->iListBuf = list->StoreLC();
+	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
+	
+	iGetDetectedNetworks->AppendL(read);
+	CleanupStack::Pop(); // pop the CListReadAllAttempt
+	
+	// return the CBufBase’s size to client
+	*aBufSize=(read->iListBuf)->Size();
+	
+	// Complete first phase of list retrieval
+	AddDelayedReq(aTsyReqHandle,this);
+	CleanupStack::PopAndDestroy(); // pop&destroy list
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetDetectedNetworksV5Phase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV5Phase2 called"));
+	CListReadAllAttempt* read=NULL;
+	// Find the get detected network attempt from this client
+	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
+		{
+		read = iGetDetectedNetworks->At(i);
+		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
+		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
+			{
+			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
+			// Copy the streamed list to the client
+			aBuf->Copy(bufPtr);
+			delete read;
+			iGetDetectedNetworks->Delete(i);
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			return KErrNone;
+			}
+		}
+	// Should handle error case of not finding the matching client from read all phase 1
+	return KErrNotFound;
+	}
+
+TInt CPhoneDMmTsy::GetDetectedNetworksV5Cancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV5Cancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	// Remove the read all attempt from iGetDetectedNetworks
+	CListReadAllAttempt* read=NULL;
+	for (TInt i=0; i<iGetDetectedNetworks->Count(); ++i)
+		{
+		read = iGetDetectedNetworks->At(i);
+		if (read->iReqHandle == aTsyReqHandle)
+			{
+			delete read;
+			iGetDetectedNetworks->Delete(i);
+			break;
+			}
+		}
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+//
+
+TInt CPhoneDMmTsy::GetNetworkSelectionSetting(const TTsyReqHandle aTsyReqHandle, TDes8* aSetting)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkSelectionSetting called"));
+	RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg* selectionPckg = (RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg*)aSetting;
+	RMobilePhone::TMobilePhoneNetworkSelectionV1& selection = (*selectionPckg)();
+
+	selection.iMethod = DMMTSY_PHONE_NETWORK_SELECTION_METHOD1;
+	selection.iBandClass = DMMTSY_PHONE_NETWORK_SELECTION_BAND1;
+	selection.iOperationMode = DMMTSY_PHONE_NETWORK_SELECTION_OPERATION1;
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetNetworkSelectionSetting(const TTsyReqHandle aTsyReqHandle, TDes8* aSetting)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetNetworkSelectionSetting called"));
+	RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg* selectionPckg = (RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg*)aSetting;
+	RMobilePhone::TMobilePhoneNetworkSelectionV1& selection = (*selectionPckg)();
+
+	if ((selection.iMethod != DMMTSY_PHONE_NETWORK_SELECTION_METHOD2) ||
+	    (selection.iBandClass != DMMTSY_PHONE_NETWORK_SELECTION_BAND2) ||
+	    (selection.iOperationMode != DMMTSY_PHONE_NETWORK_SELECTION_OPERATION2))
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetNetworkSelectionSettingCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetNetworkSelectionSettingCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyNetworkSelectionSettingChange(const TTsyReqHandle aTsyReqHandle, TDes8* aSetting)
+	{
+	if(!iNotifyNetworkSelectionSettingChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSelectionSettingChange called"));
+
+		RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg* selectionPckg = (RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg*)aSetting;
+		RMobilePhone::TMobilePhoneNetworkSelectionV1& selection = (*selectionPckg)();
+		
+		selection.iMethod = DMMTSY_PHONE_NETWORK_SELECTION_METHOD1;
+		selection.iBandClass = DMMTSY_PHONE_NETWORK_SELECTION_BAND1;
+		selection.iOperationMode = DMMTSY_PHONE_NETWORK_SELECTION_OPERATION1;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyNetworkSelectionSettingChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSelectionSettingChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SelectNetwork(const TTsyReqHandle aTsyReqHandle, 
+								 TBool* aIsManual, 
+								 RMobilePhone::TMobilePhoneNetworkManualSelection* aManualSelection)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SelectNetwork called"));
+	
+	if (*aIsManual==DMMTSY_PHONE_MANUAL_SELECTION)
+		{
+		if ((aManualSelection->iCountry != DMMTSY_PHONE_COUNTRY_ID) ||
+		    (aManualSelection->iNetwork != DMMTSY_PHONE_NETWORK_ID))
+
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		else
+			AddDelayedReq(aTsyReqHandle,this);
+		}
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SelectNetworkCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SelectNetworkCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetNetworkTimeInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNITZ* aDateTime)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkTimeInfo called"));
+
+	aDateTime->iNitzFieldsUsed = DMMTSY_PHONE_NWTINFO_NITZ_USED;
+	aDateTime->Set(DMMTSY_PHONE_NWTINFO_YEAR,DMMTSY_PHONE_NWTINFO_MONTH,DMMTSY_PHONE_NWTINFO_DAY,
+		DMMTSY_PHONE_NWTINFO_HOUR, DMMTSY_PHONE_NWTINFO_MINUTE, DMMTSY_PHONE_NWTINFO_SECOND,
+		DMMTSY_PHONE_NWTINFO_MICRO);
+	aDateTime->iTimeZone = DMMTSY_PHONE_NWTINFO_TIMEZONE;
+	aDateTime->iLongNetworkId = DMMTSY_PHONE_NWTINFO_LONG_ID;
+	aDateTime->iShortNetworkId = DMMTSY_PHONE_NWTINFO_SHORT_ID;
+	aDateTime->iDST = DMMTSY_PHONE_NWTINFO_DST;
+
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyNetworkTimeInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNITZ* aDateTime)
+	{
+	if(!iNotifyNetworkTimeInfoChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkTimeInfoChange called"));
+
+		aDateTime->iNitzFieldsUsed = DMMTSY_PHONE_NWTINFO_NITZ_USED;
+		aDateTime->Set(DMMTSY_PHONE_NWTINFO_YEAR,DMMTSY_PHONE_NWTINFO_MONTH,DMMTSY_PHONE_NWTINFO_DAY,
+			DMMTSY_PHONE_NWTINFO_HOUR, DMMTSY_PHONE_NWTINFO_MINUTE, DMMTSY_PHONE_NWTINFO_SECOND,
+			DMMTSY_PHONE_NWTINFO_MICRO);
+		aDateTime->iTimeZone = DMMTSY_PHONE_NWTINFO_TIMEZONE;
+		aDateTime->iLongNetworkId = DMMTSY_PHONE_NWTINFO_LONG_ID;
+		aDateTime->iShortNetworkId = DMMTSY_PHONE_NWTINFO_SHORT_ID;
+		aDateTime->iDST = DMMTSY_PHONE_NWTINFO_DST;
+
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyNetworkTimeInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkTimeInfoChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+
+TInt CPhoneDMmTsy::GetServiceProviderName(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneServiceProviderNameV2* aName)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetServiceProviderName called"));
+
+	aName->iDisplayReq = DMMTSY_PHONE_DISPREQ;
+	aName->iSPName = DMMTSY_PHONE_SPN_NAME;
+	aName->iPLMNField = DMMTSY_PHONE_PLMN_FIELD;
+
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetServiceProviderNameCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetServiceProviderNameCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetDefaultPrivacy(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePrivacy* aSetting)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetDefaultPrivacy called"));
+
+	*aSetting = DMMTSY_PHONE_PRIVACY_SETTING1;
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetDefaultPrivacy(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePrivacy* aSetting)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetDefaultPrivacy called"));
+
+	if (*aSetting != DMMTSY_PHONE_PRIVACY_SETTING1)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetDefaultPrivacyCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetDefaultPrivacyCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyDefaultPrivacyChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePrivacy* aSetting)
+	{
+	if(!iNotifyDefaultPrivacyChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyDefaultPrivacyChange called"));
+
+		*aSetting = DMMTSY_PHONE_PRIVACY_SETTING2;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyDefaultPrivacyChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyDefaultPrivacyChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCallServiceCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCallServiceCaps called"));
+	*aCaps=DMMTSY_PHONE_CALL_SERVICE_CAPS1;
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCallServiceCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	if (!iNotifyCallServiceCaps++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallServiceCapsChange called"));
+		*aCaps=DMMTSY_PHONE_CALL_SERVICE_CAPS2;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCallServiceCapsChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallServiceCapsChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::ProgramFeatureCodeString(const TTsyReqHandle aTsyReqHandle, 
+											TDesC* aFCString, RMobilePhone::TNetworkServiceAndAction *aFeatureCode)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::ProgramFeatureCodeString called"));
+	if ((aFCString->Compare(DMMTSY_PHONE_FEATURE_CODE) != 0) ||
+	    (aFeatureCode->iService != DMMTSY_PHONE_NETWORK_SERVICE) || 
+		(aFeatureCode->iAction != DMMTSY_PHONE_NETWORK_SERVICE_ACTION))
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::ProgramFeatureCodeStringCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::ProgramFeatureCodeStringCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetFeatureCodeString(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TNetworkServiceAndAction *aFeatureCode, TDes *aFCString)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetFeatureCodeString called"));
+	if	(aFeatureCode->iService!=DMMTSY_PHONE_NETWORK_SERVICE2 || aFeatureCode->iAction!=DMMTSY_PHONE_NETWORK_SERVICE_ACTION2)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		{
+		*aFCString=DMMTSY_PHONE_FEATURE_CODE2;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetFeatureCodeStringCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetFeatureCodeStringCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SendNetworkServiceRequest(const TTsyReqHandle aTsyReqHandle, TDesC* aString)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SendNetworkServiceRequest called"));
+	if (aString->Compare(DMMTSY_PHONE_NETWORK_SERVICE_REQUEST)!=0)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SendNetworkServiceRequestCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SendNetworkServiceRequestCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCallForwardingStatusPhase1(const TTsyReqHandle aTsyReqHandle, 
+												 CRetrieveMobilePhoneCFList::TGetCallForwardingRequest* aReqData, 
+												 TInt* aBufSize)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingStatusPhase1 called"));
+	TInt ret=KErrNone;
+
+	if ( ( (aReqData->iCondition==DMMTSY_PHONE_CF_CONDITION_CFU) &&
+		   (aReqData->iLocation==DMMTSY_PHONE_CF_LOCATION) &&
+		   (aReqData->iServiceGroup==DMMTSY_PHONE_CF_SERVICE_GROUP_ALL) ) ||
+		 ( (aReqData->iCondition==DMMTSY_PHONE_CF_CONDITION_CFU) &&
+		   (aReqData->iServiceGroup==DMMTSY_PHONE_CF_SERVICE_GROUP_FAX) &&
+    	   (aReqData->iLocation==DMMTSY_PHONE_CF_CACHELOCATION) ) )		
+		{
+		TInt leaveCode=KErrNone;
+		TRAP(leaveCode, ret=ProcessGetCallForwardingStatusPhase1L(aTsyReqHandle, aReqData, aBufSize););
+		if (leaveCode != KErrNone)
+			ReqCompleted(aTsyReqHandle,leaveCode);
+		}
+		else
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	return ret;
+	}
+
+TInt CPhoneDMmTsy::ProcessGetCallForwardingStatusPhase1L(const TTsyReqHandle aTsyReqHandle, 
+														 CRetrieveMobilePhoneCFList::TGetCallForwardingRequest* aReqData, 
+														 TInt* aBufSize)
+	{
+	// retrieve call forwarding status of each line from phone, 
+	// store each CF status response as a list entry,
+	// stream the list and then return size of this buffer to client
+
+	CMobilePhoneCFList* list=CMobilePhoneCFList::NewL();
+	CleanupStack::PushL(list);
+
+	RMobilePhone::TMobilePhoneCFInfoEntryV1 entry;
+	RMobilePhone::TMobileService servicegroup = aReqData->iServiceGroup;
+
+	// fill up an example list
+	for (TInt index=0; index < DMMTSY_CF_ENTRY_COUNT; index++)
+		{
+		switch (index)
+			{
+		case 0:
+			entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU;
+			entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_VOICE;
+			entry.iStatus=DMMTSY_PHONE_CF_NOT_ACTIVE;
+			entry.iNumber.iTelNumber=DMMTSY_PHONE_TEL_NUMBER;
+			entry.iTimeout=DMMTSY_PHONE_CF_TIMEOUT;
+			break;
+		case 1:
+			entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU;
+			entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_DATA;
+			entry.iStatus=DMMTSY_PHONE_CF_ACTIVE;
+			entry.iNumber.iTelNumber=DMMTSY_PHONE_TEL_NUMBER;
+			entry.iTimeout=DMMTSY_PHONE_CF_TIMEOUT;
+			break;
+		case 2:
+			entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU;
+			entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_FAX;
+			entry.iStatus=DMMTSY_PHONE_CF_ACTIVE;
+			entry.iNumber.iTelNumber=DMMTSY_PHONE_TEL_NUMBER;
+			entry.iTimeout=DMMTSY_PHONE_CF_TIMEOUT;
+			break;
+		case 3:
+		default:
+			entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU;
+			entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_AUXVOICE;
+			entry.iStatus=DMMTSY_PHONE_CF_UNKNOWN;
+			entry.iTimeout=-1;
+			break;
+			}
+			// Add the entry into the list, at the next empty location
+		if( (servicegroup == DMMTSY_PHONE_CF_SERVICE_GROUP_ALL) || (servicegroup == entry.iServiceGroup) )
+		list->AddEntryL(entry);
+		}
+
+	// Store the streamed list and the client ID
+	CListReadAllAttempt* read=CListReadAllAttempt::NewL(&(aReqData->iClient),aTsyReqHandle);
+	CleanupStack::PushL(read);
+	
+	read->iListBuf = list->StoreLC();
+	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
+
+	iGetCFStatus->AppendL(read);
+	CleanupStack::Pop(); // pop the CListReadAllAttempt
+	
+	// return the CBufBase’s size to client
+	*aBufSize=(read->iListBuf)->Size();
+	
+	// Complete first phase of list retrieval
+	AddDelayedReq(aTsyReqHandle,this);
+	CleanupStack::PopAndDestroy(); // pop&destroy list
+	return KErrNone;
+	}
+
+
+TInt CPhoneDMmTsy::GetCallForwardingStatusPhase2(const TTsyReqHandle aTsyReqHandle, 
+												 RMobilePhone::TClientId* aClient, TDes8* aBuf)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingStatusPhase2 called"));
+	CListReadAllAttempt* read=NULL;
+	// Find the get detected network attempt from this client
+	for (TInt i=0; i<iGetCFStatus->Count(); ++i)
+		{
+		read = iGetCFStatus->At(i);
+		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
+		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
+			{
+			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
+			// Copy the streamed list to the client
+			aBuf->Copy(bufPtr);
+			delete read;
+			iGetCFStatus->Delete(i);
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			return KErrNone;
+			}
+		}
+	// Should handle error case of not finding the matching client from read all phase 1
+	return KErrNotFound;
+	}
+
+TInt CPhoneDMmTsy::GetCallForwardingStatusCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	// Remove the read all attempt from iGetCFStatus
+	CListReadAllAttempt* read=NULL;
+	for (TInt i=0; i<iGetCFStatus->Count(); ++i)
+		{
+		read = iGetCFStatus->At(i);
+		if (read->iReqHandle == aTsyReqHandle)
+			{
+			delete read;
+			iGetCFStatus->Delete(i);
+			break;
+			}
+		}
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCallForwardingStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCFCondition* aCondition)
+	{
+	if(!iNotifyCallForwardingStatusChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingStatusChange called"));
+		*aCondition=DMMTSY_PHONE_CF_CONDITION_ALL;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCallForwardingStatusChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingStatusChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetCallForwardingStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCFCondition* aCondition, RMobilePhone::TMobilePhoneCFChangeV1* aInfo)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetCallForwardingStatus called"));
+	if ((*aCondition!=DMMTSY_PHONE_CF_CONDITION_CFNRy) ||
+		(aInfo->iServiceGroup!=DMMTSY_PHONE_CF_SERVICE_GROUP_VOICE) ||
+		(aInfo->iAction!=DMMTSY_PHONE_CF_SETTING) ||
+		(aInfo->iNumber.iTelNumber!=DMMTSY_PHONE_TEL_NUMBER) ||
+		(aInfo->iTimeout!=DMMTSY_PHONE_CF_TIMEOUT))
+
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetCallForwardingStatusCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetCallForwardingStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCallForwardingActive(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobileService* aServiceGroup, RMobilePhone::TMobilePhoneCFActive* aActive)
+	{
+	if(!iNotifyCallForwardingActive++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingActive called"));
+		*aActive=DMMTSY_PHONE_CF_ACTIVE_TYPE;
+		*aServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_FAX;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCallForwardingActiveCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingActiveCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetIdentityServiceStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TIdServiceAndLocation *aInfo,
+											RMobilePhone::TMobilePhoneIdServiceStatus* aStatus)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetIdentityServiceStatus called"));
+	if (aInfo->iLocation != DMMTSY_PHONE_ID_LOCATION || aInfo->iService != DMMTSY_PHONE_ID_SERVICE)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		{
+		*aStatus = DMMTSY_PHONE_ID_STATUS;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetIdentityServiceStatusCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetIdentityServiceStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCallBarringPhase1(const TTsyReqHandle aTsyReqHandle, 
+												 CRetrieveMobilePhoneCBList::TGetCallBarringRequest* aReqData, 
+												 TInt* aBufSize)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCallBarringPhase1 called"));
+	TInt ret=KErrNone;
+
+	if ((aReqData->iCondition!=DMMTSY_PHONE_CB_CONDITION) ||
+		(aReqData->iLocation!=DMMTSY_PHONE_CB_LOCATION))
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		{
+		TInt leaveCode=KErrNone;
+		TRAP(leaveCode, ret=ProcessGetCallBarringPhase1L(aTsyReqHandle, aReqData, aBufSize));
+		if (leaveCode != KErrNone)
+			ReqCompleted(aTsyReqHandle,leaveCode);
+		}
+	return ret;
+	}
+
+TInt CPhoneDMmTsy::ProcessGetCallBarringPhase1L(const TTsyReqHandle aTsyReqHandle, 
+														 CRetrieveMobilePhoneCBList::TGetCallBarringRequest* aReqData,
+														 TInt* aBufSize)
+	{
+	// retrieve call forwarding status of each line from phone, 
+	// store each CB status response as a list entry,
+	// stream the list and then return size of this buffer to client
+
+	CMobilePhoneCBList* list=CMobilePhoneCBList::NewL();
+	CleanupStack::PushL(list);
+
+	RMobilePhone::TMobilePhoneCBInfoEntryV1 entry;
+
+	// fill up an example list
+	for (TInt index=0; index < DMMTSY_CALL_BARRING_COUNT; index++)
+		{
+		switch (index)
+			{
+		case 0:
+			entry.iCondition = DMMTSY_PHONE_CB_CONDITION0;
+			entry.iServiceGroup = DMMTSY_PHONE_CB_SG0;
+			entry.iStatus = DMMTSY_PHONE_CB_STATUS0;
+			break;
+		case 1:
+			entry.iCondition = DMMTSY_PHONE_CB_CONDITION1;
+			entry.iServiceGroup = DMMTSY_PHONE_CB_SG1;
+			entry.iStatus = DMMTSY_PHONE_CB_STATUS1;
+			break;
+		case 2:
+			entry.iCondition = DMMTSY_PHONE_CB_CONDITION2;
+			entry.iServiceGroup = DMMTSY_PHONE_CB_SG2;
+			entry.iStatus = DMMTSY_PHONE_CB_STATUS2;
+			break;
+		case 3:
+		default:
+			entry.iCondition = DMMTSY_PHONE_CB_CONDITION3;
+			entry.iServiceGroup = DMMTSY_PHONE_CB_SG3;
+			entry.iStatus = DMMTSY_PHONE_CB_STATUS3;
+			break;
+			}
+			// Add the entry into the list, at the next empty location
+			list->AddEntryL(entry);
+		}
+
+	// Store the streamed list and the client ID
+	CListReadAllAttempt* read=CListReadAllAttempt::NewL(&(aReqData->iClient),aTsyReqHandle);
+	CleanupStack::PushL(read);
+	
+	read->iListBuf = list->StoreLC();
+	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
+	
+	iGetCB->AppendL(read);
+	CleanupStack::Pop(); // pop the CListReadAllAttempt
+	
+	// return the CBufBase’s size to client
+	*aBufSize=(read->iListBuf)->Size();
+	
+	// Complete first phase of list retrieval
+	AddDelayedReq(aTsyReqHandle,this);
+	CleanupStack::PopAndDestroy(); // pop&destroy list
+	return KErrNone;
+	}
+
+
+TInt CPhoneDMmTsy::GetCallBarringPhase2(const TTsyReqHandle aTsyReqHandle, 
+												 RMobilePhone::TClientId* aClient, TDes8* aBuf)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCallBarringPhase2 called"));
+	CListReadAllAttempt* read=NULL;
+	// Find the get call barring attempt from this client
+	for (TInt i=0; i<iGetCB->Count(); ++i)
+		{
+		read = iGetCB->At(i);
+		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
+		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
+			{
+			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
+			// Copy the streamed list to the client
+			aBuf->Copy(bufPtr);
+			delete read;
+			iGetCB->Delete(i);
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			return KErrNone;
+			}
+		}
+	// Should handle error case of not finding the matching client from read all phase 1
+	return KErrNotFound;
+	}
+	
+TInt CPhoneDMmTsy::GetCallBarringCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCallBarringCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	// Remove the read all attempt from iGetCB
+	CListReadAllAttempt* read=NULL;
+	for (TInt i=0; i<iGetCB->Count(); ++i)
+		{
+		read = iGetCB->At(i);
+		if (read->iReqHandle == aTsyReqHandle)
+			{
+			delete read;
+			iGetCB->Delete(i);
+			break;
+			}
+		}
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetCallBarringStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCBCondition *aCondition, RMobilePhone::TMobilePhoneCBChangeV1* aInfo)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringStatus called"));
+	if (*aCondition != DMMTSY_PHONE_CB_CONDITION ||  aInfo->iAction != DMMTSY_PHONE_CB_ACTION ||
+		(aInfo->iPassword.Compare(DMMTSY_PHONE_CB_PASSWORD) != 0))
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetCallBarringStatusCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCallBarringStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCBCondition* aCondition)
+	{
+	if (!iNotifyCallBarringStatusChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallBarringStatusChange called"));
+		*aCondition = DMMTSY_PHONE_CB_CONDITION;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCallBarringStatusChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallBarringStatusChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::SetCallBarringPassword(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePasswordChangeV1* aPassword)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringPassword called"));
+	if ((aPassword->iOldPassword.Compare(DMMTSY_PHONE_CB_PASSWORD) != 0) ||
+		(aPassword->iNewPassword.Compare(DMMTSY_PHONE_CB_NEW_PASSWORD) != 0))
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetCallBarringPasswordCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringPasswordCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetSSPassword(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePasswordChangeV2* aPassword, TInt* aService)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetSSPassword called"));
+	if ((aPassword->iOldPassword.Compare(DMMTSY_PHONE_CB_PASSWORD) != 0) ||
+		(aPassword->iNewPassword.Compare(DMMTSY_PHONE_CB_NEW_PASSWORD) != 0) ||
+		(aPassword->iVerifiedPassword.Compare(DMMTSY_PHONE_CB_VERIFIED_PASSWORD) != 0) &&
+		aService != DMMTSY_PHONE_CB_ALL_SERVICES )
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetSSPasswordCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetSSPasswordCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+
+
+TInt CPhoneDMmTsy::GetCallWaitingPhase1(const TTsyReqHandle aTsyReqHandle, 
+												 CRetrieveMobilePhoneCWList::TGetCallWaitingRequest* aReqData, 
+												 TInt* aBufSize)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingPhase1 called"));
+	TInt ret=KErrNone;
+
+	if (aReqData->iLocation!=DMMTSY_PHONE_CW_LOCATION)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		{
+		TInt leaveCode=KErrNone;
+		TRAP(leaveCode, ret=ProcessGetCallWaitingPhase1L(aTsyReqHandle, aReqData, aBufSize));
+		if (leaveCode != KErrNone)
+			ReqCompleted(aTsyReqHandle,leaveCode);
+		}
+	return ret;
+	}
+
+TInt CPhoneDMmTsy::ProcessGetCallWaitingPhase1L(const TTsyReqHandle aTsyReqHandle, 
+														 CRetrieveMobilePhoneCWList::TGetCallWaitingRequest* aReqData, 
+														 TInt* aBufSize)
+	{
+	// retrieve call forwarding status of each line from phone,
+	// store each CW status response as a list entry,
+	// stream the list and then return size of this buffer to client
+
+	CMobilePhoneCWList* list=CMobilePhoneCWList::NewL();
+	CleanupStack::PushL(list);
+
+	RMobilePhone::TMobilePhoneCWInfoEntryV1 entry;
+
+	// fill up an example list
+	for (TInt index=0; index < DMMTSY_CW_ENTRY_COUNT; index++)
+		{
+		switch (index)
+			{
+		case 0:
+			entry.iServiceGroup = DMMTSY_PHONE_CW_SG0;
+			entry.iStatus = DMMTSY_PHONE_CW_STATUS0;
+			break;
+		case 1:
+			entry.iServiceGroup = DMMTSY_PHONE_CW_SG1;
+			entry.iStatus = DMMTSY_PHONE_CW_STATUS1;
+			break;
+		case 2:
+			entry.iServiceGroup = DMMTSY_PHONE_CW_SG2;
+			entry.iStatus = DMMTSY_PHONE_CW_STATUS2;
+			break;
+		case 3:
+		default:
+			entry.iServiceGroup = DMMTSY_PHONE_CW_SG3;
+			entry.iStatus = DMMTSY_PHONE_CW_STATUS3;
+			break;
+			}
+			// Add the entry into the list, at the next empty location
+			list->AddEntryL(entry);
+		}
+
+	// Store the streamed list and the client ID
+	CListReadAllAttempt* read=CListReadAllAttempt::NewL(&(aReqData->iClient),aTsyReqHandle);
+	CleanupStack::PushL(read);
+	
+	read->iListBuf = list->StoreLC();
+	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
+	
+	iGetCWStatus->AppendL(read);
+	CleanupStack::Pop(); // pop the CListReadAllAttempt
+	
+	// return the CBufBase’s size to client
+	*aBufSize=(read->iListBuf)->Size();
+	
+	// Complete first phase of list retrieval
+	AddDelayedReq(aTsyReqHandle,this);
+	CleanupStack::PopAndDestroy(); // pop&destroy list
+	return KErrNone;
+	}
+
+
+TInt CPhoneDMmTsy::GetCallWaitingPhase2(const TTsyReqHandle aTsyReqHandle, 
+												 RMobilePhone::TClientId* aClient, TDes8* aBuf)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingPhase2 called"));
+	CListReadAllAttempt* read=NULL;
+	// Find the get call waiting attempt from this client
+	for (TInt i=0; i<iGetCWStatus->Count(); ++i)
+		{
+		read = iGetCWStatus->At(i);
+		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
+		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
+			{
+			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
+			// Copy the streamed list to the client
+			aBuf->Copy(bufPtr);
+			delete read;
+			iGetCWStatus->Delete(i);
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			return KErrNone;
+			}
+		}
+	// Should handle error case of not finding the matching client from read all phase 1
+	return KErrNotFound;
+	}
+
+TInt CPhoneDMmTsy::GetCallWaitingCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	// Remove the read all attempt from iGetCWStatus
+	CListReadAllAttempt* read=NULL;
+	for (TInt i=0; i<iGetCWStatus->Count(); ++i)
+		{
+		read = iGetCWStatus->At(i);
+		if (read->iReqHandle == aTsyReqHandle)
+			{
+			delete read;
+			iGetCWStatus->Delete(i);
+			break;
+			}
+		}
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+
+TInt CPhoneDMmTsy::SetCallWaitingStatus(const TTsyReqHandle aTsyReqHandle,
+										RMobilePhone::TMobileService* aServiceGroup,
+										RMobilePhone::TMobilePhoneServiceAction *aAction)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetCallWaitingStatus called"));
+	if ((*aAction != DMMTSY_PHONE_CW_SET_STATUS_ACTION) ||
+		(*aServiceGroup != DMMTSY_PHONE_CW_SG0))
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetCallWaitingStatusCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetCallWaitingStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCallWaitingStatusChange(const TTsyReqHandle aTsyReqHandle, TDes8* aCWStatus)
+	{
+	if (!iNotifyCallWaitingStatusChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallWaitingStatusChange called"));
+		RMobilePhone::TMobilePhoneCWInfoEntryV1Pckg *cwInfoPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCWInfoEntryV1Pckg*,aCWStatus);
+		RMobilePhone::TMobilePhoneCWInfoEntryV1 &cwInfo = (*cwInfoPckg)();
+		cwInfo.iServiceGroup = DMMTSY_PHONE_CW_SG0;
+		cwInfo.iStatus = DMMTSY_PHONE_CW_STATUS0;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCallWaitingStatusChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallWaitingStatusChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCCBSStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCCBSStatus* aCcbsStatus, RMobilePhone::TMobileInfoLocation* aLocation)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCCBSStatus called"));
+	if (*aLocation != DMMTSY_PHONE_CCC_LOCATION)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		{
+		*aCcbsStatus = DMMTSY_PHONE_CCC_STATUS;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCCBSStatusCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCCBSStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCCBSStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCCBSStatus* aCcbsStatus)
+	{
+	if (!iNotifyCCBSStatusChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSStatusChange called"));
+		*aCcbsStatus = DMMTSY_PHONE_CCC_STATUS;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCCBSStatusChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSStatusChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCCBSRecall(const TTsyReqHandle aTsyReqHandle, TDes8* aCCBSEntry)
+	{
+//	_asm{int 3};
+	if (!iNotifyCCBSRecall++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSRecall called"));
+		
+		RMobilePhone::TMobilePhoneCCBSEntryV1Pckg* ccbsPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCCBSEntryV1Pckg*,aCCBSEntry);
+		RMobilePhone::TMobilePhoneCCBSEntryV1& ccbs = (*ccbsPckg)();
+
+		ccbs.iCcbsIndex=DMMTSY_PHONE_CCC_INDEX1;
+		ccbs.iServiceGroup=DMMTSY_PHONE_CCC_SERVICE_GROUP0;
+		ccbs.iDestination.iNumberPlan=DMMTSY_PHONE_CCC_DESTINATION_NP0;
+		ccbs.iDestination.iTelNumber= DMMTSY_PHONE_CCC_DESTINATION_NUM0;
+		ccbs.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON0;
+		
+		if(ccbs.ExtensionId()==KETelExtMultimodeV2)
+			{
+			RMobilePhone::TMobilePhoneCCBSEntryV2Pckg* ccbsPckgV2 = STATIC_CAST(RMobilePhone::TMobilePhoneCCBSEntryV2Pckg*,aCCBSEntry);
+			RMobilePhone::TMobilePhoneCCBSEntryV2& ccbs2 = (*ccbsPckgV2)();
+			
+			// Set that the network has informed us that the CCBS request can proceed
+			ccbs2.iEvent = DMMTSY_PHONE_CCC_DESTINATION_CCBS_RECEIVED;
+			//reset for multiple complete V1
+			iNotifyCCBSRecall = 0;
+			}
+
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	else
+		{
+			// reset for the V2 test 
+			iNotifyCCBSRecall=0;
+		}
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::NotifyCCBSRecallCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSRecallCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::AcceptCCBSRecall(const TTsyReqHandle aTsyReqHandle, TInt* aIndex, TDes* aCallName)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::AcceptCCBSRecall called"));
+	if(*aIndex!=DMMTSY_PHONE_CCC_INDEX1)
+		return KErrCorrupt;
+	*aCallName = DMMTSY_PHONE_CCC_CALLNAME0;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::AcceptCCBSRecallCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::AcceptCCBSRecallCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::RefuseCCBSRecall(const TTsyReqHandle aTsyReqHandle, TInt* aIndex)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::RefuseCCBSRecall called"));
+	if(*aIndex!=DMMTSY_PHONE_CCC_INDEX1)
+		return KErrCorrupt;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+
+TInt CPhoneDMmTsy::DeactivateCCBS(const TTsyReqHandle aTsyReqHandle, TInt* aIndex)
+	{
+	if (*aIndex== -1)		//-1 means deactivate all
+		return KErrEtelCallNotActive;
+	if(*aIndex!=DMMTSY_PHONE_CCC_INDEX1) 
+		return KErrCorrupt;
+		
+	LOGTEXT(_L8("CPhoneDMmTsy::DeactivateAllCCBS called"));
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::DeactivateCCBSCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::DeactivateAllCCBSCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCallCompletionPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aReqData, TInt* aBufSize)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCallCompletionPhase1 called"));
+	TInt ret = KErrNone;
+
+	TRAPD(leaveCode, ret=ProcessGetCallCompletionPhase1L(aTsyReqHandle, aReqData, aBufSize));
+	if (leaveCode != KErrNone)
+		ReqCompleted(aTsyReqHandle,leaveCode);
+	return ret;	
+	}
+
+TInt CPhoneDMmTsy::ProcessGetCallCompletionPhase1L(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClientId, TInt* aBufSize)
+	{
+	CMobilePhoneCcbsList* list=CMobilePhoneCcbsList::NewL();
+	CleanupStack::PushL(list);
+
+	RMobilePhone::TMobilePhoneCCBSEntryV1 entry;
+
+	// fill up an example list
+	for (TInt index=0; index < DMMTSY_PHONE_CCC_ENTRY_COUNT; index++)
+		{
+		switch (index)
+			{
+		case 0:
+			entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP0;
+			entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX0;
+			entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON0;
+			entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP0;
+			entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM0;
+			break;
+		case 1:
+			entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP1;
+			entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX1;
+			entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON1;
+			entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP1;
+			entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM1;
+			break;
+		case 2:
+			entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP2;
+			entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX2;
+			entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON2;
+			entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP2;
+			entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM2;
+			break;
+		case 3:
+			entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP3;
+			entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX3;
+			entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON3;
+			entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP3;
+			entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM3;
+		default:
+			break;
+			}
+			// Add the entry into the list, at the next empty location
+			list->AddEntryL(entry);
+		}
+
+	// Store the streamed list and the client ID
+	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClientId,aTsyReqHandle);
+	CleanupStack::PushL(read);
+
+	read->iListBuf = list->StoreLC();
+	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
+	
+	iGetCcbsRequests->AppendL(read);
+	CleanupStack::Pop(); // pop the CListReadAllAttempt
+	
+	// return the CBufBase’s size to client
+	*aBufSize=(read->iListBuf)->Size();
+	
+	// Complete first phase of list retrieval
+	AddDelayedReq(aTsyReqHandle,this);
+	CleanupStack::PopAndDestroy(); // pop&destroy list
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCallCompletionPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCallCompletionPhase2 called"));
+	CListReadAllAttempt* read=NULL;
+	
+	for (TInt i=0; i<iGetCcbsRequests->Count(); ++i)
+		{
+		read = iGetCcbsRequests->At(i);
+		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
+		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
+			{
+			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
+			// Copy the streamed list to the client
+			aBuf->Copy(bufPtr);
+			delete read;
+			iGetCcbsRequests->Delete(i);
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			return KErrNone;
+			}
+		}
+	// Should handle error case of not finding the matching client from read all phase 1
+	return KErrNotFound;
+	}
+
+TInt CPhoneDMmTsy::GetCallCompletionCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	// Remove the read all attempt from iGetCcbsRequests
+	CListReadAllAttempt* read=NULL;
+	for (TInt i=0; i<iGetCcbsRequests->Count(); ++i)
+		{
+		read = iGetCcbsRequests->At(i);
+		if (read->iReqHandle == aTsyReqHandle)
+			{
+			delete read;
+			iGetCcbsRequests->Delete(i);
+			break;
+			}
+		}
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetAlternatingCallCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetAlternatingCallCaps called"));
+
+	*aCaps = DMMTSY_PHONE_ALTERNATING_CALL_CAPS;
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyAlternatingCallCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	if (!iNotifyAlternatingCallCapsChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallCapsChange called"));
+		*aCaps = DMMTSY_PHONE_ALTERNATING_CALL_CAPS;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyAlternatingCallCapsChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallCapsChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetAlternatingCallMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneAlternatingCallMode* aMode, RMobilePhone::TMobileService* aFirstService)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetAlternatingCallMode called"));
+	*aMode = DMMTSY_PHONE_ALTERNATING_CALL_MODE;
+	*aFirstService = DMMTSY_PHONE_ALTERNATING_CALL_SERVICE;
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetAlternatingCallMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneAlternatingCallMode* aMode, RMobilePhone::TMobileService* aFirstService)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetAlternatingCallMode called"));
+	if (*aMode != DMMTSY_PHONE_ALTERNATING_CALL_MODE || *aFirstService != DMMTSY_PHONE_ALTERNATING_CALL_SERVICE)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetAlternatingCallModeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetAlternatingCallModeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyAlternatingCallModeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneAlternatingCallMode* aMode,RMobilePhone::TMobileService* aFirstService)
+	{
+	if (!iNotifyAlternatingCallModeChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallModeChange called"));
+		*aMode = DMMTSY_PHONE_ALTERNATING_CALL_MODE;
+		*aFirstService = DMMTSY_PHONE_ALTERNATING_CALL_SERVICE;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyAlternatingCallModeChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallModeChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetALSLine(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneALSLine* aALSLine)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetALSLine called"));
+	*aALSLine = DMMTSY_PHONE_ALS_LINE;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetALSLine(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneALSLine* aALSLine)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetALSLine called"));
+	if (*aALSLine != DMMTSY_PHONE_ALS_LINE)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetALSLineCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetALSLineCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+
+TInt CPhoneDMmTsy::NotifyALSLineChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneALSLine* aALSLine)
+	{
+	if (!iNotifyALSLineChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyALSLineChange called"));
+		*aALSLine = DMMTSY_PHONE_ALS_LINE;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyALSLineChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyALSLineChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCostCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCostCaps called"));
+	*aCaps = DMMTSY_PHONE_COST_CAPS;	
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCostCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	if (!iNotifyCostCapsChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostCapsChange called"));
+		*aCaps = DMMTSY_PHONE_COST_CAPS;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCostCapsChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostCapsChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::ClearCostMeter(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCostMeters* aMeters)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::ClearCostMeter called"));
+	if (*aMeters != DMMTSY_PHONE_COST_METER)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::ClearCostMeterCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::ClearCostMeterCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetMaxCostMeter(const TTsyReqHandle aTsyReqHandle, TUint *aUnits)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetMaxCostMeter called"));
+	if (*aUnits != DMMTSY_PHONE_COST_UNITS)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetMaxCostMeterCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetMaxCostMeterCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetPuct(const TTsyReqHandle aTsyReqHandle, TDes8* aPuct)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetPuct called"));
+	RMobilePhone::TMobilePhonePuctV1Pckg* puctPckg = STATIC_CAST(RMobilePhone::TMobilePhonePuctV1Pckg*,aPuct);
+	RMobilePhone::TMobilePhonePuctV1& puct = (*puctPckg)();
+	
+	if ((puct.iCurrencyName.Compare(DMMTSY_PHONE_COST_PUCT_CNAME) != 0) || 
+		(puct.iPricePerUnit != DMMTSY_PHONE_COST_PUCT_PPU))
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetPuctCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetPuctCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCostInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aCostInfo)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCostInfo called"));
+	RMobilePhone::TMobilePhoneCostInfoV1Pckg* ciPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCostInfoV1Pckg*,aCostInfo);
+	RMobilePhone::TMobilePhoneCostInfoV1& ci = (*ciPckg)();
+
+	ci.iService = DMMTSY_PHONE_COST_SERVICE;
+	ci.iCCM = DMMTSY_PHONE_COST_CCM;
+	ci.iACM = DMMTSY_PHONE_COST_ACM;
+	ci.iACMmax = DMMTSY_PHONE_COST_ACMMAX;
+	ci.iPuct.iCurrencyName = DMMTSY_PHONE_COST_PUCT_CNAME;
+	ci.iPuct.iPricePerUnit = DMMTSY_PHONE_COST_PUCT_PPU;
+
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::GetCostInfoCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCostInfoCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::NotifyCostInfoChange(const TTsyReqHandle aTsyReqHandle, TDes8* aCostInfo)
+	{
+	if (!iNotifyCostInfoChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostInfoChange called"));
+		RMobilePhone::TMobilePhoneCostInfoV1Pckg* ciPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCostInfoV1Pckg*,aCostInfo);
+		RMobilePhone::TMobilePhoneCostInfoV1& ci = (*ciPckg)();
+	
+		ci.iService = DMMTSY_PHONE_COST_SERVICE;
+		ci.iCCM = DMMTSY_PHONE_COST_CCM;
+		ci.iACM = DMMTSY_PHONE_COST_ACM;
+		ci.iACMmax = DMMTSY_PHONE_COST_ACMMAX;
+		ci.iPuct.iCurrencyName = DMMTSY_PHONE_COST_PUCT_CNAME;
+		ci.iPuct.iPricePerUnit = DMMTSY_PHONE_COST_PUCT_PPU;
+
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCostInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostInfoChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::GetSecurityCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetSecurityCaps called"));
+	*aCaps = DMMTSY_PHONE_SECURITY_CAPS;
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifySecurityCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps)
+	{
+	if (!iNotifySecurityCapsChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifySecurityCapsChange called"));
+		*aCaps = DMMTSY_PHONE_SECURITY_CAPS;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifySecurityCapsChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifySecurityCapsChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::GetLockInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneLock *aLock, TDes8* aLockInfo)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetLockInfo called"));
+	if (*aLock != DMMTSY_PHONE_SECURITY_LOCK)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		{
+		RMobilePhone::TMobilePhoneLockInfoV1Pckg* liPckg = STATIC_CAST(RMobilePhone::TMobilePhoneLockInfoV1Pckg*,aLockInfo);
+		RMobilePhone::TMobilePhoneLockInfoV1& li = (*liPckg)();
+		li.iStatus = DMMTSY_PHONE_SECURITY_STATUS;
+		li.iSetting = DMMTSY_PHONE_SECURITY_SETTING;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetLockInfoCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetLockInfoCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::NotifyLockInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneLock* aLock, TDes8* aLockInfo)
+	{
+	if (!iNotifyLockInfoChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyLockInfoChange called"));
+		RMobilePhone::TMobilePhoneLockInfoV1Pckg* liPckg = STATIC_CAST(RMobilePhone::TMobilePhoneLockInfoV1Pckg*,aLockInfo);
+		RMobilePhone::TMobilePhoneLockInfoV1& li = (*liPckg)();
+		li.iStatus = DMMTSY_PHONE_SECURITY_STATUS;
+		li.iSetting = DMMTSY_PHONE_SECURITY_SETTING;
+		*aLock = DMMTSY_PHONE_SECURITY_LOCK;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyLockInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyLockInfoChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+ 
+TInt CPhoneDMmTsy::SetLockSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneLock *aLock, RMobilePhone::TMobilePhoneLockSetting *aLockSetting)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetLockSetting called"));
+	if (*aLock != DMMTSY_PHONE_SECURITY_SC_LOCK || 
+		*aLockSetting != DMMTSY_PHONE_SECURITY_SC_SETTING)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetLockSettingCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetLockSettingCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::ChangeSecurityCode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aType, RMobilePhone::TMobilePhonePasswordChangeV1 *aChange)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::ChangeSecurityCode called"));
+	if ((*aType != DMMTSY_PHONE_SECURITY_CODE) || 
+		(aChange->iOldPassword.Compare(DMMTSY_PHONE_SECURITY_OLD_PASS) != 0) ||
+		(aChange->iNewPassword.Compare(DMMTSY_PHONE_SECURITY_NEW_PASS) != 0)) 
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+		
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::ChangeSecurityCodeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::ChangeSecurityCodeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::GetSecurityCodeInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aSecurityCode, TDes8* aSecurityCodeInfo)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetSecurityCodeInfo called"));
+	if (*aSecurityCode != DMMTSY_PHONE_SECURITY_CODE)
+		ReqCompleted(aTsyReqHandle,KErrNotFound);
+	else
+		{
+		RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg* infoPckg = STATIC_CAST(RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg*,aSecurityCodeInfo);
+		RMobilePhone::TMobilePhoneSecurityCodeInfoV5& info = (*infoPckg)();
+		info.iRemainingEntryAttempts = DMMTSY_PHONE_SECURITY_REMAINING_ATTEMPTS;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetSecurityCodeInfoCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetSecurityCodeInfoCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::NotifySecurityCodeInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode* aSecurityCode,TDes8* aSecurityCodeInfo)
+	{
+	if (!iNotifySecurityCodeInfoChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::SecurityCodeInfoChange called"));
+		RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg* infoPckg = STATIC_CAST(RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg*,aSecurityCodeInfo);
+		RMobilePhone::TMobilePhoneSecurityCodeInfoV5& info = (*infoPckg)();
+		info.iRemainingEntryAttempts = DMMTSY_PHONE_SECURITY_REMAINING_ATTEMPTS;
+		*aSecurityCode = DMMTSY_PHONE_SECURITY_CODE;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifySecurityCodeInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifySecurityCodeInfoChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+	
+TInt CPhoneDMmTsy::NotifyOnSecurityEvent(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityEvent* aEvent)
+	{
+	if (!iNotifyOnSecurityEvent++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::Notify On Security Event called"));
+		*aEvent = DMMTSY_PHONE_SECURITY_EVENT;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyOnSecurityEventCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyOnSecurityEventCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::VerifySecurityCode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aType, RMobilePhone::TCodeAndUnblockCode* aData)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::Verify Security Code called"));
+
+	if ((*aType != DMMTSY_PHONE_SECURITY_CODE) ||
+		(aData->iCode.Compare(DMMTSY_PHONE_SECURITY_OLD_PASS) != 0) ||
+		(aData->iUnblockCode.Compare(DMMTSY_PHONE_SECURITY_NEW_PASS) != 0))
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::VerifySecurityCodeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::VerifySecurityCodeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::AbortSecurityCode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aType)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::AbortSecurityCode called"));
+	if (*aType != DMMTSY_PHONE_SECURITY_CODE)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+
+
+TInt CPhoneDMmTsy::NotifyMessageWaiting(const TTsyReqHandle aTsyReqHandle, TInt* aCount)
+	{
+	if (!iNotifyMessageWaiting++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyMessageWaiting called"));
+		*aCount = DMMTSY_PHONE_MW_COUNT;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyMessageWaitingCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMessageWaitingCanel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::GetIccMessageWaitingIndicators(const TTsyReqHandle aTsyReqHandle, TDes8* aMsgIndicators)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetIccMessageWaitingIndicators called"));
+	RMobilePhone::TMobilePhoneMessageWaitingV1Pckg* indPckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV1Pckg*,aMsgIndicators);
+	RMobilePhone::TMobilePhoneMessageWaitingV1& indicators = (*indPckg)();
+	indicators.iDisplayStatus=DMMTSY_PHONE_DISPLAYSTATUS; 
+	indicators.iVoiceMsgs=DMMTSY_PHONE_VOICEMSGS;
+	indicators.iAuxVoiceMsgs=DMMTSY_PHONE_AUXVOICEMSGS;
+	indicators.iDataMsgs=DMMTSY_PHONE_DATAMSGS;
+	indicators.iFaxMsgs=DMMTSY_PHONE_FAXMSGS;
+	indicators.iEmailMsgs=DMMTSY_PHONE_EMAILMSGS;
+	indicators.iOtherMsgs=DMMTSY_PHONE_OTHERMSGS;	
+	
+	if(indicators.ExtensionId() == KEtelExtMultimodeV8 )
+		{
+		RMobilePhone::TMobilePhoneMessageWaitingV8Pckg* indV8Pckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV8Pckg*,aMsgIndicators);
+		RMobilePhone::TMobilePhoneMessageWaitingV8& indicatorsV8 = (*indV8Pckg)();
+		indicatorsV8.iVideoMsgs=DMMTSY_PHONE_VIDEOMSGS1;	
+		}
+	
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetIccMessageWaitingIndicatorsCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetIccMessageWaitingIndicators called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::SetIccMessageWaitingIndicators(const TTsyReqHandle aTsyReqHandle, TDes8* aMsgIndicators)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetIccMessageWaitingIndicators called"));
+	RMobilePhone::TMobilePhoneMessageWaitingV1Pckg* indPckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV1Pckg*,aMsgIndicators);
+	RMobilePhone::TMobilePhoneMessageWaitingV1& indicators = (*indPckg)();
+	if ((indicators.iDisplayStatus!=DMMTSY_PHONE_DISPLAYSTATUS) || 
+			(indicators.iVoiceMsgs != DMMTSY_PHONE_VOICEMSGS2) ||
+			(indicators.iAuxVoiceMsgs != DMMTSY_PHONE_AUXVOICEMSGS2) ||
+			(indicators.iDataMsgs != DMMTSY_PHONE_DATAMSGS2) ||
+			(indicators.iFaxMsgs != DMMTSY_PHONE_FAXMSGS2) ||
+			(indicators.iEmailMsgs != DMMTSY_PHONE_EMAILMSGS2) ||
+			(indicators.iOtherMsgs != DMMTSY_PHONE_OTHERMSGS2))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	
+	if(indicators.ExtensionId() == KEtelExtMultimodeV8 ) 
+ 		{
+ 		RMobilePhone::TMobilePhoneMessageWaitingV8Pckg* indV8Pckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV8Pckg*,aMsgIndicators);
+		RMobilePhone::TMobilePhoneMessageWaitingV8& indicatorsV8 = (*indV8Pckg)();
+		if (indicatorsV8.iVideoMsgs != DMMTSY_PHONE_VIDEOMSGS2)
+			{
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);
+			}
+		}
+
+	AddDelayedReq(aTsyReqHandle,this);			
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetIccMessageWaitingIndicatorsCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetIccMessageWaitingIndicators called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChange(const TTsyReqHandle aTsyReqHandle, TDes8* aMsgIndicators)
+	{
+	if (!iNotifyIccMessageWaitingChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChange called"));
+		RMobilePhone::TMobilePhoneMessageWaitingV1Pckg* indPckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV1Pckg*,aMsgIndicators);
+		RMobilePhone::TMobilePhoneMessageWaitingV1& indicators = (*indPckg)();
+		
+		indicators.iDisplayStatus=DMMTSY_PHONE_DISPLAYSTATUS; 
+		indicators.iVoiceMsgs=DMMTSY_PHONE_VOICEMSGS2;
+		indicators.iAuxVoiceMsgs=DMMTSY_PHONE_AUXVOICEMSGS2;
+		indicators.iDataMsgs=DMMTSY_PHONE_DATAMSGS2;
+		indicators.iFaxMsgs=DMMTSY_PHONE_FAXMSGS2;
+		indicators.iEmailMsgs=DMMTSY_PHONE_EMAILMSGS2;
+		indicators.iOtherMsgs=DMMTSY_PHONE_OTHERMSGS2;
+		
+		if(indicators.ExtensionId() == KEtelExtMultimodeV8)
+			{
+			RMobilePhone::TMobilePhoneMessageWaitingV8Pckg* indV8Pckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV8Pckg*,aMsgIndicators);
+			RMobilePhone::TMobilePhoneMessageWaitingV8& indicatorsV8 = (*indV8Pckg)();
+			indicatorsV8.iVideoMsgs=DMMTSY_PHONE_VIDEOMSGS2;
+			iNotifyIccMessageWaitingChange = 0;	
+			} 
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	else
+		{
+		//reset for multiple complete test
+		iNotifyIccMessageWaitingChange = 0;		
+		}	
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChange called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::GetFdnStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneFdnStatus* aFdnStatus)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetFdnStatus called"));
+	*aFdnStatus = DMMTSY_PHONE_FDN_STATUS;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetFdnStatusCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetFdnStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::SetFdnSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneFdnSetting *aFdnSetting)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetFdnSetting called"));
+	if (*aFdnSetting != DMMTSY_PHONE_FDN_SETTING)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);	
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetFdnSettingCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetFdnSettingCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::NotifyFdnStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneFdnStatus* aFdnStatus)
+	{
+	if (!iNotifyFdnStatusChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyFdnStatusChange called"));
+		*aFdnStatus = DMMTSY_PHONE_FDN_STATUS;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyFdnStatusChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyFdnStatusChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::GetMulticallParams(const TTsyReqHandle aTsyReqHandle, TDes8* aMulticallParams)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetMulticallParams called"));
+
+	RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *multicallParamsPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *, aMulticallParams);
+	RMobilePhone::TMobilePhoneMulticallSettingsV1     &multicallParams     = (*multicallParamsPckg)();
+
+	multicallParams.iUserMaxBearers              = DMMTSY_PHONE_USER_MAX_BEARERS1;
+	multicallParams.iServiceProviderMaxBearers  = DMMTSY_PHONE_PROVIDER_MAX_BEARERS1;
+	multicallParams.iNetworkSupportedMaxBearers = DMMTSY_PHONE_NETWORK_MAX_BEARERS1;
+	multicallParams.iUESupportedMaxBearers      = DMMTSY_PHONE_UE_MAX_BEARERS1;
+
+	AddDelayedReq(aTsyReqHandle, this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetMulticallParams(const TTsyReqHandle aTsyReqHandle, TInt* aUserMaxBearers)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetMulticallParams called"));
+
+	if (*aUserMaxBearers != DMMTSY_PHONE_USER_MAX_BEARERS1)
+		ReqCompleted(aTsyReqHandle, KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetMulticallParamsCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetMulticallParamsCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetMulticallParamsCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetMulticallParamsCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifyMulticallParamsChange(const TTsyReqHandle aTsyReqHandle, TDes8* aMulticallParams)
+	{
+	if (!iNotifyMulticallParamsChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallParamsChange called"));
+
+		RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *multicallParamsPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *, aMulticallParams);
+		RMobilePhone::TMobilePhoneMulticallSettingsV1     &multicallParams     = (*multicallParamsPckg)();
+
+		multicallParams.iUserMaxBearers              = DMMTSY_PHONE_USER_MAX_BEARERS2;
+		multicallParams.iServiceProviderMaxBearers  = DMMTSY_PHONE_PROVIDER_MAX_BEARERS2;
+		multicallParams.iNetworkSupportedMaxBearers = DMMTSY_PHONE_NETWORK_MAX_BEARERS2;
+		multicallParams.iUESupportedMaxBearers      = DMMTSY_PHONE_UE_MAX_BEARERS2;		
+
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyMulticallParamsChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallParamsChangeCancel called"));
+	
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetIncomingCallType(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIncomingCallType* aCallType, TDes8* aDataParams)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetIncomingCallType called"));
+
+	RMobileCall::TMobileDataCallParamsV1Pckg *dataParamsPckgV1 = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV1Pckg*, aDataParams);
+	RMobileCall::TMobileDataCallParamsV1     &dataParamsV1     = (*dataParamsPckgV1)();
+
+	dataParamsV1.iService = DMMTSY_DATA_CALL_SERVICE;
+	dataParamsV1.iSpeed = DMMTSY_DATA_CALL_SPEED;
+	dataParamsV1.iProtocol = DMMTSY_DATA_CALL_PROTOCOL;
+	dataParamsV1.iQoS = DMMTSY_DATA_CALL_QOS;
+	dataParamsV1.iRLPVersion = DMMTSY_DATA_CALL_RLP;
+	dataParamsV1.iV42bisReq = DMMTSY_DATA_CALL_V42BIS;
+ 	dataParamsV1.iUseEdge = DMMTSY_DATA_CALL_EGPRS_REQUIRED;
+
+	*aCallType = DMMTSY_PHONE_INCOMING_CALL_TYPES;
+
+	AddDelayedReq(aTsyReqHandle, this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetIncomingCallTypeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetIncomingCallTypeCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+
+	}
+
+TInt CPhoneDMmTsy::SetIncomingCallType(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIncomingCallType* aCallType, TDes8* aDataParams)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetIncomingCallType called"));
+
+	RMobileCall::TMobileDataCallParamsV1Pckg *dataParamsPckgV1 = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV1Pckg*, aDataParams);
+	RMobileCall::TMobileDataCallParamsV1     &dataParamsV1     = (*dataParamsPckgV1)();
+
+	if ((*aCallType != DMMTSY_PHONE_INCOMING_CALL_TYPES) ||
+		(dataParamsV1.iService != DMMTSY_DATA_CALL_SERVICE) ||
+		(dataParamsV1.iSpeed != DMMTSY_DATA_CALL_SPEED) ||
+		(dataParamsV1.iProtocol != DMMTSY_DATA_CALL_PROTOCOL) ||
+		(dataParamsV1.iQoS != DMMTSY_DATA_CALL_QOS) || 
+		(dataParamsV1.iRLPVersion != DMMTSY_DATA_CALL_RLP) ||
+		(dataParamsV1.iV42bisReq != DMMTSY_DATA_CALL_V42BIS) ||
+ 		(dataParamsV1.iUseEdge != DMMTSY_DATA_CALL_EGPRS_REQUIRED))
+
+		ReqCompleted(aTsyReqHandle, KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetIncomingCallTypeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetIncomingCallTypeCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+
+	}
+
+TInt CPhoneDMmTsy::NotifyIncomingCallTypeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIncomingCallType* aCallType, TDes8* aDataParams)
+	{
+	if (!iNotifyIncomingCallTypeChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyIncomingCallTypeChange called"));
+
+		RMobileCall::TMobileDataCallParamsV1Pckg *dataParamsPckg = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV1Pckg*, aDataParams);
+		RMobileCall::TMobileDataCallParamsV1     &dataParams     = (*dataParamsPckg)();
+
+		if(dataParams.ExtensionId() == RMobileCall::KETelMobileDataCallParamsV2)
+			{
+			RMobileCall::TMobileDataCallParamsV2Pckg *dataParamsPckgV2 = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV2Pckg*, aDataParams);
+			RMobileCall::TMobileDataCallParamsV2     &dataParamsV2     = (*dataParamsPckgV2)();
+			dataParamsV2.iBearerMode = DMMTSY_PHONE_MULTICALLBEARERMODE_NOTSUPPORTED;
+			//reset for V1
+			iNotifyIncomingCallTypeChange = 0;
+			}
+		dataParams.iService = DMMTSY_DATA_CALL_SERVICE1;
+		dataParams.iSpeed = DMMTSY_DATA_CALL_SPEED1;
+		dataParams.iProtocol = DMMTSY_DATA_CALL_PROTOCOL1;
+		dataParams.iQoS = DMMTSY_DATA_CALL_QOS1;
+		dataParams.iRLPVersion = DMMTSY_DATA_CALL_RLP1;
+		dataParams.iV42bisReq = DMMTSY_DATA_CALL_V42BIS1;
+ 		dataParams.iUseEdge = DMMTSY_DATA_CALL_EGPRS_NOTREQUIRED;
+
+		*aCallType = DMMTSY_PHONE_INCOMING_CALL_TYPES1;
+		
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	else
+		{
+		//reset for multiple complete test
+		iNotifyIncomingCallTypeChange = 0;
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyIncomingCallTypeChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIncomingCallTypeChangeCancel called"));
+	
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetUUSSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneUUSSetting* aSetting)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetUUSSetting called"));
+
+	*aSetting = DMMTSY_PHONE_UUS_SETTING1;
+
+	AddDelayedReq(aTsyReqHandle, this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetUUSSettingCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetUUSSettingCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetUUSSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneUUSSetting* aSetting)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetUUSSetting called"));
+
+	if(*aSetting != DMMTSY_PHONE_UUS_SETTING2)
+		ReqCompleted(aTsyReqHandle, KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetUUSSettingCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetUUSSettingCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyUUSSettingChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneUUSSetting* aSetting)
+	{
+	if (!iNotifyUUSSettingChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyUUSSettingChange called"));
+
+		*aSetting = DMMTSY_PHONE_UUS_SETTING2;
+
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyUUSSettingChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyUUSSettingChangeCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetMultimediaCallPreference(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMultimediaSettings* aSetting)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetMultimediaCallPreference called"));
+
+	*aSetting = DMMTSY_PHONE_MM_SETTING;
+
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetMultimediaCallPreference(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMultimediaSettings* aSetting)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetMultimediaCallPreference called"));
+
+	if(*aSetting != DMMTSY_PHONE_MM_SETTING)
+		ReqCompleted(aTsyReqHandle, KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetMultimediaCallPreferenceCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetMultimediaCallPreferenceCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyMultimediaCallPreferenceChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMultimediaSettings* aSetting)
+	{
+	if (!iNotifyMmCallPrefChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyMultimediaCallPreferenceChange called"));
+
+		*aSetting = DMMTSY_PHONE_MM_SETTING_2;
+
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyMultimediaCallPreferenceChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMultimediaCallPreferenceChangeCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetNetworkSecurityLevel(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkSecurity* aSecurity)
+	{
+
+	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkSecurityLevel called"));
+
+	*aSecurity = DMMTSY_PHONE_NET_SECURITY;
+
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetNetworkSecurityLevelCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkSecurityLevelCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyNetworkSecurityLevelChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkSecurity* aSecurity)
+	{
+
+	if (!iNotifyNetworkSecurityChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSecurityLevelChange called"));
+	
+		*aSecurity = DMMTSY_PHONE_NET_SECURITY;
+
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyNetworkSecurityLevelChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSecurityLevelChangeCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::EnumerateUSimApplications(const TTsyReqHandle aTsyReqHandle, TInt* aCount, RMobilePhone::TAID* aActiveAID)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::EnumerateUSimApplications called"));
+
+	*aCount = DMMTSY_PHONE_USIM_COUNT;
+	aActiveAID->Copy(DMMTSY_PHONE_USIM_AID);
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::EnumerateUSimApplicationsCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::EnumerateUSimApplicationsCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetUSimApplicationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAID* aAID, RMobilePhone::TUSimAppAction* aAction)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetUSimApplicationStatus called"));
+
+	if ((*aAction != DMMTSY_PHONE_USIM_ACTIVATE) ||
+		(aAID->Compare(DMMTSY_PHONE_USIM_AID) !=0 ))
+		ReqCompleted(aTsyReqHandle, KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetUSimApplicationStatusCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetUSimApplicationStatusCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+
+TInt CPhoneDMmTsy::GetUSimApplicationInfo(const TTsyReqHandle aTsyReqHandle, TInt* aIndex, RMobilePhone::TUSimApplicationInfoV2* aInfo)
+	{
+
+	LOGTEXT(_L8("CPhoneDMmTsy::GetUSimApplicationInfo called"));
+
+	if(*aIndex != DMMTSY_PHONE_USIM_APPINDEX)
+		ReqCompleted(aTsyReqHandle, KErrCorrupt);
+	else
+		{
+		aInfo->iLabel.Copy(DMMTSY_PHONE_USIM_APPLABEL);
+		aInfo->iAID.Copy(DMMTSY_PHONE_USIM_AID);
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetUSimApplicationInfoCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetUSimApplicationInfoCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyUSimApplicationsInfoChange(const TTsyReqHandle aTsyReqHandle, TInt* aCount, RMobilePhone::TAID* aActiveAID)
+	{
+	if (!iNotifyUSimApplicationsInfoChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimApplicationsInfoChange called"));
+		
+		aActiveAID->Copy(DMMTSY_PHONE_USIM_AID);
+		*aCount = DMMTSY_PHONE_USIM_COUNT;
+
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyUSimApplicationsInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimApplicationsInfoChangeCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetUSimAppsSelectionMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aMode)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetUSimAppsSelectionMode called"));
+
+	*aMode = DMMTSY_PHONE_USIM_SELMODE;
+
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetUSimAppsSelectionMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aMode)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetUSimAppsSelectionMode called"));
+
+	if(*aMode != DMMTSY_PHONE_USIM_SELMODE)
+		ReqCompleted(aTsyReqHandle, KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyUSimAppsSelectionModeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aMode)
+	{
+	if (!iNotifyUSimAppsSelectionModeChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimAppsSelectionModeChange called"));
+
+		*aMode = DMMTSY_PHONE_USIM_SELMODE;
+
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyUSimAppsSelectionModeChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimAppsSelectionModeChangeCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetMailboxNumbers(const TTsyReqHandle aTsyReqHandle, TDes8 *aMailBox)
+	{
+	RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg *mailboxPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg*, aMailBox);
+	RMobilePhone::TMobilePhoneVoicemailIdsV3 &mailbox     = (*mailboxPckg)();
+		
+	LOGTEXT(_L8("CPhoneDMmTsy::GetMailboxNumbers called"));
+	mailbox.iVoice = DMMTSY_PHONE_MAILBOXNUMBER_VOICE;
+	mailbox.iData = DMMTSY_PHONE_MAILBOXNUMBER_DATA;
+	mailbox.iFax = DMMTSY_PHONE_MAILBOXNUMBER_FAX;
+	mailbox.iOther = DMMTSY_PHONE_MAILBOXNUMBER_OTHER;
+		
+	if(mailbox.ExtensionId() == KEtelExtMultimodeV8 )
+		{
+		RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg *mailboxV8Pckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg*, aMailBox);
+		RMobilePhone::TMobilePhoneVoicemailIdsV8 &mailboxV8     = (*mailboxV8Pckg)();
+		LOGTEXT(_L8("CPhoneDMmTsy::GetMailboxNumbers V8 class is called"));
+		mailboxV8.iVideo = DMMTSY_PHONE_MAILBOXNUMBER_VIDEO;
+		}
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;	
+	}
+
+	
+TInt CPhoneDMmTsy::GetMailboxNumbersCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetMailboxNumbersCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifyMailboxNumbersChange(const TTsyReqHandle aTsyReqHandle, TDes8 *aMailBox)
+	
+	{
+	RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg *mailboxPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg*, aMailBox);
+	RMobilePhone::TMobilePhoneVoicemailIdsV3 &mailbox     = (*mailboxPckg)();
+	
+	if (!iNotifyMailBoxNumbersChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyMailboxNumbersChange called"));
+		mailbox.iVoice = DMMTSY_PHONE_MAILBOXNUMBER_VOICE;
+		mailbox.iData = DMMTSY_PHONE_MAILBOXNUMBER_DATA;
+		mailbox.iFax = DMMTSY_PHONE_MAILBOXNUMBER_FAX;
+		mailbox.iOther = DMMTSY_PHONE_MAILBOXNUMBER_OTHER;
+		
+		if(mailbox.ExtensionId() == KEtelExtMultimodeV8)
+			{
+			RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg *mailboxPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg*, aMailBox);
+			RMobilePhone::TMobilePhoneVoicemailIdsV8 &mailbox     = (*mailboxPckg)();
+			mailbox.iVideo = DMMTSY_PHONE_MAILBOXNUMBER_VIDEO;
+			iNotifyMailBoxNumbersChange=0;
+			}
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	else
+		{
+		iNotifyMailBoxNumbersChange=0;		
+		}
+
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifyMailboxNumbersChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMailboxNumbersChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyMmsUpdate(const TTsyReqHandle aTsyReqHandle, TDes8 *aNotification)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsUpdate called"));
+
+	RMobilePhone::TMmsNotificationV3Pckg *mmsPckg = REINTERPRET_CAST(RMobilePhone::TMmsNotificationV3Pckg *, aNotification);
+	RMobilePhone::TMmsNotificationV3 &mms = (*mmsPckg)();
+
+	if (!iNotifyMmsUpdate++)
+		{
+		mms.iSpace = DMMTSY_PHONE_MMS_UPDATE_SPACE;
+		mms.iNotification = DMMTSY_PHONE_MMS_UPDATE_NOTIFICATION;
+		mms.iMmsStatus = DMMTSY_PHONE_MMS_UPDATE_STATUS;
+		mms.iImplementation = DMMTSY_PHONE_MMS_UPDATE_IMPLEMENTATION;
+		mms.iNotify = DMMTSY_PHONE_MMS_UPDATE_NOTIFY;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetAirTimeDuration(const TTsyReqHandle aTsyReqHandle, TTimeIntervalSeconds* aTime)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetAirTimeDuration called"));
+	*aTime=DMMTSY_AIR_TIME_DURATION1;
+	ReqCompleted(aTsyReqHandle,KErrNone);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifyAirTimeDurationChange(const TTsyReqHandle aTsyReqHandle, TTimeIntervalSeconds* aTime)
+	{
+	if (!iNotifyAirTimeChangeChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyAirTimeDurationChange called"));
+		*aTime=DMMTSY_AIR_TIME_DURATION2;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyAirTimeDurationChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAirTimeDurationChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::TerminateAllCalls(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::TerminateAllCalls called"));
+	if (!iTerminateAllCalls++)
+		{
+		//Just return KErrNone
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::TerminateAllCallsCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::TerminateAllCallsCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::TerminateActiveCalls(const TTsyReqHandle aTsyReqHandle)
+    {
+    LOGTEXT(_L8("CPhoneDMmTsy::TerminateActiveCalls called"));
+    if (!iTerminateActiveCalls++)
+        {
+        //Just return KErrNone
+        ReqCompleted(aTsyReqHandle,KErrNone);
+        }
+    return KErrNone;
+    }
+    
+TInt CPhoneDMmTsy::TerminateActiveCallsCancel(const TTsyReqHandle aTsyReqHandle)
+    {
+    LOGTEXT(_L8("CPhoneDMmTsy::TerminateActiveCallsCancel called"));
+    RemoveDelayedReq(aTsyReqHandle);
+    ReqCompleted(aTsyReqHandle,KErrCancel);
+    return KErrNone;
+    }
+
+ TInt CPhoneDMmTsy::NotifySendNetworkServiceRequest(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNotifySendSSOperation* aOperation, TDes8* aRequestComplete)
+ 	{
+ 	LOGTEXT(_L8("CPhoneDMmTsy::NotifySendNetworkServiceRequest called"));
+	if (!iNotifySendNetworkServiceRequest++)
+		{
+		RMobilePhone::TMobilePhoneSendSSRequestV3Pckg* ssRequestPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneSendSSRequestV3Pckg*,aRequestComplete);
+		RMobilePhone::TMobilePhoneSendSSRequestV3& ssRequest = (*ssRequestPckg)();
+			
+		if(*aOperation!=DMMTSY_PHONE_NOTIFY_SERVICEREQUEST || 
+			ssRequest.ExtensionId()!=KETelExtMultimodeV3)
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		else
+			{	
+			ssRequest.iOpCode = DMMTSY_PHONE_NOTIFY_OPCODE;
+			ssRequest.iAdditionalInfo = DMMTSY_PHONE_NOTIFY_ADDINFO;			
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			}
+		}	
+	return KErrNone;
+ 	}
+ 
+ TInt CPhoneDMmTsy::NotifySendNetworkServiceRequestCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifySendNetworkServiceRequestCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+ TInt CPhoneDMmTsy::NotifyAllSendNetworkServiceRequest(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNotifySendSSOperation* aOperation, TDes8* aRequestComplete)
+ 	{
+ 	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAllSendNetworkServiceRequest called"));
+	
+	RMobilePhone::TMobilePhoneSendSSRequestV3Pckg* ssRequestPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneSendSSRequestV3Pckg*,aRequestComplete);
+	RMobilePhone::TMobilePhoneSendSSRequestV3& ssRequest = (*ssRequestPckg)();
+			
+	if(ssRequest.ExtensionId()!=KETelExtMultimodeV3)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		{
+		//Return the error for some Invoke operation, like received from network.
+		*aOperation = DMMTSY_PHONE_NOTIFY_SERVICEREQUEST_ERROR;
+		//Return result problem code (return Mistyped Parameter)
+		ssRequest.iOpCode = DMMTSY_PHONE_NOTIFY_RETURN_ERROR_PROBLEM_CODE;
+		ssRequest.iAdditionalInfo = DMMTSY_PHONE_NOTIFY_ADDINFO;
+		AddDelayedReq(aTsyReqHandle, this);
+		}				
+	
+	return KErrNone;
+ 	}
+ 	
+ TInt CPhoneDMmTsy::NotifyAllSendNetworkServiceRequestCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAllSendNetworkServiceRequestCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+ TInt CPhoneDMmTsy::ClearBlacklist(const TTsyReqHandle aTsyReqHandle)
+ 	{
+	LOGTEXT(_L8("CPhoneDMmTsy::ClearBlacklist called"));
+	if (!iClearBlacklist++)
+		{
+		//Just return KErrNone
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	return KErrNone; 	
+ 	}
+ 	
+TInt CPhoneDMmTsy::ClearBlacklistCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::ClearBlacklistCancel called"));
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifyDTMFEvent(const TTsyReqHandle aTsyReqHandle,RMobilePhone::TMobilePhoneDTMFEvent* aEvent)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFEvent called"));
+	if (!iNotifyDTMFEvent++)
+		{
+		*aEvent = DMMTSY_PHONE_NOTIFY_DTMFEVENT_ON;
+		ReqCompleted(aTsyReqHandle,KErrNone);
+		}
+	return KErrNone; 	
+	}
+	
+TInt CPhoneDMmTsy::NotifyDTMFEventCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFEventCancel called"));
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetPersonalisationCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) 
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationCaps called"));
+	*aCaps = (DMMTSY_PHONE_PERS_CAPS_SERV_PROV | DMMTSY_PHONE_PERS_CAPS_NETWORK);
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetPersonalisationCapsCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationCapsCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetPersonalisationStatus(const TTsyReqHandle aTsyReqHandle, TUint32* aPersSchemes) 
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationStatus called"));
+	*aPersSchemes = (DMMTSY_PHONE_PERS_GET_NETWORK_SUB | DMMTSY_PHONE_PERS_GET_CORPORATE);
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetPersonalisationStatusCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetPersonalisationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePersonalisation* aPersSchemes, TDes* aPersCode) 
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetPersonalisationStatus called"));
+	if((*aPersSchemes == DMMTSY_PHONE_PERS_SET_USIM) &&
+	   (*aPersCode == DMMTSY_PHONE_PERS_SET_CODE))
+		AddDelayedReq(aTsyReqHandle,this);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);			
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::SetPersonalisationStatusCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetPersonalisationStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCurrentNetworkName(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkName, TDes8* aLocInfo)	
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkName called"));
+
+	RMobilePhone::TMobilePhoneNetworkNameV3Pckg* networkNamePckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkNameV3Pckg*,aNetworkName);
+	RMobilePhone::TMobilePhoneNetworkNameV3& networkName = (*networkNamePckg)();
+	
+	RMobilePhone::TMobilePhoneOPlmnV3Pckg* plmnPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneOPlmnV3Pckg*,aLocInfo);
+	RMobilePhone::TMobilePhoneOPlmnV3& plmn = (*plmnPckg)();
+	
+	if(networkName.ExtensionId() != KETelExtMultimodeV3 ||
+	   plmn.ExtensionId() != KETelExtMultimodeV3)
+	   		ReqCompleted(aTsyReqHandle,KErrCorrupt);	
+	 else
+	 	{
+	 	//Fill TMobilePhoneNetworkNameV3
+	 	networkName.iLongName = DMMTSY_PHONE_HOME_NETWORK_LONG_NAME;
+		networkName.iShortName = DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME;
+		networkName.iOtherNames = DMMTSY_PHONE_HOME_NETWORK_OTHER_NAMES;
+		//Fill TMobilePhoneOPlmnV3
+		plmn.iCountryCode = DMMTSY_PHONE_COUNTRY_ID;
+		plmn.iNetworkId = DMMTSY_PHONE_NETWORK_ID;
+		plmn.iPNNid = DMMTSY_PHONE_HOME_NETWORK_NAME_LOC_ID;		
+		plmn.iFirstLocationAreaCode = DMMTSY_PHONE_HOME_NETWORK_FIRST_ID;
+		plmn.iLastLocationAreaCode = DMMTSY_PHONE_HOME_NETWORK_LAST_ID;
+		AddDelayedReq(aTsyReqHandle,this);
+	 	}
+	return KErrNone;	
+	}
+	
+TInt CPhoneDMmTsy::GetCurrentNetworkNameCancel(const TTsyReqHandle aTsyReqHandle)	
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkNameCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetPreferredNetworksPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhase1 called"));
+	TInt ret=KErrNone;
+	TInt leaveCode=KErrNone;
+	TRAP(leaveCode, ret=ProcessGetPreferredNetworksPhase1L(aTsyReqHandle, aClient, aBufSize););
+	if (leaveCode != KErrNone)
+		ReqCompleted(aTsyReqHandle,leaveCode);
+	return ret;
+	}	
+	
+TInt CPhoneDMmTsy::ProcessGetPreferredNetworksPhase1L(const TTsyReqHandle aTsyReqHandle, 
+													 RMobilePhone::TClientId* aClient, 
+													 TInt* aBufSize)
+	{
+	// retrieve stored networks from USIM,
+	// store each entry.
+	// stream the list and then return size of this buffer to client
+	CMobilePhoneStoredNetworkList* list=CMobilePhoneStoredNetworkList::NewL();
+	CleanupStack::PushL(list);
+
+	RMobilePhone::TMobilePreferredNetworkEntryV3 entry;
+
+	// fill up an example list
+	for (TInt index=0; index < DMMTSY_PHONE_NTWK_LIST_ENTRIES; index++)
+		{
+		switch (index)
+			{
+		case 0:
+			entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM;
+			entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE;
+			entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID1;
+			entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1;
+			break;
+		case 1:
+			entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSMC;
+			entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE;
+			entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2;
+			entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID2;
+			break;
+		case 2:
+		default:
+			entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_UTRAN;
+			entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE;
+			entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2;
+			entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1;
+			break;
+		case 3:
+			entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_WLAN;
+			entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE;
+			entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2;
+			entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1;
+			break;
+			
+			}
+		// Add the entry into the list, at the next empty location
+		list->AddEntryL(entry);
+		}
+
+	// Store the streamed list and the client ID
+	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle);
+	CleanupStack::PushL(read);
+	
+	read->iListBuf = list->StoreLC();
+	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
+	
+	iGetPreferredNetworks->AppendL(read);
+	CleanupStack::Pop(); // pop the CListReadAllAttempt
+	
+	// return the CBufBase’s size to client
+	*aBufSize=(read->iListBuf)->Size();
+	
+	// Complete first phase of list retrieval
+	AddDelayedReq(aTsyReqHandle,this);
+	CleanupStack::PopAndDestroy(); // pop&destroy list
+	return KErrNone;
+	}
+
+
+
+TInt CPhoneDMmTsy::GetPreferredNetworksPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhase2 called"));
+	CListReadAllAttempt* read=NULL;
+	// Find the get detected network attempt from this client
+	for (TInt i=0; i<iGetPreferredNetworks->Count(); ++i)
+		{
+		read = iGetPreferredNetworks->At(i);
+		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
+		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
+			{
+			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
+			// Copy the streamed list to the client
+			aBuf->Copy(bufPtr);
+			delete read;
+			iGetPreferredNetworks->Delete(i);
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			return KErrNone;
+			}
+		}
+	// Should handle error case of not finding the matching client from read all phase 1
+	return KErrNotFound;
+	}
+	
+TInt CPhoneDMmTsy::GetPreferredNetworksCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhaseCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	// Remove the read all attempt from iGetPreferredNetworks
+	CListReadAllAttempt* read=NULL;
+	for (TInt i=0; i<iGetPreferredNetworks->Count(); ++i)
+		{
+		read = iGetPreferredNetworks->At(i);
+		if (read->iReqHandle == aTsyReqHandle)
+			{
+			delete read;
+			iGetPreferredNetworks->Delete(i);
+			break;
+			}
+		}
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyMmsUpdateCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsUpdateCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetMmsUserConnParams(const TTsyReqHandle aTsyReqHandle, TDes8* aConnectivity)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserConnParams called"));
+	if(aConnectivity->Compare(DMMTSY_PHONE_MMS_USER_CONN_PARAMS) == 0 )
+		AddDelayedReq(aTsyReqHandle,this);		
+	else
+		ReqCompleted(aTsyReqHandle, KErrCorrupt);
+	return KErrNone;
+	} 
+	
+TInt CPhoneDMmTsy::SetMmsUserConnParamsCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserConnParamsCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetMmsUserPreferences(const TTsyReqHandle aTsyReqHandle, TDes8* aPreferences)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserPreferences called"));
+	if(aPreferences->Compare(DMMTSY_PHONE_MMS_USER_PREF_PARAMS) == 0 )
+		AddDelayedReq(aTsyReqHandle,this);		
+	else
+		ReqCompleted(aTsyReqHandle, KErrCorrupt);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetMmsUserPreferencesCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserPreferencesCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetMmsConfig(const TTsyReqHandle aTsyReqHandle,  RMobilePhone::TMmsConnParams aType, TDes8* aConnectivity)
+
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetMmsConfig called"));
+	if (aType == DMMTSY_PHONE_MMS_USER_CONN_PARAMS_TYPE )
+		{
+		*aConnectivity = DMMTSY_PHONE_MMS_USER_CONN_PARAMS;
+		AddDelayedReq(aTsyReqHandle,this);
+		} 
+	else
+		ReqCompleted(aTsyReqHandle, KErrCorrupt);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetMmsConfigCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetMmsConfigCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}	
+	
+TInt CPhoneDMmTsy::NotifyMmsConfig(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMmsConnParams aType, TDes8* aConnectivity)
+	
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsConfig called"));
+	if(!iNotifyMmsConfig++)
+		{
+		if (aType == DMMTSY_PHONE_MMS_USER_CONN_PARAMS_TYPE )
+			{
+			*aConnectivity = DMMTSY_PHONE_MMS_USER_CONN_PARAMS;
+			AddDelayedReq(aTsyReqHandle,this);
+			} 
+		else
+			ReqCompleted(aTsyReqHandle, KErrCorrupt);
+		}
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifyMmsConfigCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsConfigCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetHomeNetworkSearchPeriod(const TTsyReqHandle aTsyReqHandle, TInt* aSearchIntv)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetworkSearchPeriod called"));
+	*aSearchIntv = DMMTSY_PHONE_HOME_NETWORK_SEARCHINTV;
+	AddDelayedReq(aTsyReqHandle,this);	
+	return KErrNone;
+	
+	}
+	
+TInt CPhoneDMmTsy::GetHomeNetworkSearchPeriodCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetworkSearchPeriodCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::GetLastUsedAccessTechnology(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkAccess* aAccessTech)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetLastUsedAccessTechnology called"));
+	*aAccessTech = DMMTSY_PHONE_LAST_USED_ACCESS_TECH;
+	AddDelayedReq(aTsyReqHandle,this);	
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetLastUsedAccessTechnologyCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetLastUsedAccessTechnologyCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::GetNetworkInvScanSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneInvestigationScan* aSetting)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkInvScanSetting called"));
+	*aSetting = DMMTSY_PHONE_NETWORK_INV_SCAN;
+	AddDelayedReq(aTsyReqHandle,this);	
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifyNetworkInvScanChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneInvestigationScan* aSetting)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanChange called"));
+	if(!iNotifyNetworkInvScanChange++)
+		{
+		*aSetting = DMMTSY_PHONE_NETWORK_INV_SCAN;
+		AddDelayedReq(aTsyReqHandle,this);	
+		}
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifyNetworkInvScanChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+	
+TInt CPhoneDMmTsy::NotifyNetworkInvScanEvent(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneInvestigationScanEvent* aEvent)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanEvent called"));
+	if(!iNotifyNetworkInvScanEvent++)
+		{
+		*aEvent = DMMTSY_PHONE_NETWORK_INV_SCAN_EVENT;
+		AddDelayedReq(aTsyReqHandle,this);	
+		}
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifyNetworkInvScanEventCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanEventCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+	
+TInt CPhoneDMmTsy::GetCallForwardingIndicator(const TTsyReqHandle aTsyReqHandle, TDes8* aIndicator)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingIndicator called"));
+	
+	RMobilePhone::TMobilePhoneCFUIndicatorV3Pckg* indicatorPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFUIndicatorV3Pckg*, aIndicator);
+	RMobilePhone::TMobilePhoneCFUIndicatorV3& indicator = (*indicatorPckg)();
+	if( indicator.ExtensionId() == KETelExtMultimodeV3 )
+		{
+		indicator.iIndicator = DMMTSY_PHONE_CFU_INDICATOR;
+		}
+	else if(indicator.ExtensionId() == KEtelExtMultimodeV6 )
+		{
+		RMobilePhone::TMobilePhoneCFUIndicatorV6Pckg* indicatorPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFUIndicatorV6Pckg*, aIndicator);
+		RMobilePhone::TMobilePhoneCFUIndicatorV6& indicator = (*indicatorPckg)();
+		indicator.iIndicator = DMMTSY_PHONE_CFU_INDICATOR1;
+		indicator.iCFNumber.iTypeOfNumber = DMMTSY_PHONE_CFU_TON;
+		indicator.iCFNumber.iNumberPlan = DMMTSY_PHONE_CFU_NPI;
+		indicator.iCFNumber.iTelNumber = DMMTSY_PHONE_CFU_TELNUMBER;
+		indicator.iMultipleSubscriberProfileID = DMMTSY_PHONE_CFU_MSP;
+		}
+	AddDelayedReq(aTsyReqHandle,this);	
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetCallForwardingIndicatorCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingIndicatorCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetCompMethodName(const TTsyReqHandle aTsyReqHandle, TUint aCmi, TDes* aAlphaTag)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCompMethodName called"));
+	if(aCmi != DMMTSY_PHONE_CB_COMP_METHOD_ID)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		{
+		*aAlphaTag = DMMTSY_PHONE_CB_ALPHA_TAG;
+		AddDelayedReq(aTsyReqHandle,this);	
+		}
+	return KErrNone;
+	}
+TInt CPhoneDMmTsy::GetCompMethodNameCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCompMethodNameCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::EnumerateAPNEntries(const TTsyReqHandle aTsyReqHandle, TUint32* aIndex)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::EnumerateAPNEntries called"));
+	*aIndex = DMMTSY_PHONE_APN_ENUMERATE;
+	AddDelayedReq(aTsyReqHandle,this);	
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::EnumerateAPNEntriesCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::EnumerateAPNEntriesCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetAPNname(const TTsyReqHandle aTsyReqHandle, TUint32 aIndex, TDes8* aAPN)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetAPNname called"));
+	
+	RMobilePhone::TAPNEntryV3Pckg* entryPckg = REINTERPRET_CAST(RMobilePhone::TAPNEntryV3Pckg*, aAPN);
+	RMobilePhone::TAPNEntryV3& entry = (*entryPckg)();
+	
+	switch(aIndex)
+		{
+	case 0:
+		{
+		entry.iApn.Append(DMMTSY_PHONE_APN_ENTRY1);
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+		break;
+	case 1:
+		{
+		entry.iApn.Append(DMMTSY_PHONE_APN_ENTRY2);
+		AddDelayedReq(aTsyReqHandle,this);	
+		}
+		break;
+	case 2:
+		{
+		entry.iApn.Append(DMMTSY_PHONE_APN_ENTRY3);
+		AddDelayedReq(aTsyReqHandle,this);	
+		}
+		break;
+	default:
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		break;
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetAPNnameCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetAPNnameCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::AppendAPNName(const TTsyReqHandle aTsyReqHandle, TDes8* aAPN)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::AppendAPNName called"));
+	
+	RMobilePhone::TAPNEntryV3Pckg* entryPckg = REINTERPRET_CAST(RMobilePhone::TAPNEntryV3Pckg*, aAPN);
+	RMobilePhone::TAPNEntryV3& entry = (*entryPckg)();
+	
+	if ((entry.iApn.Length() > RMobilePhone::KMaxApnName) ||
+		(entry.iApn != DMMTSY_PHONE_APN_ENTRY_TO_APPEND))
+		{
+		// Checking that the entry passed in is equal to DMMTSY_PHONE_APN_ENTRY_TO_APPEND
+		// confirms that the APN entry has made it from the client to the TSY properly,
+		// i.e the packaging etc. works.
+		ReqCompleted(aTsyReqHandle, KErrBadName);
+		}
+	else 
+		{
+		AddDelayedReq(aTsyReqHandle, this);
+		}
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::AppendAPNNameCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::AppendAPNNameCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle, KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::DeleteAPNName(const TTsyReqHandle aTsyReqHandle, TUint32 aIndex)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::DeleteAPNName called"));
+	if (aIndex > (DMMTSY_PHONE_APN_ENUMERATE-1))
+		{
+		ReqCompleted(aTsyReqHandle, KErrTooBig);
+		}
+	else
+		{
+		AddDelayedReq(aTsyReqHandle, this);
+		}
+	return KErrNone; 
+	}
+	
+TInt CPhoneDMmTsy::DeleteAPNNameCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::DeleteAPNNameCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle, KErrCancel);	
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyAPNListChanged(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNListChanged called"));
+	AddDelayedReq(aTsyReqHandle, this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyAPNListChangedCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNListChangedCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle, KErrCancel);	
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::SetAPNControlListServiceStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAPNControlListServiceStatus aAPNControlListServiceStatus)
+	{
+	if ((aAPNControlListServiceStatus != DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_ENABLED) &&
+		(aAPNControlListServiceStatus != DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_DISABLED))
+		{
+		ReqCompleted(aTsyReqHandle, KErrArgument);
+		}
+	else
+		{
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::SetAPNControlListServiceStatusCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetAPNControlListServiceStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle, KErrCancel);	
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetAPNControlListServiceStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAPNControlListServiceStatus* aAPNControlListServiceStatus)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetAPNControlListServiceStatus called"));
+	*aAPNControlListServiceStatus = DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_DISABLED;
+	AddDelayedReq(aTsyReqHandle, this);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetAPNControlListServiceStatusCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetAPNControlListServiceStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle, KErrCancel);	
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::NotifyAPNControlListServiceStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAPNControlListServiceStatus* aAPNControlListServiceStatus)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNControlListServiceStatusChange called"));
+	*aAPNControlListServiceStatus = DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_ENABLED;
+	AddDelayedReq(aTsyReqHandle, this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyAPNControlListServiceStatusChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNControlListServiceStatusChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle, KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::StorePreferredNetworksList(const TTsyReqHandle aTsyReqHandle, TDes8* aBuffer)
+	{
+	LOGTEXT(_L8("CSmsMessagingDMmTsy::StorePreferredNetworksList called"));
+	TInt ret=KErrNone;
+	TInt leaveCode=KErrNone;
+	TRAP(leaveCode, ret=ProcessStorePreferredNetworksListL(aTsyReqHandle, aBuffer););
+	if (leaveCode != KErrNone)
+		ReqCompleted(aTsyReqHandle,leaveCode);
+	return ret;
+	};
+
+TInt CPhoneDMmTsy::ProcessStorePreferredNetworksListL(TTsyReqHandle aTsyReqHandle, TDes8* aBuffer)
+	{
+	CMobilePhoneStoredNetworkList* list=CMobilePhoneStoredNetworkList::NewL();
+	CleanupStack::PushL(list);
+	
+	list->RestoreL(*aBuffer);
+
+	RMobilePhone::TMobilePreferredNetworkEntryV3 entry;
+
+	if (list->Enumerate() != DMMTSY_PHONE_NTWK_LIST_ENTRIES)
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		CleanupStack::PopAndDestroy(); // list
+		return KErrNone;
+		}
+
+	TInt error=KErrNone;
+	TInt ret;
+	for (TInt i=0; i<DMMTSY_PHONE_NTWK_LIST_ENTRIES; ++i)
+		{
+		TRAP(ret,entry=list->GetEntryL(i));
+		if (ret != KErrNone)
+			break;
+			switch(i)
+			{
+			case 0:
+				{
+				if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_WLAN ||
+				entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE ||
+				entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2 ||
+				entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1)
+					error  = KErrCorrupt;
+				}
+				
+				break;
+			case 1:
+				{
+				if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_UTRAN ||
+				entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE ||
+				entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2 ||
+				entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1)
+					error  = KErrCorrupt;
+				}
+				
+				break;
+			case 2:
+				{
+				if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSMC ||
+				entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE ||
+				entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2 ||
+				entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID2)
+					error  = KErrCorrupt;
+				}
+				break;
+			case 3:
+			default:
+				{
+				if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM ||
+				entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE ||
+				entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID1 ||
+				entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1)
+					error  = KErrCorrupt;
+				}
+				break;
+			}
+		}
+	if(error==KErrNone)	
+		AddDelayedReq(aTsyReqHandle,this);
+	else
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	CleanupStack::PopAndDestroy(); // list
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::StorePreferredNetworksListCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CSmspStoreDMmTsy::StorePreferredNetworksListCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifyStorePreferredNetworksListChange(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyStorePreferredNetworksListChange called"));
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifyStorePreferredNetworksListChangeCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyStorePreferredNetworksListChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetCipheringIndicatorStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobileCallCipheringIndicator& aIndicatorStatus)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCipheringIndicatorStatus called"));
+	aIndicatorStatus = DMMTSY_PHONE_NET_CIPHER_IND;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetCipheringIndicatorStatusCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCipheringIndicatorStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifyCipheringIndicatorStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobileCallCipheringIndicator& aIndicatorStatus)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCipheringIndicatorStatus called"));
+	if (!iNotifyCipheringIndicatorStatus++)
+		{
+		aIndicatorStatus = DMMTSY_PHONE_NET_CIPHER_IND;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyCipheringIndicatorStatusCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyCipheringIndicatorStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetIdentityServiceStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIdService aService, RMobilePhone::TMobilePhoneIdServiceSetting aSetting)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetIdentityServiceStatus called"));
+	if(aService != DMMTSY_PHONE_ID_SERVICE || aSetting != DMMTSY_PHONE_ID_SETTING)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else
+		AddDelayedReq(aTsyReqHandle,this);
+
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetIdentityServiceStatusCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetIdentityServiceStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt  CPhoneDMmTsy::NotifyIdentityServiceStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIdService aService, RMobilePhone::TMobilePhoneIdServiceStatus* aStatus)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentityServiceStatus called"));
+	if (!iNotifyIdentityServiceStatus++)
+		{
+		if(aService!=DMMTSY_PHONE_ID_SERVICE)
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		else
+			{
+			*aStatus = DMMTSY_PHONE_ID_STATUS;
+			AddDelayedReq(aTsyReqHandle,this);
+			}
+		}
+	return KErrNone;
+	}
+TInt CPhoneDMmTsy::NotifyIdentityServiceStatusCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentityServiceStatusCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt  CPhoneDMmTsy::NotifyIdentitySuppressionRejected(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentitySuppressionRejected called"));
+	if (!iNotifyIdentitySuppressionRejected++)
+		{
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+TInt CPhoneDMmTsy::NotifyIdentitySuppressionRejectedCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentitySuppressionRejectedCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyMulticallIndicatorChange(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMulticallIndicator* aMulticallIndicator)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallIndicatorChange called"));
+	if (!iNotifyMulticallIndicatorChange++)
+		{
+		*aMulticallIndicator = DMMTSY_PHONE_MULTICALL_IND;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyMulticallIndicatorChangeCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallIndicatorChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::EnumerateSmartCardApplications(const TTsyReqHandle aTsyReqHandle,TUint* aCount)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::EnumerateSmartCardApplications called"));
+
+	*aCount = DMMTSY_PHONE_SC_COUNT;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::EnumerateSmartCardApplicationsCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::EnumerateSmartCardApplicationsCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetSmartCardApplicationInfo(const TTsyReqHandle aTsyReqHandle,TUint* aAppIndex, TDes8* aInfoBuffer)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardApplicationInfo called"));
+
+	if(*aAppIndex == DMMTSY_PHONE_SC_APP_INDEX1)
+		{
+		RMobilePhone::TSmartCardApplicationInfoV5Pckg *ScAppInfoPckg = REINTERPRET_CAST(RMobilePhone::TSmartCardApplicationInfoV5Pckg *, aInfoBuffer);
+		RMobilePhone::TSmartCardApplicationInfoV5 &ScAppInfo = (*ScAppInfoPckg)();
+		
+		if(ScAppInfo.ExtensionId() != KEtelExtMultimodeV5)
+			{
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);
+			}
+		else
+			{
+			ScAppInfo.iAID = DMMTSY_PHONE_SC_AID;
+			ScAppInfo.iLabel = DMMTSY_PHONE_SC_LABEL;
+			}			
+		}
+	else
+		{
+		return DMMTSY_PHONE_SC_OUTOFRANGE;	
+		}	
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;		
+	}
+	
+TInt CPhoneDMmTsy::GetSmartCardApplicationInfoCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardApplicationInfoCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifySmartCardApplicationInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TSmartCardApplicationEvent* aEvent, RMobilePhone::TAID* aAID)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifySmartCardApplicationInfoChange called"));
+	if(!iNotifySmartCardApplicationInfoChange++)
+		{
+		*aEvent = DMMTSY_PHONE_SC_EVENT_ACTIVATE;
+		*aAID = DMMTSY_PHONE_SC_AID;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifySmartCardApplicationInfoChangeCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifySmartCardApplicationInfoChange called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::SetSmartCardApplicationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAID* aAID, RMobilePhone::TSmartCardApplicationAction aAction)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetSmartCardApplicationStatus called"));
+
+	if(*aAID != DMMTSY_PHONE_SC_AID2 || aAction != DMMTSY_PHONE_SC_ACTION_TERMINATE)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else		
+		AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;		
+	}
+	
+TInt CPhoneDMmTsy::SetSmartCardApplicationStatusCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetSmartCardApplicationStatusCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::GetScFileInfo(const TTsyReqHandle aTsyReqHandle, const RMobilePhone::TScFilePath& aFilePathId, TDes8* aInfo)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetScFileInfo called"));
+
+	if(aFilePathId.iAID != DMMTSY_PHONE_SC_AID || aFilePathId.iPath != DMMTSY_PHONE_SC_PATH_REF)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else		
+		{
+		RMobilePhone::TScFileInfoV5Pckg *scFileInfoPckg = REINTERPRET_CAST(RMobilePhone::TScFileInfoV5Pckg*, aInfo);
+		RMobilePhone::TScFileInfoV5 &scFileInfo = (*scFileInfoPckg)();
+		
+		if(scFileInfo.ExtensionId() != KEtelExtMultimodeV5)
+			{
+			ReqCompleted(aTsyReqHandle,KErrCorrupt);
+			}
+		else
+			{
+			scFileInfo.iFileID = DMMTSY_PHONE_SC_FILEID;
+			scFileInfo.iNumberRecords = DMMTSY_PHONE_SC_NORECORDS;
+			scFileInfo.iRecordLength = DMMTSY_PHONE_SC_RECORD_SIZE;
+			scFileInfo.iType = DMMTSY_PHONE_SC_TYPE;
+			scFileInfo.iTotalLength = DMMTSY_PHONE_SC_FILESIZE;
+			}	
+		AddDelayedReq(aTsyReqHandle,this);
+		}		
+	return KErrNone;		
+	}
+	
+TInt CPhoneDMmTsy::GetScFileInfoCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetScFileInfoCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::ReadScFile(const TTsyReqHandle aTsyReqHandle, const RMobilePhone::TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8* aReadBuffer)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::ReadScFile called"));
+	
+	if(aFilePathOffsets.iAID != DMMTSY_PHONE_SC_AID || aFilePathOffsets.iPath != DMMTSY_PHONE_SC_PATH_REF || aFilePathOffsets.iType != DMMTSY_PHONE_SC_TYPE || aFilePathOffsets.iCount != DMMTSY_PHONE_SC_NORECORDS || aFilePathOffsets.iStartOffset != DMMTSY_PHONE_SC_START_OFFSET)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else		
+		{
+		aReadBuffer->Zero();
+		aReadBuffer->Append(DMMTSY_PHONE_SC_RECORD0);
+		aReadBuffer->Append(DMMTSY_PHONE_SC_RECORD1);
+		aReadBuffer->Append(DMMTSY_PHONE_SC_RECORD2);
+		
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::ReadScFileCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::ReadScFileCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+	
+TInt CPhoneDMmTsy::UpdateScFile(const TTsyReqHandle aTsyReqHandle, const RMobilePhone::TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8* aWriteBuffer)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::UpdateScFile called"));
+	
+	TInt startoffset = 0;
+	TPtr8 record0(aWriteBuffer->MidTPtr(startoffset,DMMTSY_PHONE_SC_RECORD_SIZE));
+	startoffset += DMMTSY_PHONE_SC_RECORD_SIZE;
+	TPtr8 record1(aWriteBuffer->MidTPtr(startoffset,DMMTSY_PHONE_SC_RECORD_SIZE));
+	startoffset += DMMTSY_PHONE_SC_RECORD_SIZE;
+	TPtr8 record2(aWriteBuffer->MidTPtr(startoffset,DMMTSY_PHONE_SC_RECORD_SIZE));
+		
+	if(aFilePathOffsets.iAID != DMMTSY_PHONE_SC_AID || aFilePathOffsets.iPath != DMMTSY_PHONE_SC_PATH_REF || aFilePathOffsets.iType != DMMTSY_PHONE_SC_TYPE || aFilePathOffsets.iCount != DMMTSY_PHONE_SC_NORECORDS || aFilePathOffsets.iStartOffset != DMMTSY_PHONE_SC_START_OFFSET)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else if(record0 != DMMTSY_PHONE_SC_RECORD0 || record1 != DMMTSY_PHONE_SC_RECORD1 || record2 != DMMTSY_PHONE_SC_RECORD2)
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+	else	
+		AddDelayedReq(aTsyReqHandle,this);
+		
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::UpdateScFileCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::UpdateScFileCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+	
+TInt CPhoneDMmTsy::GetCurrentActiveUSimApplication(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAID* aAID)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentActiveUSimApplication called"));
+
+	*aAID = DMMTSY_PHONE_SC_AID;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;		
+	}
+	
+TInt CPhoneDMmTsy::GetCurrentActiveUSimApplicationCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentActiveUSimApplicationCancel called"));
+
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+	
+CPhoneDMmTsy* CPhoneDMmTsy::This(TAny* aPtr)
+	{
+	return REINTERPRET_CAST(CPhoneDMmTsy*,aPtr);
+	}
+
+TInt CPhoneDMmTsy::GetAuthorizationInfoPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aId, TInt* aBufSize)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoPhase1 called"));
+	TInt ret(KErrNone);
+	TInt leaveCode(KErrNone);
+	TRAP(leaveCode, ret=ProcessGetAuthorizationInfoPhase1L(aTsyReqHandle, aId, aBufSize););
+	if (leaveCode != KErrNone)
+		ReqCompleted(aTsyReqHandle,leaveCode);
+	return ret;
+	};
+
+TInt CPhoneDMmTsy::ProcessGetAuthorizationInfoPhase1L(const TTsyReqHandle aTsyReqHandle,
+											 RMobilePhone::TClientId* aClient,
+											 TInt* aBufSize)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoPhase1 called"));	
+
+	// Store the streamed list and the client ID
+	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle);
+	CleanupStack::PushL(read);
+	
+	HBufC8* iBuff=NULL;
+	iAuthInfo->ExternalizeL(iBuff);	
+	CleanupStack::PushL(iBuff);
+		
+	CBufFlat* buf=CBufFlat::NewL(iBuff->Length());
+	CleanupStack::PushL(buf);
+	buf->InsertL(0,*iBuff);	
+	
+	read->iListBuf = buf;
+	CleanupStack::Pop(buf);	
+	CleanupStack::PopAndDestroy(iBuff);
+	
+	iGetAuthorizationData->AppendL(read);
+	CleanupStack::Pop(); // pop the CListReadAllAttempt
+	
+	// return the CBufBase’s size to client
+	*aBufSize=(read->iListBuf)->Size();
+	
+	
+	// Complete first phase of list retrieval
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+TInt CPhoneDMmTsy::GetAuthorizationInfoPhase2(TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuffer)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoPhase2 called"));	
+	CListReadAllAttempt* read=NULL;
+	// Find the get detected network attempt from this client
+	for (TInt i=0; i<iGetAuthorizationData->Count(); ++i)
+		{
+		read = iGetAuthorizationData->At(i);
+		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
+		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
+			{
+			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
+			// Copy the streamed list to the client
+			aBuffer->Copy(bufPtr);
+			delete read;
+			iGetAuthorizationData->Delete(i);
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			return KErrNone;
+			}
+		}
+	ReqCompleted(aTsyReqHandle,KErrBadHandle);
+	return KErrNone;
+	}
+
+
+TInt CPhoneDMmTsy::GetAuthorizationInfoCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoCancel called"));
+
+	// Remove the read all attempt from iGetAuthorizationData
+	CListReadAllAttempt* read=NULL;
+	for (TInt i=0; i<iGetAuthorizationData->Count(); ++i)
+		{
+		read = iGetAuthorizationData->At(i);
+		if (read->iReqHandle == aTsyReqHandle)
+			{
+			delete read;
+			iGetAuthorizationData->Delete(i);
+			break;
+			}
+		}
+		
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetAuthenticationData(const TTsyReqHandle aTsyReqHandle,TDes8* aAuthenticationData)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::AuthentificationData called"));
+	TInt ret(KErrNone);
+	User::After(300000); // wait to have KRequestPending
+	RMobilePhone::TImsAuthenticateDataV5Pckg* authenticateDataPckgd=(RMobilePhone::TImsAuthenticateDataV5Pckg*)aAuthenticationData;
+	RMobilePhone::TImsAuthenticateDataV5& authenticateData=(*authenticateDataPckgd)();
+	if(authenticateData.iAUTN!=DMMTSY_PHONE_AUTN_IN || authenticateData.iRAND!=DMMTSY_PHONE_RAND_IN)
+		{
+		ret=KErrCorrupt;
+		ReqCompleted(aTsyReqHandle,ret);
+		}
+	else
+		{
+		authenticateData.iAUTN=DMMTSY_PHONE_AUTN_OUT;
+		authenticateData.iRAND=DMMTSY_PHONE_RAND_OUT;
+		authenticateData.iRES=DMMTSY_PHONE_RES_OUT;
+		authenticateData.iIK=DMMTSY_PHONE_IK_OUT;
+		authenticateData.iCK=DMMTSY_PHONE_CK_OUT;
+		authenticateData.iAUTS=DMMTSY_PHONE_AUTS_OUT;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetAuthenticationDataCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::AuthentificationDataCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifyImsAuthorizationInfoChanged(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyImsAuthorizationInfoChanged called"));
+	if (!iNotifyImsAuthorizationInfoChange++)
+		{
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	
+	}
+TInt CPhoneDMmTsy::NotifyImsAuthorizationInfoChangedCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyImsAuthorizationInfoChangedCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::GetSmartCardAuthenticationData(const TTsyReqHandle aTsyReqHandle, TDes8* aSmartCardAuthData, RMobilePhone::TAID* aAID)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardAuthenticationData called"));
+
+	RMobilePhone::TSmartCardAuthenticateDataV6Pckg *smartCardAuthenticateDataPckg =
+	  reinterpret_cast<RMobilePhone::TSmartCardAuthenticateDataV6Pckg*>(aSmartCardAuthData);
+
+	RMobilePhone::TSmartCardAuthenticateDataV6 &smartCardAuthenticateData =
+	  (*smartCardAuthenticateDataPckg)();
+
+	if (aAID != NULL)
+		{
+		if (*aAID != DMMTSY_PHONE_GBA_AID() && 
+			*aAID != DMMTSY_PHONE_EAPAPP_AID() &&
+			*aAID != DMMTSY_PHONE_MBMS_AID())
+			{
+			ReqCompleted(aTsyReqHandle, KErrCorrupt);
+			return KErrNone;
+			}
+		}
+	// USIM authentication
+	if(smartCardAuthenticateData.ExtensionId() == KEtelExtMultimodeV6)
+		{
+		if(smartCardAuthenticateData.iAUTN != DMMTSY_PHONE_SC_AUTN_IN ||
+		  smartCardAuthenticateData.iRAND != DMMTSY_PHONE_SC_RAND_IN)
+			{
+			ReqCompleted(aTsyReqHandle, KErrCorrupt);
+			}
+		else
+			{
+			smartCardAuthenticateData.iAUTN=DMMTSY_PHONE_SC_AUTN_OUT;
+			smartCardAuthenticateData.iRAND=DMMTSY_PHONE_SC_RAND_OUT;
+			smartCardAuthenticateData.iRES=DMMTSY_PHONE_SC_RES_OUT;
+			smartCardAuthenticateData.iIK=DMMTSY_PHONE_SC_IK_OUT;
+			smartCardAuthenticateData.iCK=DMMTSY_PHONE_SC_CK_OUT;
+			smartCardAuthenticateData.iAUTS=DMMTSY_PHONE_SC_AUTS_OUT;
+			smartCardAuthenticateData.iKc=DMMTSY_PHONE_SC_KC_OUT;
+			AddDelayedReq(aTsyReqHandle,this);
+			}
+		}
+	else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileGbaBootstrapAuthDataV8)
+		{
+		RMobilePhone::TGbaBootstrapAuthDataV8Pckg *gbaBootstrapAuthenticateDataPckg =
+		  STATIC_CAST(RMobilePhone::TGbaBootstrapAuthDataV8Pckg*,aSmartCardAuthData);
+
+		RMobilePhone::TGbaBootstrapAuthDataV8 &gbaBootstrapAuthData =
+		  (*gbaBootstrapAuthenticateDataPckg)();
+		
+		 if(gbaBootstrapAuthData.iAUTN != DMMTSY_PHONE_GBA_AUTN_IN ||
+				gbaBootstrapAuthData.iRAND != DMMTSY_PHONE_GBA_RAND_IN)
+			{
+			iGbaBootstrapAuthDataFail++;
+			switch(iGbaBootstrapAuthDataFail)
+				{
+			case 1:
+				gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_FAIL_RES_OUT;
+				gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_FAIL_AUTS_OUT;
+				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthVerificationFailure);
+				break;
+			
+			case 2:
+				gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_FAIL_RES_OUT;
+				gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_SUCC_AUTS_OUT;
+				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthMacInvalid);
+				break;
+				
+			case 3:
+			default:
+				gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_FAIL_RES_OUT;
+				gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_SUCC_AUTS_OUT;
+				ReqCompleted(aTsyReqHandle, KErrInUse);
+				iGbaBootstrapAuthDataFail=0;
+				break;
+				}
+			}
+		else
+			{
+			gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_SUCC_RES_OUT;
+			gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_SUCC_AUTS_OUT;
+			AddDelayedReq(aTsyReqHandle,this);
+			}
+		}
+	else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileGbaNafAuthDataV8)
+		{
+		RMobilePhone::TGbaNafAuthDataV8Pckg *gbaNafAuthenticateDataPckg =
+		  STATIC_CAST(RMobilePhone::TGbaNafAuthDataV8Pckg*,aSmartCardAuthData);
+
+		RMobilePhone::TGbaNafAuthDataV8 &gbaNafAuthData=
+		  (*gbaNafAuthenticateDataPckg)();
+		if(gbaNafAuthData.iNafId != DMMTSY_PHONE_GBA_VALID_NAFID ||
+				gbaNafAuthData.iImpi != DMMTSY_PHONE_GBA_VALID_IMPI)
+			{
+			iGbaNafAuthDataFail++;
+			switch(iGbaNafAuthDataFail)
+				{	
+			case 1:
+				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyNotFound);
+				break;
+				
+			case 2:
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+				break;	
+					
+			case 3:
+			default:
+				ReqCompleted(aTsyReqHandle, KErrInUse);
+				iGbaNafAuthDataFail=0;
+				break;	
+				}
+			}
+		else
+			{
+			gbaNafAuthData.iKsExtNaf=DMMTSY_PHONE_GBA_KS_EXTNAF;
+			AddDelayedReq(aTsyReqHandle,this);
+			}
+		}
+	else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMskUpdateDataV8)
+		{
+		RMobilePhone::TMbmsMskUpdateDataV8Pckg *mbmsMskUpdateAuthenticateDataPckg =
+		  STATIC_CAST(RMobilePhone::TMbmsMskUpdateDataV8Pckg*,aSmartCardAuthData);
+
+		RMobilePhone::TMbmsMskUpdateDataV8 &mbmsMskUpdateAuthData=
+		  (*mbmsMskUpdateAuthenticateDataPckg)();
+		 if(mbmsMskUpdateAuthData.iInputMikey == DMMTSY_PHONE_MBMS_INVALID_IMIKEY)
+			{
+			iMbmsMskUpdateAuthDataFail++;
+			switch(iMbmsMskUpdateAuthDataFail)
+				{
+			case 1:
+				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyNotFound);
+				break;
+					
+			case 2:
+				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyInvalid);
+				break;
+					
+			case 3:
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+				break;
+					
+			case 4:
+			default:
+				ReqCompleted(aTsyReqHandle, KErrInUse);
+				iMbmsMskUpdateAuthDataFail=0;
+				break;
+				}
+			} 
+		else if(mbmsMskUpdateAuthData.iInputMikey == DMMTSY_PHONE_MBMS_VALID_IMIKEY_WO_VBIT)
+			{
+			AddDelayedReq(aTsyReqHandle,this);
+			}
+		else if (mbmsMskUpdateAuthData.iInputMikey == DMMTSY_PHONE_MBMS_VALID_IMIKEY_W_VBIT)
+			{
+			mbmsMskUpdateAuthData.iOutputMikey=DMMTSY_PHONE_MBMS_OMIKEY_FOR_W_VBIT;
+			AddDelayedReq(aTsyReqHandle,this);
+			}
+		}
+		
+	else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMtkGenerateDataV8)
+		{
+		RMobilePhone::TMbmsMtkGenerateDataV8Pckg *mbmsMtkGenerateAuthenticateDataPckg =
+		  STATIC_CAST(RMobilePhone::TMbmsMtkGenerateDataV8Pckg*,aSmartCardAuthData);
+
+		RMobilePhone::TMbmsMtkGenerateDataV8 &mbmsMtkGenerateAuthData=
+		  (*mbmsMtkGenerateAuthenticateDataPckg)();
+		  
+		if(mbmsMtkGenerateAuthData.iMikey!= DMMTSY_PHONE_MBMS_VALID_IMIKEY)
+			{
+			iMbmsMtkGenerateAuthDataFail++;
+			switch(iMbmsMtkGenerateAuthDataFail)
+				{
+			case 1:
+				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyNotFound);
+				break;
+						
+			case 2:
+				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyInvalid);
+				break;
+						
+			case 3:
+				ReqCompleted(aTsyReqHandle, KErrMMEtelAuthMacInvalid);
+				break;
+						
+			case 4:
+				ReqCompleted(aTsyReqHandle, KErrCorrupt);
+				break;
+						
+			case 5:
+			default:
+				ReqCompleted(aTsyReqHandle, KErrInUse);
+				iMbmsMtkGenerateAuthDataFail=0;
+				break;
+				}
+			}
+		else
+			{
+			mbmsMtkGenerateAuthData.iMtk = DMMTSY_PHONE_MBMS_VALID_MTK;
+			mbmsMtkGenerateAuthData.iSaltKey = DMMTSY_PHONE_MBMS_VALID_SALTKEY;
+			AddDelayedReq(aTsyReqHandle,this);
+			}
+		}
+	else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMskDeleteDataV8)
+		{
+		RMobilePhone::TMbmsMskDeleteDataV8Pckg *mbmsMskDeleteAuthenticateDataPckg =
+		  STATIC_CAST(RMobilePhone::TMbmsMskDeleteDataV8Pckg*,aSmartCardAuthData);
+
+		RMobilePhone::TMbmsMskDeleteDataV8 &mbmsMskDeleteAuthData=
+		  (*mbmsMskDeleteAuthenticateDataPckg)();
+		  
+		if((mbmsMskDeleteAuthData.iKeyDomainId!= DMMTSY_PHONE_MBMS_VALID_KEYDMN) ||
+		   (mbmsMskDeleteAuthData.iMskIdKeyGroup != DMMTSY_PHONE_MBMS_VALID_MSKIDGRP))	
+			{
+			iMbmsMskDeleteAuthDataFail++;
+			switch(iMbmsMskDeleteAuthDataFail)
+				{
+			case 1:
+				ReqCompleted(aTsyReqHandle, KErrNotFound);
+				break;
+					
+			case 2:
+			default:
+				ReqCompleted(aTsyReqHandle, KErrInUse);
+				iMbmsMskDeleteAuthDataFail=0;
+				break;
+				}	
+			}
+		else
+			{
+			AddDelayedReq(aTsyReqHandle,this);	
+			}
+		}
+	else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMukDeleteDataV8)
+		{
+		RMobilePhone::TMbmsMukDeleteDataV8Pckg *mbmsMukDeleteAuthenticateDataPckg =
+		  STATIC_CAST(RMobilePhone::TMbmsMukDeleteDataV8Pckg*,aSmartCardAuthData);
+
+		RMobilePhone::TMbmsMukDeleteDataV8 &mbmsMukDeleteAuthData=
+		  (*mbmsMukDeleteAuthenticateDataPckg)();
+		  
+		if(mbmsMukDeleteAuthData.iMukIdTlv!= DMMTSY_PHONE_MBMS_VALID_MUKID) 
+			{
+			iMbmsMukDeleteAuthDataFail++;
+			switch(iMbmsMukDeleteAuthDataFail)
+				{
+			case 1:
+				ReqCompleted(aTsyReqHandle, KErrNotFound);
+				break;
+					
+			case 2:
+			default:
+				ReqCompleted(aTsyReqHandle, KErrInUse);
+				iMbmsMukDeleteAuthDataFail=0;
+				break;
+				}	
+			}
+		else
+			{
+			AddDelayedReq(aTsyReqHandle,this);	
+			}
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetSmartCardAuthenticationDataCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardAuthenticationDataCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle, KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::SetEmergencyClient(const TTsyReqHandle aTsyReqHandle, TUint32* aEmergencyRequest)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetEmergencyClient called"));
+	
+	switch (*aEmergencyRequest)
+		{
+	case RPhone::EEmergencyLCSRequest:
+	case RPhone::EEmergencyCSVoiceCallRequest:
+	case RPhone::EEmergencyLCSRequest | RPhone::EEmergencyCSVoiceCallRequest:
+		ReqCompleted(aTsyReqHandle, KErrNone);
+		break;
+	default:
+		return KErrCorrupt;
+		}
+	
+	return KErrNone;
+	}
+
+//
+// First Ordinal Functions
+//
+extern "C"
+	{
+	IMPORT_C CPhoneFactoryBase* LibEntry();	// Force "Proper Name" export
+	}
+
+EXPORT_C CPhoneFactoryBase* LibEntry()
+	{
+	CPhoneFactoryDMmTsy* factory = NULL;
+	TRAP_IGNORE(factory = CPhoneFactoryDMmTsy::NewL());
+	return factory;
+	}
+
+//
+// DMmTsy Phone Factory Functions
+//
+
+CPhoneFactoryDMmTsy* CPhoneFactoryDMmTsy::NewL()
+	{
+	CPhoneFactoryDMmTsy *This = new (ELeave) CPhoneFactoryDMmTsy;
+	CleanupStack::PushL(This);
+	This->ConstructL();
+	CleanupStack::Pop();
+	return This;
+	}
+
+CPhoneFactoryDMmTsy::CPhoneFactoryDMmTsy()
+	{
+	iVersion=TVersion(	KTsyEtelMajorVersionNumber,
+						KTsyEtelMinorVersionNumber,
+						KTsyEtelBuildVersionNumber);
+	}
+
+CPhoneFactoryDMmTsy::~CPhoneFactoryDMmTsy()
+	{
+	LOGDESTROY();
+	}
+
+CPhoneBase * CPhoneFactoryDMmTsy::NewPhoneL(const TDesC& aName)
+	{
+	if (aName.Compare(DMMTSY_PHONE_NAME)==KErrNone)
+		return CPhoneDMmTsy::NewL(this);
+	else if (aName.Compare(DMMTSY_PHONE_NAMEAUTH1)==KErrNone)
+		{
+		CPhoneDMmTsy* phone=CPhoneDMmTsy::NewL(this);
+		CleanupStack::PushL(phone);
+		// it van be initialised in different ways by using name of the phone -
+		// that's why different names of phones shall be used
+		phone->iAuthInfo->iIMPI=DMMTSY_PHONE1_IMPI;
+		phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE1_IMPU0);
+		phone->iAuthInfo->iHomeNetworkDomainName=DMMTSY_PHONE1_HNDN;
+		phone->iAuthInfo->iAuthenticationDataSource=DMMTSY_PHONE1_DATASOURCE;
+		CleanupStack::Pop(phone);
+		return phone;
+		}
+	else if (aName.Compare(DMMTSY_PHONE_NAMEAUTH2)==KErrNone)
+		{
+		CPhoneDMmTsy* phone=CPhoneDMmTsy::NewL(this);
+		CleanupStack::PushL(phone);
+		// it van be initialised in different ways by using name of the phone -
+		// that's why different names of phones shall be used
+		phone->iAuthInfo->iIMPI=DMMTSY_PHONE2_IMPI;
+		phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU1);
+		phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU2);
+		phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU3);
+		phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU4);
+		phone->iAuthInfo->iHomeNetworkDomainName=DMMTSY_PHONE2_HNDN;
+		phone->iAuthInfo->iAuthenticationDataSource=DMMTSY_PHONE2_DATASOURCE;
+		CleanupStack::Pop(phone);
+		return phone;
+		}
+	else if (aName.Compare(DMMTSY_PHONE_NAMEAUTH3)==KErrNone)
+		{
+		CPhoneDMmTsy* phone=CPhoneDMmTsy::NewL(this);
+		CleanupStack::PushL(phone);
+		// it van be initialised in different ways by using name of the phone -
+		// that's why different names of phones shall be used
+		phone->iAuthInfo->iIMPI=DMMTSY_PHONE3_IMPI;
+		phone->iAuthInfo->iHomeNetworkDomainName=DMMTSY_PHONE3_HNDN;
+		phone->iAuthInfo->iAuthenticationDataSource=DMMTSY_PHONE3_DATASOURCE;
+		CleanupStack::Pop(phone);
+		return phone;
+		}
+	return NULL;
+	}
+
+TBool CPhoneFactoryDMmTsy::IsSupported(const TInt /*aMixin*/)
+	{
+	return EFalse;
+	}
+
+//
+// methods for CActiveListNode
+//
+
+CPhoneDMmTsy::CActiveListNode::CActiveListNode(CActive *aActive, const TTsyReqHandle aTsyReqHandle) :
+	iActive(aActive), iTsyReqHandle(aTsyReqHandle)
+	{
+
+	}
+
+CPhoneDMmTsy::CActiveListNode::~CActiveListNode()
+	{
+	delete iActive;
+	}
+
+//
+// methods for the list of aos which corresspond to the outstanding delayed asyncrhonous reqs
+//
+
+TInt CPhoneDMmTsy::FindDelayedReq(const TTsyReqHandle aTsyReqHandle, CActiveListNode *& aNode)
+	{
+	TInt err = KErrNotFound;
+	TSglQueIter<CActiveListNode> iter(iActiveRequestObjects);
+	iter.SetToFirst();
+
+	CActiveListNode *node = aNode = NULL;
+	while ((node = iter++) != NULL)
+		if (node->iTsyReqHandle == aTsyReqHandle)
+			break;
+
+	if (node != NULL)
+		{
+		aNode = node;
+		err = KErrNone;
+		}
+
+	return err;
+	}
+
+TInt CPhoneDMmTsy::RemoveDelayedReq(const TTsyReqHandle aTsyReqHandle)
+	{
+	CActiveListNode *aNode = NULL;
+	TInt err = FindDelayedReq(aTsyReqHandle,aNode);
+	if (err == KErrNone)
+		{
+		iActiveRequestObjects.Remove(*aNode);
+		delete aNode;
+		}
+	return err;
+	}
+
+void CPhoneDMmTsy::RegisterDelayedReqL(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject)
+	{
+	CDelayedCompleter *delayed = CDelayedCompleter::NewL(aTsyReqHandle,this,aTelObject);
+	CleanupStack::PushL(delayed);
+	CActiveListNode *newNode = new (ELeave) CActiveListNode(delayed,aTsyReqHandle);
+	iActiveRequestObjects.AddLast(*newNode);
+	delayed->After(100000);
+	CleanupStack::Pop(); // delayed
+	}
+void CPhoneDMmTsy::RegisterDelayedReqL(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject,TInt aPriority)
+	{
+	CDelayedCompleter *delayed = CDelayedCompleter::NewL(aTsyReqHandle,this,aTelObject);
+	CleanupStack::PushL(delayed);
+	CActiveListNode *newNode = new (ELeave) CActiveListNode(delayed,aTsyReqHandle);
+	iActiveRequestObjects.AddLast(*newNode);
+	delayed->After(aPriority);
+	CleanupStack::Pop(); // delayed
+	}
+void CPhoneDMmTsy::AddDelayedReq(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject)
+	{
+	TRAPD(err, RegisterDelayedReqL(aTsyReqHandle, aTelObject));
+
+	if (err != KErrNone)
+		{
+		ReqCompleted(aTsyReqHandle, err);
+		}
+	}
+void CPhoneDMmTsy::AddDelayedReq(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject,TInt aPriority)
+	{
+	TRAPD(err, RegisterDelayedReqL(aTsyReqHandle, aTelObject, aPriority));
+
+
+	if (err != KErrNone)
+		{
+		ReqCompleted(aTsyReqHandle, err);
+		}
+	}
+
+TInt CPhoneDMmTsy::NotifyAuthenticateDataChange(const TTsyReqHandle aTsyReqHandle,TDes8* aAuthInfo)
+	{
+	if(!iNotifyAuthenticationDataChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyAuthenticationDataChange called"));
+		RMobilePhone::TAuthInfoV8Pckg *authInfoV8Pckg = STATIC_CAST(RMobilePhone::TAuthInfoV8Pckg*,aAuthInfo);
+		RMobilePhone::TAuthInfoV8 &authInfoV8 = (*authInfoV8Pckg)();
+		authInfoV8.iAID = DMMTSY_PHONE_GBA_AID;
+		authInfoV8.iData = DMMTSY_PHONE_AUTH_DATA_GBA_PARAMS;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyAuthenticateDataChangeCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyAuthenticationDataChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetGbaBootstrapParams(const TTsyReqHandle aTsyReqHandle,RMobilePhone::TAID* aAID,TDes8* aParams)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetGbaBootstrapParams called"));
+	RMobilePhone::TBsfDataV8Pckg *bsfDataV8Pckg = STATIC_CAST(RMobilePhone::TBsfDataV8Pckg*,aParams);
+	RMobilePhone::TBsfDataV8 &bsfDataV8 = (*bsfDataV8Pckg)();
+	if((bsfDataV8.iBtid != DMMTSY_PHONE_BSF_VALID_BTID) ||
+		(bsfDataV8.iKeyLifetime != DMMTSY_PHONE_BSF_VALID_KEYLIFETIME) ||
+		(*aAID != DMMTSY_PHONE_GBA_AID )) 
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else
+		{
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::SetGbaBootstrapParamsCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetGbaBootstrapParamsCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}	
+
+TInt CPhoneDMmTsy::GetAuthenticationParams(const TTsyReqHandle aTsyReqHandle,TDes8* aAuthInfo,TDes8* aParams)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetAuthenticationParams called"));
+	RMobilePhone::TAuthInfoV8Pckg *authInfoV8Pckg = STATIC_CAST(RMobilePhone::TAuthInfoV8Pckg*,aAuthInfo);
+	RMobilePhone::TAuthInfoV8 &authInfoV8 = (*authInfoV8Pckg)();
+	if(authInfoV8.iData == DMMTSY_PHONE_AUTH_DATA_GBA_PARAMS && authInfoV8.iAID == DMMTSY_PHONE_GBA_AID)
+		{
+		RMobilePhone::TGbaBootstrapParamsV8Pckg *gbaBootstrapV8Pckg = STATIC_CAST(RMobilePhone::TGbaBootstrapParamsV8Pckg*,aParams);
+		RMobilePhone::TGbaBootstrapParamsV8 &gbaBootstrapV8 = (*gbaBootstrapV8Pckg)();
+		gbaBootstrapV8.iRand = DMMTSY_PHONE_GBA_RAND_IN;
+		gbaBootstrapV8.iBtid = DMMTSY_PHONE_BSF_VALID_BTID;
+		gbaBootstrapV8.iKeyLifetime = DMMTSY_PHONE_BSF_VALID_KEYLIFETIME;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	else if(authInfoV8.iData == DMMTSY_PHONE_AUTH_DATA_MBMS_MUK && authInfoV8.iAID == DMMTSY_PHONE_MBMS_AID)
+		{
+		RMobilePhone::TMbmsUserKeyV8Pckg *mbmsUserKeyV8Pckg = STATIC_CAST(RMobilePhone::TMbmsUserKeyV8Pckg*,aParams);
+		RMobilePhone::TMbmsUserKeyV8 &mbmsUserKeyV8 = (*mbmsUserKeyV8Pckg)();
+		mbmsUserKeyV8.iMukIdi = DMMTSY_PHONE_MBMS_VALID_MUK_IDI;
+		mbmsUserKeyV8.iMukIdr = DMMTSY_PHONE_MBMS_VALID_MUK_IDR;
+		mbmsUserKeyV8.iTimeStampCounter = DMMTSY_PHONE_MBMS_VALID_MUK_ITIMESTM;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	else
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::GetAuthenticationParamsCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetAuthenticationParamsCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetAuthenticationListPhase1(const TTsyReqHandle aTsyReqHandle,CRetrieveMobilePhoneAuthenticationIds::TAuthRequestData* aRequest,TInt* aBufSize)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetAuthenticationListPhase1 called"));
+	TInt ret=KErrNone;
+	TInt leaveCode=KErrNone;
+	
+	if (((aRequest->iAuthInfo.iData) == DMMTSY_PHONE_AUTH_DATA_NAF_LIST) ||
+		((aRequest->iAuthInfo.iData) == DMMTSY_PHONE_AUTH_DATA_MBMS_MSK))
+		{
+		leaveCode = KErrNone;
+		}
+	else
+	 	{
+	 	leaveCode = KErrCorrupt;	
+	 	}  
+
+	if (leaveCode == KErrNone)
+		{
+		if (aRequest->iAuthInfo.iData==DMMTSY_PHONE_AUTH_DATA_NAF_LIST)
+			{
+			TRAP(leaveCode, ret=ProcessGetGbaPhase1L(aTsyReqHandle, &aRequest->iClient,aBufSize););
+			}
+		else if(aRequest->iAuthInfo.iData==DMMTSY_PHONE_AUTH_DATA_MBMS_MSK)
+			{
+			TRAP(leaveCode, ret=ProcessGetMbmsPhase1L(aTsyReqHandle, &aRequest->iClient,aBufSize););
+			}
+		}
+
+	if (leaveCode != KErrNone)
+		{
+		ReqCompleted(aTsyReqHandle,leaveCode);
+		}
+	return ret;
+	};
+
+TInt CPhoneDMmTsy::ProcessGetGbaPhase1L(const TTsyReqHandle aTsyReqHandle,
+											   RMobilePhone::TClientId* aId,TInt* aBufSize)
+	{
+	// read the list, store its content and then return size of this buffer to client
+	CMobilePhoneGbaNafIdList* list=CMobilePhoneGbaNafIdList::NewL();
+	CleanupStack::PushL(list);
+
+	RMobilePhone::TGbaNafEntryV8 entry;
+
+	// fill up an example list
+	for (TInt index=0; index < DMMTSY_PHONE_GBA_NAFLIST_COUNT; index++)
+		{
+		switch (index)
+			{
+		case 0:
+			entry.iNafId = DMMTSY_PHONE_GBA_NAFLIST_NAFID_ONE;
+			entry.iBtid = DMMTSY_PHONE_GBA_NAFLIST_BTID_ONE;
+			break;
+		case 1:
+			entry.iNafId = DMMTSY_PHONE_GBA_NAFLIST_NAFID_TWO;
+			entry.iBtid = DMMTSY_PHONE_GBA_NAFLIST_BTID_TWO;
+			break;
+		case 2:
+			entry.iNafId = DMMTSY_PHONE_GBA_NAFLIST_NAFID_THREE;
+			entry.iBtid = DMMTSY_PHONE_GBA_NAFLIST_BTID_THREE;
+			break;
+		case 3:
+		default:
+			break;
+			}
+			// Add the entry into the list, at the next empty location
+			list->AddEntryL(entry);
+		}
+	// Store the streamed list and the client ID
+	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aId, aTsyReqHandle);
+	CleanupStack::PushL(read);
+
+	read->iListBuf = list->StoreLC();
+	CleanupStack::Pop(); // pop the CBufFlat allocated by StoreLC
+
+	iAuthReadAll->AppendL(read);
+	CleanupStack::Pop(); // pop the CListReadAllAttempt
+
+	// return the CBufFlat’s size to client
+	*aBufSize=(read->iListBuf)->Size();
+
+	// Complete first phase of list retrieval
+	AddDelayedReq(aTsyReqHandle,this);
+	CleanupStack::PopAndDestroy(); // pop&destroy list
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::ProcessGetMbmsPhase1L(const TTsyReqHandle aTsyReqHandle,
+											   RMobilePhone::TClientId* aId,TInt* aBufSize)
+	{
+	// read the list, store its content and then return size of this buffer to client
+	CMobilePhoneMbmsMskIdList* list=CMobilePhoneMbmsMskIdList::NewL();
+	CleanupStack::PushL(list);
+
+	RMobilePhone::TMskEntryV8 entry;
+
+	// fill up an example list
+	for (TInt index=0; index < DMMTSY_PHONE_MBMS_LIST_COUNT; index++)
+		{
+		switch (index)
+			{
+		case 0:
+			entry.iKeyDomainId = DMMTSY_PHONE_MBMSLIST_KEYDMN_ONE;
+			entry.iMskId = DMMTSY_PHONE_MBMSLIST_MSKID_ONE;
+			entry.iTimeStampCounter = DMMTSY_PHONE_MBMSLIST_TIMESTM_ONE;
+			break;
+		case 1:
+			entry.iKeyDomainId = DMMTSY_PHONE_MBMSLIST_KEYDMN_TWO;
+			entry.iMskId = DMMTSY_PHONE_MBMSLIST_MSKID_TWO;
+			entry.iTimeStampCounter = DMMTSY_PHONE_MBMSLIST_TIMESTM_TWO;
+			break;
+		case 2:
+			entry.iKeyDomainId = DMMTSY_PHONE_MBMSLIST_KEYDMN_THREE;
+			entry.iMskId = DMMTSY_PHONE_MBMSLIST_MSKID_THREE;
+			entry.iTimeStampCounter = DMMTSY_PHONE_MBMSLIST_TIMESTM_THREE;
+			break;
+		case 3:
+		default:
+			break;
+			}
+			// Add the entry into the list, at the next empty location
+			list->AddEntryL(entry);
+		}
+	// Store the streamed list and the client ID
+	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aId, aTsyReqHandle);
+	CleanupStack::PushL(read);
+
+	read->iListBuf = list->StoreLC();
+	CleanupStack::Pop(); // pop the CBufFlat allocated by StoreLC
+
+	iAuthReadAll->AppendL(read);
+	CleanupStack::Pop(); // pop the CListReadAllAttempt
+
+	// return the CBufFlat’s size to client
+	*aBufSize=(read->iListBuf)->Size();
+
+	// Complete first phase of list retrieval
+	AddDelayedReq(aTsyReqHandle,this);
+	CleanupStack::PopAndDestroy(); // pop&destroy list
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetAuthenticationListPhase2(TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aId, TDes8* aBuffer)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::ReadAllPhase2 called"));
+	CListReadAllAttempt* read=NULL;
+	// Find the read attempt from this client
+	for (TInt i=0; i<iAuthReadAll->Count(); ++i)
+		{
+		read = iAuthReadAll->At(i);
+		if ((read->iClient.iSessionHandle==aId->iSessionHandle) &&
+		    (read->iClient.iSubSessionHandle==aId->iSubSessionHandle))
+			{
+			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
+			// Copy the streamed list to the client
+			aBuffer->Copy(bufPtr);
+			delete read;
+			iAuthReadAll->Delete(i);
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			return KErrNone;
+			}
+		}
+	// Should handle error case of not finding the matching client from read all phase 1
+	return KErrNotFound;
+	}
+	
+TInt CPhoneDMmTsy::GetAuthenticationListCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::ReadAllCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	// Remove the read all attempt from iAuthReadAll
+	CListReadAllAttempt* read=NULL;
+	for (TInt i=0; i<iAuthReadAll->Count(); ++i)
+		{
+		read = iAuthReadAll->At(i);
+		if (read->iReqHandle == aTsyReqHandle)
+			{
+			delete read;
+			iAuthReadAll->Delete(i);
+			break;
+			}
+		}
+
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+//
+// Wlan
+//
+TInt CPhoneDMmTsy::NotifyWlanDataChange(const TTsyReqHandle aTsyReqHandle,TDes8* aData)
+	{
+	if(!iNotifyWlanDataChange++)
+		{
+		LOGTEXT(_L8("CPhoneDMmTsy::NotifyWlanDataChange called"));
+		RMobilePhone::TUsimWlanDataV8Pckg *WlanDataV8Pckg = STATIC_CAST(RMobilePhone::TUsimWlanDataV8Pckg*,aData);
+		RMobilePhone::TUsimWlanDataV8 &WlanDataV8 = (*WlanDataV8Pckg)();
+		WlanDataV8.iFieldsUsed = DMMTSY_PHONE_WLAN_LIST_DATA_FLAGS;
+		WlanDataV8.iPseudonym = DMMTSY_PHONE_WLAN_VALID_PSEUDONYM;
+		WlanDataV8.iReauthenticationId = DMMTSY_PHONE_WLAN_VALID_REAUTHID;
+		WlanDataV8.iMasterKey = DMMTSY_PHONE_WLAN_VALID_MASTERKEY;
+		WlanDataV8.iCounter = DMMTSY_PHONE_WLAN_VALID_COUNTER;
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::NotifyWlanDataChangeCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyWlanDataChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::SetWlanData(const TTsyReqHandle aTsyReqHandle,TDes8* aData)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetWlanData called"));
+	RMobilePhone::TUsimWlanDataV8Pckg *WlanDataV8Pckg = STATIC_CAST(RMobilePhone::TUsimWlanDataV8Pckg*,aData);
+	RMobilePhone::TUsimWlanDataV8 &WlanDataV8 = (*WlanDataV8Pckg)();
+	if((WlanDataV8.iFieldsUsed != DMMTSY_PHONE_WLAN_LIST_DATA_FLAGS) ||
+	(WlanDataV8.iPseudonym != DMMTSY_PHONE_WLAN_VALID_PSEUDONYM) ||
+	(WlanDataV8.iReauthenticationId != DMMTSY_PHONE_WLAN_VALID_REAUTHID) ||
+	(WlanDataV8.iMasterKey != DMMTSY_PHONE_WLAN_VALID_MASTERKEY) ||
+	(WlanDataV8.iCounter != DMMTSY_PHONE_WLAN_VALID_COUNTER))
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	else
+		{
+		AddDelayedReq(aTsyReqHandle,this);
+		}
+		
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::SetWlanDataCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::SetWlanDataCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}	
+
+TInt CPhoneDMmTsy::GetWlanData(const TTsyReqHandle aTsyReqHandle,TDes8* aData)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetWlanData called"));
+	RMobilePhone::TUsimWlanDataV8Pckg *WlanDataV8Pckg = STATIC_CAST(RMobilePhone::TUsimWlanDataV8Pckg*,aData);
+	RMobilePhone::TUsimWlanDataV8 &WlanDataV8 = (*WlanDataV8Pckg)();
+	WlanDataV8.iFieldsUsed = DMMTSY_PHONE_WLAN_LIST_DATA_FLAGS;
+	WlanDataV8.iPseudonym = DMMTSY_PHONE_WLAN_VALID_PSEUDONYM;
+	WlanDataV8.iReauthenticationId = DMMTSY_PHONE_WLAN_VALID_REAUTHID;
+	WlanDataV8.iMasterKey = DMMTSY_PHONE_WLAN_VALID_MASTERKEY;
+	WlanDataV8.iCounter = DMMTSY_PHONE_WLAN_VALID_COUNTER;
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;	
+	}
+
+TInt CPhoneDMmTsy::GetWlanDataCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetWlanDataCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::StorePreferredWlanSIDList(const TTsyReqHandle aTsyReqHandle, TDes8* aBuffer)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::StorePreferredWlanSIDList called"));
+	TInt ret=KErrNone;
+	TInt leaveCode=KErrNone;
+	TRAP(leaveCode, ret=ProcessStorePreferredWlanSIDListL(aTsyReqHandle, aBuffer););
+	if (leaveCode != KErrNone)
+		{
+		ReqCompleted(aTsyReqHandle,leaveCode);
+		}
+	return ret;
+	};
+
+TInt CPhoneDMmTsy::ProcessStorePreferredWlanSIDListL(TTsyReqHandle aTsyReqHandle, TDes8* aBuffer)
+	{
+	CMobilePhoneStoredWlanSIDList* list=CMobilePhoneStoredWlanSIDList::NewL();
+	CleanupStack::PushL(list);
+	
+	list->RestoreL(*aBuffer);
+
+	RMobilePhone::TWlanSIDV8 entry;
+
+	if (list->Enumerate() != DMMTSY_PHONE_WLAN_SIDLIST_COUNT)
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		CleanupStack::PopAndDestroy(); // list
+		return KErrNone;
+		}
+
+	TInt error=KErrNone;
+	TInt ret;
+	for (TInt i=0; i<DMMTSY_PHONE_WLAN_SIDLIST_COUNT; ++i)
+		{
+		TRAP(ret,entry=list->GetEntryL(i));
+		if (ret != KErrNone)
+			break;
+		switch(i)
+			{
+		case 0:
+			{
+			if(entry.iWSID != DMMTSY_PHONE_WLAN_WSID_ONE ||
+			   entry.iUserDefined != DMMTSY_PHONE_WLAN_USERDEFD_ONE)
+				{
+				error  = KErrCorrupt;
+				}
+			}
+			break;
+		case 1:
+			{
+			if(entry.iWSID != DMMTSY_PHONE_WLAN_WSID_TWO ||
+			   entry.iUserDefined != DMMTSY_PHONE_WLAN_USERDEFD_TWO)
+				{
+				error  = KErrCorrupt;
+				}
+			}
+			break;
+		case 2:
+		default:
+			{
+			if(entry.iWSID != DMMTSY_PHONE_WLAN_WSID_THREE ||
+			   entry.iUserDefined != DMMTSY_PHONE_WLAN_USERDEFD_THREE)
+				{
+				error  = KErrCorrupt;
+				}
+			}
+			break;
+			}
+		}
+	if(error==KErrNone)	
+		{
+		AddDelayedReq(aTsyReqHandle,this);	
+		}
+	else
+		{
+		ReqCompleted(aTsyReqHandle,KErrCorrupt);
+		}
+	CleanupStack::PopAndDestroy(); 
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::StorePreferredWlanSIDListCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::StorePreferredWlanSIDListCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifyPreferredWlanSIDListChange(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyPreferredWlanSIDListChange called"));
+	AddDelayedReq(aTsyReqHandle,this);
+	return KErrNone;
+	}
+	
+TInt CPhoneDMmTsy::NotifyPreferredWlanSIDListChangeCancel(TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::NotifyPreferredWlanSIDListChangeCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetPreferredWlanSIDsPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredWlanSIDsPhase1 called"));
+	TInt ret=KErrNone;
+	TInt leaveCode=KErrNone;
+	TRAP(leaveCode, ret=ProcessGetPreferredWlanSIDsPhase1L(aTsyReqHandle, aClient, aBufSize););
+	if (leaveCode != KErrNone)
+		{
+		ReqCompleted(aTsyReqHandle,leaveCode);
+		}
+	return ret;
+	}	
+	
+TInt CPhoneDMmTsy::ProcessGetPreferredWlanSIDsPhase1L(const TTsyReqHandle aTsyReqHandle, 
+													 RMobilePhone::TClientId* aClient, 
+													 TInt* aBufSize)
+	{
+	// retrieve stored Wlan specific IDs from USIM,
+	// store each entry.
+	// stream the list and then return size of this buffer to client
+	CMobilePhoneStoredWlanSIDList* list=CMobilePhoneStoredWlanSIDList::NewL();
+	CleanupStack::PushL(list);
+
+	RMobilePhone::TWlanSIDV8 entry;
+
+	// fill up an example list
+	for (TInt index=0; index < DMMTSY_PHONE_WLAN_SIDLIST_COUNT; index++)
+		{
+		switch (index)
+			{
+		case 0:
+			entry.iWSID = DMMTSY_PHONE_WLAN_WSID_ONE;
+		    entry.iUserDefined = DMMTSY_PHONE_WLAN_USERDEFD_ONE;
+			break;
+			
+		case 1:
+			entry.iWSID = DMMTSY_PHONE_WLAN_WSID_TWO;
+		    entry.iUserDefined = DMMTSY_PHONE_WLAN_USERDEFD_TWO;
+			break;
+		
+		case 2:
+		default:
+			entry.iWSID = DMMTSY_PHONE_WLAN_WSID_THREE;
+		    entry.iUserDefined = DMMTSY_PHONE_WLAN_USERDEFD_THREE;
+			break;
+			}
+		// Add the entry into the list, at the next empty location
+		list->AddEntryL(entry);
+		}
+	// Store the streamed list and the client ID
+	CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle);
+	CleanupStack::PushL(read);
+	
+	read->iListBuf = list->StoreLC();
+	CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC
+	
+	iGetWlanSIDsData->AppendL(read);
+	CleanupStack::Pop(); // pop the CListReadAllAttempt
+	
+	// return the CBufBase’s size to client
+	*aBufSize=(read->iListBuf)->Size();
+	
+	// Complete first phase of list retrieval
+	AddDelayedReq(aTsyReqHandle,this);
+	CleanupStack::PopAndDestroy(); // pop&destroy list
+	return KErrNone;
+	}
+
+TInt CPhoneDMmTsy::GetPreferredWlanSIDsPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhase2 called"));
+	CListReadAllAttempt* read=NULL;
+	// Find the get preferred wlan SIDs from this client
+	for (TInt i=0; i<iGetWlanSIDsData->Count(); ++i)
+		{
+		read = iGetWlanSIDsData->At(i);
+		if ((read->iClient.iSessionHandle==aClient->iSessionHandle) &&
+		    (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle))
+			{
+			TPtr8 bufPtr((read->iListBuf)->Ptr(0));
+			// Copy the streamed list to the client
+			aBuf->Copy(bufPtr);
+			delete read;
+			iGetWlanSIDsData->Delete(i);
+			ReqCompleted(aTsyReqHandle,KErrNone);
+			return KErrNone;
+			}
+		}
+	// Should handle error case of not finding the matching client from read all phase 1
+	return KErrNotFound;
+	}
+	
+TInt CPhoneDMmTsy::GetPreferredWlanSIDsCancel(const TTsyReqHandle aTsyReqHandle)
+	{
+	LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredWlanSIDsCancel called"));
+	RemoveDelayedReq(aTsyReqHandle);
+	// Remove the read all attempt from iGetWlanSIDsData
+	CListReadAllAttempt* read=NULL;
+	for (TInt i=0; i<iGetWlanSIDsData->Count(); ++i)
+		{
+		read = iGetWlanSIDsData->At(i);
+		if (read->iReqHandle == aTsyReqHandle)
+			{
+			delete read;
+			iGetWlanSIDsData->Delete(i);
+			break;
+			}
+		}
+	ReqCompleted(aTsyReqHandle,KErrCancel);
+	return KErrNone;
+	}
+
+/*******************************************************************/
+//
+// CDelayedCompleter
+//
+/*******************************************************************/
+
+
+
+CDelayedCompleter::CDelayedCompleter(const TTsyReqHandle aTsyReqHandle, CPhoneDMmTsy *aPhoneObject,
+									CTelObject *aTelObject) :
+		CTimer(EPriorityStandard),iTsyReqHandle(aTsyReqHandle), iPhoneObject(aPhoneObject),
+			iTelObject(aTelObject)
+	{
+
+	}
+
+CDelayedCompleter* CDelayedCompleter::NewL(const TTsyReqHandle aTsyReqHandle, CPhoneDMmTsy *aPhoneObject,
+									CTelObject *aTelObject)
+	{
+	CDelayedCompleter* This = new (ELeave) CDelayedCompleter(aTsyReqHandle,aPhoneObject,aTelObject);
+	CleanupStack::PushL(This);
+	This->ConstructL();
+	CleanupStack::Pop();
+	return This;
+	}
+
+void CDelayedCompleter::ConstructL()
+	{
+	CTimer::ConstructL();
+	CActiveScheduler::Add(this);
+	}
+
+void CDelayedCompleter::RunL()
+	{
+	iTelObject->ReqCompleted(iTsyReqHandle,KErrNone);
+	(void) iPhoneObject->RemoveDelayedReq(iTsyReqHandle); // we get deleted here
+	}