telephonyserverplugins/common_tsy/test/integration/src/tcallcontroltsytesthelper.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 23 6b1d113cdff3
--- a/telephonyserverplugins/common_tsy/test/integration/src/tcallcontroltsytesthelper.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/integration/src/tcallcontroltsytesthelper.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,1678 +1,1678 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#include "tcallcontroltsytesthelper.h" 
-#include "cctsytestlogging.h"
-
-
-
-/**
-* Constructor
-*/	
-TCallControlTsyTestHelper::TCallControlTsyTestHelper(CCTSYIntegrationTestSuiteStepBase& aTestStep)
-			: TTsyTestHelperBase( aTestStep )
-	{
-	}
-/**
-* Notify reset for RCall::NotifyCapsChange
-*/	
-void TCallControlTsyTestHelper::WaitForCallNotifyCapsChange( 
-				RCall& aCall,
-				TEtelRequestBase& aRequestStatus,
-				RCall::TCaps& aCaps, 
-				RCall::TCaps aWantedCaps,
-				RCall::TCaps aUnwantedCaps,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RCall::NotifyCapsChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  
-							&& ( ((aCaps.iFlags & aWantedCaps.iFlags) != aWantedCaps.iFlags)
-								 || ((aCaps.iFlags & aUnwantedCaps.iFlags) != 0) ) )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.	
-		aCall.NotifyCapsChange(aRequestStatus, aCaps);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, 
-				_L("RCall::NotifyCapsChange Wrong completion status"))	
-	ASSERT_BITS_SET(aCaps.iFlags, aWantedCaps.iFlags, aUnwantedCaps.iFlags, 
-				_L("RCall::NotifyCapsChange Wrong caps"))
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RCall::NotifyCallDurationChange
-*/	
-void TCallControlTsyTestHelper::WaitForCallNotifyCallDurationChange( 
-				RCall& aCall,
-				TEtelRequestBase& aRequestStatus,
-				TTimeIntervalSeconds& aTime, 
-				TTimeIntervalSeconds aExpectedTime,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RCall::NotifyCallDurationChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aTime != aExpectedTime )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aCall.NotifyCallDurationChange(aRequestStatus, aTime);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RCall::NotifyCallDurationChange Wrong completion status"))	
-	ASSERT_EQUALS(aTime.Int(), aExpectedTime.Int(), 
-				_L("RCall::NotifyCallDurationChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RCall::NotifyHookChange
-*/	
-void TCallControlTsyTestHelper::WaitForCallNotifyHookChange( 
-				RCall& aCall,
-				TEtelRequestBase& aRequestStatus,
-				RCall::THookStatus& aHookStatus, 
-				RCall::THookStatus aExpectedHookStatus,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RCall::NotifyHookChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aHookStatus != aExpectedHookStatus )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aCall.NotifyHookChange(aRequestStatus, aHookStatus);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RCall::NotifyHookChange Wrong completion status"))	
-	ASSERT_EQUALS(aHookStatus, aExpectedHookStatus, 
-				_L("RCall::NotifyHookChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RCall::NotifyStatusChange
-*/	
-void TCallControlTsyTestHelper::WaitForCallNotifyStatusChange( 
-				RCall& aCall,
-				TEtelRequestBase& aRequestStatus,
-				RCall::TStatus& aCallStatus, 
-				RCall::TStatus& aExpectedCallStatus,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
-	ASSERT_EQUALS(err, KErrNone, _L("RCall::NotifyStatusChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aCallStatus != aExpectedCallStatus )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aCall.NotifyStatusChange(aRequestStatus, aCallStatus);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RCall::NotifyStatusChange Wrong completion status"))	
-	ASSERT_EQUALS(aCallStatus, aExpectedCallStatus, 
-				_L("RCall::NotifyStatusChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RLine::NotifyCapsChange
-*/	
-void TCallControlTsyTestHelper::WaitForLineNotifyCapsChange( 
-				RLine& aLine,
-				TEtelRequestBase& aRequestStatus,
-				RLine::TCaps& aCaps, 
-				RLine::TCaps aWantedCaps,
-				RLine::TCaps aUnwantedCaps,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RLine::NotifyCapsChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  
-							&& ( ((aCaps.iFlags & aWantedCaps.iFlags) != aWantedCaps.iFlags)
-								 || ((aCaps.iFlags & aUnwantedCaps.iFlags) != 0) ) )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.	
-		aLine.NotifyCapsChange(aRequestStatus, aCaps);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, 
-				_L("RLine::NotifyCapsChange Wrong completion status"))	
-	ASSERT_BITS_SET(aCaps.iFlags, aWantedCaps.iFlags, aUnwantedCaps.iFlags, 
-				_L("RLine::NotifyCapsChange Wrong caps"))
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RLine::NotifyCallAdded
-*/	
-void TCallControlTsyTestHelper::WaitForLineNotifyCallAdded( 
-				RLine& aLine,
-				TEtelRequestBase& aRequestStatus,
-				TName& aName, 
-				TName aExpectedName,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RLine::NotifyCallAdded did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aName != aExpectedName )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aLine.NotifyCallAdded(aRequestStatus, aName);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RLine::NotifyCallAdded Wrong completion status"))	
-	ASSERT_EQUALS_DES16(aName, aExpectedName, 
-				_L("RLine::NotifyCallAdded Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RLine::NotifyHookChange
-*/	
-void TCallControlTsyTestHelper::WaitForLineNotifyHookChange( 
-				RLine& aLine,
-				TEtelRequestBase& aRequestStatus,
-				RCall::THookStatus& aHookStatus, 
-				RCall::THookStatus aExpectedHookStatus,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RLine::NotifyHookChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aHookStatus != aExpectedHookStatus )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aLine.NotifyHookChange(aRequestStatus, aHookStatus);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RLine::NotifyHookChange Wrong completion status"))	
-	ASSERT_EQUALS(aHookStatus, aExpectedHookStatus, 
-				_L("RLine::NotifyHookChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RLine::NotifyStatusChange
-*/	
-void TCallControlTsyTestHelper::WaitForLineNotifyStatusChange( 
-				RLine& aLine,
-				TEtelRequestBase& aRequestStatus,
-				RCall::TStatus& aLineStatus, 
-				RCall::TStatus& aExpectedLineStatus,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeVeryLong);	
-	ASSERT_EQUALS(err, KErrNone, _L("RLine::NotifyStatusChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aLineStatus != aExpectedLineStatus )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aLine.NotifyStatusChange(aRequestStatus, aLineStatus);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeVeryLong);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RLine::NotifyStatusChange Wrong completion status"))	
-	ASSERT_EQUALS(aLineStatus, aExpectedLineStatus, 
-				_L("RLine::NotifyStatusChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RLine::NotifyIncomingCall
-*/	
-void TCallControlTsyTestHelper::WaitForLineNotifyIncomingCall( 
-				RLine& aLine,
-				TEtelRequestBase& aRequestStatus,
-				TName& aName, 
-				TName aExpectedName,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
-	ASSERT_EQUALS(err, KErrNone, _L("RLine::NotifyIncomingCall did not complete"));
-	
-	DEBUG_PRINTF2(_L("Name returned is: %S"), &aName);
-		
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aName != aExpectedName )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aLine.NotifyIncomingCall(aRequestStatus, aName);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RLine::NotifyIncomingCall Wrong completion status"))	
-	ASSERT_EQUALS_DES16(aName, aExpectedName, 
-				_L("RLine::NotifyIncomingCall Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RPhone::NotifyCapsChange
-*/	
-void TCallControlTsyTestHelper::WaitForPhoneNotifyCapsChange( 
-				RPhone& aPhone,
-				TEtelRequestBase& aRequestStatus,
-				RPhone::TCaps& aCaps, 
-				RPhone::TCaps aWantedCaps,
-				RPhone::TCaps aUnwantedCaps,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RPhone::NotifyCapsChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  
-							&& ( ((aCaps.iFlags & aWantedCaps.iFlags) != aWantedCaps.iFlags)
-								 || ((aCaps.iFlags & aUnwantedCaps.iFlags) != 0) ) )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.	
-		aPhone.NotifyCapsChange(aRequestStatus, aCaps);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, 
-				_L("RPhone::NotifyCapsChange Wrong completion status"))	
-	ASSERT_BITS_SET(aCaps.iFlags, aWantedCaps.iFlags, aUnwantedCaps.iFlags, 
-				_L("RPhone::NotifyCapsChange Wrong caps"))
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RPhone::NotifyModemDetected
-*/	
-void TCallControlTsyTestHelper::WaitForPhoneNotifyModemDetected( 
-				RPhone& aPhone,
-				TEtelRequestBase& aRequestStatus,
-				RPhone::TModemDetection& aDetection, 
-				RPhone::TModemDetection aExpectedDetection,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RPhone::NotifyModemDetected did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aDetection != aExpectedDetection )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aPhone.NotifyModemDetected(aRequestStatus, aDetection);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RPhone::NotifyModemDetected Wrong completion status"))	
-	ASSERT_EQUALS(aDetection, aExpectedDetection, 
-				_L("RPhone::NotifyModemDetected Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobileCall::NotifyAlternatingCallSwitch
-*/	
-void TCallControlTsyTestHelper::WaitForMobileCallNotifyAlternatingCallSwitch( 
-				TEtelRequestBase& aRequestStatus,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyAlternatingCallSwitch did not complete"))
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyAlternatingCallSwitch Wrong completion status"))		
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobileCall::NotifyAudioToneEvent
-*/	
-void TCallControlTsyTestHelper::WaitForMobileCallNotifyAudioToneEvent( 
-				RMobileCall& aMobileCall,
-				TEtelRequestBase& aRequestStatus,
-				TCmpBase<RMobileCall::TAudioToneV3> &aAudioToneV3,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyAudioToneEvent did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& !aAudioToneV3.IsEqual(ENoLogError) )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.		
-		RMobileCall::TAudioToneV3Pckg pkgParam( aAudioToneV3.GetValue() );
-		aMobileCall.NotifyAudioToneEvent(aRequestStatus, pkgParam);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyAudioToneEvent Wrong completion status"))	
-	ASSERT_TRUE(aAudioToneV3.IsEqual(ELogError), 
-				_L("RMobileCall::NotifyAudioToneEvent Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobileCall::NotifyCallEvent
-*/	
-void TCallControlTsyTestHelper::WaitForMobileCallNotifyCallEvent( 
-				RMobileCall& aMobileCall,
-				TEtelRequestBase& aRequestStatus,
-				RMobileCall::TMobileCallEvent& aEvent, 
-				RMobileCall::TMobileCallEvent aExpectedEvent,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyCallEvent did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aEvent != aExpectedEvent )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aMobileCall.NotifyCallEvent(aRequestStatus, aEvent);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyCallEvent Wrong completion status"))	
-	ASSERT_EQUALS(aEvent, aExpectedEvent, 
-				_L("RMobileCall::NotifyCallEvent Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobileCall::NotifyHscsdInfoChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobileCallNotifyHscsdInfoChange( 
-				RMobileCall& aMobileCall,
-				TEtelRequestBase& aRequestStatus,
-				TCmpBase<RMobileCall::TMobileCallHscsdInfoV1> &aMobileCallHscsdInfoV1,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyHscsdInfoChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& !aMobileCallHscsdInfoV1.IsEqual(ENoLogError) )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.		
-		RMobileCall::TMobileCallHscsdInfoV1Pckg pkgParam( aMobileCallHscsdInfoV1.GetValue() );
-		aMobileCall.NotifyHscsdInfoChange(aRequestStatus, pkgParam);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyHscsdInfoChange Wrong completion status"))	
-	ASSERT_TRUE(aMobileCallHscsdInfoV1.IsEqual(ELogError), 
-				_L("RMobileCall::NotifyHscsdInfoChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobileCall::NotifyMobileCallCapsChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobileCallNotifyMobileCallCapsChange( 
-				RMobileCall& aMobileCall,
-				TEtelRequestBase& aRequestStatus,
-				TCmpRMobileCallTMobileCallCaps &aMobileCallCapsV1,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeLong);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyMobileCallCapsChange did not complete"))
-
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& !aMobileCallCapsV1.IsEqual(ENoLogError) )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.		
-		RMobileCall::TMobileCallCapsV1Pckg pkgParam( aMobileCallCapsV1.GetValue() );
-		aMobileCall.NotifyMobileCallCapsChange(aRequestStatus, pkgParam);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeVeryLong);
-		}
-
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyMobileCallCapsChange Wrong completion status"))	
-	ASSERT_TRUE(aMobileCallCapsV1.IsEqual(ELogError), 
-				_L("RMobileCall::NotifyMobileCallCapsChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobileCall::NotifyMobileCallStatusChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobileCallNotifyMobileCallStatusChange( 
-				RMobileCall& aMobileCall,
-				TEtelRequestBase& aRequestStatus,
-				RMobileCall::TMobileCallStatus& aStatus, 
-				RMobileCall::TMobileCallStatus aExpectedStatus,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeLong);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyMobileCallStatusChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aStatus != aExpectedStatus )
-		{
-
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aMobileCall.NotifyMobileCallStatusChange(aRequestStatus, aStatus);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeLong);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyMobileCallStatusChange Wrong completion status"))	
-	ASSERT_EQUALS(aStatus, aExpectedStatus, 
-				_L("RMobileCall::NotifyMobileCallStatusChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobileCall::NotifyMobileDataCallCapsChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobileCallNotifyMobileDataCallCapsChange( 
-				RMobileCall& aMobileCall,
-				TEtelRequestBase& aRequestStatus,
-				TCmpBase<RMobileCall::TMobileCallDataCapsV1> &aMobileCallDataCapsV1,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyMobileDataCallCapsChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& !aMobileCallDataCapsV1.IsEqual(ENoLogError) )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.		
-		RMobileCall::TMobileCallDataCapsV1Pckg pkgParam( aMobileCallDataCapsV1.GetValue() );
-		aMobileCall.NotifyMobileDataCallCapsChange(aRequestStatus, pkgParam);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyMobileDataCallCapsChange Wrong completion status"))	
-	ASSERT_TRUE(aMobileCallDataCapsV1.IsEqual(ELogError), 
-				_L("RMobileCall::NotifyMobileDataCallCapsChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobileCall::NotifyUUSCapsChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobileCallNotifyUUSCapsChange( 
-				RMobileCall& aMobileCall,
-				TEtelRequestBase& aRequestStatus,
-				TUint32& aCaps, 
-				TUint32 aWantedCaps,
-				TUint32 aUnwantedCaps,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyUUSCapsChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  
-							&& ( ((aCaps & aWantedCaps) != aWantedCaps)
-								 || ((aCaps & aUnwantedCaps) != 0) ) )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.	
-		aMobileCall.NotifyUUSCapsChange(aRequestStatus, aCaps);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, 
-				_L("RMobileCall::NotifyUUSCapsChange Wrong completion status"))	
-	ASSERT_BITS_SET(aCaps, aWantedCaps, aUnwantedCaps, 
-				_L("RMobileCall::NotifyUUSCapsChange Wrong caps"))
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobileCall::NotifyVoiceFallback
-*/	
-void TCallControlTsyTestHelper::WaitForMobileCallNotifyVoiceFallback( 
-				RMobileCall& aMobileCall,
-				TEtelRequestBase& aRequestStatus,
-				TName& aCallName, 
-				TName aExpectedCallName,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyVoiceFallback did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aCallName != aExpectedCallName )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aMobileCall.NotifyVoiceFallback(aRequestStatus, aCallName);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyVoiceFallback Wrong completion status"))	
-	ASSERT_EQUALS_DES16(aCallName, aExpectedCallName, 
-				_L("RMobileCall::NotifyVoiceFallback Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobileCall::NotifyPrivacyConfirmation
-*/	
-void TCallControlTsyTestHelper::WaitForMobileCallNotifyPrivacyConfirmation( 
-				RMobileCall& aMobileCall,
-				TEtelRequestBase& aRequestStatus,
-				RMobilePhone::TMobilePhonePrivacy& aPrivacySetting, 
-				RMobilePhone::TMobilePhonePrivacy aExpectedPrivacySetting,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyPrivacyConfirmation did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aPrivacySetting != aExpectedPrivacySetting )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aMobileCall.NotifyPrivacyConfirmation(aRequestStatus, aPrivacySetting);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyPrivacyConfirmation Wrong completion status"))	
-	ASSERT_EQUALS(aPrivacySetting, aExpectedPrivacySetting, 
-				_L("RMobileCall::NotifyPrivacyConfirmation Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobileCall::NotifyTrafficChannelConfirmation
-*/	
-void TCallControlTsyTestHelper::WaitForMobileCallNotifyTrafficChannelConfirmation( 
-				RMobileCall& aMobileCall,
-				TEtelRequestBase& aRequestStatus,
-				RMobileCall::TMobileCallTch& aTchType, 
-				RMobileCall::TMobileCallTch aExpectedTchType,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyTrafficChannelConfirmation did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aTchType != aExpectedTchType )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aMobileCall.NotifyTrafficChannelConfirmation(aRequestStatus, aTchType);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyTrafficChannelConfirmation Wrong completion status"))	
-	ASSERT_EQUALS(aTchType, aExpectedTchType, 
-				_L("RMobileCall::NotifyTrafficChannelConfirmation Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobileCall::NotifyRemotePartyInfoChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobileCallNotifyRemotePartyInfoChange( 
-				RMobileCall& aMobileCall,
-				TEtelRequestBase& aRequestStatus,
-				TCmpBase<RMobileCall::TMobileCallRemotePartyInfoV1> &aMobileCallRemotePartyInfoV1,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyRemotePartyInfoChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& !aMobileCallRemotePartyInfoV1.IsEqual(ENoLogError) )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.		
-		RMobileCall::TMobileCallRemotePartyInfoV1Pckg pkgParam( aMobileCallRemotePartyInfoV1.GetValue() );
-		aMobileCall.NotifyRemotePartyInfoChange(aRequestStatus, pkgParam);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyRemotePartyInfoChange Wrong completion status"))	
-	ASSERT_TRUE(aMobileCallRemotePartyInfoV1.IsEqual(ELogError), 
-				_L("RMobileCall::NotifyRemotePartyInfoChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-
-		
-/**
-* Notify reset for RMobileConferenceCall::NotifyCapsChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobileConferenceCallNotifyCapsChange( 
-				RMobileConferenceCall& aMobileConferenceCall,
-				TEtelRequestBase& aRequestStatus,
-				TUint32& aCaps, 
-				TUint32 aWantedCaps,
-				TUint32 aUnwantedCaps,
-				TInt aWantedStatus )
-
-	{
-	
-	TEST_FRAMEWORK_LOG2(_L("RMobileConferenceCall::NotifyCapsChange looking for caps %08X"),
-			aWantedCaps	);
-	
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileConferenceCall::NotifyCapsChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  
-							&& ( ((aCaps & aWantedCaps) != aWantedCaps)
-								 || ((aCaps & aUnwantedCaps) != 0) ) )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.	
-		TEST_FRAMEWORK_LOG2(_L("TCallControlTsyTestHelper::WaitForMobileConferenceCallNotifyCapsChange got caps %08X"),
-				aCaps );
-		
-		aMobileConferenceCall.NotifyCapsChange(aRequestStatus, aCaps);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, 
-				_L("RMobileConferenceCall::NotifyCapsChange Wrong completion status"))	
-	ASSERT_BITS_SET(aCaps, aWantedCaps, aUnwantedCaps, 
-				_L("RMobileConferenceCall::NotifyCapsChange Wrong caps"))
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobileConferenceCall::NotifyConferenceEvent
-*/	
-void TCallControlTsyTestHelper::WaitForMobileConferenceCallNotifyConferenceEvent( 
-				RMobileConferenceCall& aMobileConferenceCall,
-				TEtelRequestBase& aRequestStatus,
-				RMobileConferenceCall::TMobileConferenceEvent& aEvent, 
-				RMobileConferenceCall::TMobileConferenceEvent aExpectedEvent,
-				TName &aCallName,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileConferenceCall::NotifyConferenceEvent did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aEvent != aExpectedEvent )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		TEST_FRAMEWORK_LOG4(_L("TCallControlTsyTestHelper::WaitForMobileConferenceCallNotifyConferenceEvent looking for %d got %d name %S"),
-									aExpectedEvent, aEvent, &aCallName );
-				
-		aMobileConferenceCall.NotifyConferenceEvent(aRequestStatus, aEvent, aCallName);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileConferenceCall::NotifyConferenceEvent Wrong completion status"))	
-	ASSERT_EQUALS(aEvent, aExpectedEvent, 
-				_L("RMobileConferenceCall::NotifyConferenceEvent Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobileConferenceCall::NotifyConferenceStatusChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobileConferenceCallNotifyConferenceStatusChange( 
-				RMobileConferenceCall& aMobileConferenceCall,
-				TEtelRequestBase& aRequestStatus,
-				RMobileConferenceCall::TMobileConferenceStatus& aStatus, 
-				RMobileConferenceCall::TMobileConferenceStatus aExpectedStatus,
-				TInt aWantedStatus )
-
-	{
-	TEST_FRAMEWORK_LOG2(_L("RMobileConferenceCall::NotifyConferenceStatusChange looking for %d"),
-			aExpectedStatus	);
-	
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileConferenceCall::NotifyConferenceStatusChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aStatus != aExpectedStatus )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		TEST_FRAMEWORK_LOG2(_L("RMobileConferenceCall::NotifyConferenceStatusChange intermediate %d"),
-								aStatus	);
-		aMobileConferenceCall.NotifyConferenceStatusChange(aRequestStatus, aStatus);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileConferenceCall::NotifyConferenceStatusChange Wrong completion status"))	
-	ASSERT_EQUALS(aStatus, aExpectedStatus, 
-				_L("RMobileConferenceCall::NotifyConferenceStatusChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobileLine::NotifyMobileLineStatusChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobileLineNotifyMobileLineStatusChange( 
-				RMobileLine& aMobileLine,
-				TEtelRequestBase& aRequestStatus,
-				RMobileCall::TMobileCallStatus& aStatus, 
-				RMobileCall::TMobileCallStatus aExpectedStatus,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobileLine::NotifyMobileLineStatusChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aStatus != aExpectedStatus )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aMobileLine.NotifyMobileLineStatusChange(aRequestStatus, aStatus);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileLine::NotifyMobileLineStatusChange Wrong completion status"))	
-	ASSERT_EQUALS(aStatus, aExpectedStatus, 
-				_L("RMobileLine::NotifyMobileLineStatusChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobilePhone::NotifyALSLineChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyALSLineChange( 
-				RMobilePhone& aMobilePhone,
-				TEtelRequestBase& aRequestStatus,
-				RMobilePhone::TMobilePhoneALSLine& aALSLine, 
-				RMobilePhone::TMobilePhoneALSLine aExpectedALSLine,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyALSLineChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aALSLine != aExpectedALSLine )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aMobilePhone.NotifyALSLineChange(aRequestStatus, aALSLine);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyALSLineChange Wrong completion status"))	
-	ASSERT_EQUALS(aALSLine, aExpectedALSLine, 
-				_L("RMobilePhone::NotifyALSLineChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobilePhone::NotifyAlternatingCallCapsChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyAlternatingCallCapsChange( 
-				RMobilePhone& aMobilePhone,
-				TEtelRequestBase& aRequestStatus,
-				TUint32& aCaps, 
-				TUint32 aWantedCaps,
-				TUint32 aUnwantedCaps,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyAlternatingCallCapsChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  
-							&& ( ((aCaps & aWantedCaps) != aWantedCaps)
-								 || ((aCaps & aUnwantedCaps) != 0) ) )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.	
-		aMobilePhone.NotifyAlternatingCallCapsChange(aRequestStatus, aCaps);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, 
-				_L("RMobilePhone::NotifyAlternatingCallCapsChange Wrong completion status"))	
-	ASSERT_BITS_SET(aCaps, aWantedCaps, aUnwantedCaps, 
-				_L("RMobilePhone::NotifyAlternatingCallCapsChange Wrong caps"))
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobilePhone::NotifyAlternatingCallModeChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyAlternatingCallModeChange( 
-				RMobilePhone& aMobilePhone,
-				TEtelRequestBase& aRequestStatus,
-				RMobilePhone::TMobilePhoneAlternatingCallMode& aMode, 
-				RMobilePhone::TMobilePhoneAlternatingCallMode aExpectedMode,
-				RMobilePhone::TMobileService &aFirstService,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyAlternatingCallModeChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aMode != aExpectedMode )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aMobilePhone.NotifyAlternatingCallModeChange(aRequestStatus, aMode, aFirstService);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyAlternatingCallModeChange Wrong completion status"))	
-	ASSERT_EQUALS(aMode, aExpectedMode, 
-				_L("RMobilePhone::NotifyAlternatingCallModeChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobilePhone::NotifyDTMFCapsChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyDTMFCapsChange( 
-				RMobilePhone& aMobilePhone,
-				TEtelRequestBase& aRequestStatus,
-				TUint32& aCaps, 
-				TUint32 aWantedCaps,
-				TUint32 aUnwantedCaps,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyDTMFCapsChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  
-							&& ( ((aCaps & aWantedCaps) != aWantedCaps)
-								 || ((aCaps & aUnwantedCaps) != 0) ) )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.	
-		aMobilePhone.NotifyDTMFCapsChange(aRequestStatus, aCaps);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, 
-				_L("RMobilePhone::NotifyDTMFCapsChange Wrong completion status"))	
-	ASSERT_BITS_SET(aCaps, aWantedCaps, aUnwantedCaps, 
-				_L("RMobilePhone::NotifyDTMFCapsChange Wrong caps"))
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobilePhone::NotifyDTMFEvent
-*/	
-void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyDTMFEvent( 
-				RMobilePhone& aMobilePhone,
-				TEtelRequestBase& aRequestStatus,
-				RMobilePhone::TMobilePhoneDTMFEvent& aEvent, 
-				RMobilePhone::TMobilePhoneDTMFEvent& aExpectedEvent,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyDTMFEvent did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aEvent != aExpectedEvent )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aMobilePhone.NotifyDTMFEvent(aRequestStatus, aEvent);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyDTMFEvent Wrong completion status"))	
-	ASSERT_EQUALS(aEvent, aExpectedEvent, 
-				_L("RMobilePhone::NotifyDTMFEvent Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobilePhone::NotifyFdnStatusChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyFdnStatusChange( 
-				RMobilePhone& aMobilePhone,
-				TEtelRequestBase& aRequestStatus,
-				RMobilePhone::TMobilePhoneFdnStatus& aFdnStatus, 
-				RMobilePhone::TMobilePhoneFdnStatus aExpectedFdnStatus,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyFdnStatusChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aFdnStatus != aExpectedFdnStatus )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aMobilePhone.NotifyFdnStatusChange(aRequestStatus, aFdnStatus);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyFdnStatusChange Wrong completion status"))	
-	ASSERT_EQUALS(aFdnStatus, aExpectedFdnStatus, 
-				_L("RMobilePhone::NotifyFdnStatusChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobilePhone::NotifyIncomingCallTypeChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyIncomingCallTypeChange( 
-				RMobilePhone& aMobilePhone,
-				TEtelRequestBase& aRequestStatus,
-				RMobilePhone::TMobilePhoneIncomingCallType &aCallType,
-				TCmpBase<RMobileCall::TMobileDataCallParamsV1> &aMobileDataCallParamsV1,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyIncomingCallTypeChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& !aMobileDataCallParamsV1.IsEqual(ENoLogError) )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.		
-		RMobileCall::TMobileDataCallParamsV1Pckg pkgParam( aMobileDataCallParamsV1.GetValue() );
-		aMobilePhone.NotifyIncomingCallTypeChange(aRequestStatus, aCallType, pkgParam);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyIncomingCallTypeChange Wrong completion status"))	
-	ASSERT_TRUE(aMobileDataCallParamsV1.IsEqual(ELogError), 
-				_L("RMobilePhone::NotifyIncomingCallTypeChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobilePhone::NotifyIndicatorChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyIndicatorChange( 
-				RMobilePhone& aMobilePhone,
-				TEtelRequestBase& aRequestStatus,
-				TUint32& aIndicator, 
-				TUint32 aExpectedIndicator,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyIndicatorChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aIndicator != aExpectedIndicator )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aMobilePhone.NotifyIndicatorChange(aRequestStatus, aIndicator);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyIndicatorChange Wrong completion status"))	
-	ASSERT_EQUALS(aIndicator, aExpectedIndicator, 
-				_L("RMobilePhone::NotifyIndicatorChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobilePhone::NotifyMessageWaiting
-*/	
-void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyMessageWaiting( 
-				RMobilePhone& aMobilePhone,
-				TEtelRequestBase& aRequestStatus,
-				TInt& aCount, 
-				TInt aExpectedCount,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyMessageWaiting did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aCount != aExpectedCount )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aMobilePhone.NotifyMessageWaiting(aRequestStatus, aCount);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyMessageWaiting Wrong completion status"))	
-	ASSERT_EQUALS(aCount, aExpectedCount, 
-				_L("RMobilePhone::NotifyMessageWaiting Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobilePhone::NotifyMulticallIndicatorChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyMulticallIndicatorChange( 
-				RMobilePhone& aMobilePhone,
-				TEtelRequestBase& aRequestStatus,
-				RMobilePhone::TMobilePhoneMulticallIndicator& aMulticallIndicator, 
-				RMobilePhone::TMobilePhoneMulticallIndicator aExpectedMulticallIndicator,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyMulticallIndicatorChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aMulticallIndicator != aExpectedMulticallIndicator )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aMobilePhone.NotifyMulticallIndicatorChange(aRequestStatus, aMulticallIndicator);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyMulticallIndicatorChange Wrong completion status"))	
-	ASSERT_EQUALS(aMulticallIndicator, aExpectedMulticallIndicator, 
-				_L("RMobilePhone::NotifyMulticallIndicatorChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobilePhone::NotifyMulticallParamsChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyMulticallParamsChange( 
-				RMobilePhone& aMobilePhone,
-				TEtelRequestBase& aRequestStatus,
-				TCmpBase<RMobilePhone::TMobilePhoneMulticallSettingsV1> &aMobilePhoneMulticallSettingsV1,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyMulticallParamsChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& !aMobilePhoneMulticallSettingsV1.IsEqual(ENoLogError) )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.		
-		RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg pkgParam( aMobilePhoneMulticallSettingsV1.GetValue() );
-		aMobilePhone.NotifyMulticallParamsChange(aRequestStatus, pkgParam);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyMulticallParamsChange Wrong completion status"))	
-	ASSERT_TRUE(aMobilePhoneMulticallSettingsV1.IsEqual(ELogError), 
-				_L("RMobilePhone::NotifyMulticallParamsChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobilePhone::NotifyMultimediaCallPreferenceChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyMultimediaCallPreferenceChange( 
-				RMobilePhone& aMobilePhone,
-				TEtelRequestBase& aRequestStatus,
-				RMobilePhone::TMobilePhoneMultimediaSettings& aMmSettings, 
-				RMobilePhone::TMobilePhoneMultimediaSettings aExpectedMmSettings,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyMultimediaCallPreferenceChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aMmSettings != aExpectedMmSettings )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aMobilePhone.NotifyMultimediaCallPreferenceChange(aRequestStatus, aMmSettings);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyMultimediaCallPreferenceChange Wrong completion status"))	
-	ASSERT_EQUALS(aMmSettings, aExpectedMmSettings, 
-				_L("RMobilePhone::NotifyMultimediaCallPreferenceChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobilePhone::NotifyStopInDTMFString
-*/	
-void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyStopInDTMFString( 
-				TEtelRequestBase& aRequestStatus,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyStopInDTMFString did not complete"))
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyStopInDTMFString Wrong completion status"))		
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobilePhone::NotifyAirTimeDurationChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyAirTimeDurationChange( 
-				RMobilePhone& aMobilePhone,
-				TEtelRequestBase& aRequestStatus,
-				TTimeIntervalSeconds& aTime, 
-				TTimeIntervalSeconds aExpectedTime,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyAirTimeDurationChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& aTime != aExpectedTime )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.
-		
-		aMobilePhone.NotifyAirTimeDurationChange(aRequestStatus, aTime);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-		
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyAirTimeDurationChange Wrong completion status"))	
-	ASSERT_EQUALS(aTime.Int(), aExpectedTime.Int(), 
-				_L("RMobilePhone::NotifyAirTimeDurationChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-		
-/**
-* Notify reset for RMobilePhone::NotifyCostInfoChange
-*/	
-void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyCostInfoChange( 
-				RMobilePhone& aMobilePhone,
-				TEtelRequestBase& aRequestStatus,
-				TCmpBase<RMobilePhone::TMobilePhoneCostInfoV1> &aMobilePhoneCostInfoV1,
-				TInt aWantedStatus )
-
-	{
-	// Wait for the request to complete	
-	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
-	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyCostInfoChange did not complete"))
-	
-	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
-							&& !aMobilePhoneCostInfoV1.IsEqual(ENoLogError) )
-		{
-		// Request has completed with incorrect result. Consume any outstanding
-		// Repost notification until timeout or we get the right result.		
-		RMobilePhone::TMobilePhoneCostInfoV1Pckg pkgParam( aMobilePhoneCostInfoV1.GetValue() );
-		aMobilePhone.NotifyCostInfoChange(aRequestStatus, pkgParam);
-		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
-		}
-
-	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyCostInfoChange Wrong completion status"))	
-	ASSERT_TRUE(aMobilePhoneCostInfoV1.IsEqual(ELogError), 
-				_L("RMobilePhone::NotifyCostInfoChange Wrong result"))	
-	
-	// Cancel request if it is still pending	
-	if (aRequestStatus.Int() == KRequestPending)	
-		{
-		aRequestStatus.Cancel();
-		}
-	}
-
-/**
-* Check the valid variables returned by RMobileCall::GetMobileCallInfo including the phone number
-*/	
-void TCallControlTsyTestHelper::CheckForValidCallInfo(RMobileCall::TMobileCallInfoV1& aCallInfo, TPtrC aNumber)	
-{
-	CheckForValidCallInfo(aCallInfo);
-	if(aCallInfo.iValid & RMobileCall::KCallDialledParty)
-		{
-		ASSERT_TRUE( aCallInfo.iDialledParty.iTelNumber == aNumber, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallId to true, but set iCallId to an invalid number"))
-		}	
-}
-
-/**
-* Check the valid variables returned by RMobileCall::GetMobileCallInfo, when phone number is unknown
-*/	
-void TCallControlTsyTestHelper::CheckForValidCallInfo(RMobileCall::TMobileCallInfoV1& aCallInfo, TInt aRequiredExitCode, TBool aIsCallConnected)	
-{
-	if(aCallInfo.iValid & RMobileCall::KCallStartTime)
-		{
-		TTime invalidTime = 0;
-		TTime startTime(aCallInfo.iStartTime);
-		if(aIsCallConnected)
-		    {
-            ASSERT_TRUE( startTime > invalidTime, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallStartTime to true, but set iStartTime to an invalid number"));
-		    }
-		else
-		    {
-		    ASSERT_EQUALS( startTime.Int64(), invalidTime.Int64(), _L("RMobileCall::GetMobileCallInfo set bitmask for KCallStartTime to true, but set iStartTime to an invalid invalid time"));
-		    }
-		}
-	
-	if(aCallInfo.iValid & RMobileCall::KCallDuration)
-		{
-		TTimeIntervalSeconds invalidTime = 0;
-		TTimeIntervalSeconds callDuration(aCallInfo.iDuration);
-		if(aIsCallConnected)
-		    {
-		    ASSERT_TRUE( callDuration > invalidTime, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallDuration to true, but set iDuration to an invalid number"));
-		    }
-		else
-		    {
-		    // Note: This value contains previous call duration since it is not connected, can be 0 or bigger than 0. 
-            ASSERT_TRUE( callDuration >= invalidTime, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallDuration to true, but set iDuration to an invalid number"));
-		    }
-		}
-
-	if(aCallInfo.iValid & RMobileCall::KCallId)
-		{
-		if(aIsCallConnected)
-		    {
-            ASSERT_TRUE( aCallInfo.iCallId > -1, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallId to true, but set iCallId to an invalid number"))
-		    }
-		else
-		    {
-            ASSERT_EQUALS( aCallInfo.iCallId, -1, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallId to true, but set iCallId to an invalid number"))
-		    }
-		}
-
-	if(aCallInfo.iValid & RMobileCall::KCallRemoteParty)
-		{
-		ASSERT_TRUE( aCallInfo.iRemoteParty.iRemoteNumber.iTelNumber.Length() > 0, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallRemoteParty to true, but set iRemoteParty.iRemoteNumber.iTelNumber.Length() to an invalid length"))
-		}
-
-	if(aCallInfo.iValid & RMobileCall::KCallExitCode)
-		{
-        // Note: iExitCode contains previous call result if it is not connected. 
-		ASSERT_EQUALS( aCallInfo.iExitCode, aRequiredExitCode, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallExitCode to true, but did not set iExitCode to that expected."))
-		}
-
-	if(aCallInfo.iValid & RMobileCall::KCallEmergency)
-		{
-		ASSERT_EQUALS( aCallInfo.iEmergency, (TBool)EFalse, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallEmergency to true, but did not set iEmergency to EFalse, even though this is not an emergency number"))
-		}				
-
-	if(aCallInfo.iValid & RMobileCall::KCallForwarded)
-		{
-		ASSERT_EQUALS( aCallInfo.iForwarded, (TBool)EFalse, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallForwarded to true, but did not set iForwarded to EFalse, even though this is not an Forwarded call"))
-		}		
-
-	if(aCallInfo.iValid & RMobileCall::KCallPrivacy)
-		{
-		ASSERT_TRUE( aCallInfo.iPrivacy != RMobilePhone::EPrivacyUnspecified, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallPrivacy to true, but did not set to an expected number"))
-		}	
-
-	if(aCallInfo.iValid & RMobileCall::KCallTch)
-		{
-		ASSERT_TRUE( (aCallInfo.iTch != RMobileCall::ETchUnknown) , _L("RMobileCall::GetMobileCallInfo set bitmask for KCallTch to true, but iTch is still unknown"))
-		}	
-
-    // CTSY initialises iAlternatingCall to EAlternatingModeUnspecified, which should be updated from LTSY.
-    // ( IPC is EMobileCallGetMobileCallInfo and method is CompleteNotifyMobileCallInfoChange().
-	if(aCallInfo.iValid & RMobileCall::KCallAlternating)
-		{
-		if(aIsCallConnected)
-		    {
-		    // Because LTSY is not updating this correctly, check is changed from !=EAlternatingModeUnspecified to ==EAlternatingModeUnspecified
-		    ASSERT_EQUALS(aCallInfo.iAlternatingCall, RMobilePhone::EAlternatingModeUnspecified, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallAlternating to true, but iAlternatingCall is not EAlternatingModeUnspecified"))
-		    }
-		else
-		    {
-		    ASSERT_EQUALS(aCallInfo.iAlternatingCall, RMobilePhone::EAlternatingModeUnspecified , _L("RMobileCall::GetMobileCallInfo set bitmask for KCallAlternating to true, but iAlternatingCall is not initialized EAlternatingModeUnspecified"));
-		    }
-		}
-
-}
-
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "tcallcontroltsytesthelper.h" 
+#include "cctsytestlogging.h"
+
+
+
+/**
+* Constructor
+*/	
+TCallControlTsyTestHelper::TCallControlTsyTestHelper(CCTSYIntegrationTestSuiteStepBase& aTestStep)
+			: TTsyTestHelperBase( aTestStep )
+	{
+	}
+/**
+* Notify reset for RCall::NotifyCapsChange
+*/	
+void TCallControlTsyTestHelper::WaitForCallNotifyCapsChange( 
+				RCall& aCall,
+				TEtelRequestBase& aRequestStatus,
+				RCall::TCaps& aCaps, 
+				RCall::TCaps aWantedCaps,
+				RCall::TCaps aUnwantedCaps,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RCall::NotifyCapsChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  
+							&& ( ((aCaps.iFlags & aWantedCaps.iFlags) != aWantedCaps.iFlags)
+								 || ((aCaps.iFlags & aUnwantedCaps.iFlags) != 0) ) )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.	
+		aCall.NotifyCapsChange(aRequestStatus, aCaps);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, 
+				_L("RCall::NotifyCapsChange Wrong completion status"))	
+	ASSERT_BITS_SET(aCaps.iFlags, aWantedCaps.iFlags, aUnwantedCaps.iFlags, 
+				_L("RCall::NotifyCapsChange Wrong caps"))
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RCall::NotifyCallDurationChange
+*/	
+void TCallControlTsyTestHelper::WaitForCallNotifyCallDurationChange( 
+				RCall& aCall,
+				TEtelRequestBase& aRequestStatus,
+				TTimeIntervalSeconds& aTime, 
+				TTimeIntervalSeconds aExpectedTime,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RCall::NotifyCallDurationChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aTime != aExpectedTime )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aCall.NotifyCallDurationChange(aRequestStatus, aTime);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RCall::NotifyCallDurationChange Wrong completion status"))	
+	ASSERT_EQUALS(aTime.Int(), aExpectedTime.Int(), 
+				_L("RCall::NotifyCallDurationChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RCall::NotifyHookChange
+*/	
+void TCallControlTsyTestHelper::WaitForCallNotifyHookChange( 
+				RCall& aCall,
+				TEtelRequestBase& aRequestStatus,
+				RCall::THookStatus& aHookStatus, 
+				RCall::THookStatus aExpectedHookStatus,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RCall::NotifyHookChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aHookStatus != aExpectedHookStatus )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aCall.NotifyHookChange(aRequestStatus, aHookStatus);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RCall::NotifyHookChange Wrong completion status"))	
+	ASSERT_EQUALS(aHookStatus, aExpectedHookStatus, 
+				_L("RCall::NotifyHookChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RCall::NotifyStatusChange
+*/	
+void TCallControlTsyTestHelper::WaitForCallNotifyStatusChange( 
+				RCall& aCall,
+				TEtelRequestBase& aRequestStatus,
+				RCall::TStatus& aCallStatus, 
+				RCall::TStatus& aExpectedCallStatus,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
+	ASSERT_EQUALS(err, KErrNone, _L("RCall::NotifyStatusChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aCallStatus != aExpectedCallStatus )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aCall.NotifyStatusChange(aRequestStatus, aCallStatus);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RCall::NotifyStatusChange Wrong completion status"))	
+	ASSERT_EQUALS(aCallStatus, aExpectedCallStatus, 
+				_L("RCall::NotifyStatusChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RLine::NotifyCapsChange
+*/	
+void TCallControlTsyTestHelper::WaitForLineNotifyCapsChange( 
+				RLine& aLine,
+				TEtelRequestBase& aRequestStatus,
+				RLine::TCaps& aCaps, 
+				RLine::TCaps aWantedCaps,
+				RLine::TCaps aUnwantedCaps,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RLine::NotifyCapsChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  
+							&& ( ((aCaps.iFlags & aWantedCaps.iFlags) != aWantedCaps.iFlags)
+								 || ((aCaps.iFlags & aUnwantedCaps.iFlags) != 0) ) )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.	
+		aLine.NotifyCapsChange(aRequestStatus, aCaps);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, 
+				_L("RLine::NotifyCapsChange Wrong completion status"))	
+	ASSERT_BITS_SET(aCaps.iFlags, aWantedCaps.iFlags, aUnwantedCaps.iFlags, 
+				_L("RLine::NotifyCapsChange Wrong caps"))
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RLine::NotifyCallAdded
+*/	
+void TCallControlTsyTestHelper::WaitForLineNotifyCallAdded( 
+				RLine& aLine,
+				TEtelRequestBase& aRequestStatus,
+				TName& aName, 
+				TName aExpectedName,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RLine::NotifyCallAdded did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aName != aExpectedName )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aLine.NotifyCallAdded(aRequestStatus, aName);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RLine::NotifyCallAdded Wrong completion status"))	
+	ASSERT_EQUALS_DES16(aName, aExpectedName, 
+				_L("RLine::NotifyCallAdded Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RLine::NotifyHookChange
+*/	
+void TCallControlTsyTestHelper::WaitForLineNotifyHookChange( 
+				RLine& aLine,
+				TEtelRequestBase& aRequestStatus,
+				RCall::THookStatus& aHookStatus, 
+				RCall::THookStatus aExpectedHookStatus,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RLine::NotifyHookChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aHookStatus != aExpectedHookStatus )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aLine.NotifyHookChange(aRequestStatus, aHookStatus);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RLine::NotifyHookChange Wrong completion status"))	
+	ASSERT_EQUALS(aHookStatus, aExpectedHookStatus, 
+				_L("RLine::NotifyHookChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RLine::NotifyStatusChange
+*/	
+void TCallControlTsyTestHelper::WaitForLineNotifyStatusChange( 
+				RLine& aLine,
+				TEtelRequestBase& aRequestStatus,
+				RCall::TStatus& aLineStatus, 
+				RCall::TStatus& aExpectedLineStatus,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeVeryLong);	
+	ASSERT_EQUALS(err, KErrNone, _L("RLine::NotifyStatusChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aLineStatus != aExpectedLineStatus )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aLine.NotifyStatusChange(aRequestStatus, aLineStatus);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeVeryLong);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RLine::NotifyStatusChange Wrong completion status"))	
+	ASSERT_EQUALS(aLineStatus, aExpectedLineStatus, 
+				_L("RLine::NotifyStatusChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RLine::NotifyIncomingCall
+*/	
+void TCallControlTsyTestHelper::WaitForLineNotifyIncomingCall( 
+				RLine& aLine,
+				TEtelRequestBase& aRequestStatus,
+				TName& aName, 
+				TName aExpectedName,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
+	ASSERT_EQUALS(err, KErrNone, _L("RLine::NotifyIncomingCall did not complete"));
+	
+	DEBUG_PRINTF2(_L("Name returned is: %S"), &aName);
+		
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aName != aExpectedName )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aLine.NotifyIncomingCall(aRequestStatus, aName);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RLine::NotifyIncomingCall Wrong completion status"))	
+	ASSERT_EQUALS_DES16(aName, aExpectedName, 
+				_L("RLine::NotifyIncomingCall Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RPhone::NotifyCapsChange
+*/	
+void TCallControlTsyTestHelper::WaitForPhoneNotifyCapsChange( 
+				RPhone& aPhone,
+				TEtelRequestBase& aRequestStatus,
+				RPhone::TCaps& aCaps, 
+				RPhone::TCaps aWantedCaps,
+				RPhone::TCaps aUnwantedCaps,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RPhone::NotifyCapsChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  
+							&& ( ((aCaps.iFlags & aWantedCaps.iFlags) != aWantedCaps.iFlags)
+								 || ((aCaps.iFlags & aUnwantedCaps.iFlags) != 0) ) )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.	
+		aPhone.NotifyCapsChange(aRequestStatus, aCaps);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, 
+				_L("RPhone::NotifyCapsChange Wrong completion status"))	
+	ASSERT_BITS_SET(aCaps.iFlags, aWantedCaps.iFlags, aUnwantedCaps.iFlags, 
+				_L("RPhone::NotifyCapsChange Wrong caps"))
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RPhone::NotifyModemDetected
+*/	
+void TCallControlTsyTestHelper::WaitForPhoneNotifyModemDetected( 
+				RPhone& aPhone,
+				TEtelRequestBase& aRequestStatus,
+				RPhone::TModemDetection& aDetection, 
+				RPhone::TModemDetection aExpectedDetection,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RPhone::NotifyModemDetected did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aDetection != aExpectedDetection )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aPhone.NotifyModemDetected(aRequestStatus, aDetection);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RPhone::NotifyModemDetected Wrong completion status"))	
+	ASSERT_EQUALS(aDetection, aExpectedDetection, 
+				_L("RPhone::NotifyModemDetected Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobileCall::NotifyAlternatingCallSwitch
+*/	
+void TCallControlTsyTestHelper::WaitForMobileCallNotifyAlternatingCallSwitch( 
+				TEtelRequestBase& aRequestStatus,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyAlternatingCallSwitch did not complete"))
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyAlternatingCallSwitch Wrong completion status"))		
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobileCall::NotifyAudioToneEvent
+*/	
+void TCallControlTsyTestHelper::WaitForMobileCallNotifyAudioToneEvent( 
+				RMobileCall& aMobileCall,
+				TEtelRequestBase& aRequestStatus,
+				TCmpBase<RMobileCall::TAudioToneV3> &aAudioToneV3,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyAudioToneEvent did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& !aAudioToneV3.IsEqual(ENoLogError) )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.		
+		RMobileCall::TAudioToneV3Pckg pkgParam( aAudioToneV3.GetValue() );
+		aMobileCall.NotifyAudioToneEvent(aRequestStatus, pkgParam);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyAudioToneEvent Wrong completion status"))	
+	ASSERT_TRUE(aAudioToneV3.IsEqual(ELogError), 
+				_L("RMobileCall::NotifyAudioToneEvent Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobileCall::NotifyCallEvent
+*/	
+void TCallControlTsyTestHelper::WaitForMobileCallNotifyCallEvent( 
+				RMobileCall& aMobileCall,
+				TEtelRequestBase& aRequestStatus,
+				RMobileCall::TMobileCallEvent& aEvent, 
+				RMobileCall::TMobileCallEvent aExpectedEvent,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyCallEvent did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aEvent != aExpectedEvent )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aMobileCall.NotifyCallEvent(aRequestStatus, aEvent);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyCallEvent Wrong completion status"))	
+	ASSERT_EQUALS(aEvent, aExpectedEvent, 
+				_L("RMobileCall::NotifyCallEvent Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobileCall::NotifyHscsdInfoChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobileCallNotifyHscsdInfoChange( 
+				RMobileCall& aMobileCall,
+				TEtelRequestBase& aRequestStatus,
+				TCmpBase<RMobileCall::TMobileCallHscsdInfoV1> &aMobileCallHscsdInfoV1,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyHscsdInfoChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& !aMobileCallHscsdInfoV1.IsEqual(ENoLogError) )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.		
+		RMobileCall::TMobileCallHscsdInfoV1Pckg pkgParam( aMobileCallHscsdInfoV1.GetValue() );
+		aMobileCall.NotifyHscsdInfoChange(aRequestStatus, pkgParam);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyHscsdInfoChange Wrong completion status"))	
+	ASSERT_TRUE(aMobileCallHscsdInfoV1.IsEqual(ELogError), 
+				_L("RMobileCall::NotifyHscsdInfoChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobileCall::NotifyMobileCallCapsChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobileCallNotifyMobileCallCapsChange( 
+				RMobileCall& aMobileCall,
+				TEtelRequestBase& aRequestStatus,
+				TCmpRMobileCallTMobileCallCaps &aMobileCallCapsV1,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeLong);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyMobileCallCapsChange did not complete"))
+
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& !aMobileCallCapsV1.IsEqual(ENoLogError) )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.		
+		RMobileCall::TMobileCallCapsV1Pckg pkgParam( aMobileCallCapsV1.GetValue() );
+		aMobileCall.NotifyMobileCallCapsChange(aRequestStatus, pkgParam);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeVeryLong);
+		}
+
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyMobileCallCapsChange Wrong completion status"))	
+	ASSERT_TRUE(aMobileCallCapsV1.IsEqual(ELogError), 
+				_L("RMobileCall::NotifyMobileCallCapsChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobileCall::NotifyMobileCallStatusChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobileCallNotifyMobileCallStatusChange( 
+				RMobileCall& aMobileCall,
+				TEtelRequestBase& aRequestStatus,
+				RMobileCall::TMobileCallStatus& aStatus, 
+				RMobileCall::TMobileCallStatus aExpectedStatus,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeLong);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyMobileCallStatusChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aStatus != aExpectedStatus )
+		{
+
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aMobileCall.NotifyMobileCallStatusChange(aRequestStatus, aStatus);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeLong);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyMobileCallStatusChange Wrong completion status"))	
+	ASSERT_EQUALS(aStatus, aExpectedStatus, 
+				_L("RMobileCall::NotifyMobileCallStatusChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobileCall::NotifyMobileDataCallCapsChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobileCallNotifyMobileDataCallCapsChange( 
+				RMobileCall& aMobileCall,
+				TEtelRequestBase& aRequestStatus,
+				TCmpBase<RMobileCall::TMobileCallDataCapsV1> &aMobileCallDataCapsV1,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyMobileDataCallCapsChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& !aMobileCallDataCapsV1.IsEqual(ENoLogError) )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.		
+		RMobileCall::TMobileCallDataCapsV1Pckg pkgParam( aMobileCallDataCapsV1.GetValue() );
+		aMobileCall.NotifyMobileDataCallCapsChange(aRequestStatus, pkgParam);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyMobileDataCallCapsChange Wrong completion status"))	
+	ASSERT_TRUE(aMobileCallDataCapsV1.IsEqual(ELogError), 
+				_L("RMobileCall::NotifyMobileDataCallCapsChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobileCall::NotifyUUSCapsChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobileCallNotifyUUSCapsChange( 
+				RMobileCall& aMobileCall,
+				TEtelRequestBase& aRequestStatus,
+				TUint32& aCaps, 
+				TUint32 aWantedCaps,
+				TUint32 aUnwantedCaps,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyUUSCapsChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  
+							&& ( ((aCaps & aWantedCaps) != aWantedCaps)
+								 || ((aCaps & aUnwantedCaps) != 0) ) )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.	
+		aMobileCall.NotifyUUSCapsChange(aRequestStatus, aCaps);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, 
+				_L("RMobileCall::NotifyUUSCapsChange Wrong completion status"))	
+	ASSERT_BITS_SET(aCaps, aWantedCaps, aUnwantedCaps, 
+				_L("RMobileCall::NotifyUUSCapsChange Wrong caps"))
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobileCall::NotifyVoiceFallback
+*/	
+void TCallControlTsyTestHelper::WaitForMobileCallNotifyVoiceFallback( 
+				RMobileCall& aMobileCall,
+				TEtelRequestBase& aRequestStatus,
+				TName& aCallName, 
+				TName aExpectedCallName,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyVoiceFallback did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aCallName != aExpectedCallName )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aMobileCall.NotifyVoiceFallback(aRequestStatus, aCallName);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyVoiceFallback Wrong completion status"))	
+	ASSERT_EQUALS_DES16(aCallName, aExpectedCallName, 
+				_L("RMobileCall::NotifyVoiceFallback Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobileCall::NotifyPrivacyConfirmation
+*/	
+void TCallControlTsyTestHelper::WaitForMobileCallNotifyPrivacyConfirmation( 
+				RMobileCall& aMobileCall,
+				TEtelRequestBase& aRequestStatus,
+				RMobilePhone::TMobilePhonePrivacy& aPrivacySetting, 
+				RMobilePhone::TMobilePhonePrivacy aExpectedPrivacySetting,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyPrivacyConfirmation did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aPrivacySetting != aExpectedPrivacySetting )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aMobileCall.NotifyPrivacyConfirmation(aRequestStatus, aPrivacySetting);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyPrivacyConfirmation Wrong completion status"))	
+	ASSERT_EQUALS(aPrivacySetting, aExpectedPrivacySetting, 
+				_L("RMobileCall::NotifyPrivacyConfirmation Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobileCall::NotifyTrafficChannelConfirmation
+*/	
+void TCallControlTsyTestHelper::WaitForMobileCallNotifyTrafficChannelConfirmation( 
+				RMobileCall& aMobileCall,
+				TEtelRequestBase& aRequestStatus,
+				RMobileCall::TMobileCallTch& aTchType, 
+				RMobileCall::TMobileCallTch aExpectedTchType,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyTrafficChannelConfirmation did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aTchType != aExpectedTchType )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aMobileCall.NotifyTrafficChannelConfirmation(aRequestStatus, aTchType);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyTrafficChannelConfirmation Wrong completion status"))	
+	ASSERT_EQUALS(aTchType, aExpectedTchType, 
+				_L("RMobileCall::NotifyTrafficChannelConfirmation Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobileCall::NotifyRemotePartyInfoChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobileCallNotifyRemotePartyInfoChange( 
+				RMobileCall& aMobileCall,
+				TEtelRequestBase& aRequestStatus,
+				TCmpBase<RMobileCall::TMobileCallRemotePartyInfoV1> &aMobileCallRemotePartyInfoV1,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileCall::NotifyRemotePartyInfoChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& !aMobileCallRemotePartyInfoV1.IsEqual(ENoLogError) )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.		
+		RMobileCall::TMobileCallRemotePartyInfoV1Pckg pkgParam( aMobileCallRemotePartyInfoV1.GetValue() );
+		aMobileCall.NotifyRemotePartyInfoChange(aRequestStatus, pkgParam);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileCall::NotifyRemotePartyInfoChange Wrong completion status"))	
+	ASSERT_TRUE(aMobileCallRemotePartyInfoV1.IsEqual(ELogError), 
+				_L("RMobileCall::NotifyRemotePartyInfoChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+
+		
+/**
+* Notify reset for RMobileConferenceCall::NotifyCapsChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobileConferenceCallNotifyCapsChange( 
+				RMobileConferenceCall& aMobileConferenceCall,
+				TEtelRequestBase& aRequestStatus,
+				TUint32& aCaps, 
+				TUint32 aWantedCaps,
+				TUint32 aUnwantedCaps,
+				TInt aWantedStatus )
+
+	{
+	
+	TEST_FRAMEWORK_LOG2(_L("RMobileConferenceCall::NotifyCapsChange looking for caps %08X"),
+			aWantedCaps	);
+	
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileConferenceCall::NotifyCapsChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  
+							&& ( ((aCaps & aWantedCaps) != aWantedCaps)
+								 || ((aCaps & aUnwantedCaps) != 0) ) )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.	
+		TEST_FRAMEWORK_LOG2(_L("TCallControlTsyTestHelper::WaitForMobileConferenceCallNotifyCapsChange got caps %08X"),
+				aCaps );
+		
+		aMobileConferenceCall.NotifyCapsChange(aRequestStatus, aCaps);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, 
+				_L("RMobileConferenceCall::NotifyCapsChange Wrong completion status"))	
+	ASSERT_BITS_SET(aCaps, aWantedCaps, aUnwantedCaps, 
+				_L("RMobileConferenceCall::NotifyCapsChange Wrong caps"))
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobileConferenceCall::NotifyConferenceEvent
+*/	
+void TCallControlTsyTestHelper::WaitForMobileConferenceCallNotifyConferenceEvent( 
+				RMobileConferenceCall& aMobileConferenceCall,
+				TEtelRequestBase& aRequestStatus,
+				RMobileConferenceCall::TMobileConferenceEvent& aEvent, 
+				RMobileConferenceCall::TMobileConferenceEvent aExpectedEvent,
+				TName &aCallName,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileConferenceCall::NotifyConferenceEvent did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aEvent != aExpectedEvent )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		TEST_FRAMEWORK_LOG4(_L("TCallControlTsyTestHelper::WaitForMobileConferenceCallNotifyConferenceEvent looking for %d got %d name %S"),
+									aExpectedEvent, aEvent, &aCallName );
+				
+		aMobileConferenceCall.NotifyConferenceEvent(aRequestStatus, aEvent, aCallName);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileConferenceCall::NotifyConferenceEvent Wrong completion status"))	
+	ASSERT_EQUALS(aEvent, aExpectedEvent, 
+				_L("RMobileConferenceCall::NotifyConferenceEvent Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobileConferenceCall::NotifyConferenceStatusChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobileConferenceCallNotifyConferenceStatusChange( 
+				RMobileConferenceCall& aMobileConferenceCall,
+				TEtelRequestBase& aRequestStatus,
+				RMobileConferenceCall::TMobileConferenceStatus& aStatus, 
+				RMobileConferenceCall::TMobileConferenceStatus aExpectedStatus,
+				TInt aWantedStatus )
+
+	{
+	TEST_FRAMEWORK_LOG2(_L("RMobileConferenceCall::NotifyConferenceStatusChange looking for %d"),
+			aExpectedStatus	);
+	
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileConferenceCall::NotifyConferenceStatusChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aStatus != aExpectedStatus )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		TEST_FRAMEWORK_LOG2(_L("RMobileConferenceCall::NotifyConferenceStatusChange intermediate %d"),
+								aStatus	);
+		aMobileConferenceCall.NotifyConferenceStatusChange(aRequestStatus, aStatus);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileConferenceCall::NotifyConferenceStatusChange Wrong completion status"))	
+	ASSERT_EQUALS(aStatus, aExpectedStatus, 
+				_L("RMobileConferenceCall::NotifyConferenceStatusChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobileLine::NotifyMobileLineStatusChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobileLineNotifyMobileLineStatusChange( 
+				RMobileLine& aMobileLine,
+				TEtelRequestBase& aRequestStatus,
+				RMobileCall::TMobileCallStatus& aStatus, 
+				RMobileCall::TMobileCallStatus aExpectedStatus,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobileLine::NotifyMobileLineStatusChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aStatus != aExpectedStatus )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aMobileLine.NotifyMobileLineStatusChange(aRequestStatus, aStatus);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobileLine::NotifyMobileLineStatusChange Wrong completion status"))	
+	ASSERT_EQUALS(aStatus, aExpectedStatus, 
+				_L("RMobileLine::NotifyMobileLineStatusChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobilePhone::NotifyALSLineChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyALSLineChange( 
+				RMobilePhone& aMobilePhone,
+				TEtelRequestBase& aRequestStatus,
+				RMobilePhone::TMobilePhoneALSLine& aALSLine, 
+				RMobilePhone::TMobilePhoneALSLine aExpectedALSLine,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyALSLineChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aALSLine != aExpectedALSLine )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aMobilePhone.NotifyALSLineChange(aRequestStatus, aALSLine);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyALSLineChange Wrong completion status"))	
+	ASSERT_EQUALS(aALSLine, aExpectedALSLine, 
+				_L("RMobilePhone::NotifyALSLineChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobilePhone::NotifyAlternatingCallCapsChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyAlternatingCallCapsChange( 
+				RMobilePhone& aMobilePhone,
+				TEtelRequestBase& aRequestStatus,
+				TUint32& aCaps, 
+				TUint32 aWantedCaps,
+				TUint32 aUnwantedCaps,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyAlternatingCallCapsChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  
+							&& ( ((aCaps & aWantedCaps) != aWantedCaps)
+								 || ((aCaps & aUnwantedCaps) != 0) ) )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.	
+		aMobilePhone.NotifyAlternatingCallCapsChange(aRequestStatus, aCaps);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, 
+				_L("RMobilePhone::NotifyAlternatingCallCapsChange Wrong completion status"))	
+	ASSERT_BITS_SET(aCaps, aWantedCaps, aUnwantedCaps, 
+				_L("RMobilePhone::NotifyAlternatingCallCapsChange Wrong caps"))
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobilePhone::NotifyAlternatingCallModeChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyAlternatingCallModeChange( 
+				RMobilePhone& aMobilePhone,
+				TEtelRequestBase& aRequestStatus,
+				RMobilePhone::TMobilePhoneAlternatingCallMode& aMode, 
+				RMobilePhone::TMobilePhoneAlternatingCallMode aExpectedMode,
+				RMobilePhone::TMobileService &aFirstService,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyAlternatingCallModeChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aMode != aExpectedMode )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aMobilePhone.NotifyAlternatingCallModeChange(aRequestStatus, aMode, aFirstService);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyAlternatingCallModeChange Wrong completion status"))	
+	ASSERT_EQUALS(aMode, aExpectedMode, 
+				_L("RMobilePhone::NotifyAlternatingCallModeChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobilePhone::NotifyDTMFCapsChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyDTMFCapsChange( 
+				RMobilePhone& aMobilePhone,
+				TEtelRequestBase& aRequestStatus,
+				TUint32& aCaps, 
+				TUint32 aWantedCaps,
+				TUint32 aUnwantedCaps,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeMedium);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyDTMFCapsChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  
+							&& ( ((aCaps & aWantedCaps) != aWantedCaps)
+								 || ((aCaps & aUnwantedCaps) != 0) ) )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.	
+		aMobilePhone.NotifyDTMFCapsChange(aRequestStatus, aCaps);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, 
+				_L("RMobilePhone::NotifyDTMFCapsChange Wrong completion status"))	
+	ASSERT_BITS_SET(aCaps, aWantedCaps, aUnwantedCaps, 
+				_L("RMobilePhone::NotifyDTMFCapsChange Wrong caps"))
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobilePhone::NotifyDTMFEvent
+*/	
+void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyDTMFEvent( 
+				RMobilePhone& aMobilePhone,
+				TEtelRequestBase& aRequestStatus,
+				RMobilePhone::TMobilePhoneDTMFEvent& aEvent, 
+				RMobilePhone::TMobilePhoneDTMFEvent& aExpectedEvent,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyDTMFEvent did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aEvent != aExpectedEvent )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aMobilePhone.NotifyDTMFEvent(aRequestStatus, aEvent);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyDTMFEvent Wrong completion status"))	
+	ASSERT_EQUALS(aEvent, aExpectedEvent, 
+				_L("RMobilePhone::NotifyDTMFEvent Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobilePhone::NotifyFdnStatusChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyFdnStatusChange( 
+				RMobilePhone& aMobilePhone,
+				TEtelRequestBase& aRequestStatus,
+				RMobilePhone::TMobilePhoneFdnStatus& aFdnStatus, 
+				RMobilePhone::TMobilePhoneFdnStatus aExpectedFdnStatus,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyFdnStatusChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aFdnStatus != aExpectedFdnStatus )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aMobilePhone.NotifyFdnStatusChange(aRequestStatus, aFdnStatus);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyFdnStatusChange Wrong completion status"))	
+	ASSERT_EQUALS(aFdnStatus, aExpectedFdnStatus, 
+				_L("RMobilePhone::NotifyFdnStatusChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobilePhone::NotifyIncomingCallTypeChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyIncomingCallTypeChange( 
+				RMobilePhone& aMobilePhone,
+				TEtelRequestBase& aRequestStatus,
+				RMobilePhone::TMobilePhoneIncomingCallType &aCallType,
+				TCmpBase<RMobileCall::TMobileDataCallParamsV1> &aMobileDataCallParamsV1,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyIncomingCallTypeChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& !aMobileDataCallParamsV1.IsEqual(ENoLogError) )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.		
+		RMobileCall::TMobileDataCallParamsV1Pckg pkgParam( aMobileDataCallParamsV1.GetValue() );
+		aMobilePhone.NotifyIncomingCallTypeChange(aRequestStatus, aCallType, pkgParam);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyIncomingCallTypeChange Wrong completion status"))	
+	ASSERT_TRUE(aMobileDataCallParamsV1.IsEqual(ELogError), 
+				_L("RMobilePhone::NotifyIncomingCallTypeChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobilePhone::NotifyIndicatorChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyIndicatorChange( 
+				RMobilePhone& aMobilePhone,
+				TEtelRequestBase& aRequestStatus,
+				TUint32& aIndicator, 
+				TUint32 aExpectedIndicator,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyIndicatorChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aIndicator != aExpectedIndicator )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aMobilePhone.NotifyIndicatorChange(aRequestStatus, aIndicator);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyIndicatorChange Wrong completion status"))	
+	ASSERT_EQUALS(aIndicator, aExpectedIndicator, 
+				_L("RMobilePhone::NotifyIndicatorChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobilePhone::NotifyMessageWaiting
+*/	
+void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyMessageWaiting( 
+				RMobilePhone& aMobilePhone,
+				TEtelRequestBase& aRequestStatus,
+				TInt& aCount, 
+				TInt aExpectedCount,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyMessageWaiting did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aCount != aExpectedCount )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aMobilePhone.NotifyMessageWaiting(aRequestStatus, aCount);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyMessageWaiting Wrong completion status"))	
+	ASSERT_EQUALS(aCount, aExpectedCount, 
+				_L("RMobilePhone::NotifyMessageWaiting Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobilePhone::NotifyMulticallIndicatorChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyMulticallIndicatorChange( 
+				RMobilePhone& aMobilePhone,
+				TEtelRequestBase& aRequestStatus,
+				RMobilePhone::TMobilePhoneMulticallIndicator& aMulticallIndicator, 
+				RMobilePhone::TMobilePhoneMulticallIndicator aExpectedMulticallIndicator,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyMulticallIndicatorChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aMulticallIndicator != aExpectedMulticallIndicator )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aMobilePhone.NotifyMulticallIndicatorChange(aRequestStatus, aMulticallIndicator);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyMulticallIndicatorChange Wrong completion status"))	
+	ASSERT_EQUALS(aMulticallIndicator, aExpectedMulticallIndicator, 
+				_L("RMobilePhone::NotifyMulticallIndicatorChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobilePhone::NotifyMulticallParamsChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyMulticallParamsChange( 
+				RMobilePhone& aMobilePhone,
+				TEtelRequestBase& aRequestStatus,
+				TCmpBase<RMobilePhone::TMobilePhoneMulticallSettingsV1> &aMobilePhoneMulticallSettingsV1,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyMulticallParamsChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& !aMobilePhoneMulticallSettingsV1.IsEqual(ENoLogError) )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.		
+		RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg pkgParam( aMobilePhoneMulticallSettingsV1.GetValue() );
+		aMobilePhone.NotifyMulticallParamsChange(aRequestStatus, pkgParam);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyMulticallParamsChange Wrong completion status"))	
+	ASSERT_TRUE(aMobilePhoneMulticallSettingsV1.IsEqual(ELogError), 
+				_L("RMobilePhone::NotifyMulticallParamsChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobilePhone::NotifyMultimediaCallPreferenceChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyMultimediaCallPreferenceChange( 
+				RMobilePhone& aMobilePhone,
+				TEtelRequestBase& aRequestStatus,
+				RMobilePhone::TMobilePhoneMultimediaSettings& aMmSettings, 
+				RMobilePhone::TMobilePhoneMultimediaSettings aExpectedMmSettings,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyMultimediaCallPreferenceChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aMmSettings != aExpectedMmSettings )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aMobilePhone.NotifyMultimediaCallPreferenceChange(aRequestStatus, aMmSettings);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyMultimediaCallPreferenceChange Wrong completion status"))	
+	ASSERT_EQUALS(aMmSettings, aExpectedMmSettings, 
+				_L("RMobilePhone::NotifyMultimediaCallPreferenceChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobilePhone::NotifyStopInDTMFString
+*/	
+void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyStopInDTMFString( 
+				TEtelRequestBase& aRequestStatus,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyStopInDTMFString did not complete"))
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyStopInDTMFString Wrong completion status"))		
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobilePhone::NotifyAirTimeDurationChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyAirTimeDurationChange( 
+				RMobilePhone& aMobilePhone,
+				TEtelRequestBase& aRequestStatus,
+				TTimeIntervalSeconds& aTime, 
+				TTimeIntervalSeconds aExpectedTime,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyAirTimeDurationChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& aTime != aExpectedTime )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.
+		
+		aMobilePhone.NotifyAirTimeDurationChange(aRequestStatus, aTime);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+		
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyAirTimeDurationChange Wrong completion status"))	
+	ASSERT_EQUALS(aTime.Int(), aExpectedTime.Int(), 
+				_L("RMobilePhone::NotifyAirTimeDurationChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+		
+/**
+* Notify reset for RMobilePhone::NotifyCostInfoChange
+*/	
+void TCallControlTsyTestHelper::WaitForMobilePhoneNotifyCostInfoChange( 
+				RMobilePhone& aMobilePhone,
+				TEtelRequestBase& aRequestStatus,
+				TCmpBase<RMobilePhone::TMobilePhoneCostInfoV1> &aMobilePhoneCostInfoV1,
+				TInt aWantedStatus )
+
+	{
+	// Wait for the request to complete	
+	TInt err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);	
+	ASSERT_EQUALS(err, KErrNone, _L("RMobilePhone::NotifyCostInfoChange did not complete"))
+	
+	while (	err == KErrNone && aRequestStatus.Int() == KErrNone  	
+							&& !aMobilePhoneCostInfoV1.IsEqual(ENoLogError) )
+		{
+		// Request has completed with incorrect result. Consume any outstanding
+		// Repost notification until timeout or we get the right result.		
+		RMobilePhone::TMobilePhoneCostInfoV1Pckg pkgParam( aMobilePhoneCostInfoV1.GetValue() );
+		aMobilePhone.NotifyCostInfoChange(aRequestStatus, pkgParam);
+		err = iTestStep.WaitForRequestWithTimeOut(aRequestStatus, ETimeShort);
+		}
+
+	ASSERT_EQUALS(aRequestStatus.Int(), aWantedStatus, _L("RMobilePhone::NotifyCostInfoChange Wrong completion status"))	
+	ASSERT_TRUE(aMobilePhoneCostInfoV1.IsEqual(ELogError), 
+				_L("RMobilePhone::NotifyCostInfoChange Wrong result"))	
+	
+	// Cancel request if it is still pending	
+	if (aRequestStatus.Int() == KRequestPending)	
+		{
+		aRequestStatus.Cancel();
+		}
+	}
+
+/**
+* Check the valid variables returned by RMobileCall::GetMobileCallInfo including the phone number
+*/	
+void TCallControlTsyTestHelper::CheckForValidCallInfo(RMobileCall::TMobileCallInfoV1& aCallInfo, TPtrC aNumber)	
+{
+	CheckForValidCallInfo(aCallInfo);
+	if(aCallInfo.iValid & RMobileCall::KCallDialledParty)
+		{
+		ASSERT_TRUE( aCallInfo.iDialledParty.iTelNumber == aNumber, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallId to true, but set iCallId to an invalid number"))
+		}	
+}
+
+/**
+* Check the valid variables returned by RMobileCall::GetMobileCallInfo, when phone number is unknown
+*/	
+void TCallControlTsyTestHelper::CheckForValidCallInfo(RMobileCall::TMobileCallInfoV1& aCallInfo, TInt aRequiredExitCode, TBool aIsCallConnected)	
+{
+	if(aCallInfo.iValid & RMobileCall::KCallStartTime)
+		{
+		TTime invalidTime = 0;
+		TTime startTime(aCallInfo.iStartTime);
+		if(aIsCallConnected)
+		    {
+            ASSERT_TRUE( startTime > invalidTime, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallStartTime to true, but set iStartTime to an invalid number"));
+		    }
+		else
+		    {
+		    ASSERT_EQUALS( startTime.Int64(), invalidTime.Int64(), _L("RMobileCall::GetMobileCallInfo set bitmask for KCallStartTime to true, but set iStartTime to an invalid invalid time"));
+		    }
+		}
+	
+	if(aCallInfo.iValid & RMobileCall::KCallDuration)
+		{
+		TTimeIntervalSeconds invalidTime = 0;
+		TTimeIntervalSeconds callDuration(aCallInfo.iDuration);
+		if(aIsCallConnected)
+		    {
+		    ASSERT_TRUE( callDuration > invalidTime, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallDuration to true, but set iDuration to an invalid number"));
+		    }
+		else
+		    {
+		    // Note: This value contains previous call duration since it is not connected, can be 0 or bigger than 0. 
+            ASSERT_TRUE( callDuration >= invalidTime, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallDuration to true, but set iDuration to an invalid number"));
+		    }
+		}
+
+	if(aCallInfo.iValid & RMobileCall::KCallId)
+		{
+		if(aIsCallConnected)
+		    {
+            ASSERT_TRUE( aCallInfo.iCallId > -1, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallId to true, but set iCallId to an invalid number"))
+		    }
+		else
+		    {
+            ASSERT_EQUALS( aCallInfo.iCallId, -1, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallId to true, but set iCallId to an invalid number"))
+		    }
+		}
+
+	if(aCallInfo.iValid & RMobileCall::KCallRemoteParty)
+		{
+		ASSERT_TRUE( aCallInfo.iRemoteParty.iRemoteNumber.iTelNumber.Length() > 0, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallRemoteParty to true, but set iRemoteParty.iRemoteNumber.iTelNumber.Length() to an invalid length"))
+		}
+
+	if(aCallInfo.iValid & RMobileCall::KCallExitCode)
+		{
+        // Note: iExitCode contains previous call result if it is not connected. 
+		ASSERT_EQUALS( aCallInfo.iExitCode, aRequiredExitCode, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallExitCode to true, but did not set iExitCode to that expected."))
+		}
+
+	if(aCallInfo.iValid & RMobileCall::KCallEmergency)
+		{
+		ASSERT_EQUALS( aCallInfo.iEmergency, (TBool)EFalse, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallEmergency to true, but did not set iEmergency to EFalse, even though this is not an emergency number"))
+		}				
+
+	if(aCallInfo.iValid & RMobileCall::KCallForwarded)
+		{
+		ASSERT_EQUALS( aCallInfo.iForwarded, (TBool)EFalse, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallForwarded to true, but did not set iForwarded to EFalse, even though this is not an Forwarded call"))
+		}		
+
+	if(aCallInfo.iValid & RMobileCall::KCallPrivacy)
+		{
+		ASSERT_TRUE( aCallInfo.iPrivacy != RMobilePhone::EPrivacyUnspecified, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallPrivacy to true, but did not set to an expected number"))
+		}	
+
+	if(aCallInfo.iValid & RMobileCall::KCallTch)
+		{
+		ASSERT_TRUE( (aCallInfo.iTch != RMobileCall::ETchUnknown) , _L("RMobileCall::GetMobileCallInfo set bitmask for KCallTch to true, but iTch is still unknown"))
+		}	
+
+    // CTSY initialises iAlternatingCall to EAlternatingModeUnspecified, which should be updated from LTSY.
+    // ( IPC is EMobileCallGetMobileCallInfo and method is CompleteNotifyMobileCallInfoChange().
+	if(aCallInfo.iValid & RMobileCall::KCallAlternating)
+		{
+		if(aIsCallConnected)
+		    {
+		    // Because LTSY is not updating this correctly, check is changed from !=EAlternatingModeUnspecified to ==EAlternatingModeUnspecified
+		    ASSERT_EQUALS(aCallInfo.iAlternatingCall, RMobilePhone::EAlternatingModeUnspecified, _L("RMobileCall::GetMobileCallInfo set bitmask for KCallAlternating to true, but iAlternatingCall is not EAlternatingModeUnspecified"))
+		    }
+		else
+		    {
+		    ASSERT_EQUALS(aCallInfo.iAlternatingCall, RMobilePhone::EAlternatingModeUnspecified , _L("RMobileCall::GetMobileCallInfo set bitmask for KCallAlternating to true, but iAlternatingCall is not initialized EAlternatingModeUnspecified"));
+		    }
+		}
+
+}
+