telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestmultimediacallcontrol.cpp
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
equal deleted inserted replaced
-1:000000000000 0:3553901f7fa8
       
     1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // Test step definitions for the MultimediaCallControl functional unit.
       
    15 // 
       
    16 //
       
    17 
       
    18 /**
       
    19  @internalTechnology
       
    20 */
       
    21 
       
    22 #include "cctsyintegrationtestmultimediacallcontrol.h"
       
    23 #include "cctsyinidata.h"
       
    24 
       
    25 /*
       
    26 _LIT8(KWriteTestData, "Some data");
       
    27 */
       
    28 	
       
    29 CCTSYIntegrationTestMultimediaCallControlBase::CCTSYIntegrationTestMultimediaCallControlBase(CEtelSessionMgr& aEtelSessionMgr)
       
    30 	: CCTSYIntegrationTestSuiteStepBase(aEtelSessionMgr),
       
    31 			iNetworkTestHelper(*this),
       
    32 			iCallControlTestHelper(*this)
       
    33 /**
       
    34  * Constructor
       
    35  */
       
    36 	{
       
    37 	}
       
    38 
       
    39 CCTSYIntegrationTestMultimediaCallControlBase::~CCTSYIntegrationTestMultimediaCallControlBase()
       
    40 /*
       
    41  * Destructor
       
    42  */
       
    43 	{
       
    44 	}
       
    45 	
       
    46 
       
    47 CCTSYIntegrationTestMultimediaCallControl0001::CCTSYIntegrationTestMultimediaCallControl0001(CEtelSessionMgr& aEtelSessionMgr)
       
    48 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
    49 /**
       
    50  * Constructor.
       
    51  */
       
    52 	{
       
    53 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0001::GetTestStepName());
       
    54 	}
       
    55 
       
    56 CCTSYIntegrationTestMultimediaCallControl0001::~CCTSYIntegrationTestMultimediaCallControl0001()
       
    57 /**
       
    58  * Destructor.
       
    59  */
       
    60 	{
       
    61 	}
       
    62 
       
    63 TVerdict CCTSYIntegrationTestMultimediaCallControl0001::doTestStepL()
       
    64 /**
       
    65  * @SYMTestCaseID BA-CTSY-INT-MMCC-0001
       
    66  * @SYMFssID BA/CTSY/MMCC-0001
       
    67  * @SYMTestCaseDesc Ensure a video call can be made.
       
    68  * @SYMTestPriority High
       
    69  * @SYMTestActions RCall::LoanDataPort, RCall::RecoverDataPort, RCall:HangUp, RCall::DialCancel, RCall::GetCallParams
       
    70  * @SYMTestExpectedResults Pass - Dialling multimedia call is successful when parameters are correct. Cancelling dial is successful.
       
    71  * @SYMTestType CIT
       
    72  * @SYMTestCaseDependencies live/manual
       
    73  *
       
    74  *
       
    75  * @return - TVerdict code
       
    76  */
       
    77 	{
       
    78 
       
    79 	//
       
    80 	// SET UP
       
    81 	//
       
    82 
       
    83 	
       
    84 	// Ensure phone is camped on a valid cell. 
       
    85 	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer,KMainPhone);
       
    86 	CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
       
    87 	
       
    88 	// Get data line 1. 
       
    89 	RMobileLine& mobileLine= iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KDataLine);
       
    90 	
       
    91 	// Get call 1. 
       
    92 	RMobileCall& call1= iEtelSessionMgr.GetCallL(KMainServer, KMainPhone, KDataLine, KCall1);
       
    93 
       
    94     // Check current networkmode returns ENetworkModeWcdma
       
    95 	RMobilePhone::TMobilePhoneNetworkMode mode;
       
    96 	CHECK_EQUALS_L(phone.GetCurrentMode(mode), KErrNone, _L("RMobilePhone::GetCurrentMode returned with an error"));
       
    97 	CHECK_EQUALS_L(mode, RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentMode did not return ENetworkModeWcdma as expected"));
       
    98 		
       
    99 	//
       
   100 	// SET UP END
       
   101 	//
       
   102 	
       
   103 	StartTest();
       
   104 	
       
   105 	//
       
   106 	// TEST START
       
   107 	//
       
   108 
       
   109 	
       
   110 	// 1. Set up multimedia mobile data call parameters. 
       
   111 	RMobileCall::TMobileHscsdCallParamsV1 multimediaParams;
       
   112 	RMobileCall::TMobileHscsdCallParamsV1Pckg checkParamsPkg(multimediaParams);
       
   113 	
       
   114 	// valid parameters 
       
   115 	multimediaParams.iIdRestrict = RMobileCall::ESendMyId;
       
   116 	multimediaParams.iAckTimer = 20;
       
   117 	multimediaParams.iMSToModemWindowSize = 2;
       
   118 	multimediaParams.iModemToMSWindowSize = 2;	
       
   119 	multimediaParams.iProtocol = RMobileCall::EProtocolPstnMultimedia;
       
   120 	multimediaParams.iQoS = RMobileCall::EQoSNonTransparent;
       
   121 	multimediaParams.iRLPVersion = RMobileCall::ERLPSingleLinkVersion0;
       
   122 	multimediaParams.iResequencingPeriod = 1;
       
   123 	multimediaParams.iRetransmissionAttempts = 2;
       
   124 	multimediaParams.iService = RMobileCall::EServiceDataCircuitAsync;
       
   125 	multimediaParams.iSpeed = RMobileCall::ESpeed64000;
       
   126 	multimediaParams.iUseEdge = EFalse;
       
   127 	multimediaParams.iV42bisCodewordsNum = 0;
       
   128     multimediaParams.iV42bisMaxStringLength = 0;
       
   129     multimediaParams.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   130 	multimediaParams.iAsymmetry = RMobileCall::EAsymmetryDownlink;
       
   131 	multimediaParams.iCodings = RMobileCall::KCapsAiurCoding144;
       
   132 	multimediaParams.iUserInitUpgrade = EFalse;
       
   133 	multimediaParams.iMaxTimeSlots = 15;
       
   134 	multimediaParams.iWantedRxTimeSlots = 15;
       
   135 	multimediaParams.iWantedAiur = RMobileCall::EAiurBpsUnspecified;
       
   136 
       
   137 	// post a notifier for RLine::NotifyStatusChange
       
   138 	TCoreEtelRequestStatus<RLine> notifyStatusChangeStatus (mobileLine,&RLine::NotifyStatusChangeCancel);
       
   139 	CleanupStack::PushL(notifyStatusChangeStatus);
       
   140 	RCall::TStatus lineStatus;
       
   141 	mobileLine.NotifyStatusChange(notifyStatusChangeStatus,lineStatus);
       
   142 	
       
   143 	// Dial a number that answers. 
       
   144 	TPtrC number; 
       
   145 	ASSERT_TRUE(GetStringFromConfig(KIniDataNumSection, KIniDataNumber1, number) != EFalse, _L("CTestStep::GetStringFromConfig did not complete as expected"));
       
   146 	TCoreEtelRequestStatus<RCall> dialStatus(call1, &RCall::DialCancel);
       
   147 	CleanupStack::PushL(dialStatus);
       
   148 
       
   149     // Failing CSD calls (see $CTSYProblem described below).
       
   150     // code can be added in after multimedia calls are working.
       
   151 
       
   152 	// $CTSYProblem: dial returns -18 or -6 depending of selected parametes (protocol)
       
   153     // EProtocolPstnMultimedia = -6, EProtocolV34 = -18
       
   154     // All CSD call are currently failing, this is not a CTSY problem because CTSY has no control over this issue
       
   155     /*
       
   156 	call1.Dial(dialStatus, checkParamsPkg, number); 
       
   157 	TEST_CHECK_POINT_L(_L("Couldn't dial a call, no point continuing."));
       
   158 	ASSERT_EQUALS(WaitForRequestWithTimeOut(dialStatus, ETimeMedium), KErrNone, _L("RCall::Dial timed-out"));
       
   159 	ASSERT_EQUALS(dialStatus.Int(), KErrNone, _L("RCall::Dial returned with an error"));
       
   160 	
       
   161 	// Verify line status goes from ringing to connected. 
       
   162 	RCall::TStatus expectedLineStatus = RCall::EStatusRinging;
       
   163 	const TInt expectedStatus = KErrNone;
       
   164 	
       
   165 	iCallControlTestHelper.WaitForLineNotifyStatusChange(mobileLine,
       
   166 														 notifyStatusChangeStatus,
       
   167 														 lineStatus,
       
   168 														 expectedLineStatus,
       
   169 														 expectedStatus);
       
   170 	
       
   171 	mobileLine.NotifyStatusChange(notifyStatusChangeStatus,lineStatus);													 													 
       
   172 	expectedLineStatus = RCall::EStatusConnected;
       
   173 	iCallControlTestHelper.WaitForLineNotifyStatusChange(mobileLine,
       
   174 														 notifyStatusChangeStatus,
       
   175 														 lineStatus,
       
   176 														 expectedLineStatus,
       
   177 														 expectedStatus);
       
   178 	// Loan comm port.
       
   179 	RCall::TCommPort commPort;
       
   180 	ASSERT_EQUALS(call1.LoanDataPort(commPort), KErrNone, _L("RCall::LoanCommPort returned an error"));
       
   181 	
       
   182 	// Get call parameters with RMobileCall::TMobileDataCallParamsVx and verify it is as expected. 
       
   183 	ASSERT_EQUALS(call1.GetCallParams(checkParamsPkg), KErrNone, _L("RCall::GetCallParams returned an error"));
       
   184 	ASSERT_TRUE(multimediaParams.iSpeed = RMobileCall::ESpeed64000, _L("RCall::GetCallParams returned wrongly RMobileCall::ESpeedUnspecified"));
       
   185 	ASSERT_TRUE(multimediaParams.iProtocol = RMobileCall::EProtocolPstnMultimedia, _L("TMobileDataCallParamsV1 returns aParams.iProtocol"));
       
   186 	ASSERT_EQUALS(multimediaParams.iService,  RMobileCall::EServiceDataCircuitAsync, _L("RCall::GetCallParams service was not the same that used in dial"));
       
   187 	 	
       
   188 	// Send some data. 
       
   189 	RCommServ cs;
       
   190 	cs.Connect();
       
   191 	RComm port;
       
   192 	port.Open(cs, commPort.iPort, ECommShared);
       
   193 	TRequestStatus writeStatus;
       
   194 	port.Write(writeStatus, KWriteTestData); 
       
   195 	port.Close();
       
   196 	cs.Close();
       
   197 	
       
   198 	// Recover comm port. 
       
   199 	ASSERT_EQUALS(call1.RecoverDataPort(), KErrNone, _L("RMobileCall::RecoverDataPort() returned an error"));
       
   200 
       
   201 	// Hang up. 
       
   202 	*/
       
   203 	TCoreEtelRequestStatus<RCall> hangUpStatus (call1, &RCall::HangUpCancel);	
       
   204 	CleanupStack::PushL(hangUpStatus);
       
   205     
       
   206     /*
       
   207 	call1.HangUp(hangUpStatus);
       
   208 	ASSERT_EQUALS(WaitForRequestWithTimeOut(hangUpStatus, ETimeLong), KErrNone, _L("RCall::HangUp timed-out"));
       
   209 	ASSERT_EQUALS(hangUpStatus.Int(), KErrNone, _L("RCall::HangUp returned an error"));	
       
   210 	*/
       
   211 	
       
   212 	// 2. Set up multimedia mobile data call parameters. 
       
   213 	RMobileCall::TMobileHscsdCallParamsV1 multimediaParams2;
       
   214 	RMobileCall::TMobileHscsdCallParamsV1Pckg checkParamsPkg2(multimediaParams2);
       
   215 	
       
   216 	// valid parameters 
       
   217 	multimediaParams2.iIdRestrict = RMobileCall::ESendMyId;
       
   218 	multimediaParams2.iAckTimer = 20;
       
   219 	multimediaParams2.iMSToModemWindowSize = 2;
       
   220 	multimediaParams2.iModemToMSWindowSize = 2;	
       
   221 	multimediaParams2.iProtocol = RMobileCall::EProtocolPstnMultimedia;
       
   222 	multimediaParams2.iQoS = RMobileCall::EQoSNonTransparent;
       
   223 	multimediaParams2.iRLPVersion = RMobileCall::ERLPSingleLinkVersion0;
       
   224 	multimediaParams2.iResequencingPeriod = 1;
       
   225 	multimediaParams2.iRetransmissionAttempts = 2;
       
   226 	multimediaParams2.iService = RMobileCall::EServiceDataCircuitAsync;
       
   227 	multimediaParams2.iSpeed = RMobileCall::ESpeed64000;
       
   228 	multimediaParams2.iUseEdge = EFalse;
       
   229 	multimediaParams2.iV42bisCodewordsNum = 0;
       
   230     multimediaParams2.iV42bisMaxStringLength = 0;
       
   231     multimediaParams2.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   232     multimediaParams.iMaxTimeSlots = 15;
       
   233 	multimediaParams.iWantedRxTimeSlots = 15;
       
   234 	multimediaParams.iWantedAiur = RMobileCall::EAiurBpsUnspecified;
       
   235 	
       
   236 	// post notifier for RCall::NotifyStatusChange
       
   237 	RCall::TStatus callStatus;
       
   238 	TCoreEtelRequestStatus<RCall> notifyCallStatusChangeStatus (call1,&RCall::NotifyStatusChangeCancel);
       
   239 	CleanupStack::PushL(notifyCallStatusChangeStatus);
       
   240 	call1.NotifyStatusChange(notifyCallStatusChangeStatus,callStatus);
       
   241 
       
   242 	/* 
       
   243 	// post a notifier for RLine::NotifyStatusChange
       
   244 	mobileLine.NotifyStatusChange(notifyStatusChangeStatus,lineStatus);
       
   245 	
       
   246 	// Dial a number which does not answer.  
       
   247 	ASSERT_TRUE(GetStringFromConfig(KIniDataNumSection, KIniDataNumber2, number) != EFalse, _L("CTestStep::GetStringFromConfig did not complete as expected"));
       
   248 	// $CTSYProblem: dial returns -18 or -6 depending of selected parametes (protocol)
       
   249     // EProtocolPstnMultimedia = -6, EProtocolV34 = -18
       
   250     // All CSD call are currently failing, this is not a CTSY problem because CTSY has no control over this issue
       
   251 
       
   252 	call1.Dial(dialStatus, checkParamsPkg2, number); 
       
   253 	TEST_CHECK_POINT_L(_L("Couldn't dial a call, no point continuing."));
       
   254 	ASSERT_EQUALS(WaitForRequestWithTimeOut(dialStatus, ETimeMedium), KErrNone, _L("RCall::Dial timed-out"));
       
   255 	ASSERT_EQUALS(dialStatus.Int(), KErrNone, _L("RCall::Dial returned with an error"));
       
   256 	
       
   257 	// Verify line status goes to ringing. 
       
   258 	expectedLineStatus = RCall::EStatusRinging;
       
   259 	iCallControlTestHelper.WaitForLineNotifyStatusChange(mobileLine,
       
   260 														 notifyStatusChangeStatus,
       
   261 														 lineStatus,
       
   262 														 expectedLineStatus,
       
   263 														 expectedStatus);
       
   264 														 
       
   265 	// Cancel dialling. 
       
   266 	call1.DialCancel();
       
   267 	
       
   268 	
       
   269 	// Verify call and line status is idle. 
       
   270 	RCall::TStatus expectedCallStatus = RCall::EStatusIdle;
       
   271 	iCallControlTestHelper.WaitForCallNotifyStatusChange(call1,
       
   272 														 notifyCallStatusChangeStatus,
       
   273 														 callStatus,
       
   274 														 expectedCallStatus,
       
   275 														 expectedStatus);
       
   276 														 
       
   277 	mobileLine.NotifyStatusChange(notifyStatusChangeStatus,lineStatus);													
       
   278 	expectedLineStatus = RCall::EStatusIdle;
       
   279 	iCallControlTestHelper.WaitForLineNotifyStatusChange(mobileLine,
       
   280 														 notifyStatusChangeStatus,
       
   281 														 lineStatus,
       
   282 														 expectedLineStatus,
       
   283 														 expectedStatus);
       
   284 	*/
       
   285 														 
       
   286 	// 3. Set up multimedia mobile data call with bad parameters in TMobileDataCallParamsVx. 
       
   287 	RMobileCall::TMobileHscsdCallParamsV1 multimediaParams3;
       
   288 	RMobileCall::TMobileHscsdCallParamsV1Pckg checkParamsPkg3(multimediaParams3);
       
   289 	
       
   290 	// valid parameters with invalid iProtocol parameter 
       
   291 	multimediaParams3.iIdRestrict = RMobileCall::ESendMyId;
       
   292 	multimediaParams3.iAckTimer = 20;
       
   293 	multimediaParams3.iMSToModemWindowSize = 2;
       
   294 	multimediaParams3.iModemToMSWindowSize = 2;	
       
   295 	multimediaParams3.iProtocol = RMobileCall::EProtocolPstnMultimedia;
       
   296 	multimediaParams3.iQoS = RMobileCall::EQoSNonTransparent;
       
   297 	multimediaParams3.iRLPVersion = RMobileCall::ERLPSingleLinkVersion0;
       
   298 	multimediaParams3.iResequencingPeriod = 1;
       
   299 	multimediaParams3.iRetransmissionAttempts = 2;
       
   300 	multimediaParams3.iService = RMobileCall::EServiceDataCircuitSync;
       
   301 	multimediaParams3.iSpeed = RMobileCall::ESpeed64000;
       
   302 	multimediaParams3.iUseEdge = EFalse;
       
   303 	multimediaParams3.iV42bisCodewordsNum = 0;
       
   304     multimediaParams3.iV42bisMaxStringLength = 0;
       
   305     multimediaParams3.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   306     multimediaParams.iMaxTimeSlots = 15;
       
   307 	multimediaParams.iWantedRxTimeSlots = 15;
       
   308 	multimediaParams.iWantedAiur = RMobileCall::EAiurBpsUnspecified;
       
   309 	
       
   310 	// Dial a number that answers. 
       
   311 	ASSERT_TRUE(GetStringFromConfig(KIniDataNumSection, KIniDataNumber1, number) != EFalse, _L("CTestStep::GetStringFromConfig did not complete as expected"));
       
   312 	// $CTSYProblem: dial returns -18 or -6 depending of selected parametes (protocol)
       
   313     // EProtocolPstnMultimedia = -6, EProtocolV34 = -18
       
   314     // All CSD call are currently failing, this is not a CTSY problem because CTSY
       
   315     // has no control over this issue
       
   316 	call1.Dial(dialStatus, checkParamsPkg2, number); 
       
   317 
       
   318 	// Verify dialling fails. 
       
   319 	ASSERT_TRUE((dialStatus.Int()!= KErrNone), _L("RCall::Dial did not returned with an error"));
       
   320 	
       
   321 	//
       
   322 	// TEST END
       
   323 	//
       
   324 
       
   325     StartCleanup();
       
   326 	
       
   327 	
       
   328 	// Pop
       
   329 	// notifyStatusChangeStatus
       
   330 	// dialStatus
       
   331 	// hangUpStatus
       
   332 	// notifyCallStatusChangeStatus
       
   333 	CleanupStack::PopAndDestroy(4, &notifyStatusChangeStatus);
       
   334 	
       
   335 	
       
   336 	return TestStepResult();
       
   337 	}
       
   338 
       
   339 TPtrC CCTSYIntegrationTestMultimediaCallControl0001::GetTestStepName()
       
   340 /**
       
   341  * @return The test step name.
       
   342  */
       
   343 	{
       
   344 	return _L("CCTSYIntegrationTestMultimediaCallControl0001");
       
   345 	}
       
   346 
       
   347 
       
   348 
       
   349 CCTSYIntegrationTestMultimediaCallControl0002::CCTSYIntegrationTestMultimediaCallControl0002(CEtelSessionMgr& aEtelSessionMgr)
       
   350 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
   351 /**
       
   352  * Constructor.
       
   353  */
       
   354 	{
       
   355 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0002::GetTestStepName());
       
   356 	}
       
   357 
       
   358 CCTSYIntegrationTestMultimediaCallControl0002::~CCTSYIntegrationTestMultimediaCallControl0002()
       
   359 /**
       
   360  * Destructor.
       
   361  */
       
   362 	{
       
   363 	}
       
   364 
       
   365 TVerdict CCTSYIntegrationTestMultimediaCallControl0002::doTestStepL()
       
   366 /**
       
   367  * @SYMTestCaseID BA-CTSY-INT-MMCC-0002
       
   368  * @SYMFssID BA/CTSY/MMCC-0002
       
   369  * @SYMTestCaseDesc Ensure a video call can be hung up by originator.
       
   370  * @SYMTestPriority High
       
   371  * @SYMTestActions RMobileCall::GetMobileCallInfo, RLine::NotifyStatusChange, RCall::HangUp, RCall::GetCallParams
       
   372  * @SYMTestExpectedResults Pass - Video call is hung up.
       
   373  * @SYMTestType CIT
       
   374  * @SYMTestCaseDependencies live/manual
       
   375  *
       
   376 
       
   377  *
       
   378  * @return - TVerdict code
       
   379  */
       
   380 	{
       
   381 
       
   382 	//
       
   383 	// SET UP
       
   384 	//
       
   385 
       
   386 	
       
   387 	// Ensure phone is camped on a valid cell. 
       
   388 	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer,KMainPhone);
       
   389 	CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
       
   390 
       
   391 	// Get data line 1. 
       
   392 	RMobileLine& mobileLine= iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KDataLine);
       
   393 	
       
   394 	// Get call 1. 
       
   395 	RMobileCall& call1= iEtelSessionMgr.GetCallL(KMainServer, KMainPhone, KDataLine, KCall1);
       
   396 	
       
   397     // Check current networkmode returns ENetworkModeWcdma
       
   398 	RMobilePhone::TMobilePhoneNetworkMode mode;
       
   399 	CHECK_EQUALS_L(phone.GetCurrentMode(mode), KErrNone, _L("RMobilePhone::GetCurrentMode returned with an error"));
       
   400 	CHECK_EQUALS_L(mode, RMobilePhone::ENetworkModeWcdma, _L("RMobilePhone::GetCurrentMode did not return ENetworkModeWcdma as expected"));
       
   401 
       
   402 	//
       
   403 	// SET UP END
       
   404 	//
       
   405 	
       
   406 	StartTest();
       
   407 	
       
   408 	//
       
   409 	// TEST START
       
   410 	//
       
   411 	
       
   412 	
       
   413 	// Set up multimedia mobile data call parameters for a multimedia call. 
       
   414 	RMobileCall::TMobileHscsdCallParamsV1 multimediaParams;
       
   415 	RMobileCall::TMobileHscsdCallParamsV1Pckg checkParamsPkg(multimediaParams);
       
   416 	
       
   417 	// valid parameters 
       
   418 	multimediaParams.iIdRestrict = RMobileCall::ESendMyId;
       
   419 	multimediaParams.iAckTimer = 20;
       
   420 	multimediaParams.iMSToModemWindowSize = 2;
       
   421 	multimediaParams.iModemToMSWindowSize = 2;	
       
   422 	multimediaParams.iProtocol = RMobileCall::EProtocolV34;
       
   423 	multimediaParams.iQoS = RMobileCall::EQoSNonTransparent;
       
   424 	multimediaParams.iRLPVersion = RMobileCall::ERLPSingleLinkVersion0;
       
   425 	multimediaParams.iResequencingPeriod = 1;
       
   426 	multimediaParams.iRetransmissionAttempts = 2;
       
   427 	multimediaParams.iService = RMobileCall::EServiceDataCircuitAsync;
       
   428 	multimediaParams.iSpeed = RMobileCall::ESpeed64000;
       
   429 	multimediaParams.iUseEdge = EFalse;
       
   430 	multimediaParams.iV42bisCodewordsNum = 0;
       
   431     multimediaParams.iV42bisMaxStringLength = 0;
       
   432     multimediaParams.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
   433 	multimediaParams.iAsymmetry = RMobileCall::EAsymmetryDownlink;
       
   434 	multimediaParams.iCodings = RMobileCall::KCapsAiurCoding144;
       
   435 	multimediaParams.iUserInitUpgrade = EFalse;
       
   436 	multimediaParams.iMaxTimeSlots = 15;
       
   437 	multimediaParams.iWantedRxTimeSlots = 15;
       
   438 	multimediaParams.iWantedAiur = RMobileCall::EAiurBpsUnspecified;
       
   439 
       
   440     // post a notifier for RLine::NotifyStatusChange
       
   441 	TCoreEtelRequestStatus<RLine> notifyStatusChangeStatus(mobileLine,&RLine::NotifyStatusChangeCancel);
       
   442 	CleanupStack::PushL(notifyStatusChangeStatus);
       
   443 	RCall::TStatus lineStatus;
       
   444 	mobileLine.NotifyStatusChange(notifyStatusChangeStatus,lineStatus);
       
   445     
       
   446 	// Dial a number that answers.
       
   447 	TPtrC number; 
       
   448 	ASSERT_TRUE(GetStringFromConfig(KIniDataNumSection, KIniDataNumber1, number) != EFalse, _L("CTestStep::GetStringFromConfig did not complete as expected"));
       
   449 	TCoreEtelRequestStatus<RCall> dialStatus(call1, &RCall::DialCancel);
       
   450 	CleanupStack::PushL(dialStatus);
       
   451 
       
   452     // Failing CSD calls (see $CTSYProblem described below).
       
   453     // Code can be added in after multimedia calls are working.
       
   454 
       
   455 	// $CTSYProblem: dial returns -18 or -6 depending of selected parametes (protocol)
       
   456     // EProtocolPstnMultimedia = -6, EProtocolV34 = -18
       
   457     // All CSD call are currently failing, this is not a CTSY problem because CTSY has no control over this issue
       
   458     /*
       
   459 	call1.Dial(dialStatus, checkParamsPkg, number); 
       
   460 	TEST_CHECK_POINT_L(_L("Couldn't dial a call, no point continuing."));
       
   461 	ASSERT_EQUALS(WaitForRequestWithTimeOut(dialStatus, ETimeMedium), KErrNone, _L("RCall::Dial timed-out"));
       
   462 	ASSERT_EQUALS(dialStatus.Int(), KErrNone, _L("RCall::Dial returned with an error"));
       
   463 	
       
   464 	// Verify line status goes from ringing to connected 
       
   465 	RCall::TStatus expectedLineStatus = RCall::EStatusRinging;
       
   466 	const TInt expectedStatus = KErrNone;
       
   467 	
       
   468 	iCallControlTestHelper.WaitForLineNotifyStatusChange(mobileLine,
       
   469 														 notifyStatusChangeStatus,
       
   470 														 lineStatus,
       
   471 														 expectedLineStatus,
       
   472 														 expectedStatus);			
       
   473 
       
   474 	mobileLine.NotifyStatusChange(notifyStatusChangeStatus,lineStatus);
       
   475 	expectedLineStatus = RCall::EStatusConnected;
       
   476 	iCallControlTestHelper.WaitForLineNotifyStatusChange(mobileLine,
       
   477 														 notifyStatusChangeStatus,
       
   478 														 lineStatus,
       
   479 														 expectedLineStatus,
       
   480 														 expectedStatus);
       
   481 
       
   482 	// Get call information and verify it is as expected. 
       
   483 	RMobileCall::TMobileCallInfoV1 mobileCallInfo;
       
   484 	RMobileCall::TMobileCallInfoV1Pckg callInfoPckg(mobileCallInfo);
       
   485 	ASSERT_EQUALS(call1.GetMobileCallInfo(callInfoPckg), KErrNone, _L("RMobileCall::GetMobileCallInfo returned an error"));
       
   486 	ASSERT_TRUE(mobileCallInfo.iCallName.Length() >0, _L("RMobileCall::GetMobileCallInfo returned an invalid callName"));
       
   487 	ASSERT_TRUE(mobileCallInfo.iLineName.Length() >0, _L("RMobileCall::GetMobileCallInfo returned an invalid line name"));
       
   488 
       
   489 	// Get call params and verify it is as expected.
       
   490 	ASSERT_EQUALS(call1.GetCallParams(checkParamsPkg), KErrNone, _L("RCall::GetCallParams returned an error"));
       
   491 	ASSERT_TRUE(multimediaParams.iSpeed = RMobileCall::ESpeed64000, _L("RCall::GetCallParams returned wrongly RMobileCall::ESpeedUnspecified"));
       
   492 	ASSERT_TRUE(multimediaParams.iProtocol = RMobileCall::EProtocolPstnMultimedia, _L("TMobileDataCallParamsV1 returns aParams.iProtocol"));
       
   493 	ASSERT_EQUALS(multimediaParams.iService,  RMobileCall::EServiceDataCircuitAsync, _L("RCall::GetCallParams service was not the same that used in dial"));
       
   494 	*/
       
   495 	// Hang up.
       
   496 	TCoreEtelRequestStatus<RCall> hangUpStatus (call1, &RCall::HangUpCancel);	
       
   497 	CleanupStack::PushL(hangUpStatus);
       
   498 	/*
       
   499 	call1.HangUp(hangUpStatus);
       
   500 	ASSERT_EQUALS(WaitForRequestWithTimeOut(hangUpStatus, ETimeLong), KErrNone, _L("RCall::HangUp timed-out"));
       
   501 	ASSERT_EQUALS(hangUpStatus.Int(), KErrNone, _L("RCall::HangUp returned an error"));	
       
   502 	*/
       
   503 	
       
   504 	//
       
   505 	// TEST END
       
   506 	//
       
   507 
       
   508     StartCleanup();
       
   509 	
       
   510 	//notifyStatusChangeStatus
       
   511 	//dialStatus
       
   512 	//hangUpStatus
       
   513 	CleanupStack::PopAndDestroy(3, &notifyStatusChangeStatus);
       
   514 	
       
   515 	return TestStepResult();
       
   516 	}
       
   517 
       
   518 TPtrC CCTSYIntegrationTestMultimediaCallControl0002::GetTestStepName()
       
   519 /**
       
   520  * @return The test step name.
       
   521  */
       
   522 	{
       
   523 	return _L("CCTSYIntegrationTestMultimediaCallControl0002");
       
   524 	}
       
   525 
       
   526 
       
   527 
       
   528 CCTSYIntegrationTestMultimediaCallControl0003::CCTSYIntegrationTestMultimediaCallControl0003(CEtelSessionMgr& aEtelSessionMgr)
       
   529 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
   530 /**
       
   531  * Constructor.
       
   532  */
       
   533 	{
       
   534 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0003::GetTestStepName());
       
   535 	}
       
   536 
       
   537 CCTSYIntegrationTestMultimediaCallControl0003::~CCTSYIntegrationTestMultimediaCallControl0003()
       
   538 /**
       
   539  * Destructor.
       
   540  */
       
   541 	{
       
   542 	}
       
   543 
       
   544 TVerdict CCTSYIntegrationTestMultimediaCallControl0003::doTestStepL()
       
   545 /**
       
   546  * @SYMTestCaseID BA-CTSY-INT-MMCC-0003
       
   547  * @SYMFssID BA/CTSY/MMCC-0003
       
   548  * @SYMTestCaseDesc Ensure a video call can be hung up by remote party.
       
   549  * @SYMTestPriority High
       
   550  * @SYMTestActions RMobileCall::GetMobileCallInfo, RLine::NotifyIncomingCall, RCall::HangUp, RCall::AnswerIncomingCall, RCall::GetCallParams
       
   551  * @SYMTestExpectedResults Pass - Video call is hung up.
       
   552  * @SYMTestType CIT
       
   553  * @SYMTestCaseDependencies live/manual
       
   554  *
       
   555 
       
   556  *
       
   557  * @return - TVerdict code
       
   558  */
       
   559 	{
       
   560 
       
   561 	//
       
   562 	// SET UP
       
   563 	//
       
   564 
       
   565 	
       
   566 	// Ensure phone is camped on a valid cell. 
       
   567 	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer,KMainPhone);
       
   568 	CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
       
   569 	
       
   570 	// Get data line 1. 
       
   571 	RMobileLine& mobileLine= iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KDataLine);
       
   572 	
       
   573 
       
   574 	//
       
   575 	// SET UP END
       
   576 	//
       
   577 	
       
   578 	StartTest();
       
   579 	
       
   580 	//
       
   581 	// TEST START
       
   582 	//
       
   583 	
       
   584 	
       
   585 	// Make an incoming call to the board. 
       
   586 	
       
   587 	// post notifier for RLine::NotifyIncomingCall
       
   588 	TCoreEtelRequestStatus<RLine> notifyIncomingCallStatus (mobileLine,&RLine::NotifyIncomingCallCancel);
       
   589 	CleanupStack::PushL(notifyIncomingCallStatus);
       
   590 	TName name;
       
   591 	mobileLine.NotifyIncomingCall(notifyIncomingCallStatus,name);	
       
   592 
       
   593     // Failing CSD calls (see $CTSYProblem described below).
       
   594     // Code can be added in after multimedia calls are working.
       
   595 
       
   596 	// $CTSYProblem: The line is not notifying tester to answer the incoming call ( notifier never completes). 
       
   597 	// CTSY does not receive anykind of signal from line about incoming call thus it cannot be answered.
       
   598     // All CSD call are currently failing, this is not a CTSY problem because CTSY has no control over this issue
       
   599 
       
   600 	/*
       
   601 	// Remote party invokes an incoming video call. 
       
   602 	DisplayUserInteractionPromptL(_L("You should now dial a multimedia call to this board from some other mobilephone"), ETimeLong);
       
   603 
       
   604 	// Check RLine::NotifyIncomingCall completes with valid call name.
       
   605 	ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyIncomingCallStatus,ETimeMedium), KErrNone, _L("RLine::NotifyIncomingCall did not complete without error"));
       
   606 	ASSERT_EQUALS(notifyIncomingCallStatus.Int(), KErrNone, _L("RLine::NotifyIncomingCall set requestStatus to an error"));
       
   607 	ASSERT_TRUE(name.Length() > 0, _L("RLine::NotifyIncomingCall did not set the name"));
       
   608 
       
   609 	// Get call 1.
       
   610 	TCallId incomingCallId;
       
   611 	RMobileCall& dataCall = iEtelSessionMgr.GetIncomingCallL(KMainServer, KMainPhone, KDataLine, name, incomingCallId);
       
   612 	
       
   613 	// post notifier for RCall::NotifyStatusChange for incoming call
       
   614 	TCoreEtelRequestStatus<RCall> notifyCallStatusChangeStatus (dataCall, &RCall::NotifyStatusChangeCancel);
       
   615 	CleanupStack::PushL(notifyCallStatusChangeStatus);
       
   616 	RCall::TStatus callStatus;
       
   617 	dataCall.NotifyStatusChange(notifyCallStatusChangeStatus, callStatus);
       
   618 	
       
   619 	// Answer incoming call. 
       
   620 	TCoreEtelRequestStatus<RCall> answerIncomingStatus(dataCall, &RCall::AnswerIncomingCallCancel);
       
   621 	CleanupStack::PushL(answerIncomingStatus);	
       
   622 	
       
   623 	dataCall.AnswerIncomingCall(answerIncomingStatus);
       
   624 	ASSERT_EQUALS(WaitForRequestWithTimeOut(answerIncomingStatus, ETimeMedium), KErrNone, _L("RMobileCall::AnswerIncomingCall timed-out"));
       
   625 	ASSERT_EQUALS(answerIncomingStatus.Int(), KErrNone, _L("RMobileCall::AnswerIncomingCall returned with an error"));
       
   626 	
       
   627 	// Verify call connected. 
       
   628 	RCall::TStatus expectedCallStatus = RCall::EStatusConnected;
       
   629 	
       
   630 	iCallControlTestHelper.WaitForCallNotifyStatusChange(dataCall,
       
   631 														 notifyCallStatusChangeStatus,
       
   632 														 callStatus,
       
   633 														 expectedCallStatus,
       
   634 														 KErrNone);
       
   635 
       
   636 	// Get call information and verify it is as expected. 
       
   637 	RMobileCall::TMobileCallInfoV1 mobileCallInfo;
       
   638 	RMobileCall::TMobileCallInfoV1Pckg callInfoPckg(mobileCallInfo);
       
   639 	ASSERT_EQUALS(dataCall.GetMobileCallInfo(callInfoPckg), KErrNone, _L("RMobileCall::GetMobileCallInfo returned an error"));
       
   640 	ASSERT_TRUE(mobileCallInfo.iCallName.Length() >0, _L("RMobileCall::GetMobileCallInfo returned an invalid callName"));
       
   641 	ASSERT_TRUE(mobileCallInfo.iLineName.Length() >0, _L("RMobileCall::GetMobileCallInfo returned an invalid line name"));
       
   642 
       
   643 	// Get call params and verify it is as expected. 
       
   644 	RMobileCall::TMobileDataCallParamsV1 multimediaParams;
       
   645 	RMobileCall::TMobileCallParamsV1Pckg checkParamsPkg(multimediaParams);
       
   646 	ASSERT_EQUALS(dataCall.GetCallParams(checkParamsPkg), KErrNone, _L("RCall::GetCallParams returned an error"));
       
   647 	ASSERT_TRUE(multimediaParams.iSpeed = RMobileCall::ESpeed64000, _L("RCall::GetCallParams returned wrongly RMobileCall::ESpeedUnspecified"));
       
   648 	ASSERT_TRUE(multimediaParams.iProtocol = RMobileCall::EProtocolPstnMultimedia, _L("TMobileDataCallParamsV1 returns aParams.iProtocol"));
       
   649 	ASSERT_EQUALS(multimediaParams.iService,  RMobileCall::EServiceDataCircuitAsync, _L("RCall::GetCallParams service was not the same that used in dial"));
       
   650 	
       
   651 	// post a notifier for RLine::NotifyStatusChange
       
   652 	TCoreEtelRequestStatus<RLine> notifyStatusChangeStatus (mobileLine,&RLine::NotifyStatusChangeCancel);
       
   653 	CleanupStack::PushL(notifyStatusChangeStatus);
       
   654 	RCall::TStatus lineStatus;
       
   655 	mobileLine.NotifyStatusChange(notifyStatusChangeStatus,lineStatus);
       
   656 
       
   657 	// post notify for RCall::NotifyStatusChange
       
   658 	dataCall.NotifyStatusChange(notifyCallStatusChangeStatus, callStatus);
       
   659 
       
   660 	// Hang up. 
       
   661 	TCoreEtelRequestStatus<RCall> hangUpStatus (dataCall, &RCall::HangUpCancel);	
       
   662 	CleanupStack::PushL(hangUpStatus);
       
   663 	dataCall.HangUp(hangUpStatus);
       
   664 	ASSERT_EQUALS(WaitForRequestWithTimeOut(hangUpStatus, ETimeLong), KErrNone, _L("RCall::HangUp timed-out"));
       
   665 	ASSERT_EQUALS(hangUpStatus.Int(), KErrNone, _L("RCall::HangUp returned an error"));	
       
   666 
       
   667 	// Verify call and line are idle. 
       
   668 	expectedCallStatus = RCall::EStatusIdle;
       
   669 	iCallControlTestHelper.WaitForCallNotifyStatusChange(dataCall,
       
   670 														 notifyCallStatusChangeStatus,
       
   671 														 callStatus,
       
   672 														 expectedCallStatus,
       
   673 														 KErrNone);
       
   674 														 
       
   675 	RCall::TStatus expectedLineStatus = RCall::EStatusIdle;
       
   676 	iCallControlTestHelper.WaitForLineNotifyStatusChange(mobileLine,
       
   677 														 notifyStatusChangeStatus,
       
   678 														 lineStatus,
       
   679 														 expectedLineStatus,
       
   680 														 KErrNone);
       
   681 	*/
       
   682 	
       
   683 	//
       
   684 	// TEST END
       
   685 	//
       
   686 
       
   687     StartCleanup();
       
   688 	
       
   689 	// Pop
       
   690 	// notifyIncomingCallStatus
       
   691 	// notifyCallStatusChangeStatus
       
   692 	// answerIncomingStatus
       
   693 	// notifyStatusChangeStatus
       
   694 	// hangUpStatus
       
   695 	CleanupStack::PopAndDestroy(1, &notifyIncomingCallStatus);
       
   696 
       
   697 	return TestStepResult();
       
   698 	}
       
   699 
       
   700 TPtrC CCTSYIntegrationTestMultimediaCallControl0003::GetTestStepName()
       
   701 /**
       
   702  * @return The test step name.
       
   703  */
       
   704 	{
       
   705 	return _L("CCTSYIntegrationTestMultimediaCallControl0003");
       
   706 	}
       
   707 
       
   708 
       
   709 
       
   710 CCTSYIntegrationTestMultimediaCallControl0004::CCTSYIntegrationTestMultimediaCallControl0004(CEtelSessionMgr& aEtelSessionMgr)
       
   711 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
   712 /**
       
   713  * Constructor.
       
   714  */
       
   715 	{
       
   716 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0004::GetTestStepName());
       
   717 	}
       
   718 
       
   719 CCTSYIntegrationTestMultimediaCallControl0004::~CCTSYIntegrationTestMultimediaCallControl0004()
       
   720 /**
       
   721  * Destructor.
       
   722  */
       
   723 	{
       
   724 	}
       
   725 
       
   726 TVerdict CCTSYIntegrationTestMultimediaCallControl0004::doTestStepL()
       
   727 /**
       
   728  * @SYMTestCaseID BA-CTSY-INT-MMCC-0004
       
   729  * @SYMFssID BA/CTSY/MMCC-0004
       
   730  * @SYMTestCaseDesc Test hanging up a video call before the line starts ringing.
       
   731  * @SYMTestPriority High
       
   732  * @SYMTestActions RCall::DialCancel, RCall::GetStatus, RLine::GetStatus
       
   733  * @SYMTestExpectedResults Pass - Video call dialling is cancelled.
       
   734  * @SYMTestType CIT
       
   735  * @SYMTestCaseDependencies live/manual
       
   736  *
       
   737 
       
   738  *
       
   739  * @return - TVerdict code
       
   740  */
       
   741 	{
       
   742 
       
   743 	//
       
   744 	// SET UP
       
   745 	//
       
   746 
       
   747 	
       
   748 	// Ensure phone is camped on a valid cell. 
       
   749 
       
   750 	// Get data line 1. 
       
   751 
       
   752 	// Get call 1. 
       
   753 
       
   754 
       
   755 	//
       
   756 	// SET UP END
       
   757 	//
       
   758 	
       
   759 	StartTest();
       
   760 	
       
   761 	//
       
   762 	// TEST START
       
   763 	//
       
   764 	
       
   765 	
       
   766 	// Set up multimedia mobile data call parameters for a multimedia call. 
       
   767 
       
   768 	// Dial. 
       
   769 
       
   770 	// Cancel dial. 
       
   771 
       
   772 	// Verify call and line are idle. 
       
   773 
       
   774 	
       
   775 	//
       
   776 	// TEST END
       
   777 	//
       
   778 
       
   779     StartCleanup();
       
   780 	
       
   781 	// Put any required test clean up here, then remove this comment
       
   782 	
       
   783 	return TestStepResult();
       
   784 	}
       
   785 
       
   786 TPtrC CCTSYIntegrationTestMultimediaCallControl0004::GetTestStepName()
       
   787 /**
       
   788  * @return The test step name.
       
   789  */
       
   790 	{
       
   791 	return _L("CCTSYIntegrationTestMultimediaCallControl0004");
       
   792 	}
       
   793 
       
   794 
       
   795 
       
   796 CCTSYIntegrationTestMultimediaCallControl0005::CCTSYIntegrationTestMultimediaCallControl0005(CEtelSessionMgr& aEtelSessionMgr)
       
   797 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
   798 /**
       
   799  * Constructor.
       
   800  */
       
   801 	{
       
   802 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0005::GetTestStepName());
       
   803 	}
       
   804 
       
   805 CCTSYIntegrationTestMultimediaCallControl0005::~CCTSYIntegrationTestMultimediaCallControl0005()
       
   806 /**
       
   807  * Destructor.
       
   808  */
       
   809 	{
       
   810 	}
       
   811 
       
   812 TVerdict CCTSYIntegrationTestMultimediaCallControl0005::doTestStepL()
       
   813 /**
       
   814  * @SYMTestCaseID BA-CTSY-INT-MMCC-0005
       
   815  * @SYMFssID BA/CTSY/MMCC-0005
       
   816  * @SYMTestCaseDesc Test hanging up a video call while the line is ringing.
       
   817  * @SYMTestPriority High
       
   818  * @SYMTestActions RLine::NotifyStatusChange, RCall::HangUp, RCall::GetStatus, RLine::GetStatus
       
   819  * @SYMTestExpectedResults Pass - Video call is hung up.
       
   820  * @SYMTestType CIT
       
   821  * @SYMTestCaseDependencies live/manual
       
   822  *
       
   823 
       
   824  *
       
   825  * @return - TVerdict code
       
   826  */
       
   827 	{
       
   828 
       
   829 	//
       
   830 	// SET UP
       
   831 	//
       
   832 
       
   833 	
       
   834 	// Ensure phone is camped on a valid cell. 
       
   835 
       
   836 	// Get data line 1. 
       
   837 
       
   838 	// Get call 1. 
       
   839 
       
   840 
       
   841 	//
       
   842 	// SET UP END
       
   843 	//
       
   844 	
       
   845 	StartTest();
       
   846 	
       
   847 	//
       
   848 	// TEST START
       
   849 	//
       
   850 	
       
   851 	
       
   852 	// Set up multimedia mobile data call parameters for a multimedia call. 
       
   853 
       
   854 	// Dial a number that won't answer. 
       
   855 
       
   856 	// Verify line goes to ringing. 
       
   857 
       
   858 	// Hang up. 
       
   859 
       
   860 	
       
   861 	//
       
   862 	// TEST END
       
   863 	//
       
   864 
       
   865     StartCleanup();
       
   866 	
       
   867 	// Put any required test clean up here, then remove this comment
       
   868 	
       
   869 	return TestStepResult();
       
   870 	}
       
   871 
       
   872 TPtrC CCTSYIntegrationTestMultimediaCallControl0005::GetTestStepName()
       
   873 /**
       
   874  * @return The test step name.
       
   875  */
       
   876 	{
       
   877 	return _L("CCTSYIntegrationTestMultimediaCallControl0005");
       
   878 	}
       
   879 
       
   880 
       
   881 
       
   882 CCTSYIntegrationTestMultimediaCallControl0006::CCTSYIntegrationTestMultimediaCallControl0006(CEtelSessionMgr& aEtelSessionMgr)
       
   883 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
   884 /**
       
   885  * Constructor.
       
   886  */
       
   887 	{
       
   888 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0006::GetTestStepName());
       
   889 	}
       
   890 
       
   891 CCTSYIntegrationTestMultimediaCallControl0006::~CCTSYIntegrationTestMultimediaCallControl0006()
       
   892 /**
       
   893  * Destructor.
       
   894  */
       
   895 	{
       
   896 	}
       
   897 
       
   898 TVerdict CCTSYIntegrationTestMultimediaCallControl0006::doTestStepL()
       
   899 /**
       
   900  * @SYMTestCaseID BA-CTSY-INT-MMCC-0006
       
   901  * @SYMFssID BA/CTSY/MMCC-0006
       
   902  * @SYMTestCaseDesc Test handling of time out when remote party does not answer the video call.
       
   903  * @SYMTestPriority High
       
   904  * @SYMTestActions RLine::NotifyStatusChange
       
   905  * @SYMTestExpectedResults Pass - Call does not connect.
       
   906  * @SYMTestType CIT
       
   907  * @SYMTestCaseDependencies live/manual
       
   908  *
       
   909 
       
   910  *
       
   911  * @return - TVerdict code
       
   912  */
       
   913 	{
       
   914 
       
   915 	//
       
   916 	// SET UP
       
   917 	//
       
   918 
       
   919 	
       
   920 	// Ensure phone is camped on a valid cell. 
       
   921 
       
   922 	// Get data line 1. 
       
   923 
       
   924 	// Get call 1. 
       
   925 
       
   926 
       
   927 	//
       
   928 	// SET UP END
       
   929 	//
       
   930 	
       
   931 	StartTest();
       
   932 	
       
   933 	//
       
   934 	// TEST START
       
   935 	//
       
   936 	
       
   937 	
       
   938 	// Set up multimedia mobile data call parameters for a multimedia call. 
       
   939 
       
   940 	// Dial a number that won't answer. 
       
   941 
       
   942 	// Cancel dial. 
       
   943 
       
   944 	
       
   945 	//
       
   946 	// TEST END
       
   947 	//
       
   948 
       
   949     StartCleanup();
       
   950 	
       
   951 	// Put any required test clean up here, then remove this comment
       
   952 	
       
   953 	return TestStepResult();
       
   954 	}
       
   955 
       
   956 TPtrC CCTSYIntegrationTestMultimediaCallControl0006::GetTestStepName()
       
   957 /**
       
   958  * @return The test step name.
       
   959  */
       
   960 	{
       
   961 	return _L("CCTSYIntegrationTestMultimediaCallControl0006");
       
   962 	}
       
   963 
       
   964 
       
   965 
       
   966 CCTSYIntegrationTestMultimediaCallControl0007::CCTSYIntegrationTestMultimediaCallControl0007(CEtelSessionMgr& aEtelSessionMgr)
       
   967 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
   968 /**
       
   969  * Constructor.
       
   970  */
       
   971 	{
       
   972 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0007::GetTestStepName());
       
   973 	}
       
   974 
       
   975 CCTSYIntegrationTestMultimediaCallControl0007::~CCTSYIntegrationTestMultimediaCallControl0007()
       
   976 /**
       
   977  * Destructor.
       
   978  */
       
   979 	{
       
   980 	}
       
   981 
       
   982 TVerdict CCTSYIntegrationTestMultimediaCallControl0007::doTestStepL()
       
   983 /**
       
   984  * @SYMTestCaseID BA-CTSY-INT-MMCC-0007
       
   985  * @SYMFssID BA/CTSY/MMCC-0007
       
   986  * @SYMTestCaseDesc Test handling of video call when called party is busy.
       
   987  * @SYMTestPriority High
       
   988  * @SYMTestActions 
       
   989  * @SYMTestExpectedResults Pass - Error returned when dialling busy number.
       
   990  * @SYMTestType CIT
       
   991  * @SYMTestCaseDependencies live/manual
       
   992  *
       
   993 
       
   994  *
       
   995  * @return - TVerdict code
       
   996  */
       
   997 	{
       
   998 
       
   999 	//
       
  1000 	// SET UP
       
  1001 	//
       
  1002 
       
  1003 	
       
  1004 	// Ensure phone is camped on a valid cell. 
       
  1005 	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer,KMainPhone);
       
  1006 	CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
       
  1007 
       
  1008 	// Get data line 1. 
       
  1009 	RMobileLine& line = iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KDataLine);
       
  1010 
       
  1011 	// Get call 1.
       
  1012 	RMobileCall& call = iEtelSessionMgr.GetCallL(KMainServer, KMainPhone, KDataLine, KCall1); 
       
  1013 
       
  1014 	// Ensure call waiting is deactivated. 
       
  1015 	RMobilePhone::TMobileService mobileService = RMobilePhone::EAllServices;
       
  1016 	RMobilePhone::TMobilePhoneServiceAction mobilePhoneServiceAction = RMobilePhone::EServiceActionDeactivate;
       
  1017 	TExtEtelRequestStatus mobilePhoneSetCallWaitingStatus(phone, EMobilePhoneSetCallWaitingStatus);
       
  1018 	CleanupStack::PushL(mobilePhoneSetCallWaitingStatus);
       
  1019 	phone.SetCallWaitingStatus(mobilePhoneSetCallWaitingStatus, mobileService, mobilePhoneServiceAction);
       
  1020 	CHECK_EQUALS_L(WaitForRequestWithTimeOut(mobilePhoneSetCallWaitingStatus, ETimeMedium), KErrNone, _L("RMobilePhone::SetCallWaitingStatus timed-out"))
       
  1021 	CHECK_EQUALS_L(mobilePhoneSetCallWaitingStatus.Int(), KErrNone, _L("RMobilePhone::SetCallWaitingStatus returned with an error"))		
       
  1022 
       
  1023 
       
  1024 	//
       
  1025 	// SET UP END
       
  1026 	//
       
  1027 	
       
  1028 	StartTest();
       
  1029 	
       
  1030 	//
       
  1031 	// TEST START
       
  1032 	//
       
  1033 	
       
  1034 	
       
  1035 	// Set up multimedia mobile data call parameters for a multimedia call. 
       
  1036 	RMobileCall::TMobileHscsdCallParamsV1 mobileHscsdCallParams;
       
  1037 	RMobileCall::TMobileHscsdCallParamsV1Pckg mobileHscsdCallParamsPckg(mobileHscsdCallParams);
       
  1038 	mobileHscsdCallParams.iIdRestrict = RMobileCall::ESendMyId;
       
  1039 	mobileHscsdCallParams.iAckTimer = 20;
       
  1040 	mobileHscsdCallParams.iMSToModemWindowSize = 2;
       
  1041 	mobileHscsdCallParams.iModemToMSWindowSize = 2;	
       
  1042 	mobileHscsdCallParams.iProtocol = RMobileCall::EProtocolPstnMultimedia;
       
  1043 	mobileHscsdCallParams.iQoS = RMobileCall::EQoSNonTransparent;
       
  1044 	mobileHscsdCallParams.iRLPVersion = RMobileCall::ERLPSingleLinkVersion0;
       
  1045 	mobileHscsdCallParams.iResequencingPeriod = 1;
       
  1046 	mobileHscsdCallParams.iRetransmissionAttempts = 2;
       
  1047 	mobileHscsdCallParams.iService = RMobileCall::EServiceDataCircuitAsync;
       
  1048 	mobileHscsdCallParams.iSpeed = RMobileCall::ESpeed64000;
       
  1049 	mobileHscsdCallParams.iUseEdge = EFalse;
       
  1050 	mobileHscsdCallParams.iV42bisCodewordsNum = 0;
       
  1051     mobileHscsdCallParams.iV42bisMaxStringLength = 0;
       
  1052     mobileHscsdCallParams.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
  1053 	mobileHscsdCallParams.iAsymmetry = RMobileCall::EAsymmetryDownlink;
       
  1054 	mobileHscsdCallParams.iCodings = RMobileCall::KCapsAiurCoding144;
       
  1055 	mobileHscsdCallParams.iUserInitUpgrade = EFalse;
       
  1056 	mobileHscsdCallParams.iMaxTimeSlots = 15;
       
  1057 	mobileHscsdCallParams.iWantedRxTimeSlots = 15;
       
  1058 	mobileHscsdCallParams.iWantedAiur = RMobileCall::EAiurBpsUnspecified;
       
  1059 	
       
  1060 	// Dial a number which is engaged. 
       
  1061 	DisplayUserInteractionPromptL(_L("Please be sure that DataNumber1 is currently engaged"), ETimeMedium);
       
  1062 	TPtrC number; 
       
  1063 	ASSERT_TRUE(GetStringFromConfig(KIniDataNumSection, KIniDataNumber1, number) != EFalse, _L("GetStringFromConfig did not complete as expected"));
       
  1064 	DEBUG_PRINTF2(_L("Board is now dialling: %S"), &number);
       
  1065 	TCoreEtelRequestStatus<RMobileCall> dialStatus(call, &RMobileCall::DialCancel);
       
  1066 	CleanupStack::PushL(dialStatus);
       
  1067 
       
  1068     // Failing CSD calls (see $CTSYProblem described below).
       
  1069     // Code can be added in after multimedia calls are working.
       
  1070 
       
  1071 	// $CTSYProblem: dial returns -18 or -6 depending of selected parametes (protocol)
       
  1072     // EProtocolPstnMultimedia = -6, EProtocolV34 = -18
       
  1073     // All CSD call are currently failing, this is not a CTSY problem because CTSY has no control over this issue
       
  1074     /*
       
  1075 	call.Dial(dialStatus, mobileHscsdCallParamsPckg, number); 
       
  1076 	ASSERT_EQUALS(WaitForRequestWithTimeOut(dialStatus, ETimeMedium), KErrNone, _L("RMobileCall::Dial timed-out"));
       
  1077 
       
  1078 	// Verify dial fails. 
       
  1079 	ASSERT_TRUE(dialStatus.Int() != KErrNone, _L("RMobileCall::Dial did not return error as expected"));
       
  1080 	*/
       
  1081 	//
       
  1082 	// TEST END
       
  1083 	//
       
  1084 
       
  1085     StartCleanup();
       
  1086 	
       
  1087 	// Pop
       
  1088     // mobilePhoneSetCallWaitingStatus
       
  1089     // dialStatus
       
  1090     CleanupStack::PopAndDestroy(2, &mobilePhoneSetCallWaitingStatus);
       
  1091 		
       
  1092 	return TestStepResult();
       
  1093 	}
       
  1094 
       
  1095 TPtrC CCTSYIntegrationTestMultimediaCallControl0007::GetTestStepName()
       
  1096 /**
       
  1097  * @return The test step name.
       
  1098  */
       
  1099 	{
       
  1100 	return _L("CCTSYIntegrationTestMultimediaCallControl0007");
       
  1101 	}
       
  1102 
       
  1103 
       
  1104 
       
  1105 CCTSYIntegrationTestMultimediaCallControl0008::CCTSYIntegrationTestMultimediaCallControl0008(CEtelSessionMgr& aEtelSessionMgr)
       
  1106 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  1107 /**
       
  1108  * Constructor.
       
  1109  */
       
  1110 	{
       
  1111 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0008::GetTestStepName());
       
  1112 	}
       
  1113 
       
  1114 CCTSYIntegrationTestMultimediaCallControl0008::~CCTSYIntegrationTestMultimediaCallControl0008()
       
  1115 /**
       
  1116  * Destructor.
       
  1117  */
       
  1118 	{
       
  1119 	}
       
  1120 
       
  1121 TVerdict CCTSYIntegrationTestMultimediaCallControl0008::doTestStepL()
       
  1122 /**
       
  1123  * @SYMTestCaseID BA-CTSY-INT-MMCC-0008
       
  1124  * @SYMFssID BA/CTSY/MMCC-0008
       
  1125  * @SYMTestCaseDesc Test making a video call after temporary deactivation of CLIR.
       
  1126  * @SYMTestPriority High
       
  1127  * @SYMTestActions RLine::NotifyStatusChange, RMobilePhone::SetIdentityServiceStatus, RMobilePhone::NotifyIdentityServiceStatus
       
  1128  * @SYMTestExpectedResults Pass - Caller ID retrieved when CLIR deactivated.
       
  1129  * @SYMTestType CIT
       
  1130  * @SYMTestCaseDependencies live/manual
       
  1131  *
       
  1132 
       
  1133  *
       
  1134  * @return - TVerdict code
       
  1135  */
       
  1136 	{
       
  1137 
       
  1138 	//
       
  1139 	// SET UP
       
  1140 	//
       
  1141 
       
  1142 	
       
  1143 	// Ensure phone is camped on a valid cell. 
       
  1144 
       
  1145 	// Get data line 1. 
       
  1146 
       
  1147 	// Get call 1. 
       
  1148 
       
  1149 
       
  1150 	//
       
  1151 	// SET UP END
       
  1152 	//
       
  1153 	
       
  1154 	StartTest();
       
  1155 	
       
  1156 	//
       
  1157 	// TEST START
       
  1158 	//
       
  1159 	
       
  1160 	
       
  1161 	// Deactivate CLIR. 
       
  1162 
       
  1163 	// Set up multimedia mobile data call parameters for a multimedia call. 
       
  1164 
       
  1165 	// Dial a number from the board.  
       
  1166 
       
  1167 	// Verify that caller ID is available for incoming call. 
       
  1168 
       
  1169 	// Answer that call. 
       
  1170 
       
  1171 	// Verify call is answered and line status notifications produced. 
       
  1172 
       
  1173 	
       
  1174 	//
       
  1175 	// TEST END
       
  1176 	//
       
  1177 
       
  1178     StartCleanup();
       
  1179 	
       
  1180 	// Put any required test clean up here, then remove this comment
       
  1181 	
       
  1182 	return TestStepResult();
       
  1183 	}
       
  1184 
       
  1185 TPtrC CCTSYIntegrationTestMultimediaCallControl0008::GetTestStepName()
       
  1186 /**
       
  1187  * @return The test step name.
       
  1188  */
       
  1189 	{
       
  1190 	return _L("CCTSYIntegrationTestMultimediaCallControl0008");
       
  1191 	}
       
  1192 
       
  1193 
       
  1194 
       
  1195 CCTSYIntegrationTestMultimediaCallControl0009::CCTSYIntegrationTestMultimediaCallControl0009(CEtelSessionMgr& aEtelSessionMgr)
       
  1196 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  1197 /**
       
  1198  * Constructor.
       
  1199  */
       
  1200 	{
       
  1201 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0009::GetTestStepName());
       
  1202 	}
       
  1203 
       
  1204 CCTSYIntegrationTestMultimediaCallControl0009::~CCTSYIntegrationTestMultimediaCallControl0009()
       
  1205 /**
       
  1206  * Destructor.
       
  1207  */
       
  1208 	{
       
  1209 	}
       
  1210 
       
  1211 TVerdict CCTSYIntegrationTestMultimediaCallControl0009::doTestStepL()
       
  1212 /**
       
  1213  * @SYMTestCaseID BA-CTSY-INT-MMCC-0009
       
  1214  * @SYMFssID BA/CTSY/MMCC-0009
       
  1215  * @SYMTestCaseDesc Test making a video call with CLIR activated.
       
  1216  * @SYMTestPriority High
       
  1217  * @SYMTestActions RLine::NotifyStatusChange, RMobilePhone::SetIdentityServiceStatus, RMobilePhone::NotifyIdentityServiceStatus
       
  1218  * @SYMTestExpectedResults Pass - Caller ID not available when CLIR active.
       
  1219  * @SYMTestType CIT
       
  1220  * @SYMTestCaseDependencies live/manual
       
  1221  *
       
  1222 
       
  1223  *
       
  1224  * @return - TVerdict code
       
  1225  */
       
  1226 	{
       
  1227 
       
  1228 	//
       
  1229 	// SET UP
       
  1230 	//
       
  1231 
       
  1232 	
       
  1233 	// Ensure phone is camped on a valid cell. 
       
  1234 
       
  1235 	// Get data line 1. 
       
  1236 
       
  1237 	// Get call 1. 
       
  1238 
       
  1239 
       
  1240 	//
       
  1241 	// SET UP END
       
  1242 	//
       
  1243 	
       
  1244 	StartTest();
       
  1245 	
       
  1246 	//
       
  1247 	// TEST START
       
  1248 	//
       
  1249 	
       
  1250 	
       
  1251 	// Activate CLIR. 
       
  1252 
       
  1253 	// Set up multimedia mobile data call parameters for a multimedia call. 
       
  1254 
       
  1255 	// Dial a number which answers.  
       
  1256 
       
  1257 	// Verifies that caller ID is not available for incoming call. 
       
  1258 
       
  1259 	// Answer the call. 
       
  1260 
       
  1261 	// Verify call is answered and line status notifications produced. 
       
  1262 
       
  1263 	
       
  1264 	//
       
  1265 	// TEST END
       
  1266 	//
       
  1267 
       
  1268     StartCleanup();
       
  1269 	
       
  1270 	// Put any required test clean up here, then remove this comment
       
  1271 	
       
  1272 	return TestStepResult();
       
  1273 	}
       
  1274 
       
  1275 TPtrC CCTSYIntegrationTestMultimediaCallControl0009::GetTestStepName()
       
  1276 /**
       
  1277  * @return The test step name.
       
  1278  */
       
  1279 	{
       
  1280 	return _L("CCTSYIntegrationTestMultimediaCallControl0009");
       
  1281 	}
       
  1282 
       
  1283 
       
  1284 
       
  1285 CCTSYIntegrationTestMultimediaCallControl0010::CCTSYIntegrationTestMultimediaCallControl0010(CEtelSessionMgr& aEtelSessionMgr)
       
  1286 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  1287 /**
       
  1288  * Constructor.
       
  1289  */
       
  1290 	{
       
  1291 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0010::GetTestStepName());
       
  1292 	}
       
  1293 
       
  1294 CCTSYIntegrationTestMultimediaCallControl0010::~CCTSYIntegrationTestMultimediaCallControl0010()
       
  1295 /**
       
  1296  * Destructor.
       
  1297  */
       
  1298 	{
       
  1299 	}
       
  1300 
       
  1301 TVerdict CCTSYIntegrationTestMultimediaCallControl0010::doTestStepL()
       
  1302 /**
       
  1303  * @SYMTestCaseID BA-CTSY-INT-MMCC-0010
       
  1304  * @SYMFssID BA/CTSY/MMCC-0010
       
  1305  * @SYMTestCaseDesc Test attempt to make a video call to a GSM mobile.
       
  1306  * @SYMTestPriority High
       
  1307  * @SYMTestActions 
       
  1308  * @SYMTestExpectedResults Pass - Dialling video call to GSM phone fails.
       
  1309  * @SYMTestType CIT
       
  1310  * @SYMTestCaseDependencies live/manual
       
  1311  *
       
  1312 
       
  1313  *
       
  1314  * @return - TVerdict code
       
  1315  */
       
  1316 	{
       
  1317 
       
  1318 	//
       
  1319 	// SET UP
       
  1320 	//
       
  1321 
       
  1322 	
       
  1323 	// Ensure phone is camped on a valid cell. 
       
  1324 
       
  1325 	// Get data line 1. 
       
  1326 
       
  1327 	// Get call 1. 
       
  1328 
       
  1329 
       
  1330 	//
       
  1331 	// SET UP END
       
  1332 	//
       
  1333 	
       
  1334 	StartTest();
       
  1335 	
       
  1336 	//
       
  1337 	// TEST START
       
  1338 	//
       
  1339 	
       
  1340 	
       
  1341 	// Set up multimedia mobile data call parameters for a multimedia call. 
       
  1342 
       
  1343 	// Dial GSM phone. 
       
  1344 
       
  1345 	// Verify dial fails with error that called party is busy.  
       
  1346 
       
  1347 	
       
  1348 	//
       
  1349 	// TEST END
       
  1350 	//
       
  1351 
       
  1352     StartCleanup();
       
  1353 	
       
  1354 	// Put any required test clean up here, then remove this comment
       
  1355 	
       
  1356 	return TestStepResult();
       
  1357 	}
       
  1358 
       
  1359 TPtrC CCTSYIntegrationTestMultimediaCallControl0010::GetTestStepName()
       
  1360 /**
       
  1361  * @return The test step name.
       
  1362  */
       
  1363 	{
       
  1364 	return _L("CCTSYIntegrationTestMultimediaCallControl0010");
       
  1365 	}
       
  1366 
       
  1367 
       
  1368 
       
  1369 CCTSYIntegrationTestMultimediaCallControl0011::CCTSYIntegrationTestMultimediaCallControl0011(CEtelSessionMgr& aEtelSessionMgr)
       
  1370 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  1371 /**
       
  1372  * Constructor.
       
  1373  */
       
  1374 	{
       
  1375 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0011::GetTestStepName());
       
  1376 	}
       
  1377 
       
  1378 CCTSYIntegrationTestMultimediaCallControl0011::~CCTSYIntegrationTestMultimediaCallControl0011()
       
  1379 /**
       
  1380  * Destructor.
       
  1381  */
       
  1382 	{
       
  1383 	}
       
  1384 
       
  1385 TVerdict CCTSYIntegrationTestMultimediaCallControl0011::doTestStepL()
       
  1386 /**
       
  1387  * @SYMTestCaseID BA-CTSY-INT-MMCC-0011
       
  1388  * @SYMFssID BA/CTSY/MMCC-0011
       
  1389  * @SYMTestCaseDesc Test attempt to make a video call to a PSTN number.
       
  1390  * @SYMTestPriority High
       
  1391  * @SYMTestActions 
       
  1392  * @SYMTestExpectedResults Pass - Dialling video call to PSTN number fails.
       
  1393  * @SYMTestType CIT
       
  1394  * @SYMTestCaseDependencies live/manual
       
  1395  *
       
  1396 
       
  1397  *
       
  1398  * @return - TVerdict code
       
  1399  */
       
  1400 	{
       
  1401 
       
  1402 	//
       
  1403 	// SET UP
       
  1404 	//
       
  1405 
       
  1406 	
       
  1407 	// Ensure phone is camped on a valid cell. 
       
  1408 
       
  1409 	// Get data line 1. 
       
  1410 
       
  1411 	// Get call 1. 
       
  1412 
       
  1413 
       
  1414 	//
       
  1415 	// SET UP END
       
  1416 	//
       
  1417 	
       
  1418 	StartTest();
       
  1419 	
       
  1420 	//
       
  1421 	// TEST START
       
  1422 	//
       
  1423 	
       
  1424 	
       
  1425 	// Set up multimedia mobile data call parameters for a multimedia call. 
       
  1426 
       
  1427 	// Dial PSTN number. 
       
  1428 
       
  1429 	// Verify dial fails with an error indicating video calls not supported. 
       
  1430 
       
  1431 	
       
  1432 	//
       
  1433 	// TEST END
       
  1434 	//
       
  1435 
       
  1436     StartCleanup();
       
  1437 	
       
  1438 	// Put any required test clean up here, then remove this comment
       
  1439 	
       
  1440 	return TestStepResult();
       
  1441 	}
       
  1442 
       
  1443 TPtrC CCTSYIntegrationTestMultimediaCallControl0011::GetTestStepName()
       
  1444 /**
       
  1445  * @return The test step name.
       
  1446  */
       
  1447 	{
       
  1448 	return _L("CCTSYIntegrationTestMultimediaCallControl0011");
       
  1449 	}
       
  1450 
       
  1451 
       
  1452 
       
  1453 CCTSYIntegrationTestMultimediaCallControl0012::CCTSYIntegrationTestMultimediaCallControl0012(CEtelSessionMgr& aEtelSessionMgr)
       
  1454 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  1455 /**
       
  1456  * Constructor.
       
  1457  */
       
  1458 	{
       
  1459 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0012::GetTestStepName());
       
  1460 	}
       
  1461 
       
  1462 CCTSYIntegrationTestMultimediaCallControl0012::~CCTSYIntegrationTestMultimediaCallControl0012()
       
  1463 /**
       
  1464  * Destructor.
       
  1465  */
       
  1466 	{
       
  1467 	}
       
  1468 
       
  1469 TVerdict CCTSYIntegrationTestMultimediaCallControl0012::doTestStepL()
       
  1470 /**
       
  1471  * @SYMTestCaseID BA-CTSY-INT-MMCC-0012
       
  1472  * @SYMFssID BA/CTSY/MMCC-0012
       
  1473  * @SYMTestCaseDesc Ensure that a video call can be made whilst roaming.
       
  1474  * @SYMTestPriority High
       
  1475  * @SYMTestActions RLine::NotifyStatusChange, RCall::NotifyStatusChange, RCall::GetCallParams
       
  1476  * @SYMTestExpectedResults Pass - Video call established when roaming.
       
  1477  * @SYMTestType CIT
       
  1478  * @SYMTestCaseDependencies live/manual
       
  1479  *
       
  1480 
       
  1481  *
       
  1482  * @return - TVerdict code
       
  1483  */
       
  1484 	{
       
  1485 
       
  1486 	//
       
  1487 	// SET UP
       
  1488 	//
       
  1489 
       
  1490 	
       
  1491 	// Insert roaming SIM. 
       
  1492 
       
  1493 	// Ensure phone is camped on roaming network. 
       
  1494 
       
  1495 	// Get data line 1. 
       
  1496 
       
  1497 	// Get call 1. 
       
  1498 
       
  1499 
       
  1500 	//
       
  1501 	// SET UP END
       
  1502 	//
       
  1503 	
       
  1504 	StartTest();
       
  1505 	
       
  1506 	//
       
  1507 	// TEST START
       
  1508 	//
       
  1509 	
       
  1510 	
       
  1511 	// Set up multimedia mobile data call parameters for a multimedia call. 
       
  1512 
       
  1513 	// Dial a video call to mobile in the same country which answers. 
       
  1514 
       
  1515 	// Verify call is answers and call is connected. 
       
  1516 
       
  1517 	// Repeat test dialling a video call to mobile in the same country using + international format instead. 
       
  1518 
       
  1519 	// Repeat test dialling a video call to mobile in a different country using + international format instead. 
       
  1520 
       
  1521 	
       
  1522 	//
       
  1523 	// TEST END
       
  1524 	//
       
  1525 
       
  1526     StartCleanup();
       
  1527 	
       
  1528 	// Put any required test clean up here, then remove this comment
       
  1529 	
       
  1530 	return TestStepResult();
       
  1531 	}
       
  1532 
       
  1533 TPtrC CCTSYIntegrationTestMultimediaCallControl0012::GetTestStepName()
       
  1534 /**
       
  1535  * @return The test step name.
       
  1536  */
       
  1537 	{
       
  1538 	return _L("CCTSYIntegrationTestMultimediaCallControl0012");
       
  1539 	}
       
  1540 
       
  1541 
       
  1542 
       
  1543 CCTSYIntegrationTestMultimediaCallControl0013::CCTSYIntegrationTestMultimediaCallControl0013(CEtelSessionMgr& aEtelSessionMgr)
       
  1544 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  1545 /**
       
  1546  * Constructor.
       
  1547  */
       
  1548 	{
       
  1549 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0013::GetTestStepName());
       
  1550 	}
       
  1551 
       
  1552 CCTSYIntegrationTestMultimediaCallControl0013::~CCTSYIntegrationTestMultimediaCallControl0013()
       
  1553 /**
       
  1554  * Destructor.
       
  1555  */
       
  1556 	{
       
  1557 	}
       
  1558 
       
  1559 TVerdict CCTSYIntegrationTestMultimediaCallControl0013::doTestStepL()
       
  1560 /**
       
  1561  * @SYMTestCaseID BA-CTSY-INT-MMCC-0013
       
  1562  * @SYMFssID BA/CTSY/MMCC-0013
       
  1563  * @SYMTestCaseDesc Test handling of incoming video call when there is already an active multimedia call.
       
  1564 
       
  1565 
       
  1566  * @SYMTestPriority High
       
  1567  * @SYMTestActions RLine::NotifyStatusChange
       
  1568  * @SYMTestExpectedResults Pass - 2nd video call answered. 1st video call dropped.
       
  1569  * @SYMTestType CIT
       
  1570  * @SYMTestCaseDependencies live/manual
       
  1571  *
       
  1572 
       
  1573  *
       
  1574  * @return - TVerdict code
       
  1575  */
       
  1576 	{
       
  1577 
       
  1578 	//
       
  1579 	// SET UP
       
  1580 	//
       
  1581 
       
  1582 	// Ensure phone is camped on a valid cell. 
       
  1583 	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer,KMainPhone);
       
  1584 	CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
       
  1585 	
       
  1586 	// Get data line 1. 
       
  1587 	RMobileLine& mobileLine= iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KDataLine);
       
  1588 	
       
  1589 	// Get call 1. 
       
  1590 	RMobileCall& dataCall1= iEtelSessionMgr.GetCallL(KMainServer, KMainPhone, KDataLine, KCall1);
       
  1591 
       
  1592 	// Ensure call waiting is activated. 
       
  1593 	TExtEtelRequestStatus mobilePhoneSetCallWaitingStatus(phone, EMobilePhoneSetCallWaitingStatus);
       
  1594 	CleanupStack::PushL(mobilePhoneSetCallWaitingStatus);
       
  1595 	RMobilePhone::TMobileService mobileService = RMobilePhone::EAllServices;
       
  1596 	RMobilePhone::TMobilePhoneServiceAction mobilePhoneServiceAction = RMobilePhone::EServiceActionActivate;
       
  1597 	phone.SetCallWaitingStatus(mobilePhoneSetCallWaitingStatus, mobileService, mobilePhoneServiceAction);
       
  1598 	CHECK_EQUALS_L(WaitForRequestWithTimeOut(mobilePhoneSetCallWaitingStatus, ETimeMedium), KErrNone, _L("RMobilePhone::SetCallWaitingStatus timed-out"));
       
  1599 	CHECK_EQUALS_L(mobilePhoneSetCallWaitingStatus.Int(), KErrNone, _L("RMobilePhone::SetCallWaitingStatus returned with an error"));	
       
  1600 
       
  1601 	//
       
  1602 	// SET UP END
       
  1603 	//
       
  1604 	
       
  1605 	StartTest();
       
  1606 	
       
  1607 	//
       
  1608 	// TEST START
       
  1609 	//
       
  1610 	
       
  1611 	// Set up multimedia mobile data call parameters for a multimedia call. 
       
  1612 	RMobileCall::TMobileHscsdCallParamsV1 multimediaParams;
       
  1613 	RMobileCall::TMobileHscsdCallParamsV1Pckg checkParamsPkg(multimediaParams);
       
  1614 	
       
  1615 	// valid parameters 
       
  1616 	multimediaParams.iIdRestrict = RMobileCall::ESendMyId;
       
  1617 	multimediaParams.iAckTimer = 20;
       
  1618 	multimediaParams.iMSToModemWindowSize = 2;
       
  1619 	multimediaParams.iModemToMSWindowSize = 2;	
       
  1620 	multimediaParams.iProtocol = RMobileCall::EProtocolV34;
       
  1621 	multimediaParams.iQoS = RMobileCall::EQoSNonTransparent;
       
  1622 	multimediaParams.iRLPVersion = RMobileCall::ERLPSingleLinkVersion0;
       
  1623 	multimediaParams.iResequencingPeriod = 1;
       
  1624 	multimediaParams.iRetransmissionAttempts = 2;
       
  1625 	multimediaParams.iService = RMobileCall::EServiceDataCircuitAsync;
       
  1626 	multimediaParams.iSpeed = RMobileCall::ESpeed64000;
       
  1627 	multimediaParams.iUseEdge = EFalse;
       
  1628 	multimediaParams.iV42bisCodewordsNum = 0;
       
  1629     multimediaParams.iV42bisMaxStringLength = 0;
       
  1630     multimediaParams.iV42bisReq = RMobileCall::EV42bisNeitherDirection;
       
  1631 	multimediaParams.iAsymmetry = RMobileCall::EAsymmetryDownlink;
       
  1632 	multimediaParams.iCodings = RMobileCall::KCapsAiurCoding144;
       
  1633 	multimediaParams.iUserInitUpgrade = EFalse;
       
  1634 	multimediaParams.iMaxTimeSlots = 15;
       
  1635 	multimediaParams.iWantedRxTimeSlots = 15;
       
  1636 	multimediaParams.iWantedAiur = RMobileCall::EAiurBpsUnspecified;
       
  1637 
       
  1638 	// post notifier for RCall::NotifyStatusChange
       
  1639 	TCoreEtelRequestStatus<RCall> notifyCallStatusChangeStatus (dataCall1, &RCall::NotifyStatusChangeCancel);
       
  1640 	CleanupStack::PushL(notifyCallStatusChangeStatus);
       
  1641 	RCall::TStatus callStatus;
       
  1642 	dataCall1.NotifyStatusChange(notifyCallStatusChangeStatus, callStatus);
       
  1643 
       
  1644 	// Dial a video call to remote party 1. 
       
  1645 	TPtrC number; 
       
  1646 	ASSERT_TRUE(GetStringFromConfig(KIniDataNumSection, KIniDataNumber1, number) != EFalse, _L("CTestStep::GetStringFromConfig did not complete as expected"));
       
  1647 	TCoreEtelRequestStatus<RCall> dialStatus(dataCall1, &RCall::DialCancel);
       
  1648 	CleanupStack::PushL(dialStatus);
       
  1649 
       
  1650     // Failing CSD calls (see $CTSYProblem described below).
       
  1651     // Code can be added in after multimedia calls are working.
       
  1652 
       
  1653     // $CTSYProblem: dial returns -18 or -6 depending of selected parametes (protocol)
       
  1654     // EProtocolPstnMultimedia = -6, EProtocolV34 = -18
       
  1655     // All CSD call are currently failing, this is not a CTSY problem because CTSY has no control over this issue
       
  1656 	/*
       
  1657 	dataCall1.Dial(dialStatus, checkParamsPkg, number); 
       
  1658 	TEST_CHECK_POINT_L(_L("Couldn't dial a call, no point continuing."));
       
  1659 	ASSERT_EQUALS(WaitForRequestWithTimeOut(dialStatus, ETimeMedium), KErrNone, _L("RCall::Dial timed-out"));
       
  1660 	ASSERT_EQUALS(dialStatus.Int(), KErrNone, _L("RCall::Dial returned with an error"));
       
  1661 
       
  1662 	// Verify that remote party 1 can see incoming caller ID. 
       
  1663 	DisplayUserInteractionPromptL(_L("Verify that remote party 1 can see incoming caller ID"), ETimeLong);
       
  1664 
       
  1665 	// Remote party 1 can answer call and call is connected. 
       
  1666 	RCall::TStatus expectedCallStatus = RCall::EStatusConnected;
       
  1667 	const TInt expectedStatus = KErrNone;
       
  1668 	iCallControlTestHelper.WaitForCallNotifyStatusChange(dataCall1,
       
  1669 														 notifyCallStatusChangeStatus,
       
  1670 														 callStatus,
       
  1671 														 expectedCallStatus,
       
  1672 														 expectedStatus);
       
  1673 
       
  1674 	// Get data line 2. 
       
  1675 	RMobileLine& mobileLine2 = iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KDataLine);
       
  1676 	
       
  1677 	// post notifier for RLine::NotifyIncomingCall
       
  1678 	TCoreEtelRequestStatus<RLine> notifyIncomingCallStatus (mobileLine2,&RLine::NotifyIncomingCallCancel);
       
  1679 	CleanupStack::PushL(notifyIncomingCallStatus);
       
  1680 	TName name;
       
  1681 	mobileLine2.NotifyIncomingCall(notifyIncomingCallStatus,name);	
       
  1682 
       
  1683 	// $CTSYProblem: The line is not notifying tester to answer the incoming call ( notifier never completes). 
       
  1684 	// CTSY does not receive anykind of signal from line about incoming call thus it cannot be answered.
       
  1685     // All CSD call are currently failing, this is not a CTSY problem because CTSY has no control over this issue
       
  1686 
       
  1687 	// Remote party 2 invokes an incoming video call. 
       
  1688 	DisplayUserInteractionPromptL(_L("You should now dial a multimedia call to this board from some other mobilephone"), ETimeLong);
       
  1689 
       
  1690 	// Check RLine::NotifyIncomingCall completes with valid call name.
       
  1691 	ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyIncomingCallStatus,ETimeMedium), KErrNone, _L("RLine::NotifyIncomingCall did not complete without error"));
       
  1692 	ASSERT_EQUALS(notifyIncomingCallStatus.Int(), KErrNone, _L("RLine::NotifyIncomingCall set requestStatus to an error"));
       
  1693 	ASSERT_TRUE(name.Length() > 0, _L("RLine::NotifyIncomingCall did not set the name"));
       
  1694 
       
  1695 	// Get call 2
       
  1696 	TCallId incomingCallId;
       
  1697 	RMobileCall& dataCall2 = iEtelSessionMgr.GetIncomingCallL(KMainServer, KMainPhone, KDataLine, name, incomingCallId);
       
  1698 
       
  1699 	// post notifier for RCall::NotifyStatusChange for dataCall2
       
  1700 	TCoreEtelRequestStatus<RCall> notifyCallStatusChangeStatus2 (dataCall2, &RCall::NotifyStatusChangeCancel);
       
  1701 	CleanupStack::PushL(notifyCallStatusChangeStatus2);
       
  1702 	RCall::TStatus callStatus2;
       
  1703 	dataCall2.NotifyStatusChange(notifyCallStatusChangeStatus2, callStatus2);
       
  1704 	
       
  1705 	// Answer video call 2 and verify video call 2 is connected and call 1 is dropped. 
       
  1706 	TCoreEtelRequestStatus<RCall> answerIncomingStatus(dataCall2, &RCall::AnswerIncomingCallCancel);
       
  1707 	CleanupStack::PushL(answerIncomingStatus);	
       
  1708 	dataCall2.AnswerIncomingCall(answerIncomingStatus);
       
  1709 	ASSERT_EQUALS(WaitForRequestWithTimeOut(answerIncomingStatus, ETimeMedium), KErrNone, _L("RMobileCall::AnswerIncomingCall timed-out"));
       
  1710 	ASSERT_EQUALS(answerIncomingStatus.Int(), KErrNone, _L("RMobileCall::AnswerIncomingCall returned with an error"));
       
  1711 
       
  1712 	// Check RCall::NotifyStatusChange completes with EStatusIdle (call 1)
       
  1713 	expectedCallStatus = RCall::EStatusIdle;
       
  1714 	iCallControlTestHelper.WaitForCallNotifyStatusChange(dataCall1,
       
  1715 														 notifyCallStatusChangeStatus,
       
  1716 														 callStatus,
       
  1717 														 expectedCallStatus,
       
  1718 														 KErrNone);
       
  1719 														 
       
  1720 	// Check RCall::NotifyStatusChange completes with EStatusConnected (call 2)
       
  1721 	RCall::TStatus expectedCallStatus2 = RCall::EStatusConnected;
       
  1722 	iCallControlTestHelper.WaitForCallNotifyStatusChange(dataCall2,
       
  1723 														 notifyCallStatusChangeStatus2,
       
  1724 														 callStatus2,
       
  1725 														 expectedCallStatus2,
       
  1726 														 KErrNone);
       
  1727 	*/
       
  1728 	
       
  1729 	//
       
  1730 	// TEST END
       
  1731 	//
       
  1732 	
       
  1733 	// Deactivate call waiting with RMobilePhone::SetCallWaitingStatus with aServiceGroup=EAllServices  and aAction=EServiceActionDeactivate 
       
  1734 	mobilePhoneServiceAction = RMobilePhone::EServiceActionDeactivate;
       
  1735 	phone.SetCallWaitingStatus(mobilePhoneSetCallWaitingStatus, mobileService, mobilePhoneServiceAction);
       
  1736 	ASSERT_EQUALS(WaitForRequestWithTimeOut(mobilePhoneSetCallWaitingStatus, ETimeMedium), KErrNone, _L("RMobilePhone::SetCallWaitingStatus timed-out"));
       
  1737 	ASSERT_EQUALS(mobilePhoneSetCallWaitingStatus.Int(), KErrNone, _L("RMobilePhone::SetCallWaitingStatus returned with an error"));
       
  1738 
       
  1739 	/*
       
  1740 	dataCall2.HangUp();
       
  1741 	*/
       
  1742     StartCleanup();
       
  1743 
       
  1744 	// Pop
       
  1745 	// mobilePhoneSetCallWaitingStatus
       
  1746 	// notifyCallStatusChangeStatus
       
  1747 	// dialStatus
       
  1748 	// notifyIncomingCallStatus
       
  1749 	// notifyCallStatusChangeStatus2
       
  1750 	// answerIncomingStatus
       
  1751 	CleanupStack::PopAndDestroy(3, &mobilePhoneSetCallWaitingStatus);
       
  1752 
       
  1753 	return TestStepResult();
       
  1754 	}
       
  1755 
       
  1756 TPtrC CCTSYIntegrationTestMultimediaCallControl0013::GetTestStepName()
       
  1757 /**
       
  1758  * @return The test step name.
       
  1759  */
       
  1760 	{
       
  1761 	return _L("CCTSYIntegrationTestMultimediaCallControl0013");
       
  1762 	}
       
  1763 
       
  1764 
       
  1765 
       
  1766 CCTSYIntegrationTestMultimediaCallControl0014::CCTSYIntegrationTestMultimediaCallControl0014(CEtelSessionMgr& aEtelSessionMgr)
       
  1767 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  1768 /**
       
  1769  * Constructor.
       
  1770  */
       
  1771 	{
       
  1772 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0014::GetTestStepName());
       
  1773 	}
       
  1774 
       
  1775 CCTSYIntegrationTestMultimediaCallControl0014::~CCTSYIntegrationTestMultimediaCallControl0014()
       
  1776 /**
       
  1777  * Destructor.
       
  1778  */
       
  1779 	{
       
  1780 	}
       
  1781 
       
  1782 TVerdict CCTSYIntegrationTestMultimediaCallControl0014::doTestStepL()
       
  1783 /**
       
  1784  * @SYMTestCaseID BA-CTSY-INT-MMCC-0014
       
  1785  * @SYMFssID BA/CTSY/MMCC-0014
       
  1786  * @SYMTestCaseDesc Test handling of incoming voice/video call when there is already an active video call.
       
  1787  * @SYMTestPriority High
       
  1788  * @SYMTestActions RLine::NotifyStatusChange, RCall::AnswerIncomingCall, RCall::HangUp, RMobileCall::Hold, RMobileCall::Resume
       
  1789  * @SYMTestExpectedResults Pass - Incoming video call can be answered when active voice call is held.
       
  1790  * @SYMTestType CIT
       
  1791  * @SYMTestCaseDependencies live/manual
       
  1792  *
       
  1793 
       
  1794  *
       
  1795  * @return - TVerdict code
       
  1796  */
       
  1797 	{
       
  1798 
       
  1799 	//
       
  1800 	// SET UP
       
  1801 	//
       
  1802 
       
  1803 	
       
  1804 	// Ensure phone is camped on a valid cell. 
       
  1805 	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer,KMainPhone);
       
  1806 	CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
       
  1807 	
       
  1808 	// Get voice line 1. 
       
  1809 	RMobileLine& voiceLine1= iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KVoiceLine);
       
  1810 
       
  1811 	// Get data line 2. 
       
  1812 	RMobileLine& dataLine2= iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KDataLine);
       
  1813 
       
  1814 	// Ensure call waiting is activated. 
       
  1815 	TExtEtelRequestStatus mobilePhoneSetCallWaitingStatus(phone, EMobilePhoneSetCallWaitingStatus);
       
  1816 	CleanupStack::PushL(mobilePhoneSetCallWaitingStatus);
       
  1817 	RMobilePhone::TMobileService mobileService = RMobilePhone::EAllServices;
       
  1818 	RMobilePhone::TMobilePhoneServiceAction mobilePhoneServiceAction = RMobilePhone::EServiceActionActivate;
       
  1819 	phone.SetCallWaitingStatus(mobilePhoneSetCallWaitingStatus, mobileService, mobilePhoneServiceAction);
       
  1820 	CHECK_EQUALS_L(WaitForRequestWithTimeOut(mobilePhoneSetCallWaitingStatus, ETimeMedium), KErrNone, _L("RMobilePhone::SetCallWaitingStatus timed-out"));
       
  1821 	CHECK_EQUALS_L(mobilePhoneSetCallWaitingStatus.Int(), KErrNone, _L("RMobilePhone::SetCallWaitingStatus returned with an error"));	
       
  1822 
       
  1823 
       
  1824 	//
       
  1825 	// SET UP END
       
  1826 	//
       
  1827 	
       
  1828 	StartTest();
       
  1829 	
       
  1830 	//
       
  1831 	// TEST START
       
  1832 	//
       
  1833 	
       
  1834 	// post notifier for RLine::NotifyIncomingCall
       
  1835 	TCoreEtelRequestStatus<RLine> notifyIncomingCallStatus (voiceLine1,&RLine::NotifyIncomingCallCancel);
       
  1836 	CleanupStack::PushL(notifyIncomingCallStatus);
       
  1837 	TName name;
       
  1838 	voiceLine1.NotifyIncomingCall(notifyIncomingCallStatus,name);	
       
  1839 
       
  1840 	// Dial the board (voice call, call 1) 
       
  1841 	DisplayUserInteractionPromptL(_L("You should now dial a voice call to this board from some other mobilephone"), ETimeLong);
       
  1842 
       
  1843 	// Check RLine::NotifyIncomingCall completes with valid call name.
       
  1844 	ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyIncomingCallStatus,ETimeMedium), KErrNone, _L("RLine::NotifyIncomingCall did not complete without error"));
       
  1845 	ASSERT_EQUALS(notifyIncomingCallStatus.Int(), KErrNone, _L("RLine::NotifyIncomingCall set requestStatus to an error"));
       
  1846 	ASSERT_TRUE(name.Length() > 0, _L("RLine::NotifyIncomingCall did not set the name"));
       
  1847 
       
  1848 	// Get call 1
       
  1849 	TCallId incomingCallId;
       
  1850 	RMobileCall& voiceCall1= iEtelSessionMgr.GetIncomingCallL(KMainServer, KMainPhone, KVoiceLine, name, incomingCallId);
       
  1851 
       
  1852 	// post a notifier for RMobileLine::NotifyMobileLineStatusChange
       
  1853 	RMobileCall::TMobileCallStatus mobileLineStatus;
       
  1854 	TExtEtelRequestStatus notifyMobileLineChangeStatus(voiceLine1, EMobileLineNotifyMobileLineStatusChange);
       
  1855 	CleanupStack::PushL(notifyMobileLineChangeStatus);
       
  1856 	voiceLine1.NotifyMobileLineStatusChange(notifyMobileLineChangeStatus, mobileLineStatus);
       
  1857 
       
  1858 	// Answer voice call 1 
       
  1859 	TCoreEtelRequestStatus<RCall> answerIncomingStatus(voiceCall1, &RCall::AnswerIncomingCallCancel);
       
  1860 	CleanupStack::PushL(answerIncomingStatus);	
       
  1861 	voiceCall1.AnswerIncomingCall(answerIncomingStatus);
       
  1862 	ASSERT_EQUALS(WaitForRequestWithTimeOut(answerIncomingStatus, ETimeMedium), KErrNone, _L("RMobileCall::AnswerIncomingCall timed-out"));
       
  1863 	ASSERT_EQUALS(answerIncomingStatus.Int(), KErrNone, _L("RMobileCall::AnswerIncomingCall returned with an error"));
       
  1864 
       
  1865 	// Verify line status goes to connected.
       
  1866 	RMobileCall::TMobileCallStatus expectedLineStatus = RMobileCall::EStatusConnected;
       
  1867 	voiceLine1.NotifyMobileLineStatusChange(notifyMobileLineChangeStatus, mobileLineStatus);
       
  1868 	iCallControlTestHelper.WaitForMobileLineNotifyMobileLineStatusChange(voiceLine1,
       
  1869 														 notifyMobileLineChangeStatus,
       
  1870 														 mobileLineStatus,
       
  1871 														 expectedLineStatus,
       
  1872 														 KErrNone);
       
  1873 
       
  1874     // Failing CSD calls (see $CTSYProblem described below).
       
  1875     // Code can be added in after multimedia calls are working.
       
  1876 
       
  1877 	// $CTSYProblem: The line is not notifying tester to answer the incoming call ( notifier never completes). 
       
  1878 	// CTSY does not receive anykind of signal from line about incoming call thus it cannot be answered.
       
  1879     // All CSD call are currently failing, this is not a CTSY problem because CTSY has no control over this issue
       
  1880 
       
  1881 	/*
       
  1882 	// post notifier for RLine::NotifyIncomingCall
       
  1883 	TCoreEtelRequestStatus<RLine> notifyIncomingCallStatus2 (dataLine2,&RLine::NotifyIncomingCallCancel);
       
  1884 	CleanupStack::PushL(notifyIncomingCallStatus2);
       
  1885 	TName name2;
       
  1886 	dataLine2.NotifyIncomingCall(notifyIncomingCallStatus2,name2);	
       
  1887 
       
  1888 	// Dial the board (video call, call 2) 
       
  1889 	DisplayUserInteractionPromptL(_L("You should now dial a multimedia call to this board from some other mobilephone"), ETimeLong);
       
  1890 
       
  1891 	// Verify incoming call notification completes. 
       
  1892 	ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyIncomingCallStatus2,ETimeMedium), KErrNone, _L("RLine::NotifyIncomingCall did not complete without error"));
       
  1893 	ASSERT_EQUALS(notifyIncomingCallStatus2.Int(), KErrNone, _L("RLine::NotifyIncomingCall set requestStatus to an error"));
       
  1894 	ASSERT_TRUE(name2.Length() > 0, _L("RLine::NotifyIncomingCall did not set the name"));
       
  1895 	*/
       
  1896 	
       
  1897 	// Hold call 1. 
       
  1898 	TExtEtelRequestStatus holdStatus(voiceCall1, EMobileCallHold);
       
  1899 	CleanupStack::PushL(holdStatus);
       
  1900 	voiceCall1.Hold(holdStatus);
       
  1901 	ASSERT_EQUALS(WaitForRequestWithTimeOut(holdStatus, ETimeMedium), KErrNone, _L("RMobileCall::Hold timed out"));
       
  1902 	ASSERT_EQUALS(holdStatus.Int(), KErrNone, _L("RMobileCall::Hold returned with an error"));		
       
  1903 
       
  1904 	/*
       
  1905 	// Get call 2
       
  1906 	TCallId incomingCallId2;
       
  1907 	RMobileCall& dataCall2 = iEtelSessionMgr.GetIncomingCallL(KMainServer, KMainPhone, KDataLine, name2, incomingCallId2);
       
  1908 
       
  1909 	// post notifier for RMobileCall::NotifyMobileCallStatusChange for dataCall2
       
  1910 	TExtEtelRequestStatus notifyMobileCallStatusChangeStatus2(dataCall2, EMobileCallNotifyMobileCallStatusChange);
       
  1911 	CleanupStack::PushL(notifyMobileCallStatusChangeStatus2);
       
  1912 	RMobileCall::TMobileCallStatus mobileCallStatus2;
       
  1913 	dataCall2.NotifyMobileCallStatusChange(notifyMobileCallStatusChangeStatus2, mobileCallStatus2);
       
  1914 	
       
  1915 	// Answer incoming video call on call 2. 
       
  1916 	TCoreEtelRequestStatus<RCall> answerIncomingStatus2(dataCall2, &RCall::AnswerIncomingCallCancel);
       
  1917 	CleanupStack::PushL(answerIncomingStatus2);	
       
  1918 	dataCall2.AnswerIncomingCall(answerIncomingStatus2);
       
  1919 	ASSERT_EQUALS(WaitForRequestWithTimeOut(answerIncomingStatus2, ETimeMedium), KErrNone, _L("RMobileCall::AnswerIncomingCall timed-out"));
       
  1920 	ASSERT_EQUALS(answerIncomingStatus2.Int(), KErrNone, _L("RMobileCall::AnswerIncomingCall returned with an error"));
       
  1921 
       
  1922 	// Verify call 2 connected. 
       
  1923 	RMobileCall::TMobileCallStatus expectedCallStatus2 = RMobileCall::EStatusConnected;
       
  1924 	iCallControlTestHelper.WaitForMobileCallNotifyMobileCallStatusChange(dataCall2,
       
  1925 														 notifyMobileCallStatusChangeStatus2,
       
  1926 														 mobileCallStatus2,
       
  1927 														 expectedCallStatus2,
       
  1928 														 KErrNone);
       
  1929 
       
  1930 	// post a notifier for RMobileLine::NotifyMobileLineStatusChange (call 2)
       
  1931 	RMobileCall::TMobileCallStatus mobileLineStatus2;
       
  1932 	TExtEtelRequestStatus notifyMobileLineChangeStatus2(dataLine2, EMobileLineNotifyMobileLineStatusChange);
       
  1933 	CleanupStack::PushL(notifyMobileLineChangeStatus2);
       
  1934 	dataLine2.NotifyMobileLineStatusChange(notifyMobileLineChangeStatus2, mobileLineStatus2);
       
  1935 
       
  1936 	// Hang up call 2. 
       
  1937 	TCoreEtelRequestStatus<RCall> hangUpStatus2 (dataCall2, &RCall::HangUpCancel);	
       
  1938 	CleanupStack::PushL(hangUpStatus2);
       
  1939 	dataCall2.HangUp(hangUpStatus2);
       
  1940 	ASSERT_EQUALS(WaitForRequestWithTimeOut(hangUpStatus2, ETimeMedium), KErrNone, _L("RCall::HangUp timed-out"));
       
  1941 	ASSERT_EQUALS(hangUpStatus2.Int(), KErrNone, _L("RCall::HangUp returned an error"));
       
  1942 
       
  1943 	*/
       
  1944 	//remove this delay when Code is added in again.
       
  1945 	// delay is needed for the moment because call1 doesn't have time to change it's status to RMobileCall::EStatusHold
       
  1946 	// This is because Code.
       
  1947 	User::After(ETimeShort);
       
  1948 	// Verify call 1 still on hold. 
       
  1949 	RMobileCall::TMobileCallStatus getCallStatus;
       
  1950 	ASSERT_EQUALS(voiceCall1.GetMobileCallStatus(getCallStatus), KErrNone, _L("RMobileCall::GetMobileCallStatus returned an Error"));
       
  1951 	ASSERT_EQUALS(getCallStatus, RMobileCall::EStatusHold, _L("RMobileCall::GetMobileCallStatus did not return EStatusHold"));
       
  1952 
       
  1953 	// post notifier for RMobileCall::NotifyMobileCallStatusChange for voice call1
       
  1954 	TExtEtelRequestStatus notifyMobileCallStatusChangeStatus(voiceCall1, EMobileCallNotifyMobileCallStatusChange);
       
  1955 	CleanupStack::PushL(notifyMobileCallStatusChangeStatus);
       
  1956 	RMobileCall::TMobileCallStatus mobileCallStatus;
       
  1957 	voiceCall1.NotifyMobileCallStatusChange(notifyMobileCallStatusChangeStatus, mobileCallStatus);
       
  1958 	
       
  1959 	// Resume call 1. 
       
  1960 	TExtEtelRequestStatus resumeStatus(voiceCall1, EMobileCallResume);
       
  1961 	CleanupStack::PushL(resumeStatus);
       
  1962 	voiceCall1.Resume(resumeStatus);	
       
  1963 	ASSERT_EQUALS(WaitForRequestWithTimeOut(resumeStatus, ETimeMedium), KErrNone, _L("RMobileCall::Resume timed-out"));
       
  1964 	ASSERT_EQUALS(resumeStatus.Int(), KErrNone, _L("RMobileCall::Resume resumeStatus completed with incorrect error"));
       
  1965 
       
  1966 	// Verify call 1 connected. 
       
  1967 	RMobileCall::TMobileCallStatus expectedCallStatus = RMobileCall::EStatusConnected;
       
  1968 	iCallControlTestHelper.WaitForMobileCallNotifyMobileCallStatusChange(voiceCall1,
       
  1969 														 notifyMobileCallStatusChangeStatus,
       
  1970 														 mobileCallStatus,
       
  1971 														 expectedCallStatus,
       
  1972 														 KErrNone);
       
  1973 
       
  1974 	// post notifier for RMobileLine::NotifyMobileLineStatusChange (call 1)
       
  1975 	voiceLine1.NotifyMobileLineStatusChange(notifyMobileLineChangeStatus, mobileLineStatus);
       
  1976 
       
  1977 	// Hang up call 1. 
       
  1978 	TCoreEtelRequestStatus<RCall> hangUpStatus (voiceCall1, &RCall::HangUpCancel);	
       
  1979 	CleanupStack::PushL(hangUpStatus);
       
  1980 	voiceCall1.HangUp(hangUpStatus);
       
  1981 	ASSERT_EQUALS(WaitForRequestWithTimeOut(hangUpStatus, ETimeMedium), KErrNone, _L("RCall::HangUp timed-out"));
       
  1982 	ASSERT_EQUALS(hangUpStatus.Int(), KErrNone, _L("RCall::HangUp returned an error"));
       
  1983 
       
  1984 	// Verify both lines are idle. 
       
  1985 	expectedLineStatus = RMobileCall::EStatusIdle;
       
  1986 	ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 50001);
       
  1987 	iCallControlTestHelper.WaitForMobileLineNotifyMobileLineStatusChange(voiceLine1,
       
  1988 														 notifyMobileLineChangeStatus,
       
  1989 														 mobileLineStatus,
       
  1990 														 expectedLineStatus,
       
  1991 														 KErrNone);
       
  1992 	/*
       
  1993 	iCallControlTestHelper.WaitForMobileLineNotifyMobileLineStatusChange(dataLine2,
       
  1994 														 notifyMobileLineChangeStatus2,
       
  1995 														 mobileLineStatus2,
       
  1996 														 expectedLineStatus,
       
  1997 														 KErrNone);
       
  1998 	*/
       
  1999 	
       
  2000 	//
       
  2001 	// TEST END
       
  2002 	//
       
  2003 
       
  2004 	// Deactivate call waiting with RMobilePhone::SetCallWaitingStatus with aServiceGroup=EAllServices  and aAction=EServiceActionDeactivate 
       
  2005 	mobilePhoneServiceAction = RMobilePhone::EServiceActionDeactivate;
       
  2006 	phone.SetCallWaitingStatus(mobilePhoneSetCallWaitingStatus, mobileService, mobilePhoneServiceAction);
       
  2007 	ASSERT_EQUALS(WaitForRequestWithTimeOut(mobilePhoneSetCallWaitingStatus, ETimeMedium), KErrNone, _L("RMobilePhone::SetCallWaitingStatus timed-out"));
       
  2008 	ASSERT_EQUALS(mobilePhoneSetCallWaitingStatus.Int(), KErrNone, _L("RMobilePhone::SetCallWaitingStatus returned with an error"));
       
  2009 
       
  2010     StartCleanup();
       
  2011 	
       
  2012 	// Pop
       
  2013 	// mobilePhoneSetCallWaitingStatus
       
  2014 	// notifyIncomingCallStatus
       
  2015 	// notifyMobileLineChangeStatus
       
  2016 	// answerIncomingStatus
       
  2017 	// notifyIncomingCallStatus2
       
  2018 	// holdStatus
       
  2019 	// notifyMobileCallStatusChangeStatus2
       
  2020 	// answerIncomingStatus2
       
  2021 	// notifyMobileLineChangeStatus2
       
  2022 	// hangUpStatus2
       
  2023 	// notifyMobileCallStatusChangeStatus
       
  2024 	// resumeStatus
       
  2025 	// hangUpStatus
       
  2026 
       
  2027 	CleanupStack::PopAndDestroy(8, &mobilePhoneSetCallWaitingStatus);
       
  2028 	
       
  2029 	return TestStepResult();
       
  2030 	}
       
  2031 
       
  2032 TPtrC CCTSYIntegrationTestMultimediaCallControl0014::GetTestStepName()
       
  2033 /**
       
  2034  * @return The test step name.
       
  2035  */
       
  2036 	{
       
  2037 	return _L("CCTSYIntegrationTestMultimediaCallControl0014");
       
  2038 	}
       
  2039 
       
  2040 
       
  2041 
       
  2042 CCTSYIntegrationTestMultimediaCallControl0015::CCTSYIntegrationTestMultimediaCallControl0015(CEtelSessionMgr& aEtelSessionMgr)
       
  2043 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  2044 /**
       
  2045  * Constructor.
       
  2046  */
       
  2047 	{
       
  2048 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0015::GetTestStepName());
       
  2049 	}
       
  2050 
       
  2051 CCTSYIntegrationTestMultimediaCallControl0015::~CCTSYIntegrationTestMultimediaCallControl0015()
       
  2052 /**
       
  2053  * Destructor.
       
  2054  */
       
  2055 	{
       
  2056 	}
       
  2057 
       
  2058 TVerdict CCTSYIntegrationTestMultimediaCallControl0015::doTestStepL()
       
  2059 /**
       
  2060  * @SYMTestCaseID BA-CTSY-INT-MMCC-0015
       
  2061  * @SYMFssID BA/CTSY/MMCC-0015
       
  2062  * @SYMTestCaseDesc Test getting CLIP information for incoming and outgoing video calls.
       
  2063  * @SYMTestPriority High
       
  2064  * @SYMTestActions RMobilePhone::NotifyIdentityServiceStatus, RMobilePhone::GetIdentityServiceStatus, RCall::Dial, RCall::GetStatus
       
  2065  * @SYMTestExpectedResults Pass - CLIP information presented when CLIP active.
       
  2066  * @SYMTestType CIT
       
  2067  * @SYMTestCaseDependencies live/manual
       
  2068  *
       
  2069 
       
  2070  *
       
  2071  * @return - TVerdict code
       
  2072  */
       
  2073 	{
       
  2074 
       
  2075 	//
       
  2076 	// SET UP
       
  2077 	//
       
  2078 
       
  2079 	
       
  2080 	// Ensure phone is camped on a valid cell. 
       
  2081 
       
  2082 	// Get data line 1. 
       
  2083 
       
  2084 	// Get call 1. 
       
  2085 
       
  2086 
       
  2087 	//
       
  2088 	// SET UP END
       
  2089 	//
       
  2090 	
       
  2091 	StartTest();
       
  2092 	
       
  2093 	//
       
  2094 	// TEST START
       
  2095 	//
       
  2096 	
       
  2097 	
       
  2098 	// 1. Outgoing calls 
       
  2099 
       
  2100 	// Deactivate CLIR and verify it is deactivated. 
       
  2101 
       
  2102 	// Set up multimedia mobile data call parameters for a multimedia call. 
       
  2103 
       
  2104 	// Dial a video call to a number you can answer. 
       
  2105 
       
  2106 	// Check that calling number can be retrieved from incoming call.
       
  2107 
       
  2108 	// Answer the call. 
       
  2109 
       
  2110 	// Verify call is connected. 
       
  2111 
       
  2112 	// 2. Incoming calls 
       
  2113 
       
  2114 	// Activate CLIP and verify it is active. 
       
  2115 
       
  2116 	// Dial the board with a video call. 
       
  2117 
       
  2118 	// Verify CLIP information can be retrieved from incoming call. 
       
  2119 
       
  2120 	// Verify call can be answered and call is connected. 
       
  2121 
       
  2122 	
       
  2123 	//
       
  2124 	// TEST END
       
  2125 	//
       
  2126 
       
  2127     StartCleanup();
       
  2128 	
       
  2129 	// Put any required test clean up here, then remove this comment
       
  2130 	
       
  2131 	return TestStepResult();
       
  2132 	}
       
  2133 
       
  2134 TPtrC CCTSYIntegrationTestMultimediaCallControl0015::GetTestStepName()
       
  2135 /**
       
  2136  * @return The test step name.
       
  2137  */
       
  2138 	{
       
  2139 	return _L("CCTSYIntegrationTestMultimediaCallControl0015");
       
  2140 	}
       
  2141 
       
  2142 
       
  2143 
       
  2144 CCTSYIntegrationTestMultimediaCallControl0016::CCTSYIntegrationTestMultimediaCallControl0016(CEtelSessionMgr& aEtelSessionMgr)
       
  2145 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  2146 /**
       
  2147  * Constructor.
       
  2148  */
       
  2149 	{
       
  2150 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0016::GetTestStepName());
       
  2151 	}
       
  2152 
       
  2153 CCTSYIntegrationTestMultimediaCallControl0016::~CCTSYIntegrationTestMultimediaCallControl0016()
       
  2154 /**
       
  2155  * Destructor.
       
  2156  */
       
  2157 	{
       
  2158 	}
       
  2159 
       
  2160 TVerdict CCTSYIntegrationTestMultimediaCallControl0016::doTestStepL()
       
  2161 /**
       
  2162  * @SYMTestCaseID BA-CTSY-INT-MMCC-0016
       
  2163  * @SYMFssID BA/CTSY/MMCC-0016
       
  2164  * @SYMTestCaseDesc Test incoming call with CLIP deactivated.
       
  2165  * @SYMTestPriority High
       
  2166  * @SYMTestActions RMobilePhone::NotifyIdentityServiceStatus, RMobilePhone::GetIdentityServiceStatus, RCall::Dial, RLine::NotifyIncomingCall, RCall::AnswerIncomingCall, RMobileCall::GetMobileCallInfo, RCall::GetStatus
       
  2167  * @SYMTestExpectedResults Pass - CLIP information not presented.
       
  2168  * @SYMTestType CIT
       
  2169  * @SYMTestCaseDependencies live/manual
       
  2170  *
       
  2171 
       
  2172  *
       
  2173  * @return - TVerdict code
       
  2174  */
       
  2175 	{
       
  2176 
       
  2177 	//
       
  2178 	// SET UP
       
  2179 	//
       
  2180 
       
  2181 	
       
  2182 	// Ensure phone is camped on a valid cell. 
       
  2183 
       
  2184 	// Get data line 1. 
       
  2185 
       
  2186 	// Get call 1. 
       
  2187 
       
  2188 
       
  2189 	//
       
  2190 	// SET UP END
       
  2191 	//
       
  2192 	
       
  2193 	StartTest();
       
  2194 	
       
  2195 	//
       
  2196 	// TEST START
       
  2197 	//
       
  2198 	
       
  2199 	
       
  2200 	// Deactivate CLIP and verify CLIP is deactivated. 
       
  2201 
       
  2202 	// Dial a board with a video call. 
       
  2203 
       
  2204 	// Verify caller ID (CLIP information) not present for incoming call. 
       
  2205 
       
  2206 	// Verify call can be answered and call is connected. 
       
  2207 
       
  2208 	
       
  2209 	//
       
  2210 	// TEST END
       
  2211 	//
       
  2212 
       
  2213     StartCleanup();
       
  2214 	
       
  2215 	// Put any required test clean up here, then remove this comment
       
  2216 	
       
  2217 	return TestStepResult();
       
  2218 	}
       
  2219 
       
  2220 TPtrC CCTSYIntegrationTestMultimediaCallControl0016::GetTestStepName()
       
  2221 /**
       
  2222  * @return The test step name.
       
  2223  */
       
  2224 	{
       
  2225 	return _L("CCTSYIntegrationTestMultimediaCallControl0016");
       
  2226 	}
       
  2227 
       
  2228 
       
  2229 
       
  2230 CCTSYIntegrationTestMultimediaCallControl0017::CCTSYIntegrationTestMultimediaCallControl0017(CEtelSessionMgr& aEtelSessionMgr)
       
  2231 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  2232 /**
       
  2233  * Constructor.
       
  2234  */
       
  2235 	{
       
  2236 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0017::GetTestStepName());
       
  2237 	}
       
  2238 
       
  2239 CCTSYIntegrationTestMultimediaCallControl0017::~CCTSYIntegrationTestMultimediaCallControl0017()
       
  2240 /**
       
  2241  * Destructor.
       
  2242  */
       
  2243 	{
       
  2244 	}
       
  2245 
       
  2246 TVerdict CCTSYIntegrationTestMultimediaCallControl0017::doTestStepL()
       
  2247 /**
       
  2248  * @SYMTestCaseID BA-CTSY-INT-MMCC-0017
       
  2249  * @SYMFssID BA/CTSY/MMCC-0017
       
  2250  * @SYMTestCaseDesc Test activation of call barring with video calls.
       
  2251  * @SYMTestPriority High
       
  2252  * @SYMTestActions RCall::Dial
       
  2253  * @SYMTestExpectedResults Pass - Barred number cannot be dialled.
       
  2254  * @SYMTestType CIT
       
  2255  * @SYMTestCaseDependencies live/manual
       
  2256  *
       
  2257 
       
  2258  *
       
  2259  * @return - TVerdict code
       
  2260  */
       
  2261 	{
       
  2262 
       
  2263 	//
       
  2264 	// SET UP
       
  2265 	//
       
  2266 
       
  2267 	
       
  2268 	// Ensure phone has the following capabilities: KCapsNotifyCBStatus, KCapsSetCBStatus, KCapsBarAllOutgoing, KCapsBarOutgoingInternational, KCapsBarOutgoingInternationalExHC, and KCapsBarAllCases 
       
  2269 
       
  2270 	// Ensure phone is camped on a valid cell. 
       
  2271 
       
  2272 	// Get data line 1. 
       
  2273 
       
  2274 	// Get call 1. 
       
  2275 
       
  2276 
       
  2277 	//
       
  2278 	// SET UP END
       
  2279 	//
       
  2280 	
       
  2281 	StartTest();
       
  2282 	
       
  2283 	//
       
  2284 	// TEST START
       
  2285 	//
       
  2286 	
       
  2287 	
       
  2288 	// For each of the outgoing call barring conditions and 'call barring all cases' in TMobilePhoneCBCondition: 
       
  2289 
       
  2290 	// Activate the call barring condition for video calls. 
       
  2291 
       
  2292 	// Make an outgoing video call to a barred number. 
       
  2293 
       
  2294 	// Verify dial fails due to number being barred. 
       
  2295 
       
  2296 	
       
  2297 	//
       
  2298 	// TEST END
       
  2299 	//
       
  2300 
       
  2301     StartCleanup();
       
  2302 	
       
  2303 	// Put any required test clean up here, then remove this comment
       
  2304 	
       
  2305 	return TestStepResult();
       
  2306 	}
       
  2307 
       
  2308 TPtrC CCTSYIntegrationTestMultimediaCallControl0017::GetTestStepName()
       
  2309 /**
       
  2310  * @return The test step name.
       
  2311  */
       
  2312 	{
       
  2313 	return _L("CCTSYIntegrationTestMultimediaCallControl0017");
       
  2314 	}
       
  2315 
       
  2316 
       
  2317 
       
  2318 CCTSYIntegrationTestMultimediaCallControl0018::CCTSYIntegrationTestMultimediaCallControl0018(CEtelSessionMgr& aEtelSessionMgr)
       
  2319 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  2320 /**
       
  2321  * Constructor.
       
  2322  */
       
  2323 	{
       
  2324 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0018::GetTestStepName());
       
  2325 	}
       
  2326 
       
  2327 CCTSYIntegrationTestMultimediaCallControl0018::~CCTSYIntegrationTestMultimediaCallControl0018()
       
  2328 /**
       
  2329  * Destructor.
       
  2330  */
       
  2331 	{
       
  2332 	}
       
  2333 
       
  2334 TVerdict CCTSYIntegrationTestMultimediaCallControl0018::doTestStepL()
       
  2335 /**
       
  2336  * @SYMTestCaseID BA-CTSY-INT-MMCC-0018
       
  2337  * @SYMFssID BA/CTSY/MMCC-0018
       
  2338  * @SYMTestCaseDesc Test call forwarding of video calls if there is no reply.
       
  2339  * @SYMTestPriority High
       
  2340  * @SYMTestActions RMobilePhone::SetCallForwardingStatus, RMobilePhone::NotifyCallForwardingActive
       
  2341  * @SYMTestExpectedResults Pass - Incoming call is forwarded.
       
  2342  * @SYMTestType CIT
       
  2343  * @SYMTestCaseDependencies live/manual
       
  2344  *
       
  2345 
       
  2346  *
       
  2347  * @return - TVerdict code
       
  2348  */
       
  2349 	{
       
  2350 
       
  2351 	//
       
  2352 	// SET UP
       
  2353 	//
       
  2354 
       
  2355 	
       
  2356 	// Ensure phone has the following capabilities: KCapsSetCFStatus, KCapsNotifyCFStatus. 
       
  2357 
       
  2358 	// Ensure phone is camped on a valid cell. 
       
  2359 
       
  2360 	// Get data line 1. 
       
  2361 
       
  2362 	// Get call 1. 
       
  2363 
       
  2364 
       
  2365 	//
       
  2366 	// SET UP END
       
  2367 	//
       
  2368 	
       
  2369 	StartTest();
       
  2370 	
       
  2371 	//
       
  2372 	// TEST START
       
  2373 	//
       
  2374 	
       
  2375 	
       
  2376 	// Activate call forwarding if no reply (ECallForwardingNoReply) for video calls and verify call forwarding status change notification completes. 
       
  2377 
       
  2378 	// Dial the board with a video call.  
       
  2379 
       
  2380 	// Board does not answer call. 
       
  2381 
       
  2382 	// Verify call forwarding active notification completes and call is forwarded to number specified when activating call forwarding. 
       
  2383 
       
  2384 	
       
  2385 	//
       
  2386 	// TEST END
       
  2387 	//
       
  2388 
       
  2389     StartCleanup();
       
  2390 	
       
  2391 	// Put any required test clean up here, then remove this comment
       
  2392 	
       
  2393 	return TestStepResult();
       
  2394 	}
       
  2395 
       
  2396 TPtrC CCTSYIntegrationTestMultimediaCallControl0018::GetTestStepName()
       
  2397 /**
       
  2398  * @return The test step name.
       
  2399  */
       
  2400 	{
       
  2401 	return _L("CCTSYIntegrationTestMultimediaCallControl0018");
       
  2402 	}
       
  2403 
       
  2404 
       
  2405 
       
  2406 CCTSYIntegrationTestMultimediaCallControl0019::CCTSYIntegrationTestMultimediaCallControl0019(CEtelSessionMgr& aEtelSessionMgr)
       
  2407 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  2408 /**
       
  2409  * Constructor.
       
  2410  */
       
  2411 	{
       
  2412 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0019::GetTestStepName());
       
  2413 	}
       
  2414 
       
  2415 CCTSYIntegrationTestMultimediaCallControl0019::~CCTSYIntegrationTestMultimediaCallControl0019()
       
  2416 /**
       
  2417  * Destructor.
       
  2418  */
       
  2419 	{
       
  2420 	}
       
  2421 
       
  2422 TVerdict CCTSYIntegrationTestMultimediaCallControl0019::doTestStepL()
       
  2423 /**
       
  2424  * @SYMTestCaseID BA-CTSY-INT-MMCC-0019
       
  2425  * @SYMFssID BA/CTSY/MMCC-0019
       
  2426  * @SYMTestCaseDesc Test unconditional call forwarding with video calls.
       
  2427  * @SYMTestPriority High
       
  2428  * @SYMTestActions RMobilePhone::SetCallForwardingStatus, RMobilePhone::NotifyCallForwardingActive
       
  2429  * @SYMTestExpectedResults Pass - Incoming call is forwarded.
       
  2430  * @SYMTestType CIT
       
  2431  * @SYMTestCaseDependencies live/manual
       
  2432  *
       
  2433 
       
  2434  *
       
  2435  * @return - TVerdict code
       
  2436  */
       
  2437 	{
       
  2438 
       
  2439 	//
       
  2440 	// SET UP
       
  2441 	//
       
  2442 
       
  2443 	
       
  2444 	// Ensure phone has the following capabilities: KCapsSetCFStatus, KCapsNotifyCFStatus. 
       
  2445 
       
  2446 	// Ensure phone is camped on a valid cell. 
       
  2447 
       
  2448 	// Get data line 1. 
       
  2449 
       
  2450 	// Get call 1. 
       
  2451 
       
  2452 
       
  2453 	//
       
  2454 	// SET UP END
       
  2455 	//
       
  2456 	
       
  2457 	StartTest();
       
  2458 	
       
  2459 	//
       
  2460 	// TEST START
       
  2461 	//
       
  2462 	
       
  2463 	
       
  2464 	// Activate unconditional call forwarding for video calls and verify call forwarding status change notification completes.  
       
  2465 
       
  2466 	// Dial the board. 
       
  2467 
       
  2468 	// Verify call forwarding active notification completes and call is forwarded to number specified when activating call forwarding. 
       
  2469 
       
  2470 	
       
  2471 	//
       
  2472 	// TEST END
       
  2473 	//
       
  2474 
       
  2475     StartCleanup();
       
  2476 	
       
  2477 	// Put any required test clean up here, then remove this comment
       
  2478 	
       
  2479 	return TestStepResult();
       
  2480 	}
       
  2481 
       
  2482 TPtrC CCTSYIntegrationTestMultimediaCallControl0019::GetTestStepName()
       
  2483 /**
       
  2484  * @return The test step name.
       
  2485  */
       
  2486 	{
       
  2487 	return _L("CCTSYIntegrationTestMultimediaCallControl0019");
       
  2488 	}
       
  2489 
       
  2490 
       
  2491 
       
  2492 CCTSYIntegrationTestMultimediaCallControl0020::CCTSYIntegrationTestMultimediaCallControl0020(CEtelSessionMgr& aEtelSessionMgr)
       
  2493 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  2494 /**
       
  2495  * Constructor.
       
  2496  */
       
  2497 	{
       
  2498 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0020::GetTestStepName());
       
  2499 	}
       
  2500 
       
  2501 CCTSYIntegrationTestMultimediaCallControl0020::~CCTSYIntegrationTestMultimediaCallControl0020()
       
  2502 /**
       
  2503  * Destructor.
       
  2504  */
       
  2505 	{
       
  2506 	}
       
  2507 
       
  2508 TVerdict CCTSYIntegrationTestMultimediaCallControl0020::doTestStepL()
       
  2509 /**
       
  2510  * @SYMTestCaseID BA-CTSY-INT-MMCC-0020
       
  2511  * @SYMFssID BA/CTSY/MMCC-0020
       
  2512  * @SYMTestCaseDesc Test call forwarding when busy with video calls.
       
  2513  * @SYMTestPriority High
       
  2514  * @SYMTestActions RMobilePhone::SetCallForwardingStatus, RMobilePhone::NotifyCallForwardingActive, RCall::Dial
       
  2515  * @SYMTestExpectedResults Pass - Call forwarded when phone is busy.
       
  2516  * @SYMTestType CIT
       
  2517  * @SYMTestCaseDependencies live/manual
       
  2518  *
       
  2519 
       
  2520  *
       
  2521  * @return - TVerdict code
       
  2522  */
       
  2523 	{
       
  2524 
       
  2525 	//
       
  2526 	// SET UP
       
  2527 	//
       
  2528 
       
  2529 	
       
  2530 	// Ensure phone has the following capabilities: KCapsSetCFStatus, KCapsNotifyCFStatus. 
       
  2531 
       
  2532 	// Ensure phone is camped on a valid cell. 
       
  2533 
       
  2534 	// Get voice line 1. 
       
  2535 
       
  2536 	// Get call 1. 
       
  2537 
       
  2538 	// Get data line 2. 
       
  2539 
       
  2540 	// Get call 2. 
       
  2541 
       
  2542 
       
  2543 	//
       
  2544 	// SET UP END
       
  2545 	//
       
  2546 	
       
  2547 	StartTest();
       
  2548 	
       
  2549 	//
       
  2550 	// TEST START
       
  2551 	//
       
  2552 	
       
  2553 	
       
  2554 	// Activate call forwarding if busy for video calls and verify call forwarding status change notification completes. 
       
  2555 
       
  2556 	// Dial a number that answers on voice line 1. 
       
  2557 
       
  2558 	// Verify call is active. 
       
  2559 
       
  2560 	// Request notification of an incoming call on data line 2. 
       
  2561 
       
  2562 	// Dial the board with a data call on data line 2. 
       
  2563 
       
  2564 	// Verify call forwarding active notification completes and call is forwarded to number specified when activating call forwarding. 
       
  2565 
       
  2566 	
       
  2567 	//
       
  2568 	// TEST END
       
  2569 	//
       
  2570 
       
  2571     StartCleanup();
       
  2572 	
       
  2573 	// Put any required test clean up here, then remove this comment
       
  2574 	
       
  2575 	return TestStepResult();
       
  2576 	}
       
  2577 
       
  2578 TPtrC CCTSYIntegrationTestMultimediaCallControl0020::GetTestStepName()
       
  2579 /**
       
  2580  * @return The test step name.
       
  2581  */
       
  2582 	{
       
  2583 	return _L("CCTSYIntegrationTestMultimediaCallControl0020");
       
  2584 	}
       
  2585 
       
  2586 
       
  2587 
       
  2588 CCTSYIntegrationTestMultimediaCallControl0021::CCTSYIntegrationTestMultimediaCallControl0021(CEtelSessionMgr& aEtelSessionMgr)
       
  2589 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  2590 /**
       
  2591  * Constructor.
       
  2592  */
       
  2593 	{
       
  2594 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0021::GetTestStepName());
       
  2595 	}
       
  2596 
       
  2597 CCTSYIntegrationTestMultimediaCallControl0021::~CCTSYIntegrationTestMultimediaCallControl0021()
       
  2598 /**
       
  2599  * Destructor.
       
  2600  */
       
  2601 	{
       
  2602 	}
       
  2603 
       
  2604 TVerdict CCTSYIntegrationTestMultimediaCallControl0021::doTestStepL()
       
  2605 /**
       
  2606  * @SYMTestCaseID BA-CTSY-INT-MMCC-0021
       
  2607  * @SYMFssID BA/CTSY/MMCC-0021
       
  2608  * @SYMTestCaseDesc Test call forwarding when not reachable with video calls.
       
  2609  * @SYMTestPriority High
       
  2610  * @SYMTestActions 
       
  2611  * @SYMTestExpectedResults Pass
       
  2612  * @SYMTestType CIT
       
  2613  * @SYMTestCaseDependencies live/manual
       
  2614  *
       
  2615 
       
  2616  *
       
  2617  * @return - TVerdict code
       
  2618  */
       
  2619 	{
       
  2620 
       
  2621 	//
       
  2622 	// SET UP
       
  2623 	//
       
  2624 
       
  2625 	
       
  2626 	// Ensure phone has the following capabilities: KCapsSetCFStatus, KCapsNotifyCFStatus. 
       
  2627 
       
  2628 	// Ensure phone is camped on a valid cell. 
       
  2629 
       
  2630 	// Get data line 1. 
       
  2631 
       
  2632 	// Get call 1. 
       
  2633 
       
  2634 
       
  2635 	//
       
  2636 	// SET UP END
       
  2637 	//
       
  2638 	
       
  2639 	StartTest();
       
  2640 	
       
  2641 	//
       
  2642 	// TEST START
       
  2643 	//
       
  2644 	
       
  2645 	
       
  2646 	// Activate call forwarding when not reachable for video calls and verify call forwarding status change notification completes. 
       
  2647 
       
  2648 	
       
  2649 	//
       
  2650 	// TEST END
       
  2651 	//
       
  2652 
       
  2653     StartCleanup();
       
  2654 	
       
  2655 	// Put any required test clean up here, then remove this comment
       
  2656 	
       
  2657 	return TestStepResult();
       
  2658 	}
       
  2659 
       
  2660 TPtrC CCTSYIntegrationTestMultimediaCallControl0021::GetTestStepName()
       
  2661 /**
       
  2662  * @return The test step name.
       
  2663  */
       
  2664 	{
       
  2665 	return _L("CCTSYIntegrationTestMultimediaCallControl0021");
       
  2666 	}
       
  2667 
       
  2668 
       
  2669 
       
  2670 CCTSYIntegrationTestMultimediaCallControl0022::CCTSYIntegrationTestMultimediaCallControl0022(CEtelSessionMgr& aEtelSessionMgr)
       
  2671 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  2672 /**
       
  2673  * Constructor.
       
  2674  */
       
  2675 	{
       
  2676 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0022::GetTestStepName());
       
  2677 	}
       
  2678 
       
  2679 CCTSYIntegrationTestMultimediaCallControl0022::~CCTSYIntegrationTestMultimediaCallControl0022()
       
  2680 /**
       
  2681  * Destructor.
       
  2682  */
       
  2683 	{
       
  2684 	}
       
  2685 
       
  2686 TVerdict CCTSYIntegrationTestMultimediaCallControl0022::doTestStepL()
       
  2687 /**
       
  2688  * @SYMTestCaseID BA-CTSY-INT-MMCC-0022
       
  2689  * @SYMFssID BA/CTSY/MMCC-0022
       
  2690  * @SYMTestCaseDesc Test receiving an SMS whilst engaged in a video call.
       
  2691  * @SYMTestPriority High
       
  2692  * @SYMTestActions RLine::NotifyStatusChange, RCall::GetStatus, RMobileSmsMessaging::ReceiveMessage
       
  2693  * @SYMTestExpectedResults Pass - SMS reception does not affect active video call.
       
  2694  * @SYMTestType CIT
       
  2695  * @SYMTestCaseDependencies live/manual
       
  2696  *
       
  2697 
       
  2698  *
       
  2699  * @return - TVerdict code
       
  2700  */
       
  2701 	{
       
  2702 
       
  2703 	//
       
  2704 	// SET UP
       
  2705 	//
       
  2706 
       
  2707 	
       
  2708 	// Ensure phone is camped on a valid cell. 
       
  2709 
       
  2710 	// Get data line 1. 
       
  2711 
       
  2712 	// Get call 1. 
       
  2713 
       
  2714 
       
  2715 	//
       
  2716 	// SET UP END
       
  2717 	//
       
  2718 	
       
  2719 	StartTest();
       
  2720 	
       
  2721 	//
       
  2722 	// TEST START
       
  2723 	//
       
  2724 	
       
  2725 	
       
  2726 	// Set up multimedia mobile data call parameters for a multimedia call. 
       
  2727 
       
  2728 	// Dial a video call. Answer that call. 
       
  2729 
       
  2730 	// Verify call is connected. 
       
  2731 
       
  2732 	// Gets call information and verifies it is correct. 
       
  2733 
       
  2734 	// Send an SMS to the baord. 
       
  2735 
       
  2736 	// Verify SMS received. 
       
  2737 
       
  2738 	// Verify video call is still connected. 
       
  2739 
       
  2740 	// Hang up video call. 
       
  2741 
       
  2742 	// Verify SMS message content is correct. 
       
  2743 
       
  2744 	// Repeat with a message longer than with the maximum number of concatenated messages supported. 
       
  2745 
       
  2746 	// Repeat with a message which is longer than the maximum number of concatenations supported. 
       
  2747 
       
  2748 	
       
  2749 	//
       
  2750 	// TEST END
       
  2751 	//
       
  2752 
       
  2753     StartCleanup();
       
  2754 	
       
  2755 	// Put any required test clean up here, then remove this comment
       
  2756 	
       
  2757 	return TestStepResult();
       
  2758 	}
       
  2759 
       
  2760 TPtrC CCTSYIntegrationTestMultimediaCallControl0022::GetTestStepName()
       
  2761 /**
       
  2762  * @return The test step name.
       
  2763  */
       
  2764 	{
       
  2765 	return _L("CCTSYIntegrationTestMultimediaCallControl0022");
       
  2766 	}
       
  2767 
       
  2768 
       
  2769 
       
  2770 CCTSYIntegrationTestMultimediaCallControl0023::CCTSYIntegrationTestMultimediaCallControl0023(CEtelSessionMgr& aEtelSessionMgr)
       
  2771 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  2772 /**
       
  2773  * Constructor.
       
  2774  */
       
  2775 	{
       
  2776 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0023::GetTestStepName());
       
  2777 	}
       
  2778 
       
  2779 CCTSYIntegrationTestMultimediaCallControl0023::~CCTSYIntegrationTestMultimediaCallControl0023()
       
  2780 /**
       
  2781  * Destructor.
       
  2782  */
       
  2783 	{
       
  2784 	}
       
  2785 
       
  2786 TVerdict CCTSYIntegrationTestMultimediaCallControl0023::doTestStepL()
       
  2787 /**
       
  2788  * @SYMTestCaseID BA-CTSY-INT-MMCC-0023
       
  2789  * @SYMFssID BA/CTSY/MMCC-0023
       
  2790  * @SYMTestCaseDesc Test receiving an MMS whilst engaged in a video call.
       
  2791  * @SYMTestPriority High
       
  2792  * @SYMTestActions RLine::NotifyStatusChange, RCall::GetStatus, RMobileSmsMessaging::ReceiveMessage
       
  2793  * @SYMTestExpectedResults Pass - MMS reception does not affect active video call.
       
  2794  * @SYMTestType CIT
       
  2795  * @SYMTestCaseDependencies live/manual
       
  2796  *
       
  2797 
       
  2798  *
       
  2799  * @return - TVerdict code
       
  2800  */
       
  2801 	{
       
  2802 
       
  2803 	//
       
  2804 	// SET UP
       
  2805 	//
       
  2806 
       
  2807 	
       
  2808 	// Ensure phone is camped on a valid cell. 
       
  2809 
       
  2810 	// Get data line 1. 
       
  2811 
       
  2812 	// Get call 1. 
       
  2813 
       
  2814 
       
  2815 	//
       
  2816 	// SET UP END
       
  2817 	//
       
  2818 	
       
  2819 	StartTest();
       
  2820 	
       
  2821 	//
       
  2822 	// TEST START
       
  2823 	//
       
  2824 	
       
  2825 	
       
  2826 	// Set up multimedia mobile data call parameters for a multimedia call. 
       
  2827 
       
  2828 	// Dial a video call. Answer it. 
       
  2829 
       
  2830 	// Verify call is connected. 
       
  2831 
       
  2832 	// Get the call information and verify it is correct. 
       
  2833 
       
  2834 	// Send an MMS to the phone. 
       
  2835 
       
  2836 	// Verify MMS received. 
       
  2837 
       
  2838 	// Verify video call is still connected. 
       
  2839 
       
  2840 	// Hang up video call. 
       
  2841 
       
  2842 	// Verify MMS message content is correct. 
       
  2843 
       
  2844 	
       
  2845 	//
       
  2846 	// TEST END
       
  2847 	//
       
  2848 
       
  2849     StartCleanup();
       
  2850 	
       
  2851 	// Put any required test clean up here, then remove this comment
       
  2852 	
       
  2853 	return TestStepResult();
       
  2854 	}
       
  2855 
       
  2856 TPtrC CCTSYIntegrationTestMultimediaCallControl0023::GetTestStepName()
       
  2857 /**
       
  2858  * @return The test step name.
       
  2859  */
       
  2860 	{
       
  2861 	return _L("CCTSYIntegrationTestMultimediaCallControl0023");
       
  2862 	}
       
  2863 
       
  2864 
       
  2865 
       
  2866 CCTSYIntegrationTestMultimediaCallControl0024::CCTSYIntegrationTestMultimediaCallControl0024(CEtelSessionMgr& aEtelSessionMgr)
       
  2867 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  2868 /**
       
  2869  * Constructor.
       
  2870  */
       
  2871 	{
       
  2872 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0024::GetTestStepName());
       
  2873 	}
       
  2874 
       
  2875 CCTSYIntegrationTestMultimediaCallControl0024::~CCTSYIntegrationTestMultimediaCallControl0024()
       
  2876 /**
       
  2877  * Destructor.
       
  2878  */
       
  2879 	{
       
  2880 	}
       
  2881 
       
  2882 TVerdict CCTSYIntegrationTestMultimediaCallControl0024::doTestStepL()
       
  2883 /**
       
  2884  * @SYMTestCaseID BA-CTSY-INT-MMCC-0024
       
  2885  * @SYMFssID BA/CTSY/MMCC-0024
       
  2886  * @SYMTestCaseDesc iTest.Printf(_L("1\tReceive a MT multimedia call and transfer data\n"));
       
  2887  * @SYMTestPriority High
       
  2888  * @SYMTestActions 
       
  2889  * @SYMTestExpectedResults Pass - See TRP test
       
  2890  * @SYMTestType CIT
       
  2891  * @SYMTestCaseDependencies live/manual
       
  2892  *
       
  2893 
       
  2894  *
       
  2895  * @return - TVerdict code
       
  2896  */
       
  2897 	{
       
  2898 
       
  2899 	//
       
  2900 	// SET UP
       
  2901 	//
       
  2902 
       
  2903 	
       
  2904 
       
  2905 	//
       
  2906 	// SET UP END
       
  2907 	//
       
  2908 	
       
  2909 	StartTest();
       
  2910 	
       
  2911 	//
       
  2912 	// TEST START
       
  2913 	//
       
  2914 	
       
  2915 	
       
  2916 	// See TRP test 
       
  2917 
       
  2918 	
       
  2919 	//
       
  2920 	// TEST END
       
  2921 	//
       
  2922 
       
  2923     StartCleanup();
       
  2924 	
       
  2925 	// Put any required test clean up here, then remove this comment
       
  2926 	
       
  2927 	return TestStepResult();
       
  2928 	}
       
  2929 
       
  2930 TPtrC CCTSYIntegrationTestMultimediaCallControl0024::GetTestStepName()
       
  2931 /**
       
  2932  * @return The test step name.
       
  2933  */
       
  2934 	{
       
  2935 	return _L("CCTSYIntegrationTestMultimediaCallControl0024");
       
  2936 	}
       
  2937 
       
  2938 
       
  2939 
       
  2940 CCTSYIntegrationTestMultimediaCallControl0025::CCTSYIntegrationTestMultimediaCallControl0025(CEtelSessionMgr& aEtelSessionMgr)
       
  2941 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  2942 /**
       
  2943  * Constructor.
       
  2944  */
       
  2945 	{
       
  2946 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0025::GetTestStepName());
       
  2947 	}
       
  2948 
       
  2949 CCTSYIntegrationTestMultimediaCallControl0025::~CCTSYIntegrationTestMultimediaCallControl0025()
       
  2950 /**
       
  2951  * Destructor.
       
  2952  */
       
  2953 	{
       
  2954 	}
       
  2955 
       
  2956 TVerdict CCTSYIntegrationTestMultimediaCallControl0025::doTestStepL()
       
  2957 /**
       
  2958  * @SYMTestCaseID BA-CTSY-INT-MMCC-0025
       
  2959  * @SYMFssID BA/CTSY/MMCC-0025
       
  2960  * @SYMTestCaseDesc iTest.Printf(_L("2\tReject the incoming multimedia call\n"));
       
  2961  * @SYMTestPriority High
       
  2962  * @SYMTestActions 
       
  2963  * @SYMTestExpectedResults Pass - See TRP test
       
  2964  * @SYMTestType CIT
       
  2965  * @SYMTestCaseDependencies live/manual
       
  2966  *
       
  2967 
       
  2968  *
       
  2969  * @return - TVerdict code
       
  2970  */
       
  2971 	{
       
  2972 
       
  2973 	//
       
  2974 	// SET UP
       
  2975 	//
       
  2976 
       
  2977 	 // Ensure phone is camped on a valid cell. 
       
  2978 	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer,KMainPhone);
       
  2979 	CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
       
  2980 	
       
  2981      // Get data line 1. 
       
  2982 	RMobileLine& mobileLine= iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KDataLine);
       
  2983 	
       
  2984 
       
  2985 	//
       
  2986 	// SET UP END
       
  2987 	//
       
  2988 	
       
  2989 	StartTest();
       
  2990 	
       
  2991 	//
       
  2992 	// TEST START
       
  2993 	//
       
  2994 	
       
  2995 	
       
  2996 	// Dial the board (video call, call 1) 
       
  2997 	// post notifier for RLine::NotifyIncomingCall
       
  2998 	TCoreEtelRequestStatus<RLine> notifyIncomingCallStatus (mobileLine,&RLine::NotifyIncomingCallCancel);
       
  2999 	CleanupStack::PushL(notifyIncomingCallStatus);
       
  3000 	TName name;
       
  3001 	mobileLine.NotifyIncomingCall(notifyIncomingCallStatus,name);	
       
  3002 
       
  3003     // Failing CSD calls (see $CTSYProblem described below).
       
  3004     // Code can be added in after multimedia calls are working.
       
  3005 
       
  3006 	// $CTSYProblem: The line is not notifying tester to answer the incoming call ( notifier never completes). 
       
  3007 	// CTSY does not receive anykind of signal from line about incoming call thus it cannot be answered.
       
  3008     // All CSD call are currently failing, this is not a CTSY problem because CTSY has no control over this issue
       
  3009 
       
  3010 	/*
       
  3011 	// Remote party invokes an incoming video call. 
       
  3012 	DisplayUserInteractionPromptL(_L("You should now dial a multimedia call to this board from some other mobilephone"), ETimeLong);
       
  3013 
       
  3014     // Verify incoming call notification completes. 
       
  3015 	ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyIncomingCallStatus,ETimeMedium), KErrNone, _L("RLine::NotifyIncomingCall did not complete without error"));
       
  3016 	ASSERT_EQUALS(notifyIncomingCallStatus.Int(), KErrNone, _L("RLine::NotifyIncomingCall set requestStatus to an error"));
       
  3017 	ASSERT_TRUE(name.Length() > 0, _L("RLine::NotifyIncomingCall did not set the name"));
       
  3018 
       
  3019 	TCallId incomingCallId;
       
  3020 	RMobileCall& incomingCall = iEtelSessionMgr.GetIncomingCallL(KMainServer, KMainPhone, KVoiceLine, name, incomingCallId);
       
  3021 	
       
  3022 	// post a notifier for RMobileCall::NotifyMobileCallStatusChange
       
  3023 	TExtEtelRequestStatus notifyMobileCallChangeStatus(incomingCall, EMobileCallNotifyMobileCallStatusChange);
       
  3024 	CleanupStack::PushL(notifyMobileCallChangeStatus);
       
  3025 	RMobileCall::TMobileCallStatus mobileCallStatus;
       
  3026 	incomingCall.NotifyMobileCallStatusChange(notifyMobileCallChangeStatus, mobileCallStatus);
       
  3027 	
       
  3028     // Reject incoming video call on call 1. 
       
  3029 	// HangupCall
       
  3030 	TCoreEtelRequestStatus<RCall> hangUpStatus (incomingCall, &RCall::HangUpCancel);	
       
  3031 	CleanupStack::PushL(hangUpStatus);
       
  3032 	incomingCall.HangUp(hangUpStatus);
       
  3033 	ASSERT_EQUALS(WaitForRequestWithTimeOut(hangUpStatus, ETimeLong), KErrNone, _L("RCall::HangUp timed-out"));
       
  3034 	ASSERT_EQUALS(hangUpStatus.Int(), KErrNone, _L("RCall::HangUp returned an error"));	
       
  3035      
       
  3036 
       
  3037     // Verify call1 goes -> disconnecting -> idle.
       
  3038     // RMobileCall::NotifyMobileCallStatusChange completes with EStatusConnected. 
       
  3039 	RMobileCall::TMobileCallStatus expectedMobileCallStatus = RMobileCall::EStatusDisconnecting;
       
  3040 	TInt expectedStatus = KErrNone;
       
  3041 	iCallControlTestHelper.WaitForMobileCallNotifyMobileCallStatusChange(incomingCall,
       
  3042 														 					notifyMobileCallChangeStatus,
       
  3043 														 					mobileCallStatus,
       
  3044 														 					expectedMobileCallStatus,
       
  3045 														 					expectedStatus);
       
  3046 														 
       
  3047 	incomingCall.NotifyMobileCallStatusChange(notifyMobileCallChangeStatus, mobileCallStatus);												
       
  3048 	expectedMobileCallStatus = RMobileCall::EStatusIdle;
       
  3049 	iCallControlTestHelper.WaitForMobileCallNotifyMobileCallStatusChange(incomingCall,
       
  3050 														 					notifyMobileCallChangeStatus,
       
  3051 														 					mobileCallStatus,
       
  3052 														 					expectedMobileCallStatus,
       
  3053 														 					expectedStatus);
       
  3054 	*/
       
  3055 
       
  3056 	//
       
  3057 	// TEST END
       
  3058 	//
       
  3059 
       
  3060     StartCleanup();
       
  3061 	
       
  3062 	// Pop
       
  3063 	// notifyIncomingCallStatus
       
  3064 	// notifyMobileCallChangeStatus
       
  3065 	CleanupStack::PopAndDestroy(1, &notifyIncomingCallStatus);
       
  3066 	
       
  3067 	
       
  3068 	return TestStepResult();
       
  3069 	}
       
  3070 
       
  3071 TPtrC CCTSYIntegrationTestMultimediaCallControl0025::GetTestStepName()
       
  3072 /**
       
  3073  * @return The test step name.
       
  3074  */
       
  3075 	{
       
  3076 	return _L("CCTSYIntegrationTestMultimediaCallControl0025");
       
  3077 	}
       
  3078 
       
  3079 
       
  3080 
       
  3081 CCTSYIntegrationTestMultimediaCallControl0026::CCTSYIntegrationTestMultimediaCallControl0026(CEtelSessionMgr& aEtelSessionMgr)
       
  3082 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  3083 /**
       
  3084  * Constructor.
       
  3085  */
       
  3086 	{
       
  3087 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0026::GetTestStepName());
       
  3088 	}
       
  3089 
       
  3090 CCTSYIntegrationTestMultimediaCallControl0026::~CCTSYIntegrationTestMultimediaCallControl0026()
       
  3091 /**
       
  3092  * Destructor.
       
  3093  */
       
  3094 	{
       
  3095 	}
       
  3096 
       
  3097 TVerdict CCTSYIntegrationTestMultimediaCallControl0026::doTestStepL()
       
  3098 /**
       
  3099  * @SYMTestCaseID BA-CTSY-INT-MMCC-0026
       
  3100  * @SYMFssID BA/CTSY/MMCC-0026
       
  3101  * @SYMTestCaseDesc iTest.Printf(_L("3\tAnswer the incoming multimedia call as voice\n"));
       
  3102  * @SYMTestPriority High
       
  3103  * @SYMTestActions 
       
  3104  * @SYMTestExpectedResults Pass - See TRP test
       
  3105  * @SYMTestType CIT
       
  3106  * @SYMTestCaseDependencies live/manual
       
  3107  *
       
  3108 
       
  3109  *
       
  3110  * @return - TVerdict code
       
  3111  */
       
  3112 	{
       
  3113 
       
  3114     //
       
  3115     // SET UP
       
  3116     //
       
  3117 
       
  3118      
       
  3119     // Ensure phone is camped on a valid cell.
       
  3120 	RMobilePhone& phone = iEtelSessionMgr.GetPhoneL(KMainServer,KMainPhone);
       
  3121 	CHECK_EQUALS_L(iNetworkTestHelper.WaitForRegisteredOnHomeNetworkL(phone), KErrNone, _L("TNetworkTsyTestHelper::WaitForRegisteredOnHomeNetworkL returned with an error"));
       
  3122 	
       
  3123 	// Get data line 1.
       
  3124 	RMobileLine& mobileLine= iEtelSessionMgr.GetLineL(KMainServer, KMainPhone, KDataLine);	
       
  3125 
       
  3126     //
       
  3127     // SET UP END
       
  3128     //
       
  3129      
       
  3130     StartTest();
       
  3131      
       
  3132     //
       
  3133     // TEST START
       
  3134     //
       
  3135     
       
  3136     // Dial the board (video call, call 1)
       
  3137     
       
  3138     // post notifier for RLine::NotifyIncomingCall
       
  3139 	TCoreEtelRequestStatus<RLine> notifyIncomingCallStatus (mobileLine,&RLine::NotifyIncomingCallCancel);
       
  3140 	CleanupStack::PushL(notifyIncomingCallStatus);
       
  3141 	TName name;
       
  3142 	mobileLine.NotifyIncomingCall(notifyIncomingCallStatus,name);
       
  3143     
       
  3144     // Failing CSD calls (see $CTSYProblem described below).
       
  3145     // Code can be added in after multimedia calls are working.
       
  3146 
       
  3147 	// $CTSYProblem: The line is not notifying tester to answer the incoming call ( notifier never completes). 
       
  3148 	// CTSY does not receive anykind of signal from line about incoming call thus it cannot be answered.
       
  3149     // All CSD call are currently failing, this is not a CTSY problem because CTSY has no control over this issue
       
  3150 
       
  3151 	/*
       
  3152 	// Remote party invokes an incoming video call. 
       
  3153 	DisplayUserInteractionPromptL(_L("You should now dial a multimedia call to this board from some other mobilephone"), ETimeLong);
       
  3154 	
       
  3155     // Verify incoming call notification completes. 
       
  3156 	ASSERT_EQUALS(WaitForRequestWithTimeOut(notifyIncomingCallStatus,ETimeMedium), KErrNone, _L("RLine::NotifyIncomingCall did not complete without error"));
       
  3157 	ASSERT_EQUALS(notifyIncomingCallStatus.Int(), KErrNone, _L("RLine::NotifyIncomingCall set requestStatus to an error"));
       
  3158 	ASSERT_TRUE(name.Length() > 0, _L("RLine::NotifyIncomingCall did not set the name"));
       
  3159 
       
  3160 	// Get call 1.
       
  3161 	TCallId incomingCallId;
       
  3162 	RMobileCall& call1 = iEtelSessionMgr.GetIncomingCallL(KMainServer, KMainPhone, KDataLine, name, incomingCallId);
       
  3163     
       
  3164 	// post notifier for RCall::NotifyStatusChange for incoming call
       
  3165 	TCoreEtelRequestStatus<RCall> notifyCallStatusChangeStatus (call1, &RCall::NotifyStatusChangeCancel);
       
  3166 	CleanupStack::PushL(notifyCallStatusChangeStatus);
       
  3167 	RCall::TStatus callStatus;
       
  3168 	call1.NotifyStatusChange(notifyCallStatusChangeStatus, callStatus);
       
  3169     
       
  3170     // Answer incoming call as a voice call.
       
  3171 	TCoreEtelRequestStatus<RCall> answerIncomingStatus(call1, &RCall::AnswerIncomingCallCancel);
       
  3172 	CleanupStack::PushL(answerIncomingStatus);
       
  3173 	RMobileCall::TMobileDataCallParamsV1 callParams;
       
  3174 	RMobileCall::TMobileCallParamsV1Pckg callParamsPckg(callParams);
       
  3175 	TName voiceName;
       
  3176 	call1.AnswerMultimediaCallAsVoice(answerIncomingStatus, callParamsPckg, voiceName);
       
  3177 	ASSERT_EQUALS(WaitForRequestWithTimeOut(answerIncomingStatus, ETimeMedium), KErrNone, _L("RMobileCall::AnswerIncomingCall timed-out"));
       
  3178 	ASSERT_EQUALS(answerIncomingStatus.Int(), KErrNone, _L("RMobileCall::AnswerIncomingCall returned with an error"));
       
  3179 	ASSERT_EQUALS(call1.OpenExistingCall(mobileLine, voiceName), KErrNone, _L("RMobileCall::OpenExistingCall returned with an error"));
       
  3180 
       
  3181     // Check that call is connected and that status goes to EStatusConnected
       
  3182 	RCall::TStatus expectedCallStatus = RCall::EStatusConnected;
       
  3183 	iCallControlTestHelper.WaitForCallNotifyStatusChange(call1,
       
  3184 														 notifyCallStatusChangeStatus,
       
  3185 														 callStatus,
       
  3186 														 expectedCallStatus,
       
  3187 														 KErrNone);
       
  3188     
       
  3189     // Check RMobilePhone::GetMobileCallInfo completes with TMobileService::EVoiceService
       
  3190     RMobileCall::TMobileCallInfoV1 mobileCallInfo;
       
  3191 	RMobileCall::TMobileCallInfoV1Pckg callInfoPckg(mobileCallInfo);
       
  3192 	ASSERT_EQUALS(call1.GetMobileCallInfo(callInfoPckg), KErrNone, _L("RMobileCall::GetMobileCallInfo returned an error"));
       
  3193 	ASSERT_EQUALS(mobileCallInfo.iService, RMobilePhone::EVoiceService, _L("RMobileCall::GetMobileCallInfo did not return RMobilePhone::EVoiceService as expected"));
       
  3194     
       
  3195 	// HangupCall
       
  3196 	TCoreEtelRequestStatus<RCall> hangUpStatus (call1, &RCall::HangUpCancel);	
       
  3197 	CleanupStack::PushL(hangUpStatus);
       
  3198 	call1.HangUp(hangUpStatus);
       
  3199 	ASSERT_EQUALS(WaitForRequestWithTimeOut(hangUpStatus, ETimeLong), KErrNone, _L("RCall::HangUp timed-out"));
       
  3200 	ASSERT_EQUALS(hangUpStatus.Int(), KErrNone, _L("RCall::HangUp returned an error"));	
       
  3201     */
       
  3202     
       
  3203 	//
       
  3204 	// TEST END
       
  3205 	//
       
  3206 
       
  3207     StartCleanup();
       
  3208 	
       
  3209 	//notifyIncomingCallStatus
       
  3210 	//notifyCallStatusChangeStatus
       
  3211 	//answerIncomingStatus
       
  3212 	//hangUpStatus
       
  3213 	CleanupStack::PopAndDestroy(1, &notifyIncomingCallStatus);
       
  3214     
       
  3215 	return TestStepResult();
       
  3216 	
       
  3217 	}
       
  3218 
       
  3219 TPtrC CCTSYIntegrationTestMultimediaCallControl0026::GetTestStepName()
       
  3220 /**
       
  3221  * @return The test step name.
       
  3222  */
       
  3223 	{
       
  3224 	return _L("CCTSYIntegrationTestMultimediaCallControl0026");
       
  3225 	}
       
  3226 
       
  3227 
       
  3228 
       
  3229 CCTSYIntegrationTestMultimediaCallControl0027::CCTSYIntegrationTestMultimediaCallControl0027(CEtelSessionMgr& aEtelSessionMgr)
       
  3230 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  3231 /**
       
  3232  * Constructor.
       
  3233  */
       
  3234 	{
       
  3235 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0027::GetTestStepName());
       
  3236 	}
       
  3237 
       
  3238 CCTSYIntegrationTestMultimediaCallControl0027::~CCTSYIntegrationTestMultimediaCallControl0027()
       
  3239 /**
       
  3240  * Destructor.
       
  3241  */
       
  3242 	{
       
  3243 	}
       
  3244 
       
  3245 TVerdict CCTSYIntegrationTestMultimediaCallControl0027::doTestStepL()
       
  3246 /**
       
  3247  * @SYMTestCaseID BA-CTSY-INT-MMCC-0027
       
  3248  * @SYMFssID BA/CTSY/MMCC-0027
       
  3249  * @SYMTestCaseDesc iTest.Printf(_L("4\tRetrieve the params negotiated for the MT call\n"));
       
  3250  * @SYMTestPriority High
       
  3251  * @SYMTestActions 
       
  3252  * @SYMTestExpectedResults Pass - See TRP test
       
  3253  * @SYMTestType CIT
       
  3254  * @SYMTestCaseDependencies live/manual
       
  3255  *
       
  3256 
       
  3257  *
       
  3258  * @return - TVerdict code
       
  3259  */
       
  3260 	{
       
  3261 
       
  3262 	//
       
  3263 	// SET UP
       
  3264 	//
       
  3265 
       
  3266 	
       
  3267 
       
  3268 	//
       
  3269 	// SET UP END
       
  3270 	//
       
  3271 	
       
  3272 	StartTest();
       
  3273 	
       
  3274 	//
       
  3275 	// TEST START
       
  3276 	//
       
  3277 	
       
  3278 	
       
  3279 	// See TRP test 
       
  3280 
       
  3281 	
       
  3282 	//
       
  3283 	// TEST END
       
  3284 	//
       
  3285 
       
  3286     StartCleanup();
       
  3287 	
       
  3288 	// Put any required test clean up here, then remove this comment
       
  3289 	
       
  3290 	return TestStepResult();
       
  3291 	}
       
  3292 
       
  3293 TPtrC CCTSYIntegrationTestMultimediaCallControl0027::GetTestStepName()
       
  3294 /**
       
  3295  * @return The test step name.
       
  3296  */
       
  3297 	{
       
  3298 	return _L("CCTSYIntegrationTestMultimediaCallControl0027");
       
  3299 	}
       
  3300 
       
  3301 
       
  3302 
       
  3303 CCTSYIntegrationTestMultimediaCallControl0028::CCTSYIntegrationTestMultimediaCallControl0028(CEtelSessionMgr& aEtelSessionMgr)
       
  3304 	: CCTSYIntegrationTestMultimediaCallControlBase(aEtelSessionMgr)
       
  3305 /**
       
  3306  * Constructor.
       
  3307  */
       
  3308 	{
       
  3309 	SetTestStepName(CCTSYIntegrationTestMultimediaCallControl0028::GetTestStepName());
       
  3310 	}
       
  3311 
       
  3312 CCTSYIntegrationTestMultimediaCallControl0028::~CCTSYIntegrationTestMultimediaCallControl0028()
       
  3313 /**
       
  3314  * Destructor.
       
  3315  */
       
  3316 	{
       
  3317 	}
       
  3318 
       
  3319 TVerdict CCTSYIntegrationTestMultimediaCallControl0028::doTestStepL()
       
  3320 /**
       
  3321  * @SYMTestCaseID BA-CTSY-INT-MMCC-0028
       
  3322  * @SYMFssID BA/CTSY/MMCC-0028
       
  3323  * @SYMTestCaseDesc iTest.Printf(_L("1\tNotify MO multimedia call voice fallback\n"));
       
  3324  * @SYMTestPriority High
       
  3325  * @SYMTestActions 
       
  3326  * @SYMTestExpectedResults Pass - See TRP test
       
  3327  * @SYMTestType CIT
       
  3328  * @SYMTestCaseDependencies live/manual
       
  3329  *
       
  3330 
       
  3331  *
       
  3332  * @return - TVerdict code
       
  3333  */
       
  3334 	{
       
  3335 
       
  3336 	//
       
  3337 	// SET UP
       
  3338 	//
       
  3339 
       
  3340 	
       
  3341 
       
  3342 	//
       
  3343 	// SET UP END
       
  3344 	//
       
  3345 	
       
  3346 	StartTest();
       
  3347 	
       
  3348 	//
       
  3349 	// TEST START
       
  3350 	//
       
  3351 	
       
  3352 	
       
  3353 	// See TRP test 
       
  3354 
       
  3355 	
       
  3356 	//
       
  3357 	// TEST END
       
  3358 	//
       
  3359 
       
  3360     StartCleanup();
       
  3361 	
       
  3362 	// Put any required test clean up here, then remove this comment
       
  3363 	
       
  3364 	return TestStepResult();
       
  3365 	}
       
  3366 
       
  3367 TPtrC CCTSYIntegrationTestMultimediaCallControl0028::GetTestStepName()
       
  3368 /**
       
  3369  * @return The test step name.
       
  3370  */
       
  3371 	{
       
  3372 	return _L("CCTSYIntegrationTestMultimediaCallControl0028");
       
  3373 	}
       
  3374 
       
  3375 
       
  3376