1#!/usr/bin/env python3.4 2# 3# Copyright 2021 - 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 5G Voice Conference scenarios 18""" 19 20from acts import signals 21from acts.test_decorators import test_tracker_info 22from acts.libs.utils.multithread import multithread_func 23from acts_contrib.test_utils.tel.TelephonyBaseTest import TelephonyBaseTest 24from acts_contrib.test_utils.tel.tel_defines import CALL_STATE_ACTIVE 25from acts_contrib.test_utils.tel.tel_defines import CAPABILITY_CONFERENCE 26from acts_contrib.test_utils.tel.tel_defines import GEN_5G 27from acts_contrib.test_utils.tel.tel_5g_test_utils import provision_device_for_5g 28from acts_contrib.test_utils.tel.tel_phone_setup_utils import ensure_phones_idle 29from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_voice_general 30from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_voice_3g 31from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_volte 32from acts_contrib.test_utils.tel.tel_ss_utils import three_phone_call_forwarding_short_seq 33from acts_contrib.test_utils.tel.tel_ss_utils import three_phone_call_waiting_short_seq 34from acts_contrib.test_utils.tel.tel_subscription_utils import get_outgoing_voice_sub_id 35from acts_contrib.test_utils.tel.tel_test_utils import get_capability_for_subscription 36from acts_contrib.test_utils.tel.tel_test_utils import install_dialer_apk 37from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_volte 38from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_wcdma 39from acts_contrib.test_utils.tel.tel_voice_conf_utils import _get_expected_call_state 40from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_ims_conference_merge_drop_first_call_from_host 41from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_ims_conference_merge_drop_first_call_from_participant 42from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_ims_conference_merge_drop_second_call_from_host 43from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_ims_conference_merge_drop_second_call_from_participant 44from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_call_mo_mo_add_swap_x 45from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_call_mo_mt_add_swap_x 46from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_call_mt_mt_add_swap_x 47from acts_contrib.test_utils.tel.tel_voice_conf_utils import _three_phone_hangup_call_verify_call_state 48 49 50class Nsa5gVoiceConfTest(TelephonyBaseTest): 51 def setup_class(self): 52 TelephonyBaseTest.setup_class(self) 53 if not get_capability_for_subscription( 54 self.android_devices[0], CAPABILITY_CONFERENCE, 55 get_outgoing_voice_sub_id(self.android_devices[0])): 56 self.android_devices[0].log.error( 57 "Conference call is not supported, abort test.") 58 raise signals.TestAbortClass( 59 "Conference call is not supported, abort test.") 60 61 self.dialer_util = self.user_params.get("dialer_apk", None) 62 if isinstance(self.dialer_util, list): 63 self.dialer_util = self.dialer_util[0] 64 65 if self.dialer_util: 66 ads = self.android_devices 67 for ad in ads: 68 install_dialer_apk(ad, self.dialer_util) 69 70 def teardown_test(self): 71 ensure_phones_idle(self.log, self.android_devices) 72 73 """ Tests Begin """ 74 75 @TelephonyBaseTest.tel_test_wrap 76 @test_tracker_info(uuid="68a8be5b-a5e0-4475-a5bd-42adfdb6535f") 77 def test_5g_nsa_volte_mo_mo_add_5g_nsa_volte_merge_drop_second_call_from_participant( 78 self): 79 """ Test nsa 5g VoLTE Conference Call among three phones. 80 81 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 82 2. Call from PhoneA (nsa 5G VoLTE) to PhoneC (nsa 5G VoLTE), accept on PhoneC. 83 3. On PhoneA, merge to conference call. 84 4. End call on PhoneC, verify call continues. 85 5. End call on PhoneB, verify call end on PhoneA. 86 87 Returns: 88 True if pass; False if fail. 89 """ 90 ads = self.android_devices 91 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 92 log=self.log, 93 ads=ads, 94 num_swaps=0, 95 phone_setup_a=provision_device_for_5g, 96 phone_setup_b=provision_device_for_5g, 97 phone_setup_c=provision_device_for_5g, 98 verify_phone_a_network_subscription=is_phone_in_call_volte, 99 verify_phone_b_network_subscription=is_phone_in_call_volte, 100 verify_phone_c_network_subscription=is_phone_in_call_volte) 101 if call_ab_id is None or call_ac_id is None: 102 return False 103 104 return _test_ims_conference_merge_drop_second_call_from_participant( 105 self.log, ads, call_ab_id, call_ac_id) 106 107 @TelephonyBaseTest.tel_test_wrap 108 @test_tracker_info(uuid="bd828db0-dcc5-4d49-b049-48dd76f5f2f0") 109 def test_5g_nsa_volte_mo_mo_add_5g_nsa_volte_merge_drop_second_call_from_host( 110 self): 111 """ Test nsa 5g VoLTE Conference Call among three phones. 112 113 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 114 2. Call from PhoneA (nsa 5G VoLTE) to PhoneC (nsa 5G VoLTE), accept on PhoneC. 115 3. On PhoneA, merge to conference call. 116 4. On PhoneA disconnect call between A-C, verify call continues. 117 5. On PhoneA disconnect call between A-B, verify call continues. 118 119 Returns: 120 True if pass; False if fail. 121 """ 122 ads = self.android_devices 123 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 124 log=self.log, 125 ads=ads, 126 num_swaps=0, 127 phone_setup_a=provision_device_for_5g, 128 phone_setup_b=provision_device_for_5g, 129 phone_setup_c=provision_device_for_5g, 130 verify_phone_a_network_subscription=is_phone_in_call_volte, 131 verify_phone_b_network_subscription=is_phone_in_call_volte, 132 verify_phone_c_network_subscription=is_phone_in_call_volte) 133 if call_ab_id is None or call_ac_id is None: 134 return False 135 136 return _test_ims_conference_merge_drop_second_call_from_host( 137 self.log, ads, call_ab_id, call_ac_id) 138 139 @TelephonyBaseTest.tel_test_wrap 140 @test_tracker_info(uuid="5c3a3370-094d-43ff-b024-58a8a2983274") 141 def test_5g_nsa_volte_mo_mo_add_5g_nsa_volte_merge_drop_first_call_from_participant( 142 self): 143 """ Test nsa 5g VoLTE Conference Call among three phones. 144 145 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 146 2. Call from PhoneA (nsa 5G VoLTE) to PhoneC (nsa 5G VoLTE), accept on PhoneC. 147 3. On PhoneA, merge to conference call. 148 4. End call on PhoneB, verify call continues. 149 5. End call on PhoneC, verify call end on PhoneA. 150 151 Returns: 152 True if pass; False if fail. 153 """ 154 ads = self.android_devices 155 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 156 log=self.log, 157 ads=ads, 158 num_swaps=0, 159 phone_setup_a=provision_device_for_5g, 160 phone_setup_b=provision_device_for_5g, 161 phone_setup_c=provision_device_for_5g, 162 verify_phone_a_network_subscription=is_phone_in_call_volte, 163 verify_phone_b_network_subscription=is_phone_in_call_volte, 164 verify_phone_c_network_subscription=is_phone_in_call_volte) 165 if call_ab_id is None or call_ac_id is None: 166 return False 167 168 return _test_ims_conference_merge_drop_first_call_from_participant( 169 self.log, ads, call_ab_id, call_ac_id) 170 171 @TelephonyBaseTest.tel_test_wrap 172 @test_tracker_info(uuid="9ae61738-925b-44f8-b3a7-0e58f2ebd6ec") 173 def test_5g_nsa_volte_mo_mo_add_5g_nsa_volte_merge_drop_first_call_from_host( 174 self): 175 """ Test nsa 5g VoLTE Conference Call among three phones. 176 177 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 178 2. Call from PhoneA (nsa 5G VoLTE) to PhoneC (nsa 5G VoLTE), accept on PhoneC. 179 3. On PhoneA, merge to conference call. 180 4. On PhoneA disconnect call between A-B, verify call continues. 181 5. On PhoneA disconnect call between A-C, verify call continues. 182 183 Returns: 184 True if pass; False if fail. 185 """ 186 ads = self.android_devices 187 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 188 log=self.log, 189 ads=ads, 190 num_swaps=0, 191 phone_setup_a=provision_device_for_5g, 192 phone_setup_b=provision_device_for_5g, 193 phone_setup_c=provision_device_for_5g, 194 verify_phone_a_network_subscription=is_phone_in_call_volte, 195 verify_phone_b_network_subscription=is_phone_in_call_volte, 196 verify_phone_c_network_subscription=is_phone_in_call_volte) 197 if call_ab_id is None or call_ac_id is None: 198 return False 199 200 return _test_ims_conference_merge_drop_first_call_from_host( 201 self.log, ads, call_ab_id, call_ac_id) 202 203 @TelephonyBaseTest.tel_test_wrap 204 @test_tracker_info(uuid="e3488699-9eb1-4a66-a2bd-b229c51e63c9") 205 def test_5g_nsa_volte_mo_mt_add_5g_nsa_volte_merge_drop_second_call_from_participant( 206 self): 207 """ Test nsa 5g VoLTE Conference Call among three phones. 208 209 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 210 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 211 3. On PhoneA, merge to conference call. 212 4. End call on PhoneC, verify call continues. 213 5. End call on PhoneB, verify call end on PhoneA. 214 215 Returns: 216 True if pass; False if fail. 217 """ 218 ads = self.android_devices 219 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 220 log=self.log, 221 ads=ads, 222 num_swaps=0, 223 phone_setup_a=provision_device_for_5g, 224 phone_setup_b=provision_device_for_5g, 225 phone_setup_c=provision_device_for_5g, 226 verify_phone_a_network_subscription=is_phone_in_call_volte, 227 verify_phone_b_network_subscription=is_phone_in_call_volte, 228 verify_phone_c_network_subscription=is_phone_in_call_volte) 229 if call_ab_id is None or call_ac_id is None: 230 return False 231 232 return _test_ims_conference_merge_drop_second_call_from_participant( 233 self.log, ads, call_ab_id, call_ac_id) 234 235 @TelephonyBaseTest.tel_test_wrap 236 @test_tracker_info(uuid="15b23934-ac8c-4c3a-9967-c19e46c0d86b") 237 def test_5g_nsa_volte_mo_mt_add_5g_nsa_volte_merge_drop_second_call_from_host( 238 self): 239 """ Test nsa 5g VoLTE Conference Call among three phones. 240 241 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 242 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 243 3. On PhoneA, merge to conference call. 244 4. On PhoneA disconnect call between A-C, verify call continues. 245 5. On PhoneA disconnect call between A-B, verify call continues. 246 247 Returns: 248 True if pass; False if fail. 249 """ 250 ads = self.android_devices 251 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 252 log=self.log, 253 ads=ads, 254 num_swaps=0, 255 phone_setup_a=provision_device_for_5g, 256 phone_setup_b=provision_device_for_5g, 257 phone_setup_c=provision_device_for_5g, 258 verify_phone_a_network_subscription=is_phone_in_call_volte, 259 verify_phone_b_network_subscription=is_phone_in_call_volte, 260 verify_phone_c_network_subscription=is_phone_in_call_volte) 261 if call_ab_id is None or call_ac_id is None: 262 return False 263 264 return _test_ims_conference_merge_drop_second_call_from_host( 265 self.log, ads, call_ab_id, call_ac_id) 266 267 @TelephonyBaseTest.tel_test_wrap 268 @test_tracker_info(uuid="2d0b60db-44cd-48c2-8361-6a3af051eb22") 269 def test_5g_nsa_volte_mo_mt_add_5g_nsa_volte_merge_drop_first_call_from_participant( 270 self): 271 """ Test nsa 5g VoLTE Conference Call among three phones. 272 273 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 274 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 275 3. On PhoneA, merge to conference call. 276 4. End call on PhoneB, verify call continues. 277 5. End call on PhoneC, verify call end on PhoneA. 278 279 Returns: 280 True if pass; False if fail. 281 """ 282 ads = self.android_devices 283 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 284 log=self.log, 285 ads=ads, 286 num_swaps=0, 287 phone_setup_a=provision_device_for_5g, 288 phone_setup_b=provision_device_for_5g, 289 phone_setup_c=provision_device_for_5g, 290 verify_phone_a_network_subscription=is_phone_in_call_volte, 291 verify_phone_b_network_subscription=is_phone_in_call_volte, 292 verify_phone_c_network_subscription=is_phone_in_call_volte) 293 if call_ab_id is None or call_ac_id is None: 294 return False 295 296 return _test_ims_conference_merge_drop_first_call_from_participant( 297 self.log, ads, call_ab_id, call_ac_id) 298 299 @TelephonyBaseTest.tel_test_wrap 300 @test_tracker_info(uuid="c6b47773-70f2-413c-8f6c-29dc4abce44f") 301 def test_5g_nsa_volte_mo_mt_add_5g_nsa_volte_merge_drop_first_call_from_host( 302 self): 303 """ Test nsa 5g VoLTE Conference Call among three phones. 304 305 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 306 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 307 3. On PhoneA, merge to conference call. 308 4. On PhoneA disconnect call between A-B, verify call continues. 309 5. On PhoneA disconnect call between A-C, verify call continues. 310 311 Returns: 312 True if pass; False if fail. 313 """ 314 ads = self.android_devices 315 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 316 log=self.log, 317 ads=ads, 318 num_swaps=0, 319 phone_setup_a=provision_device_for_5g, 320 phone_setup_b=provision_device_for_5g, 321 phone_setup_c=provision_device_for_5g, 322 verify_phone_a_network_subscription=is_phone_in_call_volte, 323 verify_phone_b_network_subscription=is_phone_in_call_volte, 324 verify_phone_c_network_subscription=is_phone_in_call_volte) 325 if call_ab_id is None or call_ac_id is None: 326 return False 327 328 return _test_ims_conference_merge_drop_first_call_from_host( 329 self.log, ads, call_ab_id, call_ac_id) 330 331 @TelephonyBaseTest.tel_test_wrap 332 @test_tracker_info(uuid="47fe393b-9605-4c52-b322-c3baeb6aae3e") 333 def test_5g_nsa_volte_mt_mt_add_5g_nsa_volte_merge_drop_second_call_from_participant( 334 self): 335 """ Test nsa 5g VoLTE Conference Call among three phones. 336 337 1. Call from PhoneB (nsa 5G VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 338 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 339 3. On PhoneA, merge to conference call. 340 4. End call on PhoneC, verify call continues. 341 5. End call on PhoneB, verify call end on PhoneA. 342 343 Returns: 344 True if pass; False if fail. 345 """ 346 ads = self.android_devices 347 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 348 log=self.log, 349 ads=ads, 350 num_swaps=0, 351 phone_setup_a=provision_device_for_5g, 352 phone_setup_b=provision_device_for_5g, 353 phone_setup_c=provision_device_for_5g, 354 verify_phone_a_network_subscription=is_phone_in_call_volte, 355 verify_phone_b_network_subscription=is_phone_in_call_volte, 356 verify_phone_c_network_subscription=is_phone_in_call_volte) 357 if call_ab_id is None or call_ac_id is None: 358 return False 359 360 return _test_ims_conference_merge_drop_second_call_from_participant( 361 self.log, ads, call_ab_id, call_ac_id) 362 363 @TelephonyBaseTest.tel_test_wrap 364 @test_tracker_info(uuid="7d633e59-2918-4e7c-b01d-576bc2f31ab3") 365 def test_5g_nsa_volte_mt_mt_add_5g_nsa_volte_merge_drop_second_call_from_host( 366 self): 367 """ Test nsa 5g VoLTE Conference Call among three phones. 368 369 1. Call from PhoneB (nsa 5G VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 370 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 371 3. On PhoneA, merge to conference call. 372 4. On PhoneA disconnect call between A-C, verify call continues. 373 5. On PhoneA disconnect call between A-B, verify call continues. 374 375 Returns: 376 True if pass; False if fail. 377 """ 378 ads = self.android_devices 379 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 380 log=self.log, 381 ads=ads, 382 num_swaps=0, 383 phone_setup_a=provision_device_for_5g, 384 phone_setup_b=provision_device_for_5g, 385 phone_setup_c=provision_device_for_5g, 386 verify_phone_a_network_subscription=is_phone_in_call_volte, 387 verify_phone_b_network_subscription=is_phone_in_call_volte, 388 verify_phone_c_network_subscription=is_phone_in_call_volte) 389 if call_ab_id is None or call_ac_id is None: 390 return False 391 392 return _test_ims_conference_merge_drop_second_call_from_host( 393 self.log, ads, call_ab_id, call_ac_id) 394 395 @TelephonyBaseTest.tel_test_wrap 396 @test_tracker_info(uuid="23faa690-e96f-40bc-ab2c-7c4e51f1323c") 397 def test_5g_nsa_volte_mt_mt_add_5g_nsa_volte_merge_drop_first_call_from_participant( 398 self): 399 """ Test nsa 5g VoLTE Conference Call among three phones. 400 401 1. Call from PhoneB (nsa 5G VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 402 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 403 3. On PhoneA, merge to conference call. 404 4. End call on PhoneB, verify call continues. 405 5. End call on PhoneC, verify call end on PhoneA. 406 407 Returns: 408 True if pass; False if fail. 409 """ 410 ads = self.android_devices 411 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 412 log=self.log, 413 ads=ads, 414 num_swaps=0, 415 phone_setup_a=provision_device_for_5g, 416 phone_setup_b=provision_device_for_5g, 417 phone_setup_c=provision_device_for_5g, 418 verify_phone_a_network_subscription=is_phone_in_call_volte, 419 verify_phone_b_network_subscription=is_phone_in_call_volte, 420 verify_phone_c_network_subscription=is_phone_in_call_volte) 421 if call_ab_id is None or call_ac_id is None: 422 return False 423 424 return _test_ims_conference_merge_drop_first_call_from_participant( 425 self.log, ads, call_ab_id, call_ac_id) 426 427 @TelephonyBaseTest.tel_test_wrap 428 @test_tracker_info(uuid="67dff58b-8111-41ba-9b8e-f06056b0db0a") 429 def test_5g_nsa_volte_mt_mt_add_5g_nsa_volte_merge_drop_first_call_from_host( 430 self): 431 """ Test nsa 5g VoLTE Conference Call among three phones. 432 433 1. Call from PhoneB (nsa 5G VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 434 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 435 3. On PhoneA, merge to conference call. 436 4. On PhoneA disconnect call between A-B, verify call continues. 437 5. On PhoneA disconnect call between A-C, verify call continues. 438 439 Returns: 440 True if pass; False if fail. 441 """ 442 ads = self.android_devices 443 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 444 log=self.log, 445 ads=ads, 446 num_swaps=0, 447 phone_setup_a=provision_device_for_5g, 448 phone_setup_b=provision_device_for_5g, 449 phone_setup_c=provision_device_for_5g, 450 verify_phone_a_network_subscription=is_phone_in_call_volte, 451 verify_phone_b_network_subscription=is_phone_in_call_volte, 452 verify_phone_c_network_subscription=is_phone_in_call_volte) 453 if call_ab_id is None or call_ac_id is None: 454 return False 455 456 return _test_ims_conference_merge_drop_first_call_from_host( 457 self.log, ads, call_ab_id, call_ac_id) 458 459 @TelephonyBaseTest.tel_test_wrap 460 @test_tracker_info(uuid="4cf986be-d63c-472e-9702-9a30bf0d4f79") 461 def test_5g_nsa_volte_mo_mo_add_4g_volte_merge_drop_second_call_from_participant( 462 self): 463 """ Test nsa 5g VoLTE Conference Call among three phones. 464 465 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (VoLTE), accept on PhoneB. 466 2. Call from PhoneA (nsa 5G VoLTE) to PhoneC (VoLTE), accept on PhoneC. 467 3. On PhoneA, merge to conference call. 468 4. End call on PhoneC, verify call continues. 469 5. End call on PhoneB, verify call end on PhoneA. 470 471 Returns: 472 True if pass; False if fail. 473 """ 474 ads = self.android_devices 475 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 476 log=self.log, 477 ads=ads, 478 num_swaps=0, 479 phone_setup_a=provision_device_for_5g, 480 phone_setup_b=phone_setup_volte, 481 phone_setup_c=phone_setup_volte, 482 verify_phone_a_network_subscription=is_phone_in_call_volte, 483 verify_phone_b_network_subscription=is_phone_in_call_volte, 484 verify_phone_c_network_subscription=is_phone_in_call_volte) 485 if call_ab_id is None or call_ac_id is None: 486 return False 487 488 return _test_ims_conference_merge_drop_second_call_from_participant( 489 self.log, ads, call_ab_id, call_ac_id) 490 491 @TelephonyBaseTest.tel_test_wrap 492 @test_tracker_info(uuid="d77bd012-390d-433a-a705-b0a4d263d73c") 493 def test_5g_nsa_volte_mo_mo_add_4g_volte_merge_drop_second_call_from_host( 494 self): 495 """ Test nsa 5g VoLTE Conference Call among three phones. 496 497 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (VoLTE), accept on PhoneB. 498 2. Call from PhoneA (nsa 5G VoLTE) to PhoneC (VoLTE), accept on PhoneC. 499 3. On PhoneA, merge to conference call. 500 4. On PhoneA disconnect call between A-C, verify call continues. 501 5. On PhoneA disconnect call between A-B, verify call continues. 502 503 Returns: 504 True if pass; False if fail. 505 """ 506 ads = self.android_devices 507 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 508 log=self.log, 509 ads=ads, 510 num_swaps=0, 511 phone_setup_a=provision_device_for_5g, 512 phone_setup_b=phone_setup_volte, 513 phone_setup_c=phone_setup_volte, 514 verify_phone_a_network_subscription=is_phone_in_call_volte, 515 verify_phone_b_network_subscription=is_phone_in_call_volte, 516 verify_phone_c_network_subscription=is_phone_in_call_volte) 517 if call_ab_id is None or call_ac_id is None: 518 return False 519 520 return _test_ims_conference_merge_drop_second_call_from_host( 521 self.log, ads, call_ab_id, call_ac_id) 522 523 @TelephonyBaseTest.tel_test_wrap 524 @test_tracker_info(uuid="3d3945bc-39c3-42dc-9deb-a3f7fb46bba9") 525 def test_5g_nsa_volte_mo_mo_add_4g_volte_merge_drop_first_call_from_participant( 526 self): 527 """ Test nsa 5g VoLTE Conference Call among three phones. 528 529 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (VoLTE), accept on PhoneB. 530 2. Call from PhoneA (nsa 5G VoLTE) to PhoneC (VoLTE), accept on PhoneC. 531 3. On PhoneA, merge to conference call. 532 4. End call on PhoneB, verify call continues. 533 5. End call on PhoneC, verify call end on PhoneA. 534 535 Returns: 536 True if pass; False if fail. 537 """ 538 ads = self.android_devices 539 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 540 log=self.log, 541 ads=ads, 542 num_swaps=0, 543 phone_setup_a=provision_device_for_5g, 544 phone_setup_b=phone_setup_volte, 545 phone_setup_c=phone_setup_volte, 546 verify_phone_a_network_subscription=is_phone_in_call_volte, 547 verify_phone_b_network_subscription=is_phone_in_call_volte, 548 verify_phone_c_network_subscription=is_phone_in_call_volte) 549 if call_ab_id is None or call_ac_id is None: 550 return False 551 552 return _test_ims_conference_merge_drop_first_call_from_participant( 553 self.log, ads, call_ab_id, call_ac_id) 554 555 @TelephonyBaseTest.tel_test_wrap 556 @test_tracker_info(uuid="6bce0033-da88-4601-bc2f-7fd930b4cc6f") 557 def test_5g_nsa_volte_mo_mo_add_4g_volte_merge_drop_first_call_from_host( 558 self): 559 """ Test nsa 5g VoLTE Conference Call among three phones. 560 561 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (VoLTE), accept on PhoneB. 562 2. Call from PhoneA (nsa 5G VoLTE) to PhoneC (VoLTE), accept on PhoneC. 563 3. On PhoneA, merge to conference call. 564 4. On PhoneA disconnect call between A-B, verify call continues. 565 5. On PhoneA disconnect call between A-C, verify call continues. 566 567 Returns: 568 True if pass; False if fail. 569 """ 570 ads = self.android_devices 571 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 572 log=self.log, 573 ads=ads, 574 num_swaps=0, 575 phone_setup_a=provision_device_for_5g, 576 phone_setup_b=phone_setup_volte, 577 phone_setup_c=phone_setup_volte, 578 verify_phone_a_network_subscription=is_phone_in_call_volte, 579 verify_phone_b_network_subscription=is_phone_in_call_volte, 580 verify_phone_c_network_subscription=is_phone_in_call_volte) 581 if call_ab_id is None or call_ac_id is None: 582 return False 583 584 return _test_ims_conference_merge_drop_first_call_from_host( 585 self.log, ads, call_ab_id, call_ac_id) 586 587 @TelephonyBaseTest.tel_test_wrap 588 @test_tracker_info(uuid="c76be000-eda1-452e-a813-5f2b3c1ea85d") 589 def test_5g_nsa_volte_mo_mt_add_4g_volte_merge_drop_second_call_from_participant( 590 self): 591 """ Test nsa 5g VoLTE Conference Call among three phones. 592 593 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (VoLTE), accept on PhoneB. 594 2. Call from PhoneC (VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 595 3. On PhoneA, merge to conference call. 596 4. End call on PhoneC, verify call continues. 597 5. End call on PhoneB, verify call end on PhoneA. 598 599 Returns: 600 True if pass; False if fail. 601 """ 602 ads = self.android_devices 603 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 604 log=self.log, 605 ads=ads, 606 num_swaps=0, 607 phone_setup_a=provision_device_for_5g, 608 phone_setup_b=phone_setup_volte, 609 phone_setup_c=phone_setup_volte, 610 verify_phone_a_network_subscription=is_phone_in_call_volte, 611 verify_phone_b_network_subscription=is_phone_in_call_volte, 612 verify_phone_c_network_subscription=is_phone_in_call_volte) 613 if call_ab_id is None or call_ac_id is None: 614 return False 615 616 return _test_ims_conference_merge_drop_second_call_from_participant( 617 self.log, ads, call_ab_id, call_ac_id) 618 619 @TelephonyBaseTest.tel_test_wrap 620 @test_tracker_info(uuid="ea104940-872a-4cf7-a47c-db620762c818") 621 def test_5g_nsa_volte_mo_mt_add_4g_volte_merge_drop_second_call_from_host( 622 self): 623 """ Test nsa 5g VoLTE Conference Call among three phones. 624 625 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (VoLTE), accept on PhoneB. 626 2. Call from PhoneC (VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 627 3. On PhoneA, merge to conference call. 628 4. On PhoneA disconnect call between A-C, verify call continues. 629 5. On PhoneA disconnect call between A-B, verify call continues. 630 631 Returns: 632 True if pass; False if fail. 633 """ 634 ads = self.android_devices 635 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 636 log=self.log, 637 ads=ads, 638 num_swaps=0, 639 phone_setup_a=provision_device_for_5g, 640 phone_setup_b=phone_setup_volte, 641 phone_setup_c=phone_setup_volte, 642 verify_phone_a_network_subscription=is_phone_in_call_volte, 643 verify_phone_b_network_subscription=is_phone_in_call_volte, 644 verify_phone_c_network_subscription=is_phone_in_call_volte) 645 if call_ab_id is None or call_ac_id is None: 646 return False 647 648 return _test_ims_conference_merge_drop_second_call_from_host( 649 self.log, ads, call_ab_id, call_ac_id) 650 651 @TelephonyBaseTest.tel_test_wrap 652 @test_tracker_info(uuid="1dde3ce7-cd02-4434-99b9-af025b5ada05") 653 def test_5g_nsa_volte_mo_mt_add_4g_volte_merge_drop_first_call_from_participant( 654 self): 655 """ Test nsa 5g VoLTE Conference Call among three phones. 656 657 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (VoLTE), accept on PhoneB. 658 2. Call from PhoneC (VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 659 3. On PhoneA, merge to conference call. 660 4. End call on PhoneB, verify call continues. 661 5. End call on PhoneC, verify call end on PhoneA. 662 663 Returns: 664 True if pass; False if fail. 665 """ 666 ads = self.android_devices 667 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 668 log=self.log, 669 ads=ads, 670 num_swaps=0, 671 phone_setup_a=provision_device_for_5g, 672 phone_setup_b=phone_setup_volte, 673 phone_setup_c=phone_setup_volte, 674 verify_phone_a_network_subscription=is_phone_in_call_volte, 675 verify_phone_b_network_subscription=is_phone_in_call_volte, 676 verify_phone_c_network_subscription=is_phone_in_call_volte) 677 if call_ab_id is None or call_ac_id is None: 678 return False 679 680 return _test_ims_conference_merge_drop_first_call_from_participant( 681 self.log, ads, call_ab_id, call_ac_id) 682 683 @TelephonyBaseTest.tel_test_wrap 684 @test_tracker_info(uuid="3ae5aee3-94c2-40ad-b8a1-c3e05a6c8365") 685 def test_5g_nsa_volte_mo_mt_add_4g_volte_merge_drop_first_call_from_host( 686 self): 687 """ Test nsa 5g VoLTE Conference Call among three phones. 688 689 1. Call from PhoneA (nsa 5G VoLTE) to PhoneB (VoLTE), accept on PhoneB. 690 2. Call from PhoneC (VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 691 3. On PhoneA, merge to conference call. 692 4. On PhoneA disconnect call between A-B, verify call continues. 693 5. On PhoneA disconnect call between A-C, verify call continues. 694 695 Returns: 696 True if pass; False if fail. 697 """ 698 ads = self.android_devices 699 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 700 log=self.log, 701 ads=ads, 702 num_swaps=0, 703 phone_setup_a=provision_device_for_5g, 704 phone_setup_b=phone_setup_volte, 705 phone_setup_c=phone_setup_volte, 706 verify_phone_a_network_subscription=is_phone_in_call_volte, 707 verify_phone_b_network_subscription=is_phone_in_call_volte, 708 verify_phone_c_network_subscription=is_phone_in_call_volte) 709 if call_ab_id is None or call_ac_id is None: 710 return False 711 712 return _test_ims_conference_merge_drop_first_call_from_host( 713 self.log, ads, call_ab_id, call_ac_id) 714 715 @TelephonyBaseTest.tel_test_wrap 716 @test_tracker_info(uuid="f45fb3c8-40b5-4731-9743-c6c63460ff9e") 717 def test_5g_nsa_volte_mt_mt_add_4g_volte_merge_drop_second_call_from_participant( 718 self): 719 """ Test nsa 5g VoLTE Conference Call among three phones. 720 721 1. Call from PhoneB (VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 722 2. Call from PhoneC (VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 723 3. On PhoneA, merge to conference call. 724 4. End call on PhoneC, verify call continues. 725 5. End call on PhoneB, verify call end on PhoneA. 726 727 Returns: 728 True if pass; False if fail. 729 """ 730 ads = self.android_devices 731 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 732 log=self.log, 733 ads=ads, 734 num_swaps=0, 735 phone_setup_a=provision_device_for_5g, 736 phone_setup_b=phone_setup_volte, 737 phone_setup_c=phone_setup_volte, 738 verify_phone_a_network_subscription=is_phone_in_call_volte, 739 verify_phone_b_network_subscription=is_phone_in_call_volte, 740 verify_phone_c_network_subscription=is_phone_in_call_volte) 741 if call_ab_id is None or call_ac_id is None: 742 return False 743 744 return _test_ims_conference_merge_drop_second_call_from_participant( 745 self.log, ads, call_ab_id, call_ac_id) 746 747 @TelephonyBaseTest.tel_test_wrap 748 @test_tracker_info(uuid="1ae31dcf-b5e5-44f1-aec7-472fa6300c16") 749 def test_5g_nsa_volte_mt_mt_add_4g_volte_merge_drop_second_call_from_host( 750 self): 751 """ Test nsa 5g VoLTE Conference Call among three phones. 752 753 1. Call from PhoneB (VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 754 2. Call from PhoneC (VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 755 3. On PhoneA, merge to conference call. 756 4. On PhoneA disconnect call between A-C, verify call continues. 757 5. On PhoneA disconnect call between A-B, verify call continues. 758 759 Returns: 760 True if pass; False if fail. 761 """ 762 ads = self.android_devices 763 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 764 log=self.log, 765 ads=ads, 766 num_swaps=0, 767 phone_setup_a=provision_device_for_5g, 768 phone_setup_b=phone_setup_volte, 769 phone_setup_c=phone_setup_volte, 770 verify_phone_a_network_subscription=is_phone_in_call_volte, 771 verify_phone_b_network_subscription=is_phone_in_call_volte, 772 verify_phone_c_network_subscription=is_phone_in_call_volte) 773 if call_ab_id is None or call_ac_id is None: 774 return False 775 776 return _test_ims_conference_merge_drop_second_call_from_host( 777 self.log, ads, call_ab_id, call_ac_id) 778 779 @TelephonyBaseTest.tel_test_wrap 780 @test_tracker_info(uuid="b35ec011-e98c-4b79-98ea-7d6acf63c3fe") 781 def test_5g_nsa_volte_mt_mt_add_4g_volte_merge_drop_first_call_from_participant( 782 self): 783 """ Test nsa 5g VoLTE Conference Call among three phones. 784 785 1. Call from PhoneB (VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 786 2. Call from PhoneC (VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 787 3. On PhoneA, merge to conference call. 788 4. End call on PhoneB, verify call continues. 789 5. End call on PhoneC, verify call end on PhoneA. 790 791 Returns: 792 True if pass; False if fail. 793 """ 794 ads = self.android_devices 795 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 796 log=self.log, 797 ads=ads, 798 num_swaps=0, 799 phone_setup_a=provision_device_for_5g, 800 phone_setup_b=phone_setup_volte, 801 phone_setup_c=phone_setup_volte, 802 verify_phone_a_network_subscription=is_phone_in_call_volte, 803 verify_phone_b_network_subscription=is_phone_in_call_volte, 804 verify_phone_c_network_subscription=is_phone_in_call_volte) 805 if call_ab_id is None or call_ac_id is None: 806 return False 807 808 return _test_ims_conference_merge_drop_first_call_from_participant( 809 self.log, ads, call_ab_id, call_ac_id) 810 811 @TelephonyBaseTest.tel_test_wrap 812 @test_tracker_info(uuid="22db778c-bedb-4099-8764-f2832d87dcd9") 813 def test_5g_nsa_volte_mt_mt_add_4g_volte_merge_drop_first_call_from_host( 814 self): 815 """ Test nsa 5g VoLTE Conference Call among three phones. 816 817 1. Call from PhoneB (VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 818 2. Call from PhoneC (VoLTE) to PhoneA (nsa 5G VoLTE), accept on PhoneA. 819 3. On PhoneA, merge to conference call. 820 4. On PhoneA disconnect call between A-B, verify call continues. 821 5. On PhoneA disconnect call between A-C, verify call continues. 822 823 Returns: 824 True if pass; False if fail. 825 """ 826 ads = self.android_devices 827 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 828 log=self.log, 829 ads=ads, 830 num_swaps=0, 831 phone_setup_a=provision_device_for_5g, 832 phone_setup_b=phone_setup_volte, 833 phone_setup_c=phone_setup_volte, 834 verify_phone_a_network_subscription=is_phone_in_call_volte, 835 verify_phone_b_network_subscription=is_phone_in_call_volte, 836 verify_phone_c_network_subscription=is_phone_in_call_volte) 837 if call_ab_id is None or call_ac_id is None: 838 return False 839 840 return _test_ims_conference_merge_drop_first_call_from_host( 841 self.log, ads, call_ab_id, call_ac_id) 842 843 @TelephonyBaseTest.tel_test_wrap 844 @test_tracker_info(uuid="e98ca225-7c65-4c61-bde7-9c3ef350dc30") 845 def test_4g_volte_mo_mo_add_5g_nsa_volte_merge_drop_second_call_from_participant( 846 self): 847 """ Test nsa 5g VoLTE Conference Call among three phones. 848 849 1. Call from PhoneA (VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 850 2. Call from PhoneA (VoLTE) to PhoneC (nsa 5G VoLTE), accept on PhoneC. 851 3. On PhoneA, merge to conference call. 852 4. End call on PhoneC, verify call continues. 853 5. End call on PhoneB, verify call end on PhoneA. 854 855 Returns: 856 True if pass; False if fail. 857 """ 858 ads = self.android_devices 859 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 860 log=self.log, 861 ads=ads, 862 num_swaps=0, 863 phone_setup_a=phone_setup_volte, 864 phone_setup_b=provision_device_for_5g, 865 phone_setup_c=provision_device_for_5g, 866 verify_phone_a_network_subscription=is_phone_in_call_volte, 867 verify_phone_b_network_subscription=is_phone_in_call_volte, 868 verify_phone_c_network_subscription=is_phone_in_call_volte) 869 if call_ab_id is None or call_ac_id is None: 870 return False 871 872 return _test_ims_conference_merge_drop_second_call_from_participant( 873 self.log, ads, call_ab_id, call_ac_id) 874 875 @TelephonyBaseTest.tel_test_wrap 876 @test_tracker_info(uuid="3d7cf9ce-7658-46f7-a852-c429cd772bda") 877 def test_4g_volte_mo_mo_add_5g_nsa_volte_merge_drop_second_call_from_host( 878 self): 879 """ Test nsa 5g VoLTE Conference Call among three phones. 880 881 1. Call from PhoneA (VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 882 2. Call from PhoneA (VoLTE) to PhoneC (nsa 5G VoLTE), accept on PhoneC. 883 3. On PhoneA, merge to conference call. 884 4. On PhoneA disconnect call between A-C, verify call continues. 885 5. On PhoneA disconnect call between A-B, verify call continues. 886 887 Returns: 888 True if pass; False if fail. 889 """ 890 ads = self.android_devices 891 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 892 log=self.log, 893 ads=ads, 894 num_swaps=0, 895 phone_setup_a=phone_setup_volte, 896 phone_setup_b=provision_device_for_5g, 897 phone_setup_c=provision_device_for_5g, 898 verify_phone_a_network_subscription=is_phone_in_call_volte, 899 verify_phone_b_network_subscription=is_phone_in_call_volte, 900 verify_phone_c_network_subscription=is_phone_in_call_volte) 901 if call_ab_id is None or call_ac_id is None: 902 return False 903 904 return _test_ims_conference_merge_drop_second_call_from_host( 905 self.log, ads, call_ab_id, call_ac_id) 906 907 @TelephonyBaseTest.tel_test_wrap 908 @test_tracker_info(uuid="5803ba4f-4b73-4f88-a9c4-1b61a4afd84b") 909 def test_4g_volte_mo_mo_add_5g_nsa_volte_merge_drop_first_call_from_participant( 910 self): 911 """ Test nsa 5g VoLTE Conference Call among three phones. 912 913 1. Call from PhoneA (VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 914 2. Call from PhoneA (VoLTE) to PhoneC (nsa 5G VoLTE), accept on PhoneC. 915 3. On PhoneA, merge to conference call. 916 4. End call on PhoneB, verify call continues. 917 5. End call on PhoneC, verify call end on PhoneA. 918 919 Returns: 920 True if pass; False if fail. 921 """ 922 ads = self.android_devices 923 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 924 log=self.log, 925 ads=ads, 926 num_swaps=0, 927 phone_setup_a=phone_setup_volte, 928 phone_setup_b=provision_device_for_5g, 929 phone_setup_c=provision_device_for_5g, 930 verify_phone_a_network_subscription=is_phone_in_call_volte, 931 verify_phone_b_network_subscription=is_phone_in_call_volte, 932 verify_phone_c_network_subscription=is_phone_in_call_volte) 933 if call_ab_id is None or call_ac_id is None: 934 return False 935 936 return _test_ims_conference_merge_drop_first_call_from_participant( 937 self.log, ads, call_ab_id, call_ac_id) 938 939 @TelephonyBaseTest.tel_test_wrap 940 @test_tracker_info(uuid="1f44800c-2bb2-46a3-9011-818f00e75e3f") 941 def test_4g_volte_mo_mo_add_5g_nsa_volte_merge_drop_first_call_from_host( 942 self): 943 """ Test nsa 5g VoLTE Conference Call among three phones. 944 945 1. Call from PhoneA (VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 946 2. Call from PhoneA (VoLTE) to PhoneC (nsa 5G VoLTE), accept on PhoneC. 947 3. On PhoneA, merge to conference call. 948 4. On PhoneA disconnect call between A-B, verify call continues. 949 5. On PhoneA disconnect call between A-C, verify call continues. 950 951 Returns: 952 True if pass; False if fail. 953 """ 954 ads = self.android_devices 955 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 956 log=self.log, 957 ads=ads, 958 num_swaps=0, 959 phone_setup_a=phone_setup_volte, 960 phone_setup_b=provision_device_for_5g, 961 phone_setup_c=provision_device_for_5g, 962 verify_phone_a_network_subscription=is_phone_in_call_volte, 963 verify_phone_b_network_subscription=is_phone_in_call_volte, 964 verify_phone_c_network_subscription=is_phone_in_call_volte) 965 if call_ab_id is None or call_ac_id is None: 966 return False 967 968 return _test_ims_conference_merge_drop_first_call_from_host( 969 self.log, ads, call_ab_id, call_ac_id) 970 971 @TelephonyBaseTest.tel_test_wrap 972 @test_tracker_info(uuid="fbc13772-314d-4b9a-8940-6edfe577c9f4") 973 def test_4g_volte_mo_mt_add_5g_nsa_volte_merge_drop_second_call_from_participant( 974 self): 975 """ Test nsa 5g VoLTE Conference Call among three phones. 976 977 1. Call from PhoneA (VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 978 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (VoLTE), accept on PhoneA. 979 3. On PhoneA, merge to conference call. 980 4. End call on PhoneC, verify call continues. 981 5. End call on PhoneB, verify call end on PhoneA. 982 983 Returns: 984 True if pass; False if fail. 985 """ 986 ads = self.android_devices 987 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 988 log=self.log, 989 ads=ads, 990 num_swaps=0, 991 phone_setup_a=phone_setup_volte, 992 phone_setup_b=provision_device_for_5g, 993 phone_setup_c=provision_device_for_5g, 994 verify_phone_a_network_subscription=is_phone_in_call_volte, 995 verify_phone_b_network_subscription=is_phone_in_call_volte, 996 verify_phone_c_network_subscription=is_phone_in_call_volte) 997 if call_ab_id is None or call_ac_id is None: 998 return False 999 1000 return _test_ims_conference_merge_drop_second_call_from_participant( 1001 self.log, ads, call_ab_id, call_ac_id) 1002 1003 @TelephonyBaseTest.tel_test_wrap 1004 @test_tracker_info(uuid="7b4e7c11-d633-4dc5-8fb1-25ad1ef4a4e8") 1005 def test_4g_volte_mo_mt_add_5g_nsa_volte_merge_drop_second_call_from_host( 1006 self): 1007 """ Test nsa 5g VoLTE Conference Call among three phones. 1008 1009 1. Call from PhoneA (VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 1010 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1011 3. On PhoneA, merge to conference call. 1012 4. On PhoneA disconnect call between A-C, verify call continues. 1013 5. On PhoneA disconnect call between A-B, verify call continues. 1014 1015 Returns: 1016 True if pass; False if fail. 1017 """ 1018 ads = self.android_devices 1019 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 1020 log=self.log, 1021 ads=ads, 1022 num_swaps=0, 1023 phone_setup_a=phone_setup_volte, 1024 phone_setup_b=provision_device_for_5g, 1025 phone_setup_c=provision_device_for_5g, 1026 verify_phone_a_network_subscription=is_phone_in_call_volte, 1027 verify_phone_b_network_subscription=is_phone_in_call_volte, 1028 verify_phone_c_network_subscription=is_phone_in_call_volte) 1029 if call_ab_id is None or call_ac_id is None: 1030 return False 1031 1032 return _test_ims_conference_merge_drop_second_call_from_host( 1033 self.log, ads, call_ab_id, call_ac_id) 1034 1035 @TelephonyBaseTest.tel_test_wrap 1036 @test_tracker_info(uuid="98adc3f4-ab57-4485-946f-08c1e8a69efb") 1037 def test_4g_volte_mo_mt_add_5g_nsa_volte_merge_drop_first_call_from_participant( 1038 self): 1039 """ Test nsa 5g VoLTE Conference Call among three phones. 1040 1041 1. Call from PhoneA (VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 1042 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1043 3. On PhoneA, merge to conference call. 1044 4. End call on PhoneB, verify call continues. 1045 5. End call on PhoneC, verify call end on PhoneA. 1046 1047 Returns: 1048 True if pass; False if fail. 1049 """ 1050 ads = self.android_devices 1051 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 1052 log=self.log, 1053 ads=ads, 1054 num_swaps=0, 1055 phone_setup_a=phone_setup_volte, 1056 phone_setup_b=provision_device_for_5g, 1057 phone_setup_c=provision_device_for_5g, 1058 verify_phone_a_network_subscription=is_phone_in_call_volte, 1059 verify_phone_b_network_subscription=is_phone_in_call_volte, 1060 verify_phone_c_network_subscription=is_phone_in_call_volte) 1061 if call_ab_id is None or call_ac_id is None: 1062 return False 1063 1064 return _test_ims_conference_merge_drop_first_call_from_participant( 1065 self.log, ads, call_ab_id, call_ac_id) 1066 1067 @TelephonyBaseTest.tel_test_wrap 1068 @test_tracker_info(uuid="93adad3d-c3ca-4fc1-88ec-e32c5330efd6") 1069 def test_4g_volte_mo_mt_add_5g_nsa_volte_merge_drop_first_call_from_host( 1070 self): 1071 """ Test nsa 5g VoLTE Conference Call among three phones. 1072 1073 1. Call from PhoneA (VoLTE) to PhoneB (nsa 5G VoLTE), accept on PhoneB. 1074 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1075 3. On PhoneA, merge to conference call. 1076 4. On PhoneA disconnect call between A-B, verify call continues. 1077 5. On PhoneA disconnect call between A-C, verify call continues. 1078 1079 Returns: 1080 True if pass; False if fail. 1081 """ 1082 ads = self.android_devices 1083 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 1084 log=self.log, 1085 ads=ads, 1086 num_swaps=0, 1087 phone_setup_a=phone_setup_volte, 1088 phone_setup_b=provision_device_for_5g, 1089 phone_setup_c=provision_device_for_5g, 1090 verify_phone_a_network_subscription=is_phone_in_call_volte, 1091 verify_phone_b_network_subscription=is_phone_in_call_volte, 1092 verify_phone_c_network_subscription=is_phone_in_call_volte) 1093 if call_ab_id is None or call_ac_id is None: 1094 return False 1095 1096 return _test_ims_conference_merge_drop_first_call_from_host( 1097 self.log, ads, call_ab_id, call_ac_id) 1098 1099 @TelephonyBaseTest.tel_test_wrap 1100 @test_tracker_info(uuid="6064eed6-0b23-4089-af30-f0c1f3ea844e") 1101 def test_4g_volte_mt_mt_add_5g_nsa_volte_merge_drop_second_call_from_participant( 1102 self): 1103 """ Test nsa 5g VoLTE Conference Call among three phones. 1104 1105 1. Call from PhoneB (nsa 5G VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1106 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1107 3. On PhoneA, merge to conference call. 1108 4. End call on PhoneC, verify call continues. 1109 5. End call on PhoneB, verify call end on PhoneA. 1110 1111 Returns: 1112 True if pass; False if fail. 1113 """ 1114 ads = self.android_devices 1115 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 1116 log=self.log, 1117 ads=ads, 1118 num_swaps=0, 1119 phone_setup_a=phone_setup_volte, 1120 phone_setup_b=provision_device_for_5g, 1121 phone_setup_c=provision_device_for_5g, 1122 verify_phone_a_network_subscription=is_phone_in_call_volte, 1123 verify_phone_b_network_subscription=is_phone_in_call_volte, 1124 verify_phone_c_network_subscription=is_phone_in_call_volte) 1125 if call_ab_id is None or call_ac_id is None: 1126 return False 1127 1128 return _test_ims_conference_merge_drop_second_call_from_participant( 1129 self.log, ads, call_ab_id, call_ac_id) 1130 1131 @TelephonyBaseTest.tel_test_wrap 1132 @test_tracker_info(uuid="845e0521-fcb9-4609-a325-3ecb7681e3d8") 1133 def test_4g_volte_mt_mt_add_5g_nsa_volte_merge_drop_second_call_from_host( 1134 self): 1135 """ Test nsa 5g VoLTE Conference Call among three phones. 1136 1137 1. Call from PhoneB (nsa 5G VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1138 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1139 3. On PhoneA, merge to conference call. 1140 4. On PhoneA disconnect call between A-C, verify call continues. 1141 5. On PhoneA disconnect call between A-B, verify call continues. 1142 1143 Returns: 1144 True if pass; False if fail. 1145 """ 1146 ads = self.android_devices 1147 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 1148 log=self.log, 1149 ads=ads, 1150 num_swaps=0, 1151 phone_setup_a=phone_setup_volte, 1152 phone_setup_b=provision_device_for_5g, 1153 phone_setup_c=provision_device_for_5g, 1154 verify_phone_a_network_subscription=is_phone_in_call_volte, 1155 verify_phone_b_network_subscription=is_phone_in_call_volte, 1156 verify_phone_c_network_subscription=is_phone_in_call_volte) 1157 if call_ab_id is None or call_ac_id is None: 1158 return False 1159 1160 return _test_ims_conference_merge_drop_second_call_from_host( 1161 self.log, ads, call_ab_id, call_ac_id) 1162 1163 @TelephonyBaseTest.tel_test_wrap 1164 @test_tracker_info(uuid="c676851a-e723-420f-be64-b4dbcab9cbea") 1165 def test_4g_volte_mt_mt_add_5g_nsa_volte_merge_drop_first_call_from_participant( 1166 self): 1167 """ Test nsa 5g VoLTE Conference Call among three phones. 1168 1169 1. Call from PhoneB (nsa 5G VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1170 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1171 3. On PhoneA, merge to conference call. 1172 4. End call on PhoneB, verify call continues. 1173 5. End call on PhoneC, verify call end on PhoneA. 1174 1175 Returns: 1176 True if pass; False if fail. 1177 """ 1178 ads = self.android_devices 1179 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 1180 log=self.log, 1181 ads=ads, 1182 num_swaps=0, 1183 phone_setup_a=phone_setup_volte, 1184 phone_setup_b=provision_device_for_5g, 1185 phone_setup_c=provision_device_for_5g, 1186 verify_phone_a_network_subscription=is_phone_in_call_volte, 1187 verify_phone_b_network_subscription=is_phone_in_call_volte, 1188 verify_phone_c_network_subscription=is_phone_in_call_volte) 1189 if call_ab_id is None or call_ac_id is None: 1190 return False 1191 1192 return _test_ims_conference_merge_drop_first_call_from_participant( 1193 self.log, ads, call_ab_id, call_ac_id) 1194 1195 @TelephonyBaseTest.tel_test_wrap 1196 @test_tracker_info(uuid="a2aac8d9-5f87-4d95-a4d3-d8b174652a0e") 1197 def test_4g_volte_mt_mt_add_5g_nsa_volte_merge_drop_first_call_from_host( 1198 self): 1199 """ Test nsa 5g VoLTE Conference Call among three phones. 1200 1201 1. Call from PhoneB (nsa 5G VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1202 2. Call from PhoneC (nsa 5G VoLTE) to PhoneA (VoLTE), accept on PhoneA. 1203 3. On PhoneA, merge to conference call. 1204 4. On PhoneA disconnect call between A-B, verify call continues. 1205 5. On PhoneA disconnect call between A-C, verify call continues. 1206 1207 Returns: 1208 True if pass; False if fail. 1209 """ 1210 ads = self.android_devices 1211 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 1212 log=self.log, 1213 ads=ads, 1214 num_swaps=0, 1215 phone_setup_a=phone_setup_volte, 1216 phone_setup_b=provision_device_for_5g, 1217 phone_setup_c=provision_device_for_5g, 1218 verify_phone_a_network_subscription=is_phone_in_call_volte, 1219 verify_phone_b_network_subscription=is_phone_in_call_volte, 1220 verify_phone_c_network_subscription=is_phone_in_call_volte) 1221 if call_ab_id is None or call_ac_id is None: 1222 return False 1223 1224 return _test_ims_conference_merge_drop_first_call_from_host( 1225 self.log, ads, call_ab_id, call_ac_id) 1226 1227 @TelephonyBaseTest.tel_test_wrap 1228 @test_tracker_info(uuid="9c1a213f-8c85-4234-a974-2add9f698389") 1229 def test_5g_nsa_volte_mo_mo_add_wcdma_merge_drop_second_call_from_participant( 1230 self): 1231 """ Test nsa 5g VoLTE Conference Call among three phones. 1232 1233 1. Call from PhoneA (nsa 5g VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1234 2. Call from PhoneA (nsa 5g VoLTE) to PhoneC (WCDMA), accept on PhoneC. 1235 3. On PhoneA, merge to conference call. 1236 4. End call on PhoneC, verify call continues. 1237 5. End call on PhoneB, verify call end on PhoneA. 1238 1239 Returns: 1240 True if pass; False if fail. 1241 """ 1242 ads = self.android_devices 1243 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 1244 log=self.log, 1245 ads=ads, 1246 num_swaps=0, 1247 phone_setup_a=provision_device_for_5g, 1248 phone_setup_b=phone_setup_voice_3g, 1249 phone_setup_c=phone_setup_voice_3g, 1250 verify_phone_a_network_subscription=is_phone_in_call_volte, 1251 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1252 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1253 if call_ab_id is None or call_ac_id is None: 1254 return False 1255 1256 return _test_ims_conference_merge_drop_second_call_from_participant( 1257 self.log, ads, call_ab_id, call_ac_id) 1258 1259 @TelephonyBaseTest.tel_test_wrap 1260 @test_tracker_info(uuid="53882070-35d3-4b8b-bc09-4debce8a094c") 1261 def test_5g_nsa_volte_mo_mo_add_wcdma_merge_drop_second_call_from_host( 1262 self): 1263 """ Test nsa 5g VoLTE Conference Call among three phones. 1264 1265 1. Call from PhoneA (nsa 5g VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1266 2. Call from PhoneA (nsa 5g VoLTE) to PhoneC (WCDMA), accept on PhoneC. 1267 3. On PhoneA, merge to conference call. 1268 4. On PhoneA disconnect call between A-C, verify call continues. 1269 5. On PhoneA disconnect call between A-B, verify call continues. 1270 1271 Returns: 1272 True if pass; False if fail. 1273 """ 1274 ads = self.android_devices 1275 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 1276 log=self.log, 1277 ads=ads, 1278 num_swaps=0, 1279 phone_setup_a=provision_device_for_5g, 1280 phone_setup_b=phone_setup_voice_3g, 1281 phone_setup_c=phone_setup_voice_3g, 1282 verify_phone_a_network_subscription=is_phone_in_call_volte, 1283 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1284 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1285 if call_ab_id is None or call_ac_id is None: 1286 return False 1287 1288 return _test_ims_conference_merge_drop_second_call_from_host( 1289 self.log, ads, call_ab_id, call_ac_id) 1290 1291 @TelephonyBaseTest.tel_test_wrap 1292 @test_tracker_info(uuid="a69588a5-3e08-4d33-92f7-5397c4d1c58d") 1293 def test_5g_nsa_volte_mo_mo_add_wcdma_merge_drop_first_call_from_participant( 1294 self): 1295 """ Test nsa 5g VoLTE Conference Call among three phones. 1296 1297 1. Call from PhoneA (nsa 5g VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1298 2. Call from PhoneA (nsa 5g VoLTE) to PhoneC (WCDMA), accept on PhoneC. 1299 3. On PhoneA, merge to conference call. 1300 4. End call on PhoneB, verify call continues. 1301 5. End call on PhoneC, verify call end on PhoneA. 1302 1303 Returns: 1304 True if pass; False if fail. 1305 """ 1306 ads = self.android_devices 1307 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 1308 log=self.log, 1309 ads=ads, 1310 num_swaps=0, 1311 phone_setup_a=provision_device_for_5g, 1312 phone_setup_b=phone_setup_voice_3g, 1313 phone_setup_c=phone_setup_voice_3g, 1314 verify_phone_a_network_subscription=is_phone_in_call_volte, 1315 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1316 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1317 if call_ab_id is None or call_ac_id is None: 1318 return False 1319 1320 return _test_ims_conference_merge_drop_first_call_from_participant( 1321 self.log, ads, call_ab_id, call_ac_id) 1322 1323 @TelephonyBaseTest.tel_test_wrap 1324 @test_tracker_info(uuid="da541f3e-6054-4f92-bbe4-242d03d90da2") 1325 def test_5g_nsa_volte_mo_mo_add_wcdma_merge_drop_first_call_from_host( 1326 self): 1327 """ Test nsa 5g VoLTE Conference Call among three phones. 1328 1329 1. Call from PhoneA (nsa 5g VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1330 2. Call from PhoneA (nsa 5g VoLTE) to PhoneC (WCDMA), accept on PhoneC. 1331 3. On PhoneA, merge to conference call. 1332 4. On PhoneA disconnect call between A-B, verify call continues. 1333 5. On PhoneA disconnect call between A-C, verify call continues. 1334 1335 Returns: 1336 True if pass; False if fail. 1337 """ 1338 ads = self.android_devices 1339 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 1340 log=self.log, 1341 ads=ads, 1342 num_swaps=0, 1343 phone_setup_a=provision_device_for_5g, 1344 phone_setup_b=phone_setup_voice_3g, 1345 phone_setup_c=phone_setup_voice_3g, 1346 verify_phone_a_network_subscription=is_phone_in_call_volte, 1347 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1348 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1349 if call_ab_id is None or call_ac_id is None: 1350 return False 1351 1352 return _test_ims_conference_merge_drop_first_call_from_host( 1353 self.log, ads, call_ab_id, call_ac_id) 1354 1355 @TelephonyBaseTest.tel_test_wrap 1356 @test_tracker_info(uuid="54269ba5-bb78-428e-afd0-cba5783d797a") 1357 def test_5g_nsa_volte_mo_mt_add_wcdma_merge_drop_second_call_from_participant( 1358 self): 1359 """ Test nsa 5g VoLTE Conference Call among three phones. 1360 1361 1. Call from PhoneA (nsa 5g VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1362 2. Call from PhoneC (WCDMA) to PhoneA (nsa 5g VoLTE), accept on PhoneA. 1363 3. On PhoneA, merge to conference call. 1364 4. End call on PhoneC, verify call continues. 1365 5. End call on PhoneB, verify call end on PhoneA. 1366 1367 Returns: 1368 True if pass; False if fail. 1369 """ 1370 ads = self.android_devices 1371 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 1372 log=self.log, 1373 ads=ads, 1374 num_swaps=0, 1375 phone_setup_a=provision_device_for_5g, 1376 phone_setup_b=phone_setup_voice_3g, 1377 phone_setup_c=phone_setup_voice_3g, 1378 verify_phone_a_network_subscription=is_phone_in_call_volte, 1379 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1380 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1381 if call_ab_id is None or call_ac_id is None: 1382 return False 1383 1384 return _test_ims_conference_merge_drop_second_call_from_participant( 1385 self.log, ads, call_ab_id, call_ac_id) 1386 1387 @TelephonyBaseTest.tel_test_wrap 1388 @test_tracker_info(uuid="d2bf3176-f9e8-4d2a-ad2a-c49fed9fd913") 1389 def test_5g_nsa_volte_mo_mt_add_wcdma_merge_drop_second_call_from_host( 1390 self): 1391 """ Test nsa 5g VoLTE Conference Call among three phones. 1392 1393 1. Call from PhoneA (nsa 5g VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1394 2. Call from PhoneC (WCDMA) to PhoneA (nsa 5g VoLTE), accept on PhoneA. 1395 3. On PhoneA, merge to conference call. 1396 4. On PhoneA disconnect call between A-C, verify call continues. 1397 5. On PhoneA disconnect call between A-B, verify call continues. 1398 1399 Returns: 1400 True if pass; False if fail. 1401 """ 1402 ads = self.android_devices 1403 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 1404 log=self.log, 1405 ads=ads, 1406 num_swaps=0, 1407 phone_setup_a=provision_device_for_5g, 1408 phone_setup_b=phone_setup_voice_3g, 1409 phone_setup_c=phone_setup_voice_3g, 1410 verify_phone_a_network_subscription=is_phone_in_call_volte, 1411 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1412 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1413 if call_ab_id is None or call_ac_id is None: 1414 return False 1415 1416 return _test_ims_conference_merge_drop_second_call_from_host( 1417 self.log, ads, call_ab_id, call_ac_id) 1418 1419 @TelephonyBaseTest.tel_test_wrap 1420 @test_tracker_info(uuid="93c54a43-6b64-404a-9306-b9a74b563e41") 1421 def test_5g_nsa_volte_mo_mt_add_wcdma_merge_drop_first_call_from_participant( 1422 self): 1423 """ Test nsa 5g VoLTE Conference Call among three phones. 1424 1425 1. Call from PhoneA (nsa 5g VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1426 2. Call from PhoneC (WCDMA) to PhoneA (nsa 5g VoLTE), accept on PhoneA. 1427 3. On PhoneA, merge to conference call. 1428 4. End call on PhoneB, verify call continues. 1429 5. End call on PhoneC, verify call end on PhoneA. 1430 1431 Returns: 1432 True if pass; False if fail. 1433 """ 1434 ads = self.android_devices 1435 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 1436 log=self.log, 1437 ads=ads, 1438 num_swaps=0, 1439 phone_setup_a=provision_device_for_5g, 1440 phone_setup_b=phone_setup_voice_3g, 1441 phone_setup_c=phone_setup_voice_3g, 1442 verify_phone_a_network_subscription=is_phone_in_call_volte, 1443 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1444 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1445 if call_ab_id is None or call_ac_id is None: 1446 return False 1447 1448 return _test_ims_conference_merge_drop_first_call_from_participant( 1449 self.log, ads, call_ab_id, call_ac_id) 1450 1451 @TelephonyBaseTest.tel_test_wrap 1452 @test_tracker_info(uuid="8e699115-1513-4c86-acd4-099b05acb859") 1453 def test_5g_nsa_volte_mo_mt_add_wcdma_merge_drop_first_call_from_host( 1454 self): 1455 """ Test nsa 5g VoLTE Conference Call among three phones. 1456 1457 1. Call from PhoneA (nsa 5g VoLTE) to PhoneB (WCDMA), accept on PhoneB. 1458 2. Call from PhoneC (WCDMA) to PhoneA (nsa 5g VoLTE), accept on PhoneA. 1459 3. On PhoneA, merge to conference call. 1460 4. On PhoneA disconnect call between A-B, verify call continues. 1461 5. On PhoneA disconnect call between A-C, verify call continues. 1462 1463 Returns: 1464 True if pass; False if fail. 1465 """ 1466 ads = self.android_devices 1467 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 1468 log=self.log, 1469 ads=ads, 1470 num_swaps=0, 1471 phone_setup_a=provision_device_for_5g, 1472 phone_setup_b=phone_setup_voice_3g, 1473 phone_setup_c=phone_setup_voice_3g, 1474 verify_phone_a_network_subscription=is_phone_in_call_volte, 1475 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1476 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1477 if call_ab_id is None or call_ac_id is None: 1478 return False 1479 1480 return _test_ims_conference_merge_drop_first_call_from_host( 1481 self.log, ads, call_ab_id, call_ac_id) 1482 1483 @TelephonyBaseTest.tel_test_wrap 1484 @test_tracker_info(uuid="48edf043-1f45-4490-85fc-36ec49328768") 1485 def test_5g_nsa_volte_mt_mt_add_wcdma_merge_drop_second_call_from_participant( 1486 self): 1487 """ Test nsa 5g VoLTE Conference Call among three phones. 1488 1489 1. Call from PhoneB (WCDMA) to PhoneA (nsa 5g VoLTE), accept on PhoneA. 1490 2. Call from PhoneC (WCDMA) to PhoneA (nsa 5g VoLTE), accept on PhoneA. 1491 3. On PhoneA, merge to conference call. 1492 4. End call on PhoneC, verify call continues. 1493 5. End call on PhoneB, verify call end on PhoneA. 1494 1495 Returns: 1496 True if pass; False if fail. 1497 """ 1498 ads = self.android_devices 1499 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 1500 log=self.log, 1501 ads=ads, 1502 num_swaps=0, 1503 phone_setup_a=provision_device_for_5g, 1504 phone_setup_b=phone_setup_voice_3g, 1505 phone_setup_c=phone_setup_voice_3g, 1506 verify_phone_a_network_subscription=is_phone_in_call_volte, 1507 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1508 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1509 if call_ab_id is None or call_ac_id is None: 1510 return False 1511 1512 return _test_ims_conference_merge_drop_second_call_from_participant( 1513 self.log, ads, call_ab_id, call_ac_id) 1514 1515 @TelephonyBaseTest.tel_test_wrap 1516 @test_tracker_info(uuid="a276b9d4-ddef-4712-9f96-aa4b71c7b35d") 1517 def test_5g_nsa_volte_mt_mt_add_wcdma_merge_drop_second_call_from_host( 1518 self): 1519 """ Test nsa 5g VoLTE Conference Call among three phones. 1520 1521 1. Call from PhoneB (WCDMA) to PhoneA (nsa 5g VoLTE), accept on PhoneA. 1522 2. Call from PhoneC (WCDMA) to PhoneA (nsa 5g VoLTE), accept on PhoneA. 1523 3. On PhoneA, merge to conference call. 1524 4. On PhoneA disconnect call between A-C, verify call continues. 1525 5. On PhoneA disconnect call between A-B, verify call continues. 1526 1527 Returns: 1528 True if pass; False if fail. 1529 """ 1530 ads = self.android_devices 1531 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 1532 log=self.log, 1533 ads=ads, 1534 num_swaps=0, 1535 phone_setup_a=provision_device_for_5g, 1536 phone_setup_b=phone_setup_voice_3g, 1537 phone_setup_c=phone_setup_voice_3g, 1538 verify_phone_a_network_subscription=is_phone_in_call_volte, 1539 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1540 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1541 if call_ab_id is None or call_ac_id is None: 1542 return False 1543 1544 return _test_ims_conference_merge_drop_second_call_from_host( 1545 self.log, self.android_devices, call_ab_id, call_ac_id) 1546 1547 @TelephonyBaseTest.tel_test_wrap 1548 @test_tracker_info(uuid="d702a65e-c2c9-44cf-be13-16ae56377647") 1549 def test_5g_nsa_volte_mt_mt_add_wcdma_merge_drop_first_call_from_participant( 1550 self): 1551 """ Test nsa 5g VoLTE Conference Call among three phones. 1552 1553 1. Call from PhoneB (WCDMA) to PhoneA (nsa 5g VoLTE), accept on PhoneA. 1554 2. Call from PhoneC (WCDMA) to PhoneA (nsa 5g VoLTE), accept on PhoneA. 1555 3. On PhoneA, merge to conference call. 1556 4. End call on PhoneB, verify call continues. 1557 5. End call on PhoneC, verify call end on PhoneA. 1558 1559 Returns: 1560 True if pass; False if fail. 1561 """ 1562 ads = self.android_devices 1563 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 1564 log=self.log, 1565 ads=ads, 1566 num_swaps=0, 1567 phone_setup_a=provision_device_for_5g, 1568 phone_setup_b=phone_setup_voice_3g, 1569 phone_setup_c=phone_setup_voice_3g, 1570 verify_phone_a_network_subscription=is_phone_in_call_volte, 1571 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1572 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1573 if call_ab_id is None or call_ac_id is None: 1574 return False 1575 1576 return _test_ims_conference_merge_drop_first_call_from_participant( 1577 self.log, ads, call_ab_id, call_ac_id) 1578 1579 @TelephonyBaseTest.tel_test_wrap 1580 @test_tracker_info(uuid="dd3df9eb-a600-4397-b257-b8465592af82") 1581 def test_5g_nsa_volte_mt_mt_add_wcdma_merge_drop_first_call_from_host( 1582 self): 1583 """ Test nsa 5g VoLTE Conference Call among three phones. 1584 1585 1. Call from PhoneB (WCDMA) to PhoneA (nsa 5g VoLTE), accept on PhoneA. 1586 2. Call from PhoneC (WCDMA) to PhoneA (nsa 5g VoLTE), accept on PhoneA. 1587 3. On PhoneA, merge to conference call. 1588 4. On PhoneA disconnect call between A-B, verify call continues. 1589 5. On PhoneA disconnect call between A-C, verify call continues. 1590 1591 Returns: 1592 True if pass; False if fail. 1593 """ 1594 ads = self.android_devices 1595 call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x( 1596 log=self.log, 1597 ads=ads, 1598 num_swaps=0, 1599 phone_setup_a=provision_device_for_5g, 1600 phone_setup_b=phone_setup_voice_3g, 1601 phone_setup_c=phone_setup_voice_3g, 1602 verify_phone_a_network_subscription=is_phone_in_call_volte, 1603 verify_phone_b_network_subscription=is_phone_in_call_wcdma, 1604 verify_phone_c_network_subscription=is_phone_in_call_wcdma) 1605 if call_ab_id is None or call_ac_id is None: 1606 return False 1607 1608 return _test_ims_conference_merge_drop_first_call_from_host( 1609 self.log, ads, call_ab_id, call_ac_id) 1610 1611 @TelephonyBaseTest.tel_test_wrap 1612 @test_tracker_info(uuid="d1174d8f-80e4-4adf-8866-e00ac7706849") 1613 def test_5g_nsa_volte_mo_mo_add_5g_nsa_volte_swap_twice_drop_held(self): 1614 """Test swap feature in nsa 5g VoLTE call. 1615 1616 PhoneA (nsa 5g VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 1617 PhoneA (nsa 5g VoLTE) call PhoneC (nsa 5g VoLTE), accept on PhoneC. 1618 Swap active call on PhoneA. 1619 Swap active call on PhoneA. 1620 Hangup call from PhoneB, check if call continues between AC. 1621 1622 Returns: 1623 True if pass; False if fail. 1624 1625 """ 1626 ads = self.android_devices 1627 1628 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 1629 log=self.log, 1630 ads=ads, 1631 num_swaps=2, 1632 phone_setup_a=provision_device_for_5g, 1633 phone_setup_b=provision_device_for_5g, 1634 phone_setup_c=provision_device_for_5g, 1635 verify_phone_a_network_subscription=is_phone_in_call_volte, 1636 verify_phone_b_network_subscription=is_phone_in_call_volte, 1637 verify_phone_c_network_subscription=is_phone_in_call_volte) 1638 if call_ab_id is None or call_ac_id is None: 1639 return False 1640 1641 return _three_phone_hangup_call_verify_call_state( 1642 log=self.log, 1643 ad_hangup=ads[1], 1644 ad_verify=ads[0], 1645 call_id=call_ac_id, 1646 call_state=CALL_STATE_ACTIVE, 1647 ads_active=[ads[0], ads[2]]) 1648 1649 @TelephonyBaseTest.tel_test_wrap 1650 @test_tracker_info(uuid="c631b985-1fc4-4de6-95cd-00258283ef62") 1651 def test_5g_nsa_volte_mo_mo_add_5g_nsa_volte_swap_twice_drop_active(self): 1652 """Test swap feature in nsa 5g VoLTE call. 1653 1654 PhoneA (nsa 5g VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 1655 PhoneA (nsa 5g VoLTE) call PhoneC (nsa 5g VoLTE), accept on PhoneC. 1656 Swap active call on PhoneA. 1657 Swap active call on PhoneA. 1658 Hangup call from PhoneC, check if call continues between AB. 1659 1660 Returns: 1661 True if pass; False if fail. 1662 """ 1663 ads = self.android_devices 1664 1665 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 1666 log=self.log, 1667 ads=ads, 1668 num_swaps=2, 1669 phone_setup_a=provision_device_for_5g, 1670 phone_setup_b=provision_device_for_5g, 1671 phone_setup_c=provision_device_for_5g, 1672 verify_phone_a_network_subscription=is_phone_in_call_volte, 1673 verify_phone_b_network_subscription=is_phone_in_call_volte, 1674 verify_phone_c_network_subscription=is_phone_in_call_volte) 1675 if call_ab_id is None or call_ac_id is None: 1676 return False 1677 1678 return _three_phone_hangup_call_verify_call_state( 1679 log=self.log, 1680 ad_hangup=ads[2], 1681 ad_verify=ads[0], 1682 call_id=call_ab_id, 1683 call_state=_get_expected_call_state(ads[0]), 1684 ads_active=[ads[0], ads[1]]) 1685 1686 @TelephonyBaseTest.tel_test_wrap 1687 @test_tracker_info(uuid="0af58d3e-a7cc-4e5b-89df-b002deee022a") 1688 def test_5g_nsa_volte_mo_mt_add_5g_nsa_volte_swap_twice_drop_held(self): 1689 """Test swap feature in nsa 5g VoLTE call. 1690 1691 PhoneA (nsa 5g VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 1692 PhoneC (nsa 5g VoLTE) call PhoneA (nsa 5g VoLTE), accept on PhoneA. 1693 Swap active call on PhoneA. 1694 Swap active call on PhoneA. 1695 Hangup call from PhoneB, check if call continues between AC. 1696 1697 Returns: 1698 True if pass; False if fail. 1699 """ 1700 ads = self.android_devices 1701 1702 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 1703 log=self.log, 1704 ads=ads, 1705 num_swaps=2, 1706 phone_setup_a=provision_device_for_5g, 1707 phone_setup_b=provision_device_for_5g, 1708 phone_setup_c=provision_device_for_5g, 1709 verify_phone_a_network_subscription=is_phone_in_call_volte, 1710 verify_phone_b_network_subscription=is_phone_in_call_volte, 1711 verify_phone_c_network_subscription=is_phone_in_call_volte) 1712 if call_ab_id is None or call_ac_id is None: 1713 return False 1714 1715 return _three_phone_hangup_call_verify_call_state( 1716 log=self.log, 1717 ad_hangup=ads[1], 1718 ad_verify=ads[0], 1719 call_id=call_ac_id, 1720 call_state=CALL_STATE_ACTIVE, 1721 ads_active=[ads[0], ads[2]]) 1722 1723 @TelephonyBaseTest.tel_test_wrap 1724 @test_tracker_info(uuid="d00d0b87-4df2-40af-9b5e-dd425ec5ca4f") 1725 def test_5g_nsa_volte_mo_mt_add_5g_nsa_volte_swap_twice_drop_active(self): 1726 """Test swap feature in nsa 5g VoLTE call. 1727 1728 PhoneA (nsa 5g VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 1729 PhoneC (nsa 5g VoLTE) call PhoneA (nsa 5g VoLTE), accept on PhoneA. 1730 Swap active call on PhoneA. 1731 Swap active call on PhoneA. 1732 Hangup call from PhoneC, check if call continues between AB. 1733 1734 Returns: 1735 True if pass; False if fail. 1736 """ 1737 ads = self.android_devices 1738 1739 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 1740 log=self.log, 1741 ads=ads, 1742 num_swaps=2, 1743 phone_setup_a=provision_device_for_5g, 1744 phone_setup_b=provision_device_for_5g, 1745 phone_setup_c=provision_device_for_5g, 1746 verify_phone_a_network_subscription=is_phone_in_call_volte, 1747 verify_phone_b_network_subscription=is_phone_in_call_volte, 1748 verify_phone_c_network_subscription=is_phone_in_call_volte) 1749 if call_ab_id is None or call_ac_id is None: 1750 return False 1751 1752 return _three_phone_hangup_call_verify_call_state( 1753 log=self.log, 1754 ad_hangup=ads[2], 1755 ad_verify=ads[0], 1756 call_id=call_ab_id, 1757 call_state=_get_expected_call_state(ads[0]), 1758 ads_active=[ads[0], ads[1]]) 1759 1760 @TelephonyBaseTest.tel_test_wrap 1761 @test_tracker_info(uuid="dc46308c-197f-4372-afca-b2ec131dcc34") 1762 def test_5g_nsa_volte_mo_mo_add_5g_nsa_volte_swap_once_drop_held(self): 1763 """Test swap feature in nsa 5g VoLTE call. 1764 1765 PhoneA (nsa 5g VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 1766 PhoneA (nsa 5g VoLTE) call PhoneC (nsa 5g VoLTE), accept on PhoneC. 1767 Swap active call on PhoneA. 1768 Hangup call from PhoneC, check if call continues between AB. 1769 1770 Returns: 1771 True if pass; False if fail. 1772 """ 1773 ads = self.android_devices 1774 1775 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 1776 log=self.log, 1777 ads=ads, 1778 num_swaps=1, 1779 phone_setup_a=provision_device_for_5g, 1780 phone_setup_b=provision_device_for_5g, 1781 phone_setup_c=provision_device_for_5g, 1782 verify_phone_a_network_subscription=is_phone_in_call_volte, 1783 verify_phone_b_network_subscription=is_phone_in_call_volte, 1784 verify_phone_c_network_subscription=is_phone_in_call_volte) 1785 if call_ab_id is None or call_ac_id is None: 1786 return False 1787 1788 return _three_phone_hangup_call_verify_call_state( 1789 log=self.log, 1790 ad_hangup=ads[2], 1791 ad_verify=ads[0], 1792 call_id=call_ab_id, 1793 call_state=CALL_STATE_ACTIVE, 1794 ads_active=[ads[0], ads[1]]) 1795 1796 @TelephonyBaseTest.tel_test_wrap 1797 @test_tracker_info(uuid="471cc6d1-03aa-41a0-b13a-fdd696f17fca") 1798 def test_5g_nsa_volte_mo_mo_add_5g_nsa_volte_swap_once_drop_active(self): 1799 """Test swap feature in nsa 5g VoLTE call. 1800 1801 PhoneA (nsa 5g VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 1802 PhoneA (nsa 5g VoLTE) call PhoneC (nsa 5g VoLTE), accept on PhoneC. 1803 Swap active call on PhoneA. 1804 Hangup call from PhoneB, check if call continues between AC. 1805 1806 Returns: 1807 True if pass; False if fail. 1808 """ 1809 ads = self.android_devices 1810 1811 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 1812 log=self.log, 1813 ads=ads, 1814 num_swaps=1, 1815 phone_setup_a=provision_device_for_5g, 1816 phone_setup_b=provision_device_for_5g, 1817 phone_setup_c=provision_device_for_5g, 1818 verify_phone_a_network_subscription=is_phone_in_call_volte, 1819 verify_phone_b_network_subscription=is_phone_in_call_volte, 1820 verify_phone_c_network_subscription=is_phone_in_call_volte) 1821 if call_ab_id is None or call_ac_id is None: 1822 return False 1823 1824 return _three_phone_hangup_call_verify_call_state( 1825 log=self.log, 1826 ad_hangup=ads[1], 1827 ad_verify=ads[0], 1828 call_id=call_ac_id, 1829 call_state=_get_expected_call_state(ads[0]), 1830 ads_active=[ads[0], ads[2]]) 1831 1832 @TelephonyBaseTest.tel_test_wrap 1833 @test_tracker_info(uuid="bb9d69eb-40f4-494d-9399-7dbd046962e3") 1834 def test_5g_nsa_volte_mo_mt_add_5g_nsa_volte_swap_once_drop_held(self): 1835 """Test swap feature in nsa 5g VoLTE call. 1836 1837 PhoneA (nsa 5g VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 1838 PhoneC (nsa 5g VoLTE) call PhoneA (nsa 5g VoLTE), accept on PhoneA. 1839 Swap active call on PhoneA. 1840 Hangup call from PhoneC, check if call continues between AB. 1841 1842 Returns: 1843 True if pass; False if fail. 1844 """ 1845 ads = self.android_devices 1846 1847 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 1848 log=self.log, 1849 ads=ads, 1850 num_swaps=1, 1851 phone_setup_a=provision_device_for_5g, 1852 phone_setup_b=provision_device_for_5g, 1853 phone_setup_c=provision_device_for_5g, 1854 verify_phone_a_network_subscription=is_phone_in_call_volte, 1855 verify_phone_b_network_subscription=is_phone_in_call_volte, 1856 verify_phone_c_network_subscription=is_phone_in_call_volte) 1857 if call_ab_id is None or call_ac_id is None: 1858 return False 1859 return _three_phone_hangup_call_verify_call_state( 1860 log=self.log, 1861 ad_hangup=ads[2], 1862 ad_verify=ads[0], 1863 call_id=call_ab_id, 1864 call_state=CALL_STATE_ACTIVE, 1865 ads_active=[ads[0], ads[1]]) 1866 1867 @TelephonyBaseTest.tel_test_wrap 1868 @test_tracker_info(uuid="33c9e964-c9d4-4cbc-894f-8682122598a7") 1869 def test_5g_nsa_volte_mo_mt_add_5g_nsa_volte_swap_once_drop_active(self): 1870 """Test swap feature in nsa 5g VoLTE call. 1871 1872 PhoneA (nsa 5g VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 1873 PhoneC (nsa 5g VoLTE) call PhoneA (nsa 5g VoLTE), accept on PhoneA. 1874 Swap active call on PhoneA. 1875 Hangup call from PhoneB, check if call continues between AC. 1876 1877 Returns: 1878 True if pass; False if fail. 1879 """ 1880 ads = self.android_devices 1881 1882 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 1883 log=self.log, 1884 ads=ads, 1885 num_swaps=1, 1886 phone_setup_a=provision_device_for_5g, 1887 phone_setup_b=provision_device_for_5g, 1888 phone_setup_c=provision_device_for_5g, 1889 verify_phone_a_network_subscription=is_phone_in_call_volte, 1890 verify_phone_b_network_subscription=is_phone_in_call_volte, 1891 verify_phone_c_network_subscription=is_phone_in_call_volte) 1892 if call_ab_id is None or call_ac_id is None: 1893 return False 1894 1895 return _three_phone_hangup_call_verify_call_state( 1896 log=self.log, 1897 ad_hangup=ads[1], 1898 ad_verify=ads[0], 1899 call_id=call_ac_id, 1900 call_state=_get_expected_call_state(ads[0]), 1901 ads_active=[ads[0], ads[2]]) 1902 1903 @TelephonyBaseTest.tel_test_wrap 1904 @test_tracker_info(uuid="43e4cc02-93d9-4540-97b6-f5656d7d669f") 1905 def test_5g_nsa_volte_mo_mo_add_4g_volte_swap_twice_drop_held(self): 1906 """Test swap feature in nsa 5g VoLTE call. 1907 1908 PhoneA (nsa 5g VoLTE) call PhoneB (VoLTE), accept on PhoneB. 1909 PhoneA (nsa 5g VoLTE) call PhoneC (VoLTE), accept on PhoneC. 1910 Swap active call on PhoneA. 1911 Swap active call on PhoneA. 1912 Hangup call from PhoneB, check if call continues between AC. 1913 1914 Returns: 1915 True if pass; False if fail. 1916 """ 1917 ads = self.android_devices 1918 1919 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 1920 log=self.log, 1921 ads=ads, 1922 num_swaps=2, 1923 phone_setup_a=provision_device_for_5g, 1924 phone_setup_b=phone_setup_volte, 1925 phone_setup_c=phone_setup_volte, 1926 verify_phone_a_network_subscription=is_phone_in_call_volte, 1927 verify_phone_b_network_subscription=is_phone_in_call_volte, 1928 verify_phone_c_network_subscription=is_phone_in_call_volte) 1929 if call_ab_id is None or call_ac_id is None: 1930 return False 1931 1932 return _three_phone_hangup_call_verify_call_state( 1933 log=self.log, 1934 ad_hangup=ads[1], 1935 ad_verify=ads[0], 1936 call_id=call_ac_id, 1937 call_state=CALL_STATE_ACTIVE, 1938 ads_active=[ads[0], ads[2]]) 1939 1940 @TelephonyBaseTest.tel_test_wrap 1941 @test_tracker_info(uuid="f3081bbd-9f18-4c0b-a1ab-630d5e622259") 1942 def test_5g_nsa_volte_mo_mo_add_4g_volte_swap_twice_drop_active(self): 1943 """Test swap feature in nsa 5g VoLTE call. 1944 1945 PhoneA (nsa 5g VoLTE) call PhoneB (VoLTE), accept on PhoneB. 1946 PhoneA (nsa 5g VoLTE) call PhoneC (VoLTE), accept on PhoneC. 1947 Swap active call on PhoneA. 1948 Swap active call on PhoneA. 1949 Hangup call from PhoneC, check if call continues between AB. 1950 1951 Returns: 1952 True if pass; False if fail. 1953 """ 1954 ads = self.android_devices 1955 1956 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 1957 log=self.log, 1958 ads=ads, 1959 num_swaps=2, 1960 phone_setup_a=provision_device_for_5g, 1961 phone_setup_b=phone_setup_volte, 1962 phone_setup_c=phone_setup_volte, 1963 verify_phone_a_network_subscription=is_phone_in_call_volte, 1964 verify_phone_b_network_subscription=is_phone_in_call_volte, 1965 verify_phone_c_network_subscription=is_phone_in_call_volte) 1966 if call_ab_id is None or call_ac_id is None: 1967 return False 1968 1969 return _three_phone_hangup_call_verify_call_state( 1970 log=self.log, 1971 ad_hangup=ads[2], 1972 ad_verify=ads[0], 1973 call_id=call_ab_id, 1974 call_state=_get_expected_call_state(ads[0]), 1975 ads_active=[ads[0], ads[1]]) 1976 1977 @TelephonyBaseTest.tel_test_wrap 1978 @test_tracker_info(uuid="ff4a731b-3bf9-45d5-beeb-e8ad53ceb722") 1979 def test_5g_nsa_volte_mo_mt_add_4g_volte_swap_twice_drop_held(self): 1980 """Test swap feature in nsa 5g VoLTE call. 1981 1982 PhoneA (nsa 5g VoLTE) call PhoneB (VoLTE), accept on PhoneB. 1983 PhoneC (VoLTE) call PhoneA (nsa 5g VoLTE), accept on PhoneA. 1984 Swap active call on PhoneA. 1985 Swap active call on PhoneA. 1986 Hangup call from PhoneB, check if call continues between AC. 1987 1988 Returns: 1989 True if pass; False if fail. 1990 """ 1991 ads = self.android_devices 1992 1993 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 1994 log=self.log, 1995 ads=ads, 1996 num_swaps=2, 1997 phone_setup_a=provision_device_for_5g, 1998 phone_setup_b=phone_setup_volte, 1999 phone_setup_c=phone_setup_volte, 2000 verify_phone_a_network_subscription=is_phone_in_call_volte, 2001 verify_phone_b_network_subscription=is_phone_in_call_volte, 2002 verify_phone_c_network_subscription=is_phone_in_call_volte) 2003 if call_ab_id is None or call_ac_id is None: 2004 return False 2005 2006 return _three_phone_hangup_call_verify_call_state( 2007 log=self.log, 2008 ad_hangup=ads[1], 2009 ad_verify=ads[0], 2010 call_id=call_ac_id, 2011 call_state=CALL_STATE_ACTIVE, 2012 ads_active=[ads[0], ads[2]]) 2013 2014 @TelephonyBaseTest.tel_test_wrap 2015 @test_tracker_info(uuid="9ebae664-41bb-45fe-8f52-08c2dabab659") 2016 def test_5g_nsa_volte_mo_mt_add_4g_volte_swap_twice_drop_active(self): 2017 """Test swap feature in nsa 5g VoLTE call. 2018 2019 PhoneA (nsa 5g VoLTE) call PhoneB (VoLTE), accept on PhoneB. 2020 PhoneC (VoLTE) call PhoneA (nsa 5g VoLTE), accept on PhoneA. 2021 Swap active call on PhoneA. 2022 Swap active call on PhoneA. 2023 Hangup call from PhoneC, check if call continues between AB. 2024 2025 Returns: 2026 True if pass; False if fail. 2027 """ 2028 ads = self.android_devices 2029 2030 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 2031 log=self.log, 2032 ads=ads, 2033 num_swaps=2, 2034 phone_setup_a=provision_device_for_5g, 2035 phone_setup_b=phone_setup_volte, 2036 phone_setup_c=phone_setup_volte, 2037 verify_phone_a_network_subscription=is_phone_in_call_volte, 2038 verify_phone_b_network_subscription=is_phone_in_call_volte, 2039 verify_phone_c_network_subscription=is_phone_in_call_volte) 2040 if call_ab_id is None or call_ac_id is None: 2041 return False 2042 2043 return _three_phone_hangup_call_verify_call_state( 2044 log=self.log, 2045 ad_hangup=ads[2], 2046 ad_verify=ads[0], 2047 call_id=call_ab_id, 2048 call_state=_get_expected_call_state(ads[0]), 2049 ads_active=[ads[0], ads[1]]) 2050 2051 @TelephonyBaseTest.tel_test_wrap 2052 @test_tracker_info(uuid="b8ae81dd-3f67-4c2c-aec0-d6368efb872e") 2053 def test_5g_nsa_volte_mo_mo_add_4g_volte_swap_once_drop_held(self): 2054 """Test swap feature in nsa 5g VoLTE call. 2055 2056 PhoneA (nsa 5g VoLTE) call PhoneB (VoLTE), accept on PhoneB. 2057 PhoneA (nsa 5g VoLTE) call PhoneC (VoLTE), accept on PhoneC. 2058 Swap active call on PhoneA. 2059 Hangup call from PhoneC, check if call continues between AB. 2060 2061 Returns: 2062 True if pass; False if fail. 2063 """ 2064 ads = self.android_devices 2065 2066 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 2067 log=self.log, 2068 ads=ads, 2069 num_swaps=1, 2070 phone_setup_a=provision_device_for_5g, 2071 phone_setup_b=phone_setup_volte, 2072 phone_setup_c=phone_setup_volte, 2073 verify_phone_a_network_subscription=is_phone_in_call_volte, 2074 verify_phone_b_network_subscription=is_phone_in_call_volte, 2075 verify_phone_c_network_subscription=is_phone_in_call_volte) 2076 if call_ab_id is None or call_ac_id is None: 2077 return False 2078 2079 return _three_phone_hangup_call_verify_call_state( 2080 log=self.log, 2081 ad_hangup=ads[2], 2082 ad_verify=ads[0], 2083 call_id=call_ab_id, 2084 call_state=CALL_STATE_ACTIVE, 2085 ads_active=[ads[0], ads[1]]) 2086 2087 @TelephonyBaseTest.tel_test_wrap 2088 @test_tracker_info(uuid="2c588e87-8b69-4a8e-b55a-4e101806297c") 2089 def test_5g_nsa_volte_mo_mo_add_4g_volte_swap_once_drop_active(self): 2090 """Test swap feature in nsa 5g VoLTE call. 2091 2092 PhoneA (nsa 5g VoLTE) call PhoneB (VoLTE), accept on PhoneB. 2093 PhoneA (nsa 5g VoLTE) call PhoneC (VoLTE), accept on PhoneC. 2094 Swap active call on PhoneA. 2095 Hangup call from PhoneB, check if call continues between AC. 2096 2097 Returns: 2098 True if pass; False if fail. 2099 """ 2100 ads = self.android_devices 2101 2102 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 2103 log=self.log, 2104 ads=ads, 2105 num_swaps=1, 2106 phone_setup_a=provision_device_for_5g, 2107 phone_setup_b=phone_setup_volte, 2108 phone_setup_c=phone_setup_volte, 2109 verify_phone_a_network_subscription=is_phone_in_call_volte, 2110 verify_phone_b_network_subscription=is_phone_in_call_volte, 2111 verify_phone_c_network_subscription=is_phone_in_call_volte) 2112 if call_ab_id is None or call_ac_id is None: 2113 return False 2114 2115 return _three_phone_hangup_call_verify_call_state( 2116 log=self.log, 2117 ad_hangup=ads[1], 2118 ad_verify=ads[0], 2119 call_id=call_ac_id, 2120 call_state=_get_expected_call_state(ads[0]), 2121 ads_active=[ads[0], ads[2]]) 2122 2123 @TelephonyBaseTest.tel_test_wrap 2124 @test_tracker_info(uuid="367e8d25-5a9d-4c0d-914d-c241399bb343") 2125 def test_5g_nsa_volte_mo_mt_add_4g_volte_swap_once_drop_held(self): 2126 """Test swap feature in nsa 5g VoLTE call. 2127 2128 PhoneA (nsa 5g VoLTE) call PhoneB (VoLTE), accept on PhoneB. 2129 PhoneC (VoLTE) call PhoneA (nsa 5g VoLTE), accept on PhoneA. 2130 Swap active call on PhoneA. 2131 Hangup call from PhoneC, check if call continues between AB. 2132 2133 Returns: 2134 True if pass; False if fail. 2135 """ 2136 ads = self.android_devices 2137 2138 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 2139 log=self.log, 2140 ads=ads, 2141 num_swaps=1, 2142 phone_setup_a=provision_device_for_5g, 2143 phone_setup_b=phone_setup_volte, 2144 phone_setup_c=phone_setup_volte, 2145 verify_phone_a_network_subscription=is_phone_in_call_volte, 2146 verify_phone_b_network_subscription=is_phone_in_call_volte, 2147 verify_phone_c_network_subscription=is_phone_in_call_volte) 2148 if call_ab_id is None or call_ac_id is None: 2149 return False 2150 return _three_phone_hangup_call_verify_call_state( 2151 log=self.log, 2152 ad_hangup=ads[2], 2153 ad_verify=ads[0], 2154 call_id=call_ab_id, 2155 call_state=CALL_STATE_ACTIVE, 2156 ads_active=[ads[0], ads[1]]) 2157 2158 @TelephonyBaseTest.tel_test_wrap 2159 @test_tracker_info(uuid="8a8f915e-025a-4992-b05d-bf74173e3852") 2160 def test_5g_nsa_volte_mo_mt_add_4g_volte_swap_once_drop_active(self): 2161 """Test swap feature in nsa 5g VoLTE call. 2162 2163 PhoneA (nsa 5g VoLTE) call PhoneB (VoLTE), accept on PhoneB. 2164 PhoneC (VoLTE) call PhoneA (nsa 5g VoLTE), accept on PhoneA. 2165 Swap active call on PhoneA. 2166 Hangup call from PhoneB, check if call continues between AC. 2167 2168 Returns: 2169 True if pass; False if fail. 2170 """ 2171 ads = self.android_devices 2172 2173 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 2174 log=self.log, 2175 ads=ads, 2176 num_swaps=1, 2177 phone_setup_a=provision_device_for_5g, 2178 phone_setup_b=phone_setup_volte, 2179 phone_setup_c=phone_setup_volte, 2180 verify_phone_a_network_subscription=is_phone_in_call_volte, 2181 verify_phone_b_network_subscription=is_phone_in_call_volte, 2182 verify_phone_c_network_subscription=is_phone_in_call_volte) 2183 if call_ab_id is None or call_ac_id is None: 2184 return False 2185 2186 return _three_phone_hangup_call_verify_call_state( 2187 log=self.log, 2188 ad_hangup=ads[1], 2189 ad_verify=ads[0], 2190 call_id=call_ac_id, 2191 call_state=_get_expected_call_state(ads[0]), 2192 ads_active=[ads[0], ads[2]]) 2193 2194 @TelephonyBaseTest.tel_test_wrap 2195 @test_tracker_info(uuid="880c3f9e-1a97-489a-80b1-db4c9aaa7be0") 2196 def test_4g_volte_mo_mo_add_5g_nsa_volte_swap_twice_drop_held(self): 2197 """Test swap feature in nsa 5g VoLTE call. 2198 2199 PhoneA (VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 2200 PhoneA (VoLTE) call PhoneC (nsa 5g VoLTE), accept on PhoneC. 2201 Swap active call on PhoneA. 2202 Swap active call on PhoneA. 2203 Hangup call from PhoneB, check if call continues between AC. 2204 2205 Returns: 2206 True if pass; False if fail. 2207 """ 2208 ads = self.android_devices 2209 2210 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 2211 log=self.log, 2212 ads=ads, 2213 num_swaps=2, 2214 phone_setup_a=phone_setup_volte, 2215 phone_setup_b=provision_device_for_5g, 2216 phone_setup_c=provision_device_for_5g, 2217 verify_phone_a_network_subscription=is_phone_in_call_volte, 2218 verify_phone_b_network_subscription=is_phone_in_call_volte, 2219 verify_phone_c_network_subscription=is_phone_in_call_volte) 2220 if call_ab_id is None or call_ac_id is None: 2221 return False 2222 2223 return _three_phone_hangup_call_verify_call_state( 2224 log=self.log, 2225 ad_hangup=ads[1], 2226 ad_verify=ads[0], 2227 call_id=call_ac_id, 2228 call_state=CALL_STATE_ACTIVE, 2229 ads_active=[ads[0], ads[2]]) 2230 2231 @TelephonyBaseTest.tel_test_wrap 2232 @test_tracker_info(uuid="b869f455-bf1b-4f03-bba3-a6f029f9f594") 2233 def test_4g_volte_mo_mo_add_5g_nsa_volte_swap_twice_drop_active(self): 2234 """Test swap feature in nsa 5g VoLTE call. 2235 2236 PhoneA (VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 2237 PhoneA (VoLTE) call PhoneC (nsa 5g VoLTE), accept on PhoneC. 2238 Swap active call on PhoneA. 2239 Swap active call on PhoneA. 2240 Hangup call from PhoneC, check if call continues between AB. 2241 2242 Returns: 2243 True if pass; False if fail. 2244 """ 2245 ads = self.android_devices 2246 2247 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 2248 log=self.log, 2249 ads=ads, 2250 num_swaps=2, 2251 phone_setup_a=phone_setup_volte, 2252 phone_setup_b=provision_device_for_5g, 2253 phone_setup_c=provision_device_for_5g, 2254 verify_phone_a_network_subscription=is_phone_in_call_volte, 2255 verify_phone_b_network_subscription=is_phone_in_call_volte, 2256 verify_phone_c_network_subscription=is_phone_in_call_volte) 2257 if call_ab_id is None or call_ac_id is None: 2258 return False 2259 2260 return _three_phone_hangup_call_verify_call_state( 2261 log=self.log, 2262 ad_hangup=ads[2], 2263 ad_verify=ads[0], 2264 call_id=call_ab_id, 2265 call_state=_get_expected_call_state(ads[0]), 2266 ads_active=[ads[0], ads[1]]) 2267 2268 @TelephonyBaseTest.tel_test_wrap 2269 @test_tracker_info(uuid="32ce220a-7abe-40f4-bd59-e948e7e8f735") 2270 def test_4g_volte_mo_mt_add_5g_nsa_volte_swap_twice_drop_held(self): 2271 """Test swap feature in nsa 5g VoLTE call. 2272 2273 PhoneA (VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 2274 PhoneC (nsa 5g VoLTE) call PhoneA (VoLTE), accept on PhoneA. 2275 Swap active call on PhoneA. 2276 Swap active call on PhoneA. 2277 Hangup call from PhoneB, check if call continues between AC. 2278 2279 Returns: 2280 True if pass; False if fail. 2281 """ 2282 ads = self.android_devices 2283 2284 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 2285 log=self.log, 2286 ads=ads, 2287 num_swaps=2, 2288 phone_setup_a=phone_setup_volte, 2289 phone_setup_b=provision_device_for_5g, 2290 phone_setup_c=provision_device_for_5g, 2291 verify_phone_a_network_subscription=is_phone_in_call_volte, 2292 verify_phone_b_network_subscription=is_phone_in_call_volte, 2293 verify_phone_c_network_subscription=is_phone_in_call_volte) 2294 if call_ab_id is None or call_ac_id is None: 2295 return False 2296 2297 return _three_phone_hangup_call_verify_call_state( 2298 log=self.log, 2299 ad_hangup=ads[1], 2300 ad_verify=ads[0], 2301 call_id=call_ac_id, 2302 call_state=CALL_STATE_ACTIVE, 2303 ads_active=[ads[0], ads[2]]) 2304 2305 @TelephonyBaseTest.tel_test_wrap 2306 @test_tracker_info(uuid="0b6bc57b-4dfb-4d2a-9160-fbebcecd8970") 2307 def test_4g_volte_mo_mt_add_5g_nsa_volte_swap_twice_drop_active(self): 2308 """Test swap feature in nsa 5g VoLTE call. 2309 2310 PhoneA (VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 2311 PhoneC (nsa 5g VoLTE) call PhoneA (VoLTE), accept on PhoneA. 2312 Swap active call on PhoneA. 2313 Swap active call on PhoneA. 2314 Hangup call from PhoneC, check if call continues between AB. 2315 2316 Returns: 2317 True if pass; False if fail. 2318 """ 2319 ads = self.android_devices 2320 2321 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 2322 log=self.log, 2323 ads=ads, 2324 num_swaps=2, 2325 phone_setup_a=phone_setup_volte, 2326 phone_setup_b=provision_device_for_5g, 2327 phone_setup_c=provision_device_for_5g, 2328 verify_phone_a_network_subscription=is_phone_in_call_volte, 2329 verify_phone_b_network_subscription=is_phone_in_call_volte, 2330 verify_phone_c_network_subscription=is_phone_in_call_volte) 2331 if call_ab_id is None or call_ac_id is None: 2332 return False 2333 2334 return _three_phone_hangup_call_verify_call_state( 2335 log=self.log, 2336 ad_hangup=ads[2], 2337 ad_verify=ads[0], 2338 call_id=call_ab_id, 2339 call_state=_get_expected_call_state(ads[0]), 2340 ads_active=[ads[0], ads[1]]) 2341 2342 @TelephonyBaseTest.tel_test_wrap 2343 @test_tracker_info(uuid="1d70289e-bbef-420a-b484-77c5573cc8fb") 2344 def test_4g_volte_mo_mo_add_5g_nsa_volte_swap_once_drop_held(self): 2345 """Test swap feature in nsa 5g VoLTE call. 2346 2347 PhoneA (VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 2348 PhoneA (VoLTE) call PhoneC (nsa 5g VoLTE), accept on PhoneC. 2349 Swap active call on PhoneA. 2350 Hangup call from PhoneC, check if call continues between AB. 2351 2352 Returns: 2353 True if pass; False if fail. 2354 """ 2355 ads = self.android_devices 2356 2357 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 2358 log=self.log, 2359 ads=ads, 2360 num_swaps=1, 2361 phone_setup_a=phone_setup_volte, 2362 phone_setup_b=provision_device_for_5g, 2363 phone_setup_c=provision_device_for_5g, 2364 verify_phone_a_network_subscription=is_phone_in_call_volte, 2365 verify_phone_b_network_subscription=is_phone_in_call_volte, 2366 verify_phone_c_network_subscription=is_phone_in_call_volte) 2367 if call_ab_id is None or call_ac_id is None: 2368 return False 2369 2370 return _three_phone_hangup_call_verify_call_state( 2371 log=self.log, 2372 ad_hangup=ads[2], 2373 ad_verify=ads[0], 2374 call_id=call_ab_id, 2375 call_state=CALL_STATE_ACTIVE, 2376 ads_active=[ads[0], ads[1]]) 2377 2378 @TelephonyBaseTest.tel_test_wrap 2379 @test_tracker_info(uuid="3a62d358-ccb6-43fc-acb5-469dc9c5d5b2") 2380 def test_4g_volte_mo_mo_add_5g_nsa_volte_swap_once_drop_active(self): 2381 """Test swap feature in nsa 5g VoLTE call. 2382 2383 PhoneA (VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 2384 PhoneA (VoLTE) call PhoneC (nsa 5g VoLTE), accept on PhoneC. 2385 Swap active call on PhoneA. 2386 Swap active call on PhoneA. 2387 Hangup call from PhoneB, check if call continues between AC. 2388 2389 Returns: 2390 True if pass; False if fail. 2391 """ 2392 ads = self.android_devices 2393 2394 call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x( 2395 log=self.log, 2396 ads=ads, 2397 num_swaps=1, 2398 phone_setup_a=phone_setup_volte, 2399 phone_setup_b=provision_device_for_5g, 2400 phone_setup_c=provision_device_for_5g, 2401 verify_phone_a_network_subscription=is_phone_in_call_volte, 2402 verify_phone_b_network_subscription=is_phone_in_call_volte, 2403 verify_phone_c_network_subscription=is_phone_in_call_volte) 2404 if call_ab_id is None or call_ac_id is None: 2405 return False 2406 2407 return _three_phone_hangup_call_verify_call_state( 2408 log=self.log, 2409 ad_hangup=ads[1], 2410 ad_verify=ads[0], 2411 call_id=call_ac_id, 2412 call_state=_get_expected_call_state(ads[0]), 2413 ads_active=[ads[0], ads[2]]) 2414 2415 @TelephonyBaseTest.tel_test_wrap 2416 @test_tracker_info(uuid="52e0a840-3fb3-4351-b2f0-d67cf9928a16") 2417 def test_4g_volte_mo_mt_add_5g_nsa_volte_swap_once_drop_held(self): 2418 """Test swap feature in nsa 5g VoLTE call. 2419 2420 PhoneA (VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 2421 PhoneC (nsa 5g VoLTE) call PhoneA (VoLTE), accept on PhoneA. 2422 Swap active call on PhoneA. 2423 Hangup call from PhoneC, check if call continues between AB. 2424 2425 Returns: 2426 True if pass; False if fail. 2427 """ 2428 ads = self.android_devices 2429 2430 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 2431 log=self.log, 2432 ads=ads, 2433 num_swaps=1, 2434 phone_setup_a=phone_setup_volte, 2435 phone_setup_b=provision_device_for_5g, 2436 phone_setup_c=provision_device_for_5g, 2437 verify_phone_a_network_subscription=is_phone_in_call_volte, 2438 verify_phone_b_network_subscription=is_phone_in_call_volte, 2439 verify_phone_c_network_subscription=is_phone_in_call_volte) 2440 if call_ab_id is None or call_ac_id is None: 2441 return False 2442 return _three_phone_hangup_call_verify_call_state( 2443 log=self.log, 2444 ad_hangup=ads[2], 2445 ad_verify=ads[0], 2446 call_id=call_ab_id, 2447 call_state=CALL_STATE_ACTIVE, 2448 ads_active=[ads[0], ads[1]]) 2449 2450 @TelephonyBaseTest.tel_test_wrap 2451 @test_tracker_info(uuid="6b63555a-c009-4431-be14-abc546cff911") 2452 def test_4g_volte_mo_mt_add_5g_nsa_volte_swap_once_drop_active(self): 2453 """Test swap feature in nsa 5g VoLTE call. 2454 2455 PhoneA (VoLTE) call PhoneB (nsa 5g VoLTE), accept on PhoneB. 2456 PhoneC (nsa 5g VoLTE) call PhoneA (VoLTE), accept on PhoneA. 2457 Swap active call on PhoneA. 2458 Hangup call from PhoneB, check if call continues between AC. 2459 2460 Returns: 2461 True if pass; False if fail. 2462 """ 2463 ads = self.android_devices 2464 2465 call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x( 2466 log=self.log, 2467 ads=ads, 2468 num_swaps=1, 2469 phone_setup_a=phone_setup_volte, 2470 phone_setup_b=provision_device_for_5g, 2471 phone_setup_c=provision_device_for_5g, 2472 verify_phone_a_network_subscription=is_phone_in_call_volte, 2473 verify_phone_b_network_subscription=is_phone_in_call_volte, 2474 verify_phone_c_network_subscription=is_phone_in_call_volte) 2475 if call_ab_id is None or call_ac_id is None: 2476 return False 2477 2478 return _three_phone_hangup_call_verify_call_state( 2479 log=self.log, 2480 ad_hangup=ads[1], 2481 ad_verify=ads[0], 2482 call_id=call_ac_id, 2483 call_state=_get_expected_call_state(ads[0]), 2484 ads_active=[ads[0], ads[2]]) 2485 2486 @TelephonyBaseTest.tel_test_wrap 2487 @test_tracker_info(uuid="f4990e20-4a40-4238-9a2a-a75d9be3d354") 2488 def test_5g_nsa_volte_call_forwarding_unconditional(self): 2489 2490 ads = self.android_devices 2491 2492 tasks = [(phone_setup_volte, (self.log, ads[0], GEN_5G)), 2493 (phone_setup_voice_general, (self.log, ads[1])), 2494 (phone_setup_voice_general, (self.log, ads[2]))] 2495 if not multithread_func(self.log, tasks): 2496 self.log.error("Phone Failed to Set Up Properly.") 2497 return False 2498 2499 return three_phone_call_forwarding_short_seq( 2500 self.log, 2501 ads[0], 2502 None, 2503 None, 2504 ads[1], 2505 ads[2], 2506 call_forwarding_type="unconditional") 2507 2508 @TelephonyBaseTest.tel_test_wrap 2509 @test_tracker_info(uuid="26b85c3f-5a38-465a-a6e3-dfd03c6ea315") 2510 def test_5g_nsa_volte_call_forwarding_busy(self): 2511 2512 ads = self.android_devices 2513 2514 tasks = [(phone_setup_volte, (self.log, ads[0], GEN_5G)), 2515 (phone_setup_voice_general, (self.log, ads[1])), 2516 (phone_setup_voice_general, (self.log, ads[2]))] 2517 if not multithread_func(self.log, tasks): 2518 self.log.error("Phone Failed to Set Up Properly.") 2519 return False 2520 2521 return three_phone_call_forwarding_short_seq( 2522 self.log, 2523 ads[0], 2524 None, 2525 None, 2526 ads[1], 2527 ads[2], 2528 call_forwarding_type="busy") 2529 2530 @TelephonyBaseTest.tel_test_wrap 2531 @test_tracker_info(uuid="96638a39-efe2-40e2-afb6-6a97f87c4af5") 2532 def test_5g_nsa_volte_call_forwarding_not_answered(self): 2533 2534 ads = self.android_devices 2535 2536 tasks = [(phone_setup_volte, (self.log, ads[0], GEN_5G)), 2537 (phone_setup_voice_general, (self.log, ads[1])), 2538 (phone_setup_voice_general, (self.log, ads[2]))] 2539 if not multithread_func(self.log, tasks): 2540 self.log.error("Phone Failed to Set Up Properly.") 2541 return False 2542 2543 return three_phone_call_forwarding_short_seq( 2544 self.log, 2545 ads[0], 2546 None, 2547 None, 2548 ads[1], 2549 ads[2], 2550 call_forwarding_type="not_answered") 2551 2552 @TelephonyBaseTest.tel_test_wrap 2553 @test_tracker_info(uuid="a13e586a-3345-49d8-9e84-ca33bd3fbd7d") 2554 def test_5g_nsa_volte_call_forwarding_not_reachable(self): 2555 2556 ads = self.android_devices 2557 2558 tasks = [(phone_setup_volte, (self.log, ads[0], GEN_5G)), 2559 (phone_setup_voice_general, (self.log, ads[1])), 2560 (phone_setup_voice_general, (self.log, ads[2]))] 2561 if not multithread_func(self.log, tasks): 2562 self.log.error("Phone Failed to Set Up Properly.") 2563 return False 2564 2565 return three_phone_call_forwarding_short_seq( 2566 self.log, 2567 ads[0], 2568 None, 2569 None, 2570 ads[1], 2571 ads[2], 2572 call_forwarding_type="not_reachable") 2573 2574 @TelephonyBaseTest.tel_test_wrap 2575 @test_tracker_info(uuid="e9a6027b-7dd1-4dca-a700-e4d42c9c947d") 2576 def test_call_waiting_scenario_1(self): 2577 """ Call waiting scenario 1: 1st call ended first by caller1 during 2nd 2578 call incoming. 2nd call ended by caller2. 2579 """ 2580 ads = self.android_devices 2581 2582 tasks = [(phone_setup_volte, (self.log, ads[0], GEN_5G)), 2583 (phone_setup_voice_general, (self.log, ads[1])), 2584 (phone_setup_voice_general, (self.log, ads[2]))] 2585 if not multithread_func(self.log, tasks): 2586 self.log.error("Phone Failed to Set Up Properly.") 2587 return False 2588 2589 return three_phone_call_waiting_short_seq(self.log, 2590 ads[0], 2591 None, 2592 None, 2593 ads[1], 2594 ads[2], 2595 call_waiting=True, 2596 scenario=1) 2597 2598 @TelephonyBaseTest.tel_test_wrap 2599 @test_tracker_info(uuid="3fe02cb7-68d7-4762-882a-02bff8ce32f9") 2600 def test_call_waiting_scenario_2(self): 2601 """ Call waiting scenario 2: 1st call ended first by caller1 during 2nd 2602 call incoming. 2nd call ended by callee. 2603 """ 2604 ads = self.android_devices 2605 2606 tasks = [(phone_setup_volte, (self.log, ads[0], GEN_5G)), 2607 (phone_setup_voice_general, (self.log, ads[1])), 2608 (phone_setup_voice_general, (self.log, ads[2]))] 2609 if not multithread_func(self.log, tasks): 2610 self.log.error("Phone Failed to Set Up Properly.") 2611 return False 2612 2613 return three_phone_call_waiting_short_seq(self.log, 2614 ads[0], 2615 None, 2616 None, 2617 ads[1], 2618 ads[2], 2619 call_waiting=True, 2620 scenario=2) 2621 2622 @TelephonyBaseTest.tel_test_wrap 2623 @test_tracker_info(uuid="bf5eb9ad-1fa2-468d-99dc-3cbcee8c89f8") 2624 def test_call_waiting_scenario_3(self): 2625 """ Call waiting scenario 3: 1st call ended first by callee during 2nd 2626 call incoming. 2nd call ended by caller2. 2627 """ 2628 ads = self.android_devices 2629 2630 tasks = [(phone_setup_volte, (self.log, ads[0], GEN_5G)), 2631 (phone_setup_voice_general, (self.log, ads[1])), 2632 (phone_setup_voice_general, (self.log, ads[2]))] 2633 if not multithread_func(self.log, tasks): 2634 self.log.error("Phone Failed to Set Up Properly.") 2635 return False 2636 2637 return three_phone_call_waiting_short_seq(self.log, 2638 ads[0], 2639 None, 2640 None, 2641 ads[1], 2642 ads[2], 2643 call_waiting=True, 2644 scenario=3) 2645 2646 @TelephonyBaseTest.tel_test_wrap 2647 @test_tracker_info(uuid="f2e4b6a9-6a6f-466c-884c-c0ef79d6ff01") 2648 def test_call_waiting_scenario_4(self): 2649 """Call waiting scenario 4: 1st call ended first by callee during 2nd 2650 call incoming. 2nd call ended by callee. 2651 """ 2652 ads = self.android_devices 2653 2654 tasks = [(phone_setup_volte, (self.log, ads[0], GEN_5G)), 2655 (phone_setup_voice_general, (self.log, ads[1])), 2656 (phone_setup_voice_general, (self.log, ads[2]))] 2657 if not multithread_func(self.log, tasks): 2658 self.log.error("Phone Failed to Set Up Properly.") 2659 return False 2660 2661 return three_phone_call_waiting_short_seq(self.log, 2662 ads[0], 2663 None, 2664 None, 2665 ads[1], 2666 ads[2], 2667 call_waiting=True, 2668 scenario=4) 2669 2670 @TelephonyBaseTest.tel_test_wrap 2671 @test_tracker_info(uuid="f2d36f45-63f6-4e01-9844-6fa53c26def7") 2672 def test_call_waiting_scenario_5(self): 2673 """ Call waiting scenario 5: 1st call ended by caller1. 2nd call ended 2674 by caller2. 2675 """ 2676 ads = self.android_devices 2677 2678 tasks = [(phone_setup_volte, (self.log, ads[0], GEN_5G)), 2679 (phone_setup_voice_general, (self.log, ads[1])), 2680 (phone_setup_voice_general, (self.log, ads[2]))] 2681 if not multithread_func(self.log, tasks): 2682 self.log.error("Phone Failed to Set Up Properly.") 2683 return False 2684 2685 return three_phone_call_waiting_short_seq(self.log, 2686 ads[0], 2687 None, 2688 None, 2689 ads[1], 2690 ads[2], 2691 call_waiting=True, 2692 scenario=5) 2693 2694 @TelephonyBaseTest.tel_test_wrap 2695 @test_tracker_info(uuid="7eb2a89d-30ad-4a34-8e63-87d0181b91aa") 2696 def test_call_waiting_scenario_6(self): 2697 """Call waiting scenario 6: 1st call ended by caller1. 2nd call ended by 2698 callee. 2699 """ 2700 ads = self.android_devices 2701 2702 tasks = [(phone_setup_volte, (self.log, ads[0], GEN_5G)), 2703 (phone_setup_voice_general, (self.log, ads[1])), 2704 (phone_setup_voice_general, (self.log, ads[2]))] 2705 if not multithread_func(self.log, tasks): 2706 self.log.error("Phone Failed to Set Up Properly.") 2707 return False 2708 2709 return three_phone_call_waiting_short_seq(self.log, 2710 ads[0], 2711 None, 2712 None, 2713 ads[1], 2714 ads[2], 2715 call_waiting=True, 2716 scenario=6) 2717 2718 @TelephonyBaseTest.tel_test_wrap 2719 @test_tracker_info(uuid="c63882e5-5b72-4ca6-8e36-260c50f42028") 2720 def test_call_waiting_scenario_7(self): 2721 """ Call waiting scenario 7: 1st call ended by callee. 2nd call ended by 2722 caller2. 2723 """ 2724 ads = self.android_devices 2725 2726 tasks = [(phone_setup_voice_general, (self.log, ads[0])), 2727 (phone_setup_voice_general, (self.log, ads[1])), 2728 (phone_setup_voice_general, (self.log, ads[2]))] 2729 if not multithread_func(self.log, tasks): 2730 self.log.error("Phone Failed to Set Up Properly.") 2731 return False 2732 2733 return three_phone_call_waiting_short_seq(self.log, 2734 ads[0], 2735 None, 2736 None, 2737 ads[1], 2738 ads[2], 2739 call_waiting=True, 2740 scenario=7) 2741 2742 @TelephonyBaseTest.tel_test_wrap 2743 @test_tracker_info(uuid="f9be652f-a307-4fa5-9b30-ea78404110bd") 2744 def test_call_waiting_scenario_8(self): 2745 """Call waiting scenario 8: 1st call ended by callee. 2nd call ended by 2746 callee. 2747 """ 2748 ads = self.android_devices 2749 2750 tasks = [(phone_setup_volte, (self.log, ads[0], GEN_5G)), 2751 (phone_setup_voice_general, (self.log, ads[1])), 2752 (phone_setup_voice_general, (self.log, ads[2]))] 2753 if not multithread_func(self.log, tasks): 2754 self.log.error("Phone Failed to Set Up Properly.") 2755 return False 2756 2757 return three_phone_call_waiting_short_seq(self.log, 2758 ads[0], 2759 None, 2760 None, 2761 ads[1], 2762 ads[2], 2763 call_waiting=True, 2764 scenario=8) 2765 2766 @TelephonyBaseTest.tel_test_wrap 2767 @test_tracker_info(uuid="b2e816b5-8e8f-4863-981c-47847d9527e0") 2768 def test_call_waiting_deactivated(self): 2769 2770 ads = self.android_devices 2771 2772 tasks = [(phone_setup_volte, (self.log, ads[0], GEN_5G)), 2773 (phone_setup_voice_general, (self.log, ads[1])), 2774 (phone_setup_voice_general, (self.log, ads[2]))] 2775 if not multithread_func(self.log, tasks): 2776 self.log.error("Phone Failed to Set Up Properly.") 2777 return False 2778 2779 return three_phone_call_waiting_short_seq(self.log, 2780 ads[0], 2781 None, 2782 None, 2783 ads[1], 2784 ads[2], 2785 call_waiting=False) 2786