1#!/usr/bin/env python3.4 2# 3# Copyright 2016 - Google 4# 5# Licensed under the Apache License, Version 2.0 (the "License"); 6# you may not use this file except in compliance with the License. 7# You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an "AS IS" BASIS, 13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14# See the License for the specific language governing permissions and 15# limitations under the License. 16""" 17 Test Script for Live Network Telephony Conference Call 18""" 19 20import time 21from acts import signals 22from acts.test_decorators import test_tracker_info 23from acts.libs.utils.multithread import multithread_func 24from acts_contrib.test_utils.tel.TelephonyBaseTest import TelephonyBaseTest 25from acts_contrib.test_utils.tel.tel_defines import CALL_CAPABILITY_MERGE_CONFERENCE 26from acts_contrib.test_utils.tel.tel_defines import CALL_CAPABILITY_SWAP_CONFERENCE 27from acts_contrib.test_utils.tel.tel_defines import CALL_STATE_ACTIVE 28from acts_contrib.test_utils.tel.tel_defines import CAPABILITY_CONFERENCE 29from acts_contrib.test_utils.tel.tel_defines import PHONE_TYPE_CDMA 30from acts_contrib.test_utils.tel.tel_defines import WAIT_TIME_IN_CALL 31from acts_contrib.test_utils.tel.tel_defines import WFC_MODE_WIFI_ONLY 32from acts_contrib.test_utils.tel.tel_defines import WFC_MODE_WIFI_PREFERRED 33from acts_contrib.test_utils.tel.tel_phone_setup_utils import ensure_phones_idle 34from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_3g 35from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_voice_2g 36from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_voice_3g 37from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_csfb 38from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_iwlan 39from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_voice_general 40from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_volte 41from acts_contrib.test_utils.tel.tel_ss_utils import three_phone_call_forwarding_short_seq 42from acts_contrib.test_utils.tel.tel_ss_utils import three_phone_call_waiting_short_seq 43from acts_contrib.test_utils.tel.tel_subscription_utils import get_outgoing_voice_sub_id 44from acts_contrib.test_utils.tel.tel_test_utils import get_phone_number 45from acts_contrib.test_utils.tel.tel_test_utils import install_dialer_apk 46from acts_contrib.test_utils.tel.tel_test_utils import num_active_calls 47from acts_contrib.test_utils.tel.tel_test_utils import verify_incall_state 48from acts_contrib.test_utils.tel.tel_test_utils import get_capability_for_subscription 49from acts_contrib.test_utils.tel.tel_voice_utils import call_reject 50from acts_contrib.test_utils.tel.tel_voice_utils import call_setup_teardown 51from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_1x 52from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_2g 53from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_3g 54from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_csfb 55from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_iwlan 56from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_volte 57from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_wcdma 58from acts_contrib.test_utils.tel.tel_voice_utils import swap_calls 59from acts_contrib.test_utils.tel.tel_voice_utils import wait_and_answer_call 60from acts_contrib.test_utils.tel.tel_voice_conf_utils import _get_expected_call_state 61from acts_contrib.test_utils.tel.tel_voice_conf_utils import _hangup_call 62from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_ims_conference_merge_drop_first_call_from_host 63from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_ims_conference_merge_drop_first_call_from_participant 64from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_ims_conference_merge_drop_second_call_from_host 65from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_ims_conference_merge_drop_second_call_from_participant 66from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_call_mo_mo_add_swap_x 67from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_call_mo_mt_add_swap_x 68from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_call_mt_mt_add_swap_x 69from acts_contrib.test_utils.tel.tel_voice_conf_utils import _three_phone_call_mo_add_mo 70from acts_contrib.test_utils.tel.tel_voice_conf_utils import _three_phone_call_mo_add_mt 71from acts_contrib.test_utils.tel.tel_voice_conf_utils import _three_phone_hangup_call_verify_call_state 72from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_wcdma_conference_merge_drop 73 74class TelLiveVoiceConfTest(TelephonyBaseTest): 75 def setup_class(self): 76 TelephonyBaseTest.setup_class(self) 77 if not get_capability_for_subscription( 78 self.android_devices[0], 79 CAPABILITY_CONFERENCE, 80 get_outgoing_voice_sub_id(self.android_devices[0])): 81 self.android_devices[0].log.error( 82 "Conference call is not supported, abort test.") 83 raise signals.TestAbortClass( 84 "Conference call is not supported, abort test.") 85 86 self.dialer_util = self.user_params.get("dialer_apk", None) 87 if isinstance(self.dialer_util, list): 88 self.dialer_util = self.dialer_util[0] 89 90 if self.dialer_util: 91 ads = self.android_devices 92 for ad in ads: 93 install_dialer_apk(ad, self.dialer_util) 94 95 def teardown_test(self): 96 ensure_phones_idle(self.log, self.android_devices) 97 98 # Note: Currently Conference Call do not verify voice. 99 # So even if test cases passed, does not necessarily means 100 # conference call functionality is working. 101 # Need to add code to check for voice. 102 """ Private Test Utils """ 103 104 def _three_phone_call_mo_add_mt_reject(self, ads, verify_funcs, reject): 105 """Use 3 phones to make MO call and MT call. 106 107 Call from PhoneA to PhoneB, accept on PhoneB. 108 Call from PhoneC to PhoneA. PhoneA receive incoming call. 109 if reject is True, then reject the call on PhoneA. 110 if reject if False, then just ignore the incoming call on PhoneA. 111 112 Args: 113 ads: list of ad object. 114 The list should have three objects. 115 verify_funcs: list of phone call verify functions for 116 PhoneA and PhoneB. The list should have two objects. 117 118 Returns: 119 True if no error happened. 120 """ 121 122 class _CallException(Exception): 123 pass 124 125 try: 126 verify_func_a, verify_func_b = verify_funcs 127 self.log.info("Step1: Call From PhoneA to PhoneB.") 128 if not call_setup_teardown( 129 self.log, 130 ads[0], 131 ads[1], 132 ad_hangup=None, 133 verify_caller_func=verify_func_a, 134 verify_callee_func=verify_func_b): 135 raise _CallException("PhoneA call PhoneB failed.") 136 137 self.log.info("Step2: Call From PhoneC to PhoneA then decline.") 138 if not call_reject(self.log, ads[2], ads[0], reject): 139 raise _CallException("PhoneC call PhoneA then decline failed.") 140 time.sleep(WAIT_TIME_IN_CALL) 141 if not verify_incall_state(self.log, [ads[0], ads[1]], True): 142 raise _CallException("PhoneA and PhoneB are not in call.") 143 144 except _CallException: 145 return False 146 147 return True 148 149 150 def _test_1x_mo_mo_add(self): 151 """Test multi call feature in 1x call. 152 153 PhoneA (1x) call PhoneB, accept on PhoneB. 154 PhoneA (1x) call PhoneC, accept on PhoneC. 155 156 Returns: 157 call_ab_id, call_ac_id, call_conf_id if succeed; 158 None, None, None if failed. 159 160 """ 161 ads = self.android_devices 162 163 # make sure PhoneA is CDMA phone before proceed. 164 if (ads[0].droid.telephonyGetPhoneType() != PHONE_TYPE_CDMA): 165 raise signals.TestSkip("not CDMA phone, abort this 1x test.") 166 167 call_ab_id = _three_phone_call_mo_add_mo(self.log, 168 [ads[0], ads[1], ads[2]], [ 169 phone_setup_voice_3g, phone_setup_voice_general, 170 phone_setup_voice_general 171 ], [is_phone_in_call_1x, None, None]) 172 if call_ab_id is None: 173 self.log.error("Failed to get call_ab_id") 174 return None, None, None 175 176 calls = ads[0].droid.telecomCallGetCallIds() 177 ads[0].log.info("Calls in PhoneA %s", calls) 178 if num_active_calls(self.log, ads[0]) != 3: 179 return None, None, None 180 for call_id in calls: 181 if (CALL_CAPABILITY_MERGE_CONFERENCE in ads[0] 182 .droid.telecomCallGetCapabilities(call_id)): 183 call_conf_id = call_id 184 elif call_id != call_ab_id: 185 call_ac_id = call_id 186 187 return call_ab_id, call_ac_id, call_conf_id 188 189 190 def _test_1x_mo_mt_add_swap_x(self, num_swaps): 191 """Test multi call feature in 1x call. 192 193 PhoneA (1x) call PhoneB, accept on PhoneB. 194 PhoneC call PhoneA (1x), accept on PhoneA. 195 Swap active call on PhoneA.(N times) 196 197 Returns: 198 call_ab_id, call_ac_id, call_conf_id if succeed; 199 None, None, None if failed. 200 201 """ 202 ads = self.android_devices 203 204 # make sure PhoneA is CDMA phone before proceed. 205 if (ads[0].droid.telephonyGetPhoneType() != PHONE_TYPE_CDMA): 206 raise signals.TestSkip("not CDMA phone, abort this 1x test.") 207 208 call_ab_id = _three_phone_call_mo_add_mt(self.log, 209 [ads[0], ads[1], ads[2]], [ 210 phone_setup_voice_3g, phone_setup_voice_general, 211 phone_setup_voice_general 212 ], [is_phone_in_call_1x, None, None]) 213 if call_ab_id is None: 214 self.log.error("Failed to get call_ab_id") 215 return None, None, None 216 217 call_conf_id = None 218 calls = ads[0].droid.telecomCallGetCallIds() 219 ads[0].log.info("Calls in PhoneA %s", calls) 220 if num_active_calls(self.log, ads[0]) != 3: 221 return None, None, None 222 for call_id in calls: 223 if (CALL_CAPABILITY_SWAP_CONFERENCE in ads[0] 224 .droid.telecomCallGetCapabilities(call_id)): 225 call_conf_id = call_id 226 elif call_id != call_ab_id: 227 call_ac_id = call_id 228 229 if num_swaps > 0: 230 self.log.info("Step3: Begin Swap x%s test.", num_swaps) 231 if not swap_calls( 232 self.log, 233 ads, 234 call_ab_id, 235 call_ac_id, 236 num_swaps, 237 check_call_status=False): 238 self.log.error("Swap test failed.") 239 return None, None, None 240 241 return call_ab_id, call_ac_id, call_conf_id 242 243 244 def _test_1x_mt_mt_add_swap_x(self, num_swaps): 245 """Test multi call feature in 1x call. 246 247 PhoneB call PhoneA (1x), accept on PhoneA. 248 PhoneC call PhoneA (1x), accept on PhoneA. 249 Swap active call on PhoneA.(N times) 250 251 Returns: 252 call_ab_id, call_ac_id, call_conf_id if succeed; 253 None, None, None if failed. 254 255 """ 256 ads = self.android_devices 257 258 # make sure PhoneA is CDMA phone before proceed. 259 if (ads[0].droid.telephonyGetPhoneType() != PHONE_TYPE_CDMA): 260 raise signals.TestSkip("not CDMA phone, abort this 1x test.") 261 262 call_ab_id = self._three_phone_call_mt_add_mt( 263 [ads[0], ads[1], ads[2]], [ 264 phone_setup_voice_3g, phone_setup_voice_general, 265 phone_setup_voice_general 266 ], [is_phone_in_call_1x, None, None]) 267 if call_ab_id is None: 268 self.log.error("Failed to get call_ab_id") 269 return None, None, None 270 271 call_conf_id = None 272 calls = ads[0].droid.telecomCallGetCallIds() 273 ads[0].log.info("Calls in PhoneA %s", calls) 274 if num_active_calls(self.log, ads[0]) != 3: 275 return None, None, None 276 for call_id in calls: 277 if (CALL_CAPABILITY_SWAP_CONFERENCE in ads[0] 278 .droid.telecomCallGetCapabilities(call_id)): 279 call_conf_id = call_id 280 elif call_id != call_ab_id: 281 call_ac_id = call_id 282 283 if num_swaps > 0: 284 self.log.info("Step3: Begin Swap x%s test.", num_swaps) 285 if not swap_calls( 286 self.log, 287 ads, 288 call_ab_id, 289 call_ac_id, 290 num_swaps, 291 check_call_status=False): 292 self.log.error("Swap test failed.") 293 return None, None, None 294 295 return call_ab_id, call_ac_id, call_conf_id 296 297 298 def _test_1x_multi_call_drop_from_participant(self, host, first_drop_ad, 299 second_drop_ad): 300 """Test private function to drop call from participant in 1x multi call. 301 302 Host(1x) is in multi call scenario with first_drop_ad and second_drop_ad. 303 Drop call on first_drop_ad. 304 Verify call continues between host and second_drop_ad. 305 Drop call on second_drop_ad and verify host also ends. 306 307 Args: 308 host: android device object for multi-call/conference-call host. 309 first_drop_ad: android device object for call participant, end call 310 on this participant first. 311 second_drop_ad: android device object for call participant, end call 312 on this participant second. 313 314 Returns: 315 True if no error happened. Otherwise False. 316 """ 317 self.log.info("Drop 1st call.") 318 if not _hangup_call(self.log, first_drop_ad): 319 return False 320 time.sleep(WAIT_TIME_IN_CALL) 321 calls = host.droid.telecomCallGetCallIds() 322 host.log.info("Calls list: %s", calls) 323 if num_active_calls(self.log, host) != 3: 324 return False 325 if not verify_incall_state(self.log, [host, second_drop_ad], True): 326 return False 327 if not verify_incall_state(self.log, [first_drop_ad], False): 328 return False 329 330 self.log.info("Drop 2nd call.") 331 if not _hangup_call(self.log, second_drop_ad): 332 return False 333 time.sleep(WAIT_TIME_IN_CALL) 334 if not verify_incall_state( 335 self.log, [host, second_drop_ad, first_drop_ad], False): 336 return False 337 return True 338 339 340 def _test_1x_multi_call_drop_from_host(self, host, active_participant_ad, 341 held_participant_ad): 342 """Test private function to drop call from host in 1x multi call. 343 344 Host(1x) is in multi call scenario with first_drop_ad and second_drop_ad. 345 Drop call on host. Then active_participant_ad should ends as well. 346 Host should receive a call back from held_participant_ad. Answer on host. 347 Drop call on host. Then verify held_participant_ad ends as well. 348 349 Args: 350 host: android device object for multi-call/conference-call host. 351 active_participant_ad: android device object for the current active 352 call participant. 353 held_participant_ad: android device object for the current held 354 call participant. 355 356 Returns: 357 True if no error happened. Otherwise False. 358 """ 359 self.log.info("Drop current call on Host.") 360 if not _hangup_call(self.log, host, "Host"): 361 return False 362 if not wait_and_answer_call(self.log, host, 363 get_phone_number(self.log, 364 held_participant_ad)): 365 self.log.error("Did not receive call back.") 366 return False 367 time.sleep(WAIT_TIME_IN_CALL) 368 if not verify_incall_state(self.log, [host, held_participant_ad], 369 True): 370 return False 371 if not verify_incall_state(self.log, [active_participant_ad], False): 372 return False 373 374 self.log.info("Drop current call on Host.") 375 if not _hangup_call(self.log, host, "Host"): 376 return False 377 time.sleep(WAIT_TIME_IN_CALL) 378 if not verify_incall_state( 379 self.log, [host, held_participant_ad, active_participant_ad], 380 False): 381 return False 382 return True 383 384 385 def _test_1x_conf_call_drop_from_host(self, host, participant_list): 386 """Test private function to drop call from host in 1x conference call. 387 388 Host(1x) is in conference call scenario with phones in participant_list. 389 End call on host. Then all phones in participant_list should end call. 390 391 Args: 392 host: android device object for multi-call/conference-call host. 393 participant_list: android device objects list for all other 394 participants in multi-call/conference-call. 395 396 Returns: 397 True if no error happened. Otherwise False. 398 """ 399 self.log.info("Drop conference call on Host.") 400 if not _hangup_call(self.log, host, "Host"): 401 return False 402 time.sleep(WAIT_TIME_IN_CALL) 403 if not verify_incall_state(self.log, [host], False): 404 return False 405 if not verify_incall_state(self.log, participant_list, False): 406 return False 407 return True 408 409 410 def _test_1x_merge_conference(self, host, participant_list, call_conf_id): 411 """Test private function to merge to conference in 1x multi call scenario. 412 413 Host(1x) is in multi call scenario with phones in participant_list. 414 Merge to conference on host. 415 Verify merge succeed. 416 417 Args: 418 host: android device object for multi-call/conference-call host. 419 participant_list: android device objects list for all other 420 participants in multi-call/conference-call. 421 call_conf_id: conference call id in host android device object. 422 423 Returns: 424 True if no error happened. Otherwise False. 425 """ 426 host.droid.telecomCallMergeToConf(call_conf_id) 427 time.sleep(WAIT_TIME_IN_CALL) 428 calls = host.droid.telecomCallGetCallIds() 429 host.log.info("Calls in Phone %s", calls) 430 if num_active_calls(self.log, host) != 3: 431 return False 432 if not verify_incall_state(self.log, [host], True): 433 return False 434 if not verify_incall_state(self.log, participant_list, True): 435 return False 436 if (CALL_CAPABILITY_MERGE_CONFERENCE in 437 host.droid.telecomCallGetCapabilities(call_conf_id)): 438 self.log.error("Merge conference failed.") 439 return False 440 return True 441 442 """ Tests Begin """ 443 @TelephonyBaseTest.tel_test_wrap 444 @test_tracker_info(uuid="3cd45972-3862-4956-9504-7fefacdd5ca6") 445 def test_wcdma_mo_mo_add_merge_drop(self): 446 """ Test Conf Call among three phones. 447 448 Call from PhoneA to PhoneB, accept on PhoneB. 449 Call from PhoneA to PhoneC, accept on PhoneC. 450 On PhoneA, merge to conference call. 451 End call on PhoneC, verify call continues. 452 End call on PhoneB, verify call end on PhoneA. 453 454 Returns: 455 True if pass; False if fail. 456 """ 457 ads = self.android_devices 458 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 459 ads=ads, 460 num_swaps=0, 461 phone_setup_a=phone_setup_voice_3g, 462 phone_setup_b=phone_setup_voice_general, 463 phone_setup_c=phone_setup_voice_general, 464 verify_phone_a_network_subscription=is_phone_in_call_3g, 465 verify_phone_b_network_subscription=None, 466 verify_phone_c_network_subscription=None) 467 468 if call_ab_id is None or call_ac_id is None: 469 return False 470 471 return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) 472 473 474 @TelephonyBaseTest.tel_test_wrap 475 @test_tracker_info(uuid="c1158bd3-6327-4c91-96a7-400e69f68698") 476 def test_wcdma_mt_mt_add_merge_drop(self): 477 """ Test Conf Call among three phones. 478 479 Call from PhoneB to PhoneA, accept on PhoneA. 480 Call from PhoneC to PhoneA, accept on PhoneA. 481 On PhoneA, merge to conference call. 482 End call on PhoneC, verify call continues. 483 End call on PhoneB, verify call end on PhoneA. 484 485 Returns: 486 True if pass; False if fail. 487 """ 488 ads = self.android_devices 489 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 490 ads=ads, 491 num_swaps=0, 492 phone_setup_a=phone_setup_voice_3g, 493 phone_setup_b=phone_setup_voice_general, 494 phone_setup_c=phone_setup_voice_general, 495 verify_phone_a_network_subscription=is_phone_in_call_3g, 496 verify_phone_b_network_subscription=None, 497 verify_phone_c_network_subscription=None) 498 499 if call_ab_id is None or call_ac_id is None: 500 return False 501 502 return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) 503 504 505 @TelephonyBaseTest.tel_test_wrap 506 @test_tracker_info(uuid="804478b4-a826-48be-a9fa-9a0cec66ee54") 507 def test_1x_mo_mo_add_merge_drop_from_participant(self): 508 """ Test 1x Conf Call among three phones. 509 510 Steps: 511 1. DUT in 1x idle, PhoneB and PhoneC idle. 512 2. Call from DUT to PhoneB, accept on PhoneB. 513 3. Call from DUT to PhoneC, accept on PhoneC. 514 4. On DUT, merge to conference call. 515 5. End call PhoneC, verify call continues on DUT and PhoneB. 516 6. End call on PhoneB, verify call end on PhoneA. 517 518 Expected Results: 519 4. Merge Call succeed on DUT. 520 5. PhoneC drop call, DUT and PhoneB call continues. 521 6. PhoneB drop call, call also end on DUT. 522 523 Returns: 524 True if pass; False if fail. 525 """ 526 ads = self.android_devices 527 528 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mo_add() 529 if ((call_ab_id is None) or (call_ac_id is None) 530 or (call_conf_id is None)): 531 self.log.error("Failed to setup 3 way call.") 532 return False 533 534 self.log.info("Merge to Conf Call and verify Conf Call.") 535 if not self._test_1x_merge_conference(ads[0], [ads[1], ads[2]], 536 call_conf_id): 537 self.log.error("1x Conference merge failed.") 538 539 self.log.info("End call on PhoneC, and end call on PhoneB.") 540 return self._test_1x_multi_call_drop_from_participant( 541 ads[0], ads[2], ads[1]) 542 543 544 @TelephonyBaseTest.tel_test_wrap 545 @test_tracker_info(uuid="a36b02a6-480e-4cb6-9201-bd8bfa5ae8a4") 546 def test_1x_mo_mo_add_merge_drop_from_host(self): 547 """ Test 1x Conf Call among three phones. 548 549 Steps: 550 1. DUT in 1x idle, PhoneB and PhoneC idle. 551 2. Call from DUT to PhoneB, accept on PhoneB. 552 3. Call from DUT to PhoneC, accept on PhoneC. 553 4. On DUT, merge to conference call. 554 5. End call on DUT, make sure all participants drop. 555 556 Expected Results: 557 4. Merge Call succeed on DUT. 558 5. Make sure DUT and all participants drop call. 559 560 Returns: 561 True if pass; False if fail. 562 """ 563 ads = self.android_devices 564 565 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mo_add() 566 if ((call_ab_id is None) or (call_ac_id is None) 567 or (call_conf_id is None)): 568 self.log.error("Failed to setup 3 way call.") 569 return False 570 571 self.log.info("Merge to Conf Call and verify Conf Call.") 572 if not self._test_1x_merge_conference(ads[0], [ads[1], ads[2]], 573 call_conf_id): 574 self.log.error("1x Conference merge failed.") 575 576 self.log.info("End call on PhoneC, and end call on PhoneB.") 577 return self._test_1x_conf_call_drop_from_host(ads[0], [ads[2], ads[1]]) 578 579 580 @TelephonyBaseTest.tel_test_wrap 581 @test_tracker_info(uuid="0c9e5da6-90db-4cb5-9b2c-4be3460b49d0") 582 def test_1x_mo_mt_add_drop_active(self): 583 """ Test 1x MO+MT call among three phones. 584 585 Steps: 586 1. DUT in 1x idle, PhoneB and PhoneC idle. 587 2. Call from DUT to PhoneB, accept on PhoneB. 588 3. Call from PhoneC to DUT, accept on DUT. 589 4. End call PhoneC, verify call continues on DUT and PhoneB. 590 5. End call on PhoneB, verify call end on PhoneA. 591 592 Expected Results: 593 4. PhoneC drop call, DUT and PhoneB call continues. 594 5. PhoneB drop call, call also end on DUT. 595 596 Returns: 597 True if pass; False if fail. 598 """ 599 ads = self.android_devices 600 601 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( 602 0) 603 if ((call_ab_id is None) or (call_ac_id is None) 604 or (call_conf_id is None)): 605 self.log.error("Failed to setup 3 way call.") 606 return False 607 608 self.log.info("Verify no one dropped call.") 609 time.sleep(WAIT_TIME_IN_CALL) 610 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 611 return False 612 613 self.log.info("End call on PhoneC, and end call on PhoneB.") 614 return self._test_1x_multi_call_drop_from_participant( 615 ads[0], ads[2], ads[1]) 616 617 618 @TelephonyBaseTest.tel_test_wrap 619 @test_tracker_info(uuid="9dc16b45-3470-44c8-abf8-19cd5944a53c") 620 def test_1x_mo_mt_add_swap_twice_drop_active(self): 621 """ Test 1x MO+MT call among three phones. 622 623 Steps: 624 1. DUT in 1x idle, PhoneB and PhoneC idle. 625 2. DUT MO call to PhoneB, answer on PhoneB. 626 3. PhoneC call to DUT, answer on DUT 627 4. Swap active call on DUT. 628 5. Swap active call on DUT. 629 6. Drop on PhoneC. 630 7. Drop on PhoneB. 631 632 Expected Results: 633 4. Swap call succeed. 634 5. Swap call succeed. 635 6. Call between DUT and PhoneB continues. 636 7. All participant call end. 637 638 Returns: 639 True if pass; False if fail. 640 """ 641 ads = self.android_devices 642 643 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( 644 2) 645 if ((call_ab_id is None) or (call_ac_id is None) 646 or (call_conf_id is None)): 647 self.log.error("Failed to setup 3 way call.") 648 return False 649 650 self.log.info("Verify no one dropped call.") 651 time.sleep(WAIT_TIME_IN_CALL) 652 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 653 return False 654 655 self.log.info("End call on PhoneC, and end call on PhoneB.") 656 return self._test_1x_multi_call_drop_from_participant( 657 ads[0], ads[2], ads[1]) 658 659 660 @TelephonyBaseTest.tel_test_wrap 661 @test_tracker_info(uuid="dc7a3187-142e-4754-a914-d0241397a2b3") 662 def test_1x_mo_mt_add_swap_once_drop_active(self): 663 """ Test 1x MO+MT call among three phones. 664 665 Steps: 666 1. DUT in 1x idle, PhoneB and PhoneC idle. 667 2. DUT MO call to PhoneB, answer on PhoneB. 668 3. PhoneC call to DUT, answer on DUT 669 4. Swap active call on DUT. 670 5. Drop on PhoneB. 671 6. Drop on PhoneC. 672 673 Expected Results: 674 4. Swap call succeed. 675 5. Call between DUT and PhoneC continues. 676 6. All participant call end. 677 678 Returns: 679 True if pass; False if fail. 680 """ 681 ads = self.android_devices 682 683 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( 684 1) 685 if ((call_ab_id is None) or (call_ac_id is None) 686 or (call_conf_id is None)): 687 self.log.error("Failed to setup 3 way call.") 688 return False 689 690 self.log.info("Verify no one dropped call.") 691 time.sleep(WAIT_TIME_IN_CALL) 692 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 693 return False 694 695 self.log.info("End call on PhoneB, and end call on PhoneC.") 696 return self._test_1x_multi_call_drop_from_participant( 697 ads[0], ads[1], ads[2]) 698 699 700 @TelephonyBaseTest.tel_test_wrap 701 @test_tracker_info(uuid="24cd0ef0-1a69-4603-89c2-0f2b96715348") 702 def test_1x_mo_mt_add_drop_held(self): 703 """ Test 1x MO+MT call among three phones. 704 705 Steps: 706 1. DUT in 1x idle, PhoneB and PhoneC idle. 707 2. Call from DUT to PhoneB, accept on PhoneB. 708 3. Call from PhoneC to DUT, accept on DUT. 709 4. End call PhoneB, verify call continues on DUT and PhoneC. 710 5. End call on PhoneC, verify call end on PhoneA. 711 712 Expected Results: 713 4. DUT drop call, PhoneC also end. Then DUT receive callback from PhoneB. 714 5. DUT drop call, call also end on PhoneB. 715 716 Returns: 717 True if pass; False if fail. 718 """ 719 ads = self.android_devices 720 721 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( 722 0) 723 if ((call_ab_id is None) or (call_ac_id is None) 724 or (call_conf_id is None)): 725 self.log.error("Failed to setup 3 way call.") 726 return False 727 728 self.log.info("Verify no one dropped call.") 729 time.sleep(WAIT_TIME_IN_CALL) 730 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 731 return False 732 733 self.log.info("End call on PhoneB, and end call on PhoneC.") 734 return self._test_1x_multi_call_drop_from_participant( 735 ads[0], ads[1], ads[2]) 736 737 738 @TelephonyBaseTest.tel_test_wrap 739 @test_tracker_info(uuid="1c5c1780-84c2-4547-9e57-eeadac6569d7") 740 def test_1x_mo_mt_add_swap_twice_drop_held(self): 741 """ Test 1x MO+MT call among three phones. 742 743 Steps: 744 1. DUT in 1x idle, PhoneB and PhoneC idle. 745 2. DUT MO call to PhoneB, answer on PhoneB. 746 3. PhoneC call to DUT, answer on DUT 747 4. Swap active call on DUT. 748 5. Swap active call on DUT. 749 6. Drop on PhoneB. 750 7. Drop on PhoneC. 751 752 Expected Results: 753 4. Swap call succeed. 754 5. Swap call succeed. 755 6. Call between DUT and PhoneC continues. 756 7. All participant call end. 757 758 Returns: 759 True if pass; False if fail. 760 """ 761 ads = self.android_devices 762 763 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( 764 2) 765 if ((call_ab_id is None) or (call_ac_id is None) 766 or (call_conf_id is None)): 767 self.log.error("Failed to setup 3 way call.") 768 return False 769 770 self.log.info("Verify no one dropped call.") 771 time.sleep(WAIT_TIME_IN_CALL) 772 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 773 return False 774 775 self.log.info("End call on PhoneB, and end call on PhoneC.") 776 return self._test_1x_multi_call_drop_from_participant( 777 ads[0], ads[1], ads[2]) 778 779 780 @TelephonyBaseTest.tel_test_wrap 781 @test_tracker_info(uuid="928a2b21-c4ca-4553-9acc-8d3db61ed6eb") 782 def test_1x_mo_mt_add_swap_once_drop_held(self): 783 """ Test 1x MO+MT call among three phones. 784 785 Steps: 786 1. DUT in 1x idle, PhoneB and PhoneC idle. 787 2. DUT MO call to PhoneB, answer on PhoneB. 788 3. PhoneC call to DUT, answer on DUT 789 4. Swap active call on DUT. 790 5. Drop on PhoneC. 791 6. Drop on PhoneB. 792 793 Expected Results: 794 4. Swap call succeed. 795 5. Call between DUT and PhoneB continues. 796 6. All participant call end. 797 798 Returns: 799 True if pass; False if fail. 800 """ 801 ads = self.android_devices 802 803 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( 804 1) 805 if ((call_ab_id is None) or (call_ac_id is None) 806 or (call_conf_id is None)): 807 self.log.error("Failed to setup 3 way call.") 808 return False 809 810 self.log.info("Verify no one dropped call.") 811 time.sleep(WAIT_TIME_IN_CALL) 812 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 813 return False 814 815 self.log.info("End call on PhoneC, and end call on PhoneB.") 816 return self._test_1x_multi_call_drop_from_participant( 817 ads[0], ads[2], ads[1]) 818 819 820 @TelephonyBaseTest.tel_test_wrap 821 @test_tracker_info(uuid="deb57627-a717-41f0-b8f4-f3ccf9ce2e15") 822 def test_1x_mo_mt_add_drop_on_dut(self): 823 """ Test 1x MO+MT call among three phones. 824 825 Steps: 826 1. DUT in 1x idle, PhoneB and PhoneC idle. 827 2. Call from DUT to PhoneB, accept on PhoneB. 828 3. Call from PhoneC to DUT, accept on DUT. 829 4. End call on DUT. 830 5. End call on DUT. 831 832 Expected Results: 833 4. DUT drop call, PhoneC also end. Then DUT receive callback from PhoneB. 834 5. DUT drop call, call also end on PhoneB. 835 836 Returns: 837 True if pass; False if fail. 838 """ 839 ads = self.android_devices 840 841 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( 842 0) 843 if ((call_ab_id is None) or (call_ac_id is None) 844 or (call_conf_id is None)): 845 self.log.error("Failed to setup 3 way call.") 846 return False 847 848 self.log.info("Verify no one dropped call.") 849 time.sleep(WAIT_TIME_IN_CALL) 850 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 851 return False 852 853 self.log.info("End call on DUT, DUT should receive callback.") 854 return self._test_1x_multi_call_drop_from_host(ads[0], ads[2], ads[1]) 855 856 857 @TelephonyBaseTest.tel_test_wrap 858 @test_tracker_info(uuid="9cdee9c2-98cf-40de-9396-516192e493a1") 859 def test_1x_mo_mt_add_swap_twice_drop_on_dut(self): 860 """ Test 1x MO+MT call among three phones. 861 862 Steps: 863 1. DUT in 1x idle, PhoneB and PhoneC idle. 864 2. DUT MO call to PhoneB, answer on PhoneB. 865 3. PhoneC call to DUT, answer on DUT 866 4. Swap active call on DUT. 867 5. Swap active call on DUT. 868 6. Drop current call on DUT. 869 7. Drop current call on DUT. 870 871 Expected Results: 872 4. Swap call succeed. 873 5. Swap call succeed. 874 6. DUT drop call, PhoneC also end. Then DUT receive callback from PhoneB. 875 7. DUT drop call, call also end on PhoneB. 876 877 Returns: 878 True if pass; False if fail. 879 """ 880 ads = self.android_devices 881 882 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( 883 2) 884 if ((call_ab_id is None) or (call_ac_id is None) 885 or (call_conf_id is None)): 886 self.log.error("Failed to setup 3 way call.") 887 return False 888 889 self.log.info("Verify no one dropped call.") 890 time.sleep(WAIT_TIME_IN_CALL) 891 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 892 return False 893 894 self.log.info("End call on DUT, DUT should receive callback.") 895 return self._test_1x_multi_call_drop_from_host(ads[0], ads[2], ads[1]) 896 897 898 @TelephonyBaseTest.tel_test_wrap 899 @test_tracker_info(uuid="26187827-64c0-436e-9792-20c216aeb442") 900 def test_1x_mo_mt_add_swap_once_drop_on_dut(self): 901 """ Test 1x MO+MT call among three phones. 902 903 Steps: 904 1. DUT in 1x idle, PhoneB and PhoneC idle. 905 2. DUT MO call to PhoneB, answer on PhoneB. 906 3. PhoneC call to DUT, answer on DUT 907 4. Swap active call on DUT. 908 5. Drop current call on DUT. 909 6. Drop current call on DUT. 910 911 Expected Results: 912 4. Swap call succeed. 913 5. DUT drop call, PhoneB also end. Then DUT receive callback from PhoneC. 914 6. DUT drop call, call also end on PhoneC. 915 916 Returns: 917 True if pass; False if fail. 918 """ 919 ads = self.android_devices 920 921 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( 922 1) 923 if ((call_ab_id is None) or (call_ac_id is None) 924 or (call_conf_id is None)): 925 self.log.error("Failed to setup 3 way call.") 926 return False 927 928 self.log.info("Verify no one dropped call.") 929 time.sleep(WAIT_TIME_IN_CALL) 930 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 931 return False 932 933 self.log.info("End call on DUT, DUT should receive callback.") 934 return self._test_1x_multi_call_drop_from_host(ads[0], ads[1], ads[2]) 935 936 937 @TelephonyBaseTest.tel_test_wrap 938 @test_tracker_info(uuid="ce590b72-b4ab-4a27-9c01-f8e3b110419f") 939 def test_1x_mt_mt_add_drop_active(self): 940 """ Test 1x MT+MT call among three phones. 941 942 Steps: 943 1. DUT in 1x idle, PhoneB and PhoneC idle. 944 2. Call from PhoneB to DUT, accept on DUT. 945 3. Call from PhoneC to DUT, accept on DUT. 946 4. End call PhoneC, verify call continues on DUT and PhoneB. 947 5. End call on PhoneB, verify call end on PhoneA. 948 949 Expected Results: 950 4. PhoneC drop call, DUT and PhoneB call continues. 951 5. PhoneB drop call, call also end on DUT. 952 953 Returns: 954 True if pass; False if fail. 955 """ 956 ads = self.android_devices 957 958 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( 959 0) 960 if ((call_ab_id is None) or (call_ac_id is None) 961 or (call_conf_id is None)): 962 self.log.error("Failed to setup 3 way call.") 963 return False 964 965 self.log.info("Verify no one dropped call.") 966 time.sleep(WAIT_TIME_IN_CALL) 967 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 968 return False 969 970 self.log.info("End call on PhoneC, and end call on PhoneB.") 971 return self._test_1x_multi_call_drop_from_participant( 972 ads[0], ads[2], ads[1]) 973 974 975 @TelephonyBaseTest.tel_test_wrap 976 @test_tracker_info(uuid="736aa74e-1d0b-4f85-b0f7-11840543cf54") 977 def test_1x_mt_mt_add_swap_twice_drop_active(self): 978 """ Test 1x MT+MT call among three phones. 979 980 Steps: 981 1. DUT in 1x idle, PhoneB and PhoneC idle. 982 2. PhoneB call to DUT, answer on DUT. 983 3. PhoneC call to DUT, answer on DUT 984 4. Swap active call on DUT. 985 5. Swap active call on DUT. 986 6. Drop on PhoneC. 987 7. Drop on PhoneB. 988 989 Expected Results: 990 4. Swap call succeed. 991 5. Swap call succeed. 992 6. Call between DUT and PhoneB continues. 993 7. All participant call end. 994 995 Returns: 996 True if pass; False if fail. 997 """ 998 ads = self.android_devices 999 1000 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( 1001 2) 1002 if ((call_ab_id is None) or (call_ac_id is None) 1003 or (call_conf_id is None)): 1004 self.log.error("Failed to setup 3 way call.") 1005 return False 1006 1007 self.log.info("Verify no one dropped call.") 1008 time.sleep(WAIT_TIME_IN_CALL) 1009 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 1010 return False 1011 1012 self.log.info("End call on PhoneC, and end call on PhoneB.") 1013 return self._test_1x_multi_call_drop_from_participant( 1014 ads[0], ads[2], ads[1]) 1015 1016 1017 @TelephonyBaseTest.tel_test_wrap 1018 @test_tracker_info(uuid="3eee6b6e-e1b1-43ec-82d5-d298b514fc07") 1019 def test_1x_mt_mt_add_swap_once_drop_active(self): 1020 """ Test 1x MT+MT call among three phones. 1021 1022 Steps: 1023 1. DUT in 1x idle, PhoneB and PhoneC idle. 1024 2. PhoneB call to DUT, answer on DUT. 1025 3. PhoneC call to DUT, answer on DUT 1026 4. Swap active call on DUT. 1027 5. Drop on PhoneB. 1028 6. Drop on PhoneC. 1029 1030 Expected Results: 1031 4. Swap call succeed. 1032 5. Call between DUT and PhoneC continues. 1033 6. All participant call end. 1034 1035 Returns: 1036 True if pass; False if fail. 1037 """ 1038 ads = self.android_devices 1039 1040 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( 1041 1) 1042 if ((call_ab_id is None) or (call_ac_id is None) 1043 or (call_conf_id is None)): 1044 self.log.error("Failed to setup 3 way call.") 1045 return False 1046 1047 self.log.info("Verify no one dropped call.") 1048 time.sleep(WAIT_TIME_IN_CALL) 1049 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 1050 return False 1051 1052 self.log.info("End call on PhoneB, and end call on PhoneC.") 1053 return self._test_1x_multi_call_drop_from_participant( 1054 ads[0], ads[1], ads[2]) 1055 1056 1057 @TelephonyBaseTest.tel_test_wrap 1058 @test_tracker_info(uuid="432549a9-e4bb-44d3-bd44-befffc1af02d") 1059 def test_1x_mt_mt_add_drop_held(self): 1060 """ Test 1x MT+MT call among three phones. 1061 1062 Steps: 1063 1. DUT in 1x idle, PhoneB and PhoneC idle. 1064 2. Call from PhoneB to DUT, accept on DUT. 1065 3. Call from PhoneC to DUT, accept on DUT. 1066 4. End call PhoneB, verify call continues on DUT and PhoneC. 1067 5. End call on PhoneC, verify call end on PhoneA. 1068 1069 Expected Results: 1070 4. PhoneB drop call, DUT and PhoneC call continues. 1071 5. PhoneC drop call, call also end on DUT. 1072 1073 Returns: 1074 True if pass; False if fail. 1075 """ 1076 ads = self.android_devices 1077 1078 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( 1079 0) 1080 if ((call_ab_id is None) or (call_ac_id is None) 1081 or (call_conf_id is None)): 1082 self.log.error("Failed to setup 3 way call.") 1083 return False 1084 1085 self.log.info("Verify no one dropped call.") 1086 time.sleep(WAIT_TIME_IN_CALL) 1087 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 1088 return False 1089 1090 self.log.info("End call on PhoneB, and end call on PhoneC.") 1091 return self._test_1x_multi_call_drop_from_participant( 1092 ads[0], ads[1], ads[2]) 1093 1094 1095 @TelephonyBaseTest.tel_test_wrap 1096 @test_tracker_info(uuid="c8f30fc1-8586-4eb0-854e-264989fd69b8") 1097 def test_1x_mt_mt_add_swap_twice_drop_held(self): 1098 """ Test 1x MT+MT call among three phones. 1099 1100 Steps: 1101 1. DUT in 1x idle, PhoneB and PhoneC idle. 1102 2. PhoneB call to DUT, answer on DUT. 1103 3. PhoneC call to DUT, answer on DUT 1104 4. Swap active call on DUT. 1105 5. Swap active call on DUT. 1106 6. Drop on PhoneB. 1107 7. Drop on PhoneC. 1108 1109 Expected Results: 1110 4. Swap call succeed. 1111 5. Swap call succeed. 1112 6. Call between DUT and PhoneC continues. 1113 7. All participant call end. 1114 1115 Returns: 1116 True if pass; False if fail. 1117 """ 1118 ads = self.android_devices 1119 1120 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( 1121 2) 1122 if ((call_ab_id is None) or (call_ac_id is None) 1123 or (call_conf_id is None)): 1124 self.log.error("Failed to setup 3 way call.") 1125 return False 1126 1127 self.log.info("Verify no one dropped call.") 1128 time.sleep(WAIT_TIME_IN_CALL) 1129 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 1130 return False 1131 1132 self.log.info("End call on PhoneB, and end call on PhoneC.") 1133 return self._test_1x_multi_call_drop_from_participant( 1134 ads[0], ads[1], ads[2]) 1135 1136 1137 @TelephonyBaseTest.tel_test_wrap 1138 @test_tracker_info(uuid="065ba51e-9843-4018-8009-7fdc6590011d") 1139 def test_1x_mt_mt_add_swap_once_drop_held(self): 1140 """ Test 1x MT+MT call among three phones. 1141 1142 Steps: 1143 1. DUT in 1x idle, PhoneB and PhoneC idle. 1144 2. PhoneB call to DUT, answer on DUT. 1145 3. PhoneC call to DUT, answer on DUT 1146 4. Swap active call on DUT. 1147 5. Drop on PhoneC. 1148 6. Drop on PhoneB. 1149 1150 Expected Results: 1151 4. Swap call succeed. 1152 5. Call between DUT and PhoneB continues. 1153 6. All participant call end. 1154 1155 Returns: 1156 True if pass; False if fail. 1157 """ 1158 ads = self.android_devices 1159 1160 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( 1161 1) 1162 if ((call_ab_id is None) or (call_ac_id is None) 1163 or (call_conf_id is None)): 1164 self.log.error("Failed to setup 3 way call.") 1165 return False 1166 1167 self.log.info("Verify no one dropped call.") 1168 time.sleep(WAIT_TIME_IN_CALL) 1169 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 1170 return False 1171 1172 self.log.info("End call on PhoneC, and end call on PhoneB.") 1173 return self._test_1x_multi_call_drop_from_participant( 1174 ads[0], ads[2], ads[1]) 1175 1176 1177 @TelephonyBaseTest.tel_test_wrap 1178 @test_tracker_info(uuid="69c69449-d430-4f00-ae19-c51242561ac9") 1179 def test_1x_mt_mt_add_drop_on_dut(self): 1180 """ Test 1x MT+MT call among three phones. 1181 1182 Steps: 1183 1. DUT in 1x idle, PhoneB and PhoneC idle. 1184 2. Call from PhoneB to DUT, accept on DUT. 1185 3. Call from PhoneC to DUT, accept on DUT. 1186 4. End call on DUT. 1187 5. End call on DUT. 1188 1189 Expected Results: 1190 4. DUT drop call, PhoneC also end. Then DUT receive callback from PhoneB. 1191 5. DUT drop call, call also end on PhoneB. 1192 1193 Returns: 1194 True if pass; False if fail. 1195 """ 1196 ads = self.android_devices 1197 1198 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( 1199 0) 1200 if ((call_ab_id is None) or (call_ac_id is None) 1201 or (call_conf_id is None)): 1202 self.log.error("Failed to setup 3 way call.") 1203 return False 1204 1205 self.log.info("Verify no one dropped call.") 1206 time.sleep(WAIT_TIME_IN_CALL) 1207 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 1208 return False 1209 1210 self.log.info("End call on DUT, DUT should receive callback.") 1211 return self._test_1x_multi_call_drop_from_host(ads[0], ads[2], ads[1]) 1212 1213 1214 @TelephonyBaseTest.tel_test_wrap 1215 @test_tracker_info(uuid="282583a3-d455-4caf-a184-718f8bbccb91") 1216 def test_1x_mt_mt_add_swap_twice_drop_on_dut(self): 1217 """ Test 1x MT+MT call among three phones. 1218 1219 Steps: 1220 1. DUT in 1x idle, PhoneB and PhoneC idle. 1221 2. PhoneB call to DUT, answer on DUT. 1222 3. PhoneC call to DUT, answer on DUT 1223 4. Swap active call on DUT. 1224 5. Swap active call on DUT. 1225 6. Drop current call on DUT. 1226 7. Drop current call on DUT. 1227 1228 Expected Results: 1229 4. Swap call succeed. 1230 5. Swap call succeed. 1231 6. DUT drop call, PhoneC also end. Then DUT receive callback from PhoneB. 1232 7. DUT drop call, call also end on PhoneB. 1233 1234 Returns: 1235 True if pass; False if fail. 1236 """ 1237 ads = self.android_devices 1238 1239 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( 1240 2) 1241 if ((call_ab_id is None) or (call_ac_id is None) 1242 or (call_conf_id is None)): 1243 self.log.error("Failed to setup 3 way call.") 1244 return False 1245 1246 self.log.info("Verify no one dropped call.") 1247 time.sleep(WAIT_TIME_IN_CALL) 1248 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 1249 return False 1250 1251 self.log.info("End call on DUT, DUT should receive callback.") 1252 return self._test_1x_multi_call_drop_from_host(ads[0], ads[2], ads[1]) 1253 1254 1255 @TelephonyBaseTest.tel_test_wrap 1256 @test_tracker_info(uuid="1cf83159-d230-41a4-842c-064be5ef11e6") 1257 def test_1x_mt_mt_add_swap_once_drop_on_dut(self): 1258 """ Test 1x MT+MT call among three phones. 1259 1260 Steps: 1261 1. DUT in 1x idle, PhoneB and PhoneC idle. 1262 2. PhoneB call to DUT, answer on DUT. 1263 3. PhoneC call to DUT, answer on DUT 1264 4. Swap active call on DUT. 1265 5. Drop current call on DUT. 1266 6. Drop current call on DUT. 1267 1268 Expected Results: 1269 4. Swap call succeed. 1270 5. DUT drop call, PhoneB also end. Then DUT receive callback from PhoneC. 1271 6. DUT drop call, call also end on PhoneC. 1272 1273 Returns: 1274 True if pass; False if fail. 1275 """ 1276 ads = self.android_devices 1277 1278 call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( 1279 1) 1280 if ((call_ab_id is None) or (call_ac_id is None) 1281 or (call_conf_id is None)): 1282 self.log.error("Failed to setup 3 way call.") 1283 return False 1284 1285 self.log.info("Verify no one dropped call.") 1286 time.sleep(WAIT_TIME_IN_CALL) 1287 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 1288 return False 1289 1290 self.log.info("End call on DUT, DUT should receive callback.") 1291 return self._test_1x_multi_call_drop_from_host(ads[0], ads[1], ads[2]) 1292 1293 1294 @TelephonyBaseTest.tel_test_wrap 1295 @test_tracker_info(uuid="602db3cb-e02b-4e4c-9043-338e1231f51b") 1296 def test_volte_mo_mo_add_volte_merge_drop_second_call_from_participant_no_cep( 1297 self): 1298 """ Test VoLTE Conference Call among three phones. No CEP. 1299 1300 Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. 1301 Call from PhoneA (VoLTE) to PhoneC (VoLTE), accept on PhoneC. 1302 On PhoneA, merge to conference call (No CEP). 1303 End call on PhoneC, verify call continues. 1304 End call on PhoneB, verify call end on PhoneA. 1305 1306 Returns: 1307 True if pass; False if fail. 1308 """ 1309 ads = self.android_devices 1310 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 1311 ads=ads, 1312 num_swaps=0, 1313 phone_setup_a=phone_setup_volte, 1314 phone_setup_b=phone_setup_volte, 1315 phone_setup_c=phone_setup_volte, 1316 verify_phone_a_network_subscription=is_phone_in_call_volte, 1317 verify_phone_b_network_subscription=is_phone_in_call_volte, 1318 verify_phone_c_network_subscription=is_phone_in_call_volte) 1319 if call_ab_id is None or call_ac_id is None: 1320 return False 1321 1322 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 1323 call_ab_id, call_ac_id) 1324 1325 1326 @TelephonyBaseTest.tel_test_wrap 1327 @test_tracker_info(uuid="7c9ae738-9031-4a77-9ff7-356a186820a5") 1328 def test_volte_mo_mo_add_volte_merge_drop_second_call_from_participant_cep( 1329 self): 1330 """ Test VoLTE Conference Call among three phones. CEP enabled. 1331 1332 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. 1333 2. Call from PhoneA (VoLTE) to PhoneC (VoLTE), accept on PhoneC. 1334 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1335 4. End call on PhoneC, verify call continues. 1336 5. End call on PhoneB, verify call end on PhoneA. 1337 1338 Returns: 1339 True if pass; False if fail. 1340 """ 1341 ads = self.android_devices 1342 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 1343 ads=ads, 1344 num_swaps=0, 1345 phone_setup_a=phone_setup_volte, 1346 phone_setup_b=phone_setup_volte, 1347 phone_setup_c=phone_setup_volte, 1348 verify_phone_a_network_subscription=is_phone_in_call_volte, 1349 verify_phone_b_network_subscription=is_phone_in_call_volte, 1350 verify_phone_c_network_subscription=is_phone_in_call_volte) 1351 if call_ab_id is None or call_ac_id is None: 1352 return False 1353 1354 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 1355 call_ab_id, call_ac_id) 1356 1357 1358 @TelephonyBaseTest.tel_test_wrap 1359 @test_tracker_info(uuid="f50e7e94-0956-41c4-b02b-384a12668f10") 1360 def test_volte_mo_mo_add_volte_merge_drop_second_call_from_host_cep(self): 1361 """ Test VoLTE Conference Call among three phones. CEP enabled. 1362 1363 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. 1364 2. Call from PhoneA (VoLTE) to PhoneC (VoLTE), accept on PhoneC. 1365 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1366 4. On PhoneA disconnect call between A-C, verify call continues. 1367 5. On PhoneA disconnect call between A-B, verify call continues. 1368 1369 Returns: 1370 True if pass; False if fail. 1371 """ 1372 ads = self.android_devices 1373 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 1374 ads=ads, 1375 num_swaps=0, 1376 phone_setup_a=phone_setup_volte, 1377 phone_setup_b=phone_setup_volte, 1378 phone_setup_c=phone_setup_volte, 1379 verify_phone_a_network_subscription=is_phone_in_call_volte, 1380 verify_phone_b_network_subscription=is_phone_in_call_volte, 1381 verify_phone_c_network_subscription=is_phone_in_call_volte) 1382 if call_ab_id is None or call_ac_id is None: 1383 return False 1384 1385 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 1386 call_ab_id, call_ac_id) 1387 1388 1389 @TelephonyBaseTest.tel_test_wrap 1390 @test_tracker_info(uuid="a6c22e39-fd7e-4bed-982a-145065572281") 1391 def test_volte_mo_mo_add_volte_merge_drop_first_call_from_participant_cep( 1392 self): 1393 """ Test VoLTE Conference Call among three phones. CEP enabled. 1394 1395 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. 1396 2. Call from PhoneA (VoLTE) to PhoneC (VoLTE), accept on PhoneC. 1397 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1398 4. End call on PhoneB, verify call continues. 1399 5. End call on PhoneC, verify call end on PhoneA. 1400 1401 Returns: 1402 True if pass; False if fail. 1403 """ 1404 ads = self.android_devices 1405 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 1406 ads=ads, 1407 num_swaps=0, 1408 phone_setup_a=phone_setup_volte, 1409 phone_setup_b=phone_setup_volte, 1410 phone_setup_c=phone_setup_volte, 1411 verify_phone_a_network_subscription=is_phone_in_call_volte, 1412 verify_phone_b_network_subscription=is_phone_in_call_volte, 1413 verify_phone_c_network_subscription=is_phone_in_call_volte) 1414 if call_ab_id is None or call_ac_id is None: 1415 return False 1416 1417 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 1418 call_ab_id, call_ac_id) 1419 1420 1421 @TelephonyBaseTest.tel_test_wrap 1422 @test_tracker_info(uuid="2188722a-31e3-4e46-8f74-6ea4cbc08476") 1423 def test_volte_mo_mo_add_volte_merge_drop_first_call_from_host_cep(self): 1424 """ Test VoLTE Conference Call among three phones. CEP enabled. 1425 1426 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. 1427 2. Call from PhoneA (VoLTE) to PhoneC (VoLTE), accept on PhoneC. 1428 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1429 4. On PhoneA disconnect call between A-B, verify call continues. 1430 5. On PhoneA disconnect call between A-C, verify call continues. 1431 1432 Returns: 1433 True if pass; False if fail. 1434 """ 1435 ads = self.android_devices 1436 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 1437 ads=ads, 1438 num_swaps=0, 1439 phone_setup_a=phone_setup_volte, 1440 phone_setup_b=phone_setup_volte, 1441 phone_setup_c=phone_setup_volte, 1442 verify_phone_a_network_subscription=is_phone_in_call_volte, 1443 verify_phone_b_network_subscription=is_phone_in_call_volte, 1444 verify_phone_c_network_subscription=is_phone_in_call_volte) 1445 if call_ab_id is None or call_ac_id is None: 1446 return False 1447 1448 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 1449 call_ab_id, call_ac_id) 1450 1451 1452 @TelephonyBaseTest.tel_test_wrap 1453 @test_tracker_info(uuid="ef5ec1c9-7771-4289-ad94-08a80145d680") 1454 def test_volte_mo_mt_add_volte_merge_drop_second_call_from_participant_no_cep( 1455 self): 1456 """ Test VoLTE Conference Call among three phones. No CEP. 1457 1458 Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. 1459 Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1460 On PhoneA, merge to conference call (No CEP). 1461 End call on PhoneC, verify call continues. 1462 End call on PhoneB, verify call end on PhoneA. 1463 1464 Returns: 1465 True if pass; False if fail. 1466 """ 1467 ads = self.android_devices 1468 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 1469 ads=ads, 1470 num_swaps=0, 1471 phone_setup_a=phone_setup_volte, 1472 phone_setup_b=phone_setup_volte, 1473 phone_setup_c=phone_setup_volte, 1474 verify_phone_a_network_subscription=is_phone_in_call_volte, 1475 verify_phone_b_network_subscription=is_phone_in_call_volte, 1476 verify_phone_c_network_subscription=is_phone_in_call_volte) 1477 if call_ab_id is None or call_ac_id is None: 1478 return False 1479 1480 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 1481 call_ab_id, call_ac_id) 1482 1483 1484 @TelephonyBaseTest.tel_test_wrap 1485 @test_tracker_info(uuid="2111001d-c310-4eff-a6ef-201d199796ea") 1486 def test_volte_mo_mt_add_volte_merge_drop_second_call_from_participant_cep( 1487 self): 1488 """ Test VoLTE Conference Call among three phones. CEP enabled. 1489 1490 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. 1491 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1492 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1493 4. End call on PhoneC, verify call continues. 1494 5. End call on PhoneB, verify call end on PhoneA. 1495 1496 Returns: 1497 True if pass; False if fail. 1498 """ 1499 ads = self.android_devices 1500 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 1501 ads=ads, 1502 num_swaps=0, 1503 phone_setup_a=phone_setup_volte, 1504 phone_setup_b=phone_setup_volte, 1505 phone_setup_c=phone_setup_volte, 1506 verify_phone_a_network_subscription=is_phone_in_call_volte, 1507 verify_phone_b_network_subscription=is_phone_in_call_volte, 1508 verify_phone_c_network_subscription=is_phone_in_call_volte) 1509 if call_ab_id is None or call_ac_id is None: 1510 return False 1511 1512 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 1513 call_ab_id, call_ac_id) 1514 1515 1516 @TelephonyBaseTest.tel_test_wrap 1517 @test_tracker_info(uuid="eee3577b-5427-43ee-aff0-ed7f7846b41c") 1518 def test_volte_mo_mt_add_volte_merge_drop_second_call_from_host_cep(self): 1519 """ Test VoLTE Conference Call among three phones. CEP enabled. 1520 1521 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. 1522 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1523 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1524 4. On PhoneA disconnect call between A-C, verify call continues. 1525 5. On PhoneA disconnect call between A-B, verify call continues. 1526 1527 Returns: 1528 True if pass; False if fail. 1529 """ 1530 ads = self.android_devices 1531 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 1532 ads=ads, 1533 num_swaps=0, 1534 phone_setup_a=phone_setup_volte, 1535 phone_setup_b=phone_setup_volte, 1536 phone_setup_c=phone_setup_volte, 1537 verify_phone_a_network_subscription=is_phone_in_call_volte, 1538 verify_phone_b_network_subscription=is_phone_in_call_volte, 1539 verify_phone_c_network_subscription=is_phone_in_call_volte) 1540 if call_ab_id is None or call_ac_id is None: 1541 return False 1542 1543 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 1544 call_ab_id, call_ac_id) 1545 1546 1547 @TelephonyBaseTest.tel_test_wrap 1548 @test_tracker_info(uuid="86faf200-be78-452d-8662-85e7f42a2d3b") 1549 def test_volte_mo_mt_add_volte_merge_drop_first_call_from_participant_cep( 1550 self): 1551 """ Test VoLTE Conference Call among three phones. CEP enabled. 1552 1553 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. 1554 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1555 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1556 4. End call on PhoneB, verify call continues. 1557 5. End call on PhoneC, verify call end on PhoneA. 1558 1559 Returns: 1560 True if pass; False if fail. 1561 """ 1562 ads = self.android_devices 1563 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 1564 ads=ads, 1565 num_swaps=0, 1566 phone_setup_a=phone_setup_volte, 1567 phone_setup_b=phone_setup_volte, 1568 phone_setup_c=phone_setup_volte, 1569 verify_phone_a_network_subscription=is_phone_in_call_volte, 1570 verify_phone_b_network_subscription=is_phone_in_call_volte, 1571 verify_phone_c_network_subscription=is_phone_in_call_volte) 1572 if call_ab_id is None or call_ac_id is None: 1573 return False 1574 1575 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 1576 call_ab_id, call_ac_id) 1577 1578 1579 @TelephonyBaseTest.tel_test_wrap 1580 @test_tracker_info(uuid="d0e18f3c-71a1-49c9-b3ad-b8c24f8a43ec") 1581 def test_volte_mo_mt_add_volte_merge_drop_first_call_from_host_cep(self): 1582 """ Test VoLTE Conference Call among three phones. CEP enabled. 1583 1584 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. 1585 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1586 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1587 4. On PhoneA disconnect call between A-B, verify call continues. 1588 5. On PhoneA disconnect call between A-C, verify call continues. 1589 1590 Returns: 1591 True if pass; False if fail. 1592 """ 1593 ads = self.android_devices 1594 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 1595 ads=ads, 1596 num_swaps=0, 1597 phone_setup_a=phone_setup_volte, 1598 phone_setup_b=phone_setup_volte, 1599 phone_setup_c=phone_setup_volte, 1600 verify_phone_a_network_subscription=is_phone_in_call_volte, 1601 verify_phone_b_network_subscription=is_phone_in_call_volte, 1602 verify_phone_c_network_subscription=is_phone_in_call_volte) 1603 if call_ab_id is None or call_ac_id is None: 1604 return False 1605 1606 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 1607 call_ab_id, call_ac_id) 1608 1609 1610 @TelephonyBaseTest.tel_test_wrap 1611 @test_tracker_info(uuid="b27d6b3d-b73b-4a20-a5ae-2990d73a07fe") 1612 def test_volte_mt_mt_add_volte_merge_drop_second_call_from_participant_no_cep( 1613 self): 1614 """ Test VoLTE Conference Call among three phones. No CEP. 1615 1616 Call from PhoneB (VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1617 Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1618 On PhoneA, merge to conference call (No CEP). 1619 End call on PhoneC, verify call continues. 1620 End call on PhoneB, verify call end on PhoneA. 1621 1622 Returns: 1623 True if pass; False if fail. 1624 """ 1625 ads = self.android_devices 1626 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 1627 ads=ads, 1628 num_swaps=0, 1629 phone_setup_a=phone_setup_volte, 1630 phone_setup_b=phone_setup_volte, 1631 phone_setup_c=phone_setup_volte, 1632 verify_phone_a_network_subscription=is_phone_in_call_volte, 1633 verify_phone_b_network_subscription=is_phone_in_call_volte, 1634 verify_phone_c_network_subscription=is_phone_in_call_volte) 1635 if call_ab_id is None or call_ac_id is None: 1636 return False 1637 1638 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 1639 call_ab_id, call_ac_id) 1640 1641 1642 @TelephonyBaseTest.tel_test_wrap 1643 @test_tracker_info(uuid="f66e940c-30bd-48c7-b5e2-91147fa04ba2") 1644 def test_volte_mt_mt_add_volte_merge_drop_second_call_from_participant_cep( 1645 self): 1646 """ Test VoLTE Conference Call among three phones. CEP enabled. 1647 1648 1. Call from PhoneB (VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1649 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1650 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1651 4. End call on PhoneC, verify call continues. 1652 5. End call on PhoneB, verify call end on PhoneA. 1653 1654 Returns: 1655 True if pass; False if fail. 1656 """ 1657 ads = self.android_devices 1658 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 1659 ads=ads, 1660 num_swaps=0, 1661 phone_setup_a=phone_setup_volte, 1662 phone_setup_b=phone_setup_volte, 1663 phone_setup_c=phone_setup_volte, 1664 verify_phone_a_network_subscription=is_phone_in_call_volte, 1665 verify_phone_b_network_subscription=is_phone_in_call_volte, 1666 verify_phone_c_network_subscription=is_phone_in_call_volte) 1667 if call_ab_id is None or call_ac_id is None: 1668 return False 1669 1670 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 1671 call_ab_id, call_ac_id) 1672 1673 1674 @TelephonyBaseTest.tel_test_wrap 1675 @test_tracker_info(uuid="ad313a8b-8bb0-43eb-a10e-e2c17f530ee4") 1676 def test_volte_mt_mt_add_volte_merge_drop_second_call_from_host_cep(self): 1677 """ Test VoLTE Conference Call among three phones. CEP enabled. 1678 1679 1. Call from PhoneB (VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1680 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1681 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1682 4. On PhoneA disconnect call between A-C, verify call continues. 1683 5. On PhoneA disconnect call between A-B, verify call continues. 1684 1685 Returns: 1686 True if pass; False if fail. 1687 """ 1688 ads = self.android_devices 1689 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 1690 ads=ads, 1691 num_swaps=0, 1692 phone_setup_a=phone_setup_volte, 1693 phone_setup_b=phone_setup_volte, 1694 phone_setup_c=phone_setup_volte, 1695 verify_phone_a_network_subscription=is_phone_in_call_volte, 1696 verify_phone_b_network_subscription=is_phone_in_call_volte, 1697 verify_phone_c_network_subscription=is_phone_in_call_volte) 1698 if call_ab_id is None or call_ac_id is None: 1699 return False 1700 1701 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 1702 call_ab_id, call_ac_id) 1703 1704 1705 @TelephonyBaseTest.tel_test_wrap 1706 @test_tracker_info(uuid="18b30c14-fef1-4055-8987-ee6137609b81") 1707 def test_volte_mt_mt_add_volte_merge_drop_first_call_from_participant_cep( 1708 self): 1709 """ Test VoLTE Conference Call among three phones. CEP enabled. 1710 1711 1. Call from PhoneB (VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1712 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1713 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1714 4. End call on PhoneB, verify call continues. 1715 5. End call on PhoneC, verify call end on PhoneA. 1716 1717 Returns: 1718 True if pass; False if fail. 1719 """ 1720 ads = self.android_devices 1721 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 1722 ads=ads, 1723 num_swaps=0, 1724 phone_setup_a=phone_setup_volte, 1725 phone_setup_b=phone_setup_volte, 1726 phone_setup_c=phone_setup_volte, 1727 verify_phone_a_network_subscription=is_phone_in_call_volte, 1728 verify_phone_b_network_subscription=is_phone_in_call_volte, 1729 verify_phone_c_network_subscription=is_phone_in_call_volte) 1730 if call_ab_id is None or call_ac_id is None: 1731 return False 1732 1733 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 1734 call_ab_id, call_ac_id) 1735 1736 1737 @TelephonyBaseTest.tel_test_wrap 1738 @test_tracker_info(uuid="7dc24162-f06e-453b-93e6-926d31e6d387") 1739 def test_volte_mt_mt_add_volte_merge_drop_first_call_from_host_cep(self): 1740 """ Test VoLTE Conference Call among three phones. CEP enabled. 1741 1742 1. Call from PhoneB (VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1743 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1744 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1745 4. On PhoneA disconnect call between A-B, verify call continues. 1746 5. On PhoneA disconnect call between A-C, verify call continues. 1747 1748 Returns: 1749 True if pass; False if fail. 1750 """ 1751 ads = self.android_devices 1752 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 1753 ads=ads, 1754 num_swaps=0, 1755 phone_setup_a=phone_setup_volte, 1756 phone_setup_b=phone_setup_volte, 1757 phone_setup_c=phone_setup_volte, 1758 verify_phone_a_network_subscription=is_phone_in_call_volte, 1759 verify_phone_b_network_subscription=is_phone_in_call_volte, 1760 verify_phone_c_network_subscription=is_phone_in_call_volte) 1761 if call_ab_id is None or call_ac_id is None: 1762 return False 1763 1764 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 1765 call_ab_id, call_ac_id) 1766 1767 1768 @TelephonyBaseTest.tel_test_wrap 1769 @test_tracker_info(uuid="eb90a56b-2085-4fde-a156-ada3620200df") 1770 def test_volte_mo_mo_add_wcdma_merge_drop_second_call_from_participant_no_cep( 1771 self): 1772 """ Test VoLTE Conference Call among three phones. No CEP. 1773 1774 Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1775 Call from PhoneA (VOLTE) to PhoneC (WCDMA), accept on PhoneC. 1776 On PhoneA, merge to conference call (No CEP). 1777 End call on PhoneC, verify call continues. 1778 End call on PhoneB, verify call end on PhoneA. 1779 1780 Returns: 1781 True if pass; False if fail. 1782 """ 1783 ads = self.android_devices 1784 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 1785 ads=ads, 1786 num_swaps=0, 1787 phone_setup_a=phone_setup_volte, 1788 phone_setup_b=phone_setup_voice_3g, 1789 phone_setup_c=phone_setup_voice_3g, 1790 verify_phone_a_network_subscription=is_phone_in_call_volte, 1791 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1792 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1793 if call_ab_id is None or call_ac_id is None: 1794 return False 1795 1796 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 1797 call_ab_id, call_ac_id) 1798 1799 1800 @TelephonyBaseTest.tel_test_wrap 1801 @test_tracker_info(uuid="ae999260-7856-41cc-bf4c-67b26e18c9a3") 1802 def test_volte_mo_mo_add_wcdma_merge_drop_second_call_from_participant_cep( 1803 self): 1804 """ Test VoLTE Conference Call among three phones. CEP enabled. 1805 1806 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1807 2. Call from PhoneA (VoLTE) to PhoneC (WCDMA), accept on PhoneC. 1808 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1809 4. End call on PhoneC, verify call continues. 1810 5. End call on PhoneB, verify call end on PhoneA. 1811 1812 Returns: 1813 True if pass; False if fail. 1814 """ 1815 ads = self.android_devices 1816 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 1817 ads=ads, 1818 num_swaps=0, 1819 phone_setup_a=phone_setup_volte, 1820 phone_setup_b=phone_setup_voice_3g, 1821 phone_setup_c=phone_setup_voice_3g, 1822 verify_phone_a_network_subscription=is_phone_in_call_volte, 1823 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1824 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1825 if call_ab_id is None or call_ac_id is None: 1826 return False 1827 1828 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 1829 call_ab_id, call_ac_id) 1830 1831 1832 @TelephonyBaseTest.tel_test_wrap 1833 @test_tracker_info(uuid="cd48de00-c1e5-4716-b232-3f1f98e89510") 1834 def test_volte_mo_mo_add_wcdma_merge_drop_second_call_from_host_cep(self): 1835 """ Test VoLTE Conference Call among three phones. CEP enabled. 1836 1837 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1838 2. Call from PhoneA (VoLTE) to PhoneC (WCDMA), accept on PhoneC. 1839 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1840 4. On PhoneA disconnect call between A-C, verify call continues. 1841 5. On PhoneA disconnect call between A-B, verify call continues. 1842 1843 Returns: 1844 True if pass; False if fail. 1845 """ 1846 ads = self.android_devices 1847 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 1848 ads=ads, 1849 num_swaps=0, 1850 phone_setup_a=phone_setup_volte, 1851 phone_setup_b=phone_setup_voice_3g, 1852 phone_setup_c=phone_setup_voice_3g, 1853 verify_phone_a_network_subscription=is_phone_in_call_volte, 1854 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1855 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1856 if call_ab_id is None or call_ac_id is None: 1857 return False 1858 1859 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 1860 call_ab_id, call_ac_id) 1861 1862 1863 @TelephonyBaseTest.tel_test_wrap 1864 @test_tracker_info(uuid="a84ea6e8-dabc-4bab-b6d1-700b0a0fb9e9") 1865 def test_volte_mo_mo_add_wcdma_merge_drop_first_call_from_participant_cep( 1866 self): 1867 """ Test VoLTE Conference Call among three phones. CEP enabled. 1868 1869 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1870 2. Call from PhoneA (VoLTE) to PhoneC (WCDMA), accept on PhoneC. 1871 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1872 4. End call on PhoneB, verify call continues. 1873 5. End call on PhoneC, verify call end on PhoneA. 1874 1875 Returns: 1876 True if pass; False if fail. 1877 """ 1878 ads = self.android_devices 1879 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 1880 ads=ads, 1881 num_swaps=0, 1882 phone_setup_a=phone_setup_volte, 1883 phone_setup_b=phone_setup_voice_3g, 1884 phone_setup_c=phone_setup_voice_3g, 1885 verify_phone_a_network_subscription=is_phone_in_call_volte, 1886 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1887 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1888 if call_ab_id is None or call_ac_id is None: 1889 return False 1890 1891 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 1892 call_ab_id, call_ac_id) 1893 1894 1895 @TelephonyBaseTest.tel_test_wrap 1896 @test_tracker_info(uuid="7ac9a806-c608-42dd-a4fd-66b0ba535434") 1897 def test_volte_mo_mo_add_wcdma_merge_drop_first_call_from_host_cep(self): 1898 """ Test VoLTE Conference Call among three phones. CEP enabled. 1899 1900 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1901 2. Call from PhoneA (VoLTE) to PhoneC (WCDMA), accept on PhoneC. 1902 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1903 4. On PhoneA disconnect call between A-B, verify call continues. 1904 5. On PhoneA disconnect call between A-C, verify call continues. 1905 1906 Returns: 1907 True if pass; False if fail. 1908 """ 1909 ads = self.android_devices 1910 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 1911 ads=ads, 1912 num_swaps=0, 1913 phone_setup_a=phone_setup_volte, 1914 phone_setup_b=phone_setup_voice_3g, 1915 phone_setup_c=phone_setup_voice_3g, 1916 verify_phone_a_network_subscription=is_phone_in_call_volte, 1917 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1918 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1919 if call_ab_id is None or call_ac_id is None: 1920 return False 1921 1922 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 1923 call_ab_id, call_ac_id) 1924 1925 1926 @TelephonyBaseTest.tel_test_wrap 1927 @test_tracker_info(uuid="35f9eb31-3a77-457c-aeb0-55a73c60dda1") 1928 def test_volte_mo_mt_add_wcdma_merge_drop_second_call_from_participant_no_cep( 1929 self): 1930 """ Test VoLTE Conference Call among three phones. No CEP. 1931 1932 Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1933 Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. 1934 On PhoneA, merge to conference call (No CEP). 1935 End call on PhoneC, verify call continues. 1936 End call on PhoneB, verify call end on PhoneA. 1937 1938 Returns: 1939 True if pass; False if fail. 1940 """ 1941 ads = self.android_devices 1942 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 1943 ads=ads, 1944 num_swaps=0, 1945 phone_setup_a=phone_setup_volte, 1946 phone_setup_b=phone_setup_voice_3g, 1947 phone_setup_c=phone_setup_voice_3g, 1948 verify_phone_a_network_subscription=is_phone_in_call_volte, 1949 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1950 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1951 if call_ab_id is None or call_ac_id is None: 1952 return False 1953 1954 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 1955 call_ab_id, call_ac_id) 1956 1957 1958 @TelephonyBaseTest.tel_test_wrap 1959 @test_tracker_info(uuid="f3314f74-e929-45ed-91cb-27c1c26e240f") 1960 def test_volte_mo_mt_add_wcdma_merge_drop_second_call_from_participant_cep( 1961 self): 1962 """ Test VoLTE Conference Call among three phones. CEP enabled. 1963 1964 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1965 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. 1966 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1967 4. End call on PhoneC, verify call continues. 1968 5. End call on PhoneB, verify call end on PhoneA. 1969 1970 Returns: 1971 True if pass; False if fail. 1972 """ 1973 ads = self.android_devices 1974 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 1975 ads=ads, 1976 num_swaps=0, 1977 phone_setup_a=phone_setup_volte, 1978 phone_setup_b=phone_setup_voice_3g, 1979 phone_setup_c=phone_setup_voice_3g, 1980 verify_phone_a_network_subscription=is_phone_in_call_volte, 1981 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1982 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1983 if call_ab_id is None or call_ac_id is None: 1984 return False 1985 1986 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 1987 call_ab_id, call_ac_id) 1988 1989 1990 @TelephonyBaseTest.tel_test_wrap 1991 @test_tracker_info(uuid="5e521ff1-505b-4d63-8b12-7b0187dea94b") 1992 def test_volte_mo_mt_add_wcdma_merge_drop_second_call_from_host_cep(self): 1993 """ Test VoLTE Conference Call among three phones. CEP enabled. 1994 1995 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1996 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. 1997 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 1998 4. On PhoneA disconnect call between A-C, verify call continues. 1999 5. On PhoneA disconnect call between A-B, verify call continues. 2000 2001 Returns: 2002 True if pass; False if fail. 2003 """ 2004 ads = self.android_devices 2005 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 2006 ads=ads, 2007 num_swaps=0, 2008 phone_setup_a=phone_setup_volte, 2009 phone_setup_b=phone_setup_voice_3g, 2010 phone_setup_c=phone_setup_voice_3g, 2011 verify_phone_a_network_subscription=is_phone_in_call_volte, 2012 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 2013 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 2014 if call_ab_id is None or call_ac_id is None: 2015 return False 2016 2017 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 2018 call_ab_id, call_ac_id) 2019 2020 2021 @TelephonyBaseTest.tel_test_wrap 2022 @test_tracker_info(uuid="d5732ea2-a657-40ea-bb30-151e53cf8058") 2023 def test_volte_mo_mt_add_wcdma_merge_drop_first_call_from_participant_cep( 2024 self): 2025 """ Test VoLTE Conference Call among three phones. CEP enabled. 2026 2027 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. 2028 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. 2029 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2030 4. End call on PhoneB, verify call continues. 2031 5. End call on PhoneC, verify call end on PhoneA. 2032 2033 Returns: 2034 True if pass; False if fail. 2035 """ 2036 ads = self.android_devices 2037 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 2038 ads=ads, 2039 num_swaps=0, 2040 phone_setup_a=phone_setup_volte, 2041 phone_setup_b=phone_setup_voice_3g, 2042 phone_setup_c=phone_setup_voice_3g, 2043 verify_phone_a_network_subscription=is_phone_in_call_volte, 2044 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 2045 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 2046 if call_ab_id is None or call_ac_id is None: 2047 return False 2048 2049 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 2050 call_ab_id, call_ac_id) 2051 2052 2053 @TelephonyBaseTest.tel_test_wrap 2054 @test_tracker_info(uuid="78e73444-3dde-465f-bf5e-dc48b40a93f3") 2055 def test_volte_mo_mt_add_wcdma_merge_drop_first_call_from_host_cep(self): 2056 """ Test VoLTE Conference Call among three phones. CEP enabled. 2057 2058 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. 2059 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. 2060 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2061 4. On PhoneA disconnect call between A-B, verify call continues. 2062 5. On PhoneA disconnect call between A-C, verify call continues. 2063 2064 Returns: 2065 True if pass; False if fail. 2066 """ 2067 ads = self.android_devices 2068 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 2069 ads=ads, 2070 num_swaps=0, 2071 phone_setup_a=phone_setup_volte, 2072 phone_setup_b=phone_setup_voice_3g, 2073 phone_setup_c=phone_setup_voice_3g, 2074 verify_phone_a_network_subscription=is_phone_in_call_volte, 2075 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 2076 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 2077 if call_ab_id is None or call_ac_id is None: 2078 return False 2079 2080 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 2081 call_ab_id, call_ac_id) 2082 2083 2084 @TelephonyBaseTest.tel_test_wrap 2085 @test_tracker_info(uuid="f4efbf04-b117-4508-ba86-0ef37481cc3a") 2086 def test_volte_mt_mt_add_wcdma_merge_drop_second_call_from_participant_no_cep( 2087 self): 2088 """ Test VoLTE Conference Call among three phones. No CEP. 2089 2090 Call from PhoneB (WCDMA) to PhoneA (VoLTE), accept on PhoneA. 2091 Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. 2092 On PhoneA, merge to conference call (No CEP). 2093 End call on PhoneC, verify call continues. 2094 End call on PhoneB, verify call end on PhoneA. 2095 2096 Returns: 2097 True if pass; False if fail. 2098 """ 2099 ads = self.android_devices 2100 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 2101 ads=ads, 2102 num_swaps=0, 2103 phone_setup_a=phone_setup_volte, 2104 phone_setup_b=phone_setup_voice_3g, 2105 phone_setup_c=phone_setup_voice_3g, 2106 verify_phone_a_network_subscription=is_phone_in_call_volte, 2107 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 2108 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 2109 if call_ab_id is None or call_ac_id is None: 2110 return False 2111 2112 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 2113 call_ab_id, call_ac_id) 2114 2115 2116 @TelephonyBaseTest.tel_test_wrap 2117 @test_tracker_info(uuid="064109cf-d166-448a-8655-81744ea37e05") 2118 def test_volte_mt_mt_add_wcdma_merge_drop_second_call_from_participant_cep( 2119 self): 2120 """ Test VoLTE Conference Call among three phones. CEP enabled. 2121 2122 1. Call from PhoneB (WCDMA) to PhoneA (VoLTE), accept on PhoneA. 2123 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. 2124 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2125 4. End call on PhoneC, verify call continues. 2126 5. End call on PhoneB, verify call end on PhoneA. 2127 2128 Returns: 2129 True if pass; False if fail. 2130 """ 2131 ads = self.android_devices 2132 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 2133 ads=ads, 2134 num_swaps=0, 2135 phone_setup_a=phone_setup_volte, 2136 phone_setup_b=phone_setup_voice_3g, 2137 phone_setup_c=phone_setup_voice_3g, 2138 verify_phone_a_network_subscription=is_phone_in_call_volte, 2139 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 2140 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 2141 if call_ab_id is None or call_ac_id is None: 2142 return False 2143 2144 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 2145 call_ab_id, call_ac_id) 2146 2147 2148 @TelephonyBaseTest.tel_test_wrap 2149 @test_tracker_info(uuid="bedd0576-5bb6-4fef-9700-f638cf742201") 2150 def test_volte_mt_mt_add_wcdma_merge_drop_second_call_from_host_cep(self): 2151 """ Test VoLTE Conference Call among three phones. CEP enabled. 2152 2153 1. Call from PhoneB (WCDMA) to PhoneA (VoLTE), accept on PhoneA. 2154 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. 2155 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2156 4. On PhoneA disconnect call between A-C, verify call continues. 2157 5. On PhoneA disconnect call between A-B, verify call continues. 2158 2159 Returns: 2160 True if pass; False if fail. 2161 """ 2162 ads = self.android_devices 2163 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 2164 ads=ads, 2165 num_swaps=0, 2166 phone_setup_a=phone_setup_volte, 2167 phone_setup_b=phone_setup_voice_3g, 2168 phone_setup_c=phone_setup_voice_3g, 2169 verify_phone_a_network_subscription=is_phone_in_call_volte, 2170 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 2171 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 2172 if call_ab_id is None or call_ac_id is None: 2173 return False 2174 2175 return _test_ims_conference_merge_drop_second_call_from_host(self.log, self.android_devices, 2176 call_ab_id, call_ac_id) 2177 2178 2179 @TelephonyBaseTest.tel_test_wrap 2180 @test_tracker_info(uuid="46178387-a0dc-4e77-8ca4-06f731e1104f") 2181 def test_volte_mt_mt_add_wcdma_merge_drop_first_call_from_participant_cep( 2182 self): 2183 """ Test VoLTE Conference Call among three phones. CEP enabled. 2184 2185 1. Call from PhoneB (WCDMA) to PhoneA (VoLTE), accept on PhoneA. 2186 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. 2187 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2188 4. End call on PhoneB, verify call continues. 2189 5. End call on PhoneC, verify call end on PhoneA. 2190 2191 Returns: 2192 True if pass; False if fail. 2193 """ 2194 ads = self.android_devices 2195 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 2196 ads=ads, 2197 num_swaps=0, 2198 phone_setup_a=phone_setup_volte, 2199 phone_setup_b=phone_setup_voice_3g, 2200 phone_setup_c=phone_setup_voice_3g, 2201 verify_phone_a_network_subscription=is_phone_in_call_volte, 2202 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 2203 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 2204 if call_ab_id is None or call_ac_id is None: 2205 return False 2206 2207 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 2208 call_ab_id, call_ac_id) 2209 2210 2211 @TelephonyBaseTest.tel_test_wrap 2212 @test_tracker_info(uuid="a1d13168-078b-47d8-89f0-0798b085502d") 2213 def test_volte_mt_mt_add_wcdma_merge_drop_first_call_from_host_cep(self): 2214 """ Test VoLTE Conference Call among three phones. CEP enabled. 2215 2216 1. Call from PhoneB (WCDMA) to PhoneA (VoLTE), accept on PhoneA. 2217 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. 2218 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2219 4. On PhoneA disconnect call between A-B, verify call continues. 2220 5. On PhoneA disconnect call between A-C, verify call continues. 2221 2222 Returns: 2223 True if pass; False if fail. 2224 """ 2225 ads = self.android_devices 2226 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 2227 ads=ads, 2228 num_swaps=0, 2229 phone_setup_a=phone_setup_volte, 2230 phone_setup_b=phone_setup_voice_3g, 2231 phone_setup_c=phone_setup_voice_3g, 2232 verify_phone_a_network_subscription=is_phone_in_call_volte, 2233 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 2234 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 2235 if call_ab_id is None or call_ac_id is None: 2236 return False 2237 2238 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 2239 call_ab_id, call_ac_id) 2240 2241 2242 @TelephonyBaseTest.tel_test_wrap 2243 @test_tracker_info(uuid="08a26dc4-78e5-47cb-af75-9695453e82bb") 2244 def test_volte_mo_mo_add_1x_merge_drop_second_call_from_participant_no_cep( 2245 self): 2246 """ Test VoLTE Conference Call among three phones. No CEP. 2247 2248 Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. 2249 Call from PhoneA (VOLTE) to PhoneC (1x), accept on PhoneC. 2250 On PhoneA, merge to conference call (No CEP). 2251 End call on PhoneC, verify call continues. 2252 End call on PhoneB, verify call end on PhoneA. 2253 2254 Returns: 2255 True if pass; False if fail. 2256 """ 2257 ads = self.android_devices 2258 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 2259 ads=ads, 2260 num_swaps=0, 2261 phone_setup_a=phone_setup_volte, 2262 phone_setup_b=phone_setup_voice_3g, 2263 phone_setup_c=phone_setup_voice_3g, 2264 verify_phone_a_network_subscription=is_phone_in_call_volte, 2265 verify_phone_b_network_subscription=is_phone_in_call_1x, 2266 verify_phone_c_network_subscription=is_phone_in_call_1x) 2267 if call_ab_id is None or call_ac_id is None: 2268 return False 2269 2270 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 2271 call_ab_id, call_ac_id) 2272 2273 2274 @TelephonyBaseTest.tel_test_wrap 2275 @test_tracker_info(uuid="bde45028-b844-4192-89b1-8579941a03ed") 2276 def test_volte_mo_mo_add_1x_merge_drop_second_call_from_participant_cep( 2277 self): 2278 """ Test VoLTE Conference Call among three phones. CEP enabled. 2279 2280 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. 2281 2. Call from PhoneA (VoLTE) to PhoneC (1x), accept on PhoneC. 2282 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2283 4. End call on PhoneC, verify call continues. 2284 5. End call on PhoneB, verify call end on PhoneA. 2285 2286 Returns: 2287 True if pass; False if fail. 2288 """ 2289 ads = self.android_devices 2290 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 2291 ads=ads, 2292 num_swaps=0, 2293 phone_setup_a=phone_setup_volte, 2294 phone_setup_b=phone_setup_voice_3g, 2295 phone_setup_c=phone_setup_voice_3g, 2296 verify_phone_a_network_subscription=is_phone_in_call_volte, 2297 verify_phone_b_network_subscription=is_phone_in_call_1x, 2298 verify_phone_c_network_subscription=is_phone_in_call_1x) 2299 if call_ab_id is None or call_ac_id is None: 2300 return False 2301 2302 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 2303 call_ab_id, call_ac_id) 2304 2305 2306 @TelephonyBaseTest.tel_test_wrap 2307 @test_tracker_info(uuid="f38d3031-d7f1-4990-bce3-9c329beb5eeb") 2308 def test_volte_mo_mo_add_1x_merge_drop_second_call_from_host_cep(self): 2309 """ Test VoLTE Conference Call among three phones. CEP enabled. 2310 2311 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. 2312 2. Call from PhoneA (VoLTE) to PhoneC (1x), accept on PhoneC. 2313 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2314 4. On PhoneA disconnect call between A-C, verify call continues. 2315 5. On PhoneA disconnect call between A-B, verify call continues. 2316 2317 Returns: 2318 True if pass; False if fail. 2319 """ 2320 ads = self.android_devices 2321 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 2322 ads=ads, 2323 num_swaps=0, 2324 phone_setup_a=phone_setup_volte, 2325 phone_setup_b=phone_setup_voice_3g, 2326 phone_setup_c=phone_setup_voice_3g, 2327 verify_phone_a_network_subscription=is_phone_in_call_volte, 2328 verify_phone_b_network_subscription=is_phone_in_call_1x, 2329 verify_phone_c_network_subscription=is_phone_in_call_1x) 2330 if call_ab_id is None or call_ac_id is None: 2331 return False 2332 2333 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 2334 call_ab_id, call_ac_id) 2335 2336 2337 @TelephonyBaseTest.tel_test_wrap 2338 @test_tracker_info(uuid="d1391513-8592-4159-81b7-16cb10c406e8") 2339 def test_volte_mo_mo_add_1x_merge_drop_first_call_from_participant_cep( 2340 self): 2341 """ Test VoLTE Conference Call among three phones. CEP enabled. 2342 2343 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. 2344 2. Call from PhoneA (VoLTE) to PhoneC (1x), accept on PhoneC. 2345 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2346 4. End call on PhoneB, verify call continues. 2347 5. End call on PhoneC, verify call end on PhoneA. 2348 2349 Returns: 2350 True if pass; False if fail. 2351 """ 2352 ads = self.android_devices 2353 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 2354 ads=ads, 2355 num_swaps=0, 2356 phone_setup_a=phone_setup_volte, 2357 phone_setup_b=phone_setup_voice_3g, 2358 phone_setup_c=phone_setup_voice_3g, 2359 verify_phone_a_network_subscription=is_phone_in_call_volte, 2360 verify_phone_b_network_subscription=is_phone_in_call_1x, 2361 verify_phone_c_network_subscription=is_phone_in_call_1x) 2362 if call_ab_id is None or call_ac_id is None: 2363 return False 2364 2365 return self._test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 2366 call_ab_id, call_ac_id) 2367 2368 2369 @TelephonyBaseTest.tel_test_wrap 2370 @test_tracker_info(uuid="e05c261e-e99a-4ca7-a8db-9ad982e06913") 2371 def test_volte_mo_mo_add_1x_merge_drop_first_call_from_host_cep(self): 2372 """ Test VoLTE Conference Call among three phones. CEP enabled. 2373 2374 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. 2375 2. Call from PhoneA (VoLTE) to PhoneC (1x), accept on PhoneC. 2376 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2377 4. On PhoneA disconnect call between A-B, verify call continues. 2378 5. On PhoneA disconnect call between A-C, verify call continues. 2379 2380 Returns: 2381 True if pass; False if fail. 2382 """ 2383 ads = self.android_devices 2384 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 2385 ads=ads, 2386 num_swaps=0, 2387 phone_setup_a=phone_setup_volte, 2388 phone_setup_b=phone_setup_voice_3g, 2389 phone_setup_c=phone_setup_voice_3g, 2390 verify_phone_a_network_subscription=is_phone_in_call_volte, 2391 verify_phone_b_network_subscription=is_phone_in_call_1x, 2392 verify_phone_c_network_subscription=is_phone_in_call_1x) 2393 if call_ab_id is None or call_ac_id is None: 2394 return False 2395 2396 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 2397 call_ab_id, call_ac_id) 2398 2399 2400 @TelephonyBaseTest.tel_test_wrap 2401 @test_tracker_info(uuid="f4329201-a388-4070-9225-37d4c8045096") 2402 def test_volte_mo_mt_add_1x_merge_drop_second_call_from_participant_no_cep( 2403 self): 2404 """ Test VoLTE Conference Call among three phones. No CEP. 2405 2406 Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. 2407 Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. 2408 On PhoneA, merge to conference call (No CEP). 2409 End call on PhoneC, verify call continues. 2410 End call on PhoneB, verify call end on PhoneA. 2411 2412 Returns: 2413 True if pass; False if fail. 2414 """ 2415 ads = self.android_devices 2416 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 2417 ads=ads, 2418 num_swaps=0, 2419 phone_setup_a=phone_setup_volte, 2420 phone_setup_b=phone_setup_voice_3g, 2421 phone_setup_c=phone_setup_voice_3g, 2422 verify_phone_a_network_subscription=is_phone_in_call_volte, 2423 verify_phone_b_network_subscription=is_phone_in_call_1x, 2424 verify_phone_c_network_subscription=is_phone_in_call_1x) 2425 if call_ab_id is None or call_ac_id is None: 2426 return False 2427 2428 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 2429 call_ab_id, call_ac_id) 2430 2431 2432 @TelephonyBaseTest.tel_test_wrap 2433 @test_tracker_info(uuid="fafa96ef-649a-4ff7-8fed-d4bfd6d88c2e") 2434 def test_volte_mo_mt_add_1x_merge_drop_second_call_from_participant_cep( 2435 self): 2436 """ Test VoLTE Conference Call among three phones. CEP enabled. 2437 2438 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. 2439 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. 2440 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2441 4. End call on PhoneC, verify call continues. 2442 5. End call on PhoneB, verify call end on PhoneA. 2443 2444 Returns: 2445 True if pass; False if fail. 2446 """ 2447 ads = self.android_devices 2448 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 2449 ads=ads, 2450 num_swaps=0, 2451 phone_setup_a=phone_setup_volte, 2452 phone_setup_b=phone_setup_voice_3g, 2453 phone_setup_c=phone_setup_voice_3g, 2454 verify_phone_a_network_subscription=is_phone_in_call_volte, 2455 verify_phone_b_network_subscription=is_phone_in_call_1x, 2456 verify_phone_c_network_subscription=is_phone_in_call_1x) 2457 if call_ab_id is None or call_ac_id is None: 2458 return False 2459 2460 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 2461 call_ab_id, call_ac_id) 2462 2463 2464 @TelephonyBaseTest.tel_test_wrap 2465 @test_tracker_info(uuid="66d79e0b-879d-461c-bf5d-b27495f73754") 2466 def test_volte_mo_mt_add_1x_merge_drop_second_call_from_host_cep(self): 2467 """ Test VoLTE Conference Call among three phones. CEP enabled. 2468 2469 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. 2470 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. 2471 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2472 4. On PhoneA disconnect call between A-C, verify call continues. 2473 5. On PhoneA disconnect call between A-B, verify call continues. 2474 2475 Returns: 2476 True if pass; False if fail. 2477 """ 2478 ads = self.android_devices 2479 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 2480 ads=ads, 2481 num_swaps=0, 2482 phone_setup_a=phone_setup_volte, 2483 phone_setup_b=phone_setup_voice_3g, 2484 phone_setup_c=phone_setup_voice_3g, 2485 verify_phone_a_network_subscription=is_phone_in_call_volte, 2486 verify_phone_b_network_subscription=is_phone_in_call_1x, 2487 verify_phone_c_network_subscription=is_phone_in_call_1x) 2488 if call_ab_id is None or call_ac_id is None: 2489 return False 2490 2491 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 2492 call_ab_id, call_ac_id) 2493 2494 2495 @TelephonyBaseTest.tel_test_wrap 2496 @test_tracker_info(uuid="a5f2a3d0-9b00-4496-8316-ea626b1c978a") 2497 def test_volte_mo_mt_add_1x_merge_drop_first_call_from_participant_cep( 2498 self): 2499 """ Test VoLTE Conference Call among three phones. CEP enabled. 2500 2501 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. 2502 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. 2503 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2504 4. End call on PhoneB, verify call continues. 2505 5. End call on PhoneC, verify call end on PhoneA. 2506 2507 Returns: 2508 True if pass; False if fail. 2509 """ 2510 ads = self.android_devices 2511 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 2512 ads=ads, 2513 num_swaps=0, 2514 phone_setup_a=phone_setup_volte, 2515 phone_setup_b=phone_setup_voice_3g, 2516 phone_setup_c=phone_setup_voice_3g, 2517 verify_phone_a_network_subscription=is_phone_in_call_volte, 2518 verify_phone_b_network_subscription=is_phone_in_call_1x, 2519 verify_phone_c_network_subscription=is_phone_in_call_1x) 2520 if call_ab_id is None or call_ac_id is None: 2521 return False 2522 2523 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 2524 call_ab_id, call_ac_id) 2525 2526 2527 @TelephonyBaseTest.tel_test_wrap 2528 @test_tracker_info(uuid="98cfd8d8-200f-4820-94ed-1561df1ed152") 2529 def test_volte_mo_mt_add_1x_merge_drop_first_call_from_host_cep(self): 2530 """ Test VoLTE Conference Call among three phones. CEP enabled. 2531 2532 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. 2533 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. 2534 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2535 4. On PhoneA disconnect call between A-B, verify call continues. 2536 5. On PhoneA disconnect call between A-C, verify call continues. 2537 2538 Returns: 2539 True if pass; False if fail. 2540 """ 2541 ads = self.android_devices 2542 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 2543 ads=ads, 2544 num_swaps=0, 2545 phone_setup_a=phone_setup_volte, 2546 phone_setup_b=phone_setup_voice_3g, 2547 phone_setup_c=phone_setup_voice_3g, 2548 verify_phone_a_network_subscription=is_phone_in_call_volte, 2549 verify_phone_b_network_subscription=is_phone_in_call_1x, 2550 verify_phone_c_network_subscription=is_phone_in_call_1x) 2551 if call_ab_id is None or call_ac_id is None: 2552 return False 2553 2554 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 2555 call_ab_id, call_ac_id) 2556 2557 2558 @TelephonyBaseTest.tel_test_wrap 2559 @test_tracker_info(uuid="c9ee6bb1-4aee-4fc9-95b0-f899d3d31d82") 2560 def test_volte_mt_mt_add_1x_merge_drop_second_call_from_participant_no_cep( 2561 self): 2562 """ Test VoLTE Conference Call among three phones. No CEP. 2563 2564 Call from PhoneB (1x) to PhoneA (VoLTE), accept on PhoneA. 2565 Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. 2566 On PhoneA, merge to conference call (No CEP). 2567 End call on PhoneC, verify call continues. 2568 End call on PhoneB, verify call end on PhoneA. 2569 2570 Returns: 2571 True if pass; False if fail. 2572 """ 2573 ads = self.android_devices 2574 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 2575 ads=ads, 2576 num_swaps=0, 2577 phone_setup_a=phone_setup_volte, 2578 phone_setup_b=phone_setup_voice_3g, 2579 phone_setup_c=phone_setup_voice_3g, 2580 verify_phone_a_network_subscription=is_phone_in_call_volte, 2581 verify_phone_b_network_subscription=is_phone_in_call_1x, 2582 verify_phone_c_network_subscription=is_phone_in_call_1x) 2583 if call_ab_id is None or call_ac_id is None: 2584 return False 2585 2586 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 2587 call_ab_id, call_ac_id) 2588 2589 2590 @TelephonyBaseTest.tel_test_wrap 2591 @test_tracker_info(uuid="f4fb92a1-d4a0-4796-bdb4-f441b926c63c") 2592 def test_volte_mt_mt_add_1x_merge_drop_second_call_from_participant_cep( 2593 self): 2594 """ Test VoLTE Conference Call among three phones. CEP enabled. 2595 2596 1. Call from PhoneB (1x) to PhoneA (VoLTE), accept on PhoneA. 2597 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. 2598 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2599 4. End call on PhoneC, verify call continues. 2600 5. End call on PhoneB, verify call end on PhoneA. 2601 2602 Returns: 2603 True if pass; False if fail. 2604 """ 2605 ads = self.android_devices 2606 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 2607 ads=ads, 2608 num_swaps=0, 2609 phone_setup_a=phone_setup_volte, 2610 phone_setup_b=phone_setup_voice_3g, 2611 phone_setup_c=phone_setup_voice_3g, 2612 verify_phone_a_network_subscription=is_phone_in_call_volte, 2613 verify_phone_b_network_subscription=is_phone_in_call_1x, 2614 verify_phone_c_network_subscription=is_phone_in_call_1x) 2615 if call_ab_id is None or call_ac_id is None: 2616 return False 2617 2618 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 2619 call_ab_id, call_ac_id) 2620 2621 2622 @TelephonyBaseTest.tel_test_wrap 2623 @test_tracker_info(uuid="8ad0e672-83cc-463a-aa12-d331faa5eb17") 2624 def test_volte_mt_mt_add_1x_merge_drop_second_call_from_host_cep(self): 2625 """ Test VoLTE Conference Call among three phones. CEP enabled. 2626 2627 1. Call from PhoneB (1x) to PhoneA (VoLTE), accept on PhoneA. 2628 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. 2629 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2630 4. On PhoneA disconnect call between A-C, verify call continues. 2631 5. On PhoneA disconnect call between A-B, verify call continues. 2632 2633 Returns: 2634 True if pass; False if fail. 2635 """ 2636 ads = self.android_devices 2637 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 2638 ads=ads, 2639 num_swaps=0, 2640 phone_setup_a=phone_setup_volte, 2641 phone_setup_b=phone_setup_voice_3g, 2642 phone_setup_c=phone_setup_voice_3g, 2643 verify_phone_a_network_subscription=is_phone_in_call_volte, 2644 verify_phone_b_network_subscription=is_phone_in_call_1x, 2645 verify_phone_c_network_subscription=is_phone_in_call_1x) 2646 if call_ab_id is None or call_ac_id is None: 2647 return False 2648 2649 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 2650 call_ab_id, call_ac_id) 2651 2652 2653 @TelephonyBaseTest.tel_test_wrap 2654 @test_tracker_info(uuid="3dad2fd1-d2c0-477c-a758-3c054df6e92a") 2655 def test_volte_mt_mt_add_1x_merge_drop_first_call_from_participant_cep( 2656 self): 2657 """ Test VoLTE Conference Call among three phones. CEP enabled. 2658 2659 1. Call from PhoneB (1x) to PhoneA (VoLTE), accept on PhoneA. 2660 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. 2661 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2662 4. End call on PhoneB, verify call continues. 2663 5. End call on PhoneC, verify call end on PhoneA. 2664 2665 Returns: 2666 True if pass; False if fail. 2667 """ 2668 ads = self.android_devices 2669 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 2670 ads=ads, 2671 num_swaps=0, 2672 phone_setup_a=phone_setup_volte, 2673 phone_setup_b=phone_setup_voice_3g, 2674 phone_setup_c=phone_setup_voice_3g, 2675 verify_phone_a_network_subscription=is_phone_in_call_volte, 2676 verify_phone_b_network_subscription=is_phone_in_call_1x, 2677 verify_phone_c_network_subscription=is_phone_in_call_1x) 2678 if call_ab_id is None or call_ac_id is None: 2679 return False 2680 2681 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 2682 call_ab_id, call_ac_id) 2683 2684 2685 @TelephonyBaseTest.tel_test_wrap 2686 @test_tracker_info(uuid="e382469b-8767-47fd-b3e6-8c81d8fb45ef") 2687 def test_volte_mt_mt_add_1x_merge_drop_first_call_from_host_cep(self): 2688 """ Test VoLTE Conference Call among three phones. CEP enabled. 2689 2690 1. Call from PhoneB (1x) to PhoneA (VoLTE), accept on PhoneA. 2691 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. 2692 3. On PhoneA, merge to conference call (VoLTE CEP conference call). 2693 4. On PhoneA disconnect call between A-B, verify call continues. 2694 5. On PhoneA disconnect call between A-C, verify call continues. 2695 2696 Returns: 2697 True if pass; False if fail. 2698 """ 2699 ads = self.android_devices 2700 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 2701 ads=ads, 2702 num_swaps=0, 2703 phone_setup_a=phone_setup_volte, 2704 phone_setup_b=phone_setup_voice_3g, 2705 phone_setup_c=phone_setup_voice_3g, 2706 verify_phone_a_network_subscription=is_phone_in_call_volte, 2707 verify_phone_b_network_subscription=is_phone_in_call_1x, 2708 verify_phone_c_network_subscription=is_phone_in_call_1x) 2709 if call_ab_id is None or call_ac_id is None: 2710 return False 2711 2712 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 2713 call_ab_id, call_ac_id) 2714 2715 2716 @TelephonyBaseTest.tel_test_wrap 2717 @test_tracker_info(uuid="98db2430-07c2-4ec7-8644-2aa081a3eb22") 2718 def test_volte_mo_mo_add_volte_swap_twice_drop_held(self): 2719 """Test swap feature in VoLTE call. 2720 2721 PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 2722 PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. 2723 Swap active call on PhoneA. 2724 Swap active call on PhoneA. 2725 Hangup call from PhoneB, check if call continues between AC. 2726 2727 """ 2728 ads = self.android_devices 2729 2730 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 2731 ads=ads, 2732 num_swaps=2, 2733 phone_setup_a=phone_setup_volte, 2734 phone_setup_b=phone_setup_volte, 2735 phone_setup_c=phone_setup_volte, 2736 verify_phone_a_network_subscription=is_phone_in_call_volte, 2737 verify_phone_b_network_subscription=is_phone_in_call_volte, 2738 verify_phone_c_network_subscription=is_phone_in_call_volte) 2739 if call_ab_id is None or call_ac_id is None: 2740 return False 2741 2742 return _three_phone_hangup_call_verify_call_state(log=self.log, 2743 ad_hangup=ads[1], 2744 ad_verify=ads[0], 2745 call_id=call_ac_id, 2746 call_state=CALL_STATE_ACTIVE, 2747 ads_active=[ads[0], ads[2]]) 2748 2749 2750 @TelephonyBaseTest.tel_test_wrap 2751 @test_tracker_info(uuid="7504958b-172b-4afc-97ea-9562b8429dfe") 2752 def test_volte_mo_mo_add_volte_swap_twice_drop_active(self): 2753 """Test swap feature in VoLTE call. 2754 2755 PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 2756 PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. 2757 Swap active call on PhoneA. 2758 Swap active call on PhoneA. 2759 Hangup call from PhoneC, check if call continues between AB. 2760 2761 """ 2762 ads = self.android_devices 2763 2764 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 2765 ads=ads, 2766 num_swaps=2, 2767 phone_setup_a=phone_setup_volte, 2768 phone_setup_b=phone_setup_volte, 2769 phone_setup_c=phone_setup_volte, 2770 verify_phone_a_network_subscription=is_phone_in_call_volte, 2771 verify_phone_b_network_subscription=is_phone_in_call_volte, 2772 verify_phone_c_network_subscription=is_phone_in_call_volte) 2773 if call_ab_id is None or call_ac_id is None: 2774 return False 2775 2776 return _three_phone_hangup_call_verify_call_state(log=self.log, 2777 ad_hangup=ads[2], 2778 ad_verify=ads[0], 2779 call_id=call_ab_id, 2780 call_state=_get_expected_call_state(ads[0]), 2781 ads_active=[ads[0], ads[1]]) 2782 2783 2784 @TelephonyBaseTest.tel_test_wrap 2785 @test_tracker_info(uuid="ac02ce22-fd8c-48ba-9e68-6748d1e48c68") 2786 def test_volte_mo_mt_add_volte_swap_twice_drop_held(self): 2787 """Test swap feature in VoLTE call. 2788 2789 PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 2790 PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 2791 Swap active call on PhoneA. 2792 Swap active call on PhoneA. 2793 Hangup call from PhoneB, check if call continues between AC. 2794 2795 """ 2796 ads = self.android_devices 2797 2798 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 2799 ads=ads, 2800 num_swaps=2, 2801 phone_setup_a=phone_setup_volte, 2802 phone_setup_b=phone_setup_volte, 2803 phone_setup_c=phone_setup_volte, 2804 verify_phone_a_network_subscription=is_phone_in_call_volte, 2805 verify_phone_b_network_subscription=is_phone_in_call_volte, 2806 verify_phone_c_network_subscription=is_phone_in_call_volte) 2807 if call_ab_id is None or call_ac_id is None: 2808 return False 2809 2810 return _three_phone_hangup_call_verify_call_state(log=self.log, 2811 ad_hangup=ads[1], 2812 ad_verify=ads[0], 2813 call_id=call_ac_id, 2814 call_state=CALL_STATE_ACTIVE, 2815 ads_active=[ads[0], ads[2]]) 2816 2817 2818 @TelephonyBaseTest.tel_test_wrap 2819 @test_tracker_info(uuid="2fb2c4f6-1c14-4122-bc3e-a7a6416003a3") 2820 def test_volte_mo_mt_add_volte_swap_twice_drop_active(self): 2821 """Test swap feature in VoLTE call. 2822 2823 PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 2824 PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 2825 Swap active call on PhoneA. 2826 Swap active call on PhoneA. 2827 Hangup call from PhoneC, check if call continues between AB. 2828 2829 """ 2830 ads = self.android_devices 2831 2832 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 2833 ads=ads, 2834 num_swaps=2, 2835 phone_setup_a=phone_setup_volte, 2836 phone_setup_b=phone_setup_volte, 2837 phone_setup_c=phone_setup_volte, 2838 verify_phone_a_network_subscription=is_phone_in_call_volte, 2839 verify_phone_b_network_subscription=is_phone_in_call_volte, 2840 verify_phone_c_network_subscription=is_phone_in_call_volte) 2841 if call_ab_id is None or call_ac_id is None: 2842 return False 2843 2844 return _three_phone_hangup_call_verify_call_state(log=self.log, 2845 ad_hangup=ads[2], 2846 ad_verify=ads[0], 2847 call_id=call_ab_id, 2848 call_state=_get_expected_call_state(ads[0]), 2849 ads_active=[ads[0], ads[1]]) 2850 2851 2852 @TelephonyBaseTest.tel_test_wrap 2853 @test_tracker_info(uuid="deed9c13-2e9d-464a-b8f7-62e91265451d") 2854 def test_volte_mo_mo_add_volte_swap_once_drop_held(self): 2855 """Test swap feature in VoLTE call. 2856 2857 PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 2858 PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. 2859 Swap active call on PhoneA. 2860 Hangup call from PhoneC, check if call continues between AB. 2861 2862 """ 2863 ads = self.android_devices 2864 2865 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 2866 ads=ads, 2867 num_swaps=1, 2868 phone_setup_a=phone_setup_volte, 2869 phone_setup_b=phone_setup_volte, 2870 phone_setup_c=phone_setup_volte, 2871 verify_phone_a_network_subscription=is_phone_in_call_volte, 2872 verify_phone_b_network_subscription=is_phone_in_call_volte, 2873 verify_phone_c_network_subscription=is_phone_in_call_volte) 2874 if call_ab_id is None or call_ac_id is None: 2875 return False 2876 2877 return _three_phone_hangup_call_verify_call_state(log=self.log, 2878 ad_hangup=ads[2], 2879 ad_verify=ads[0], 2880 call_id=call_ab_id, 2881 call_state=CALL_STATE_ACTIVE, 2882 ads_active=[ads[0], ads[1]]) 2883 2884 2885 @TelephonyBaseTest.tel_test_wrap 2886 @test_tracker_info(uuid="3324a4d3-68db-41a4-b0d0-3e8e82b84f46") 2887 def test_volte_mo_mo_add_volte_swap_once_drop_active(self): 2888 """Test swap feature in VoLTE call. 2889 2890 PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 2891 PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. 2892 Swap active call on PhoneA. 2893 Swap active call on PhoneA. 2894 Hangup call from PhoneB, check if call continues between AC. 2895 2896 """ 2897 ads = self.android_devices 2898 2899 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 2900 ads=ads, 2901 num_swaps=1, 2902 phone_setup_a=phone_setup_volte, 2903 phone_setup_b=phone_setup_volte, 2904 phone_setup_c=phone_setup_volte, 2905 verify_phone_a_network_subscription=is_phone_in_call_volte, 2906 verify_phone_b_network_subscription=is_phone_in_call_volte, 2907 verify_phone_c_network_subscription=is_phone_in_call_volte) 2908 if call_ab_id is None or call_ac_id is None: 2909 return False 2910 2911 return _three_phone_hangup_call_verify_call_state(log=self.log, 2912 ad_hangup=ads[1], 2913 ad_verify=ads[0], 2914 call_id=call_ac_id, 2915 call_state=_get_expected_call_state(ads[0]), 2916 ads_active=[ads[0], ads[2]]) 2917 2918 2919 @TelephonyBaseTest.tel_test_wrap 2920 @test_tracker_info(uuid="57c8c3f6-c690-41c3-aaed-98e5548cc4b6") 2921 def test_volte_mo_mt_add_volte_swap_once_drop_held(self): 2922 """Test swap feature in VoLTE call. 2923 2924 PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 2925 PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 2926 Swap active call on PhoneA. 2927 Hangup call from PhoneC, check if call continues between AB. 2928 2929 """ 2930 ads = self.android_devices 2931 2932 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 2933 ads=ads, 2934 num_swaps=1, 2935 phone_setup_a=phone_setup_volte, 2936 phone_setup_b=phone_setup_volte, 2937 phone_setup_c=phone_setup_volte, 2938 verify_phone_a_network_subscription=is_phone_in_call_volte, 2939 verify_phone_b_network_subscription=is_phone_in_call_volte, 2940 verify_phone_c_network_subscription=is_phone_in_call_volte) 2941 if call_ab_id is None or call_ac_id is None: 2942 return False 2943 return _three_phone_hangup_call_verify_call_state(log=self.log, 2944 ad_hangup=ads[2], 2945 ad_verify=ads[0], 2946 call_id=call_ab_id, 2947 call_state=CALL_STATE_ACTIVE, 2948 ads_active=[ads[0], ads[1]]) 2949 2950 2951 @TelephonyBaseTest.tel_test_wrap 2952 @test_tracker_info(uuid="96376148-f069-41f9-b22f-f5240de427f7") 2953 def test_volte_mo_mt_add_volte_swap_once_drop_active(self): 2954 """Test swap feature in VoLTE call. 2955 2956 PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 2957 PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 2958 Swap active call on PhoneA. 2959 Hangup call from PhoneB, check if call continues between AC. 2960 2961 """ 2962 ads = self.android_devices 2963 2964 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 2965 ads=ads, 2966 num_swaps=1, 2967 phone_setup_a=phone_setup_volte, 2968 phone_setup_b=phone_setup_volte, 2969 phone_setup_c=phone_setup_volte, 2970 verify_phone_a_network_subscription=is_phone_in_call_volte, 2971 verify_phone_b_network_subscription=is_phone_in_call_volte, 2972 verify_phone_c_network_subscription=is_phone_in_call_volte) 2973 if call_ab_id is None or call_ac_id is None: 2974 return False 2975 2976 return _three_phone_hangup_call_verify_call_state(log=self.log, 2977 ad_hangup=ads[1], 2978 ad_verify=ads[0], 2979 call_id=call_ac_id, 2980 call_state=_get_expected_call_state(ads[0]), 2981 ads_active=[ads[0], ads[2]]) 2982 2983 2984 @TelephonyBaseTest.tel_test_wrap 2985 @test_tracker_info(uuid="baac4ef4-198b-4a33-a09a-5507c6aa740d") 2986 def test_wcdma_mo_mo_add_swap_twice_drop_held(self): 2987 """Test swap feature in WCDMA call. 2988 2989 PhoneA (WCDMA) call PhoneB, accept on PhoneB. 2990 PhoneA (WCDMA) call PhoneC, accept on PhoneC. 2991 Swap active call on PhoneA. 2992 Swap active call on PhoneA. 2993 Hangup call from PhoneB, check if call continues between AC. 2994 2995 """ 2996 ads = self.android_devices 2997 2998 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 2999 ads=ads, 3000 num_swaps=2, 3001 phone_setup_a=phone_setup_voice_3g, 3002 phone_setup_b=phone_setup_voice_general, 3003 phone_setup_c=phone_setup_voice_general, 3004 verify_phone_a_network_subscription=is_phone_in_call_3g, 3005 verify_phone_b_network_subscription=None, 3006 verify_phone_c_network_subscription=None) 3007 3008 if call_ab_id is None or call_ac_id is None: 3009 return False 3010 3011 return _three_phone_hangup_call_verify_call_state(log=self.log, 3012 ad_hangup=ads[1], 3013 ad_verify=ads[0], 3014 call_id=call_ac_id, 3015 call_state=CALL_STATE_ACTIVE, 3016 ads_active=[ads[0], ads[2]]) 3017 3018 3019 @TelephonyBaseTest.tel_test_wrap 3020 @test_tracker_info(uuid="8c2588ff-3857-49eb-8db0-9e76d7c99c68") 3021 def test_wcdma_mo_mo_add_swap_twice_drop_active(self): 3022 """Test swap feature in WCDMA call. 3023 3024 PhoneA (WCDMA) call PhoneB, accept on PhoneB. 3025 PhoneA (WCDMA) call PhoneC, accept on PhoneC. 3026 Swap active call on PhoneA. 3027 Swap active call on PhoneA. 3028 Hangup call from PhoneC, check if call continues between AB. 3029 3030 """ 3031 ads = self.android_devices 3032 3033 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3034 ads=ads, 3035 num_swaps=2, 3036 phone_setup_a=phone_setup_voice_3g, 3037 phone_setup_b=phone_setup_voice_general, 3038 phone_setup_c=phone_setup_voice_general, 3039 verify_phone_a_network_subscription=is_phone_in_call_3g, 3040 verify_phone_b_network_subscription=None, 3041 verify_phone_c_network_subscription=None) 3042 if call_ab_id is None or call_ac_id is None: 3043 return False 3044 3045 return _three_phone_hangup_call_verify_call_state(log=self.log, 3046 ad_hangup=ads[2], 3047 ad_verify=ads[0], 3048 call_id=call_ab_id, 3049 call_state=_get_expected_call_state(ads[0]), 3050 ads_active=[ads[0], ads[1]]) 3051 3052 3053 @TelephonyBaseTest.tel_test_wrap 3054 @test_tracker_info(uuid="16a6aa3c-fe68-41b4-af42-75847062d4ec") 3055 def test_wcdma_mo_mt_add_swap_twice_drop_held(self): 3056 """Test swap feature in WCDMA call. 3057 3058 PhoneA (WCDMA) call PhoneB, accept on PhoneB. 3059 PhoneC call PhoneA (WCDMA), accept on PhoneA. 3060 Swap active call on PhoneA. 3061 Swap active call on PhoneA. 3062 Hangup call from PhoneB, check if call continues between AC. 3063 3064 """ 3065 ads = self.android_devices 3066 3067 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 3068 ads=ads, 3069 num_swaps=2, 3070 phone_setup_a=phone_setup_voice_3g, 3071 phone_setup_b=phone_setup_voice_general, 3072 phone_setup_c=phone_setup_voice_general, 3073 verify_phone_a_network_subscription=is_phone_in_call_wcdma, 3074 verify_phone_b_network_subscription=None, 3075 verify_phone_c_network_subscription=None) 3076 3077 if call_ab_id is None or call_ac_id is None: 3078 return False 3079 3080 return _three_phone_hangup_call_verify_call_state(log=self.log, 3081 ad_hangup=ads[1], 3082 ad_verify=ads[0], 3083 call_id=call_ac_id, 3084 call_state=CALL_STATE_ACTIVE, 3085 ads_active=[ads[0], ads[2]]) 3086 3087 3088 @TelephonyBaseTest.tel_test_wrap 3089 @test_tracker_info(uuid="f38c4cd5-53b4-43d0-a5fa-2a008a96cedc") 3090 def test_wcdma_mo_mt_add_swap_twice_drop_active(self): 3091 """Test swap feature in WCDMA call. 3092 3093 PhoneA (WCDMA) call PhoneB, accept on PhoneB. 3094 PhoneC call PhoneA (WCDMA), accept on PhoneA. 3095 Swap active call on PhoneA. 3096 Swap active call on PhoneA. 3097 Hangup call from PhoneC, check if call continues between AB. 3098 3099 """ 3100 ads = self.android_devices 3101 3102 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 3103 ads=ads, 3104 num_swaps=2, 3105 phone_setup_a=phone_setup_voice_3g, 3106 phone_setup_b=phone_setup_voice_general, 3107 phone_setup_c=phone_setup_voice_general, 3108 verify_phone_a_network_subscription=is_phone_in_call_wcdma, 3109 verify_phone_b_network_subscription=None, 3110 verify_phone_c_network_subscription=None) 3111 if call_ab_id is None or call_ac_id is None: 3112 return False 3113 3114 return _three_phone_hangup_call_verify_call_state(log=self.log, 3115 ad_hangup=ads[2], 3116 ad_verify=ads[0], 3117 call_id=call_ab_id, 3118 call_state=_get_expected_call_state(ads[0]), 3119 ads_active=[ads[0], ads[1]]) 3120 3121 3122 @TelephonyBaseTest.tel_test_wrap 3123 @test_tracker_info(uuid="734689e8-2acd-405f-be93-db62e2606252") 3124 def test_wcdma_mo_mo_add_swap_once_drop_held(self): 3125 """Test swap feature in WCDMA call. 3126 3127 PhoneA (WCDMA) call PhoneB, accept on PhoneB. 3128 PhoneA (WCDMA) call PhoneC, accept on PhoneC. 3129 Swap active call on PhoneA. 3130 Hangup call from PhoneC, check if call continues between AB. 3131 3132 """ 3133 ads = self.android_devices 3134 3135 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3136 ads=ads, 3137 num_swaps=1, 3138 phone_setup_a=phone_setup_voice_3g, 3139 phone_setup_b=phone_setup_voice_general, 3140 phone_setup_c=phone_setup_voice_general, 3141 verify_phone_a_network_subscription=is_phone_in_call_3g, 3142 verify_phone_b_network_subscription=None, 3143 verify_phone_c_network_subscription=None) 3144 3145 if call_ab_id is None or call_ac_id is None: 3146 return False 3147 3148 return _three_phone_hangup_call_verify_call_state(log=self.log, 3149 ad_hangup=ads[2], 3150 ad_verify=ads[0], 3151 call_id=call_ab_id, 3152 call_state=CALL_STATE_ACTIVE, 3153 ads_active=[ads[0], ads[1]]) 3154 3155 3156 @TelephonyBaseTest.tel_test_wrap 3157 @test_tracker_info(uuid="126f294e-590a-4392-8fbd-1b826cd97214") 3158 def test_wcdma_mo_mo_add_swap_once_drop_active(self): 3159 """Test swap feature in WCDMA call. 3160 3161 PhoneA (WCDMA) call PhoneB, accept on PhoneB. 3162 PhoneA (WCDMA) call PhoneC, accept on PhoneC. 3163 Swap active call on PhoneA. 3164 Hangup call from PhoneB, check if call continues between AC. 3165 3166 """ 3167 ads = self.android_devices 3168 3169 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3170 ads=ads, 3171 num_swaps=1, 3172 phone_setup_a=phone_setup_voice_3g, 3173 phone_setup_b=phone_setup_voice_general, 3174 phone_setup_c=phone_setup_voice_general, 3175 verify_phone_a_network_subscription=is_phone_in_call_3g, 3176 verify_phone_b_network_subscription=None, 3177 verify_phone_c_network_subscription=None) 3178 3179 if call_ab_id is None or call_ac_id is None: 3180 return False 3181 3182 return _three_phone_hangup_call_verify_call_state(log=self.log, 3183 ad_hangup=ads[1], 3184 ad_verify=ads[0], 3185 call_id=call_ac_id, 3186 call_state=_get_expected_call_state(ads[0]), 3187 ads_active=[ads[0], ads[2]]) 3188 3189 3190 @TelephonyBaseTest.tel_test_wrap 3191 @test_tracker_info(uuid="e5f36f28-ec2b-4958-8578-c0454ef2a8ad") 3192 def test_wcdma_mo_mt_add_swap_once_drop_held(self): 3193 """Test swap feature in WCDMA call. 3194 3195 PhoneA (WCDMA) call PhoneB, accept on PhoneB. 3196 PhoneC call PhoneA (WCDMA), accept on PhoneA. 3197 Swap active call on PhoneA. 3198 Hangup call from PhoneC, check if call continues between AB. 3199 3200 """ 3201 ads = self.android_devices 3202 3203 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 3204 ads=ads, 3205 num_swaps=1, 3206 phone_setup_a=phone_setup_voice_3g, 3207 phone_setup_b=phone_setup_voice_general, 3208 phone_setup_c=phone_setup_voice_general, 3209 verify_phone_a_network_subscription=is_phone_in_call_wcdma, 3210 verify_phone_b_network_subscription=None, 3211 verify_phone_c_network_subscription=None) 3212 3213 if call_ab_id is None or call_ac_id is None: 3214 return False 3215 3216 return _three_phone_hangup_call_verify_call_state(log=self.log, 3217 ad_hangup=ads[2], 3218 ad_verify=ads[0], 3219 call_id=call_ab_id, 3220 call_state=CALL_STATE_ACTIVE, 3221 ads_active=[ads[0], ads[1]]) 3222 3223 3224 @TelephonyBaseTest.tel_test_wrap 3225 @test_tracker_info(uuid="a2252ebe-3ee2-4b9e-b76b-6be68d6b2719") 3226 def test_wcdma_mo_mt_add_swap_once_drop_active(self): 3227 """Test swap feature in WCDMA call. 3228 3229 PhoneA (WCDMA) call PhoneB, accept on PhoneB. 3230 PhoneC call PhoneA (WCDMA), accept on PhoneA. 3231 Swap active call on PhoneA. 3232 Hangup call from PhoneB, check if call continues between AC. 3233 3234 """ 3235 ads = self.android_devices 3236 3237 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 3238 ads=ads, 3239 num_swaps=1, 3240 phone_setup_a=phone_setup_voice_3g, 3241 phone_setup_b=phone_setup_voice_general, 3242 phone_setup_c=phone_setup_voice_general, 3243 verify_phone_a_network_subscription=is_phone_in_call_wcdma, 3244 verify_phone_b_network_subscription=None, 3245 verify_phone_c_network_subscription=None) 3246 3247 if call_ab_id is None or call_ac_id is None: 3248 return False 3249 3250 return _three_phone_hangup_call_verify_call_state(log=self.log, 3251 ad_hangup=ads[1], 3252 ad_verify=ads[0], 3253 call_id=call_ac_id, 3254 call_state=_get_expected_call_state(ads[0]), 3255 ads_active=[ads[0], ads[2]]) 3256 3257 3258 @TelephonyBaseTest.tel_test_wrap 3259 @test_tracker_info(uuid="cba48f87-4026-422d-a760-f913d2763ee9") 3260 def test_csfb_wcdma_mo_mo_add_swap_twice_drop_held(self): 3261 """Test swap feature in CSFB WCDMA call. 3262 3263 PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. 3264 PhoneA (CSFB WCDMA) call PhoneC, accept on PhoneC. 3265 Swap active call on PhoneA. 3266 Swap active call on PhoneA. 3267 Hangup call from PhoneB, check if call continues between AC. 3268 3269 """ 3270 ads = self.android_devices 3271 3272 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3273 ads=ads, 3274 num_swaps=2, 3275 phone_setup_a=phone_setup_csfb, 3276 phone_setup_b=phone_setup_voice_general, 3277 phone_setup_c=phone_setup_voice_general, 3278 verify_phone_a_network_subscription=is_phone_in_call_csfb, 3279 verify_phone_b_network_subscription=None, 3280 verify_phone_c_network_subscription=None) 3281 3282 if call_ab_id is None or call_ac_id is None: 3283 return False 3284 3285 return _three_phone_hangup_call_verify_call_state(log=self.log, 3286 ad_hangup=ads[1], 3287 ad_verify=ads[0], 3288 call_id=call_ac_id, 3289 call_state=CALL_STATE_ACTIVE, 3290 ads_active=[ads[0], ads[2]]) 3291 3292 3293 @TelephonyBaseTest.tel_test_wrap 3294 @test_tracker_info(uuid="3e6bd083-ccae-4962-a3d7-4194ed685b64") 3295 def test_csfb_wcdma_mo_mo_add_swap_twice_drop_active(self): 3296 """Test swap feature in CSFB WCDMA call. 3297 3298 PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. 3299 PhoneA (CSFB WCDMA) call PhoneC, accept on PhoneC. 3300 Swap active call on PhoneA. 3301 Swap active call on PhoneA. 3302 Hangup call from PhoneC, check if call continues between AB. 3303 3304 """ 3305 ads = self.android_devices 3306 3307 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3308 ads=ads, 3309 num_swaps=2, 3310 phone_setup_a=phone_setup_csfb, 3311 phone_setup_b=phone_setup_voice_general, 3312 phone_setup_c=phone_setup_voice_general, 3313 verify_phone_a_network_subscription=is_phone_in_call_csfb, 3314 verify_phone_b_network_subscription=None, 3315 verify_phone_c_network_subscription=None) 3316 if call_ab_id is None or call_ac_id is None: 3317 return False 3318 3319 return _three_phone_hangup_call_verify_call_state(log=self.log, 3320 ad_hangup=ads[2], 3321 ad_verify=ads[0], 3322 call_id=call_ab_id, 3323 call_state=_get_expected_call_state(ads[0]), 3324 ads_active=[ads[0], ads[1]]) 3325 3326 3327 @TelephonyBaseTest.tel_test_wrap 3328 @test_tracker_info(uuid="a1972846-0bca-4583-a966-11ebf0670c04") 3329 def test_csfb_wcdma_mo_mt_add_swap_twice_drop_held(self): 3330 """Test swap feature in CSFB WCDMA call. 3331 3332 PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. 3333 PhoneC call PhoneA (CSFB WCDMA), accept on PhoneA. 3334 Swap active call on PhoneA. 3335 Swap active call on PhoneA. 3336 Hangup call from PhoneB, check if call continues between AC. 3337 3338 """ 3339 ads = self.android_devices 3340 3341 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 3342 ads=ads, 3343 num_swaps=2, 3344 phone_setup_a=phone_setup_csfb, 3345 phone_setup_b=phone_setup_voice_general, 3346 phone_setup_c=phone_setup_voice_general, 3347 verify_phone_a_network_subscription=is_phone_in_call_csfb, 3348 verify_phone_b_network_subscription=None, 3349 verify_phone_c_network_subscription=None) 3350 3351 if call_ab_id is None or call_ac_id is None: 3352 return False 3353 3354 return _three_phone_hangup_call_verify_call_state(log=self.log, 3355 ad_hangup=ads[1], 3356 ad_verify=ads[0], 3357 call_id=call_ac_id, 3358 call_state=CALL_STATE_ACTIVE, 3359 ads_active=[ads[0], ads[2]]) 3360 3361 3362 @TelephonyBaseTest.tel_test_wrap 3363 @test_tracker_info(uuid="98609dfd-07fb-4414-bf6e-46144205fe70") 3364 def test_csfb_wcdma_mo_mt_add_swap_twice_drop_active(self): 3365 """Test swap feature in CSFB WCDMA call. 3366 3367 PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. 3368 PhoneC call PhoneA (CSFB WCDMA), accept on PhoneA. 3369 Swap active call on PhoneA. 3370 Swap active call on PhoneA. 3371 Hangup call from PhoneC, check if call continues between AB. 3372 3373 """ 3374 ads = self.android_devices 3375 3376 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 3377 ads=ads, 3378 num_swaps=2, 3379 phone_setup_a=phone_setup_csfb, 3380 phone_setup_b=phone_setup_voice_general, 3381 phone_setup_c=phone_setup_voice_general, 3382 verify_phone_a_network_subscription=is_phone_in_call_csfb, 3383 verify_phone_b_network_subscription=None, 3384 verify_phone_c_network_subscription=None) 3385 if call_ab_id is None or call_ac_id is None: 3386 return False 3387 3388 return _three_phone_hangup_call_verify_call_state(log=self.log, 3389 ad_hangup=ads[2], 3390 ad_verify=ads[0], 3391 call_id=call_ab_id, 3392 call_state=_get_expected_call_state(ads[0]), 3393 ads_active=[ads[0], ads[1]]) 3394 3395 3396 @TelephonyBaseTest.tel_test_wrap 3397 @test_tracker_info(uuid="0c4c9b0b-ef7a-4e3d-9d31-dde721444820") 3398 def test_csfb_wcdma_mo_mo_add_swap_once_drop_held(self): 3399 """Test swap feature in CSFB WCDMA call. 3400 3401 PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. 3402 PhoneA (CSFB WCDMA) call PhoneC, accept on PhoneC. 3403 Swap active call on PhoneA. 3404 Hangup call from PhoneC, check if call continues between AB. 3405 3406 """ 3407 ads = self.android_devices 3408 3409 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3410 ads=ads, 3411 num_swaps=1, 3412 phone_setup_a=phone_setup_csfb, 3413 phone_setup_b=phone_setup_voice_general, 3414 phone_setup_c=phone_setup_voice_general, 3415 verify_phone_a_network_subscription=is_phone_in_call_csfb, 3416 verify_phone_b_network_subscription=None, 3417 verify_phone_c_network_subscription=None) 3418 if call_ab_id is None or call_ac_id is None: 3419 return False 3420 3421 return _three_phone_hangup_call_verify_call_state(log=self.log, 3422 ad_hangup=ads[2], 3423 ad_verify=ads[0], 3424 call_id=call_ab_id, 3425 call_state=CALL_STATE_ACTIVE, 3426 ads_active=[ads[0], ads[1]]) 3427 3428 3429 @TelephonyBaseTest.tel_test_wrap 3430 @test_tracker_info(uuid="ee0f7772-9e58-4a00-8eb5-a03b3e5baf40") 3431 def test_csfb_wcdma_mo_mo_add_swap_once_drop_active(self): 3432 """Test swap feature in CSFB WCDMA call. 3433 3434 PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. 3435 PhoneA (CSFB WCDMA) call PhoneC, accept on PhoneC. 3436 Swap active call on PhoneA. 3437 Hangup call from PhoneB, check if call continues between AC. 3438 3439 """ 3440 ads = self.android_devices 3441 3442 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3443 ads=ads, 3444 num_swaps=1, 3445 phone_setup_a=phone_setup_csfb, 3446 phone_setup_b=phone_setup_voice_general, 3447 phone_setup_c=phone_setup_voice_general, 3448 verify_phone_a_network_subscription=is_phone_in_call_csfb, 3449 verify_phone_b_network_subscription=None, 3450 verify_phone_c_network_subscription=None) 3451 if call_ab_id is None or call_ac_id is None: 3452 return False 3453 3454 return _three_phone_hangup_call_verify_call_state(log=self.log, 3455 ad_hangup=ads[1], 3456 ad_verify=ads[0], 3457 call_id=call_ac_id, 3458 call_state=_get_expected_call_state(ads[0]), 3459 ads_active=[ads[0], ads[2]]) 3460 3461 3462 @TelephonyBaseTest.tel_test_wrap 3463 @test_tracker_info(uuid="2f9e0120-c052-467b-be45-313ada433dce") 3464 def test_csfb_wcdma_mo_mt_add_swap_once_drop_held(self): 3465 """Test swap feature in CSFB WCDMA call. 3466 3467 PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. 3468 PhoneC call PhoneA (CSFB WCDMA), accept on PhoneA. 3469 Swap active call on PhoneA. 3470 Hangup call from PhoneC, check if call continues between AB. 3471 3472 """ 3473 ads = self.android_devices 3474 3475 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 3476 ads=ads, 3477 num_swaps=1, 3478 phone_setup_a=phone_setup_csfb, 3479 phone_setup_b=phone_setup_voice_general, 3480 phone_setup_c=phone_setup_voice_general, 3481 verify_phone_a_network_subscription=is_phone_in_call_csfb, 3482 verify_phone_b_network_subscription=None, 3483 verify_phone_c_network_subscription=None) 3484 3485 if call_ab_id is None or call_ac_id is None: 3486 return False 3487 3488 return _three_phone_hangup_call_verify_call_state(log=self.log, 3489 ad_hangup=ads[2], 3490 ad_verify=ads[0], 3491 call_id=call_ab_id, 3492 call_state=CALL_STATE_ACTIVE, 3493 ads_active=[ads[0], ads[1]]) 3494 3495 3496 @TelephonyBaseTest.tel_test_wrap 3497 @test_tracker_info(uuid="9110ad34-04e4-4d0f-9ac0-183ad9e6fa8a") 3498 def test_csfb_wcdma_mo_mt_add_swap_once_drop_active(self): 3499 """Test swap feature in CSFB WCDMA call. 3500 3501 PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. 3502 PhoneC call PhoneA (CSFB WCDMA), accept on PhoneA. 3503 Swap active call on PhoneA. 3504 Hangup call from PhoneB, check if call continues between AC. 3505 3506 """ 3507 ads = self.android_devices 3508 3509 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 3510 ads=ads, 3511 num_swaps=1, 3512 phone_setup_a=phone_setup_csfb, 3513 phone_setup_b=phone_setup_voice_general, 3514 phone_setup_c=phone_setup_voice_general, 3515 verify_phone_a_network_subscription=is_phone_in_call_csfb, 3516 verify_phone_b_network_subscription=None, 3517 verify_phone_c_network_subscription=None) 3518 if call_ab_id is None or call_ac_id is None: 3519 return False 3520 3521 return _three_phone_hangup_call_verify_call_state(log=self.log, 3522 ad_hangup=ads[1], 3523 ad_verify=ads[0], 3524 call_id=call_ac_id, 3525 call_state=_get_expected_call_state(ads[0]), 3526 ads_active=[ads[0], ads[2]]) 3527 3528 3529 @TelephonyBaseTest.tel_test_wrap 3530 @test_tracker_info(uuid="8cca4681-a5d4-472a-b0b5-46b79a6892a7") 3531 def test_volte_mo_mo_add_volte_swap_once_merge_drop_second_call_from_participant_no_cep( 3532 self): 3533 """ Test swap and merge features in VoLTE call. No CEP. 3534 3535 PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 3536 PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. 3537 Swap active call on PhoneA. 3538 On PhoneA, merge to conference call (No CEP). 3539 End call on PhoneC, verify call continues. 3540 End call on PhoneB, verify call end on PhoneA. 3541 3542 Returns: 3543 True if pass; False if fail. 3544 """ 3545 ads = self.android_devices 3546 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3547 ads=ads, 3548 num_swaps=1, 3549 phone_setup_a=phone_setup_volte, 3550 phone_setup_b=phone_setup_volte, 3551 phone_setup_c=phone_setup_volte, 3552 verify_phone_a_network_subscription=is_phone_in_call_volte, 3553 verify_phone_b_network_subscription=is_phone_in_call_volte, 3554 verify_phone_c_network_subscription=is_phone_in_call_volte) 3555 if call_ab_id is None or call_ac_id is None: 3556 return False 3557 3558 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 3559 call_ab_id, call_ac_id) 3560 3561 3562 @TelephonyBaseTest.tel_test_wrap 3563 @test_tracker_info(uuid="9168698e-987a-42e3-8bc6-2a433fa4b5e3") 3564 def test_volte_mo_mo_add_volte_swap_once_merge_drop_second_call_from_participant_cep( 3565 self): 3566 """ Test swap and merge features in VoLTE call. CEP enabled. 3567 3568 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 3569 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. 3570 3. Swap active call on PhoneA. 3571 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 3572 5. End call on PhoneC, verify call continues. 3573 6. End call on PhoneB, verify call end on PhoneA. 3574 3575 Returns: 3576 True if pass; False if fail. 3577 """ 3578 ads = self.android_devices 3579 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3580 ads=ads, 3581 num_swaps=1, 3582 phone_setup_a=phone_setup_volte, 3583 phone_setup_b=phone_setup_volte, 3584 phone_setup_c=phone_setup_volte, 3585 verify_phone_a_network_subscription=is_phone_in_call_volte, 3586 verify_phone_b_network_subscription=is_phone_in_call_volte, 3587 verify_phone_c_network_subscription=is_phone_in_call_volte) 3588 if call_ab_id is None or call_ac_id is None: 3589 return False 3590 3591 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 3592 call_ab_id, call_ac_id) 3593 3594 3595 @TelephonyBaseTest.tel_test_wrap 3596 @test_tracker_info(uuid="397bfab8-6651-4438-a603-22657fd69b84") 3597 def test_volte_mo_mo_add_volte_swap_once_merge_drop_second_call_from_host_cep( 3598 self): 3599 """ Test swap and merge features in VoLTE call. CEP enabled. 3600 3601 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 3602 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. 3603 3. Swap active call on PhoneA. 3604 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 3605 5. On PhoneA disconnect call between A-C, verify call continues. 3606 6. On PhoneA disconnect call between A-B, verify call continues. 3607 3608 Returns: 3609 True if pass; False if fail. 3610 """ 3611 ads = self.android_devices 3612 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3613 ads=ads, 3614 num_swaps=1, 3615 phone_setup_a=phone_setup_volte, 3616 phone_setup_b=phone_setup_volte, 3617 phone_setup_c=phone_setup_volte, 3618 verify_phone_a_network_subscription=is_phone_in_call_volte, 3619 verify_phone_b_network_subscription=is_phone_in_call_volte, 3620 verify_phone_c_network_subscription=is_phone_in_call_volte) 3621 if call_ab_id is None or call_ac_id is None: 3622 return False 3623 3624 return _test_ims_conference_merge_drop_second_call_from_host(self.log, self.android_devices, 3625 call_ab_id, call_ac_id) 3626 3627 3628 @TelephonyBaseTest.tel_test_wrap 3629 @test_tracker_info(uuid="ba766c4c-690f-407b-87f8-05a91783e224") 3630 def test_volte_mo_mo_add_volte_swap_once_merge_drop_first_call_from_participant_cep( 3631 self): 3632 """ Test swap and merge features in VoLTE call. CEP enabled. 3633 3634 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 3635 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. 3636 3. Swap active call on PhoneA. 3637 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 3638 5. End call on PhoneB, verify call continues. 3639 6. End call on PhoneC, verify call end on PhoneA. 3640 3641 Returns: 3642 True if pass; False if fail. 3643 """ 3644 ads = self.android_devices 3645 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3646 ads=ads, 3647 num_swaps=1, 3648 phone_setup_a=phone_setup_volte, 3649 phone_setup_b=phone_setup_volte, 3650 phone_setup_c=phone_setup_volte, 3651 verify_phone_a_network_subscription=is_phone_in_call_volte, 3652 verify_phone_b_network_subscription=is_phone_in_call_volte, 3653 verify_phone_c_network_subscription=is_phone_in_call_volte) 3654 if call_ab_id is None or call_ac_id is None: 3655 return False 3656 3657 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 3658 call_ab_id, call_ac_id) 3659 3660 3661 @TelephonyBaseTest.tel_test_wrap 3662 @test_tracker_info(uuid="1e45c749-6d4c-4d30-b104-bfcc37e13f1d") 3663 def test_volte_mo_mo_add_volte_swap_once_merge_drop_first_call_from_host_cep( 3664 self): 3665 """ Test swap and merge features in VoLTE call. CEP enabled. 3666 3667 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 3668 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. 3669 3. Swap active call on PhoneA. 3670 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 3671 5. On PhoneA disconnect call between A-B, verify call continues. 3672 6. On PhoneA disconnect call between A-C, verify call continues. 3673 3674 Returns: 3675 True if pass; False if fail. 3676 """ 3677 ads = self.android_devices 3678 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3679 ads=ads, 3680 num_swaps=1, 3681 phone_setup_a=phone_setup_volte, 3682 phone_setup_b=phone_setup_volte, 3683 phone_setup_c=phone_setup_volte, 3684 verify_phone_a_network_subscription=is_phone_in_call_volte, 3685 verify_phone_b_network_subscription=is_phone_in_call_volte, 3686 verify_phone_c_network_subscription=is_phone_in_call_volte) 3687 if call_ab_id is None or call_ac_id is None: 3688 return False 3689 3690 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 3691 call_ab_id, call_ac_id) 3692 3693 3694 @TelephonyBaseTest.tel_test_wrap 3695 @test_tracker_info(uuid="d6648e19-8001-483a-a83b-a92b638a7650") 3696 def test_volte_mo_mo_add_volte_swap_twice_merge_drop_second_call_from_participant_no_cep( 3697 self): 3698 """ Test swap and merge features in VoLTE call. No CEP. 3699 3700 PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 3701 PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. 3702 Swap active call on PhoneA. 3703 Swap active call on PhoneA. 3704 On PhoneA, merge to conference call (No CEP). 3705 End call on PhoneC, verify call continues. 3706 End call on PhoneB, verify call end on PhoneA. 3707 3708 Returns: 3709 True if pass; False if fail. 3710 """ 3711 ads = self.android_devices 3712 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3713 ads=ads, 3714 num_swaps=2, 3715 phone_setup_a=phone_setup_volte, 3716 phone_setup_b=phone_setup_volte, 3717 phone_setup_c=phone_setup_volte, 3718 verify_phone_a_network_subscription=is_phone_in_call_volte, 3719 verify_phone_b_network_subscription=is_phone_in_call_volte, 3720 verify_phone_c_network_subscription=is_phone_in_call_volte) 3721 if call_ab_id is None or call_ac_id is None: 3722 return False 3723 3724 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 3725 call_ab_id, call_ac_id) 3726 3727 3728 @TelephonyBaseTest.tel_test_wrap 3729 @test_tracker_info(uuid="18d3c304-ad04-409f-bfd4-fd3f01f9a51e") 3730 def test_volte_mo_mo_add_volte_swap_twice_merge_drop_second_call_from_participant_cep( 3731 self): 3732 """ Test swap and merge features in VoLTE call. CEP enabled. 3733 3734 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 3735 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. 3736 3. Swap active call on PhoneA. 3737 4. Swap active call on PhoneA. 3738 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 3739 6. End call on PhoneC, verify call continues. 3740 7. End call on PhoneB, verify call end on PhoneA. 3741 3742 Returns: 3743 True if pass; False if fail. 3744 """ 3745 ads = self.android_devices 3746 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3747 ads=ads, 3748 num_swaps=2, 3749 phone_setup_a=phone_setup_volte, 3750 phone_setup_b=phone_setup_volte, 3751 phone_setup_c=phone_setup_volte, 3752 verify_phone_a_network_subscription=is_phone_in_call_volte, 3753 verify_phone_b_network_subscription=is_phone_in_call_volte, 3754 verify_phone_c_network_subscription=is_phone_in_call_volte) 3755 if call_ab_id is None or call_ac_id is None: 3756 return False 3757 3758 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 3759 call_ab_id, call_ac_id) 3760 3761 3762 @TelephonyBaseTest.tel_test_wrap 3763 @test_tracker_info(uuid="f1e71550-3a45-45e4-88e4-7e4da919d58e") 3764 def test_volte_mo_mo_add_volte_swap_twice_merge_drop_second_call_from_host_cep( 3765 self): 3766 """ Test swap and merge features in VoLTE call. CEP enabled. 3767 3768 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 3769 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. 3770 3. Swap active call on PhoneA. 3771 4. Swap active call on PhoneA. 3772 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 3773 6. On PhoneA disconnect call between A-C, verify call continues. 3774 7. On PhoneA disconnect call between A-B, verify call continues. 3775 3776 Returns: 3777 True if pass; False if fail. 3778 """ 3779 ads = self.android_devices 3780 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3781 ads=ads, 3782 num_swaps=2, 3783 phone_setup_a=phone_setup_volte, 3784 phone_setup_b=phone_setup_volte, 3785 phone_setup_c=phone_setup_volte, 3786 verify_phone_a_network_subscription=is_phone_in_call_volte, 3787 verify_phone_b_network_subscription=is_phone_in_call_volte, 3788 verify_phone_c_network_subscription=is_phone_in_call_volte) 3789 if call_ab_id is None or call_ac_id is None: 3790 return False 3791 3792 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 3793 call_ab_id, call_ac_id) 3794 3795 3796 @TelephonyBaseTest.tel_test_wrap 3797 @test_tracker_info(uuid="60cc8bd1-4270-4b5c-9d29-9fa36a357503") 3798 def test_volte_mo_mo_add_volte_swap_twice_merge_drop_first_call_from_participant_cep( 3799 self): 3800 """ Test swap and merge features in VoLTE call. CEP enabled. 3801 3802 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 3803 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. 3804 3. Swap active call on PhoneA. 3805 4. Swap active call on PhoneA. 3806 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 3807 6. End call on PhoneB, verify call continues. 3808 7. End call on PhoneC, verify call end on PhoneA. 3809 3810 Returns: 3811 True if pass; False if fail. 3812 """ 3813 ads = self.android_devices 3814 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3815 ads=ads, 3816 num_swaps=2, 3817 phone_setup_a=phone_setup_volte, 3818 phone_setup_b=phone_setup_volte, 3819 phone_setup_c=phone_setup_volte, 3820 verify_phone_a_network_subscription=is_phone_in_call_volte, 3821 verify_phone_b_network_subscription=is_phone_in_call_volte, 3822 verify_phone_c_network_subscription=is_phone_in_call_volte) 3823 if call_ab_id is None or call_ac_id is None: 3824 return False 3825 3826 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 3827 call_ab_id, call_ac_id) 3828 3829 3830 @TelephonyBaseTest.tel_test_wrap 3831 @test_tracker_info(uuid="7d81c5f8-5ee1-4ad2-b08e-3e4c97748a66") 3832 def test_volte_mo_mo_add_volte_swap_twice_merge_drop_first_call_from_host_cep( 3833 self): 3834 """ Test swap and merge features in VoLTE call. CEP enabled. 3835 3836 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 3837 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. 3838 3. Swap active call on PhoneA. 3839 4. Swap active call on PhoneA. 3840 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 3841 6. On PhoneA disconnect call between A-B, verify call continues. 3842 7. On PhoneA disconnect call between A-C, verify call continues. 3843 3844 Returns: 3845 True if pass; False if fail. 3846 """ 3847 ads = self.android_devices 3848 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 3849 ads=ads, 3850 num_swaps=2, 3851 phone_setup_a=phone_setup_volte, 3852 phone_setup_b=phone_setup_volte, 3853 phone_setup_c=phone_setup_volte, 3854 verify_phone_a_network_subscription=is_phone_in_call_volte, 3855 verify_phone_b_network_subscription=is_phone_in_call_volte, 3856 verify_phone_c_network_subscription=is_phone_in_call_volte) 3857 if call_ab_id is None or call_ac_id is None: 3858 return False 3859 3860 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 3861 call_ab_id, call_ac_id) 3862 3863 3864 @TelephonyBaseTest.tel_test_wrap 3865 @test_tracker_info(uuid="5a887fde-8f9b-436b-ae8d-5ff97a884fc9") 3866 def test_volte_mo_mt_add_volte_swap_once_merge_drop_second_call_from_participant_no_cep( 3867 self): 3868 """ Test swap and merge features in VoLTE call. No CEP. 3869 3870 PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 3871 PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 3872 Swap active call on PhoneA. 3873 On PhoneA, merge to conference call (No CEP). 3874 End call on PhoneC, verify call continues. 3875 End call on PhoneB, verify call end on PhoneA. 3876 3877 Returns: 3878 True if pass; False if fail. 3879 """ 3880 ads = self.android_devices 3881 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 3882 ads=ads, 3883 num_swaps=1, 3884 phone_setup_a=phone_setup_volte, 3885 phone_setup_b=phone_setup_volte, 3886 phone_setup_c=phone_setup_volte, 3887 verify_phone_a_network_subscription=is_phone_in_call_volte, 3888 verify_phone_b_network_subscription=is_phone_in_call_volte, 3889 verify_phone_c_network_subscription=is_phone_in_call_volte) 3890 if call_ab_id is None or call_ac_id is None: 3891 return False 3892 3893 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 3894 call_ab_id, call_ac_id) 3895 3896 3897 @TelephonyBaseTest.tel_test_wrap 3898 @test_tracker_info(uuid="82574508-0d77-42cf-bf60-9fdddee24c42") 3899 def test_volte_mo_mt_add_volte_swap_once_merge_drop_second_call_from_participant_cep( 3900 self): 3901 """ Test swap and merge features in VoLTE call. CEP enabled. 3902 3903 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 3904 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 3905 3. Swap active call on PhoneA. 3906 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 3907 5. End call on PhoneC, verify call continues. 3908 6. End call on PhoneB, verify call end on PhoneA. 3909 3910 Returns: 3911 True if pass; False if fail. 3912 """ 3913 ads = self.android_devices 3914 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 3915 ads=ads, 3916 num_swaps=1, 3917 phone_setup_a=phone_setup_volte, 3918 phone_setup_b=phone_setup_volte, 3919 phone_setup_c=phone_setup_volte, 3920 verify_phone_a_network_subscription=is_phone_in_call_volte, 3921 verify_phone_b_network_subscription=is_phone_in_call_volte, 3922 verify_phone_c_network_subscription=is_phone_in_call_volte) 3923 if call_ab_id is None or call_ac_id is None: 3924 return False 3925 3926 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 3927 call_ab_id, call_ac_id) 3928 3929 3930 @TelephonyBaseTest.tel_test_wrap 3931 @test_tracker_info(uuid="8f30c425-c689-43b8-84f3-f24f7d9216f6") 3932 def test_volte_mo_mt_add_volte_swap_once_merge_drop_second_call_from_host_cep( 3933 self): 3934 """ Test swap and merge features in VoLTE call. CEP enabled. 3935 3936 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 3937 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 3938 3. Swap active call on PhoneA. 3939 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 3940 5. On PhoneA disconnect call between A-C, verify call continues. 3941 6. On PhoneA disconnect call between A-B, verify call continues. 3942 3943 Returns: 3944 True if pass; False if fail. 3945 """ 3946 ads = self.android_devices 3947 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 3948 ads=ads, 3949 num_swaps=1, 3950 phone_setup_a=phone_setup_volte, 3951 phone_setup_b=phone_setup_volte, 3952 phone_setup_c=phone_setup_volte, 3953 verify_phone_a_network_subscription=is_phone_in_call_volte, 3954 verify_phone_b_network_subscription=is_phone_in_call_volte, 3955 verify_phone_c_network_subscription=is_phone_in_call_volte) 3956 if call_ab_id is None or call_ac_id is None: 3957 return False 3958 3959 return _test_ims_conference_merge_drop_second_call_from_host(self.log, self.android_devices, 3960 call_ab_id, call_ac_id) 3961 3962 3963 @TelephonyBaseTest.tel_test_wrap 3964 @test_tracker_info(uuid="2a67845f-ccfd-4c06-aedc-9d6c1f022959") 3965 def test_volte_mo_mt_add_volte_swap_once_merge_drop_first_call_from_participant_cep( 3966 self): 3967 """ Test swap and merge features in VoLTE call. CEP enabled. 3968 3969 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 3970 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 3971 3. Swap active call on PhoneA. 3972 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 3973 5. End call on PhoneB, verify call continues. 3974 6. End call on PhoneC, verify call end on PhoneA. 3975 3976 Returns: 3977 True if pass; False if fail. 3978 """ 3979 ads = self.android_devices 3980 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 3981 ads=ads, 3982 num_swaps=1, 3983 phone_setup_a=phone_setup_volte, 3984 phone_setup_b=phone_setup_volte, 3985 phone_setup_c=phone_setup_volte, 3986 verify_phone_a_network_subscription=is_phone_in_call_volte, 3987 verify_phone_b_network_subscription=is_phone_in_call_volte, 3988 verify_phone_c_network_subscription=is_phone_in_call_volte) 3989 if call_ab_id is None or call_ac_id is None: 3990 return False 3991 3992 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 3993 call_ab_id, call_ac_id) 3994 3995 3996 @TelephonyBaseTest.tel_test_wrap 3997 @test_tracker_info(uuid="0a5d1305-0890-40c4-8c7a-070876423e16") 3998 def test_volte_mo_mt_add_volte_swap_once_merge_drop_first_call_from_host_cep( 3999 self): 4000 """ Test swap and merge features in VoLTE call. CEP enabled. 4001 4002 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 4003 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4004 3. Swap active call on PhoneA. 4005 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 4006 5. On PhoneA disconnect call between A-B, verify call continues. 4007 6. On PhoneA disconnect call between A-C, verify call continues. 4008 4009 Returns: 4010 True if pass; False if fail. 4011 """ 4012 ads = self.android_devices 4013 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 4014 ads=ads, 4015 num_swaps=1, 4016 phone_setup_a=phone_setup_volte, 4017 phone_setup_b=phone_setup_volte, 4018 phone_setup_c=phone_setup_volte, 4019 verify_phone_a_network_subscription=is_phone_in_call_volte, 4020 verify_phone_b_network_subscription=is_phone_in_call_volte, 4021 verify_phone_c_network_subscription=is_phone_in_call_volte) 4022 if call_ab_id is None or call_ac_id is None: 4023 return False 4024 4025 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 4026 call_ab_id, call_ac_id) 4027 4028 4029 @TelephonyBaseTest.tel_test_wrap 4030 @test_tracker_info(uuid="77bbb5ec-fd16-4031-b316-7f6563b79a3d") 4031 def test_volte_mo_mt_add_volte_swap_twice_merge_drop_second_call_from_participant_no_cep( 4032 self): 4033 """ Test swap and merge features in VoLTE call. No CEP. 4034 4035 PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 4036 PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4037 Swap active call on PhoneA. 4038 Swap active call on PhoneA. 4039 On PhoneA, merge to conference call (No CEP). 4040 End call on PhoneC, verify call continues. 4041 End call on PhoneB, verify call end on PhoneA. 4042 4043 Returns: 4044 True if pass; False if fail. 4045 """ 4046 ads = self.android_devices 4047 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 4048 ads=ads, 4049 num_swaps=2, 4050 phone_setup_a=phone_setup_volte, 4051 phone_setup_b=phone_setup_volte, 4052 phone_setup_c=phone_setup_volte, 4053 verify_phone_a_network_subscription=is_phone_in_call_volte, 4054 verify_phone_b_network_subscription=is_phone_in_call_volte, 4055 verify_phone_c_network_subscription=is_phone_in_call_volte) 4056 if call_ab_id is None or call_ac_id is None: 4057 return False 4058 4059 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 4060 call_ab_id, call_ac_id) 4061 4062 4063 @TelephonyBaseTest.tel_test_wrap 4064 @test_tracker_info(uuid="09cd41cd-821d-4d09-9b1e-7330dca77150") 4065 def test_volte_mo_mt_add_volte_swap_twice_merge_drop_second_call_from_participant_cep( 4066 self): 4067 """ Test swap and merge features in VoLTE call. CEP enabled. 4068 4069 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 4070 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4071 3. Swap active call on PhoneA. 4072 4. Swap active call on PhoneA. 4073 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 4074 6. End call on PhoneC, verify call continues. 4075 7. End call on PhoneB, verify call end on PhoneA. 4076 4077 Returns: 4078 True if pass; False if fail. 4079 """ 4080 ads = self.android_devices 4081 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 4082 ads=ads, 4083 num_swaps=2, 4084 phone_setup_a=phone_setup_volte, 4085 phone_setup_b=phone_setup_volte, 4086 phone_setup_c=phone_setup_volte, 4087 verify_phone_a_network_subscription=is_phone_in_call_volte, 4088 verify_phone_b_network_subscription=is_phone_in_call_volte, 4089 verify_phone_c_network_subscription=is_phone_in_call_volte) 4090 if call_ab_id is None or call_ac_id is None: 4091 return False 4092 4093 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 4094 call_ab_id, call_ac_id) 4095 4096 4097 @TelephonyBaseTest.tel_test_wrap 4098 @test_tracker_info(uuid="bdb2791e-92d0-44a3-aa8f-bd83e8159cb7") 4099 def test_volte_mo_mt_add_volte_swap_twice_merge_drop_second_call_from_host_cep( 4100 self): 4101 """ Test swap and merge features in VoLTE call. CEP enabled. 4102 4103 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 4104 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4105 3. Swap active call on PhoneA. 4106 4. Swap active call on PhoneA. 4107 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 4108 6. On PhoneA disconnect call between A-C, verify call continues. 4109 7. On PhoneA disconnect call between A-B, verify call continues. 4110 4111 Returns: 4112 True if pass; False if fail. 4113 """ 4114 ads = self.android_devices 4115 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 4116 ads=ads, 4117 num_swaps=2, 4118 phone_setup_a=phone_setup_volte, 4119 phone_setup_b=phone_setup_volte, 4120 phone_setup_c=phone_setup_volte, 4121 verify_phone_a_network_subscription=is_phone_in_call_volte, 4122 verify_phone_b_network_subscription=is_phone_in_call_volte, 4123 verify_phone_c_network_subscription=is_phone_in_call_volte) 4124 if call_ab_id is None or call_ac_id is None: 4125 return False 4126 4127 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 4128 call_ab_id, call_ac_id) 4129 4130 4131 @TelephonyBaseTest.tel_test_wrap 4132 @test_tracker_info(uuid="4f54e67d-7c7a-4952-ae09-f940094ec1ff") 4133 def test_volte_mo_mt_add_volte_swap_twice_merge_drop_first_call_from_participant_cep( 4134 self): 4135 """ Test swap and merge features in VoLTE call. CEP enabled. 4136 4137 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 4138 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4139 3. Swap active call on PhoneA. 4140 4. Swap active call on PhoneA. 4141 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 4142 6. End call on PhoneB, verify call continues. 4143 7. End call on PhoneC, verify call end on PhoneA. 4144 4145 Returns: 4146 True if pass; False if fail. 4147 """ 4148 ads = self.android_devices 4149 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 4150 ads=ads, 4151 num_swaps=2, 4152 phone_setup_a=phone_setup_volte, 4153 phone_setup_b=phone_setup_volte, 4154 phone_setup_c=phone_setup_volte, 4155 verify_phone_a_network_subscription=is_phone_in_call_volte, 4156 verify_phone_b_network_subscription=is_phone_in_call_volte, 4157 verify_phone_c_network_subscription=is_phone_in_call_volte) 4158 if call_ab_id is None or call_ac_id is None: 4159 return False 4160 4161 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 4162 call_ab_id, call_ac_id) 4163 4164 4165 @TelephonyBaseTest.tel_test_wrap 4166 @test_tracker_info(uuid="4ca28f9f-098f-4f71-b89c-9b2793aa2f5f") 4167 def test_volte_mo_mt_add_volte_swap_twice_merge_drop_first_call_from_host_cep( 4168 self): 4169 """ Test swap and merge features in VoLTE call. CEP enabled. 4170 4171 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. 4172 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4173 3. Swap active call on PhoneA. 4174 4. Swap active call on PhoneA. 4175 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 4176 6. On PhoneA disconnect call between A-B, verify call continues. 4177 7. On PhoneA disconnect call between A-C, verify call continues. 4178 4179 Returns: 4180 True if pass; False if fail. 4181 """ 4182 ads = self.android_devices 4183 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 4184 ads=ads, 4185 num_swaps=2, 4186 phone_setup_a=phone_setup_volte, 4187 phone_setup_b=phone_setup_volte, 4188 phone_setup_c=phone_setup_volte, 4189 verify_phone_a_network_subscription=is_phone_in_call_volte, 4190 verify_phone_b_network_subscription=is_phone_in_call_volte, 4191 verify_phone_c_network_subscription=is_phone_in_call_volte) 4192 if call_ab_id is None or call_ac_id is None: 4193 return False 4194 4195 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 4196 call_ab_id, call_ac_id) 4197 4198 4199 @TelephonyBaseTest.tel_test_wrap 4200 @test_tracker_info(uuid="f025c100-bb77-436e-b8ab-0c23a3d43318") 4201 def test_volte_mt_mt_add_volte_swap_once_merge_drop_second_call_from_participant_no_cep( 4202 self): 4203 """ Test swap and merge features in VoLTE call. No CEP. 4204 4205 PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4206 PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4207 Swap active call on PhoneA. 4208 On PhoneA, merge to conference call (No CEP). 4209 End call on PhoneC, verify call continues. 4210 End call on PhoneB, verify call end on PhoneA. 4211 4212 Returns: 4213 True if pass; False if fail. 4214 """ 4215 ads = self.android_devices 4216 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 4217 ads=ads, 4218 num_swaps=1, 4219 phone_setup_a=phone_setup_volte, 4220 phone_setup_b=phone_setup_volte, 4221 phone_setup_c=phone_setup_volte, 4222 verify_phone_a_network_subscription=is_phone_in_call_volte, 4223 verify_phone_b_network_subscription=is_phone_in_call_volte, 4224 verify_phone_c_network_subscription=is_phone_in_call_volte) 4225 if call_ab_id is None or call_ac_id is None: 4226 return False 4227 4228 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 4229 call_ab_id, call_ac_id) 4230 4231 4232 @TelephonyBaseTest.tel_test_wrap 4233 @test_tracker_info(uuid="b6cd6b06-0984-4588-892e-939d332bf147") 4234 def test_volte_mt_mt_add_volte_swap_once_merge_drop_second_call_from_participant_cep( 4235 self): 4236 """ Test swap and merge features in VoLTE call. CEP enabled. 4237 4238 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4239 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4240 3. Swap active call on PhoneA. 4241 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 4242 5. End call on PhoneC, verify call continues. 4243 6. End call on PhoneB, verify call end on PhoneA. 4244 4245 Returns: 4246 True if pass; False if fail. 4247 """ 4248 ads = self.android_devices 4249 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 4250 ads=ads, 4251 num_swaps=1, 4252 phone_setup_a=phone_setup_volte, 4253 phone_setup_b=phone_setup_volte, 4254 phone_setup_c=phone_setup_volte, 4255 verify_phone_a_network_subscription=is_phone_in_call_volte, 4256 verify_phone_b_network_subscription=is_phone_in_call_volte, 4257 verify_phone_c_network_subscription=is_phone_in_call_volte) 4258 if call_ab_id is None or call_ac_id is None: 4259 return False 4260 4261 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 4262 call_ab_id, call_ac_id) 4263 4264 4265 @TelephonyBaseTest.tel_test_wrap 4266 @test_tracker_info(uuid="f7bda827-79bd-41cc-b720-140f49b381d9") 4267 def test_volte_mt_mt_add_volte_swap_once_merge_drop_second_call_from_host_cep( 4268 self): 4269 """ Test swap and merge features in VoLTE call. CEP enabled. 4270 4271 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4272 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4273 3. Swap active call on PhoneA. 4274 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 4275 5. On PhoneA disconnect call between A-C, verify call continues. 4276 6. On PhoneA disconnect call between A-B, verify call continues. 4277 4278 Returns: 4279 True if pass; False if fail. 4280 """ 4281 ads = self.android_devices 4282 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 4283 ads=ads, 4284 num_swaps=1, 4285 phone_setup_a=phone_setup_volte, 4286 phone_setup_b=phone_setup_volte, 4287 phone_setup_c=phone_setup_volte, 4288 verify_phone_a_network_subscription=is_phone_in_call_volte, 4289 verify_phone_b_network_subscription=is_phone_in_call_volte, 4290 verify_phone_c_network_subscription=is_phone_in_call_volte) 4291 if call_ab_id is None or call_ac_id is None: 4292 return False 4293 4294 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 4295 call_ab_id, call_ac_id) 4296 4297 4298 @TelephonyBaseTest.tel_test_wrap 4299 @test_tracker_info(uuid="de8aae4e-c8fc-4996-9d0b-56c3904c9bb4") 4300 def test_volte_mt_mt_add_volte_swap_once_merge_drop_first_call_from_participant_cep( 4301 self): 4302 """ Test swap and merge features in VoLTE call. CEP enabled. 4303 4304 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4305 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4306 3. Swap active call on PhoneA. 4307 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 4308 5. End call on PhoneB, verify call continues. 4309 6. End call on PhoneC, verify call end on PhoneA. 4310 4311 Returns: 4312 True if pass; False if fail. 4313 """ 4314 ads = self.android_devices 4315 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 4316 ads=ads, 4317 num_swaps=1, 4318 phone_setup_a=phone_setup_volte, 4319 phone_setup_b=phone_setup_volte, 4320 phone_setup_c=phone_setup_volte, 4321 verify_phone_a_network_subscription=is_phone_in_call_volte, 4322 verify_phone_b_network_subscription=is_phone_in_call_volte, 4323 verify_phone_c_network_subscription=is_phone_in_call_volte) 4324 if call_ab_id is None or call_ac_id is None: 4325 return False 4326 4327 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 4328 call_ab_id, call_ac_id) 4329 4330 4331 @TelephonyBaseTest.tel_test_wrap 4332 @test_tracker_info(uuid="35d72ebf-1a99-4571-8993-2899925f5489") 4333 def test_volte_mt_mt_add_volte_swap_once_merge_drop_first_call_from_host_cep( 4334 self): 4335 """ Test swap and merge features in VoLTE call. CEP enabled. 4336 4337 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4338 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4339 3. Swap active call on PhoneA. 4340 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 4341 5. On PhoneA disconnect call between A-B, verify call continues. 4342 6. On PhoneA disconnect call between A-C, verify call continues. 4343 4344 Returns: 4345 True if pass; False if fail. 4346 """ 4347 ads = self.android_devices 4348 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 4349 ads=ads, 4350 num_swaps=1, 4351 phone_setup_a=phone_setup_volte, 4352 phone_setup_b=phone_setup_volte, 4353 phone_setup_c=phone_setup_volte, 4354 verify_phone_a_network_subscription=is_phone_in_call_volte, 4355 verify_phone_b_network_subscription=is_phone_in_call_volte, 4356 verify_phone_c_network_subscription=is_phone_in_call_volte) 4357 if call_ab_id is None or call_ac_id is None: 4358 return False 4359 4360 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 4361 call_ab_id, call_ac_id) 4362 4363 4364 @TelephonyBaseTest.tel_test_wrap 4365 @test_tracker_info(uuid="96c4c9d2-2e00-41a8-b4ce-3a9377262d36") 4366 def test_volte_mt_mt_add_volte_swap_twice_merge_drop_second_call_from_participant_no_cep( 4367 self): 4368 """ Test swap and merge features in VoLTE call. No CEP. 4369 4370 PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4371 PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4372 Swap active call on PhoneA. 4373 Swap active call on PhoneA. 4374 On PhoneA, merge to conference call (No CEP). 4375 End call on PhoneC, verify call continues. 4376 End call on PhoneB, verify call end on PhoneA. 4377 4378 Returns: 4379 True if pass; False if fail. 4380 """ 4381 ads = self.android_devices 4382 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 4383 ads=ads, 4384 num_swaps=2, 4385 phone_setup_a=phone_setup_volte, 4386 phone_setup_b=phone_setup_volte, 4387 phone_setup_c=phone_setup_volte, 4388 verify_phone_a_network_subscription=is_phone_in_call_volte, 4389 verify_phone_b_network_subscription=is_phone_in_call_volte, 4390 verify_phone_c_network_subscription=is_phone_in_call_volte) 4391 if call_ab_id is None or call_ac_id is None: 4392 return False 4393 4394 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 4395 call_ab_id, call_ac_id) 4396 4397 4398 @TelephonyBaseTest.tel_test_wrap 4399 @test_tracker_info(uuid="e1e0bb6c-c2d5-4566-80b1-46bfb0b95544") 4400 def test_volte_mt_mt_add_volte_swap_twice_merge_drop_second_call_from_participant_cep( 4401 self): 4402 """ Test swap and merge features in VoLTE call. CEP enabled. 4403 4404 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4405 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4406 3. Swap active call on PhoneA. 4407 4. Swap active call on PhoneA. 4408 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 4409 6. End call on PhoneC, verify call continues. 4410 7. End call on PhoneB, verify call end on PhoneA. 4411 4412 Returns: 4413 True if pass; False if fail. 4414 """ 4415 ads = self.android_devices 4416 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 4417 ads=ads, 4418 num_swaps=2, 4419 phone_setup_a=phone_setup_volte, 4420 phone_setup_b=phone_setup_volte, 4421 phone_setup_c=phone_setup_volte, 4422 verify_phone_a_network_subscription=is_phone_in_call_volte, 4423 verify_phone_b_network_subscription=is_phone_in_call_volte, 4424 verify_phone_c_network_subscription=is_phone_in_call_volte) 4425 if call_ab_id is None or call_ac_id is None: 4426 return False 4427 4428 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 4429 call_ab_id, call_ac_id) 4430 4431 4432 @TelephonyBaseTest.tel_test_wrap 4433 @test_tracker_info(uuid="764b5930-ba96-4901-b629-e753bc5c8d8e") 4434 def test_volte_mt_mt_add_volte_swap_twice_merge_drop_second_call_from_host_cep( 4435 self): 4436 """ Test swap and merge features in VoLTE call. CEP enabled. 4437 4438 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4439 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4440 3. Swap active call on PhoneA. 4441 4. Swap active call on PhoneA. 4442 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 4443 6. On PhoneA disconnect call between A-C, verify call continues. 4444 7. On PhoneA disconnect call between A-B, verify call continues. 4445 4446 Returns: 4447 True if pass; False if fail. 4448 """ 4449 ads = self.android_devices 4450 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 4451 ads=ads, 4452 num_swaps=2, 4453 phone_setup_a=phone_setup_volte, 4454 phone_setup_b=phone_setup_volte, 4455 phone_setup_c=phone_setup_volte, 4456 verify_phone_a_network_subscription=is_phone_in_call_volte, 4457 verify_phone_b_network_subscription=is_phone_in_call_volte, 4458 verify_phone_c_network_subscription=is_phone_in_call_volte) 4459 if call_ab_id is None or call_ac_id is None: 4460 return False 4461 4462 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 4463 call_ab_id, call_ac_id) 4464 4465 4466 @TelephonyBaseTest.tel_test_wrap 4467 @test_tracker_info(uuid="e03e52a1-7e7b-4a53-a496-3092a35153ae") 4468 def test_volte_mt_mt_add_volte_swap_twice_merge_drop_first_call_from_participant_cep( 4469 self): 4470 """ Test swap and merge features in VoLTE call. CEP enabled. 4471 4472 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4473 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4474 3. Swap active call on PhoneA. 4475 4. Swap active call on PhoneA. 4476 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 4477 6. End call on PhoneB, verify call continues. 4478 7. End call on PhoneC, verify call end on PhoneA. 4479 4480 Returns: 4481 True if pass; False if fail. 4482 """ 4483 ads = self.android_devices 4484 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 4485 ads=ads, 4486 num_swaps=2, 4487 phone_setup_a=phone_setup_volte, 4488 phone_setup_b=phone_setup_volte, 4489 phone_setup_c=phone_setup_volte, 4490 verify_phone_a_network_subscription=is_phone_in_call_volte, 4491 verify_phone_b_network_subscription=is_phone_in_call_volte, 4492 verify_phone_c_network_subscription=is_phone_in_call_volte) 4493 if call_ab_id is None or call_ac_id is None: 4494 return False 4495 4496 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 4497 call_ab_id, call_ac_id) 4498 4499 4500 @TelephonyBaseTest.tel_test_wrap 4501 @test_tracker_info(uuid="10a63692-56de-4563-b223-91e8814ddbc9") 4502 def test_volte_mt_mt_add_volte_swap_twice_merge_drop_first_call_from_host_cep( 4503 self): 4504 """ Test swap and merge features in VoLTE call. CEP enabled. 4505 4506 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4507 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. 4508 3. Swap active call on PhoneA. 4509 4. Swap active call on PhoneA. 4510 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 4511 6. On PhoneA disconnect call between A-B, verify call continues. 4512 7. On PhoneA disconnect call between A-C, verify call continues. 4513 4514 Returns: 4515 True if pass; False if fail. 4516 """ 4517 ads = self.android_devices 4518 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 4519 ads=ads, 4520 num_swaps=2, 4521 phone_setup_a=phone_setup_volte, 4522 phone_setup_b=phone_setup_volte, 4523 phone_setup_c=phone_setup_volte, 4524 verify_phone_a_network_subscription=is_phone_in_call_volte, 4525 verify_phone_b_network_subscription=is_phone_in_call_volte, 4526 verify_phone_c_network_subscription=is_phone_in_call_volte) 4527 if call_ab_id is None or call_ac_id is None: 4528 return False 4529 4530 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 4531 call_ab_id, call_ac_id) 4532 4533 4534 @TelephonyBaseTest.tel_test_wrap 4535 @test_tracker_info(uuid="cf4b1fe2-40d7-409b-a4ec-06bdb9a0d957") 4536 def test_volte_mo_mo_add_wcdma_swap_once_merge_drop_second_call_from_participant_no_cep( 4537 self): 4538 """ Test VoLTE Conference Call among three phones. No CEP. 4539 4540 PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 4541 PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. 4542 Swap active call on PhoneA. 4543 On PhoneA, merge to conference call (No CEP). 4544 End call on PhoneC, verify call continues. 4545 End call on PhoneB, verify call end on PhoneA. 4546 4547 Returns: 4548 True if pass; False if fail. 4549 """ 4550 ads = self.android_devices 4551 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 4552 ads=ads, 4553 num_swaps=1, 4554 phone_setup_a=phone_setup_volte, 4555 phone_setup_b=phone_setup_voice_3g, 4556 phone_setup_c=phone_setup_voice_3g, 4557 verify_phone_a_network_subscription=is_phone_in_call_volte, 4558 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 4559 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 4560 4561 if call_ab_id is None or call_ac_id is None: 4562 return False 4563 4564 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 4565 call_ab_id, call_ac_id) 4566 4567 4568 @TelephonyBaseTest.tel_test_wrap 4569 @test_tracker_info(uuid="fcc9dbd2-919d-4552-838c-2b672fb24b2b") 4570 def test_volte_mo_mo_add_wcdma_swap_once_merge_drop_second_call_from_participant_cep( 4571 self): 4572 """ Test swap and merge features in VoLTE call. CEP enabled. 4573 4574 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 4575 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. 4576 3. Swap active call on PhoneA. 4577 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 4578 5. End call on PhoneC, verify call continues. 4579 6. End call on PhoneB, verify call end on PhoneA. 4580 4581 Returns: 4582 True if pass; False if fail. 4583 """ 4584 ads = self.android_devices 4585 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 4586 ads=ads, 4587 num_swaps=1, 4588 phone_setup_a=phone_setup_volte, 4589 phone_setup_b=phone_setup_voice_3g, 4590 phone_setup_c=phone_setup_voice_3g, 4591 verify_phone_a_network_subscription=is_phone_in_call_volte, 4592 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 4593 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 4594 if call_ab_id is None or call_ac_id is None: 4595 return False 4596 4597 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 4598 call_ab_id, call_ac_id) 4599 4600 4601 @TelephonyBaseTest.tel_test_wrap 4602 @test_tracker_info(uuid="37021d31-4242-46a2-adbf-eb7b987e4a43") 4603 def test_volte_mo_mo_add_wcdma_swap_once_merge_drop_second_call_from_host_cep( 4604 self): 4605 """ Test swap and merge features in VoLTE call. CEP enabled. 4606 4607 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 4608 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. 4609 3. Swap active call on PhoneA. 4610 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 4611 5. On PhoneA disconnect call between A-C, verify call continues. 4612 6. On PhoneA disconnect call between A-B, verify call continues. 4613 4614 Returns: 4615 True if pass; False if fail. 4616 """ 4617 ads = self.android_devices 4618 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 4619 ads=ads, 4620 num_swaps=1, 4621 phone_setup_a=phone_setup_volte, 4622 phone_setup_b=phone_setup_voice_3g, 4623 phone_setup_c=phone_setup_voice_3g, 4624 verify_phone_a_network_subscription=is_phone_in_call_volte, 4625 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 4626 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 4627 if call_ab_id is None or call_ac_id is None: 4628 return False 4629 4630 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 4631 call_ab_id, call_ac_id) 4632 4633 4634 @TelephonyBaseTest.tel_test_wrap 4635 @test_tracker_info(uuid="cc362118-ccd1-4502-96f1-b3584b0c6bf3") 4636 def test_volte_mo_mo_add_wcdma_swap_once_merge_drop_first_call_from_participant_cep( 4637 self): 4638 """ Test swap and merge features in VoLTE call. CEP enabled. 4639 4640 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 4641 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. 4642 3. Swap active call on PhoneA. 4643 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 4644 5. End call on PhoneB, verify call continues. 4645 6. End call on PhoneC, verify call end on PhoneA. 4646 4647 Returns: 4648 True if pass; False if fail. 4649 """ 4650 ads = self.android_devices 4651 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 4652 ads=ads, 4653 num_swaps=1, 4654 phone_setup_a=phone_setup_volte, 4655 phone_setup_b=phone_setup_voice_3g, 4656 phone_setup_c=phone_setup_voice_3g, 4657 verify_phone_a_network_subscription=is_phone_in_call_volte, 4658 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 4659 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 4660 if call_ab_id is None or call_ac_id is None: 4661 return False 4662 4663 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 4664 call_ab_id, call_ac_id) 4665 4666 4667 @TelephonyBaseTest.tel_test_wrap 4668 @test_tracker_info(uuid="be57dd4f-020f-4491-9cd0-2461dcd0806b") 4669 def test_volte_mo_mo_add_wcdma_swap_once_merge_drop_first_call_from_host_cep( 4670 self): 4671 """ Test swap and merge features in VoLTE call. CEP enabled. 4672 4673 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 4674 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. 4675 3. Swap active call on PhoneA. 4676 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 4677 5. On PhoneA disconnect call between A-B, verify call continues. 4678 6. On PhoneA disconnect call between A-C, verify call continues. 4679 4680 Returns: 4681 True if pass; False if fail. 4682 """ 4683 ads = self.android_devices 4684 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 4685 ads=ads, 4686 num_swaps=1, 4687 phone_setup_a=phone_setup_volte, 4688 phone_setup_b=phone_setup_voice_3g, 4689 phone_setup_c=phone_setup_voice_3g, 4690 verify_phone_a_network_subscription=is_phone_in_call_volte, 4691 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 4692 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 4693 if call_ab_id is None or call_ac_id is None: 4694 return False 4695 4696 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 4697 call_ab_id, call_ac_id) 4698 4699 4700 @TelephonyBaseTest.tel_test_wrap 4701 @test_tracker_info(uuid="058425ca-7b25-4a85-a5c7-bfdcd7920f15") 4702 def test_volte_mo_mo_add_wcdma_swap_twice_merge_drop_second_call_from_participant_no_cep( 4703 self): 4704 """ Test VoLTE Conference Call among three phones. No CEP. 4705 4706 PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 4707 PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. 4708 Swap active call on PhoneA. 4709 Swap active call on PhoneA. 4710 On PhoneA, merge to conference call (No CEP). 4711 End call on PhoneC, verify call continues. 4712 End call on PhoneB, verify call end on PhoneA. 4713 4714 Returns: 4715 True if pass; False if fail. 4716 """ 4717 ads = self.android_devices 4718 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 4719 ads=ads, 4720 num_swaps=2, 4721 phone_setup_a=phone_setup_volte, 4722 phone_setup_b=phone_setup_voice_3g, 4723 phone_setup_c=phone_setup_voice_3g, 4724 verify_phone_a_network_subscription=is_phone_in_call_volte, 4725 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 4726 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 4727 if call_ab_id is None or call_ac_id is None: 4728 return False 4729 4730 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 4731 call_ab_id, call_ac_id) 4732 4733 4734 @TelephonyBaseTest.tel_test_wrap 4735 @test_tracker_info(uuid="5f691165-d099-419d-a50e-1547c8677f6b") 4736 def test_volte_mo_mo_add_wcdma_swap_twice_merge_drop_second_call_from_participant_cep( 4737 self): 4738 """ Test swap and merge features in VoLTE call. CEP enabled. 4739 4740 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 4741 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. 4742 3. Swap active call on PhoneA. 4743 4. Swap active call on PhoneA. 4744 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 4745 6. End call on PhoneC, verify call continues. 4746 7. End call on PhoneB, verify call end on PhoneA. 4747 4748 Returns: 4749 True if pass; False if fail. 4750 """ 4751 ads = self.android_devices 4752 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 4753 ads=ads, 4754 num_swaps=2, 4755 phone_setup_a=phone_setup_volte, 4756 phone_setup_b=phone_setup_voice_3g, 4757 phone_setup_c=phone_setup_voice_3g, 4758 verify_phone_a_network_subscription=is_phone_in_call_volte, 4759 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 4760 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 4761 if call_ab_id is None or call_ac_id is None: 4762 return False 4763 4764 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 4765 call_ab_id, call_ac_id) 4766 4767 4768 @TelephonyBaseTest.tel_test_wrap 4769 @test_tracker_info(uuid="4fc8459e-23c6-408a-a061-e8f182086dd6") 4770 def test_volte_mo_mo_add_wcdma_swap_twice_merge_drop_second_call_from_host_cep( 4771 self): 4772 """ Test swap and merge features in VoLTE call. CEP enabled. 4773 4774 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 4775 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. 4776 3. Swap active call on PhoneA. 4777 4. Swap active call on PhoneA. 4778 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 4779 6. On PhoneA disconnect call between A-C, verify call continues. 4780 7. On PhoneA disconnect call between A-B, verify call continues. 4781 4782 Returns: 4783 True if pass; False if fail. 4784 """ 4785 ads = self.android_devices 4786 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 4787 ads=ads, 4788 num_swaps=2, 4789 phone_setup_a=phone_setup_volte, 4790 phone_setup_b=phone_setup_voice_3g, 4791 phone_setup_c=phone_setup_voice_3g, 4792 verify_phone_a_network_subscription=is_phone_in_call_volte, 4793 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 4794 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 4795 if call_ab_id is None or call_ac_id is None: 4796 return False 4797 4798 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 4799 call_ab_id, call_ac_id) 4800 4801 4802 @TelephonyBaseTest.tel_test_wrap 4803 @test_tracker_info(uuid="3026802f-ddca-41e4-ae6f-db0c994613a7") 4804 def test_volte_mo_mo_add_wcdma_swap_twice_merge_drop_first_call_from_participant_cep( 4805 self): 4806 """ Test swap and merge features in VoLTE call. CEP enabled. 4807 4808 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 4809 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. 4810 3. Swap active call on PhoneA. 4811 4. Swap active call on PhoneA. 4812 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 4813 6. End call on PhoneB, verify call continues. 4814 7. End call on PhoneC, verify call end on PhoneA. 4815 4816 Returns: 4817 True if pass; False if fail. 4818 """ 4819 ads = self.android_devices 4820 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 4821 ads=ads, 4822 num_swaps=2, 4823 phone_setup_a=phone_setup_volte, 4824 phone_setup_b=phone_setup_voice_3g, 4825 phone_setup_c=phone_setup_voice_3g, 4826 verify_phone_a_network_subscription=is_phone_in_call_volte, 4827 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 4828 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 4829 if call_ab_id is None or call_ac_id is None: 4830 return False 4831 4832 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 4833 call_ab_id, call_ac_id) 4834 4835 4836 @TelephonyBaseTest.tel_test_wrap 4837 @test_tracker_info(uuid="5ce98774-66b4-4710-b0da-e43bb7fa1c0f") 4838 def test_volte_mo_mo_add_wcdma_swap_twice_merge_drop_first_call_from_host_cep( 4839 self): 4840 """ Test swap and merge features in VoLTE call. CEP enabled. 4841 4842 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 4843 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. 4844 3. Swap active call on PhoneA. 4845 4. Swap active call on PhoneA. 4846 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 4847 6. On PhoneA disconnect call between A-B, verify call continues. 4848 7. On PhoneA disconnect call between A-C, verify call continues. 4849 4850 Returns: 4851 True if pass; False if fail. 4852 """ 4853 ads = self.android_devices 4854 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 4855 ads=ads, 4856 num_swaps=2, 4857 phone_setup_a=phone_setup_volte, 4858 phone_setup_b=phone_setup_voice_3g, 4859 phone_setup_c=phone_setup_voice_3g, 4860 verify_phone_a_network_subscription=is_phone_in_call_volte, 4861 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 4862 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 4863 if call_ab_id is None or call_ac_id is None: 4864 return False 4865 4866 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 4867 call_ab_id, call_ac_id) 4868 4869 4870 @TelephonyBaseTest.tel_test_wrap 4871 @test_tracker_info(uuid="61766517-8762-4db3-9366-609c0f1a43b5") 4872 def test_volte_mo_mt_add_wcdma_swap_once_merge_drop_second_call_from_participant_no_cep( 4873 self): 4874 """ Test VoLTE Conference Call among three phones. No CEP. 4875 4876 PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 4877 PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 4878 Swap active call on PhoneA. 4879 On PhoneA, merge to conference call (No CEP). 4880 End call on PhoneC, verify call continues. 4881 End call on PhoneB, verify call end on PhoneA. 4882 4883 Returns: 4884 True if pass; False if fail. 4885 """ 4886 ads = self.android_devices 4887 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 4888 ads=ads, 4889 num_swaps=1, 4890 phone_setup_a=phone_setup_volte, 4891 phone_setup_b=phone_setup_voice_3g, 4892 phone_setup_c=phone_setup_voice_3g, 4893 verify_phone_a_network_subscription=is_phone_in_call_volte, 4894 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 4895 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 4896 4897 if call_ab_id is None or call_ac_id is None: 4898 return False 4899 4900 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 4901 call_ab_id, call_ac_id) 4902 4903 4904 @TelephonyBaseTest.tel_test_wrap 4905 @test_tracker_info(uuid="9a809168-1ca4-4672-a5b3-934aeed0f06c") 4906 def test_volte_mo_mt_add_wcdma_swap_once_merge_drop_second_call_from_participant_cep( 4907 self): 4908 """ Test swap and merge features in VoLTE call. CEP enabled. 4909 4910 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 4911 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 4912 3. Swap active call on PhoneA. 4913 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 4914 5. End call on PhoneC, verify call continues. 4915 6. End call on PhoneB, verify call end on PhoneA. 4916 4917 Returns: 4918 True if pass; False if fail. 4919 """ 4920 ads = self.android_devices 4921 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 4922 ads=ads, 4923 num_swaps=1, 4924 phone_setup_a=phone_setup_volte, 4925 phone_setup_b=phone_setup_voice_3g, 4926 phone_setup_c=phone_setup_voice_3g, 4927 verify_phone_a_network_subscription=is_phone_in_call_volte, 4928 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 4929 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 4930 if call_ab_id is None or call_ac_id is None: 4931 return False 4932 4933 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 4934 call_ab_id, call_ac_id) 4935 4936 4937 @TelephonyBaseTest.tel_test_wrap 4938 @test_tracker_info(uuid="4a146608-fbc7-4828-b2ee-77e08c19ddec") 4939 def test_volte_mo_mt_add_wcdma_swap_once_merge_drop_second_call_from_host_cep( 4940 self): 4941 """ Test swap and merge features in VoLTE call. CEP enabled. 4942 4943 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 4944 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 4945 3. Swap active call on PhoneA. 4946 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 4947 5. On PhoneA disconnect call between A-C, verify call continues. 4948 6. On PhoneA disconnect call between A-B, verify call continues. 4949 4950 Returns: 4951 True if pass; False if fail. 4952 """ 4953 ads = self.android_devices 4954 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 4955 ads=ads, 4956 num_swaps=1, 4957 phone_setup_a=phone_setup_volte, 4958 phone_setup_b=phone_setup_voice_3g, 4959 phone_setup_c=phone_setup_voice_3g, 4960 verify_phone_a_network_subscription=is_phone_in_call_volte, 4961 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 4962 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 4963 if call_ab_id is None or call_ac_id is None: 4964 return False 4965 4966 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 4967 call_ab_id, call_ac_id) 4968 4969 4970 @TelephonyBaseTest.tel_test_wrap 4971 @test_tracker_info(uuid="4a3d4c0b-912a-4922-a4a3-f0bdf600c376") 4972 def test_volte_mo_mt_add_wcdma_swap_once_merge_drop_first_call_from_participant_cep( 4973 self): 4974 """ Test swap and merge features in VoLTE call. CEP enabled. 4975 4976 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 4977 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 4978 3. Swap active call on PhoneA. 4979 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 4980 5. End call on PhoneB, verify call continues. 4981 6. End call on PhoneC, verify call end on PhoneA. 4982 4983 Returns: 4984 True if pass; False if fail. 4985 """ 4986 ads = self.android_devices 4987 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 4988 ads=ads, 4989 num_swaps=1, 4990 phone_setup_a=phone_setup_volte, 4991 phone_setup_b=phone_setup_voice_3g, 4992 phone_setup_c=phone_setup_voice_3g, 4993 verify_phone_a_network_subscription=is_phone_in_call_volte, 4994 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 4995 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 4996 if call_ab_id is None or call_ac_id is None: 4997 return False 4998 4999 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 5000 call_ab_id, call_ac_id) 5001 5002 5003 @TelephonyBaseTest.tel_test_wrap 5004 @test_tracker_info(uuid="614903e0-7091-4791-9af6-076799e43a97") 5005 def test_volte_mo_mt_add_wcdma_swap_once_merge_drop_first_call_from_host_cep( 5006 self): 5007 """ Test swap and merge features in VoLTE call. CEP enabled. 5008 5009 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 5010 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5011 3. Swap active call on PhoneA. 5012 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 5013 5. On PhoneA disconnect call between A-B, verify call continues. 5014 6. On PhoneA disconnect call between A-C, verify call continues. 5015 5016 Returns: 5017 True if pass; False if fail. 5018 """ 5019 ads = self.android_devices 5020 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 5021 ads=ads, 5022 num_swaps=1, 5023 phone_setup_a=phone_setup_volte, 5024 phone_setup_b=phone_setup_voice_3g, 5025 phone_setup_c=phone_setup_voice_3g, 5026 verify_phone_a_network_subscription=is_phone_in_call_volte, 5027 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5028 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5029 if call_ab_id is None or call_ac_id is None: 5030 return False 5031 5032 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 5033 call_ab_id, call_ac_id) 5034 5035 5036 @TelephonyBaseTest.tel_test_wrap 5037 @test_tracker_info(uuid="cea2ffc9-b8c8-46df-8f58-b606f3d352e2") 5038 def test_volte_mo_mt_add_wcdma_swap_twice_merge_drop_second_call_from_participant_no_cep( 5039 self): 5040 """ Test VoLTE Conference Call among three phones. No CEP. 5041 5042 PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 5043 PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5044 Swap active call on PhoneA. 5045 Swap active call on PhoneA. 5046 On PhoneA, merge to conference call (No CEP). 5047 End call on PhoneC, verify call continues. 5048 End call on PhoneB, verify call end on PhoneA. 5049 5050 Returns: 5051 True if pass; False if fail. 5052 """ 5053 ads = self.android_devices 5054 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 5055 ads=ads, 5056 num_swaps=2, 5057 phone_setup_a=phone_setup_volte, 5058 phone_setup_b=phone_setup_voice_3g, 5059 phone_setup_c=phone_setup_voice_3g, 5060 verify_phone_a_network_subscription=is_phone_in_call_volte, 5061 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5062 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5063 if call_ab_id is None or call_ac_id is None: 5064 return False 5065 5066 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 5067 call_ab_id, call_ac_id) 5068 5069 5070 @TelephonyBaseTest.tel_test_wrap 5071 @test_tracker_info(uuid="4b0e040a-f199-4dc4-9f98-eb923f79814e") 5072 def test_volte_mo_mt_add_wcdma_swap_twice_merge_drop_second_call_from_participant_cep( 5073 self): 5074 """ Test swap and merge features in VoLTE call. CEP enabled. 5075 5076 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 5077 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5078 3. Swap active call on PhoneA. 5079 4. Swap active call on PhoneA. 5080 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 5081 6. End call on PhoneC, verify call continues. 5082 7. End call on PhoneB, verify call end on PhoneA. 5083 5084 Returns: 5085 True if pass; False if fail. 5086 """ 5087 ads = self.android_devices 5088 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 5089 ads=ads, 5090 num_swaps=2, 5091 phone_setup_a=phone_setup_volte, 5092 phone_setup_b=phone_setup_voice_3g, 5093 phone_setup_c=phone_setup_voice_3g, 5094 verify_phone_a_network_subscription=is_phone_in_call_volte, 5095 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5096 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5097 if call_ab_id is None or call_ac_id is None: 5098 return False 5099 5100 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 5101 call_ab_id, call_ac_id) 5102 5103 5104 @TelephonyBaseTest.tel_test_wrap 5105 @test_tracker_info(uuid="56d45561-8e9b-40d4-bacc-a4c5ac4c2af0") 5106 def test_volte_mo_mt_add_wcdma_swap_twice_merge_drop_second_call_from_host_cep( 5107 self): 5108 """ Test swap and merge features in VoLTE call. CEP enabled. 5109 5110 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 5111 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5112 3. Swap active call on PhoneA. 5113 4. Swap active call on PhoneA. 5114 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 5115 6. On PhoneA disconnect call between A-C, verify call continues. 5116 7. On PhoneA disconnect call between A-B, verify call continues. 5117 5118 Returns: 5119 True if pass; False if fail. 5120 """ 5121 ads = self.android_devices 5122 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 5123 ads=ads, 5124 num_swaps=2, 5125 phone_setup_a=phone_setup_volte, 5126 phone_setup_b=phone_setup_voice_3g, 5127 phone_setup_c=phone_setup_voice_3g, 5128 verify_phone_a_network_subscription=is_phone_in_call_volte, 5129 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5130 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5131 if call_ab_id is None or call_ac_id is None: 5132 return False 5133 5134 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 5135 call_ab_id, call_ac_id) 5136 5137 5138 @TelephonyBaseTest.tel_test_wrap 5139 @test_tracker_info(uuid="790ccd53-07e6-471b-a224-b7eeb3a83116") 5140 def test_volte_mo_mt_add_wcdma_swap_twice_merge_drop_first_call_from_participant_cep( 5141 self): 5142 """ Test swap and merge features in VoLTE call. CEP enabled. 5143 5144 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 5145 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5146 3. Swap active call on PhoneA. 5147 4. Swap active call on PhoneA. 5148 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 5149 6. End call on PhoneB, verify call continues. 5150 7. End call on PhoneC, verify call end on PhoneA. 5151 5152 Returns: 5153 True if pass; False if fail. 5154 """ 5155 ads = self.android_devices 5156 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 5157 ads=ads, 5158 num_swaps=2, 5159 phone_setup_a=phone_setup_volte, 5160 phone_setup_b=phone_setup_voice_3g, 5161 phone_setup_c=phone_setup_voice_3g, 5162 verify_phone_a_network_subscription=is_phone_in_call_volte, 5163 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5164 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5165 if call_ab_id is None or call_ac_id is None: 5166 return False 5167 5168 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 5169 call_ab_id, call_ac_id) 5170 5171 5172 @TelephonyBaseTest.tel_test_wrap 5173 @test_tracker_info(uuid="84083401-22af-4568-929a-4fd29e39db5c") 5174 def test_volte_mo_mt_add_wcdma_swap_twice_merge_drop_first_call_from_host_cep( 5175 self): 5176 """ Test swap and merge features in VoLTE call. CEP enabled. 5177 5178 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. 5179 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5180 3. Swap active call on PhoneA. 5181 4. Swap active call on PhoneA. 5182 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 5183 6. On PhoneA disconnect call between A-B, verify call continues. 5184 7. On PhoneA disconnect call between A-C, verify call continues. 5185 5186 Returns: 5187 True if pass; False if fail. 5188 """ 5189 ads = self.android_devices 5190 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 5191 ads=ads, 5192 num_swaps=2, 5193 phone_setup_a=phone_setup_volte, 5194 phone_setup_b=phone_setup_voice_3g, 5195 phone_setup_c=phone_setup_voice_3g, 5196 verify_phone_a_network_subscription=is_phone_in_call_volte, 5197 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5198 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5199 if call_ab_id is None or call_ac_id is None: 5200 return False 5201 5202 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 5203 call_ab_id, call_ac_id) 5204 5205 5206 @TelephonyBaseTest.tel_test_wrap 5207 @test_tracker_info(uuid="11a3d9cd-6f05-4638-9683-3ee475e41fdb") 5208 def test_volte_mt_mt_add_wcdma_swap_once_merge_drop_second_call_from_participant_no_cep( 5209 self): 5210 """ Test VoLTE Conference Call among three phones. No CEP. 5211 5212 PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5213 PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5214 Swap active call on PhoneA. 5215 On PhoneA, merge to conference call (No CEP). 5216 End call on PhoneC, verify call continues. 5217 End call on PhoneB, verify call end on PhoneA. 5218 5219 Returns: 5220 True if pass; False if fail. 5221 """ 5222 ads = self.android_devices 5223 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 5224 ads=ads, 5225 num_swaps=1, 5226 phone_setup_a=phone_setup_volte, 5227 phone_setup_b=phone_setup_voice_3g, 5228 phone_setup_c=phone_setup_voice_3g, 5229 verify_phone_a_network_subscription=is_phone_in_call_volte, 5230 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5231 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5232 if call_ab_id is None or call_ac_id is None: 5233 return False 5234 5235 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 5236 call_ab_id, call_ac_id) 5237 5238 5239 @TelephonyBaseTest.tel_test_wrap 5240 @test_tracker_info(uuid="ff03b64e-fccd-45e3-8245-f8c6cb328212") 5241 def test_volte_mt_mt_add_wcdma_swap_once_merge_drop_second_call_from_participant_cep( 5242 self): 5243 """ Test swap and merge features in VoLTE call. CEP enabled. 5244 5245 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5246 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5247 3. Swap active call on PhoneA. 5248 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 5249 5. End call on PhoneC, verify call continues. 5250 6. End call on PhoneB, verify call end on PhoneA. 5251 5252 Returns: 5253 True if pass; False if fail. 5254 """ 5255 ads = self.android_devices 5256 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 5257 ads=ads, 5258 num_swaps=1, 5259 phone_setup_a=phone_setup_volte, 5260 phone_setup_b=phone_setup_voice_3g, 5261 phone_setup_c=phone_setup_voice_3g, 5262 verify_phone_a_network_subscription=is_phone_in_call_volte, 5263 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5264 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5265 if call_ab_id is None or call_ac_id is None: 5266 return False 5267 5268 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 5269 call_ab_id, call_ac_id) 5270 5271 5272 @TelephonyBaseTest.tel_test_wrap 5273 @test_tracker_info(uuid="c1822404-df8e-4b0c-b5d2-f70bb8c3119d") 5274 def test_volte_mt_mt_add_wcdma_swap_once_merge_drop_second_call_from_host_cep( 5275 self): 5276 """ Test swap and merge features in VoLTE call. CEP enabled. 5277 5278 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5279 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5280 3. Swap active call on PhoneA. 5281 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 5282 5. On PhoneA disconnect call between A-C, verify call continues. 5283 6. On PhoneA disconnect call between A-B, verify call continues. 5284 5285 Returns: 5286 True if pass; False if fail. 5287 """ 5288 ads = self.android_devices 5289 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 5290 ads=ads, 5291 num_swaps=1, 5292 phone_setup_a=phone_setup_volte, 5293 phone_setup_b=phone_setup_voice_3g, 5294 phone_setup_c=phone_setup_voice_3g, 5295 verify_phone_a_network_subscription=is_phone_in_call_volte, 5296 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5297 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5298 if call_ab_id is None or call_ac_id is None: 5299 return False 5300 5301 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 5302 call_ab_id, call_ac_id) 5303 5304 5305 @TelephonyBaseTest.tel_test_wrap 5306 @test_tracker_info(uuid="3ebf7526-57f9-47f5-9196-b483384d6759") 5307 def test_volte_mt_mt_add_wcdma_swap_once_merge_drop_first_call_from_participant_cep( 5308 self): 5309 """ Test swap and merge features in VoLTE call. CEP enabled. 5310 5311 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5312 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5313 3. Swap active call on PhoneA. 5314 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 5315 5. End call on PhoneB, verify call continues. 5316 6. End call on PhoneC, verify call end on PhoneA. 5317 5318 Returns: 5319 True if pass; False if fail. 5320 """ 5321 ads = self.android_devices 5322 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 5323 ads=ads, 5324 num_swaps=1, 5325 phone_setup_a=phone_setup_volte, 5326 phone_setup_b=phone_setup_voice_3g, 5327 phone_setup_c=phone_setup_voice_3g, 5328 verify_phone_a_network_subscription=is_phone_in_call_volte, 5329 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5330 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5331 if call_ab_id is None or call_ac_id is None: 5332 return False 5333 5334 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 5335 call_ab_id, call_ac_id) 5336 5337 5338 @TelephonyBaseTest.tel_test_wrap 5339 @test_tracker_info(uuid="8b8e664d-e872-493f-bff9-34a9500b2c25") 5340 def test_volte_mt_mt_add_wcdma_swap_once_merge_drop_first_call_from_host_cep( 5341 self): 5342 """ Test swap and merge features in VoLTE call. CEP enabled. 5343 5344 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5345 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5346 3. Swap active call on PhoneA. 5347 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 5348 5. On PhoneA disconnect call between A-B, verify call continues. 5349 6. On PhoneA disconnect call between A-C, verify call continues. 5350 5351 Returns: 5352 True if pass; False if fail. 5353 """ 5354 ads = self.android_devices 5355 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 5356 ads=ads, 5357 num_swaps=1, 5358 phone_setup_a=phone_setup_volte, 5359 phone_setup_b=phone_setup_voice_3g, 5360 phone_setup_c=phone_setup_voice_3g, 5361 verify_phone_a_network_subscription=is_phone_in_call_volte, 5362 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5363 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5364 if call_ab_id is None or call_ac_id is None: 5365 return False 5366 5367 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 5368 call_ab_id, call_ac_id) 5369 5370 5371 @TelephonyBaseTest.tel_test_wrap 5372 @test_tracker_info(uuid="aa4079dd-b5c6-41a3-ae0f-99f17fd0bae0") 5373 def test_volte_mt_mt_add_wcdma_swap_twice_merge_drop_second_call_from_participant_no_cep( 5374 self): 5375 """ Test VoLTE Conference Call among three phones. No CEP. 5376 5377 PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5378 PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5379 Swap active call on PhoneA. 5380 Swap active call on PhoneA. 5381 On PhoneA, merge to conference call (No CEP). 5382 End call on PhoneC, verify call continues. 5383 End call on PhoneB, verify call end on PhoneA. 5384 5385 Returns: 5386 True if pass; False if fail. 5387 """ 5388 ads = self.android_devices 5389 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 5390 ads=ads, 5391 num_swaps=2, 5392 phone_setup_a=phone_setup_volte, 5393 phone_setup_b=phone_setup_voice_3g, 5394 phone_setup_c=phone_setup_voice_3g, 5395 verify_phone_a_network_subscription=is_phone_in_call_volte, 5396 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5397 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5398 if call_ab_id is None or call_ac_id is None: 5399 return False 5400 5401 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 5402 call_ab_id, call_ac_id) 5403 5404 5405 @TelephonyBaseTest.tel_test_wrap 5406 @test_tracker_info(uuid="d9f32013-529c-46c3-9963-405ebbdbc537") 5407 def test_volte_mt_mt_add_wcdma_swap_twice_merge_drop_second_call_from_participant_cep( 5408 self): 5409 """ Test swap and merge features in VoLTE call. CEP enabled. 5410 5411 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5412 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5413 3. Swap active call on PhoneA. 5414 4. Swap active call on PhoneA. 5415 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 5416 6. End call on PhoneC, verify call continues. 5417 7. End call on PhoneB, verify call end on PhoneA. 5418 5419 Returns: 5420 True if pass; False if fail. 5421 """ 5422 ads = self.android_devices 5423 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 5424 ads=ads, 5425 num_swaps=2, 5426 phone_setup_a=phone_setup_volte, 5427 phone_setup_b=phone_setup_voice_3g, 5428 phone_setup_c=phone_setup_voice_3g, 5429 verify_phone_a_network_subscription=is_phone_in_call_volte, 5430 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5431 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5432 if call_ab_id is None or call_ac_id is None: 5433 return False 5434 5435 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 5436 call_ab_id, call_ac_id) 5437 5438 5439 @TelephonyBaseTest.tel_test_wrap 5440 @test_tracker_info(uuid="93331954-4403-47ec-8af3-1a791ea2fc8b") 5441 def test_volte_mt_mt_add_wcdma_swap_twice_merge_drop_second_call_from_host_cep( 5442 self): 5443 """ Test swap and merge features in VoLTE call. CEP enabled. 5444 5445 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5446 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5447 3. Swap active call on PhoneA. 5448 4. Swap active call on PhoneA. 5449 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 5450 6. On PhoneA disconnect call between A-C, verify call continues. 5451 7. On PhoneA disconnect call between A-B, verify call continues. 5452 5453 Returns: 5454 True if pass; False if fail. 5455 """ 5456 ads = self.android_devices 5457 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 5458 ads=ads, 5459 num_swaps=2, 5460 phone_setup_a=phone_setup_volte, 5461 phone_setup_b=phone_setup_voice_3g, 5462 phone_setup_c=phone_setup_voice_3g, 5463 verify_phone_a_network_subscription=is_phone_in_call_volte, 5464 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5465 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5466 if call_ab_id is None or call_ac_id is None: 5467 return False 5468 5469 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 5470 call_ab_id, call_ac_id) 5471 5472 5473 @TelephonyBaseTest.tel_test_wrap 5474 @test_tracker_info(uuid="c5a47e45-166b-46db-8b12-734d5d062509") 5475 def test_volte_mt_mt_add_wcdma_swap_twice_merge_drop_first_call_from_participant_cep( 5476 self): 5477 """ Test swap and merge features in VoLTE call. CEP enabled. 5478 5479 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5480 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5481 3. Swap active call on PhoneA. 5482 4. Swap active call on PhoneA. 5483 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 5484 6. End call on PhoneB, verify call continues. 5485 7. End call on PhoneC, verify call end on PhoneA. 5486 5487 Returns: 5488 True if pass; False if fail. 5489 """ 5490 ads = self.android_devices 5491 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 5492 ads=ads, 5493 num_swaps=2, 5494 phone_setup_a=phone_setup_volte, 5495 phone_setup_b=phone_setup_voice_3g, 5496 phone_setup_c=phone_setup_voice_3g, 5497 verify_phone_a_network_subscription=is_phone_in_call_volte, 5498 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5499 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5500 if call_ab_id is None or call_ac_id is None: 5501 return False 5502 5503 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 5504 call_ab_id, call_ac_id) 5505 5506 5507 @TelephonyBaseTest.tel_test_wrap 5508 @test_tracker_info(uuid="05bff9cf-492d-4511-ac0e-b54f1d5fa454") 5509 def test_volte_mt_mt_add_wcdma_swap_twice_merge_drop_first_call_from_host_cep( 5510 self): 5511 """ Test swap and merge features in VoLTE call. CEP enabled. 5512 5513 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5514 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. 5515 3. Swap active call on PhoneA. 5516 4. Swap active call on PhoneA. 5517 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 5518 6. On PhoneA disconnect call between A-B, verify call continues. 5519 7. On PhoneA disconnect call between A-C, verify call continues. 5520 5521 Returns: 5522 True if pass; False if fail. 5523 """ 5524 ads = self.android_devices 5525 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 5526 ads=ads, 5527 num_swaps=2, 5528 phone_setup_a=phone_setup_volte, 5529 phone_setup_b=phone_setup_voice_3g, 5530 phone_setup_c=phone_setup_voice_3g, 5531 verify_phone_a_network_subscription=is_phone_in_call_volte, 5532 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 5533 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 5534 if call_ab_id is None or call_ac_id is None: 5535 return False 5536 5537 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 5538 call_ab_id, call_ac_id) 5539 5540 5541 @TelephonyBaseTest.tel_test_wrap 5542 @test_tracker_info(uuid="f02add29-d61a-42f4-a1f0-271815e03c45") 5543 def test_volte_mo_mo_add_1x_swap_once_merge_drop_second_call_from_participant_no_cep( 5544 self): 5545 """ Test swap and merge features in VoLTE call. No CEP. 5546 5547 PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 5548 PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. 5549 Swap active call on PhoneA. 5550 On PhoneA, merge to conference call (No CEP). 5551 End call on PhoneC, verify call continues. 5552 End call on PhoneB, verify call end on PhoneA. 5553 5554 Returns: 5555 True if pass; False if fail. 5556 """ 5557 ads = self.android_devices 5558 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 5559 ads=ads, 5560 num_swaps=1, 5561 phone_setup_a=phone_setup_volte, 5562 phone_setup_b=phone_setup_voice_3g, 5563 phone_setup_c=phone_setup_voice_3g, 5564 verify_phone_a_network_subscription=is_phone_in_call_volte, 5565 verify_phone_b_network_subscription=is_phone_in_call_1x, 5566 verify_phone_c_network_subscription=is_phone_in_call_1x) 5567 5568 if call_ab_id is None or call_ac_id is None: 5569 return False 5570 5571 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 5572 call_ab_id, call_ac_id) 5573 5574 5575 @TelephonyBaseTest.tel_test_wrap 5576 @test_tracker_info(uuid="776821e8-259b-441e-a126-45a990e6e14d") 5577 def test_volte_mo_mo_add_1x_swap_once_merge_drop_second_call_from_participant_cep( 5578 self): 5579 """ Test swap and merge features in VoLTE call. CEP enabled. 5580 5581 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 5582 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. 5583 3. Swap active call on PhoneA. 5584 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 5585 5. End call on PhoneC, verify call continues. 5586 6. End call on PhoneB, verify call end on PhoneA. 5587 5588 Returns: 5589 True if pass; False if fail. 5590 """ 5591 ads = self.android_devices 5592 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 5593 ads=ads, 5594 num_swaps=1, 5595 phone_setup_a=phone_setup_volte, 5596 phone_setup_b=phone_setup_voice_3g, 5597 phone_setup_c=phone_setup_voice_3g, 5598 verify_phone_a_network_subscription=is_phone_in_call_volte, 5599 verify_phone_b_network_subscription=is_phone_in_call_1x, 5600 verify_phone_c_network_subscription=is_phone_in_call_1x) 5601 if call_ab_id is None or call_ac_id is None: 5602 return False 5603 5604 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 5605 call_ab_id, call_ac_id) 5606 5607 5608 @TelephonyBaseTest.tel_test_wrap 5609 @test_tracker_info(uuid="c542c999-d1c7-47f9-ba5c-50a582afa9e5") 5610 def test_volte_mo_mo_add_1x_swap_once_merge_drop_second_call_from_host_cep( 5611 self): 5612 """ Test swap and merge features in VoLTE call. CEP enabled. 5613 5614 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 5615 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. 5616 3. Swap active call on PhoneA. 5617 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 5618 5. On PhoneA disconnect call between A-C, verify call continues. 5619 6. On PhoneA disconnect call between A-B, verify call continues. 5620 5621 Returns: 5622 True if pass; False if fail. 5623 """ 5624 ads = self.android_devices 5625 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 5626 ads=ads, 5627 num_swaps=1, 5628 phone_setup_a=phone_setup_volte, 5629 phone_setup_b=phone_setup_voice_3g, 5630 phone_setup_c=phone_setup_voice_3g, 5631 verify_phone_a_network_subscription=is_phone_in_call_volte, 5632 verify_phone_b_network_subscription=is_phone_in_call_1x, 5633 verify_phone_c_network_subscription=is_phone_in_call_1x) 5634 if call_ab_id is None or call_ac_id is None: 5635 return False 5636 5637 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 5638 call_ab_id, call_ac_id) 5639 5640 5641 @TelephonyBaseTest.tel_test_wrap 5642 @test_tracker_info(uuid="d40c681a-1bce-4012-a30c-774e6698ba3a") 5643 def test_volte_mo_mo_add_1x_swap_once_merge_drop_first_call_from_participant_cep( 5644 self): 5645 """ Test swap and merge features in VoLTE call. CEP enabled. 5646 5647 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 5648 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. 5649 3. Swap active call on PhoneA. 5650 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 5651 5. End call on PhoneB, verify call continues. 5652 6. End call on PhoneC, verify call end on PhoneA. 5653 5654 Returns: 5655 True if pass; False if fail. 5656 """ 5657 ads = self.android_devices 5658 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 5659 ads=ads, 5660 num_swaps=1, 5661 phone_setup_a=phone_setup_volte, 5662 phone_setup_b=phone_setup_voice_3g, 5663 phone_setup_c=phone_setup_voice_3g, 5664 verify_phone_a_network_subscription=is_phone_in_call_volte, 5665 verify_phone_b_network_subscription=is_phone_in_call_1x, 5666 verify_phone_c_network_subscription=is_phone_in_call_1x) 5667 if call_ab_id is None or call_ac_id is None: 5668 return False 5669 5670 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 5671 call_ab_id, call_ac_id) 5672 5673 5674 @TelephonyBaseTest.tel_test_wrap 5675 @test_tracker_info(uuid="2805f272-5ada-4dd4-916a-36070905aec4") 5676 def test_volte_mo_mo_add_1x_swap_once_merge_drop_first_call_from_host_cep( 5677 self): 5678 """ Test swap and merge features in VoLTE call. CEP enabled. 5679 5680 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 5681 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. 5682 3. Swap active call on PhoneA. 5683 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 5684 5. On PhoneA disconnect call between A-B, verify call continues. 5685 6. On PhoneA disconnect call between A-C, verify call continues. 5686 5687 Returns: 5688 True if pass; False if fail. 5689 """ 5690 ads = self.android_devices 5691 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 5692 ads=ads, 5693 num_swaps=1, 5694 phone_setup_a=phone_setup_volte, 5695 phone_setup_b=phone_setup_voice_3g, 5696 phone_setup_c=phone_setup_voice_3g, 5697 verify_phone_a_network_subscription=is_phone_in_call_volte, 5698 verify_phone_b_network_subscription=is_phone_in_call_1x, 5699 verify_phone_c_network_subscription=is_phone_in_call_1x) 5700 if call_ab_id is None or call_ac_id is None: 5701 return False 5702 5703 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 5704 call_ab_id, call_ac_id) 5705 5706 5707 @TelephonyBaseTest.tel_test_wrap 5708 @test_tracker_info(uuid="eb2d010c-ec32-409b-8272-5b950e0076f9") 5709 def test_volte_mo_mo_add_1x_swap_twice_merge_drop_second_call_from_participant_no_cep( 5710 self): 5711 """ Test swap and merge features in VoLTE call. No CEP. 5712 5713 PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 5714 PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. 5715 Swap active call on PhoneA. 5716 Swap active call on PhoneA. 5717 On PhoneA, merge to conference call (No CEP). 5718 End call on PhoneC, verify call continues. 5719 End call on PhoneB, verify call end on PhoneA. 5720 5721 Returns: 5722 True if pass; False if fail. 5723 """ 5724 ads = self.android_devices 5725 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 5726 ads=ads, 5727 num_swaps=2, 5728 phone_setup_a=phone_setup_volte, 5729 phone_setup_b=phone_setup_voice_3g, 5730 phone_setup_c=phone_setup_voice_3g, 5731 verify_phone_a_network_subscription=is_phone_in_call_volte, 5732 verify_phone_b_network_subscription=is_phone_in_call_1x, 5733 verify_phone_c_network_subscription=is_phone_in_call_1x) 5734 if call_ab_id is None or call_ac_id is None: 5735 return False 5736 5737 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 5738 call_ab_id, call_ac_id) 5739 5740 5741 @TelephonyBaseTest.tel_test_wrap 5742 @test_tracker_info(uuid="03bb2fa3-8596-4c66-8adb-a3f9c9085420") 5743 def test_volte_mo_mo_add_1x_swap_twice_merge_drop_second_call_from_participant_cep( 5744 self): 5745 """ Test swap and merge features in VoLTE call. CEP enabled. 5746 5747 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 5748 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. 5749 3. Swap active call on PhoneA. 5750 4. Swap active call on PhoneA. 5751 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 5752 6. End call on PhoneC, verify call continues. 5753 7. End call on PhoneB, verify call end on PhoneA. 5754 5755 Returns: 5756 True if pass; False if fail. 5757 """ 5758 ads = self.android_devices 5759 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 5760 ads=ads, 5761 num_swaps=2, 5762 phone_setup_a=phone_setup_volte, 5763 phone_setup_b=phone_setup_voice_3g, 5764 phone_setup_c=phone_setup_voice_3g, 5765 verify_phone_a_network_subscription=is_phone_in_call_volte, 5766 verify_phone_b_network_subscription=is_phone_in_call_1x, 5767 verify_phone_c_network_subscription=is_phone_in_call_1x) 5768 if call_ab_id is None or call_ac_id is None: 5769 return False 5770 5771 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 5772 call_ab_id, call_ac_id) 5773 5774 5775 @TelephonyBaseTest.tel_test_wrap 5776 @test_tracker_info(uuid="df3bb0e7-7d72-487a-8cb8-fa75b86662ef") 5777 def test_volte_mo_mo_add_1x_swap_twice_merge_drop_second_call_from_host_cep( 5778 self): 5779 """ Test swap and merge features in VoLTE call. CEP enabled. 5780 5781 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 5782 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. 5783 3. Swap active call on PhoneA. 5784 4. Swap active call on PhoneA. 5785 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 5786 6. On PhoneA disconnect call between A-C, verify call continues. 5787 7. On PhoneA disconnect call between A-B, verify call continues. 5788 5789 Returns: 5790 True if pass; False if fail. 5791 """ 5792 ads = self.android_devices 5793 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 5794 ads=ads, 5795 num_swaps=2, 5796 phone_setup_a=phone_setup_volte, 5797 phone_setup_b=phone_setup_voice_3g, 5798 phone_setup_c=phone_setup_voice_3g, 5799 verify_phone_a_network_subscription=is_phone_in_call_volte, 5800 verify_phone_b_network_subscription=is_phone_in_call_1x, 5801 verify_phone_c_network_subscription=is_phone_in_call_1x) 5802 if call_ab_id is None or call_ac_id is None: 5803 return False 5804 5805 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 5806 call_ab_id, call_ac_id) 5807 5808 5809 @TelephonyBaseTest.tel_test_wrap 5810 @test_tracker_info(uuid="3893ce25-0fad-4eb8-af35-f9ebf47c0615") 5811 def test_volte_mo_mo_add_1x_swap_twice_merge_drop_first_call_from_participant_cep( 5812 self): 5813 """ Test swap and merge features in VoLTE call. CEP enabled. 5814 5815 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 5816 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. 5817 3. Swap active call on PhoneA. 5818 4. Swap active call on PhoneA. 5819 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 5820 6. End call on PhoneB, verify call continues. 5821 7. End call on PhoneC, verify call end on PhoneA. 5822 5823 Returns: 5824 True if pass; False if fail. 5825 """ 5826 ads = self.android_devices 5827 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 5828 ads=ads, 5829 num_swaps=2, 5830 phone_setup_a=phone_setup_volte, 5831 phone_setup_b=phone_setup_voice_3g, 5832 phone_setup_c=phone_setup_voice_3g, 5833 verify_phone_a_network_subscription=is_phone_in_call_volte, 5834 verify_phone_b_network_subscription=is_phone_in_call_1x, 5835 verify_phone_c_network_subscription=is_phone_in_call_1x) 5836 if call_ab_id is None or call_ac_id is None: 5837 return False 5838 5839 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 5840 call_ab_id, call_ac_id) 5841 5842 5843 @TelephonyBaseTest.tel_test_wrap 5844 @test_tracker_info(uuid="fcd0e656-4e98-40f2-b0ce-5ed90c7c4a81") 5845 def test_volte_mo_mo_add_1x_swap_twice_merge_drop_first_call_from_host_cep( 5846 self): 5847 """ Test swap and merge features in VoLTE call. CEP enabled. 5848 5849 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 5850 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. 5851 3. Swap active call on PhoneA. 5852 4. Swap active call on PhoneA. 5853 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 5854 6. On PhoneA disconnect call between A-B, verify call continues. 5855 7. On PhoneA disconnect call between A-C, verify call continues. 5856 5857 Returns: 5858 True if pass; False if fail. 5859 """ 5860 ads = self.android_devices 5861 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 5862 ads=ads, 5863 num_swaps=2, 5864 phone_setup_a=phone_setup_volte, 5865 phone_setup_b=phone_setup_voice_3g, 5866 phone_setup_c=phone_setup_voice_3g, 5867 verify_phone_a_network_subscription=is_phone_in_call_volte, 5868 verify_phone_b_network_subscription=is_phone_in_call_1x, 5869 verify_phone_c_network_subscription=is_phone_in_call_1x) 5870 if call_ab_id is None or call_ac_id is None: 5871 return False 5872 5873 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 5874 call_ab_id, call_ac_id) 5875 5876 5877 @TelephonyBaseTest.tel_test_wrap 5878 @test_tracker_info(uuid="009b5b45-d863-4891-8403-06656b542f3d") 5879 def test_volte_mo_mt_add_1x_swap_once_merge_drop_second_call_from_participant_no_cep( 5880 self): 5881 """ Test swap and merge features in VoLTE call. No CEP. 5882 5883 PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 5884 PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 5885 Swap active call on PhoneA. 5886 On PhoneA, merge to conference call (No CEP). 5887 End call on PhoneC, verify call continues. 5888 End call on PhoneB, verify call end on PhoneA. 5889 5890 Returns: 5891 True if pass; False if fail. 5892 """ 5893 ads = self.android_devices 5894 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 5895 ads=ads, 5896 num_swaps=1, 5897 phone_setup_a=phone_setup_volte, 5898 phone_setup_b=phone_setup_voice_3g, 5899 phone_setup_c=phone_setup_voice_3g, 5900 verify_phone_a_network_subscription=is_phone_in_call_volte, 5901 verify_phone_b_network_subscription=is_phone_in_call_1x, 5902 verify_phone_c_network_subscription=is_phone_in_call_1x) 5903 5904 if call_ab_id is None or call_ac_id is None: 5905 return False 5906 5907 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 5908 call_ab_id, call_ac_id) 5909 5910 5911 @TelephonyBaseTest.tel_test_wrap 5912 @test_tracker_info(uuid="8cfe9354-70db-4dbb-8950-b02e65f9d6ba") 5913 def test_volte_mo_mt_add_1x_swap_once_merge_drop_second_call_from_participant_cep( 5914 self): 5915 """ Test swap and merge features in VoLTE call. CEP enabled. 5916 5917 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 5918 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 5919 3. Swap active call on PhoneA. 5920 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 5921 5. End call on PhoneC, verify call continues. 5922 6. End call on PhoneB, verify call end on PhoneA. 5923 5924 Returns: 5925 True if pass; False if fail. 5926 """ 5927 ads = self.android_devices 5928 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 5929 ads=ads, 5930 num_swaps=1, 5931 phone_setup_a=phone_setup_volte, 5932 phone_setup_b=phone_setup_voice_3g, 5933 phone_setup_c=phone_setup_voice_3g, 5934 verify_phone_a_network_subscription=is_phone_in_call_volte, 5935 verify_phone_b_network_subscription=is_phone_in_call_1x, 5936 verify_phone_c_network_subscription=is_phone_in_call_1x) 5937 if call_ab_id is None or call_ac_id is None: 5938 return False 5939 5940 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 5941 call_ab_id, call_ac_id) 5942 5943 5944 @TelephonyBaseTest.tel_test_wrap 5945 @test_tracker_info(uuid="d2502a9f-b35a-4390-b664-300b8310b55a") 5946 def test_volte_mo_mt_add_1x_swap_once_merge_drop_second_call_from_host_cep( 5947 self): 5948 """ Test swap and merge features in VoLTE call. CEP enabled. 5949 5950 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 5951 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 5952 3. Swap active call on PhoneA. 5953 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 5954 5. On PhoneA disconnect call between A-C, verify call continues. 5955 6. On PhoneA disconnect call between A-B, verify call continues. 5956 5957 Returns: 5958 True if pass; False if fail. 5959 """ 5960 ads = self.android_devices 5961 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 5962 ads=ads, 5963 num_swaps=1, 5964 phone_setup_a=phone_setup_volte, 5965 phone_setup_b=phone_setup_voice_3g, 5966 phone_setup_c=phone_setup_voice_3g, 5967 verify_phone_a_network_subscription=is_phone_in_call_volte, 5968 verify_phone_b_network_subscription=is_phone_in_call_1x, 5969 verify_phone_c_network_subscription=is_phone_in_call_1x) 5970 if call_ab_id is None or call_ac_id is None: 5971 return False 5972 5973 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 5974 call_ab_id, call_ac_id) 5975 5976 5977 @TelephonyBaseTest.tel_test_wrap 5978 @test_tracker_info(uuid="1fbddcd1-2268-4c2c-a737-c0bcbdc842cb") 5979 def test_volte_mo_mt_add_1x_swap_once_merge_drop_first_call_from_participant_cep( 5980 self): 5981 """ Test swap and merge features in VoLTE call. CEP enabled. 5982 5983 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 5984 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 5985 3. Swap active call on PhoneA. 5986 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 5987 5. End call on PhoneB, verify call continues. 5988 6. End call on PhoneC, verify call end on PhoneA. 5989 5990 Returns: 5991 True if pass; False if fail. 5992 """ 5993 ads = self.android_devices 5994 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 5995 ads=ads, 5996 num_swaps=1, 5997 phone_setup_a=phone_setup_volte, 5998 phone_setup_b=phone_setup_voice_3g, 5999 phone_setup_c=phone_setup_voice_3g, 6000 verify_phone_a_network_subscription=is_phone_in_call_volte, 6001 verify_phone_b_network_subscription=is_phone_in_call_1x, 6002 verify_phone_c_network_subscription=is_phone_in_call_1x) 6003 if call_ab_id is None or call_ac_id is None: 6004 return False 6005 6006 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 6007 call_ab_id, call_ac_id) 6008 6009 6010 @TelephonyBaseTest.tel_test_wrap 6011 @test_tracker_info(uuid="91a33ca8-508b-457e-a72f-6fabd00b2453") 6012 def test_volte_mo_mt_add_1x_swap_once_merge_drop_first_call_from_host_cep( 6013 self): 6014 """ Test swap and merge features in VoLTE call. CEP enabled. 6015 6016 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 6017 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6018 3. Swap active call on PhoneA. 6019 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 6020 5. On PhoneA disconnect call between A-B, verify call continues. 6021 6. On PhoneA disconnect call between A-C, verify call continues. 6022 6023 Returns: 6024 True if pass; False if fail. 6025 """ 6026 ads = self.android_devices 6027 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 6028 ads=ads, 6029 num_swaps=1, 6030 phone_setup_a=phone_setup_volte, 6031 phone_setup_b=phone_setup_voice_3g, 6032 phone_setup_c=phone_setup_voice_3g, 6033 verify_phone_a_network_subscription=is_phone_in_call_volte, 6034 verify_phone_b_network_subscription=is_phone_in_call_1x, 6035 verify_phone_c_network_subscription=is_phone_in_call_1x) 6036 if call_ab_id is None or call_ac_id is None: 6037 return False 6038 6039 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 6040 call_ab_id, call_ac_id) 6041 6042 6043 @TelephonyBaseTest.tel_test_wrap 6044 @test_tracker_info(uuid="3642995f-4de0-4327-86d6-c9e37416c7e7") 6045 def test_volte_mo_mt_add_1x_swap_twice_merge_drop_second_call_from_participant_no_cep( 6046 self): 6047 """ Test swap and merge features in VoLTE call. No CEP. 6048 6049 PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 6050 PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6051 Swap active call on PhoneA. 6052 Swap active call on PhoneA. 6053 On PhoneA, merge to conference call (No CEP). 6054 End call on PhoneC, verify call continues. 6055 End call on PhoneB, verify call end on PhoneA. 6056 6057 Returns: 6058 True if pass; False if fail. 6059 """ 6060 ads = self.android_devices 6061 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 6062 ads=ads, 6063 num_swaps=2, 6064 phone_setup_a=phone_setup_volte, 6065 phone_setup_b=phone_setup_voice_3g, 6066 phone_setup_c=phone_setup_voice_3g, 6067 verify_phone_a_network_subscription=is_phone_in_call_volte, 6068 verify_phone_b_network_subscription=is_phone_in_call_1x, 6069 verify_phone_c_network_subscription=is_phone_in_call_1x) 6070 if call_ab_id is None or call_ac_id is None: 6071 return False 6072 6073 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 6074 call_ab_id, call_ac_id) 6075 6076 6077 @TelephonyBaseTest.tel_test_wrap 6078 @test_tracker_info(uuid="dd11f3af-09af-4fa3-9c90-8497bbd8687e") 6079 def test_volte_mo_mt_add_1x_swap_twice_merge_drop_second_call_from_participant_cep( 6080 self): 6081 """ Test swap and merge features in VoLTE call. CEP enabled. 6082 6083 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 6084 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6085 3. Swap active call on PhoneA. 6086 4. Swap active call on PhoneA. 6087 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 6088 6. End call on PhoneC, verify call continues. 6089 7. End call on PhoneB, verify call end on PhoneA. 6090 6091 Returns: 6092 True if pass; False if fail. 6093 """ 6094 ads = self.android_devices 6095 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 6096 ads=ads, 6097 num_swaps=2, 6098 phone_setup_a=phone_setup_volte, 6099 phone_setup_b=phone_setup_voice_3g, 6100 phone_setup_c=phone_setup_voice_3g, 6101 verify_phone_a_network_subscription=is_phone_in_call_volte, 6102 verify_phone_b_network_subscription=is_phone_in_call_1x, 6103 verify_phone_c_network_subscription=is_phone_in_call_1x) 6104 if call_ab_id is None or call_ac_id is None: 6105 return False 6106 6107 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 6108 call_ab_id, call_ac_id) 6109 6110 6111 @TelephonyBaseTest.tel_test_wrap 6112 @test_tracker_info(uuid="172360a1-47b2-430a-8a9c-cae6d29813b6") 6113 def test_volte_mo_mt_add_1x_swap_twice_merge_drop_second_call_from_host_cep( 6114 self): 6115 """ Test swap and merge features in VoLTE call. CEP enabled. 6116 6117 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 6118 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6119 3. Swap active call on PhoneA. 6120 4. Swap active call on PhoneA. 6121 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 6122 6. On PhoneA disconnect call between A-C, verify call continues. 6123 7. On PhoneA disconnect call between A-B, verify call continues. 6124 6125 Returns: 6126 True if pass; False if fail. 6127 """ 6128 ads = self.android_devices 6129 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 6130 ads=ads, 6131 num_swaps=2, 6132 phone_setup_a=phone_setup_volte, 6133 phone_setup_b=phone_setup_voice_3g, 6134 phone_setup_c=phone_setup_voice_3g, 6135 verify_phone_a_network_subscription=is_phone_in_call_volte, 6136 verify_phone_b_network_subscription=is_phone_in_call_1x, 6137 verify_phone_c_network_subscription=is_phone_in_call_1x) 6138 if call_ab_id is None or call_ac_id is None: 6139 return False 6140 6141 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 6142 call_ab_id, call_ac_id) 6143 6144 6145 @TelephonyBaseTest.tel_test_wrap 6146 @test_tracker_info(uuid="05d63cef-45b6-47df-8999-aac2e6ecfc9f") 6147 def test_volte_mo_mt_add_1x_swap_twice_merge_drop_first_call_from_participant_cep( 6148 self): 6149 """ Test swap and merge features in VoLTE call. CEP enabled. 6150 6151 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 6152 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6153 3. Swap active call on PhoneA. 6154 4. Swap active call on PhoneA. 6155 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 6156 6. End call on PhoneB, verify call continues. 6157 7. End call on PhoneC, verify call end on PhoneA. 6158 6159 Returns: 6160 True if pass; False if fail. 6161 """ 6162 ads = self.android_devices 6163 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 6164 ads=ads, 6165 num_swaps=2, 6166 phone_setup_a=phone_setup_volte, 6167 phone_setup_b=phone_setup_voice_3g, 6168 phone_setup_c=phone_setup_voice_3g, 6169 verify_phone_a_network_subscription=is_phone_in_call_volte, 6170 verify_phone_b_network_subscription=is_phone_in_call_1x, 6171 verify_phone_c_network_subscription=is_phone_in_call_1x) 6172 if call_ab_id is None or call_ac_id is None: 6173 return False 6174 6175 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 6176 call_ab_id, call_ac_id) 6177 6178 6179 @TelephonyBaseTest.tel_test_wrap 6180 @test_tracker_info(uuid="e02dfbc5-ffa3-4bff-a45e-1b3f4147005e") 6181 def test_volte_mo_mt_add_1x_swap_twice_merge_drop_first_call_from_host_cep( 6182 self): 6183 """ Test swap and merge features in VoLTE call. CEP enabled. 6184 6185 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. 6186 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6187 3. Swap active call on PhoneA. 6188 4. Swap active call on PhoneA. 6189 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 6190 6. On PhoneA disconnect call between A-B, verify call continues. 6191 7. On PhoneA disconnect call between A-C, verify call continues. 6192 6193 Returns: 6194 True if pass; False if fail. 6195 """ 6196 ads = self.android_devices 6197 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 6198 ads=ads, 6199 num_swaps=2, 6200 phone_setup_a=phone_setup_volte, 6201 phone_setup_b=phone_setup_voice_3g, 6202 phone_setup_c=phone_setup_voice_3g, 6203 verify_phone_a_network_subscription=is_phone_in_call_volte, 6204 verify_phone_b_network_subscription=is_phone_in_call_1x, 6205 verify_phone_c_network_subscription=is_phone_in_call_1x) 6206 if call_ab_id is None or call_ac_id is None: 6207 return False 6208 6209 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 6210 call_ab_id, call_ac_id) 6211 6212 6213 @TelephonyBaseTest.tel_test_wrap 6214 @test_tracker_info(uuid="55bb85a0-bfbd-4b97-bd94-871e82276875") 6215 def test_volte_mt_mt_add_1x_swap_once_merge_drop_second_call_from_participant_no_cep( 6216 self): 6217 """ Test swap and merge features in VoLTE call. No CEP. 6218 6219 PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. 6220 PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6221 Swap active call on PhoneA. 6222 On PhoneA, merge to conference call (No CEP). 6223 End call on PhoneC, verify call continues. 6224 End call on PhoneB, verify call end on PhoneA. 6225 6226 Returns: 6227 True if pass; False if fail. 6228 """ 6229 ads = self.android_devices 6230 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 6231 ads=ads, 6232 num_swaps=1, 6233 phone_setup_a=phone_setup_volte, 6234 phone_setup_b=phone_setup_voice_3g, 6235 phone_setup_c=phone_setup_voice_3g, 6236 verify_phone_a_network_subscription=is_phone_in_call_volte, 6237 verify_phone_b_network_subscription=is_phone_in_call_1x, 6238 verify_phone_c_network_subscription=is_phone_in_call_1x) 6239 6240 if call_ab_id is None or call_ac_id is None: 6241 return False 6242 6243 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 6244 call_ab_id, call_ac_id) 6245 6246 6247 @TelephonyBaseTest.tel_test_wrap 6248 @test_tracker_info(uuid="31e71818-3522-4e04-8f26-ad26683f16d1") 6249 def test_volte_mt_mt_add_1x_swap_once_merge_drop_second_call_from_participant_cep( 6250 self): 6251 """ Test swap and merge features in VoLTE call. CEP enabled. 6252 6253 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. 6254 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6255 3. Swap active call on PhoneA. 6256 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 6257 5. End call on PhoneC, verify call continues. 6258 6. End call on PhoneB, verify call end on PhoneA. 6259 6260 Returns: 6261 True if pass; False if fail. 6262 """ 6263 ads = self.android_devices 6264 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 6265 ads=ads, 6266 num_swaps=1, 6267 phone_setup_a=phone_setup_volte, 6268 phone_setup_b=phone_setup_voice_3g, 6269 phone_setup_c=phone_setup_voice_3g, 6270 verify_phone_a_network_subscription=is_phone_in_call_volte, 6271 verify_phone_b_network_subscription=is_phone_in_call_1x, 6272 verify_phone_c_network_subscription=is_phone_in_call_1x) 6273 if call_ab_id is None or call_ac_id is None: 6274 return False 6275 6276 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 6277 call_ab_id, call_ac_id) 6278 6279 6280 @TelephonyBaseTest.tel_test_wrap 6281 @test_tracker_info(uuid="0b51183d-3f92-4fe8-9487-64a72696a838") 6282 def test_volte_mt_mt_add_1x_swap_once_merge_drop_second_call_from_host_cep( 6283 self): 6284 """ Test swap and merge features in VoLTE call. CEP enabled. 6285 6286 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. 6287 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6288 3. Swap active call on PhoneA. 6289 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 6290 5. On PhoneA disconnect call between A-C, verify call continues. 6291 6. On PhoneA disconnect call between A-B, verify call continues. 6292 6293 Returns: 6294 True if pass; False if fail. 6295 """ 6296 ads = self.android_devices 6297 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 6298 ads=ads, 6299 num_swaps=1, 6300 phone_setup_a=phone_setup_volte, 6301 phone_setup_b=phone_setup_voice_3g, 6302 phone_setup_c=phone_setup_voice_3g, 6303 verify_phone_a_network_subscription=is_phone_in_call_volte, 6304 verify_phone_b_network_subscription=is_phone_in_call_1x, 6305 verify_phone_c_network_subscription=is_phone_in_call_1x) 6306 if call_ab_id is None or call_ac_id is None: 6307 return False 6308 6309 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 6310 call_ab_id, call_ac_id) 6311 6312 6313 @TelephonyBaseTest.tel_test_wrap 6314 @test_tracker_info(uuid="2aee2db7-fcd0-4b0a-aaa0-b946a14e91bd") 6315 def test_volte_mt_mt_add_1x_swap_once_merge_drop_first_call_from_participant_cep( 6316 self): 6317 """ Test swap and merge features in VoLTE call. CEP enabled. 6318 6319 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. 6320 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6321 3. Swap active call on PhoneA. 6322 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 6323 5. End call on PhoneB, verify call continues. 6324 6. End call on PhoneC, verify call end on PhoneA. 6325 6326 Returns: 6327 True if pass; False if fail. 6328 """ 6329 ads = self.android_devices 6330 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 6331 ads=ads, 6332 num_swaps=1, 6333 phone_setup_a=phone_setup_volte, 6334 phone_setup_b=phone_setup_voice_3g, 6335 phone_setup_c=phone_setup_voice_3g, 6336 verify_phone_a_network_subscription=is_phone_in_call_volte, 6337 verify_phone_b_network_subscription=is_phone_in_call_1x, 6338 verify_phone_c_network_subscription=is_phone_in_call_1x) 6339 if call_ab_id is None or call_ac_id is None: 6340 return False 6341 6342 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 6343 call_ab_id, call_ac_id) 6344 6345 6346 @TelephonyBaseTest.tel_test_wrap 6347 @test_tracker_info(uuid="d78bbe8e-6d39-4843-9eaa-47f06b6e9a95") 6348 def test_volte_mt_mt_add_1x_swap_once_merge_drop_first_call_from_host_cep( 6349 self): 6350 """ Test swap and merge features in VoLTE call. CEP enabled. 6351 6352 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. 6353 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6354 3. Swap active call on PhoneA. 6355 4. On PhoneA, merge to conference call (VoLTE CEP conference call). 6356 5. On PhoneA disconnect call between A-B, verify call continues. 6357 6. On PhoneA disconnect call between A-C, verify call continues. 6358 6359 Returns: 6360 True if pass; False if fail. 6361 """ 6362 ads = self.android_devices 6363 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 6364 ads=ads, 6365 num_swaps=1, 6366 phone_setup_a=phone_setup_volte, 6367 phone_setup_b=phone_setup_voice_3g, 6368 phone_setup_c=phone_setup_voice_3g, 6369 verify_phone_a_network_subscription=is_phone_in_call_volte, 6370 verify_phone_b_network_subscription=is_phone_in_call_1x, 6371 verify_phone_c_network_subscription=is_phone_in_call_1x) 6372 if call_ab_id is None or call_ac_id is None: 6373 return False 6374 6375 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 6376 call_ab_id, call_ac_id) 6377 6378 6379 @TelephonyBaseTest.tel_test_wrap 6380 @test_tracker_info(uuid="bbf4dcd8-3e1d-4ad0-a4fd-bf875e409f15") 6381 def test_volte_mt_mt_add_1x_swap_twice_merge_drop_second_call_from_participant_no_cep( 6382 self): 6383 """ Test swap and merge features in VoLTE call. No CEP. 6384 6385 PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. 6386 PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6387 Swap active call on PhoneA. 6388 Swap active call on PhoneA. 6389 On PhoneA, merge to conference call (No CEP). 6390 End call on PhoneC, verify call continues. 6391 End call on PhoneB, verify call end on PhoneA. 6392 6393 Returns: 6394 True if pass; False if fail. 6395 """ 6396 ads = self.android_devices 6397 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 6398 ads=ads, 6399 num_swaps=2, 6400 phone_setup_a=phone_setup_volte, 6401 phone_setup_b=phone_setup_voice_3g, 6402 phone_setup_c=phone_setup_voice_3g, 6403 verify_phone_a_network_subscription=is_phone_in_call_volte, 6404 verify_phone_b_network_subscription=is_phone_in_call_1x, 6405 verify_phone_c_network_subscription=is_phone_in_call_1x) 6406 if call_ab_id is None or call_ac_id is None: 6407 return False 6408 6409 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 6410 call_ab_id, call_ac_id) 6411 6412 6413 @TelephonyBaseTest.tel_test_wrap 6414 @test_tracker_info(uuid="c222e199-497b-4c34-886d-b35592ccd3b2") 6415 def test_volte_mt_mt_add_1x_swap_twice_merge_drop_second_call_from_participant_cep( 6416 self): 6417 """ Test swap and merge features in VoLTE call. CEP enabled. 6418 6419 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. 6420 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6421 3. Swap active call on PhoneA. 6422 4. Swap active call on PhoneA. 6423 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 6424 6. End call on PhoneC, verify call continues. 6425 7. End call on PhoneB, verify call end on PhoneA. 6426 6427 Returns: 6428 True if pass; False if fail. 6429 """ 6430 ads = self.android_devices 6431 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 6432 ads=ads, 6433 num_swaps=2, 6434 phone_setup_a=phone_setup_volte, 6435 phone_setup_b=phone_setup_voice_3g, 6436 phone_setup_c=phone_setup_voice_3g, 6437 verify_phone_a_network_subscription=is_phone_in_call_volte, 6438 verify_phone_b_network_subscription=is_phone_in_call_1x, 6439 verify_phone_c_network_subscription=is_phone_in_call_1x) 6440 if call_ab_id is None or call_ac_id is None: 6441 return False 6442 6443 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 6444 call_ab_id, call_ac_id) 6445 6446 6447 @TelephonyBaseTest.tel_test_wrap 6448 @test_tracker_info(uuid="d916eef5-b942-48fe-9c63-be7e283b197d") 6449 def test_volte_mt_mt_add_1x_swap_twice_merge_drop_second_call_from_host_cep( 6450 self): 6451 """ Test swap and merge features in VoLTE call. CEP enabled. 6452 6453 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. 6454 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6455 3. Swap active call on PhoneA. 6456 4. Swap active call on PhoneA. 6457 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 6458 6. On PhoneA disconnect call between A-C, verify call continues. 6459 7. On PhoneA disconnect call between A-B, verify call continues. 6460 6461 Returns: 6462 True if pass; False if fail. 6463 """ 6464 ads = self.android_devices 6465 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 6466 ads=ads, 6467 num_swaps=2, 6468 phone_setup_a=phone_setup_volte, 6469 phone_setup_b=phone_setup_voice_3g, 6470 phone_setup_c=phone_setup_voice_3g, 6471 verify_phone_a_network_subscription=is_phone_in_call_volte, 6472 verify_phone_b_network_subscription=is_phone_in_call_1x, 6473 verify_phone_c_network_subscription=is_phone_in_call_1x) 6474 if call_ab_id is None or call_ac_id is None: 6475 return False 6476 6477 return _test_ims_conference_merge_drop_second_call_from_host(self.log, self.android_devices, 6478 call_ab_id, call_ac_id) 6479 6480 6481 @TelephonyBaseTest.tel_test_wrap 6482 @test_tracker_info(uuid="e34acc9d-4389-4bc3-b34d-6b7e8173cadf") 6483 def test_volte_mt_mt_add_1x_swap_twice_merge_drop_first_call_from_participant_cep( 6484 self): 6485 """ Test swap and merge features in VoLTE call. CEP enabled. 6486 6487 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. 6488 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6489 3. Swap active call on PhoneA. 6490 4. Swap active call on PhoneA. 6491 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 6492 6. End call on PhoneB, verify call continues. 6493 7. End call on PhoneC, verify call end on PhoneA. 6494 6495 Returns: 6496 True if pass; False if fail. 6497 """ 6498 ads = self.android_devices 6499 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 6500 ads=ads, 6501 num_swaps=2, 6502 phone_setup_a=phone_setup_volte, 6503 hone_setup_b=phone_setup_voice_3g, 6504 phone_setup_c=phone_setup_voice_3g, 6505 verify_phone_a_network_subscription=is_phone_in_call_volte, 6506 verify_phone_b_network_subscription=is_phone_in_call_1x, 6507 verify_phone_c_network_subscription=is_phone_in_call_1x) 6508 if call_ab_id is None or call_ac_id is None: 6509 return False 6510 6511 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 6512 call_ab_id, call_ac_id) 6513 6514 6515 @TelephonyBaseTest.tel_test_wrap 6516 @test_tracker_info(uuid="31ddc496-03a5-407f-b925-8cea04dbdae0") 6517 def test_volte_mt_mt_add_1x_swap_twice_merge_drop_first_call_from_host_cep( 6518 self): 6519 """ Test swap and merge features in VoLTE call. CEP enabled. 6520 6521 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. 6522 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. 6523 3. Swap active call on PhoneA. 6524 4. Swap active call on PhoneA. 6525 5. On PhoneA, merge to conference call (VoLTE CEP conference call). 6526 6. On PhoneA disconnect call between A-B, verify call continues. 6527 7. On PhoneA disconnect call between A-C, verify call continues. 6528 6529 Returns: 6530 True if pass; False if fail. 6531 """ 6532 ads = self.android_devices 6533 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 6534 ads=ads, 6535 num_swaps=2, 6536 phone_setup_a=phone_setup_volte, 6537 phone_setup_b=phone_setup_voice_3g, 6538 phone_setup_c=phone_setup_voice_3g, 6539 verify_phone_a_network_subscription=is_phone_in_call_volte, 6540 verify_phone_b_network_subscription=is_phone_in_call_1x, 6541 verify_phone_c_network_subscription=is_phone_in_call_1x) 6542 if call_ab_id is None or call_ac_id is None: 6543 return False 6544 6545 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 6546 call_ab_id, call_ac_id) 6547 6548 6549 @TelephonyBaseTest.tel_test_wrap 6550 @test_tracker_info(uuid="35b6fa0f-780f-4436-93a0-70f9b79bc71a") 6551 def test_csfb_wcdma_mo_mo_add_swap_once_merge_drop(self): 6552 """Test swap and merge feature in CSFB WCDMA call. 6553 6554 PhoneA (CSFB_WCDMA) call PhoneB, accept on PhoneB. 6555 PhoneA (CSFB_WCDMA) call PhoneC, accept on PhoneC. 6556 Swap active call on PhoneA. 6557 Merge calls to conference on PhoneA. 6558 Hangup on PhoneC, check call continues between AB. 6559 Hangup on PhoneB, check A ends. 6560 6561 """ 6562 ads = self.android_devices 6563 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 6564 ads=ads, 6565 num_swaps=1, 6566 phone_setup_a=phone_setup_csfb, 6567 phone_setup_b=phone_setup_voice_general, 6568 phone_setup_c=phone_setup_voice_general, 6569 verify_phone_a_network_subscription=is_phone_in_call_csfb, 6570 verify_phone_b_network_subscription=None, 6571 verify_phone_c_network_subscription=None) 6572 if call_ab_id is None or call_ac_id is None: 6573 return False 6574 6575 return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) 6576 6577 6578 @TelephonyBaseTest.tel_test_wrap 6579 @test_tracker_info(uuid="9102ce81-0c17-4c7a-93df-f240245a07c5") 6580 def test_csfb_wcdma_mo_mo_add_swap_twice_merge_drop(self): 6581 """Test swap and merge feature in CSFB WCDMA call. 6582 6583 PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. 6584 PhoneA (CSFB WCDMA) call PhoneC, accept on PhoneC. 6585 Swap active call on PhoneA. 6586 Swap active call on PhoneA. 6587 Merge calls to conference on PhoneA. 6588 Hangup on PhoneC, check call continues between AB. 6589 Hangup on PhoneB, check A ends. 6590 6591 """ 6592 ads = self.android_devices 6593 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 6594 ads=ads, 6595 num_swaps=2, 6596 phone_setup_a=phone_setup_csfb, 6597 phone_setup_b=phone_setup_voice_general, 6598 phone_setup_c=phone_setup_voice_general, 6599 verify_phone_a_network_subscription=is_phone_in_call_csfb, 6600 verify_phone_b_network_subscription=None, 6601 verify_phone_c_network_subscription=None) 6602 if call_ab_id is None or call_ac_id is None: 6603 return False 6604 6605 return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) 6606 6607 6608 @TelephonyBaseTest.tel_test_wrap 6609 @test_tracker_info(uuid="b85ff5a7-f512-4585-a6b1-d92c9e7c25de") 6610 def test_csfb_wcdma_mo_mt_add_swap_once_merge_drop(self): 6611 """Test swap and merge feature in CSFB WCDMA call. 6612 6613 PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. 6614 PhoneC call PhoneA (CSFB WCDMA), accept on PhoneA. 6615 Swap active call on PhoneA. 6616 Merge calls to conference on PhoneA. 6617 Hangup on PhoneC, check call continues between AB. 6618 Hangup on PhoneB, check A ends. 6619 6620 """ 6621 ads = self.android_devices 6622 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 6623 ads=ads, 6624 num_swaps=1, 6625 phone_setup_a=phone_setup_csfb, 6626 phone_setup_b=phone_setup_voice_general, 6627 phone_setup_c=phone_setup_voice_general, 6628 verify_phone_a_network_subscription=is_phone_in_call_csfb, 6629 verify_phone_b_network_subscription=None, 6630 verify_phone_c_network_subscription=None) 6631 if call_ab_id is None or call_ac_id is None: 6632 return False 6633 6634 return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) 6635 6636 6637 @TelephonyBaseTest.tel_test_wrap 6638 @test_tracker_info(uuid="83a74ce1-9028-4e67-a417-599616ab0b2c") 6639 def test_csfb_wcdma_mo_mt_add_swap_twice_merge_drop(self): 6640 """Test swap and merge feature in CSFB WCDMA call. 6641 6642 PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. 6643 PhoneC call PhoneA (CSFB WCDMA), accept on PhoneA. 6644 Swap active call on PhoneA. 6645 Swap active call on PhoneA. 6646 Merge calls to conference on PhoneA. 6647 Hangup on PhoneC, check call continues between AB. 6648 Hangup on PhoneB, check A ends. 6649 6650 """ 6651 ads = self.android_devices 6652 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 6653 ads=ads, 6654 num_swaps=2, 6655 phone_setup_a=phone_setup_csfb, 6656 phone_setup_b=phone_setup_voice_general, 6657 phone_setup_c=phone_setup_voice_general, 6658 verify_phone_a_network_subscription=is_phone_in_call_csfb, 6659 verify_phone_b_network_subscription=None, 6660 verify_phone_c_network_subscription=None) 6661 if call_ab_id is None or call_ac_id is None: 6662 return False 6663 6664 return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) 6665 6666 6667 @TelephonyBaseTest.tel_test_wrap 6668 @test_tracker_info(uuid="835fe3d6-4e44-451c-9c5f-277b8842bf10") 6669 def test_wcdma_mo_mo_add_swap_once_merge_drop(self): 6670 """Test swap and merge feature in WCDMA call. 6671 6672 PhoneA (WCDMA) call PhoneB, accept on PhoneB. 6673 PhoneA (WCDMA) call PhoneC, accept on PhoneC. 6674 Swap active call on PhoneA. 6675 Merge calls to conference on PhoneA. 6676 Hangup on PhoneC, check call continues between AB. 6677 Hangup on PhoneB, check A ends. 6678 6679 """ 6680 ads = self.android_devices 6681 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 6682 ads=ads, 6683 num_swaps=1, 6684 phone_setup_a=phone_setup_voice_3g, 6685 phone_setup_b=phone_setup_voice_general, 6686 phone_setup_c=phone_setup_voice_general, 6687 verify_phone_a_network_subscription=is_phone_in_call_3g, 6688 verify_phone_b_network_subscription=None, 6689 verify_phone_c_network_subscription=None) 6690 if call_ab_id is None or call_ac_id is None: 6691 return False 6692 6693 return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) 6694 6695 6696 @TelephonyBaseTest.tel_test_wrap 6697 @test_tracker_info(uuid="627eb239-c6f6-47dc-b4cf-8d1796599417") 6698 def test_wcdma_mo_mo_add_swap_twice_merge_drop(self): 6699 """Test swap and merge feature in WCDMA call. 6700 6701 PhoneA (WCDMA) call PhoneB, accept on PhoneB. 6702 PhoneA (WCDMA) call PhoneC, accept on PhoneC. 6703 Swap active call on PhoneA. 6704 Swap active call on PhoneA. 6705 Merge calls to conference on PhoneA. 6706 Hangup on PhoneC, check call continues between AB. 6707 Hangup on PhoneB, check A ends. 6708 6709 """ 6710 ads = self.android_devices 6711 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 6712 ads=ads, 6713 num_swaps=2, 6714 phone_setup_a=phone_setup_voice_3g, 6715 phone_setup_b=phone_setup_voice_general, 6716 phone_setup_c=phone_setup_voice_general, 6717 verify_phone_a_network_subscription=is_phone_in_call_3g, 6718 verify_phone_b_network_subscription=None, 6719 verify_phone_c_network_subscription=None) 6720 if call_ab_id is None or call_ac_id is None: 6721 return False 6722 6723 return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) 6724 6725 6726 @TelephonyBaseTest.tel_test_wrap 6727 @test_tracker_info(uuid="571efb21-0ed5-4871-a7d8-f86d94e0ef25") 6728 def test_wcdma_mo_mt_add_swap_once_merge_drop(self): 6729 """Test swap and merge feature in WCDMA call. 6730 6731 PhoneA (WCDMA) call PhoneB, accept on PhoneB. 6732 PhoneC call PhoneA (WCDMA), accept on PhoneA. 6733 Swap active call on PhoneA. 6734 Merge calls to conference on PhoneA. 6735 Hangup on PhoneC, check call continues between AB. 6736 Hangup on PhoneB, check A ends. 6737 6738 """ 6739 ads = self.android_devices 6740 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 6741 ads=ads, 6742 num_swaps=1, 6743 phone_setup_a=phone_setup_voice_3g, 6744 phone_setup_b=phone_setup_voice_general, 6745 phone_setup_c=phone_setup_voice_general, 6746 verify_phone_a_network_subscription=is_phone_in_call_wcdma, 6747 verify_phone_b_network_subscription=None, 6748 verify_phone_c_network_subscription=None) 6749 6750 if call_ab_id is None or call_ac_id is None: 6751 return False 6752 6753 return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) 6754 6755 6756 @TelephonyBaseTest.tel_test_wrap 6757 @test_tracker_info(uuid="c981a90a-19b8-4582-a07c-1e9447fbe9ae") 6758 def test_wcdma_mo_mt_add_swap_twice_merge_drop(self): 6759 """Test swap and merge feature in WCDMA call. 6760 6761 PhoneA (WCDMA) call PhoneB, accept on PhoneB. 6762 PhoneC call PhoneA (WCDMA), accept on PhoneA. 6763 Swap active call on PhoneA. 6764 Swap active call on PhoneA. 6765 Merge calls to conference on PhoneA. 6766 Hangup on PhoneC, check call continues between AB. 6767 Hangup on PhoneB, check A ends. 6768 6769 """ 6770 ads = self.android_devices 6771 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 6772 ads=ads, 6773 num_swaps=2, 6774 phone_setup_a=phone_setup_voice_3g, 6775 phone_setup_b=phone_setup_voice_general, 6776 phone_setup_c=phone_setup_voice_general, 6777 verify_phone_a_network_subscription=is_phone_in_call_wcdma, 6778 verify_phone_b_network_subscription=None, 6779 verify_phone_c_network_subscription=None) 6780 if call_ab_id is None or call_ac_id is None: 6781 return False 6782 6783 return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) 6784 6785 6786 @TelephonyBaseTest.tel_test_wrap 6787 @test_tracker_info(uuid="23843881-320b-4071-bbc8-93cd1ee08408") 6788 def test_wcdma_mt_mt_add_swap_once_merge_drop(self): 6789 """Test swap and merge feature in WCDMA call. 6790 6791 PhoneB call PhoneA (WCDMA), accept on PhoneA. 6792 PhoneC call PhoneA (WCDMA), accept on PhoneA. 6793 Swap active call on PhoneA. 6794 Merge calls to conference on PhoneA. 6795 Hangup on PhoneC, check call continues between AB. 6796 Hangup on PhoneB, check A ends. 6797 6798 """ 6799 ads = self.android_devices 6800 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 6801 ads=ads, 6802 num_swaps=1, 6803 phone_setup_a=phone_setup_voice_3g, 6804 phone_setup_b=phone_setup_voice_general, 6805 phone_setup_c=phone_setup_voice_general, 6806 verify_phone_a_network_subscription=is_phone_in_call_3g, 6807 verify_phone_b_network_subscription=None, 6808 verify_phone_c_network_subscription=None) 6809 if call_ab_id is None or call_ac_id is None: 6810 return False 6811 6812 return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) 6813 6814 6815 @TelephonyBaseTest.tel_test_wrap 6816 @test_tracker_info(uuid="e447ec45-016c-4723-a954-4bde2e342cb2") 6817 def test_wcdma_mt_mt_add_swap_twice_merge_drop(self): 6818 """Test swap and merge feature in WCDMA call. 6819 6820 PhoneB call PhoneA (WCDMA), accept on PhoneA. 6821 PhoneC call PhoneA (WCDMA), accept on PhoneA. 6822 Swap active call on PhoneA. 6823 Swap active call on PhoneA. 6824 Merge calls to conference on PhoneA. 6825 Hangup on PhoneC, check call continues between AB. 6826 Hangup on PhoneB, check A ends. 6827 6828 """ 6829 ads = self.android_devices 6830 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 6831 ads=ads, 6832 num_swaps=2, 6833 phone_setup_a=phone_setup_voice_3g, 6834 phone_setup_b=phone_setup_voice_general, 6835 phone_setup_c=phone_setup_voice_general, 6836 verify_phone_a_network_subscription=is_phone_in_call_3g, 6837 verify_phone_b_network_subscription=None, 6838 verify_phone_c_network_subscription=None) 6839 if call_ab_id is None or call_ac_id is None: 6840 return False 6841 6842 return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) 6843 6844 6845 @TelephonyBaseTest.tel_test_wrap 6846 @test_tracker_info(uuid="876dc6b2-75c2-4fb5-92a0-35d3d29fbd42") 6847 def test_wcdma_mt_mt_add_merge_unmerge_swap_drop(self): 6848 """Test Conference Call Unmerge operation. 6849 6850 Phones A, B, C are in WCDMA Conference call (MT-MT-Merge) 6851 Unmerge call with B on PhoneA 6852 Check the number of Call Ids to be 2 on PhoneA 6853 Check if call AB is active since 'B' was unmerged 6854 Swap call to C 6855 Check if call AC is active 6856 Tear down calls 6857 All Phones should be in Idle 6858 6859 """ 6860 ads = self.android_devices 6861 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 6862 ads=ads, 6863 num_swaps=0, 6864 phone_setup_a=phone_setup_voice_3g, 6865 phone_setup_b=phone_setup_voice_general, 6866 phone_setup_c=phone_setup_voice_general, 6867 verify_phone_a_network_subscription=is_phone_in_call_3g, 6868 verify_phone_b_network_subscription=None, 6869 verify_phone_c_network_subscription=None) 6870 if call_ab_id is None or call_ac_id is None: 6871 self.log.error("Either of Call AB ID or Call AC ID is None.") 6872 return False 6873 6874 self.log.info("Step4: Merge to Conf Call and verify Conf Call.") 6875 ads[0].droid.telecomCallJoinCallsInConf(call_ab_id, call_ac_id) 6876 time.sleep(WAIT_TIME_IN_CALL) 6877 calls = ads[0].droid.telecomCallGetCallIds() 6878 ads[0].log.info("Calls in PhoneA %s", calls) 6879 if num_active_calls(self.log, ads[0]) != 3: 6880 ads[0].log.error("Total number of call ids is not 3.") 6881 return False 6882 call_conf_id = None 6883 for call_id in calls: 6884 if call_id != call_ab_id and call_id != call_ac_id: 6885 call_conf_id = call_id 6886 if not call_conf_id: 6887 self.log.error("Merge call fail, no new conference call id.") 6888 return False 6889 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 6890 return False 6891 6892 # Check if Conf Call currently active 6893 if ads[0].droid.telecomCallGetCallState( 6894 call_conf_id) != CALL_STATE_ACTIVE: 6895 ads[0].log.error( 6896 "Call_id: %s, state: %s, expected: STATE_ACTIVE", call_conf_id, 6897 ads[0].droid.telecomCallGetCallState(call_conf_id)) 6898 return False 6899 6900 # Unmerge 6901 self.log.info("Step5: UnMerge Conf Call into individual participants.") 6902 ads[0].droid.telecomCallSplitFromConf(call_ab_id) 6903 time.sleep(WAIT_TIME_IN_CALL) 6904 calls = ads[0].droid.telecomCallGetCallIds() 6905 ads[0].log.info("Calls in PhoneA %s", calls) 6906 6907 # Are there 2 calls? 6908 if num_active_calls(self.log, ads[0]) != 2: 6909 ads[0].log.error("Total number of call ids is not 2") 6910 return False 6911 6912 # Unmerged calls not dropped? 6913 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 6914 self.log.error("Either Call_AB or Call_AC was dropped") 6915 return False 6916 6917 # Unmerged call in call state ACTIVE? 6918 if ads[0].droid.telecomCallGetCallState( 6919 call_ab_id) != CALL_STATE_ACTIVE: 6920 ads[0].log.error("Call_id: %s, state:%s, expected: STATE_ACTIVE", 6921 call_ab_id, 6922 ads[0].droid.telecomCallGetCallState(call_ab_id)) 6923 return False 6924 6925 # Swap call 6926 self.log.info("Step6: Swap call and see if Call_AC is ACTIVE.") 6927 num_swaps = 1 6928 if not swap_calls(self.log, ads, call_ac_id, call_ab_id, num_swaps): 6929 self.log.error("Failed to swap calls.") 6930 return False 6931 6932 # Other call in call state ACTIVE? 6933 if ads[0].droid.telecomCallGetCallState( 6934 call_ac_id) != CALL_STATE_ACTIVE: 6935 ads[0].log.error("Call_id: %s, state: %s, expected: STATE_ACTIVE", 6936 call_ac_id, 6937 ads[0].droid.telecomCallGetCallState(call_ac_id)) 6938 return False 6939 6940 # All calls still CONNECTED? 6941 return _three_phone_hangup_call_verify_call_state(log=self.log, 6942 ad_hangup=ads[2], 6943 ad_verify=ads[0], 6944 call_id=call_ab_id, 6945 call_state=_get_expected_call_state(ads[0]), 6946 ads_active=[ads[0], ads[1]]) 6947 6948 6949 @TelephonyBaseTest.tel_test_wrap 6950 @test_tracker_info(uuid="63da439e-23f3-4c3c-9e7e-3af6500342c5") 6951 def test_epdg_mo_mo_add_epdg_merge_drop_wfc_wifi_only(self): 6952 """ Test Conf Call among three phones. 6953 6954 Call from PhoneA (epdg) to PhoneB (epdg), accept on PhoneB. 6955 Call from PhoneA (epdg) to PhoneC (epdg), accept on PhoneC. 6956 On PhoneA, merge to conference call. 6957 End call on PhoneC, verify call continues. 6958 End call on PhoneB, verify call end on PhoneA. 6959 6960 Returns: 6961 True if pass; False if fail. 6962 """ 6963 ads = self.android_devices 6964 6965 tasks = [(phone_setup_iwlan, 6966 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 6967 self.wifi_network_ssid, self.wifi_network_pass)), 6968 (phone_setup_iwlan, 6969 (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, 6970 self.wifi_network_ssid, self.wifi_network_pass)), 6971 (phone_setup_iwlan, 6972 (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, 6973 self.wifi_network_ssid, self.wifi_network_pass))] 6974 if not multithread_func(self.log, tasks): 6975 self.log.error("Phone Failed to Set Up Properly.") 6976 return False 6977 6978 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 6979 ads=ads, 6980 num_swaps=0, 6981 phone_setup_a=None, 6982 phone_setup_b=None, 6983 phone_setup_c=None, 6984 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 6985 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 6986 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 6987 6988 if call_ab_id is None or call_ac_id is None: 6989 return False 6990 6991 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 6992 call_ab_id, call_ac_id) 6993 6994 6995 @TelephonyBaseTest.tel_test_wrap 6996 @test_tracker_info(uuid="89b9f228-97a6-4e5c-96b9-a7f87d847c22") 6997 def test_epdg_mo_mo_add_epdg_merge_drop_wfc_wifi_preferred(self): 6998 """ Test Conf Call among three phones. 6999 7000 Call from PhoneA (epdg) to PhoneB (epdg), accept on PhoneB. 7001 Call from PhoneA (epdg) to PhoneC (epdg), accept on PhoneC. 7002 On PhoneA, merge to conference call. 7003 End call on PhoneC, verify call continues. 7004 End call on PhoneB, verify call end on PhoneA. 7005 7006 Returns: 7007 True if pass; False if fail. 7008 """ 7009 ads = self.android_devices 7010 7011 tasks = [(phone_setup_iwlan, 7012 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 7013 self.wifi_network_ssid, self.wifi_network_pass)), 7014 (phone_setup_iwlan, 7015 (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, 7016 self.wifi_network_ssid, self.wifi_network_pass)), 7017 (phone_setup_iwlan, 7018 (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, 7019 self.wifi_network_ssid, self.wifi_network_pass))] 7020 if not multithread_func(self.log, tasks): 7021 self.log.error("Phone Failed to Set Up Properly.") 7022 return False 7023 7024 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 7025 ads=ads, 7026 num_swaps=0, 7027 phone_setup_a=None, 7028 phone_setup_b=None, 7029 phone_setup_c=None, 7030 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7031 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 7032 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 7033 if call_ab_id is None or call_ac_id is None: 7034 return False 7035 7036 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7037 call_ab_id, call_ac_id) 7038 7039 7040 @TelephonyBaseTest.tel_test_wrap 7041 @test_tracker_info(uuid="2c6dc281-59b0-4ea4-b811-e4c3a4d654ab") 7042 def test_epdg_mo_mt_add_epdg_merge_drop_wfc_wifi_only(self): 7043 """ Test Conf Call among three phones. 7044 7045 Call from PhoneA (epdg) to PhoneB (epdg), accept on PhoneB. 7046 Call from PhoneC (epdg) to PhoneA (epdg), accept on PhoneA. 7047 On PhoneA, merge to conference call. 7048 End call on PhoneC, verify call continues. 7049 End call on PhoneB, verify call end on PhoneA. 7050 7051 Returns: 7052 True if pass; False if fail. 7053 """ 7054 ads = self.android_devices 7055 7056 tasks = [(phone_setup_iwlan, 7057 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 7058 self.wifi_network_ssid, self.wifi_network_pass)), 7059 (phone_setup_iwlan, 7060 (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, 7061 self.wifi_network_ssid, self.wifi_network_pass)), 7062 (phone_setup_iwlan, 7063 (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, 7064 self.wifi_network_ssid, self.wifi_network_pass))] 7065 if not multithread_func(self.log, tasks): 7066 self.log.error("Phone Failed to Set Up Properly.") 7067 return False 7068 7069 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 7070 ads=ads, 7071 num_swaps=0, 7072 phone_setup_a=None, 7073 phone_setup_b=None, 7074 phone_setup_c=None, 7075 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7076 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 7077 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 7078 7079 if call_ab_id is None or call_ac_id is None: 7080 return False 7081 7082 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7083 call_ab_id, call_ac_id) 7084 7085 7086 @TelephonyBaseTest.tel_test_wrap 7087 @test_tracker_info(uuid="f6727241-b727-4eb8-8c0d-f61d3a14a635") 7088 def test_epdg_mo_mt_add_epdg_merge_drop_wfc_wifi_preferred(self): 7089 """ Test Conf Call among three phones. 7090 7091 Call from PhoneA (epdg) to PhoneB (epdg), accept on PhoneB. 7092 Call from PhoneC (epdg) to PhoneA (epdg), accept on PhoneA. 7093 On PhoneA, merge to conference call. 7094 End call on PhoneC, verify call continues. 7095 End call on PhoneB, verify call end on PhoneA. 7096 7097 Returns: 7098 True if pass; False if fail. 7099 """ 7100 ads = self.android_devices 7101 7102 tasks = [(phone_setup_iwlan, 7103 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 7104 self.wifi_network_ssid, self.wifi_network_pass)), 7105 (phone_setup_iwlan, 7106 (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, 7107 self.wifi_network_ssid, self.wifi_network_pass)), 7108 (phone_setup_iwlan, 7109 (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, 7110 self.wifi_network_ssid, self.wifi_network_pass))] 7111 if not multithread_func(self.log, tasks): 7112 self.log.error("Phone Failed to Set Up Properly.") 7113 return False 7114 7115 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 7116 ads=ads, 7117 num_swaps=0, 7118 phone_setup_a=None, 7119 phone_setup_b=None, 7120 phone_setup_c=None, 7121 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7122 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 7123 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 7124 if call_ab_id is None or call_ac_id is None: 7125 return False 7126 7127 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7128 call_ab_id, call_ac_id) 7129 7130 7131 @TelephonyBaseTest.tel_test_wrap 7132 @test_tracker_info(uuid="c9e54db0-2b0b-428b-ba63-619ad0b8637b") 7133 def test_epdg_mt_mt_add_epdg_merge_drop_wfc_wifi_only(self): 7134 """ Test Conf Call among three phones. 7135 7136 Call from PhoneB (epdg) to PhoneA (epdg), accept on PhoneA. 7137 Call from PhoneC (epdg) to PhoneA (epdg), accept on PhoneA. 7138 On PhoneA, merge to conference call. 7139 End call on PhoneC, verify call continues. 7140 End call on PhoneB, verify call end on PhoneA. 7141 7142 Returns: 7143 True if pass; False if fail. 7144 """ 7145 ads = self.android_devices 7146 7147 tasks = [(phone_setup_iwlan, 7148 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 7149 self.wifi_network_ssid, self.wifi_network_pass)), 7150 (phone_setup_iwlan, 7151 (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, 7152 self.wifi_network_ssid, self.wifi_network_pass)), 7153 (phone_setup_iwlan, 7154 (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, 7155 self.wifi_network_ssid, self.wifi_network_pass))] 7156 if not multithread_func(self.log, tasks): 7157 self.log.error("Phone Failed to Set Up Properly.") 7158 return False 7159 7160 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 7161 ads=ads, 7162 num_swaps=0, 7163 phone_setup_a=None, 7164 phone_setup_b=None, 7165 phone_setup_c=None, 7166 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7167 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 7168 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 7169 if call_ab_id is None or call_ac_id is None: 7170 return False 7171 7172 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7173 call_ab_id, call_ac_id) 7174 7175 7176 @TelephonyBaseTest.tel_test_wrap 7177 @test_tracker_info(uuid="a478cc82-d95c-43fc-9735-d8333b8937e2") 7178 def test_epdg_mt_mt_add_epdg_merge_drop_wfc_wifi_preferred(self): 7179 """ Test Conf Call among three phones. 7180 7181 Call from PhoneB (epdg) to PhoneA (epdg), accept on PhoneA. 7182 Call from PhoneC (epdg) to PhoneA (epdg), accept on PhoneA. 7183 On PhoneA, merge to conference call. 7184 End call on PhoneC, verify call continues. 7185 End call on PhoneB, verify call end on PhoneA. 7186 7187 Returns: 7188 True if pass; False if fail. 7189 """ 7190 ads = self.android_devices 7191 7192 tasks = [(phone_setup_iwlan, 7193 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 7194 self.wifi_network_ssid, self.wifi_network_pass)), 7195 (phone_setup_iwlan, 7196 (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, 7197 self.wifi_network_ssid, self.wifi_network_pass)), 7198 (phone_setup_iwlan, 7199 (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, 7200 self.wifi_network_ssid, self.wifi_network_pass))] 7201 if not multithread_func(self.log, tasks): 7202 self.log.error("Phone Failed to Set Up Properly.") 7203 return False 7204 7205 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 7206 ads=ads, 7207 num_swaps=0, 7208 phone_setup_a=None, 7209 phone_setup_b=None, 7210 phone_setup_c=None, 7211 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7212 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 7213 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 7214 if call_ab_id is None or call_ac_id is None: 7215 return False 7216 7217 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7218 call_ab_id, call_ac_id) 7219 7220 7221 @TelephonyBaseTest.tel_test_wrap 7222 @test_tracker_info(uuid="b1acb263-1481-44a5-b18e-58bdeff7bc1e") 7223 def test_epdg_mo_mo_add_volte_merge_drop_wfc_wifi_only(self): 7224 """ Test Conf Call among three phones. 7225 7226 Call from PhoneA (epdg) to PhoneB (VoLTE), accept on PhoneB. 7227 Call from PhoneA (epdg) to PhoneC (VoLTE), accept on PhoneC. 7228 On PhoneA, merge to conference call. 7229 End call on PhoneC, verify call continues. 7230 End call on PhoneB, verify call end on PhoneA. 7231 7232 Returns: 7233 True if pass; False if fail. 7234 """ 7235 ads = self.android_devices 7236 7237 tasks = [(phone_setup_iwlan, 7238 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 7239 self.wifi_network_ssid, self.wifi_network_pass)), 7240 (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, 7241 (self.log, ads[2]))] 7242 if not multithread_func(self.log, tasks): 7243 self.log.error("Phone Failed to Set Up Properly.") 7244 return False 7245 7246 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 7247 ads=ads, 7248 num_swaps=0, 7249 phone_setup_a=None, 7250 phone_setup_b=None, 7251 phone_setup_c=None, 7252 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7253 verify_phone_b_network_subscription=is_phone_in_call_volte, 7254 verify_phone_c_network_subscription=is_phone_in_call_volte) 7255 7256 if call_ab_id is None or call_ac_id is None: 7257 return False 7258 7259 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7260 call_ab_id, call_ac_id) 7261 7262 7263 @TelephonyBaseTest.tel_test_wrap 7264 @test_tracker_info(uuid="03b8a0d2-80dd-465a-ad14-5db94cdbcc53") 7265 def test_epdg_mo_mo_add_volte_merge_drop_wfc_wifi_preferred(self): 7266 """ Test Conf Call among three phones. 7267 7268 Call from PhoneA (epdg) to PhoneB (VoLTE), accept on PhoneB. 7269 Call from PhoneA (epdg) to PhoneC (VoLTE), accept on PhoneC. 7270 On PhoneA, merge to conference call. 7271 End call on PhoneC, verify call continues. 7272 End call on PhoneB, verify call end on PhoneA. 7273 7274 Returns: 7275 True if pass; False if fail. 7276 """ 7277 ads = self.android_devices 7278 7279 tasks = [(phone_setup_iwlan, 7280 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 7281 self.wifi_network_ssid, self.wifi_network_pass)), 7282 (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, 7283 (self.log, ads[2]))] 7284 if not multithread_func(self.log, tasks): 7285 self.log.error("Phone Failed to Set Up Properly.") 7286 return False 7287 7288 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 7289 ads=ads, 7290 num_swaps=0, 7291 phone_setup_a=None, 7292 phone_setup_b=None, 7293 phone_setup_c=None, 7294 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7295 verify_phone_b_network_subscription=is_phone_in_call_volte, 7296 verify_phone_c_network_subscription=is_phone_in_call_volte) 7297 if call_ab_id is None or call_ac_id is None: 7298 return False 7299 7300 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7301 call_ab_id, call_ac_id) 7302 7303 7304 @TelephonyBaseTest.tel_test_wrap 7305 @test_tracker_info(uuid="9eb1a816-1e2c-41da-b083-2026163a3893") 7306 def test_epdg_mo_mt_add_volte_merge_drop_wfc_wifi_only(self): 7307 """ Test Conf Call among three phones. 7308 7309 Call from PhoneA (epdg) to PhoneB (VoLTE), accept on PhoneB. 7310 Call from PhoneC (VoLTE) to PhoneA (epdg), accept on PhoneA. 7311 On PhoneA, merge to conference call. 7312 End call on PhoneC, verify call continues. 7313 End call on PhoneB, verify call end on PhoneA. 7314 7315 Returns: 7316 True if pass; False if fail. 7317 """ 7318 ads = self.android_devices 7319 7320 tasks = [(phone_setup_iwlan, 7321 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 7322 self.wifi_network_ssid, self.wifi_network_pass)), 7323 (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, 7324 (self.log, ads[2]))] 7325 if not multithread_func(self.log, tasks): 7326 self.log.error("Phone Failed to Set Up Properly.") 7327 return False 7328 7329 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 7330 ads=ads, 7331 num_swaps=0, 7332 phone_setup_a=None, 7333 phone_setup_b=None, 7334 phone_setup_c=None, 7335 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7336 verify_phone_b_network_subscription=is_phone_in_call_volte, 7337 verify_phone_c_network_subscription=is_phone_in_call_volte) 7338 7339 if call_ab_id is None or call_ac_id is None: 7340 return False 7341 7342 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7343 call_ab_id, call_ac_id) 7344 7345 7346 @TelephonyBaseTest.tel_test_wrap 7347 @test_tracker_info(uuid="3d66a1b6-916f-4221-bd99-21ff4d40ebb8") 7348 def test_epdg_mo_mt_add_volte_merge_drop_wfc_wifi_preferred(self): 7349 """ Test Conf Call among three phones. 7350 7351 Call from PhoneA (epdg) to PhoneB (VoLTE), accept on PhoneB. 7352 Call from PhoneC (VoLTE) to PhoneA (epdg), accept on PhoneA. 7353 On PhoneA, merge to conference call. 7354 End call on PhoneC, verify call continues. 7355 End call on PhoneB, verify call end on PhoneA. 7356 7357 Returns: 7358 True if pass; False if fail. 7359 """ 7360 ads = self.android_devices 7361 7362 tasks = [(phone_setup_iwlan, 7363 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 7364 self.wifi_network_ssid, self.wifi_network_pass)), 7365 (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, 7366 (self.log, ads[2]))] 7367 if not multithread_func(self.log, tasks): 7368 self.log.error("Phone Failed to Set Up Properly.") 7369 return False 7370 7371 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 7372 ads=ads, 7373 num_swaps=0, 7374 phone_setup_a=None, 7375 phone_setup_b=None, 7376 phone_setup_c=None, 7377 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7378 verify_phone_b_network_subscription=is_phone_in_call_volte, 7379 verify_phone_c_network_subscription=is_phone_in_call_volte) 7380 if call_ab_id is None or call_ac_id is None: 7381 return False 7382 7383 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7384 call_ab_id, call_ac_id) 7385 7386 7387 @TelephonyBaseTest.tel_test_wrap 7388 @test_tracker_info(uuid="9d8e8b2f-e2b9-4607-8c54-6233b3096123") 7389 def test_epdg_mo_mo_add_wcdma_merge_drop_wfc_wifi_only(self): 7390 """ Test Conf Call among three phones. 7391 7392 Call from PhoneA (epdg) to PhoneB (WCDMA), accept on PhoneB. 7393 Call from PhoneA (epdg) to PhoneC (WCDMA), accept on PhoneC. 7394 On PhoneA, merge to conference call. 7395 End call on PhoneC, verify call continues. 7396 End call on PhoneB, verify call end on PhoneA. 7397 7398 Returns: 7399 True if pass; False if fail. 7400 """ 7401 ads = self.android_devices 7402 7403 tasks = [(phone_setup_iwlan, 7404 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 7405 self.wifi_network_ssid, self.wifi_network_pass)), 7406 (phone_setup_voice_3g, (self.log, ads[1])), 7407 (phone_setup_voice_3g, (self.log, ads[2]))] 7408 if not multithread_func(self.log, tasks): 7409 self.log.error("Phone Failed to Set Up Properly.") 7410 return False 7411 7412 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 7413 ads=ads, 7414 num_swaps=0, 7415 phone_setup_a=None, 7416 phone_setup_b=None, 7417 phone_setup_c=None, 7418 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7419 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 7420 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 7421 7422 if call_ab_id is None or call_ac_id is None: 7423 return False 7424 7425 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7426 call_ab_id, call_ac_id) 7427 7428 7429 @TelephonyBaseTest.tel_test_wrap 7430 @test_tracker_info(uuid="0884206b-2471-4a7e-95aa-228379416ff8") 7431 def test_epdg_mo_mo_add_wcdma_merge_drop_wfc_wifi_preferred(self): 7432 """ Test Conf Call among three phones. 7433 7434 Call from PhoneA (epdg) to PhoneB (WCDMA), accept on PhoneB. 7435 Call from PhoneA (epdg) to PhoneC (WCDMA), accept on PhoneC. 7436 On PhoneA, merge to conference call. 7437 End call on PhoneC, verify call continues. 7438 End call on PhoneB, verify call end on PhoneA. 7439 7440 Returns: 7441 True if pass; False if fail. 7442 """ 7443 ads = self.android_devices 7444 7445 tasks = [(phone_setup_iwlan, 7446 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 7447 self.wifi_network_ssid, self.wifi_network_pass)), 7448 (phone_setup_voice_3g, (self.log, ads[1])), 7449 (phone_setup_voice_3g, (self.log, ads[2]))] 7450 if not multithread_func(self.log, tasks): 7451 self.log.error("Phone Failed to Set Up Properly.") 7452 return False 7453 7454 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 7455 ads=ads, 7456 num_swaps=0, 7457 phone_setup_a=None, 7458 phone_setup_b=None, 7459 phone_setup_c=None, 7460 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7461 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 7462 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 7463 if call_ab_id is None or call_ac_id is None: 7464 return False 7465 7466 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7467 call_ab_id, call_ac_id) 7468 7469 7470 @TelephonyBaseTest.tel_test_wrap 7471 @test_tracker_info(uuid="c7706af6-dc77-4002-b295-66c60aeace6b") 7472 def test_epdg_mo_mt_add_wcdma_merge_drop_wfc_wifi_only(self): 7473 """ Test Conf Call among three phones. 7474 7475 Call from PhoneA (epdg) to PhoneB (WCDMA), accept on PhoneB. 7476 Call from PhoneC (WCDMA) to PhoneA (epdg), accept on PhoneA. 7477 On PhoneA, merge to conference call. 7478 End call on PhoneC, verify call continues. 7479 End call on PhoneB, verify call end on PhoneA. 7480 7481 Returns: 7482 True if pass; False if fail. 7483 """ 7484 ads = self.android_devices 7485 7486 tasks = [(phone_setup_iwlan, 7487 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 7488 self.wifi_network_ssid, self.wifi_network_pass)), 7489 (phone_setup_voice_3g, (self.log, ads[1])), 7490 (phone_setup_voice_3g, (self.log, ads[2]))] 7491 if not multithread_func(self.log, tasks): 7492 self.log.error("Phone Failed to Set Up Properly.") 7493 return False 7494 7495 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 7496 ads=ads, 7497 num_swaps=0, 7498 phone_setup_a=None, 7499 phone_setup_b=None, 7500 phone_setup_c=None, 7501 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7502 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 7503 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 7504 7505 if call_ab_id is None or call_ac_id is None: 7506 return False 7507 7508 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7509 call_ab_id, call_ac_id) 7510 7511 7512 @TelephonyBaseTest.tel_test_wrap 7513 @test_tracker_info(uuid="b079618f-e32b-4ba0-9009-06e013805c39") 7514 def test_epdg_mo_mt_add_wcdma_merge_drop_wfc_wifi_preferred(self): 7515 """ Test Conf Call among three phones. 7516 7517 Call from PhoneA (epdg) to PhoneB (WCDMA), accept on PhoneB. 7518 Call from PhoneC (WCDMA) to PhoneA (epdg), accept on PhoneA. 7519 On PhoneA, merge to conference call. 7520 End call on PhoneC, verify call continues. 7521 End call on PhoneB, verify call end on PhoneA. 7522 7523 Returns: 7524 True if pass; False if fail. 7525 """ 7526 ads = self.android_devices 7527 7528 tasks = [(phone_setup_iwlan, 7529 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 7530 self.wifi_network_ssid, self.wifi_network_pass)), 7531 (phone_setup_voice_3g, (self.log, ads[1])), 7532 (phone_setup_voice_3g, (self.log, ads[2]))] 7533 if not multithread_func(self.log, tasks): 7534 self.log.error("Phone Failed to Set Up Properly.") 7535 return False 7536 7537 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 7538 ads=ads, 7539 num_swaps=0, 7540 phone_setup_a=None, 7541 phone_setup_b=None, 7542 phone_setup_c=None, 7543 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7544 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 7545 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 7546 if call_ab_id is None or call_ac_id is None: 7547 return False 7548 7549 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7550 call_ab_id, call_ac_id) 7551 7552 7553 @TelephonyBaseTest.tel_test_wrap 7554 @test_tracker_info(uuid="571fe98b-354f-4038-8441-0e4b1840eb7a") 7555 def test_epdg_mo_mo_add_1x_merge_drop_wfc_wifi_only(self): 7556 """ Test Conf Call among three phones. 7557 7558 Call from PhoneA (epdg) to PhoneB (1x), accept on PhoneB. 7559 Call from PhoneA (epdg) to PhoneC (1x), accept on PhoneC. 7560 On PhoneA, merge to conference call. 7561 End call on PhoneC, verify call continues. 7562 End call on PhoneB, verify call end on PhoneA. 7563 7564 Returns: 7565 True if pass; False if fail. 7566 """ 7567 ads = self.android_devices 7568 7569 tasks = [(phone_setup_iwlan, 7570 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 7571 self.wifi_network_ssid, self.wifi_network_pass)), 7572 (phone_setup_voice_3g, (self.log, ads[1])), 7573 (phone_setup_voice_3g, (self.log, ads[2]))] 7574 if not multithread_func(self.log, tasks): 7575 self.log.error("Phone Failed to Set Up Properly.") 7576 return False 7577 7578 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 7579 ads=ads, 7580 num_swaps=0, 7581 phone_setup_a=None, 7582 phone_setup_b=None, 7583 phone_setup_c=None, 7584 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7585 verify_phone_b_network_subscription=is_phone_in_call_1x, 7586 verify_phone_c_network_subscription=is_phone_in_call_1x) 7587 7588 if call_ab_id is None or call_ac_id is None: 7589 return False 7590 7591 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7592 call_ab_id, call_ac_id) 7593 7594 7595 @TelephonyBaseTest.tel_test_wrap 7596 @test_tracker_info(uuid="8f531f3c-493e-43d6-9d6d-f4990b5feba4") 7597 def test_epdg_mo_mo_add_1x_merge_drop_wfc_wifi_preferred(self): 7598 """ Test Conf Call among three phones. 7599 7600 Call from PhoneA (epdg) to PhoneB (1x), accept on PhoneB. 7601 Call from PhoneA (epdg) to PhoneC (1x), accept on PhoneC. 7602 On PhoneA, merge to conference call. 7603 End call on PhoneC, verify call continues. 7604 End call on PhoneB, verify call end on PhoneA. 7605 7606 Returns: 7607 True if pass; False if fail. 7608 """ 7609 ads = self.android_devices 7610 7611 tasks = [(phone_setup_iwlan, 7612 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 7613 self.wifi_network_ssid, self.wifi_network_pass)), 7614 (phone_setup_voice_3g, (self.log, ads[1])), 7615 (phone_setup_voice_3g, (self.log, ads[2]))] 7616 if not multithread_func(self.log, tasks): 7617 self.log.error("Phone Failed to Set Up Properly.") 7618 return False 7619 7620 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 7621 ads=ads, 7622 num_swaps=0, 7623 phone_setup_a=None, 7624 phone_setup_b=None, 7625 phone_setup_c=None, 7626 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7627 verify_phone_b_network_subscription=is_phone_in_call_1x, 7628 verify_phone_c_network_subscription=is_phone_in_call_1x) 7629 if call_ab_id is None or call_ac_id is None: 7630 return False 7631 7632 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7633 call_ab_id, call_ac_id) 7634 7635 7636 @TelephonyBaseTest.tel_test_wrap 7637 @test_tracker_info(uuid="00e1194b-3c06-46c4-8764-0339c0aa9f9e") 7638 def test_epdg_mo_mt_add_1x_merge_drop_wfc_wifi_only(self): 7639 """ Test Conf Call among three phones. 7640 7641 Call from PhoneA (epdg) to PhoneB (1x), accept on PhoneB. 7642 Call from PhoneC (1x) to PhoneA (epdg), accept on PhoneA. 7643 On PhoneA, merge to conference call. 7644 End call on PhoneC, verify call continues. 7645 End call on PhoneB, verify call end on PhoneA. 7646 7647 Returns: 7648 True if pass; False if fail. 7649 """ 7650 ads = self.android_devices 7651 7652 tasks = [(phone_setup_iwlan, 7653 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 7654 self.wifi_network_ssid, self.wifi_network_pass)), 7655 (phone_setup_voice_3g, (self.log, ads[1])), 7656 (phone_setup_voice_3g, (self.log, ads[2]))] 7657 if not multithread_func(self.log, tasks): 7658 self.log.error("Phone Failed to Set Up Properly.") 7659 return False 7660 7661 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 7662 ads=ads, 7663 num_swaps=0, 7664 phone_setup_a=None, 7665 phone_setup_b=None, 7666 phone_setup_c=None, 7667 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7668 verify_phone_b_network_subscription=is_phone_in_call_1x, 7669 verify_phone_c_network_subscription=is_phone_in_call_1x) 7670 7671 if call_ab_id is None or call_ac_id is None: 7672 return False 7673 7674 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7675 call_ab_id, call_ac_id) 7676 7677 7678 @TelephonyBaseTest.tel_test_wrap 7679 @test_tracker_info(uuid="c94f6444-d265-4277-9555-57041e3c4ff4") 7680 def test_epdg_mo_mt_add_1x_merge_drop_wfc_wifi_preferred(self): 7681 """ Test Conf Call among three phones. 7682 7683 Call from PhoneA (epdg) to PhoneB (1x), accept on PhoneB. 7684 Call from PhoneC (1x) to PhoneA (epdg), accept on PhoneA. 7685 On PhoneA, merge to conference call. 7686 End call on PhoneC, verify call continues. 7687 End call on PhoneB, verify call end on PhoneA. 7688 7689 Returns: 7690 True if pass; False if fail. 7691 """ 7692 ads = self.android_devices 7693 7694 tasks = [(phone_setup_iwlan, 7695 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 7696 self.wifi_network_ssid, self.wifi_network_pass)), 7697 (phone_setup_voice_3g, (self.log, ads[1])), 7698 (phone_setup_voice_3g, (self.log, ads[2]))] 7699 if not multithread_func(self.log, tasks): 7700 self.log.error("Phone Failed to Set Up Properly.") 7701 return False 7702 7703 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 7704 ads=ads, 7705 num_swaps=0, 7706 phone_setup_a=None, 7707 phone_setup_b=None, 7708 phone_setup_c=None, 7709 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7710 verify_phone_b_network_subscription=is_phone_in_call_1x, 7711 verify_phone_c_network_subscription=is_phone_in_call_1x) 7712 if call_ab_id is None or call_ac_id is None: 7713 return False 7714 7715 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7716 call_ab_id, call_ac_id) 7717 7718 7719 @TelephonyBaseTest.tel_test_wrap 7720 @test_tracker_info(uuid="0980745e-dcdc-4c56-84e3-e2ee076059ee") 7721 def test_epdg_mo_mo_add_epdg_swap_once_merge_drop_wfc_wifi_only(self): 7722 """Test swap and merge feature in epdg call. 7723 7724 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 7725 PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. 7726 Swap active call on PhoneA. 7727 Merge calls to conference on PhoneA. 7728 Hangup on PhoneC, check call continues between AB. 7729 Hangup on PhoneB, check A ends. 7730 7731 """ 7732 ads = self.android_devices 7733 7734 tasks = [(phone_setup_iwlan, 7735 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 7736 self.wifi_network_ssid, self.wifi_network_pass)), 7737 (phone_setup_iwlan, 7738 (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, 7739 self.wifi_network_ssid, self.wifi_network_pass)), 7740 (phone_setup_iwlan, 7741 (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, 7742 self.wifi_network_ssid, self.wifi_network_pass))] 7743 if not multithread_func(self.log, tasks): 7744 self.log.error("Phone Failed to Set Up Properly.") 7745 return False 7746 7747 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 7748 ads=ads, 7749 num_swaps=1, 7750 phone_setup_a=None, 7751 phone_setup_b=None, 7752 phone_setup_c=None, 7753 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7754 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 7755 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 7756 if call_ab_id is None or call_ac_id is None: 7757 return False 7758 7759 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7760 call_ab_id, call_ac_id) 7761 7762 7763 @TelephonyBaseTest.tel_test_wrap 7764 @test_tracker_info(uuid="6bf0b152-fb1c-4edc-9525-b39e8640b967") 7765 def test_epdg_mo_mo_add_epdg_swap_once_merge_drop_wfc_wifi_preferred(self): 7766 """Test swap and merge feature in epdg call. 7767 7768 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 7769 PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. 7770 Swap active call on PhoneA. 7771 Merge calls to conference on PhoneA. 7772 Hangup on PhoneC, check call continues between AB. 7773 Hangup on PhoneB, check A ends. 7774 7775 """ 7776 ads = self.android_devices 7777 7778 tasks = [(phone_setup_iwlan, 7779 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 7780 self.wifi_network_ssid, self.wifi_network_pass)), 7781 (phone_setup_iwlan, 7782 (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, 7783 self.wifi_network_ssid, self.wifi_network_pass)), 7784 (phone_setup_iwlan, 7785 (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, 7786 self.wifi_network_ssid, self.wifi_network_pass))] 7787 if not multithread_func(self.log, tasks): 7788 self.log.error("Phone Failed to Set Up Properly.") 7789 return False 7790 7791 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 7792 ads=ads, 7793 num_swaps=1, 7794 phone_setup_a=None, 7795 phone_setup_b=None, 7796 phone_setup_c=None, 7797 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7798 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 7799 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 7800 if call_ab_id is None or call_ac_id is None: 7801 return False 7802 7803 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7804 call_ab_id, call_ac_id) 7805 7806 7807 @TelephonyBaseTest.tel_test_wrap 7808 @test_tracker_info(uuid="e3013df6-98ca-4318-85ba-04011ba0a24f") 7809 def test_epdg_mo_mo_add_epdg_swap_twice_merge_drop_wfc_wifi_only(self): 7810 """Test swap and merge feature in epdg call. 7811 7812 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 7813 PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. 7814 Swap active call on PhoneA. 7815 Swap active call on PhoneA. 7816 Merge calls to conference on PhoneA. 7817 Hangup on PhoneC, check call continues between AB. 7818 Hangup on PhoneB, check A ends. 7819 7820 """ 7821 ads = self.android_devices 7822 7823 tasks = [(phone_setup_iwlan, 7824 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 7825 self.wifi_network_ssid, self.wifi_network_pass)), 7826 (phone_setup_iwlan, 7827 (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, 7828 self.wifi_network_ssid, self.wifi_network_pass)), 7829 (phone_setup_iwlan, 7830 (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, 7831 self.wifi_network_ssid, self.wifi_network_pass))] 7832 if not multithread_func(self.log, tasks): 7833 self.log.error("Phone Failed to Set Up Properly.") 7834 return False 7835 7836 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 7837 ads=ads, 7838 num_swaps=2, 7839 phone_setup_a=None, 7840 phone_setup_b=None, 7841 phone_setup_c=None, 7842 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7843 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 7844 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 7845 if call_ab_id is None or call_ac_id is None: 7846 return False 7847 7848 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7849 call_ab_id, call_ac_id) 7850 7851 7852 @TelephonyBaseTest.tel_test_wrap 7853 @test_tracker_info(uuid="e88bf042-8799-44c7-bc50-66ac1e1fb2ac") 7854 def test_epdg_mo_mo_add_epdg_swap_twice_merge_drop_wfc_wifi_preferred( 7855 self): 7856 """Test swap and merge feature in epdg call. 7857 7858 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 7859 PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. 7860 Swap active call on PhoneA. 7861 Swap active call on PhoneA. 7862 Merge calls to conference on PhoneA. 7863 Hangup on PhoneC, check call continues between AB. 7864 Hangup on PhoneB, check A ends. 7865 7866 """ 7867 ads = self.android_devices 7868 7869 tasks = [(phone_setup_iwlan, 7870 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 7871 self.wifi_network_ssid, self.wifi_network_pass)), 7872 (phone_setup_iwlan, 7873 (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, 7874 self.wifi_network_ssid, self.wifi_network_pass)), 7875 (phone_setup_iwlan, 7876 (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, 7877 self.wifi_network_ssid, self.wifi_network_pass))] 7878 if not multithread_func(self.log, tasks): 7879 self.log.error("Phone Failed to Set Up Properly.") 7880 return False 7881 7882 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 7883 ads=ads, 7884 num_swaps=2, 7885 phone_setup_a=None, 7886 phone_setup_b=None, 7887 phone_setup_c=None, 7888 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7889 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 7890 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 7891 if call_ab_id is None or call_ac_id is None: 7892 return False 7893 7894 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7895 call_ab_id, call_ac_id) 7896 7897 7898 @TelephonyBaseTest.tel_test_wrap 7899 @test_tracker_info(uuid="a8302e73-82a4-4409-b038-5c604fb4c66c") 7900 def test_epdg_mo_mt_add_epdg_swap_once_merge_drop_wfc_wifi_only(self): 7901 """Test swap and merge feature in epdg call. 7902 7903 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 7904 PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. 7905 Swap active call on PhoneA. 7906 Merge calls to conference on PhoneA. 7907 Hangup on PhoneC, check call continues between AB. 7908 Hangup on PhoneB, check A ends. 7909 7910 """ 7911 ads = self.android_devices 7912 7913 tasks = [(phone_setup_iwlan, 7914 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 7915 self.wifi_network_ssid, self.wifi_network_pass)), 7916 (phone_setup_iwlan, 7917 (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, 7918 self.wifi_network_ssid, self.wifi_network_pass)), 7919 (phone_setup_iwlan, 7920 (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, 7921 self.wifi_network_ssid, self.wifi_network_pass))] 7922 if not multithread_func(self.log, tasks): 7923 self.log.error("Phone Failed to Set Up Properly.") 7924 return False 7925 7926 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 7927 ads=ads, 7928 num_swaps=1, 7929 phone_setup_a=None, 7930 phone_setup_b=None, 7931 phone_setup_c=None, 7932 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7933 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 7934 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 7935 if call_ab_id is None or call_ac_id is None: 7936 return False 7937 7938 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7939 call_ab_id, call_ac_id) 7940 7941 7942 @TelephonyBaseTest.tel_test_wrap 7943 @test_tracker_info(uuid="80f69baf-1649-4858-b35c-b25baf79b42c") 7944 def test_epdg_mo_mt_add_epdg_swap_once_merge_drop_wfc_wifi_preferred(self): 7945 """Test swap and merge feature in epdg call. 7946 7947 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 7948 PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. 7949 Swap active call on PhoneA. 7950 Merge calls to conference on PhoneA. 7951 Hangup on PhoneC, check call continues between AB. 7952 Hangup on PhoneB, check A ends. 7953 7954 """ 7955 ads = self.android_devices 7956 7957 tasks = [(phone_setup_iwlan, 7958 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 7959 self.wifi_network_ssid, self.wifi_network_pass)), 7960 (phone_setup_iwlan, 7961 (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, 7962 self.wifi_network_ssid, self.wifi_network_pass)), 7963 (phone_setup_iwlan, 7964 (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, 7965 self.wifi_network_ssid, self.wifi_network_pass))] 7966 if not multithread_func(self.log, tasks): 7967 self.log.error("Phone Failed to Set Up Properly.") 7968 return False 7969 7970 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 7971 ads=ads, 7972 num_swaps=1, 7973 phone_setup_a=None, 7974 phone_setup_b=None, 7975 phone_setup_c=None, 7976 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 7977 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 7978 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 7979 if call_ab_id is None or call_ac_id is None: 7980 return False 7981 7982 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 7983 call_ab_id, call_ac_id) 7984 7985 7986 @TelephonyBaseTest.tel_test_wrap 7987 @test_tracker_info(uuid="1ac0c067-49fb-41d9-8649-cc709bdd8926") 7988 def test_epdg_mo_mt_add_epdg_swap_twice_merge_drop_wfc_wifi_only(self): 7989 """Test swap and merge feature in epdg call. 7990 7991 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 7992 PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. 7993 Swap active call on PhoneA. 7994 Swap active call on PhoneA. 7995 Merge calls to conference on PhoneA. 7996 Hangup on PhoneC, check call continues between AB. 7997 Hangup on PhoneB, check A ends. 7998 7999 """ 8000 ads = self.android_devices 8001 8002 tasks = [(phone_setup_iwlan, 8003 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 8004 self.wifi_network_ssid, self.wifi_network_pass)), 8005 (phone_setup_iwlan, 8006 (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, 8007 self.wifi_network_ssid, self.wifi_network_pass)), 8008 (phone_setup_iwlan, 8009 (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, 8010 self.wifi_network_ssid, self.wifi_network_pass))] 8011 if not multithread_func(self.log, tasks): 8012 self.log.error("Phone Failed to Set Up Properly.") 8013 return False 8014 8015 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 8016 ads=ads, 8017 num_swaps=2, 8018 phone_setup_a=None, 8019 phone_setup_b=None, 8020 phone_setup_c=None, 8021 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8022 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 8023 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 8024 if call_ab_id is None or call_ac_id is None: 8025 return False 8026 8027 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8028 call_ab_id, call_ac_id) 8029 8030 8031 @TelephonyBaseTest.tel_test_wrap 8032 @test_tracker_info(uuid="b20b1a94-048c-4f10-9261-dde79e1edb00") 8033 def test_epdg_mo_mt_add_epdg_swap_twice_merge_drop_wfc_wifi_preferred( 8034 self): 8035 """Test swap and merge feature in epdg call. 8036 8037 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 8038 PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. 8039 Swap active call on PhoneA. 8040 Swap active call on PhoneA. 8041 Merge calls to conference on PhoneA. 8042 Hangup on PhoneC, check call continues between AB. 8043 Hangup on PhoneB, check A ends. 8044 8045 """ 8046 ads = self.android_devices 8047 8048 tasks = [(phone_setup_iwlan, 8049 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 8050 self.wifi_network_ssid, self.wifi_network_pass)), 8051 (phone_setup_iwlan, 8052 (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, 8053 self.wifi_network_ssid, self.wifi_network_pass)), 8054 (phone_setup_iwlan, 8055 (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, 8056 self.wifi_network_ssid, self.wifi_network_pass))] 8057 if not multithread_func(self.log, tasks): 8058 self.log.error("Phone Failed to Set Up Properly.") 8059 return False 8060 8061 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 8062 ads=ads, 8063 num_swaps=2, 8064 phone_setup_a=None, 8065 phone_setup_b=None, 8066 phone_setup_c=None, 8067 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8068 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 8069 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 8070 if call_ab_id is None or call_ac_id is None: 8071 return False 8072 8073 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8074 call_ab_id, call_ac_id) 8075 8076 8077 @TelephonyBaseTest.tel_test_wrap 8078 @test_tracker_info(uuid="402b175f-1510-4e2a-97c2-7c9ea5ce40f6") 8079 def test_epdg_mo_mo_add_volte_swap_once_merge_drop_wfc_wifi_only(self): 8080 """Test swap and merge feature in epdg call. 8081 8082 PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. 8083 PhoneA (epdg) call PhoneC (VoLTE), accept on PhoneC. 8084 Swap active call on PhoneA. 8085 Merge calls to conference on PhoneA. 8086 Hangup on PhoneC, check call continues between AB. 8087 Hangup on PhoneB, check A ends. 8088 8089 """ 8090 ads = self.android_devices 8091 8092 tasks = [(phone_setup_iwlan, 8093 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 8094 self.wifi_network_ssid, self.wifi_network_pass)), 8095 (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, 8096 (self.log, ads[2]))] 8097 if not multithread_func(self.log, tasks): 8098 self.log.error("Phone Failed to Set Up Properly.") 8099 return False 8100 8101 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 8102 ads=ads, 8103 num_swaps=1, 8104 phone_setup_a=None, 8105 phone_setup_b=None, 8106 phone_setup_c=None, 8107 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8108 verify_phone_b_network_subscription=is_phone_in_call_volte, 8109 verify_phone_c_network_subscription=is_phone_in_call_volte) 8110 if call_ab_id is None or call_ac_id is None: 8111 return False 8112 8113 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8114 call_ab_id, call_ac_id) 8115 8116 8117 @TelephonyBaseTest.tel_test_wrap 8118 @test_tracker_info(uuid="7c710fbf-4b77-4b46-9719-e17b3d047cfc") 8119 def test_epdg_mo_mo_add_volte_swap_once_merge_drop_wfc_wifi_preferred( 8120 self): 8121 """Test swap and merge feature in epdg call. 8122 8123 PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. 8124 PhoneA (epdg) call PhoneC (VoLTE), accept on PhoneC. 8125 Swap active call on PhoneA. 8126 Merge calls to conference on PhoneA. 8127 Hangup on PhoneC, check call continues between AB. 8128 Hangup on PhoneB, check A ends. 8129 8130 """ 8131 ads = self.android_devices 8132 8133 tasks = [(phone_setup_iwlan, 8134 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 8135 self.wifi_network_ssid, self.wifi_network_pass)), 8136 (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, 8137 (self.log, ads[2]))] 8138 if not multithread_func(self.log, tasks): 8139 self.log.error("Phone Failed to Set Up Properly.") 8140 return False 8141 8142 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 8143 ads=ads, 8144 num_swaps=1, 8145 phone_setup_a=None, 8146 phone_setup_b=None, 8147 phone_setup_c=None, 8148 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8149 verify_phone_b_network_subscription=is_phone_in_call_volte, 8150 verify_phone_c_network_subscription=is_phone_in_call_volte) 8151 if call_ab_id is None or call_ac_id is None: 8152 return False 8153 8154 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8155 call_ab_id, call_ac_id) 8156 8157 8158 @TelephonyBaseTest.tel_test_wrap 8159 @test_tracker_info(uuid="642afbac-30c1-4dbf-bf3e-758ab6c3a306") 8160 def test_epdg_mo_mo_add_volte_swap_twice_merge_drop_wfc_wifi_only(self): 8161 """Test swap and merge feature in epdg call. 8162 8163 PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. 8164 PhoneA (epdg) call PhoneC (VoLTE), accept on PhoneC. 8165 Swap active call on PhoneA. 8166 Swap active call on PhoneA. 8167 Merge calls to conference on PhoneA. 8168 Hangup on PhoneC, check call continues between AB. 8169 Hangup on PhoneB, check A ends. 8170 8171 """ 8172 ads = self.android_devices 8173 8174 tasks = [(phone_setup_iwlan, 8175 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 8176 self.wifi_network_ssid, self.wifi_network_pass)), 8177 (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, 8178 (self.log, ads[2]))] 8179 if not multithread_func(self.log, tasks): 8180 self.log.error("Phone Failed to Set Up Properly.") 8181 return False 8182 8183 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 8184 ads=ads, 8185 num_swaps=2, 8186 phone_setup_a=None, 8187 phone_setup_b=None, 8188 phone_setup_c=None, 8189 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8190 verify_phone_b_network_subscription=is_phone_in_call_volte, 8191 verify_phone_c_network_subscription=is_phone_in_call_volte) 8192 if call_ab_id is None or call_ac_id is None: 8193 return False 8194 8195 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8196 call_ab_id, call_ac_id) 8197 8198 8199 @TelephonyBaseTest.tel_test_wrap 8200 @test_tracker_info(uuid="a4ae1e39-ed6d-412e-b821-321c715a5d47") 8201 def test_epdg_mo_mo_add_volte_swap_twice_merge_drop_wfc_wifi_preferred( 8202 self): 8203 """Test swap and merge feature in epdg call. 8204 8205 PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. 8206 PhoneA (epdg) call PhoneC (VoLTE), accept on PhoneC. 8207 Swap active call on PhoneA. 8208 Swap active call on PhoneA. 8209 Merge calls to conference on PhoneA. 8210 Hangup on PhoneC, check call continues between AB. 8211 Hangup on PhoneB, check A ends. 8212 8213 """ 8214 ads = self.android_devices 8215 8216 tasks = [(phone_setup_iwlan, 8217 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 8218 self.wifi_network_ssid, self.wifi_network_pass)), 8219 (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, 8220 (self.log, ads[2]))] 8221 if not multithread_func(self.log, tasks): 8222 self.log.error("Phone Failed to Set Up Properly.") 8223 return False 8224 8225 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 8226 ads=ads, 8227 num_swaps=2, 8228 phone_setup_a=None, 8229 phone_setup_b=None, 8230 phone_setup_c=None, 8231 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8232 verify_phone_b_network_subscription=is_phone_in_call_volte, 8233 verify_phone_c_network_subscription=is_phone_in_call_volte) 8234 if call_ab_id is None or call_ac_id is None: 8235 return False 8236 8237 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8238 call_ab_id, call_ac_id) 8239 8240 8241 @TelephonyBaseTest.tel_test_wrap 8242 @test_tracker_info(uuid="7b8431f2-8a49-4aa9-b84d-77f16a6a2c30") 8243 def test_epdg_mo_mt_add_volte_swap_once_merge_drop_wfc_wifi_only(self): 8244 """Test swap and merge feature in epdg call. 8245 8246 PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. 8247 PhoneC (VoLTE) call PhoneA (epdg), accept on PhoneA. 8248 Swap active call on PhoneA. 8249 Merge calls to conference on PhoneA. 8250 Hangup on PhoneC, check call continues between AB. 8251 Hangup on PhoneB, check A ends. 8252 8253 """ 8254 ads = self.android_devices 8255 8256 tasks = [(phone_setup_iwlan, 8257 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 8258 self.wifi_network_ssid, self.wifi_network_pass)), 8259 (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, 8260 (self.log, ads[2]))] 8261 if not multithread_func(self.log, tasks): 8262 self.log.error("Phone Failed to Set Up Properly.") 8263 return False 8264 8265 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 8266 ads=ads, 8267 num_swaps=1, 8268 phone_setup_a=None, 8269 phone_setup_b=None, 8270 phone_setup_c=None, 8271 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8272 verify_phone_b_network_subscription=is_phone_in_call_volte, 8273 verify_phone_c_network_subscription=is_phone_in_call_volte) 8274 if call_ab_id is None or call_ac_id is None: 8275 return False 8276 8277 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8278 call_ab_id, call_ac_id) 8279 8280 8281 @TelephonyBaseTest.tel_test_wrap 8282 @test_tracker_info(uuid="5b4d7444-32a1-4e82-8847-1c4ae002edca") 8283 def test_epdg_mo_mt_add_volte_swap_once_merge_drop_wfc_wifi_preferred( 8284 self): 8285 """Test swap and merge feature in epdg call. 8286 8287 PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. 8288 PhoneC (VoLTE) call PhoneA (epdg), accept on PhoneA. 8289 Swap active call on PhoneA. 8290 Merge calls to conference on PhoneA. 8291 Hangup on PhoneC, check call continues between AB. 8292 Hangup on PhoneB, check A ends. 8293 8294 """ 8295 ads = self.android_devices 8296 8297 tasks = [(phone_setup_iwlan, 8298 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 8299 self.wifi_network_ssid, self.wifi_network_pass)), 8300 (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, 8301 (self.log, ads[2]))] 8302 if not multithread_func(self.log, tasks): 8303 self.log.error("Phone Failed to Set Up Properly.") 8304 return False 8305 8306 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 8307 ads=ads, 8308 num_swaps=1, 8309 phone_setup_a=None, 8310 phone_setup_b=None, 8311 phone_setup_c=None, 8312 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8313 verify_phone_b_network_subscription=is_phone_in_call_volte, 8314 verify_phone_c_network_subscription=is_phone_in_call_volte) 8315 if call_ab_id is None or call_ac_id is None: 8316 return False 8317 8318 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8319 call_ab_id, call_ac_id) 8320 8321 8322 @TelephonyBaseTest.tel_test_wrap 8323 @test_tracker_info(uuid="88c6c179-0b56-4d03-b5e4-76a147a40995") 8324 def test_epdg_mo_mt_add_volte_swap_twice_merge_drop_wfc_wifi_only(self): 8325 """Test swap and merge feature in epdg call. 8326 8327 PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. 8328 PhoneC (VoLTE) call PhoneA (epdg), accept on PhoneA. 8329 Swap active call on PhoneA. 8330 Swap active call on PhoneA. 8331 Merge calls to conference on PhoneA. 8332 Hangup on PhoneC, check call continues between AB. 8333 Hangup on PhoneB, check A ends. 8334 8335 """ 8336 ads = self.android_devices 8337 8338 tasks = [(phone_setup_iwlan, 8339 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 8340 self.wifi_network_ssid, self.wifi_network_pass)), 8341 (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, 8342 (self.log, ads[2]))] 8343 if not multithread_func(self.log, tasks): 8344 self.log.error("Phone Failed to Set Up Properly.") 8345 return False 8346 8347 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 8348 ads=ads, 8349 num_swaps=2, 8350 phone_setup_a=None, 8351 phone_setup_b=None, 8352 phone_setup_c=None, 8353 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8354 verify_phone_b_network_subscription=is_phone_in_call_volte, 8355 verify_phone_c_network_subscription=is_phone_in_call_volte) 8356 if call_ab_id is None or call_ac_id is None: 8357 return False 8358 8359 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8360 call_ab_id, call_ac_id) 8361 8362 8363 @TelephonyBaseTest.tel_test_wrap 8364 @test_tracker_info(uuid="7f744ab3-f919-4a7a-83ce-e38487d619cc") 8365 def test_epdg_mo_mt_add_volte_swap_twice_merge_drop_wfc_wifi_preferred( 8366 self): 8367 """Test swap and merge feature in epdg call. 8368 8369 PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. 8370 PhoneC (VoLTE) call PhoneA (epdg), accept on PhoneA. 8371 Swap active call on PhoneA. 8372 Swap active call on PhoneA. 8373 Merge calls to conference on PhoneA. 8374 Hangup on PhoneC, check call continues between AB. 8375 Hangup on PhoneB, check A ends. 8376 8377 """ 8378 ads = self.android_devices 8379 8380 tasks = [(phone_setup_iwlan, 8381 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 8382 self.wifi_network_ssid, self.wifi_network_pass)), 8383 (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, 8384 (self.log, ads[2]))] 8385 if not multithread_func(self.log, tasks): 8386 self.log.error("Phone Failed to Set Up Properly.") 8387 return False 8388 8389 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 8390 ads=ads, 8391 num_swaps=2, 8392 phone_setup_a=None, 8393 phone_setup_b=None, 8394 phone_setup_c=None, 8395 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8396 verify_phone_b_network_subscription=is_phone_in_call_volte, 8397 verify_phone_c_network_subscription=is_phone_in_call_volte) 8398 if call_ab_id is None or call_ac_id is None: 8399 return False 8400 8401 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8402 call_ab_id, call_ac_id) 8403 8404 8405 @TelephonyBaseTest.tel_test_wrap 8406 @test_tracker_info(uuid="5c861a99-a1b8-45fc-ba67-f8fde4575efc") 8407 def test_epdg_mo_mo_add_wcdma_swap_once_merge_drop_wfc_wifi_only(self): 8408 """Test swap and merge feature in epdg call. 8409 8410 PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. 8411 PhoneA (epdg) call PhoneC (WCDMA), accept on PhoneC. 8412 Swap active call on PhoneA. 8413 Merge calls to conference on PhoneA. 8414 Hangup on PhoneC, check call continues between AB. 8415 Hangup on PhoneB, check A ends. 8416 8417 """ 8418 ads = self.android_devices 8419 8420 tasks = [(phone_setup_iwlan, 8421 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 8422 self.wifi_network_ssid, self.wifi_network_pass)), 8423 (phone_setup_voice_3g, (self.log, ads[1])), 8424 (phone_setup_voice_3g, (self.log, ads[2]))] 8425 if not multithread_func(self.log, tasks): 8426 self.log.error("Phone Failed to Set Up Properly.") 8427 return False 8428 8429 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 8430 ads=ads, 8431 num_swaps=1, 8432 phone_setup_a=None, 8433 phone_setup_b=None, 8434 phone_setup_c=None, 8435 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8436 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 8437 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 8438 if call_ab_id is None or call_ac_id is None: 8439 return False 8440 8441 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8442 call_ab_id, call_ac_id) 8443 8444 8445 @TelephonyBaseTest.tel_test_wrap 8446 @test_tracker_info(uuid="fdb32a13-302c-4c1c-a77e-f78ed7e90911") 8447 def test_epdg_mo_mo_add_wcdma_swap_once_merge_drop_wfc_wifi_preferred( 8448 self): 8449 """Test swap and merge feature in epdg call. 8450 8451 PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. 8452 PhoneA (epdg) call PhoneC (WCDMA), accept on PhoneC. 8453 Swap active call on PhoneA. 8454 Merge calls to conference on PhoneA. 8455 Hangup on PhoneC, check call continues between AB. 8456 Hangup on PhoneB, check A ends. 8457 8458 """ 8459 ads = self.android_devices 8460 8461 tasks = [(phone_setup_iwlan, 8462 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 8463 self.wifi_network_ssid, self.wifi_network_pass)), 8464 (phone_setup_voice_3g, (self.log, ads[1])), 8465 (phone_setup_voice_3g, (self.log, ads[2]))] 8466 if not multithread_func(self.log, tasks): 8467 self.log.error("Phone Failed to Set Up Properly.") 8468 return False 8469 8470 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 8471 ads=ads, 8472 num_swaps=1, 8473 phone_setup_a=None, 8474 phone_setup_b=None, 8475 phone_setup_c=None, 8476 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8477 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 8478 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 8479 if call_ab_id is None or call_ac_id is None: 8480 return False 8481 8482 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8483 call_ab_id, call_ac_id) 8484 8485 8486 @TelephonyBaseTest.tel_test_wrap 8487 @test_tracker_info(uuid="a2cf3366-ae66-4e8f-a682-df506173f282") 8488 def test_epdg_mo_mo_add_wcdma_swap_twice_merge_drop_wfc_wifi_only(self): 8489 """Test swap and merge feature in epdg call. 8490 8491 PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. 8492 PhoneA (epdg) call PhoneC (WCDMA), accept on PhoneC. 8493 Swap active call on PhoneA. 8494 Swap active call on PhoneA. 8495 Merge calls to conference on PhoneA. 8496 Hangup on PhoneC, check call continues between AB. 8497 Hangup on PhoneB, check A ends. 8498 8499 """ 8500 ads = self.android_devices 8501 8502 tasks = [(phone_setup_iwlan, 8503 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 8504 self.wifi_network_ssid, self.wifi_network_pass)), 8505 (phone_setup_voice_3g, (self.log, ads[1])), 8506 (phone_setup_voice_3g, (self.log, ads[2]))] 8507 if not multithread_func(self.log, tasks): 8508 self.log.error("Phone Failed to Set Up Properly.") 8509 return False 8510 8511 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 8512 ads=ads, 8513 num_swaps=2, 8514 phone_setup_a=None, 8515 phone_setup_b=None, 8516 phone_setup_c=None, 8517 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8518 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 8519 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 8520 if call_ab_id is None or call_ac_id is None: 8521 return False 8522 8523 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8524 call_ab_id, call_ac_id) 8525 8526 8527 @TelephonyBaseTest.tel_test_wrap 8528 @test_tracker_info(uuid="fc5f0f1c-9610-4d0f-adce-9c8db351e7da") 8529 def test_epdg_mo_mo_add_wcdma_swap_twice_merge_drop_wfc_wifi_preferred( 8530 self): 8531 """Test swap and merge feature in epdg call. 8532 8533 PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. 8534 PhoneA (epdg) call PhoneC (WCDMA), accept on PhoneC. 8535 Swap active call on PhoneA. 8536 Swap active call on PhoneA. 8537 Merge calls to conference on PhoneA. 8538 Hangup on PhoneC, check call continues between AB. 8539 Hangup on PhoneB, check A ends. 8540 8541 """ 8542 ads = self.android_devices 8543 8544 tasks = [(phone_setup_iwlan, 8545 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 8546 self.wifi_network_ssid, self.wifi_network_pass)), 8547 (phone_setup_voice_3g, (self.log, ads[1])), 8548 (phone_setup_voice_3g, (self.log, ads[2]))] 8549 if not multithread_func(self.log, tasks): 8550 self.log.error("Phone Failed to Set Up Properly.") 8551 return False 8552 8553 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 8554 ads=ads, 8555 num_swaps=2, 8556 phone_setup_a=None, 8557 phone_setup_b=None, 8558 phone_setup_c=None, 8559 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8560 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 8561 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 8562 if call_ab_id is None or call_ac_id is None: 8563 return False 8564 8565 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8566 call_ab_id, call_ac_id) 8567 8568 8569 @TelephonyBaseTest.tel_test_wrap 8570 @test_tracker_info(uuid="05332b1e-c36b-4874-b13b-f8e49d0d9bca") 8571 def test_epdg_mo_mt_add_wcdma_swap_once_merge_drop_wfc_wifi_only(self): 8572 """Test swap and merge feature in epdg call. 8573 8574 PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. 8575 PhoneC (WCDMA) call PhoneA (epdg), accept on PhoneA. 8576 Swap active call on PhoneA. 8577 Merge calls to conference on PhoneA. 8578 Hangup on PhoneC, check call continues between AB. 8579 Hangup on PhoneB, check A ends. 8580 8581 """ 8582 ads = self.android_devices 8583 8584 tasks = [(phone_setup_iwlan, 8585 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 8586 self.wifi_network_ssid, self.wifi_network_pass)), 8587 (phone_setup_voice_3g, (self.log, ads[1])), 8588 (phone_setup_voice_3g, (self.log, ads[2]))] 8589 if not multithread_func(self.log, tasks): 8590 self.log.error("Phone Failed to Set Up Properly.") 8591 return False 8592 8593 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 8594 ads=ads, 8595 num_swaps=1, 8596 phone_setup_a=None, 8597 phone_setup_b=None, 8598 phone_setup_c=None, 8599 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8600 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 8601 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 8602 if call_ab_id is None or call_ac_id is None: 8603 return False 8604 8605 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8606 call_ab_id, call_ac_id) 8607 8608 8609 @TelephonyBaseTest.tel_test_wrap 8610 @test_tracker_info(uuid="2421d340-f9cb-47e7-ac3e-8581e141a6d0") 8611 def test_epdg_mo_mt_add_wcdma_swap_once_merge_drop_wfc_wifi_preferred( 8612 self): 8613 """Test swap and merge feature in epdg call. 8614 8615 PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. 8616 PhoneC (WCDMA) call PhoneA (epdg), accept on PhoneA. 8617 Swap active call on PhoneA. 8618 Merge calls to conference on PhoneA. 8619 Hangup on PhoneC, check call continues between AB. 8620 Hangup on PhoneB, check A ends. 8621 8622 """ 8623 ads = self.android_devices 8624 8625 tasks = [(phone_setup_iwlan, 8626 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 8627 self.wifi_network_ssid, self.wifi_network_pass)), 8628 (phone_setup_voice_3g, (self.log, ads[1])), 8629 (phone_setup_voice_3g, (self.log, ads[2]))] 8630 if not multithread_func(self.log, tasks): 8631 self.log.error("Phone Failed to Set Up Properly.") 8632 return False 8633 8634 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 8635 ads=ads, 8636 num_swaps=1, 8637 phone_setup_a=None, 8638 phone_setup_b=None, 8639 phone_setup_c=None, 8640 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8641 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 8642 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 8643 if call_ab_id is None or call_ac_id is None: 8644 return False 8645 8646 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8647 call_ab_id, call_ac_id) 8648 8649 8650 @TelephonyBaseTest.tel_test_wrap 8651 @test_tracker_info(uuid="7c1f6008-cf59-4e63-9285-3cf1c26bc0aa") 8652 def test_epdg_mo_mt_add_wcdma_swap_twice_merge_drop_wfc_wifi_only(self): 8653 """Test swap and merge feature in epdg call. 8654 8655 PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. 8656 PhoneC (WCDMA) call PhoneA (epdg), accept on PhoneA. 8657 Swap active call on PhoneA. 8658 Swap active call on PhoneA. 8659 Merge calls to conference on PhoneA. 8660 Hangup on PhoneC, check call continues between AB. 8661 Hangup on PhoneB, check A ends. 8662 8663 """ 8664 ads = self.android_devices 8665 8666 tasks = [(phone_setup_iwlan, 8667 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 8668 self.wifi_network_ssid, self.wifi_network_pass)), 8669 (phone_setup_voice_3g, (self.log, ads[1])), 8670 (phone_setup_voice_3g, (self.log, ads[2]))] 8671 if not multithread_func(self.log, tasks): 8672 self.log.error("Phone Failed to Set Up Properly.") 8673 return False 8674 8675 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 8676 ads=ads, 8677 num_swaps=2, 8678 phone_setup_a=None, 8679 phone_setup_b=None, 8680 phone_setup_c=None, 8681 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8682 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 8683 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 8684 if call_ab_id is None or call_ac_id is None: 8685 return False 8686 8687 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8688 call_ab_id, call_ac_id) 8689 8690 8691 @TelephonyBaseTest.tel_test_wrap 8692 @test_tracker_info(uuid="be153f3d-0707-45d0-9ddd-4aa696e0e536") 8693 def test_epdg_mo_mt_add_wcdma_swap_twice_merge_drop_wfc_wifi_preferred( 8694 self): 8695 """Test swap and merge feature in epdg call. 8696 8697 PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. 8698 PhoneC (WCDMA) call PhoneA (epdg), accept on PhoneA. 8699 Swap active call on PhoneA. 8700 Swap active call on PhoneA. 8701 Merge calls to conference on PhoneA. 8702 Hangup on PhoneC, check call continues between AB. 8703 Hangup on PhoneB, check A ends. 8704 8705 """ 8706 ads = self.android_devices 8707 8708 tasks = [(phone_setup_iwlan, 8709 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 8710 self.wifi_network_ssid, self.wifi_network_pass)), 8711 (phone_setup_voice_3g, (self.log, ads[1])), 8712 (phone_setup_voice_3g, (self.log, ads[2]))] 8713 if not multithread_func(self.log, tasks): 8714 self.log.error("Phone Failed to Set Up Properly.") 8715 return False 8716 8717 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 8718 ads=ads, 8719 num_swaps=2, 8720 phone_setup_a=None, 8721 phone_setup_b=None, 8722 phone_setup_c=None, 8723 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8724 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 8725 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 8726 if call_ab_id is None or call_ac_id is None: 8727 return False 8728 8729 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8730 call_ab_id, call_ac_id) 8731 8732 8733 @TelephonyBaseTest.tel_test_wrap 8734 @test_tracker_info(uuid="7235c917-a2d4-4561-bda5-630171053f8f") 8735 def test_epdg_mo_mo_add_1x_swap_once_merge_drop_wfc_wifi_only(self): 8736 """Test swap and merge feature in epdg call. 8737 8738 PhoneA (epdg) call PhoneB (1x), accept on PhoneB. 8739 PhoneA (epdg) call PhoneC (1x), accept on PhoneC. 8740 Swap active call on PhoneA. 8741 Merge calls to conference on PhoneA. 8742 Hangup on PhoneC, check call continues between AB. 8743 Hangup on PhoneB, check A ends. 8744 8745 """ 8746 ads = self.android_devices 8747 8748 tasks = [(phone_setup_iwlan, 8749 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 8750 self.wifi_network_ssid, self.wifi_network_pass)), 8751 (phone_setup_voice_3g, (self.log, ads[1])), 8752 (phone_setup_voice_3g, (self.log, ads[2]))] 8753 if not multithread_func(self.log, tasks): 8754 self.log.error("Phone Failed to Set Up Properly.") 8755 return False 8756 8757 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 8758 ads=ads, 8759 num_swaps=1, 8760 phone_setup_a=None, 8761 phone_setup_b=None, 8762 phone_setup_c=None, 8763 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8764 verify_phone_b_network_subscription=is_phone_in_call_1x, 8765 verify_phone_c_network_subscription=is_phone_in_call_1x) 8766 if call_ab_id is None or call_ac_id is None: 8767 return False 8768 8769 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8770 call_ab_id, call_ac_id) 8771 8772 8773 @TelephonyBaseTest.tel_test_wrap 8774 @test_tracker_info(uuid="8e52b9a4-c0d1-4dcd-9359-746354124763") 8775 def test_epdg_mo_mo_add_1x_swap_once_merge_drop_wfc_wifi_preferred(self): 8776 """Test swap and merge feature in epdg call. 8777 8778 PhoneA (epdg) call PhoneB (1x), accept on PhoneB. 8779 PhoneA (epdg) call PhoneC (1x), accept on PhoneC. 8780 Swap active call on PhoneA. 8781 Merge calls to conference on PhoneA. 8782 Hangup on PhoneC, check call continues between AB. 8783 Hangup on PhoneB, check A ends. 8784 8785 """ 8786 ads = self.android_devices 8787 8788 tasks = [(phone_setup_iwlan, 8789 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 8790 self.wifi_network_ssid, self.wifi_network_pass)), 8791 (phone_setup_voice_3g, (self.log, ads[1])), 8792 (phone_setup_voice_3g, (self.log, ads[2]))] 8793 if not multithread_func(self.log, tasks): 8794 self.log.error("Phone Failed to Set Up Properly.") 8795 return False 8796 8797 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 8798 ads=ads, 8799 num_swaps=1, 8800 phone_setup_a=None, 8801 phone_setup_b=None, 8802 phone_setup_c=None, 8803 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8804 verify_phone_b_network_subscription=is_phone_in_call_1x, 8805 verify_phone_c_network_subscription=is_phone_in_call_1x) 8806 if call_ab_id is None or call_ac_id is None: 8807 return False 8808 8809 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8810 call_ab_id, call_ac_id) 8811 8812 8813 @TelephonyBaseTest.tel_test_wrap 8814 @test_tracker_info(uuid="49a4440f-40a1-4518-810a-6ba9f1fbc243") 8815 def test_epdg_mo_mo_add_1x_swap_twice_merge_drop_wfc_wifi_only(self): 8816 """Test swap and merge feature in epdg call. 8817 8818 PhoneA (epdg) call PhoneB (1x), accept on PhoneB. 8819 PhoneA (epdg) call PhoneC (1x), accept on PhoneC. 8820 Swap active call on PhoneA. 8821 Swap active call on PhoneA. 8822 Merge calls to conference on PhoneA. 8823 Hangup on PhoneC, check call continues between AB. 8824 Hangup on PhoneB, check A ends. 8825 8826 """ 8827 ads = self.android_devices 8828 8829 tasks = [(phone_setup_iwlan, 8830 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 8831 self.wifi_network_ssid, self.wifi_network_pass)), 8832 (phone_setup_voice_3g, (self.log, ads[1])), 8833 (phone_setup_voice_3g, (self.log, ads[2]))] 8834 if not multithread_func(self.log, tasks): 8835 self.log.error("Phone Failed to Set Up Properly.") 8836 return False 8837 8838 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 8839 ads=ads, 8840 num_swaps=2, 8841 phone_setup_a=None, 8842 phone_setup_b=None, 8843 phone_setup_c=None, 8844 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8845 verify_phone_b_network_subscription=is_phone_in_call_1x, 8846 verify_phone_c_network_subscription=is_phone_in_call_1x) 8847 if call_ab_id is None or call_ac_id is None: 8848 return False 8849 8850 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8851 call_ab_id, call_ac_id) 8852 8853 8854 @TelephonyBaseTest.tel_test_wrap 8855 @test_tracker_info(uuid="9d05bde3-50ac-4a49-a0db-2181c9b5a10f") 8856 def test_epdg_mo_mo_add_1x_swap_twice_merge_drop_wfc_wifi_preferred(self): 8857 """Test swap and merge feature in epdg call. 8858 8859 PhoneA (epdg) call PhoneB (1x), accept on PhoneB. 8860 PhoneA (epdg) call PhoneC (1x), accept on PhoneC. 8861 Swap active call on PhoneA. 8862 Swap active call on PhoneA. 8863 Merge calls to conference on PhoneA. 8864 Hangup on PhoneC, check call continues between AB. 8865 Hangup on PhoneB, check A ends. 8866 8867 """ 8868 ads = self.android_devices 8869 8870 tasks = [(phone_setup_iwlan, 8871 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 8872 self.wifi_network_ssid, self.wifi_network_pass)), 8873 (phone_setup_voice_3g, (self.log, ads[1])), 8874 (phone_setup_voice_3g, (self.log, ads[2]))] 8875 if not multithread_func(self.log, tasks): 8876 self.log.error("Phone Failed to Set Up Properly.") 8877 return False 8878 8879 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 8880 ads=ads, 8881 num_swaps=2, 8882 phone_setup_a=None, 8883 phone_setup_b=None, 8884 phone_setup_c=None, 8885 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8886 verify_phone_b_network_subscription=is_phone_in_call_1x, 8887 verify_phone_c_network_subscription=is_phone_in_call_1x) 8888 if call_ab_id is None or call_ac_id is None: 8889 return False 8890 8891 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8892 call_ab_id, call_ac_id) 8893 8894 8895 @TelephonyBaseTest.tel_test_wrap 8896 @test_tracker_info(uuid="5c44eb64-b184-417a-97c9-8c22c48fb731") 8897 def test_epdg_mo_mt_add_1x_swap_once_merge_drop_wfc_wifi_only(self): 8898 """Test swap and merge feature in epdg call. 8899 8900 PhoneA (epdg) call PhoneB (1x), accept on PhoneB. 8901 PhoneC (1x) call PhoneA (epdg), accept on PhoneA. 8902 Swap active call on PhoneA. 8903 Merge calls to conference on PhoneA. 8904 Hangup on PhoneC, check call continues between AB. 8905 Hangup on PhoneB, check A ends. 8906 8907 """ 8908 ads = self.android_devices 8909 8910 tasks = [(phone_setup_iwlan, 8911 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 8912 self.wifi_network_ssid, self.wifi_network_pass)), 8913 (phone_setup_voice_3g, (self.log, ads[1])), 8914 (phone_setup_voice_3g, (self.log, ads[2]))] 8915 if not multithread_func(self.log, tasks): 8916 self.log.error("Phone Failed to Set Up Properly.") 8917 return False 8918 8919 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 8920 ads=ads, 8921 num_swaps=1, 8922 phone_setup_a=None, 8923 phone_setup_b=None, 8924 phone_setup_c=None, 8925 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8926 verify_phone_b_network_subscription=is_phone_in_call_1x, 8927 verify_phone_c_network_subscription=is_phone_in_call_1x) 8928 if call_ab_id is None or call_ac_id is None: 8929 return False 8930 8931 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8932 call_ab_id, call_ac_id) 8933 8934 8935 @TelephonyBaseTest.tel_test_wrap 8936 @test_tracker_info(uuid="e16e2e81-1b59-4b02-b601-bb27b62d6468") 8937 def test_epdg_mo_mt_add_1x_swap_once_merge_drop_wfc_wifi_preferred(self): 8938 """Test swap and merge feature in epdg call. 8939 8940 PhoneA (epdg) call PhoneB (1x), accept on PhoneB. 8941 PhoneC (1x) call PhoneA (epdg), accept on PhoneA. 8942 Swap active call on PhoneA. 8943 Merge calls to conference on PhoneA. 8944 Hangup on PhoneC, check call continues between AB. 8945 Hangup on PhoneB, check A ends. 8946 8947 """ 8948 ads = self.android_devices 8949 8950 tasks = [(phone_setup_iwlan, 8951 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 8952 self.wifi_network_ssid, self.wifi_network_pass)), 8953 (phone_setup_voice_3g, (self.log, ads[1])), 8954 (phone_setup_voice_3g, (self.log, ads[2]))] 8955 if not multithread_func(self.log, tasks): 8956 self.log.error("Phone Failed to Set Up Properly.") 8957 return False 8958 8959 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 8960 ads=ads, 8961 num_swaps=1, 8962 phone_setup_a=None, 8963 phone_setup_b=None, 8964 phone_setup_c=None, 8965 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 8966 verify_phone_b_network_subscription=is_phone_in_call_1x, 8967 verify_phone_c_network_subscription=is_phone_in_call_1x) 8968 if call_ab_id is None or call_ac_id is None: 8969 return False 8970 8971 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 8972 call_ab_id, call_ac_id) 8973 8974 8975 @TelephonyBaseTest.tel_test_wrap 8976 @test_tracker_info(uuid="fd4c3b72-ea2d-4cd4-af79-b93635eda8b8") 8977 def test_epdg_mo_mt_add_1x_swap_twice_merge_drop_wfc_wifi_only(self): 8978 """Test swap and merge feature in epdg call. 8979 8980 PhoneA (epdg) call PhoneB (1x), accept on PhoneB. 8981 PhoneC (1x) call PhoneA (epdg), accept on PhoneA. 8982 Swap active call on PhoneA. 8983 Swap active call on PhoneA. 8984 Merge calls to conference on PhoneA. 8985 Hangup on PhoneC, check call continues between AB. 8986 Hangup on PhoneB, check A ends. 8987 8988 """ 8989 ads = self.android_devices 8990 8991 tasks = [(phone_setup_iwlan, 8992 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 8993 self.wifi_network_ssid, self.wifi_network_pass)), 8994 (phone_setup_voice_3g, (self.log, ads[1])), 8995 (phone_setup_voice_3g, (self.log, ads[2]))] 8996 if not multithread_func(self.log, tasks): 8997 self.log.error("Phone Failed to Set Up Properly.") 8998 return False 8999 9000 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 9001 ads=ads, 9002 num_swaps=2, 9003 phone_setup_a=None, 9004 phone_setup_b=None, 9005 phone_setup_c=None, 9006 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9007 verify_phone_b_network_subscription=is_phone_in_call_1x, 9008 verify_phone_c_network_subscription=is_phone_in_call_1x) 9009 if call_ab_id is None or call_ac_id is None: 9010 return False 9011 9012 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 9013 call_ab_id, call_ac_id) 9014 9015 9016 @TelephonyBaseTest.tel_test_wrap 9017 @test_tracker_info(uuid="a33d7b2b-cc22-40c3-9689-a2a14642396d") 9018 def test_epdg_mo_mt_add_1x_swap_twice_merge_drop_wfc_wifi_preferred(self): 9019 """Test swap and merge feature in epdg call. 9020 9021 PhoneA (epdg) call PhoneB (1x), accept on PhoneB. 9022 PhoneC (1x) call PhoneA (epdg), accept on PhoneA. 9023 Swap active call on PhoneA. 9024 Swap active call on PhoneA. 9025 Merge calls to conference on PhoneA. 9026 Hangup on PhoneC, check call continues between AB. 9027 Hangup on PhoneB, check A ends. 9028 9029 """ 9030 ads = self.android_devices 9031 9032 tasks = [(phone_setup_iwlan, 9033 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 9034 self.wifi_network_ssid, self.wifi_network_pass)), 9035 (phone_setup_voice_3g, (self.log, ads[1])), 9036 (phone_setup_voice_3g, (self.log, ads[2]))] 9037 if not multithread_func(self.log, tasks): 9038 self.log.error("Phone Failed to Set Up Properly.") 9039 return False 9040 9041 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 9042 ads=ads, 9043 num_swaps=2, 9044 phone_setup_a=None, 9045 phone_setup_b=None, 9046 phone_setup_c=None, 9047 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9048 verify_phone_b_network_subscription=is_phone_in_call_1x, 9049 verify_phone_c_network_subscription=is_phone_in_call_1x) 9050 if call_ab_id is None or call_ac_id is None: 9051 return False 9052 9053 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 9054 call_ab_id, call_ac_id) 9055 9056 9057 @TelephonyBaseTest.tel_test_wrap 9058 @test_tracker_info(uuid="7839c6a3-6797-4cd0-a918-c7d317881e3d") 9059 def test_epdg_mo_mo_add_epdg_swap_twice_drop_held_wfc_wifi_only(self): 9060 """Test swap feature in epdg call. 9061 9062 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9063 PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. 9064 Swap active call on PhoneA. 9065 Swap active call on PhoneA. 9066 Hangup call from PhoneB, check if call continues between AC. 9067 9068 """ 9069 ads = self.android_devices 9070 9071 tasks = [(phone_setup_iwlan, 9072 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 9073 self.wifi_network_ssid, self.wifi_network_pass)), 9074 (phone_setup_iwlan, 9075 (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, 9076 self.wifi_network_ssid, self.wifi_network_pass)), 9077 (phone_setup_iwlan, 9078 (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, 9079 self.wifi_network_ssid, self.wifi_network_pass))] 9080 if not multithread_func(self.log, tasks): 9081 self.log.error("Phone Failed to Set Up Properly.") 9082 return False 9083 9084 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 9085 ads=ads, 9086 num_swaps=2, 9087 phone_setup_a=None, 9088 phone_setup_b=None, 9089 phone_setup_c=None, 9090 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9091 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9092 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9093 if call_ab_id is None or call_ac_id is None: 9094 return False 9095 9096 return _three_phone_hangup_call_verify_call_state(log=self.log, 9097 ad_hangup=ads[1], 9098 ad_verify=ads[0], 9099 call_id=call_ac_id, 9100 call_state=CALL_STATE_ACTIVE, 9101 ads_active=[ads[0], ads[2]]) 9102 9103 9104 @TelephonyBaseTest.tel_test_wrap 9105 @test_tracker_info(uuid="3f4e761e-8fa2-4b85-bc11-8150532b7686") 9106 def test_epdg_mo_mo_add_epdg_swap_twice_drop_held_wfc_wifi_preferred(self): 9107 """Test swap feature in epdg call. 9108 9109 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9110 PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. 9111 Swap active call on PhoneA. 9112 Swap active call on PhoneA. 9113 Hangup call from PhoneB, check if call continues between AC. 9114 9115 """ 9116 ads = self.android_devices 9117 9118 tasks = [(phone_setup_iwlan, 9119 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 9120 self.wifi_network_ssid, self.wifi_network_pass)), 9121 (phone_setup_iwlan, 9122 (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, 9123 self.wifi_network_ssid, self.wifi_network_pass)), 9124 (phone_setup_iwlan, 9125 (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, 9126 self.wifi_network_ssid, self.wifi_network_pass))] 9127 if not multithread_func(self.log, tasks): 9128 self.log.error("Phone Failed to Set Up Properly.") 9129 return False 9130 9131 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 9132 ads=ads, 9133 num_swaps=2, 9134 phone_setup_a=None, 9135 phone_setup_b=None, 9136 phone_setup_c=None, 9137 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9138 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9139 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9140 if call_ab_id is None or call_ac_id is None: 9141 return False 9142 9143 return _three_phone_hangup_call_verify_call_state(log=self.log, 9144 ad_hangup=ads[1], 9145 ad_verify=ads[0], 9146 call_id=call_ac_id, 9147 call_state=CALL_STATE_ACTIVE, 9148 ads_active=[ads[0], ads[2]]) 9149 9150 9151 @TelephonyBaseTest.tel_test_wrap 9152 @test_tracker_info(uuid="9fd4f171-9eea-4fc7-91f1-d3c7f08a5fad") 9153 def test_epdg_mo_mo_add_epdg_swap_twice_drop_active_wfc_wifi_only(self): 9154 """Test swap feature in epdg call. 9155 9156 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9157 PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. 9158 Swap active call on PhoneA. 9159 Swap active call on PhoneA. 9160 Hangup call from PhoneC, check if call continues between AB. 9161 9162 """ 9163 ads = self.android_devices 9164 9165 tasks = [(phone_setup_iwlan, 9166 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 9167 self.wifi_network_ssid, self.wifi_network_pass)), 9168 (phone_setup_iwlan, 9169 (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, 9170 self.wifi_network_ssid, self.wifi_network_pass)), 9171 (phone_setup_iwlan, 9172 (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, 9173 self.wifi_network_ssid, self.wifi_network_pass))] 9174 if not multithread_func(self.log, tasks): 9175 self.log.error("Phone Failed to Set Up Properly.") 9176 return False 9177 9178 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 9179 ads=ads, 9180 num_swaps=2, 9181 phone_setup_a=None, 9182 phone_setup_b=None, 9183 phone_setup_c=None, 9184 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9185 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9186 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9187 if call_ab_id is None or call_ac_id is None: 9188 return False 9189 9190 return _three_phone_hangup_call_verify_call_state(log=self.log, 9191 ad_hangup=ads[2], 9192 ad_verify=ads[0], 9193 call_id=call_ab_id, 9194 call_state=_get_expected_call_state(ads[0]), 9195 ads_active=[ads[0], ads[1]]) 9196 9197 9198 @TelephonyBaseTest.tel_test_wrap 9199 @test_tracker_info(uuid="8b97d6b9-253a-4ab7-8afb-126df71fee41") 9200 def test_epdg_mo_mo_add_epdg_swap_twice_drop_active_wfc_wifi_preferred( 9201 self): 9202 """Test swap feature in epdg call. 9203 9204 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9205 PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. 9206 Swap active call on PhoneA. 9207 Swap active call on PhoneA. 9208 Hangup call from PhoneC, check if call continues between AB. 9209 9210 """ 9211 ads = self.android_devices 9212 9213 tasks = [(phone_setup_iwlan, 9214 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 9215 self.wifi_network_ssid, self.wifi_network_pass)), 9216 (phone_setup_iwlan, 9217 (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, 9218 self.wifi_network_ssid, self.wifi_network_pass)), 9219 (phone_setup_iwlan, 9220 (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, 9221 self.wifi_network_ssid, self.wifi_network_pass))] 9222 if not multithread_func(self.log, tasks): 9223 self.log.error("Phone Failed to Set Up Properly.") 9224 return False 9225 9226 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 9227 ads=ads, 9228 num_swaps=2, 9229 phone_setup_a=None, 9230 phone_setup_b=None, 9231 phone_setup_c=None, 9232 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9233 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9234 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9235 if call_ab_id is None or call_ac_id is None: 9236 return False 9237 9238 return _three_phone_hangup_call_verify_call_state(log=self.log, 9239 ad_hangup=ads[2], 9240 ad_verify=ads[0], 9241 call_id=call_ab_id, 9242 call_state=_get_expected_call_state(ads[0]), 9243 ads_active=[ads[0], ads[1]]) 9244 9245 9246 @TelephonyBaseTest.tel_test_wrap 9247 @test_tracker_info(uuid="6617e779-c987-41dd-acda-ff132662ccf0") 9248 def test_epdg_mo_mo_add_epdg_swap_twice_drop_active_apm_wifi_preferred( 9249 self): 9250 """Test swap feature in epdg call. 9251 9252 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9253 PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. 9254 Swap active call on PhoneA. 9255 Swap active call on PhoneA. 9256 Hangup call from PhoneC, check if call continues between AB. 9257 9258 """ 9259 ads = self.android_devices 9260 9261 tasks = [(phone_setup_iwlan, 9262 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 9263 self.wifi_network_ssid, self.wifi_network_pass)), 9264 (phone_setup_iwlan, 9265 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 9266 self.wifi_network_ssid, self.wifi_network_pass)), 9267 (phone_setup_iwlan, 9268 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 9269 self.wifi_network_ssid, self.wifi_network_pass))] 9270 if not multithread_func(self.log, tasks): 9271 self.log.error("Phone Failed to Set Up Properly.") 9272 return False 9273 9274 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 9275 ads=ads, 9276 num_swaps=2, 9277 phone_setup_a=None, 9278 phone_setup_b=None, 9279 phone_setup_c=None, 9280 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9281 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9282 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9283 if call_ab_id is None or call_ac_id is None: 9284 return False 9285 9286 return _three_phone_hangup_call_verify_call_state(log=self.log, 9287 ad_hangup=ads[2], 9288 ad_verify=ads[0], 9289 call_id=call_ab_id, 9290 call_state=_get_expected_call_state(ads[0]), 9291 ads_active=[ads[0], ads[1]]) 9292 9293 9294 @TelephonyBaseTest.tel_test_wrap 9295 @test_tracker_info(uuid="f8b61289-ccc5-4adf-b291-94c73925edb3") 9296 def test_epdg_mo_mt_add_epdg_swap_twice_drop_held_wfc_wifi_only(self): 9297 """Test swap feature in epdg call. 9298 9299 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9300 PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. 9301 Swap active call on PhoneA. 9302 Swap active call on PhoneA. 9303 Hangup call from PhoneB, check if call continues between AC. 9304 9305 """ 9306 ads = self.android_devices 9307 9308 tasks = [(phone_setup_iwlan, 9309 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 9310 self.wifi_network_ssid, self.wifi_network_pass)), 9311 (phone_setup_iwlan, 9312 (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, 9313 self.wifi_network_ssid, self.wifi_network_pass)), 9314 (phone_setup_iwlan, 9315 (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, 9316 self.wifi_network_ssid, self.wifi_network_pass))] 9317 if not multithread_func(self.log, tasks): 9318 self.log.error("Phone Failed to Set Up Properly.") 9319 return False 9320 9321 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 9322 ads=ads, 9323 num_swaps=2, 9324 phone_setup_a=None, 9325 phone_setup_b=None, 9326 phone_setup_c=None, 9327 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9328 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9329 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9330 if call_ab_id is None or call_ac_id is None: 9331 return False 9332 9333 return _three_phone_hangup_call_verify_call_state(log=self.log, 9334 ad_hangup=ads[1], 9335 ad_verify=ads[0], 9336 call_id=call_ac_id, 9337 call_state=CALL_STATE_ACTIVE, 9338 ads_active=[ads[0], ads[2]]) 9339 9340 9341 @TelephonyBaseTest.tel_test_wrap 9342 @test_tracker_info(uuid="bb975203-7cee-4fbc-ad4a-da473413e410") 9343 def test_epdg_mo_mt_add_epdg_swap_twice_drop_held_wfc_wifi_preferred(self): 9344 """Test swap feature in epdg call. 9345 9346 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9347 PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. 9348 Swap active call on PhoneA. 9349 Swap active call on PhoneA. 9350 Hangup call from PhoneB, check if call continues between AC. 9351 9352 """ 9353 ads = self.android_devices 9354 9355 tasks = [(phone_setup_iwlan, 9356 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 9357 self.wifi_network_ssid, self.wifi_network_pass)), 9358 (phone_setup_iwlan, 9359 (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, 9360 self.wifi_network_ssid, self.wifi_network_pass)), 9361 (phone_setup_iwlan, 9362 (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, 9363 self.wifi_network_ssid, self.wifi_network_pass))] 9364 if not multithread_func(self.log, tasks): 9365 self.log.error("Phone Failed to Set Up Properly.") 9366 return False 9367 9368 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 9369 ads=ads, 9370 num_swaps=2, 9371 phone_setup_a=None, 9372 phone_setup_b=None, 9373 phone_setup_c=None, 9374 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9375 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9376 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9377 if call_ab_id is None or call_ac_id is None: 9378 return False 9379 9380 return _three_phone_hangup_call_verify_call_state(log=self.log, 9381 ad_hangup=ads[1], 9382 ad_verify=ads[0], 9383 call_id=call_ac_id, 9384 call_state=CALL_STATE_ACTIVE, 9385 ads_active=[ads[0], ads[2]]) 9386 9387 9388 @TelephonyBaseTest.tel_test_wrap 9389 @test_tracker_info(uuid="593f6034-fd15-4b1d-a9fe-c4331e6a7f72") 9390 def test_epdg_mo_mt_add_epdg_swap_twice_drop_active_wfc_wifi_only(self): 9391 """Test swap feature in epdg call. 9392 9393 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9394 PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. 9395 Swap active call on PhoneA. 9396 Swap active call on PhoneA. 9397 Hangup call from PhoneC, check if call continues between AB. 9398 9399 """ 9400 ads = self.android_devices 9401 9402 tasks = [(phone_setup_iwlan, 9403 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 9404 self.wifi_network_ssid, self.wifi_network_pass)), 9405 (phone_setup_iwlan, 9406 (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, 9407 self.wifi_network_ssid, self.wifi_network_pass)), 9408 (phone_setup_iwlan, 9409 (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, 9410 self.wifi_network_ssid, self.wifi_network_pass))] 9411 if not multithread_func(self.log, tasks): 9412 self.log.error("Phone Failed to Set Up Properly.") 9413 return False 9414 9415 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 9416 ads=ads, 9417 num_swaps=2, 9418 phone_setup_a=None, 9419 phone_setup_b=None, 9420 phone_setup_c=None, 9421 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9422 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9423 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9424 if call_ab_id is None or call_ac_id is None: 9425 return False 9426 9427 return _three_phone_hangup_call_verify_call_state(log=self.log, 9428 ad_hangup=ads[2], 9429 ad_verify=ads[0], 9430 call_id=call_ab_id, 9431 call_state=_get_expected_call_state(ads[0]), 9432 ads_active=[ads[0], ads[1]]) 9433 9434 9435 @TelephonyBaseTest.tel_test_wrap 9436 @test_tracker_info(uuid="adc3fb00-543e-44ec-905b-0eea52790896") 9437 def test_epdg_mo_mt_add_epdg_swap_twice_drop_active_wfc_wifi_preferred( 9438 self): 9439 """Test swap feature in epdg call. 9440 9441 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9442 PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. 9443 Swap active call on PhoneA. 9444 Swap active call on PhoneA. 9445 Hangup call from PhoneC, check if call continues between AB. 9446 9447 """ 9448 ads = self.android_devices 9449 9450 tasks = [(phone_setup_iwlan, 9451 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 9452 self.wifi_network_ssid, self.wifi_network_pass)), 9453 (phone_setup_iwlan, 9454 (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, 9455 self.wifi_network_ssid, self.wifi_network_pass)), 9456 (phone_setup_iwlan, 9457 (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, 9458 self.wifi_network_ssid, self.wifi_network_pass))] 9459 if not multithread_func(self.log, tasks): 9460 self.log.error("Phone Failed to Set Up Properly.") 9461 return False 9462 9463 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 9464 ads=ads, 9465 num_swaps=2, 9466 phone_setup_a=None, 9467 phone_setup_b=None, 9468 phone_setup_c=None, 9469 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9470 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9471 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9472 if call_ab_id is None or call_ac_id is None: 9473 return False 9474 9475 return _three_phone_hangup_call_verify_call_state(log=self.log, 9476 ad_hangup=ads[2], 9477 ad_verify=ads[0], 9478 call_id=call_ab_id, 9479 call_state=_get_expected_call_state(ads[0]), 9480 ads_active=[ads[0], ads[1]]) 9481 9482 9483 @TelephonyBaseTest.tel_test_wrap 9484 @test_tracker_info(uuid="e96aac52-c536-4a08-9e6a-8bf598db9267") 9485 def test_epdg_mo_mo_add_epdg_swap_once_drop_held_wfc_wifi_only(self): 9486 """Test swap feature in epdg call. 9487 9488 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9489 PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. 9490 Swap active call on PhoneA. 9491 Hangup call from PhoneC, check if call continues between AB. 9492 9493 """ 9494 ads = self.android_devices 9495 9496 tasks = [(phone_setup_iwlan, 9497 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 9498 self.wifi_network_ssid, self.wifi_network_pass)), 9499 (phone_setup_iwlan, 9500 (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, 9501 self.wifi_network_ssid, self.wifi_network_pass)), 9502 (phone_setup_iwlan, 9503 (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, 9504 self.wifi_network_ssid, self.wifi_network_pass))] 9505 if not multithread_func(self.log, tasks): 9506 self.log.error("Phone Failed to Set Up Properly.") 9507 return False 9508 9509 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 9510 ads=ads, 9511 num_swaps=1, 9512 phone_setup_a=None, 9513 phone_setup_b=None, 9514 phone_setup_c=None, 9515 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9516 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9517 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9518 if call_ab_id is None or call_ac_id is None: 9519 return False 9520 9521 return _three_phone_hangup_call_verify_call_state(log=self.log, 9522 ad_hangup=ads[2], 9523 ad_verify=ads[0], 9524 call_id=call_ab_id, 9525 call_state=CALL_STATE_ACTIVE, 9526 ads_active=[ads[0], ads[1]]) 9527 9528 9529 @TelephonyBaseTest.tel_test_wrap 9530 @test_tracker_info(uuid="74efa176-1ff2-4b06-9739-06f67009cb5d") 9531 def test_epdg_mo_mo_add_epdg_swap_once_drop_held_wfc_wifi_preferred(self): 9532 """Test swap feature in epdg call. 9533 9534 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9535 PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. 9536 Swap active call on PhoneA. 9537 Hangup call from PhoneC, check if call continues between AB. 9538 9539 """ 9540 ads = self.android_devices 9541 9542 tasks = [(phone_setup_iwlan, 9543 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 9544 self.wifi_network_ssid, self.wifi_network_pass)), 9545 (phone_setup_iwlan, 9546 (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, 9547 self.wifi_network_ssid, self.wifi_network_pass)), 9548 (phone_setup_iwlan, 9549 (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, 9550 self.wifi_network_ssid, self.wifi_network_pass))] 9551 if not multithread_func(self.log, tasks): 9552 self.log.error("Phone Failed to Set Up Properly.") 9553 return False 9554 9555 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 9556 ads=ads, 9557 num_swaps=1, 9558 phone_setup_a=None, 9559 phone_setup_b=None, 9560 phone_setup_c=None, 9561 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9562 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9563 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9564 if call_ab_id is None or call_ac_id is None: 9565 return False 9566 9567 return _three_phone_hangup_call_verify_call_state(log=self.log, 9568 ad_hangup=ads[2], 9569 ad_verify=ads[0], 9570 call_id=call_ab_id, 9571 call_state=CALL_STATE_ACTIVE, 9572 ads_active=[ads[0], ads[1]]) 9573 9574 9575 @TelephonyBaseTest.tel_test_wrap 9576 @test_tracker_info(uuid="dfcdeebe-dada-4722-8880-5b3877d0809b") 9577 def test_epdg_mo_mo_add_epdg_swap_once_drop_active_wfc_wifi_only(self): 9578 """Test swap feature in epdg call. 9579 9580 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9581 PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. 9582 Swap active call on PhoneA. 9583 Hangup call from PhoneB, check if call continues between AC. 9584 9585 """ 9586 ads = self.android_devices 9587 9588 tasks = [(phone_setup_iwlan, 9589 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 9590 self.wifi_network_ssid, self.wifi_network_pass)), 9591 (phone_setup_iwlan, 9592 (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, 9593 self.wifi_network_ssid, self.wifi_network_pass)), 9594 (phone_setup_iwlan, 9595 (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, 9596 self.wifi_network_ssid, self.wifi_network_pass))] 9597 if not multithread_func(self.log, tasks): 9598 self.log.error("Phone Failed to Set Up Properly.") 9599 return False 9600 9601 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 9602 ads=ads, 9603 num_swaps=1, 9604 phone_setup_a=None, 9605 phone_setup_b=None, 9606 phone_setup_c=None, 9607 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9608 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9609 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9610 if call_ab_id is None or call_ac_id is None: 9611 return False 9612 9613 return _three_phone_hangup_call_verify_call_state(log=self.log, 9614 ad_hangup=ads[1], 9615 ad_verify=ads[0], 9616 call_id=call_ac_id, 9617 call_state=_get_expected_call_state(ads[0]), 9618 ads_active=[ads[0], ads[2]]) 9619 9620 9621 @TelephonyBaseTest.tel_test_wrap 9622 @test_tracker_info(uuid="b9658029-90da-4df8-bbb2-9c08eb3a3a8c") 9623 def test_epdg_mo_mo_add_epdg_swap_once_drop_active_wfc_wifi_preferred( 9624 self): 9625 """Test swap feature in epdg call. 9626 9627 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9628 PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. 9629 Swap active call on PhoneA. 9630 Hangup call from PhoneB, check if call continues between AC. 9631 9632 """ 9633 ads = self.android_devices 9634 9635 tasks = [(phone_setup_iwlan, 9636 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 9637 self.wifi_network_ssid, self.wifi_network_pass)), 9638 (phone_setup_iwlan, 9639 (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, 9640 self.wifi_network_ssid, self.wifi_network_pass)), 9641 (phone_setup_iwlan, 9642 (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, 9643 self.wifi_network_ssid, self.wifi_network_pass))] 9644 if not multithread_func(self.log, tasks): 9645 self.log.error("Phone Failed to Set Up Properly.") 9646 return False 9647 9648 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 9649 ads=ads, 9650 num_swaps=1, 9651 phone_setup_a=None, 9652 phone_setup_b=None, 9653 phone_setup_c=None, 9654 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9655 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9656 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9657 if call_ab_id is None or call_ac_id is None: 9658 return False 9659 9660 return _three_phone_hangup_call_verify_call_state(log=self.log, 9661 ad_hangup=ads[1], 9662 ad_verify=ads[0], 9663 call_id=call_ac_id, 9664 call_state=_get_expected_call_state(ads[0]), 9665 ads_active=[ads[0], ads[2]]) 9666 9667 9668 @TelephonyBaseTest.tel_test_wrap 9669 @test_tracker_info(uuid="3381c8e0-cdf1-47d1-8a17-58592f3cd6e6") 9670 def test_epdg_mo_mo_add_epdg_swap_once_drop_active_apm_wfc_wifi_preferred( 9671 self): 9672 """Test swap feature in epdg call. 9673 9674 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9675 PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. 9676 Swap active call on PhoneA. 9677 Hangup call from PhoneB, check if call continues between AC. 9678 9679 """ 9680 ads = self.android_devices 9681 9682 tasks = [(phone_setup_iwlan, 9683 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 9684 self.wifi_network_ssid, self.wifi_network_pass)), 9685 (phone_setup_iwlan, 9686 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 9687 self.wifi_network_ssid, self.wifi_network_pass)), 9688 (phone_setup_iwlan, 9689 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 9690 self.wifi_network_ssid, self.wifi_network_pass))] 9691 if not multithread_func(self.log, tasks): 9692 self.log.error("Phone Failed to Set Up Properly.") 9693 return False 9694 9695 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 9696 ads=ads, 9697 num_swaps=1, 9698 phone_setup_a=None, 9699 phone_setup_b=None, 9700 phone_setup_c=None, 9701 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9702 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9703 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9704 if call_ab_id is None or call_ac_id is None: 9705 return False 9706 9707 return _three_phone_hangup_call_verify_call_state(log=self.log, 9708 ad_hangup=ads[1], 9709 ad_verify=ads[0], 9710 call_id=call_ac_id, 9711 call_state=_get_expected_call_state(ads[0]), 9712 ads_active=[ads[0], ads[2]]) 9713 9714 9715 @TelephonyBaseTest.tel_test_wrap 9716 @test_tracker_info(uuid="fb655f12-aabe-45bf-8020-61c21ada9440") 9717 def test_epdg_mo_mt_add_epdg_swap_once_drop_held_wfc_wifi_only(self): 9718 """Test swap feature in epdg call. 9719 9720 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9721 PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. 9722 Swap active call on PhoneA. 9723 Hangup call from PhoneC, check if call continues between AB. 9724 9725 """ 9726 ads = self.android_devices 9727 9728 tasks = [(phone_setup_iwlan, 9729 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 9730 self.wifi_network_ssid, self.wifi_network_pass)), 9731 (phone_setup_iwlan, 9732 (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, 9733 self.wifi_network_ssid, self.wifi_network_pass)), 9734 (phone_setup_iwlan, 9735 (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, 9736 self.wifi_network_ssid, self.wifi_network_pass))] 9737 if not multithread_func(self.log, tasks): 9738 self.log.error("Phone Failed to Set Up Properly.") 9739 return False 9740 9741 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 9742 ads=ads, 9743 num_swaps=1, 9744 phone_setup_a=None, 9745 phone_setup_b=None, 9746 phone_setup_c=None, 9747 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9748 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9749 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9750 if call_ab_id is None or call_ac_id is None: 9751 return False 9752 return _three_phone_hangup_call_verify_call_state(log=self.log, 9753 ad_hangup=ads[2], 9754 ad_verify=ads[0], 9755 call_id=call_ab_id, 9756 call_state=CALL_STATE_ACTIVE, 9757 ads_active=[ads[0], ads[1]]) 9758 9759 9760 @TelephonyBaseTest.tel_test_wrap 9761 @test_tracker_info(uuid="35e7b36d-e2d5-42bd-99d9-dbc7986ef93a") 9762 def test_epdg_mo_mt_add_epdg_swap_once_drop_held_wfc_wifi_preferred(self): 9763 """Test swap feature in epdg call. 9764 9765 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9766 PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. 9767 Swap active call on PhoneA. 9768 Hangup call from PhoneC, check if call continues between AB. 9769 9770 """ 9771 ads = self.android_devices 9772 9773 tasks = [(phone_setup_iwlan, 9774 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 9775 self.wifi_network_ssid, self.wifi_network_pass)), 9776 (phone_setup_iwlan, 9777 (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, 9778 self.wifi_network_ssid, self.wifi_network_pass)), 9779 (phone_setup_iwlan, 9780 (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, 9781 self.wifi_network_ssid, self.wifi_network_pass))] 9782 if not multithread_func(self.log, tasks): 9783 self.log.error("Phone Failed to Set Up Properly.") 9784 return False 9785 9786 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 9787 ads=ads, 9788 num_swaps=1, 9789 phone_setup_a=None, 9790 phone_setup_b=None, 9791 phone_setup_c=None, 9792 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9793 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9794 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9795 if call_ab_id is None or call_ac_id is None: 9796 return False 9797 return _three_phone_hangup_call_verify_call_state(log=self.log, 9798 ad_hangup=ads[2], 9799 ad_verify=ads[0], 9800 call_id=call_ab_id, 9801 call_state=CALL_STATE_ACTIVE, 9802 ads_active=[ads[0], ads[1]]) 9803 9804 9805 @TelephonyBaseTest.tel_test_wrap 9806 @test_tracker_info(uuid="e959e668-8150-46c1-bf49-a1ab2a9f45a5") 9807 def test_epdg_mo_mt_add_epdg_swap_once_drop_held_apm_wifi_preferred(self): 9808 """Test swap feature in epdg call. 9809 9810 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9811 PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. 9812 Swap active call on PhoneA. 9813 Hangup call from PhoneC, check if call continues between AB. 9814 9815 """ 9816 ads = self.android_devices 9817 9818 tasks = [(phone_setup_iwlan, 9819 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 9820 self.wifi_network_ssid, self.wifi_network_pass)), 9821 (phone_setup_iwlan, 9822 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 9823 self.wifi_network_ssid, self.wifi_network_pass)), 9824 (phone_setup_iwlan, 9825 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 9826 self.wifi_network_ssid, self.wifi_network_pass))] 9827 if not multithread_func(self.log, tasks): 9828 self.log.error("Phone Failed to Set Up Properly.") 9829 return False 9830 9831 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 9832 ads=ads, 9833 num_swaps=1, 9834 phone_setup_a=None, 9835 phone_setup_b=None, 9836 phone_setup_c=None, 9837 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9838 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9839 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9840 if call_ab_id is None or call_ac_id is None: 9841 return False 9842 return _three_phone_hangup_call_verify_call_state(log=self.log, 9843 ad_hangup=ads[2], 9844 ad_verify=ads[0], 9845 call_id=call_ab_id, 9846 call_state=CALL_STATE_ACTIVE, 9847 ads_active=[ads[0], ads[1]]) 9848 9849 9850 @TelephonyBaseTest.tel_test_wrap 9851 @test_tracker_info(uuid="b9c47ccd-cc84-42cc-83f4-0a98c22c1d7a") 9852 def test_epdg_mo_mt_add_epdg_swap_once_drop_active_wfc_wifi_only(self): 9853 """Test swap feature in epdg call. 9854 9855 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9856 PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. 9857 Swap active call on PhoneA. 9858 Hangup call from PhoneB, check if call continues between AC. 9859 9860 """ 9861 ads = self.android_devices 9862 9863 tasks = [(phone_setup_iwlan, 9864 (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, 9865 self.wifi_network_ssid, self.wifi_network_pass)), 9866 (phone_setup_iwlan, 9867 (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, 9868 self.wifi_network_ssid, self.wifi_network_pass)), 9869 (phone_setup_iwlan, 9870 (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, 9871 self.wifi_network_ssid, self.wifi_network_pass))] 9872 if not multithread_func(self.log, tasks): 9873 self.log.error("Phone Failed to Set Up Properly.") 9874 return False 9875 9876 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 9877 ads=ads, 9878 num_swaps=1, 9879 phone_setup_a=None, 9880 phone_setup_b=None, 9881 phone_setup_c=None, 9882 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9883 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9884 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9885 if call_ab_id is None or call_ac_id is None: 9886 return False 9887 9888 return _three_phone_hangup_call_verify_call_state(log=self.log, 9889 ad_hangup=ads[1], 9890 ad_verify=ads[0], 9891 call_id=call_ac_id, 9892 call_state=_get_expected_call_state(ads[0]), 9893 ads_active=[ads[0], ads[2]]) 9894 9895 9896 @TelephonyBaseTest.tel_test_wrap 9897 @test_tracker_info(uuid="273d521f-d11c-4956-ae51-33f69de87663") 9898 def test_epdg_mo_mt_add_epdg_swap_once_drop_active_wfc_wifi_preferred( 9899 self): 9900 """Test swap feature in epdg call. 9901 9902 PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. 9903 PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. 9904 Swap active call on PhoneA. 9905 Hangup call from PhoneB, check if call continues between AC. 9906 9907 """ 9908 ads = self.android_devices 9909 9910 tasks = [(phone_setup_iwlan, 9911 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 9912 self.wifi_network_ssid, self.wifi_network_pass)), 9913 (phone_setup_iwlan, 9914 (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, 9915 self.wifi_network_ssid, self.wifi_network_pass)), 9916 (phone_setup_iwlan, 9917 (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, 9918 self.wifi_network_ssid, self.wifi_network_pass))] 9919 if not multithread_func(self.log, tasks): 9920 self.log.error("Phone Failed to Set Up Properly.") 9921 return False 9922 9923 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 9924 ads=ads, 9925 num_swaps=1, 9926 phone_setup_a=None, 9927 phone_setup_b=None, 9928 phone_setup_c=None, 9929 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 9930 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 9931 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 9932 if call_ab_id is None or call_ac_id is None: 9933 return False 9934 9935 return _three_phone_hangup_call_verify_call_state(log=self.log, 9936 ad_hangup=ads[1], 9937 ad_verify=ads[0], 9938 call_id=call_ac_id, 9939 call_state=_get_expected_call_state(ads[0]), 9940 ads_active=[ads[0], ads[2]]) 9941 9942 9943 def _test_gsm_conference_merge_drop(self, call_ab_id, call_ac_id): 9944 """Test conference merge and drop in GSM call. 9945 9946 PhoneA in GSM call with PhoneB. 9947 PhoneA in GSM call with PhoneC. 9948 Merge calls to conference on PhoneA. 9949 Hangup on PhoneC, check call continues between AB. 9950 Hangup on PhoneB, check A ends. 9951 9952 Args: 9953 call_ab_id: call id for call_AB on PhoneA. 9954 call_ac_id: call id for call_AC on PhoneA. 9955 9956 Returns: 9957 True if succeed; 9958 False if failed. 9959 """ 9960 ads = self.android_devices 9961 9962 self.log.info("Step4: Merge to Conf Call and verify Conf Call.") 9963 ads[0].droid.telecomCallJoinCallsInConf(call_ab_id, call_ac_id) 9964 time.sleep(WAIT_TIME_IN_CALL) 9965 calls = ads[0].droid.telecomCallGetCallIds() 9966 ads[0].log.info("Calls in PhoneA %s", calls) 9967 if num_active_calls(self.log, ads[0]) != 3: 9968 ads[0].log.error("Total number of call ids is not 3.") 9969 return False 9970 call_conf_id = None 9971 for call_id in calls: 9972 if call_id != call_ab_id and call_id != call_ac_id: 9973 call_conf_id = call_id 9974 if not call_conf_id: 9975 self.log.error("Merge call fail, no new conference call id.") 9976 return False 9977 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): 9978 return False 9979 9980 # Check if Conf Call is currently active 9981 if ads[0].droid.telecomCallGetCallState( 9982 call_conf_id) != CALL_STATE_ACTIVE: 9983 ads[0].log.error( 9984 "Call_id: %s, state: %s, expected: STATE_ACTIVE", call_conf_id, 9985 ads[0].droid.telecomCallGetCallState(call_conf_id)) 9986 return False 9987 9988 self.log.info("Step5: End call on PhoneC and verify call continues.") 9989 if not _hangup_call(self.log, ads[2], "PhoneC"): 9990 return False 9991 time.sleep(WAIT_TIME_IN_CALL) 9992 calls = ads[0].droid.telecomCallGetCallIds() 9993 ads[0].log.info("Calls in PhoneA %s", calls) 9994 if num_active_calls(self.log, ads[0]) != 1: 9995 return False 9996 if not verify_incall_state(self.log, [ads[0], ads[1]], True): 9997 return False 9998 if not verify_incall_state(self.log, [ads[2]], False): 9999 return False 10000 10001 self.log.info("Step6: End call on PhoneB and verify PhoneA end.") 10002 if not _hangup_call(self.log, ads[1], "PhoneB"): 10003 return False 10004 time.sleep(WAIT_TIME_IN_CALL) 10005 if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], False): 10006 return False 10007 return True 10008 10009 10010 @TelephonyBaseTest.tel_test_wrap 10011 @test_tracker_info(uuid="03eb38b1-bd7f-457e-8b80-d58651d82741") 10012 def test_gsm_mo_mo_add_merge_drop(self): 10013 """ Test Conf Call among three phones. 10014 10015 Call from PhoneA to PhoneB, accept on PhoneB. 10016 Call from PhoneA to PhoneC, accept on PhoneC. 10017 On PhoneA, merge to conference call. 10018 End call on PhoneC, verify call continues. 10019 End call on PhoneB, verify call end on PhoneA. 10020 10021 Returns: 10022 True if pass; False if fail. 10023 """ 10024 ads = self.android_devices 10025 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 10026 ads=ads, 10027 num_swaps=0, 10028 phone_setup_a=phone_setup_voice_2g, 10029 phone_setup_b=phone_setup_voice_general, 10030 phone_setup_c=phone_setup_voice_general, 10031 verify_phone_a_network_subscription=is_phone_in_call_2g, 10032 verify_phone_b_network_subscription=None, 10033 verify_phone_c_network_subscription=None) 10034 10035 if call_ab_id is None or call_ac_id is None: 10036 return False 10037 10038 return self._test_gsm_conference_merge_drop(call_ab_id, call_ac_id) 10039 10040 10041 @TelephonyBaseTest.tel_test_wrap 10042 @test_tracker_info(uuid="3286306f-4d66-48c4-9303-f691c53bcfe0") 10043 def test_gsm_mo_mo_add_swap_once_drop_held(self): 10044 """ Test Conf Call among three phones. 10045 10046 Call from PhoneA to PhoneB, accept on PhoneB. 10047 Call from PhoneA to PhoneC, accept on PhoneC. 10048 On PhoneA, swap active call. 10049 End call on PhoneB, verify call continues. 10050 End call on PhoneC, verify call end on PhoneA. 10051 10052 Returns: 10053 True if pass; False if fail. 10054 """ 10055 ads = self.android_devices 10056 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 10057 ads=ads, 10058 num_swaps=1, 10059 phone_setup_a=phone_setup_voice_2g, 10060 phone_setup_b=phone_setup_voice_general, 10061 phone_setup_c=phone_setup_voice_general, 10062 verify_phone_a_network_subscription=is_phone_in_call_2g, 10063 verify_phone_b_network_subscription=None, 10064 verify_phone_c_network_subscription=None) 10065 if call_ab_id is None or call_ac_id is None: 10066 return False 10067 10068 return _three_phone_hangup_call_verify_call_state(log=self.log, 10069 ad_hangup=ads[2], 10070 ad_verify=ads[0], 10071 call_id=call_ab_id, 10072 call_state=CALL_STATE_ACTIVE, 10073 ads_active=[ads[0], ads[1]]) 10074 10075 10076 @TelephonyBaseTest.tel_test_wrap 10077 @test_tracker_info(uuid="af4ff690-be2a-42d8-930a-8258fe81c77e") 10078 def test_gsm_mt_mt_add_merge_drop(self): 10079 """ Test Conf Call among three phones. 10080 10081 Call from PhoneB to PhoneA, accept on PhoneA. 10082 Call from PhoneC to PhoneA, accept on PhoneA. 10083 On PhoneA, merge to conference call. 10084 End call on PhoneC, verify call continues. 10085 End call on PhoneB, verify call end on PhoneA. 10086 10087 Returns: 10088 True if pass; False if fail. 10089 """ 10090 ads = self.android_devices 10091 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 10092 ads=ads, 10093 num_swaps=0, 10094 phone_setup_a=phone_setup_voice_2g, 10095 phone_setup_b=phone_setup_voice_general, 10096 phone_setup_c=phone_setup_voice_general, 10097 verify_phone_a_network_subscription=is_phone_in_call_2g, 10098 verify_phone_b_network_subscription=None, 10099 verify_phone_c_network_subscription=None) 10100 10101 if call_ab_id is None or call_ac_id is None: 10102 return False 10103 10104 return self._test_gsm_conference_merge_drop(call_ab_id, call_ac_id) 10105 10106 10107 @TelephonyBaseTest.tel_test_wrap 10108 @test_tracker_info(uuid="6b70902e-ca59-4d92-9bfe-2116dcc91213") 10109 def test_gsm_mo_mo_add_swap_twice_drop_active(self): 10110 """Test swap feature in GSM call. 10111 10112 PhoneA (GSM) call PhoneB, accept on PhoneB. 10113 PhoneA (GSM) call PhoneC, accept on PhoneC. 10114 Swap active call on PhoneA. 10115 Swap active call on PhoneA. 10116 Hangup call from PhoneC, check if call continues between AB. 10117 10118 """ 10119 ads = self.android_devices 10120 10121 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 10122 ads=ads, 10123 num_swaps=1, 10124 phone_setup_a=phone_setup_voice_2g, 10125 phone_setup_b=phone_setup_voice_general, 10126 phone_setup_c=phone_setup_voice_general, 10127 verify_phone_a_network_subscription=is_phone_in_call_2g, 10128 verify_phone_b_network_subscription=None, 10129 verify_phone_c_network_subscription=None) 10130 if call_ab_id is None or call_ac_id is None: 10131 return False 10132 10133 return _three_phone_hangup_call_verify_call_state(log=self.log, 10134 ad_hangup=ads[2], 10135 ad_verify=ads[0], 10136 call_id=call_ab_id, 10137 call_state=_get_expected_call_state(ads[0]), 10138 ads_active=[ads[0], ads[1]]) 10139 10140 10141 @TelephonyBaseTest.tel_test_wrap 10142 @test_tracker_info(uuid="a9ddf5a7-8399-4a8c-abc9-b9235b0153b0") 10143 def test_epdg_mo_mo_add_epdg_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_no_cep( 10144 self): 10145 """ Test WFC Conference Call among three phones. No CEP. 10146 10147 Steps: 10148 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. 10149 2. PhoneA (WFC APM WiFi Preferred) call PhoneC (WFC APM WiFi Preferred), accept on PhoneC. 10150 3. On PhoneA, merge to conference call (No CEP). 10151 4. End call on PhoneC, verify call continues. 10152 5. End call on PhoneB, verify call end on PhoneA. 10153 10154 Expected Results: 10155 3. Conference merged successfully. 10156 4. Drop calls succeeded. Call between A-B continues. 10157 5. Drop calls succeeded, all call participants drop. 10158 10159 Returns: 10160 True if pass; False if fail. 10161 10162 TAGS: Telephony, WFC, Conference, No_CEP 10163 Priority: 1 10164 """ 10165 ads = self.android_devices 10166 10167 tasks = [(phone_setup_iwlan, 10168 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10169 self.wifi_network_ssid, self.wifi_network_pass)), 10170 (phone_setup_iwlan, 10171 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10172 self.wifi_network_ssid, self.wifi_network_pass)), 10173 (phone_setup_iwlan, 10174 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 10175 self.wifi_network_ssid, self.wifi_network_pass))] 10176 if not multithread_func(self.log, tasks): 10177 self.log.error("Phone Failed to Set Up Properly.") 10178 return False 10179 10180 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 10181 ads=ads, 10182 num_swaps=0, 10183 phone_setup_a=None, 10184 phone_setup_b=None, 10185 phone_setup_c=None, 10186 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 10187 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 10188 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 10189 if call_ab_id is None or call_ac_id is None: 10190 return False 10191 10192 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 10193 call_ab_id, call_ac_id) 10194 10195 10196 @TelephonyBaseTest.tel_test_wrap 10197 @test_tracker_info(uuid="5aaff055-3329-4077-91e8-5707a0f6a309") 10198 def test_epdg_mo_mo_add_epdg_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_cep( 10199 self): 10200 """ Test WFC Conference Call among three phones. CEP enabled. 10201 10202 Steps 10203 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. 10204 2. PhoneA (WFC APM WiFi Preferred) call PhoneC (WFC APM WiFi Preferred), accept on PhoneC. 10205 3. On PhoneA, merge to conference call (WFC CEP conference call). 10206 4. End call on PhoneC, verify call continues. 10207 5. End call on PhoneB, verify call end on PhoneA. 10208 10209 Expected Results: 10210 3. Conference merged successfully. 10211 4. Drop calls succeeded. Call between A-B continues. 10212 5. Drop calls succeeded, all call participants drop. 10213 10214 Returns: 10215 True if pass; False if fail. 10216 10217 TAGS: Telephony, WFC, Conference, CEP 10218 Priority: 1 10219 """ 10220 ads = self.android_devices 10221 10222 tasks = [(phone_setup_iwlan, 10223 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10224 self.wifi_network_ssid, self.wifi_network_pass)), 10225 (phone_setup_iwlan, 10226 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10227 self.wifi_network_ssid, self.wifi_network_pass)), 10228 (phone_setup_iwlan, 10229 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 10230 self.wifi_network_ssid, self.wifi_network_pass))] 10231 if not multithread_func(self.log, tasks): 10232 self.log.error("Phone Failed to Set Up Properly.") 10233 return False 10234 10235 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 10236 ads=ads, 10237 num_swaps=0, 10238 phone_setup_a=None, 10239 phone_setup_b=None, 10240 phone_setup_c=None, 10241 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 10242 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 10243 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 10244 if call_ab_id is None or call_ac_id is None: 10245 return False 10246 10247 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 10248 call_ab_id, call_ac_id) 10249 10250 10251 @TelephonyBaseTest.tel_test_wrap 10252 @test_tracker_info(uuid="d3624dd8-20bd-4f6b-8a81-0c8671987b84") 10253 def test_epdg_mo_mo_add_epdg_merge_drop_second_call_from_host_wfc_apm_wifi_preferred_cep( 10254 self): 10255 """ Test WFC Conference Call among three phones. CEP enabled. 10256 10257 Steps: 10258 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. 10259 2. PhoneA (WFC APM WiFi Preferred) call PhoneC (WFC APM WiFi Preferred), accept on PhoneC. 10260 3. On PhoneA, merge to conference call (WFC CEP conference call). 10261 4. On PhoneA disconnect call between A-C, verify call continues. 10262 5. On PhoneA disconnect call between A-B, verify call continues. 10263 10264 Expected Results: 10265 3. Conference merged successfully. 10266 4. Drop calls succeeded. Call between A-B continues. 10267 5. Drop calls succeeded, all call participants drop. 10268 10269 Returns: 10270 True if pass; False if fail. 10271 10272 TAGS: Telephony, WFC, Conference, CEP 10273 Priority: 1 10274 """ 10275 ads = self.android_devices 10276 10277 tasks = [(phone_setup_iwlan, 10278 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10279 self.wifi_network_ssid, self.wifi_network_pass)), 10280 (phone_setup_iwlan, 10281 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10282 self.wifi_network_ssid, self.wifi_network_pass)), 10283 (phone_setup_iwlan, 10284 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 10285 self.wifi_network_ssid, self.wifi_network_pass))] 10286 if not multithread_func(self.log, tasks): 10287 self.log.error("Phone Failed to Set Up Properly.") 10288 return False 10289 10290 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 10291 ads=ads, 10292 num_swaps=0, 10293 phone_setup_a=None, 10294 phone_setup_b=None, 10295 phone_setup_c=None, 10296 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 10297 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 10298 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 10299 if call_ab_id is None or call_ac_id is None: 10300 return False 10301 10302 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 10303 call_ab_id, call_ac_id) 10304 10305 10306 @TelephonyBaseTest.tel_test_wrap 10307 @test_tracker_info(uuid="ba43d88c-1347-4570-92d0-ebfa6404788f") 10308 def test_epdg_mo_mo_add_epdg_merge_drop_first_call_from_participant_wfc_apm_wifi_preferred_cep( 10309 self): 10310 """ Test WFC Conference Call among three phones. CEP enabled. 10311 10312 Steps: 10313 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. 10314 2. PhoneA (WFC APM WiFi Preferred) call PhoneC (WFC APM WiFi Preferred), accept on PhoneC. 10315 3. On PhoneA, merge to conference call (WFC CEP conference call). 10316 4. End call on PhoneB, verify call continues. 10317 5. End call on PhoneC, verify call end on PhoneA. 10318 10319 Expected Results: 10320 3. Conference merged successfully. 10321 4. Drop calls succeeded. Call between A-C continues. 10322 5. Drop calls succeeded, all call participants drop. 10323 10324 Returns: 10325 True if pass; False if fail. 10326 10327 TAGS: Telephony, WFC, Conference, CEP 10328 Priority: 1 10329 """ 10330 ads = self.android_devices 10331 10332 tasks = [(phone_setup_iwlan, 10333 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10334 self.wifi_network_ssid, self.wifi_network_pass)), 10335 (phone_setup_iwlan, 10336 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10337 self.wifi_network_ssid, self.wifi_network_pass)), 10338 (phone_setup_iwlan, 10339 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 10340 self.wifi_network_ssid, self.wifi_network_pass))] 10341 if not multithread_func(self.log, tasks): 10342 self.log.error("Phone Failed to Set Up Properly.") 10343 return False 10344 10345 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 10346 ads=ads, 10347 num_swaps=0, 10348 phone_setup_a=None, 10349 phone_setup_b=None, 10350 phone_setup_c=None, 10351 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 10352 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 10353 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 10354 if call_ab_id is None or call_ac_id is None: 10355 return False 10356 10357 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 10358 call_ab_id, call_ac_id) 10359 10360 10361 @TelephonyBaseTest.tel_test_wrap 10362 @test_tracker_info(uuid="fbcd20ec-ebac-45c2-b228-30fdec42752f") 10363 def test_epdg_mo_mo_add_epdg_merge_drop_first_call_from_host_wfc_apm_wifi_preferred_cep( 10364 self): 10365 """ Test WFC Conference Call among three phones. CEP enabled. 10366 10367 Steps: 10368 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. 10369 2. PhoneA (WFC APM WiFi Preferred) call PhoneC (WFC APM WiFi Preferred), accept on PhoneC. 10370 3. On PhoneA, merge to conference call (WFC CEP conference call). 10371 4. On PhoneA disconnect call between A-B, verify call continues. 10372 5. On PhoneA disconnect call between A-C, verify call continues. 10373 10374 Expected Results: 10375 3. Conference merged successfully. 10376 4. Drop calls succeeded. Call between A-C continues. 10377 5. Drop calls succeeded, all call participants drop. 10378 10379 Returns: 10380 True if pass; False if fail. 10381 10382 TAGS: Telephony, WFC, Conference, CEP 10383 Priority: 1 10384 """ 10385 ads = self.android_devices 10386 10387 tasks = [(phone_setup_iwlan, 10388 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10389 self.wifi_network_ssid, self.wifi_network_pass)), 10390 (phone_setup_iwlan, 10391 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10392 self.wifi_network_ssid, self.wifi_network_pass)), 10393 (phone_setup_iwlan, 10394 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 10395 self.wifi_network_ssid, self.wifi_network_pass))] 10396 if not multithread_func(self.log, tasks): 10397 self.log.error("Phone Failed to Set Up Properly.") 10398 return False 10399 10400 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, 10401 ads=ads, 10402 num_swaps=0, 10403 phone_setup_a=None, 10404 phone_setup_b=None, 10405 phone_setup_c=None, 10406 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 10407 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 10408 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 10409 if call_ab_id is None or call_ac_id is None: 10410 return False 10411 10412 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 10413 call_ab_id, call_ac_id) 10414 10415 10416 @TelephonyBaseTest.tel_test_wrap 10417 @test_tracker_info(uuid="fc54b329-4ec6-45b2-8f91-0a5789542596") 10418 def test_epdg_mo_mt_add_epdg_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_no_cep( 10419 self): 10420 """ Test WFC Conference Call among three phones. No CEP. 10421 10422 Steps: 10423 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. 10424 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10425 3. On PhoneA, merge to conference call (No CEP). 10426 4. End call on PhoneC, verify call continues. 10427 5. End call on PhoneB, verify call end on PhoneA. 10428 10429 Expected Results: 10430 3. Conference merged successfully. 10431 4. Drop calls succeeded. Call between A-B continues. 10432 5. Drop calls succeeded, all call participants drop. 10433 10434 Returns: 10435 True if pass; False if fail. 10436 10437 TAGS: Telephony, WFC, Conference, No_CEP 10438 Priority: 1 10439 """ 10440 ads = self.android_devices 10441 10442 tasks = [(phone_setup_iwlan, 10443 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10444 self.wifi_network_ssid, self.wifi_network_pass)), 10445 (phone_setup_iwlan, 10446 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10447 self.wifi_network_ssid, self.wifi_network_pass)), 10448 (phone_setup_iwlan, 10449 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 10450 self.wifi_network_ssid, self.wifi_network_pass))] 10451 if not multithread_func(self.log, tasks): 10452 self.log.error("Phone Failed to Set Up Properly.") 10453 return False 10454 10455 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 10456 ads=ads, 10457 num_swaps=0, 10458 phone_setup_a=None, 10459 phone_setup_b=None, 10460 phone_setup_c=None, 10461 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 10462 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 10463 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 10464 if call_ab_id is None or call_ac_id is None: 10465 return False 10466 10467 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 10468 call_ab_id, call_ac_id) 10469 10470 10471 @TelephonyBaseTest.tel_test_wrap 10472 @test_tracker_info(uuid="64096e42-1fb2-4eb4-9f60-3e22c7ad5c83") 10473 def test_epdg_mo_mt_add_epdg_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_cep( 10474 self): 10475 """ Test WFC Conference Call among three phones. CEP enabled. 10476 10477 Steps 10478 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. 10479 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10480 3. On PhoneA, merge to conference call (WFC CEP conference call). 10481 4. End call on PhoneC, verify call continues. 10482 5. End call on PhoneB, verify call end on PhoneA. 10483 10484 Expected Results: 10485 3. Conference merged successfully. 10486 4. Drop calls succeeded. Call between A-B continues. 10487 5. Drop calls succeeded, all call participants drop. 10488 10489 Returns: 10490 True if pass; False if fail. 10491 10492 TAGS: Telephony, WFC, Conference, CEP 10493 Priority: 1 10494 """ 10495 ads = self.android_devices 10496 10497 tasks = [(phone_setup_iwlan, 10498 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10499 self.wifi_network_ssid, self.wifi_network_pass)), 10500 (phone_setup_iwlan, 10501 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10502 self.wifi_network_ssid, self.wifi_network_pass)), 10503 (phone_setup_iwlan, 10504 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 10505 self.wifi_network_ssid, self.wifi_network_pass))] 10506 if not multithread_func(self.log, tasks): 10507 self.log.error("Phone Failed to Set Up Properly.") 10508 return False 10509 10510 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 10511 ads=ads, 10512 num_swaps=0, 10513 phone_setup_a=None, 10514 phone_setup_b=None, 10515 phone_setup_c=None, 10516 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 10517 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 10518 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 10519 if call_ab_id is None or call_ac_id is None: 10520 return False 10521 10522 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 10523 call_ab_id, call_ac_id) 10524 10525 10526 @TelephonyBaseTest.tel_test_wrap 10527 @test_tracker_info(uuid="24b6abb4-03c8-464c-a584-ca597bd67b46") 10528 def test_epdg_mo_mt_add_epdg_merge_drop_second_call_from_host_wfc_apm_wifi_preferred_cep( 10529 self): 10530 """ Test WFC Conference Call among three phones. CEP enabled. 10531 10532 Steps: 10533 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. 10534 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10535 3. On PhoneA, merge to conference call (WFC CEP conference call). 10536 4. On PhoneA disconnect call between A-C, verify call continues. 10537 5. On PhoneA disconnect call between A-B, verify call continues. 10538 10539 Expected Results: 10540 3. Conference merged successfully. 10541 4. Drop calls succeeded. Call between A-B continues. 10542 5. Drop calls succeeded, all call participants drop. 10543 10544 Returns: 10545 True if pass; False if fail. 10546 10547 TAGS: Telephony, WFC, Conference, CEP 10548 Priority: 1 10549 """ 10550 ads = self.android_devices 10551 10552 tasks = [(phone_setup_iwlan, 10553 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10554 self.wifi_network_ssid, self.wifi_network_pass)), 10555 (phone_setup_iwlan, 10556 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10557 self.wifi_network_ssid, self.wifi_network_pass)), 10558 (phone_setup_iwlan, 10559 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 10560 self.wifi_network_ssid, self.wifi_network_pass))] 10561 if not multithread_func(self.log, tasks): 10562 self.log.error("Phone Failed to Set Up Properly.") 10563 return False 10564 10565 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 10566 ads=ads, 10567 num_swaps=0, 10568 phone_setup_a=None, 10569 phone_setup_b=None, 10570 phone_setup_c=None, 10571 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 10572 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 10573 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 10574 if call_ab_id is None or call_ac_id is None: 10575 return False 10576 10577 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 10578 call_ab_id, call_ac_id) 10579 10580 10581 @TelephonyBaseTest.tel_test_wrap 10582 @test_tracker_info(uuid="f54776e4-84c0-43db-8724-f012ef551ebd") 10583 def test_epdg_mo_mt_add_epdg_merge_drop_first_call_from_participant_wfc_apm_wifi_preferred_cep( 10584 self): 10585 """ Test WFC Conference Call among three phones. CEP enabled. 10586 10587 Steps: 10588 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. 10589 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10590 3. On PhoneA, merge to conference call (WFC CEP conference call). 10591 4. End call on PhoneB, verify call continues. 10592 5. End call on PhoneC, verify call end on PhoneA. 10593 10594 Expected Results: 10595 3. Conference merged successfully. 10596 4. Drop calls succeeded. Call between A-C continues. 10597 5. Drop calls succeeded, all call participants drop. 10598 10599 Returns: 10600 True if pass; False if fail. 10601 10602 TAGS: Telephony, WFC, Conference, CEP 10603 Priority: 1 10604 """ 10605 ads = self.android_devices 10606 10607 tasks = [(phone_setup_iwlan, 10608 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10609 self.wifi_network_ssid, self.wifi_network_pass)), 10610 (phone_setup_iwlan, 10611 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10612 self.wifi_network_ssid, self.wifi_network_pass)), 10613 (phone_setup_iwlan, 10614 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 10615 self.wifi_network_ssid, self.wifi_network_pass))] 10616 if not multithread_func(self.log, tasks): 10617 self.log.error("Phone Failed to Set Up Properly.") 10618 return False 10619 10620 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 10621 ads=ads, 10622 num_swaps=0, 10623 phone_setup_a=None, 10624 phone_setup_b=None, 10625 phone_setup_c=None, 10626 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 10627 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 10628 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 10629 if call_ab_id is None or call_ac_id is None: 10630 return False 10631 10632 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 10633 call_ab_id, call_ac_id) 10634 10635 10636 @TelephonyBaseTest.tel_test_wrap 10637 @test_tracker_info(uuid="6635aeff-f10a-4fb0-b658-4f1e7f2d9a68") 10638 def test_epdg_mo_mt_add_epdg_merge_drop_first_call_from_host_wfc_apm_wifi_preferred_cep( 10639 self): 10640 """ Test WFC Conference Call among three phones. CEP enabled. 10641 10642 Steps: 10643 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. 10644 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10645 3. On PhoneA, merge to conference call (WFC CEP conference call). 10646 4. On PhoneA disconnect call between A-B, verify call continues. 10647 5. On PhoneA disconnect call between A-C, verify call continues. 10648 10649 Expected Results: 10650 3. Conference merged successfully. 10651 4. Drop calls succeeded. Call between A-C continues. 10652 5. Drop calls succeeded, all call participants drop. 10653 10654 Returns: 10655 True if pass; False if fail. 10656 10657 TAGS: Telephony, WFC, Conference, CEP 10658 Priority: 1 10659 """ 10660 ads = self.android_devices 10661 10662 tasks = [(phone_setup_iwlan, 10663 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10664 self.wifi_network_ssid, self.wifi_network_pass)), 10665 (phone_setup_iwlan, 10666 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10667 self.wifi_network_ssid, self.wifi_network_pass)), 10668 (phone_setup_iwlan, 10669 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 10670 self.wifi_network_ssid, self.wifi_network_pass))] 10671 if not multithread_func(self.log, tasks): 10672 self.log.error("Phone Failed to Set Up Properly.") 10673 return False 10674 10675 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 10676 ads=ads, 10677 num_swaps=0, 10678 phone_setup_a=None, 10679 phone_setup_b=None, 10680 phone_setup_c=None, 10681 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 10682 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 10683 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 10684 if call_ab_id is None or call_ac_id is None: 10685 return False 10686 10687 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 10688 call_ab_id, call_ac_id) 10689 10690 10691 @TelephonyBaseTest.tel_test_wrap 10692 @test_tracker_info(uuid="c2534477-74ff-43ca-920a-48238928f344") 10693 def test_epdg_mt_mt_add_epdg_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_no_cep( 10694 self): 10695 """ Test WFC Conference Call among three phones. No CEP. 10696 10697 Steps: 10698 1. PhoneB (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10699 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10700 3. On PhoneA, merge to conference call (No CEP). 10701 4. End call on PhoneC, verify call continues. 10702 5. End call on PhoneB, verify call end on PhoneA. 10703 10704 Expected Results: 10705 3. Conference merged successfully. 10706 4. Drop calls succeeded. Call between A-B continues. 10707 5. Drop calls succeeded, all call participants drop. 10708 10709 Returns: 10710 True if pass; False if fail. 10711 10712 TAGS: Telephony, WFC, Conference, No_CEP 10713 Priority: 1 10714 """ 10715 ads = self.android_devices 10716 10717 tasks = [(phone_setup_iwlan, 10718 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10719 self.wifi_network_ssid, self.wifi_network_pass)), 10720 (phone_setup_iwlan, 10721 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10722 self.wifi_network_ssid, self.wifi_network_pass)), 10723 (phone_setup_iwlan, 10724 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 10725 self.wifi_network_ssid, self.wifi_network_pass))] 10726 if not multithread_func(self.log, tasks): 10727 self.log.error("Phone Failed to Set Up Properly.") 10728 return False 10729 10730 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 10731 ads=ads, 10732 num_swaps=0, 10733 phone_setup_a=None, 10734 phone_setup_b=None, 10735 phone_setup_c=None, 10736 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 10737 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 10738 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 10739 if call_ab_id is None or call_ac_id is None: 10740 return False 10741 10742 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 10743 call_ab_id, call_ac_id) 10744 10745 10746 @TelephonyBaseTest.tel_test_wrap 10747 @test_tracker_info(uuid="ef5ea03d-1c1b-4c9a-a72d-14b2ba7e87cb") 10748 def test_epdg_mt_mt_add_epdg_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_cep( 10749 self): 10750 """ Test WFC Conference Call among three phones. CEP enabled. 10751 10752 Steps 10753 1. PhoneB (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10754 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10755 3. On PhoneA, merge to conference call (WFC CEP conference call). 10756 4. End call on PhoneC, verify call continues. 10757 5. End call on PhoneB, verify call end on PhoneA. 10758 10759 Expected Results: 10760 3. Conference merged successfully. 10761 4. Drop calls succeeded. Call between A-B continues. 10762 5. Drop calls succeeded, all call participants drop. 10763 10764 Returns: 10765 True if pass; False if fail. 10766 10767 TAGS: Telephony, WFC, Conference, CEP 10768 Priority: 1 10769 """ 10770 ads = self.android_devices 10771 10772 tasks = [(phone_setup_iwlan, 10773 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10774 self.wifi_network_ssid, self.wifi_network_pass)), 10775 (phone_setup_iwlan, 10776 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10777 self.wifi_network_ssid, self.wifi_network_pass)), 10778 (phone_setup_iwlan, 10779 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 10780 self.wifi_network_ssid, self.wifi_network_pass))] 10781 if not multithread_func(self.log, tasks): 10782 self.log.error("Phone Failed to Set Up Properly.") 10783 return False 10784 10785 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 10786 ads=ads, 10787 num_swaps=0, 10788 phone_setup_a=None, 10789 phone_setup_b=None, 10790 phone_setup_c=None, 10791 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 10792 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 10793 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 10794 if call_ab_id is None or call_ac_id is None: 10795 return False 10796 10797 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 10798 call_ab_id, call_ac_id) 10799 10800 10801 @TelephonyBaseTest.tel_test_wrap 10802 @test_tracker_info(uuid="b0df507f-2adf-45fe-a174-44f62718296e") 10803 def test_epdg_mt_mt_add_epdg_merge_drop_second_call_from_host_wfc_apm_wifi_preferred_cep( 10804 self): 10805 """ Test WFC Conference Call among three phones. CEP enabled. 10806 10807 Steps: 10808 1. PhoneB (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10809 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10810 3. On PhoneA, merge to conference call (WFC CEP conference call). 10811 4. On PhoneA disconnect call between A-C, verify call continues. 10812 5. On PhoneA disconnect call between A-B, verify call continues. 10813 10814 Expected Results: 10815 3. Conference merged successfully. 10816 4. Drop calls succeeded. Call between A-B continues. 10817 5. Drop calls succeeded, all call participants drop. 10818 10819 Returns: 10820 True if pass; False if fail. 10821 10822 TAGS: Telephony, WFC, Conference, CEP 10823 Priority: 1 10824 """ 10825 ads = self.android_devices 10826 10827 tasks = [(phone_setup_iwlan, 10828 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10829 self.wifi_network_ssid, self.wifi_network_pass)), 10830 (phone_setup_iwlan, 10831 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10832 self.wifi_network_ssid, self.wifi_network_pass)), 10833 (phone_setup_iwlan, 10834 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 10835 self.wifi_network_ssid, self.wifi_network_pass))] 10836 if not multithread_func(self.log, tasks): 10837 self.log.error("Phone Failed to Set Up Properly.") 10838 return False 10839 10840 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 10841 ads=ads, 10842 num_swaps=0, 10843 phone_setup_a=None, 10844 phone_setup_b=None, 10845 phone_setup_c=None, 10846 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 10847 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 10848 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 10849 if call_ab_id is None or call_ac_id is None: 10850 return False 10851 10852 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 10853 call_ab_id, call_ac_id) 10854 10855 10856 @TelephonyBaseTest.tel_test_wrap 10857 @test_tracker_info(uuid="278c6bec-7065-4f54-9834-33d8a6172f58") 10858 def test_epdg_mt_mt_add_epdg_merge_drop_first_call_from_participant_wfc_apm_wifi_preferred_cep( 10859 self): 10860 """ Test WFC Conference Call among three phones. CEP enabled. 10861 10862 Steps: 10863 1. PhoneB (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10864 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10865 3. On PhoneA, merge to conference call (WFC CEP conference call). 10866 4. End call on PhoneB, verify call continues. 10867 5. End call on PhoneC, verify call end on PhoneA. 10868 10869 Expected Results: 10870 3. Conference merged successfully. 10871 4. Drop calls succeeded. Call between A-C continues. 10872 5. Drop calls succeeded, all call participants drop. 10873 10874 Returns: 10875 True if pass; False if fail. 10876 10877 TAGS: Telephony, WFC, Conference, CEP 10878 Priority: 1 10879 """ 10880 ads = self.android_devices 10881 10882 tasks = [(phone_setup_iwlan, 10883 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10884 self.wifi_network_ssid, self.wifi_network_pass)), 10885 (phone_setup_iwlan, 10886 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10887 self.wifi_network_ssid, self.wifi_network_pass)), 10888 (phone_setup_iwlan, 10889 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 10890 self.wifi_network_ssid, self.wifi_network_pass))] 10891 if not multithread_func(self.log, tasks): 10892 self.log.error("Phone Failed to Set Up Properly.") 10893 return False 10894 10895 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 10896 ads=ads, 10897 num_swaps=0, 10898 phone_setup_a=None, 10899 phone_setup_b=None, 10900 phone_setup_c=None, 10901 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 10902 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 10903 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 10904 if call_ab_id is None or call_ac_id is None: 10905 return False 10906 10907 return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, 10908 call_ab_id, call_ac_id) 10909 10910 10911 @TelephonyBaseTest.tel_test_wrap 10912 @test_tracker_info(uuid="1ffceadc-8bd1-489d-bb66-4b3081df3a64") 10913 def test_epdg_mt_mt_add_epdg_merge_drop_first_call_from_host_wfc_apm_wifi_preferred_cep( 10914 self): 10915 """ Test WFC Conference Call among three phones. CEP enabled. 10916 10917 Steps: 10918 1. PhoneB (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10919 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10920 3. On PhoneA, merge to conference call (WFC CEP conference call). 10921 4. On PhoneA disconnect call between A-B, verify call continues. 10922 5. On PhoneA disconnect call between A-C, verify call continues. 10923 10924 Expected Results: 10925 3. Conference merged successfully. 10926 4. Drop calls succeeded. Call between A-C continues. 10927 5. Drop calls succeeded, all call participants drop. 10928 10929 Returns: 10930 True if pass; False if fail. 10931 10932 TAGS: Telephony, WFC, Conference, CEP 10933 Priority: 1 10934 """ 10935 ads = self.android_devices 10936 10937 tasks = [(phone_setup_iwlan, 10938 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10939 self.wifi_network_ssid, self.wifi_network_pass)), 10940 (phone_setup_iwlan, 10941 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10942 self.wifi_network_ssid, self.wifi_network_pass)), 10943 (phone_setup_iwlan, 10944 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 10945 self.wifi_network_ssid, self.wifi_network_pass))] 10946 if not multithread_func(self.log, tasks): 10947 self.log.error("Phone Failed to Set Up Properly.") 10948 return False 10949 10950 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, 10951 ads=ads, 10952 num_swaps=0, 10953 phone_setup_a=None, 10954 phone_setup_b=None, 10955 phone_setup_c=None, 10956 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 10957 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 10958 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 10959 if call_ab_id is None or call_ac_id is None: 10960 return False 10961 10962 return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, 10963 call_ab_id, call_ac_id) 10964 10965 10966 @TelephonyBaseTest.tel_test_wrap 10967 @test_tracker_info(uuid="b3dfaa38-8e9b-45b7-8e4e-6e6ca10887bd") 10968 def test_epdg_mo_mt_add_epdg_swap_once_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_no_cep( 10969 self): 10970 """ Test swap and merge features in WFC call. No CEP. 10971 10972 Steps: 10973 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. 10974 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 10975 3. Swap active call on PhoneA. 10976 4. On PhoneA, merge to conference call (No CEP). 10977 5. End call on PhoneC, verify call continues. 10978 6. End call on PhoneB, verify call end on PhoneA. 10979 10980 Expected Results: 10981 3. Swap operation succeeded. 10982 4. Conference merged successfully. 10983 5. Drop calls succeeded. Call between A-B continues. 10984 6. Drop calls succeeded, all call participants drop. 10985 10986 Returns: 10987 True if pass; False if fail. 10988 10989 TAGS: Telephony, WFC, Conference, No_CEP 10990 Priority: 1 10991 """ 10992 ads = self.android_devices 10993 10994 tasks = [(phone_setup_iwlan, 10995 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 10996 self.wifi_network_ssid, self.wifi_network_pass)), 10997 (phone_setup_iwlan, 10998 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 10999 self.wifi_network_ssid, self.wifi_network_pass)), 11000 (phone_setup_iwlan, 11001 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 11002 self.wifi_network_ssid, self.wifi_network_pass))] 11003 if not multithread_func(self.log, tasks): 11004 self.log.error("Phone Failed to Set Up Properly.") 11005 return False 11006 11007 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 11008 ads=ads, 11009 num_swaps=1, 11010 phone_setup_a=None, 11011 phone_setup_b=None, 11012 phone_setup_c=None, 11013 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 11014 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 11015 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 11016 if call_ab_id is None or call_ac_id is None: 11017 return False 11018 11019 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 11020 call_ab_id, call_ac_id) 11021 11022 11023 @TelephonyBaseTest.tel_test_wrap 11024 @test_tracker_info(uuid="eb82f1ac-e5a3-42bc-b9d9-806442263f79") 11025 def test_epdg_mo_mt_add_epdg_swap_once_merge_drop_second_call_from_host_wfc_apm_wifi_preferred_cep( 11026 self): 11027 """ Test swap and merge features in WFC call. CEP enabled. 11028 11029 Steps: 11030 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. 11031 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 11032 3. Swap active call on PhoneA. 11033 4. On PhoneA, merge to conference call (WFC CEP conference call). 11034 5. On PhoneA disconnect call between A-C, verify call continues. 11035 6. On PhoneA disconnect call between A-B, verify call continues. 11036 11037 Expected Results: 11038 3. Swap operation succeeded. 11039 4. Conference merged successfully. 11040 5. Drop calls succeeded. Call between A-B continues. 11041 6. Drop calls succeeded, all call participants drop. 11042 11043 Returns: 11044 True if pass; False if fail. 11045 11046 TAGS: Telephony, WFC, Conference, CEP 11047 Priority: 1 11048 """ 11049 ads = self.android_devices 11050 11051 tasks = [(phone_setup_iwlan, 11052 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 11053 self.wifi_network_ssid, self.wifi_network_pass)), 11054 (phone_setup_iwlan, 11055 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 11056 self.wifi_network_ssid, self.wifi_network_pass)), 11057 (phone_setup_iwlan, 11058 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 11059 self.wifi_network_ssid, self.wifi_network_pass))] 11060 if not multithread_func(self.log, tasks): 11061 self.log.error("Phone Failed to Set Up Properly.") 11062 return False 11063 11064 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 11065 ads=ads, 11066 num_swaps=1, 11067 phone_setup_a=None, 11068 phone_setup_b=None, 11069 phone_setup_c=None, 11070 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 11071 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 11072 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 11073 if call_ab_id is None or call_ac_id is None: 11074 return False 11075 11076 return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, 11077 call_ab_id, call_ac_id) 11078 11079 11080 @TelephonyBaseTest.tel_test_wrap 11081 @test_tracker_info(uuid="53ba057d-5c5c-4236-9ff9-829177e6f51e") 11082 def test_epdg_mo_mt_add_epdg_swap_once_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_cep( 11083 self): 11084 """ Test swap and merge features in WFC call. CEP enabled. 11085 11086 Steps: 11087 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. 11088 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. 11089 3. Swap active call on PhoneA. 11090 4. On PhoneA, merge to conference call (WFC CEP conference call). 11091 5. End call on PhoneC, verify call continues. 11092 6. End call on PhoneB, verify call end on PhoneA. 11093 11094 Expected Results: 11095 3. Swap operation succeeded. 11096 4. Conference merged successfully. 11097 5. Drop calls succeeded. Call between A-B continues. 11098 6. Drop calls succeeded, all call participants drop. 11099 11100 Returns: 11101 True if pass; False if fail. 11102 11103 TAGS: Telephony, WFC, Conference, CEP 11104 Priority: 1 11105 """ 11106 ads = self.android_devices 11107 11108 tasks = [(phone_setup_iwlan, 11109 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 11110 self.wifi_network_ssid, self.wifi_network_pass)), 11111 (phone_setup_iwlan, 11112 (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, 11113 self.wifi_network_ssid, self.wifi_network_pass)), 11114 (phone_setup_iwlan, 11115 (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, 11116 self.wifi_network_ssid, self.wifi_network_pass))] 11117 if not multithread_func(self.log, tasks): 11118 self.log.error("Phone Failed to Set Up Properly.") 11119 return False 11120 11121 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, 11122 ads=ads, 11123 num_swaps=1, 11124 phone_setup_a=None, 11125 phone_setup_b=None, 11126 phone_setup_c=None, 11127 verify_phone_a_network_subscription=is_phone_in_call_iwlan, 11128 verify_phone_b_network_subscription=is_phone_in_call_iwlan, 11129 verify_phone_c_network_subscription=is_phone_in_call_iwlan) 11130 if call_ab_id is None or call_ac_id is None: 11131 return False 11132 11133 return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, 11134 call_ab_id, call_ac_id) 11135 11136 11137 @TelephonyBaseTest.tel_test_wrap 11138 @test_tracker_info(uuid="a246cbd0-915d-4068-8d63-7e099d41fd43") 11139 def test_wcdma_add_mt_decline(self): 11140 ads = self.android_devices 11141 11142 tasks = [(phone_setup_3g, (self.log, ads[0])), 11143 (phone_setup_voice_general, (self.log, ads[1])), 11144 (phone_setup_voice_general, (self.log, ads[2]))] 11145 if not multithread_func(self.log, tasks): 11146 self.log.error("Phone Failed to Set Up Properly.") 11147 return False 11148 11149 if not self._three_phone_call_mo_add_mt_reject( 11150 [ads[0], ads[1], ads[2]], [is_phone_in_call_wcdma, None], True): 11151 return False 11152 return True 11153 11154 11155 @TelephonyBaseTest.tel_test_wrap 11156 @test_tracker_info(uuid="2789388a-c67c-4c37-a4ea-98c9083abcf9") 11157 def test_wcdma_add_mt_ignore(self): 11158 ads = self.android_devices 11159 11160 tasks = [(phone_setup_3g, (self.log, ads[0])), 11161 (phone_setup_voice_general, (self.log, ads[1])), 11162 (phone_setup_voice_general, (self.log, ads[2]))] 11163 if not multithread_func(self.log, tasks): 11164 self.log.error("Phone Failed to Set Up Properly.") 11165 return False 11166 11167 if not self._three_phone_call_mo_add_mt_reject( 11168 [ads[0], ads[1], ads[2]], [is_phone_in_call_wcdma, None], False): 11169 return False 11170 return True 11171 11172 11173 @TelephonyBaseTest.tel_test_wrap 11174 @test_tracker_info(uuid="8f5399b2-5075-45b2-b916-2d436d1c1c93") 11175 def test_1x_add_mt_decline(self): 11176 ads = self.android_devices 11177 11178 tasks = [(phone_setup_3g, (self.log, ads[0])), 11179 (phone_setup_voice_general, (self.log, ads[1])), 11180 (phone_setup_voice_general, (self.log, ads[2]))] 11181 if not multithread_func(self.log, tasks): 11182 self.log.error("Phone Failed to Set Up Properly.") 11183 return False 11184 11185 if not self._three_phone_call_mo_add_mt_reject( 11186 [ads[0], ads[1], ads[2]], [is_phone_in_call_1x, None], True): 11187 return False 11188 return True 11189 11190 11191 @TelephonyBaseTest.tel_test_wrap 11192 @test_tracker_info(uuid="a7e6ea10-d4d4-4089-a012-31565314cf65") 11193 def test_1x_add_mt_ignore(self): 11194 ads = self.android_devices 11195 11196 tasks = [(phone_setup_3g, (self.log, ads[0])), 11197 (phone_setup_voice_general, (self.log, ads[1])), 11198 (phone_setup_voice_general, (self.log, ads[2]))] 11199 if not multithread_func(self.log, tasks): 11200 self.log.error("Phone Failed to Set Up Properly.") 11201 return False 11202 11203 if not self._three_phone_call_mo_add_mt_reject( 11204 [ads[0], ads[1], ads[2]], [is_phone_in_call_1x, None], False): 11205 return False 11206 return True 11207 11208 11209 @TelephonyBaseTest.tel_test_wrap 11210 @test_tracker_info(uuid="c7d878f6-2f1c-4029-bcf9-2aecf2d202e7") 11211 def test_volte_add_mt_decline(self): 11212 ads = self.android_devices 11213 11214 tasks = [(phone_setup_volte, (self.log, ads[0])), 11215 (phone_setup_voice_general, (self.log, ads[1])), 11216 (phone_setup_voice_general, (self.log, ads[2]))] 11217 if not multithread_func(self.log, tasks): 11218 self.log.error("Phone Failed to Set Up Properly.") 11219 return False 11220 11221 if not self._three_phone_call_mo_add_mt_reject( 11222 [ads[0], ads[1], ads[2]], [is_phone_in_call_volte, None], True): 11223 return False 11224 return True 11225 11226 11227 @TelephonyBaseTest.tel_test_wrap 11228 @test_tracker_info(uuid="4f03240f-88a7-4d39-9d90-6327e835d5e2") 11229 def test_volte_add_mt_ignore(self): 11230 ads = self.android_devices 11231 11232 tasks = [(phone_setup_volte, (self.log, ads[0])), 11233 (phone_setup_voice_general, (self.log, ads[1])), 11234 (phone_setup_voice_general, (self.log, ads[2]))] 11235 if not multithread_func(self.log, tasks): 11236 self.log.error("Phone Failed to Set Up Properly.") 11237 return False 11238 11239 if not self._three_phone_call_mo_add_mt_reject( 11240 [ads[0], ads[1], ads[2]], [is_phone_in_call_volte, None], False): 11241 return False 11242 return True 11243 11244 11245 @TelephonyBaseTest.tel_test_wrap 11246 @test_tracker_info(uuid="ce51844a-4879-470e-9a22-4eafe25f8e2a") 11247 def test_wfc_lte_add_mt_decline(self): 11248 ads = self.android_devices 11249 11250 tasks = [(phone_setup_iwlan, 11251 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 11252 self.wifi_network_ssid, self.wifi_network_pass)), 11253 (phone_setup_voice_general, (self.log, ads[1])), 11254 (phone_setup_voice_general, (self.log, ads[2]))] 11255 if not multithread_func(self.log, tasks): 11256 self.log.error("Phone Failed to Set Up Properly.") 11257 return False 11258 11259 if not self._three_phone_call_mo_add_mt_reject( 11260 [ads[0], ads[1], ads[2]], [is_phone_in_call_volte, None], True): 11261 return False 11262 return True 11263 11264 11265 @TelephonyBaseTest.tel_test_wrap 11266 @test_tracker_info(uuid="b5058cd0-4073-4018-9683-335fd27ab529") 11267 def test_wfc_lte_add_mt_ignore(self): 11268 ads = self.android_devices 11269 11270 tasks = [(phone_setup_iwlan, 11271 (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, 11272 self.wifi_network_ssid, self.wifi_network_pass)), 11273 (phone_setup_voice_general, (self.log, ads[1])), 11274 (phone_setup_voice_general, (self.log, ads[2]))] 11275 if not multithread_func(self.log, tasks): 11276 self.log.error("Phone Failed to Set Up Properly.") 11277 return False 11278 11279 if not self._three_phone_call_mo_add_mt_reject( 11280 [ads[0], ads[1], ads[2]], [is_phone_in_call_iwlan, None], False): 11281 return False 11282 return True 11283 11284 11285 @TelephonyBaseTest.tel_test_wrap 11286 @test_tracker_info(uuid="456e0a04-7d82-4387-89bb-80613732412e") 11287 def test_wfc_apm_add_mt_decline(self): 11288 ads = self.android_devices 11289 11290 tasks = [(phone_setup_iwlan, 11291 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 11292 self.wifi_network_ssid, self.wifi_network_pass)), 11293 (phone_setup_voice_general, (self.log, ads[1])), 11294 (phone_setup_voice_general, (self.log, ads[2]))] 11295 if not multithread_func(self.log, tasks): 11296 self.log.error("Phone Failed to Set Up Properly.") 11297 return False 11298 11299 if not self._three_phone_call_mo_add_mt_reject( 11300 [ads[0], ads[1], ads[2]], [is_phone_in_call_iwlan, None], True): 11301 return False 11302 return True 11303 11304 11305 @TelephonyBaseTest.tel_test_wrap 11306 @test_tracker_info(uuid="ee71fc98-9e52-406f-8d8a-6d9c62cbe6f4") 11307 def test_wfc_apm_add_mt_ignore(self): 11308 ads = self.android_devices 11309 11310 tasks = [(phone_setup_iwlan, 11311 (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, 11312 self.wifi_network_ssid, self.wifi_network_pass)), 11313 (phone_setup_voice_general, (self.log, ads[1])), 11314 (phone_setup_voice_general, (self.log, ads[2]))] 11315 if not multithread_func(self.log, tasks): 11316 self.log.error("Phone Failed to Set Up Properly.") 11317 return False 11318 11319 if not self._three_phone_call_mo_add_mt_reject( 11320 [ads[0], ads[1], ads[2]], [is_phone_in_call_iwlan, None], False): 11321 return False 11322 return True 11323 11324 11325 @TelephonyBaseTest.tel_test_wrap 11326 @test_tracker_info(uuid="f4990e20-4a40-4238-9a2a-a75d9be3d354") 11327 def test_call_forwarding_unconditional(self): 11328 11329 ads = self.android_devices 11330 11331 tasks = [(phone_setup_voice_general, (self.log, ads[0])), 11332 (phone_setup_voice_general, (self.log, ads[1])), 11333 (phone_setup_voice_general, (self.log, ads[2]))] 11334 if not multithread_func(self.log, tasks): 11335 self.log.error("Phone Failed to Set Up Properly.") 11336 return False 11337 11338 return three_phone_call_forwarding_short_seq( 11339 self.log, 11340 ads[0], 11341 None, 11342 None, 11343 ads[1], 11344 ads[2], 11345 call_forwarding_type="unconditional") 11346 11347 11348 @TelephonyBaseTest.tel_test_wrap 11349 @test_tracker_info(uuid="f4990e20-4a40-4238-9a2a-a75d9be3d354") 11350 def test_volte_call_forwarding_unconditional(self): 11351 11352 ads = self.android_devices 11353 11354 tasks = [(phone_setup_volte, (self.log, ads[0])), 11355 (phone_setup_voice_general, (self.log, ads[1])), 11356 (phone_setup_voice_general, (self.log, ads[2]))] 11357 if not multithread_func(self.log, tasks): 11358 self.log.error("Phone Failed to Set Up Properly.") 11359 return False 11360 11361 return three_phone_call_forwarding_short_seq( 11362 self.log, 11363 ads[0], 11364 None, 11365 None, 11366 ads[1], 11367 ads[2], 11368 call_forwarding_type="unconditional") 11369 11370 11371 @TelephonyBaseTest.tel_test_wrap 11372 @test_tracker_info(uuid="26b85c3f-5a38-465a-a6e3-dfd03c6ea315") 11373 def test_call_forwarding_busy(self): 11374 11375 ads = self.android_devices 11376 11377 tasks = [(phone_setup_voice_general, (self.log, ads[0])), 11378 (phone_setup_voice_general, (self.log, ads[1])), 11379 (phone_setup_voice_general, (self.log, ads[2]))] 11380 if not multithread_func(self.log, tasks): 11381 self.log.error("Phone Failed to Set Up Properly.") 11382 return False 11383 11384 return three_phone_call_forwarding_short_seq( 11385 self.log, 11386 ads[0], 11387 None, 11388 None, 11389 ads[1], 11390 ads[2], 11391 call_forwarding_type="busy") 11392 11393 11394 @TelephonyBaseTest.tel_test_wrap 11395 @test_tracker_info(uuid="26b85c3f-5a38-465a-a6e3-dfd03c6ea315") 11396 def test_volte_call_forwarding_busy(self): 11397 11398 ads = self.android_devices 11399 11400 tasks = [(phone_setup_volte, (self.log, ads[0])), 11401 (phone_setup_voice_general, (self.log, ads[1])), 11402 (phone_setup_voice_general, (self.log, ads[2]))] 11403 if not multithread_func(self.log, tasks): 11404 self.log.error("Phone Failed to Set Up Properly.") 11405 return False 11406 11407 return three_phone_call_forwarding_short_seq( 11408 self.log, 11409 ads[0], 11410 None, 11411 None, 11412 ads[1], 11413 ads[2], 11414 call_forwarding_type="busy") 11415 11416 11417 @TelephonyBaseTest.tel_test_wrap 11418 @test_tracker_info(uuid="96638a39-efe2-40e2-afb6-6a97f87c4af5") 11419 def test_call_forwarding_not_answered(self): 11420 11421 ads = self.android_devices 11422 11423 tasks = [(phone_setup_voice_general, (self.log, ads[0])), 11424 (phone_setup_voice_general, (self.log, ads[1])), 11425 (phone_setup_voice_general, (self.log, ads[2]))] 11426 if not multithread_func(self.log, tasks): 11427 self.log.error("Phone Failed to Set Up Properly.") 11428 return False 11429 11430 return three_phone_call_forwarding_short_seq( 11431 self.log, 11432 ads[0], 11433 None, 11434 None, 11435 ads[1], 11436 ads[2], 11437 call_forwarding_type="not_answered") 11438 11439 11440 @TelephonyBaseTest.tel_test_wrap 11441 @test_tracker_info(uuid="96638a39-efe2-40e2-afb6-6a97f87c4af5") 11442 def test_volte_call_forwarding_not_answered(self): 11443 11444 ads = self.android_devices 11445 11446 tasks = [(phone_setup_volte, (self.log, ads[0])), 11447 (phone_setup_voice_general, (self.log, ads[1])), 11448 (phone_setup_voice_general, (self.log, ads[2]))] 11449 if not multithread_func(self.log, tasks): 11450 self.log.error("Phone Failed to Set Up Properly.") 11451 return False 11452 11453 return three_phone_call_forwarding_short_seq( 11454 self.log, 11455 ads[0], 11456 None, 11457 None, 11458 ads[1], 11459 ads[2], 11460 call_forwarding_type="not_answered") 11461 11462 11463 @TelephonyBaseTest.tel_test_wrap 11464 @test_tracker_info(uuid="a13e586a-3345-49d8-9e84-ca33bd3fbd7d") 11465 def test_call_forwarding_not_reachable(self): 11466 11467 ads = self.android_devices 11468 11469 tasks = [(phone_setup_voice_general, (self.log, ads[0])), 11470 (phone_setup_voice_general, (self.log, ads[1])), 11471 (phone_setup_voice_general, (self.log, ads[2]))] 11472 if not multithread_func(self.log, tasks): 11473 self.log.error("Phone Failed to Set Up Properly.") 11474 return False 11475 11476 return three_phone_call_forwarding_short_seq( 11477 self.log, 11478 ads[0], 11479 None, 11480 None, 11481 ads[1], 11482 ads[2], 11483 call_forwarding_type="not_reachable") 11484 11485 11486 @TelephonyBaseTest.tel_test_wrap 11487 @test_tracker_info(uuid="a13e586a-3345-49d8-9e84-ca33bd3fbd7d") 11488 def test_volte_call_forwarding_not_reachable(self): 11489 11490 ads = self.android_devices 11491 11492 tasks = [(phone_setup_volte, (self.log, ads[0])), 11493 (phone_setup_voice_general, (self.log, ads[1])), 11494 (phone_setup_voice_general, (self.log, ads[2]))] 11495 if not multithread_func(self.log, tasks): 11496 self.log.error("Phone Failed to Set Up Properly.") 11497 return False 11498 11499 return three_phone_call_forwarding_short_seq( 11500 self.log, 11501 ads[0], 11502 None, 11503 None, 11504 ads[1], 11505 ads[2], 11506 call_forwarding_type="not_reachable") 11507 11508 11509 @TelephonyBaseTest.tel_test_wrap 11510 @test_tracker_info(uuid="e9a6027b-7dd1-4dca-a700-e4d42c9c947d") 11511 def test_call_waiting_scenario_1(self): 11512 """ Call waiting scenario 1: 1st call ended first by caller1 during 2nd 11513 call incoming. 2nd call ended by caller2. 11514 """ 11515 ads = self.android_devices 11516 11517 tasks = [(phone_setup_voice_general, (self.log, ads[0])), 11518 (phone_setup_voice_general, (self.log, ads[1])), 11519 (phone_setup_voice_general, (self.log, ads[2]))] 11520 if not multithread_func(self.log, tasks): 11521 self.log.error("Phone Failed to Set Up Properly.") 11522 return False 11523 11524 return three_phone_call_waiting_short_seq( 11525 self.log, 11526 ads[0], 11527 None, 11528 None, 11529 ads[1], 11530 ads[2], 11531 call_waiting=True, 11532 scenario=1) 11533 11534 11535 @TelephonyBaseTest.tel_test_wrap 11536 @test_tracker_info(uuid="e9a6027b-7dd1-4dca-a700-e4d42c9c947d") 11537 def test_volte_call_waiting_scenario_1(self): 11538 """Tests that the call waiting function is workable by scenario 1. 11539 11540 Initial Condition: 11541 (1) Network Type: 11542 - DUT: LTE, VoLTE ON. 11543 - Caller1: LTE/3G. 11544 11545 Execution Criteria: 11546 (1) Enable call waiting on DUT. 11547 (2) Let caller1 make the first MO call to DUT and let DUT answer the 11548 call. 11549 (3) Let caller2 make the second MO call to DUT. Do NOT answer the 11550 call and keep the call alerting. 11551 (4) End the first call by caller1. 11552 (5) Let DUT answer the second call. 11553 (6) End the second call by caller2. 11554 11555 Pass Criteria: 11556 (2)(5) All the call can be made/answered correctly. 11557 (4)(6) All the call can be released correctly. 11558 """ 11559 ads = self.android_devices 11560 11561 tasks = [(phone_setup_volte, (self.log, ads[0])), 11562 (phone_setup_voice_general, (self.log, ads[1])), 11563 (phone_setup_voice_general, (self.log, ads[2]))] 11564 if not multithread_func(self.log, tasks): 11565 self.log.error("Phone Failed to Set Up Properly.") 11566 return False 11567 11568 return three_phone_call_waiting_short_seq( 11569 self.log, 11570 ads[0], 11571 None, 11572 None, 11573 ads[1], 11574 ads[2], 11575 call_waiting=True, 11576 scenario=1) 11577 11578 11579 @TelephonyBaseTest.tel_test_wrap 11580 @test_tracker_info(uuid="3fe02cb7-68d7-4762-882a-02bff8ce32f9") 11581 def test_call_waiting_scenario_2(self): 11582 """ Call waiting scenario 2: 1st call ended first by caller1 during 2nd 11583 call incoming. 2nd call ended by callee. 11584 """ 11585 ads = self.android_devices 11586 11587 tasks = [(phone_setup_voice_general, (self.log, ads[0])), 11588 (phone_setup_voice_general, (self.log, ads[1])), 11589 (phone_setup_voice_general, (self.log, ads[2]))] 11590 if not multithread_func(self.log, tasks): 11591 self.log.error("Phone Failed to Set Up Properly.") 11592 return False 11593 11594 return three_phone_call_waiting_short_seq( 11595 self.log, 11596 ads[0], 11597 None, 11598 None, 11599 ads[1], 11600 ads[2], 11601 call_waiting=True, 11602 scenario=2) 11603 11604 11605 @TelephonyBaseTest.tel_test_wrap 11606 @test_tracker_info(uuid="bf5eb9ad-1fa2-468d-99dc-3cbcee8c89f8") 11607 def test_call_waiting_scenario_3(self): 11608 """ Call waiting scenario 3: 1st call ended first by callee during 2nd 11609 call incoming. 2nd call ended by caller2. 11610 """ 11611 ads = self.android_devices 11612 11613 tasks = [(phone_setup_voice_general, (self.log, ads[0])), 11614 (phone_setup_voice_general, (self.log, ads[1])), 11615 (phone_setup_voice_general, (self.log, ads[2]))] 11616 if not multithread_func(self.log, tasks): 11617 self.log.error("Phone Failed to Set Up Properly.") 11618 return False 11619 11620 return three_phone_call_waiting_short_seq( 11621 self.log, 11622 ads[0], 11623 None, 11624 None, 11625 ads[1], 11626 ads[2], 11627 call_waiting=True, 11628 scenario=3) 11629 11630 11631 @TelephonyBaseTest.tel_test_wrap 11632 @test_tracker_info(uuid="f2e4b6a9-6a6f-466c-884c-c0ef79d6ff01") 11633 def test_call_waiting_scenario_4(self): 11634 """Call waiting scenario 4: 1st call ended first by callee during 2nd 11635 call incoming. 2nd call ended by callee. 11636 """ 11637 ads = self.android_devices 11638 11639 tasks = [(phone_setup_voice_general, (self.log, ads[0])), 11640 (phone_setup_voice_general, (self.log, ads[1])), 11641 (phone_setup_voice_general, (self.log, ads[2]))] 11642 if not multithread_func(self.log, tasks): 11643 self.log.error("Phone Failed to Set Up Properly.") 11644 return False 11645 11646 return three_phone_call_waiting_short_seq( 11647 self.log, 11648 ads[0], 11649 None, 11650 None, 11651 ads[1], 11652 ads[2], 11653 call_waiting=True, 11654 scenario=4) 11655 11656 11657 @TelephonyBaseTest.tel_test_wrap 11658 @test_tracker_info(uuid="f2d36f45-63f6-4e01-9844-6fa53c26def7") 11659 def test_call_waiting_scenario_5(self): 11660 """ Call waiting scenario 5: 1st call ended by caller1. 2nd call ended 11661 by caller2. 11662 """ 11663 ads = self.android_devices 11664 11665 tasks = [(phone_setup_voice_general, (self.log, ads[0])), 11666 (phone_setup_voice_general, (self.log, ads[1])), 11667 (phone_setup_voice_general, (self.log, ads[2]))] 11668 if not multithread_func(self.log, tasks): 11669 self.log.error("Phone Failed to Set Up Properly.") 11670 return False 11671 11672 return three_phone_call_waiting_short_seq( 11673 self.log, 11674 ads[0], 11675 None, 11676 None, 11677 ads[1], 11678 ads[2], 11679 call_waiting=True, 11680 scenario=5) 11681 11682 11683 @TelephonyBaseTest.tel_test_wrap 11684 @test_tracker_info(uuid="7eb2a89d-30ad-4a34-8e63-87d0181b91aa") 11685 def test_call_waiting_scenario_6(self): 11686 """Call waiting scenario 6: 1st call ended by caller1. 2nd call ended by 11687 callee. 11688 """ 11689 ads = self.android_devices 11690 11691 tasks = [(phone_setup_voice_general, (self.log, ads[0])), 11692 (phone_setup_voice_general, (self.log, ads[1])), 11693 (phone_setup_voice_general, (self.log, ads[2]))] 11694 if not multithread_func(self.log, tasks): 11695 self.log.error("Phone Failed to Set Up Properly.") 11696 return False 11697 11698 return three_phone_call_waiting_short_seq( 11699 self.log, 11700 ads[0], 11701 None, 11702 None, 11703 ads[1], 11704 ads[2], 11705 call_waiting=True, 11706 scenario=6) 11707 11708 11709 @TelephonyBaseTest.tel_test_wrap 11710 @test_tracker_info(uuid="c63882e5-5b72-4ca6-8e36-260c50f42028") 11711 def test_call_waiting_scenario_7(self): 11712 """ Call waiting scenario 7: 1st call ended by callee. 2nd call ended by 11713 caller2. 11714 """ 11715 ads = self.android_devices 11716 11717 tasks = [(phone_setup_voice_general, (self.log, ads[0])), 11718 (phone_setup_voice_general, (self.log, ads[1])), 11719 (phone_setup_voice_general, (self.log, ads[2]))] 11720 if not multithread_func(self.log, tasks): 11721 self.log.error("Phone Failed to Set Up Properly.") 11722 return False 11723 11724 return three_phone_call_waiting_short_seq( 11725 self.log, 11726 ads[0], 11727 None, 11728 None, 11729 ads[1], 11730 ads[2], 11731 call_waiting=True, 11732 scenario=7) 11733 11734 11735 @TelephonyBaseTest.tel_test_wrap 11736 @test_tracker_info(uuid="f9be652f-a307-4fa5-9b30-ea78404110bd") 11737 def test_call_waiting_scenario_8(self): 11738 """Call waiting scenario 8: 1st call ended by callee. 2nd call ended by 11739 callee. 11740 """ 11741 ads = self.android_devices 11742 11743 tasks = [(phone_setup_voice_general, (self.log, ads[0])), 11744 (phone_setup_voice_general, (self.log, ads[1])), 11745 (phone_setup_voice_general, (self.log, ads[2]))] 11746 if not multithread_func(self.log, tasks): 11747 self.log.error("Phone Failed to Set Up Properly.") 11748 return False 11749 11750 return three_phone_call_waiting_short_seq( 11751 self.log, 11752 ads[0], 11753 None, 11754 None, 11755 ads[1], 11756 ads[2], 11757 call_waiting=True, 11758 scenario=8) 11759 11760 11761 @TelephonyBaseTest.tel_test_wrap 11762 @test_tracker_info(uuid="b2e816b5-8e8f-4863-981c-47847d9527e0") 11763 def test_call_waiting_deactivated(self): 11764 11765 ads = self.android_devices 11766 11767 tasks = [(phone_setup_voice_general, (self.log, ads[0])), 11768 (phone_setup_voice_general, (self.log, ads[1])), 11769 (phone_setup_voice_general, (self.log, ads[2]))] 11770 if not multithread_func(self.log, tasks): 11771 self.log.error("Phone Failed to Set Up Properly.") 11772 return False 11773 11774 return three_phone_call_waiting_short_seq( 11775 self.log, 11776 ads[0], 11777 None, 11778 None, 11779 ads[1], 11780 ads[2], 11781 call_waiting=False) 11782 11783 """ Tests End """ 11784