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