1#!/usr/bin/env python3 2# 3# Copyright 2020 - 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 17from acts import asserts 18from acts import signals 19from acts.test_decorators import test_tracker_info 20from acts.test_utils.tel.loggers.protos.telephony_metric_pb2 import \ 21 TelephonyVoiceTestResult 22from acts.test_utils.tel.loggers.telephony_metric_logger import \ 23 TelephonyMetricLogger 24from acts.test_utils.tel.TelephonyBaseTest import TelephonyBaseTest 25from acts.test_utils.tel.tel_defines import CAPABILITY_CONFERENCE 26from acts.test_utils.tel.tel_defines import INVALID_SUB_ID 27from acts.test_utils.tel.tel_subscription_utils import \ 28 get_incoming_voice_sub_id 29from acts.test_utils.tel.tel_subscription_utils import \ 30 get_outgoing_voice_sub_id 31from acts.test_utils.tel.tel_subscription_utils import get_subid_from_slot_index 32from acts.test_utils.tel.tel_subscription_utils import set_incoming_voice_sub_id 33from acts.test_utils.tel.tel_subscription_utils import set_dds_on_slot_0 34from acts.test_utils.tel.tel_subscription_utils import set_dds_on_slot_1 35from acts.test_utils.tel.tel_subscription_utils import \ 36 get_subid_on_same_network_of_host_ad 37from acts.test_utils.tel.tel_test_utils import hangup_call 38from acts.test_utils.tel.tel_test_utils import multithread_func 39from acts.test_utils.tel.tel_test_utils import get_capability_for_subscription 40from acts.test_utils.tel.tel_test_utils import verify_http_connection 41from acts.test_utils.tel.tel_test_utils import ensure_phones_idle 42from acts.test_utils.tel.tel_test_utils import get_slot_index_from_subid 43from acts.test_utils.tel.tel_test_utils import get_operator_name 44from acts.test_utils.tel.tel_voice_utils import is_phone_in_call_3g 45from acts.test_utils.tel.tel_voice_utils import is_phone_in_call_csfb 46from acts.test_utils.tel.tel_voice_utils import is_phone_in_call_volte 47from acts.test_utils.tel.tel_voice_utils import phone_setup_csfb 48from acts.test_utils.tel.tel_voice_utils import \ 49 phone_setup_csfb_for_subscription 50from acts.test_utils.tel.tel_voice_utils import phone_setup_voice_3g 51from acts.test_utils.tel.tel_voice_utils import \ 52 phone_setup_voice_3g_for_subscription 53from acts.test_utils.tel.tel_voice_utils import phone_setup_voice_general 54from acts.test_utils.tel.tel_voice_utils import \ 55 phone_setup_voice_general_for_subscription 56from acts.test_utils.tel.tel_voice_utils import phone_setup_volte 57from acts.test_utils.tel.tel_voice_utils import \ 58 phone_setup_volte_for_subscription 59from acts.test_utils.tel.tel_voice_utils import two_phone_call_msim_for_slot 60 61CallResult = TelephonyVoiceTestResult.CallResult.Value 62 63class TelLiveGFTDSDSVoiceTest(TelephonyBaseTest): 64 def __init__(self, controllers): 65 TelephonyBaseTest.__init__(self, controllers) 66 self.tel_logger = TelephonyMetricLogger.for_test_case() 67 68 def setup_class(self): 69 TelephonyBaseTest.setup_class(self) 70 71 def teardown_test(self): 72 ensure_phones_idle(self.log, self.android_devices) 73 74 def _hangup_call(self, ad, device_description='Device'): 75 if not hangup_call(self.log, ad): 76 ad.log.error("Failed to hang up on %s", device_description) 77 return False 78 return True 79 80 def _test_msim_call_voice( 81 self, 82 mo_slot, 83 mt_slot, 84 dds_slot, 85 mo_rat=["", ""], 86 mt_rat=["", ""], 87 call_direction="mo"): 88 """Make MO/MT voice call at specific slot in specific RAT with DDS at 89 specific slot. 90 91 Test step: 92 1. Get sub IDs of specific slots of both MO and MT devices. 93 2. Switch DDS to specific slot. 94 3. Check HTTP connection after DDS switch. 95 4. Set up phones in desired RAT. 96 5. Make voice call. 97 98 Args: 99 mo_slot: Slot making MO call (0 or 1) 100 mt_slot: Slot receiving MT call (0 or 1) 101 dds_slot: Preferred data slot 102 mo_rat: RAT for both slots of MO device 103 mt_rat: RAT for both slots of MT device 104 call_direction: "mo" or "mt" 105 106 Returns: 107 TestFailure if failed. 108 """ 109 ads = self.android_devices 110 111 if call_direction == "mo": 112 ad_mo = ads[0] 113 ad_mt = ads[1] 114 else: 115 ad_mo = ads[1] 116 ad_mt = ads[0] 117 118 if mo_slot is not None: 119 mo_sub_id = get_subid_from_slot_index(self.log, ad_mo, mo_slot) 120 if mo_sub_id == INVALID_SUB_ID: 121 ad_mo.log.warning("Failed to get sub ID ar slot %s.", mo_slot) 122 return False 123 mo_other_sub_id = get_subid_from_slot_index( 124 self.log, ad_mo, 1-mo_slot) 125 set_incoming_voice_sub_id(ad_mo, mo_sub_id) 126 else: 127 _, mo_sub_id, _ = get_subid_on_same_network_of_host_ad(ads) 128 if mo_sub_id == INVALID_SUB_ID: 129 ad_mo.log.warning("Failed to get sub ID ar slot %s.", mo_slot) 130 return False 131 mo_slot = "auto" 132 set_incoming_voice_sub_id(ad_mo, mo_sub_id) 133 ad_mo.log.info("Sub ID for outgoing call at slot %s: %s", 134 mo_slot, get_outgoing_voice_sub_id(ad_mo)) 135 136 if mt_slot is not None: 137 mt_sub_id = get_subid_from_slot_index(self.log, ad_mt, mt_slot) 138 if mt_sub_id == INVALID_SUB_ID: 139 ad_mt.log.warning("Failed to get sub ID at slot %s.", mt_slot) 140 return False 141 mt_other_sub_id = get_subid_from_slot_index( 142 self.log, ad_mt, 1-mt_slot) 143 set_incoming_voice_sub_id(ad_mt, mt_sub_id) 144 else: 145 _, mt_sub_id, _ = get_subid_on_same_network_of_host_ad(ads) 146 if mt_sub_id == INVALID_SUB_ID: 147 ad_mt.log.warning("Failed to get sub ID at slot %s.", mt_slot) 148 return False 149 mt_slot = "auto" 150 set_incoming_voice_sub_id(ad_mt, mt_sub_id) 151 ad_mt.log.info("Sub ID for incoming call at slot %s: %s", mt_slot, 152 get_incoming_voice_sub_id(ad_mt)) 153 154 self.log.info("Step 1: Switch DDS.") 155 if dds_slot: 156 if not set_dds_on_slot_1(ads[0]): 157 ads[0].log.warning("Failed to set DDS at eSIM.") 158 return False 159 else: 160 if not set_dds_on_slot_0(ads[0]): 161 ads[0].log.warning("Failed to set DDS at pSIM.") 162 return False 163 164 self.log.info("Step 2: Check HTTP connection after DDS switch.") 165 if not verify_http_connection(self.log, 166 ads[0], 167 url="https://www.google.com", 168 retry=5, 169 retry_interval=15, 170 expected_state=True): 171 172 self.log.error("Failed to verify http connection.") 173 return False 174 else: 175 self.log.info("Verify http connection successfully.") 176 177 if mo_rat[0] == "volte": 178 mo_slot0_phone_setup_func = phone_setup_volte 179 is_mo_slot0_in_call = is_phone_in_call_volte 180 elif mo_rat[0] == "csfb": 181 mo_slot0_phone_setup_func = phone_setup_csfb 182 is_mo_slot0_in_call = is_phone_in_call_csfb 183 elif mo_rat[0] == "3g": 184 mo_slot0_phone_setup_func = phone_setup_voice_3g 185 is_mo_slot0_in_call = is_phone_in_call_3g 186 elif not mo_rat[0] or mo_rat[0] == "general": 187 mo_slot0_phone_setup_func = phone_setup_voice_general 188 is_mo_slot0_in_call = None 189 190 if mo_rat[1] == "volte": 191 mo_slot1_phone_setup_func = phone_setup_volte 192 is_mo_slot1_in_call = is_phone_in_call_volte 193 elif mo_rat[1] == "csfb": 194 mo_slot1_phone_setup_func = phone_setup_csfb 195 is_mo_slot1_in_call = is_phone_in_call_csfb 196 elif mo_rat[1] == "3g": 197 mo_slot1_phone_setup_func = phone_setup_voice_3g 198 is_mo_slot1_in_call = is_phone_in_call_3g 199 elif not mo_rat[1] or mo_rat[1] == "general": 200 mo_slot1_phone_setup_func = phone_setup_voice_general 201 is_mo_slot1_in_call = None 202 203 if mt_rat[0] == "volte": 204 mt_slot0_phone_setup_func = phone_setup_volte 205 is_mt_slot0_in_call = is_phone_in_call_volte 206 elif mt_rat[0] == "csfb": 207 mt_slot0_phone_setup_func = phone_setup_csfb 208 is_mt_slot0_in_call = is_phone_in_call_csfb 209 elif mt_rat[0] == "3g": 210 mt_slot0_phone_setup_func = phone_setup_voice_3g 211 is_mt_slot0_in_call = is_phone_in_call_3g 212 elif not mt_rat[0] or mt_rat[0] == "general": 213 mt_slot0_phone_setup_func = phone_setup_voice_general 214 is_mt_slot0_in_call = None 215 216 if mt_rat[1] == "volte": 217 mt_slot1_phone_setup_func = phone_setup_volte 218 is_mt_slot1_in_call = is_phone_in_call_volte 219 elif mt_rat[1] == "csfb": 220 mt_slot1_phone_setup_func = phone_setup_csfb 221 is_mt_slot1_in_call = is_phone_in_call_csfb 222 elif mt_rat[1] == "3g": 223 mt_slot1_phone_setup_func = phone_setup_voice_3g 224 is_mt_slot1_in_call = is_phone_in_call_3g 225 elif not mt_rat[1] or mt_rat[1] == "general": 226 mt_slot1_phone_setup_func = phone_setup_voice_general 227 is_mt_slot1_in_call = None 228 229 if mo_slot == 1: 230 mo_phone_setup_func = mo_slot1_phone_setup_func 231 is_mo_in_call = is_mo_slot1_in_call 232 if mo_rat[0] == "volte": 233 phone_setup_volte_for_subscription( 234 self.log, ad_mo, mo_other_sub_id) 235 elif mo_rat[0] == "csfb": 236 phone_setup_csfb_for_subscription( 237 self.log, ad_mo, mo_other_sub_id) 238 elif mo_rat[0] == "3g": 239 phone_setup_voice_3g_for_subscription( 240 self.log, ad_mo, mo_other_sub_id) 241 elif not mo_rat[0] or mo_rat[0] == "general": 242 phone_setup_voice_general_for_subscription( 243 self.log, ad_mo, mo_other_sub_id) 244 elif mo_slot == 0: 245 mo_phone_setup_func = mo_slot0_phone_setup_func 246 is_mo_in_call = is_mo_slot0_in_call 247 if mo_rat[1] == "volte": 248 phone_setup_volte_for_subscription( 249 self.log, ad_mo, mo_other_sub_id) 250 elif mo_rat[1] == "csfb": 251 phone_setup_csfb_for_subscription( 252 self.log, ad_mo, mo_other_sub_id) 253 elif mo_rat[1] == "3g": 254 phone_setup_voice_3g_for_subscription( 255 self.log, ad_mo, mo_other_sub_id) 256 elif not mo_rat[1] or mo_rat[1] == "general": 257 phone_setup_voice_general_for_subscription( 258 self.log, ad_mo, mo_other_sub_id) 259 else: 260 mo_phone_setup_func = phone_setup_voice_general 261 is_mo_in_call = None 262 263 if mt_slot == 1: 264 mt_phone_setup_func = mt_slot1_phone_setup_func 265 is_mt_in_call = is_mt_slot1_in_call 266 if mt_rat[0] == "volte": 267 phone_setup_volte_for_subscription( 268 self.log, ad_mt, mt_other_sub_id) 269 elif mt_rat[0] == "csfb": 270 phone_setup_csfb_for_subscription( 271 self.log, ad_mt, mt_other_sub_id) 272 elif mt_rat[0] == "3g": 273 phone_setup_voice_3g_for_subscription( 274 self.log, ad_mt, mt_other_sub_id) 275 elif not mt_rat[0] or mt_rat[0] == "general": 276 phone_setup_voice_general_for_subscription( 277 self.log, ad_mt, mt_other_sub_id) 278 elif mt_slot == 0: 279 mt_phone_setup_func = mt_slot0_phone_setup_func 280 is_mt_in_call = is_mt_slot0_in_call 281 if mt_rat[1] == "volte": 282 phone_setup_volte_for_subscription( 283 self.log, ad_mt, mt_other_sub_id) 284 elif mt_rat[1] == "csfb": 285 phone_setup_csfb_for_subscription( 286 self.log, ad_mt, mt_other_sub_id) 287 elif mt_rat[1] == "3g": 288 phone_setup_voice_3g_for_subscription( 289 self.log, ad_mt, mt_other_sub_id) 290 elif not mt_rat[1] or mt_rat[1] == "general": 291 phone_setup_voice_general_for_subscription( 292 self.log, ad_mt, mt_other_sub_id) 293 else: 294 mt_phone_setup_func = phone_setup_voice_general 295 is_mt_in_call = None 296 297 self.log.info("Step 3: Set up phones in desired RAT.") 298 tasks = [(mo_phone_setup_func, (self.log, ad_mo)), 299 (mt_phone_setup_func, (self.log, ad_mt))] 300 if not multithread_func(self.log, tasks): 301 self.log.error("Phone Failed to Set Up Properly.") 302 self.tel_logger.set_result(CallResult("CALL_SETUP_FAILURE")) 303 raise signals.TestFailure("Failed", 304 extras={"fail_reason": "Phone Failed to Set Up Properly."}) 305 306 self.log.info("Step 4: Make voice call.") 307 result = two_phone_call_msim_for_slot( 308 self.log, 309 ad_mo, 310 get_slot_index_from_subid(self.log, ad_mo, mo_sub_id), 311 None, 312 is_mo_in_call, 313 ad_mt, 314 get_slot_index_from_subid(self.log, ad_mt, mt_sub_id), 315 None, 316 is_mt_in_call) 317 self.tel_logger.set_result(result.result_value) 318 319 if not result: 320 self.log.error( 321 "Failed to make MO call from %s slot %s to %s slot %s", 322 ad_mo.serial, mo_slot, ad_mt.serial, mt_slot) 323 raise signals.TestFailure("Failed", 324 extras={"fail_reason": str(result.result_value)}) 325 326 327 @test_tracker_info(uuid="e252aa07-c377-4e12-8f06-ed1dc8f2b6a6") 328 @TelephonyBaseTest.tel_test_wrap 329 def test_msim_voice_call_mo_volte_psim_dds_slot_0(self): 330 return self._test_msim_call_voice( 331 0, None, 0, mo_rat=["volte", "volte"], call_direction="mo") 332 333 @test_tracker_info(uuid="7631b805-48b6-4b91-99a3-eef392e5b0fc") 334 @TelephonyBaseTest.tel_test_wrap 335 def test_msim_voice_call_mo_volte_psim_dds_slot_1(self): 336 return self._test_msim_call_voice( 337 0, None, 1, mo_rat=["volte", "volte"], call_direction="mo") 338 339 @test_tracker_info(uuid="4771e517-08cf-4169-afe7-fe3e41f05c45") 340 @TelephonyBaseTest.tel_test_wrap 341 def test_msim_voice_call_mt_volte_psim_dds_slot_0(self): 342 return self._test_msim_call_voice( 343 None, 0, 0, mt_rat=["volte", "volte"], call_direction="mt") 344 345 @test_tracker_info(uuid="e8f914df-cada-4187-ab53-734624c9c941") 346 @TelephonyBaseTest.tel_test_wrap 347 def test_msim_voice_call_mt_volte_psim_dds_slot_1(self): 348 return self._test_msim_call_voice( 349 None, 0, 1, mt_rat=["volte", "volte"], call_direction="mt") 350 351 @test_tracker_info(uuid="967a665a-9614-4fe4-b293-e20b66637802") 352 @TelephonyBaseTest.tel_test_wrap 353 def test_msim_voice_call_mo_volte_esim_dds_slot_0(self): 354 return self._test_msim_call_voice( 355 1, None, 0, mo_rat=["volte", "volte"], call_direction="mo") 356 357 @test_tracker_info(uuid="901c7fa3-039f-4888-90eb-82af587fa8dd") 358 @TelephonyBaseTest.tel_test_wrap 359 def test_msim_voice_call_mo_volte_esim_dds_slot_1(self): 360 return self._test_msim_call_voice( 361 1, None, 1, mo_rat=["volte", "volte"], call_direction="mo") 362 363 @test_tracker_info(uuid="a78f2808-a6c6-4483-b7f5-ad1ec925dd52") 364 @TelephonyBaseTest.tel_test_wrap 365 def test_msim_voice_call_mt_volte_esim_dds_slot_0(self): 366 return self._test_msim_call_voice( 367 None, 1, 0, mt_rat=["volte", "volte"], call_direction="mt") 368 369 @test_tracker_info(uuid="f6994dbd-c5a0-42c7-a43d-67227f5dfb88") 370 @TelephonyBaseTest.tel_test_wrap 371 def test_msim_voice_call_mt_volte_esim_dds_slot_1(self): 372 return self._test_msim_call_voice( 373 None, 1, 1, mt_rat=["volte", "volte"], call_direction="mt") 374 375 376 377 378 @test_tracker_info(uuid="0786d7d3-d272-4233-83dd-0667e844094d") 379 @TelephonyBaseTest.tel_test_wrap 380 def test_msim_voice_call_mo_volte_csfb_psim_dds_slot_0(self): 381 return self._test_msim_call_voice( 382 0, None, 0, mo_rat=["volte", "csfb"], call_direction="mo") 383 384 @test_tracker_info(uuid="b9dfd46c-752c-4424-83b1-b5749a7018af") 385 @TelephonyBaseTest.tel_test_wrap 386 def test_msim_voice_call_mo_volte_csfb_psim_dds_slot_1(self): 387 return self._test_msim_call_voice( 388 0, None, 1, mo_rat=["volte", "csfb"], call_direction="mo") 389 390 @test_tracker_info(uuid="8bc57654-a5d9-4c82-b11a-62e76ece9b43") 391 @TelephonyBaseTest.tel_test_wrap 392 def test_msim_voice_call_mt_volte_csfb_psim_dds_slot_0(self): 393 return self._test_msim_call_voice( 394 None, 0, 0, mt_rat=["volte", "csfb"], call_direction="mt") 395 396 @test_tracker_info(uuid="dbe44bf1-4638-4490-a06f-406205681ca5") 397 @TelephonyBaseTest.tel_test_wrap 398 def test_msim_voice_call_mt_volte_csfb_psim_dds_slot_1(self): 399 return self._test_msim_call_voice( 400 None, 0, 1, mt_rat=["volte", "csfb"], call_direction="mt") 401 402 @test_tracker_info(uuid="ffd82db7-eaaa-4f96-9e3b-e0e15d054e62") 403 @TelephonyBaseTest.tel_test_wrap 404 def test_msim_voice_call_mo_volte_csfb_esim_dds_slot_0(self): 405 return self._test_msim_call_voice( 406 1, None, 0, mo_rat=["volte", "csfb"], call_direction="mo") 407 408 @test_tracker_info(uuid="f7f3f28b-eecf-42e5-ba28-168a38337c80") 409 @TelephonyBaseTest.tel_test_wrap 410 def test_msim_voice_call_mo_volte_csfb_esim_dds_slot_1(self): 411 return self._test_msim_call_voice( 412 1, None, 1, mo_rat=["volte", "csfb"], call_direction="mo") 413 414 @test_tracker_info(uuid="eb6ae70a-3251-4642-8268-b91b593cecfd") 415 @TelephonyBaseTest.tel_test_wrap 416 def test_msim_voice_call_mt_volte_csfb_esim_dds_slot_0(self): 417 return self._test_msim_call_voice( 418 None, 1, 0, mt_rat=["volte", "csfb"], call_direction="mt") 419 420 @test_tracker_info(uuid="1d927140-34d2-4fc7-8fe4-b23a303fd190") 421 @TelephonyBaseTest.tel_test_wrap 422 def test_msim_voice_call_mt_volte_csfb_esim_dds_slot_1(self): 423 return self._test_msim_call_voice( 424 None, 1, 1, mt_rat=["volte", "csfb"], call_direction="mt") 425 426 427 428 429 @test_tracker_info(uuid="f15f6696-6e11-414b-8e28-9c16793b66b0") 430 @TelephonyBaseTest.tel_test_wrap 431 def test_msim_voice_call_mo_csfb_volte_psim_dds_slot_0(self): 432 return self._test_msim_call_voice( 433 0, None, 0, mo_rat=["csfb", "volte"], call_direction="mo") 434 435 @test_tracker_info(uuid="ca99d987-0bdb-4034-892f-cc0b1d22f381") 436 @TelephonyBaseTest.tel_test_wrap 437 def test_msim_voice_call_mo_csfb_volte_psim_dds_slot_1(self): 438 return self._test_msim_call_voice( 439 0, None, 1, mo_rat=["csfb", "volte"], call_direction="mo") 440 441 @test_tracker_info(uuid="692bd3d0-05be-4597-afab-2f837a3f9bd4") 442 @TelephonyBaseTest.tel_test_wrap 443 def test_msim_voice_call_mt_csfb_volte_psim_dds_slot_0(self): 444 return self._test_msim_call_voice( 445 None, 0, 0, mt_rat=["csfb", "volte"], call_direction="mt") 446 447 @test_tracker_info(uuid="87a5fae2-f32c-4b4d-8028-d065b582b117") 448 @TelephonyBaseTest.tel_test_wrap 449 def test_msim_voice_call_mt_csfb_volte_psim_dds_slot_1(self): 450 return self._test_msim_call_voice( 451 None, 0, 1, mt_rat=["csfb", "volte"], call_direction="mt") 452 453 @test_tracker_info(uuid="f6375034-5ecb-4872-bab2-cf9529f20fda") 454 @TelephonyBaseTest.tel_test_wrap 455 def test_msim_voice_call_mo_csfb_volte_esim_dds_slot_0(self): 456 return self._test_msim_call_voice( 457 1, None, 0, mo_rat=["csfb", "volte"], call_direction="mo") 458 459 @test_tracker_info(uuid="6185bc28-1703-4ca2-a617-171d81adfe9a") 460 @TelephonyBaseTest.tel_test_wrap 461 def test_msim_voice_call_mo_csfb_volte_esim_dds_slot_1(self): 462 return self._test_msim_call_voice( 463 1, None, 1, mo_rat=["csfb", "volte"], call_direction="mo") 464 465 @test_tracker_info(uuid="06bad228-27af-47b4-9b74-aacba81f9da7") 466 @TelephonyBaseTest.tel_test_wrap 467 def test_msim_voice_call_mt_csfb_volte_esim_dds_slot_0(self): 468 return self._test_msim_call_voice( 469 None, 1, 0, mt_rat=["csfb", "volte"], call_direction="mt") 470 471 @test_tracker_info(uuid="5a5f2178-2ac6-4d21-bf6f-b9d8455365f1") 472 @TelephonyBaseTest.tel_test_wrap 473 def test_msim_voice_call_mt_csfb_volte_esim_dds_slot_1(self): 474 return self._test_msim_call_voice( 475 None, 1, 1, mt_rat=["csfb", "volte"], call_direction="mt") 476 477 478 479 @test_tracker_info(uuid="216f8569-8120-43c4-a9c5-da3081d168db") 480 @TelephonyBaseTest.tel_test_wrap 481 def test_msim_voice_call_mo_volte_3g_psim_dds_slot_0(self): 482 return self._test_msim_call_voice( 483 0, None, 0, mo_rat=["volte", "3g"], call_direction="mo") 484 485 @test_tracker_info(uuid="8d15524a-f7f9-4321-a962-b455bfdf4ec9") 486 @TelephonyBaseTest.tel_test_wrap 487 def test_msim_voice_call_mo_volte_3g_psim_dds_slot_1(self): 488 return self._test_msim_call_voice( 489 0, None, 1, mo_rat=["volte", "3g"], call_direction="mo") 490 491 @test_tracker_info(uuid="c6aa5975-9ea6-4367-a59e-a248fde2c8be") 492 @TelephonyBaseTest.tel_test_wrap 493 def test_msim_voice_call_mt_volte_3g_psim_dds_slot_0(self): 494 return self._test_msim_call_voice( 495 None, 0, 0, mt_rat=["volte", "3g"], call_direction="mt") 496 497 @test_tracker_info(uuid="a99a54e0-46ea-4d35-a3c1-d825c546cc21") 498 @TelephonyBaseTest.tel_test_wrap 499 def test_msim_voice_call_mt_volte_3g_psim_dds_slot_1(self): 500 return self._test_msim_call_voice( 501 None, 0, 1, mt_rat=["volte", "3g"], call_direction="mt") 502 503 @test_tracker_info(uuid="6d128732-8a8e-488b-bb38-fbb764d228dd") 504 @TelephonyBaseTest.tel_test_wrap 505 def test_msim_voice_call_mo_volte_3g_esim_dds_slot_0(self): 506 return self._test_msim_call_voice( 507 1, None, 0, mo_rat=["volte", "3g"], call_direction="mo") 508 509 @test_tracker_info(uuid="29517d00-5edf-4617-9d29-226d56426abf") 510 @TelephonyBaseTest.tel_test_wrap 511 def test_msim_voice_call_mo_volte_3g_esim_dds_slot_1(self): 512 return self._test_msim_call_voice( 513 1, None, 1, mo_rat=["volte", "3g"], call_direction="mo") 514 515 @test_tracker_info(uuid="d18ec79e-3bc3-4c7e-89fd-d03519b2e2a6") 516 @TelephonyBaseTest.tel_test_wrap 517 def test_msim_voice_call_mt_volte_3g_esim_dds_slot_0(self): 518 return self._test_msim_call_voice( 519 None, 1, 0, mt_rat=["volte", "3g"], call_direction="mt") 520 521 @test_tracker_info(uuid="6442b85a-b116-4987-b6d5-2d2b9bac7fd5") 522 @TelephonyBaseTest.tel_test_wrap 523 def test_msim_voice_call_mt_volte_3g_esim_dds_slot_1(self): 524 return self._test_msim_call_voice( 525 None, 1, 1, mt_rat=["volte", "3g"], call_direction="mt") 526 527 528 529 530 @test_tracker_info(uuid="82e6f955-5156-4ad3-885d-d1d5ff0526cb") 531 @TelephonyBaseTest.tel_test_wrap 532 def test_msim_voice_call_mo_3g_volte_psim_dds_slot_0(self): 533 return self._test_msim_call_voice( 534 0, None, 0, mo_rat=["3g", "volte"], call_direction="mo") 535 536 @test_tracker_info(uuid="ffdafbac-026d-4d7d-a1dc-f639c01db818") 537 @TelephonyBaseTest.tel_test_wrap 538 def test_msim_voice_call_mo_3g_volte_psim_dds_slot_1(self): 539 return self._test_msim_call_voice( 540 0, None, 1, mo_rat=["3g", "volte"], call_direction="mo") 541 542 @test_tracker_info(uuid="b18dc6a7-e4a1-4409-a4aa-4e4add2fee13") 543 @TelephonyBaseTest.tel_test_wrap 544 def test_msim_voice_call_mt_3g_volte_psim_dds_slot_0(self): 545 return self._test_msim_call_voice( 546 None, 0, 0, mt_rat=["3g", "volte"], call_direction="mt") 547 548 @test_tracker_info(uuid="ea6fc855-31b8-4680-b306-51228277e0d3") 549 @TelephonyBaseTest.tel_test_wrap 550 def test_msim_voice_call_mt_3g_volte_psim_dds_slot_1(self): 551 return self._test_msim_call_voice( 552 None, 0, 1, mt_rat=["3g", "volte"], call_direction="mt") 553 554 @test_tracker_info(uuid="fdf9f4ea-a6f6-4434-a912-13711bb33a72") 555 @TelephonyBaseTest.tel_test_wrap 556 def test_msim_voice_call_mo_3g_volte_esim_dds_slot_0(self): 557 return self._test_msim_call_voice( 558 1, None, 0, mo_rat=["3g", "volte"], call_direction="mo") 559 560 @test_tracker_info(uuid="deb8e2f6-e097-451e-9f19-aadaf1820fea") 561 @TelephonyBaseTest.tel_test_wrap 562 def test_msim_voice_call_mo_3g_volte_esim_dds_slot_1(self): 563 return self._test_msim_call_voice( 564 1, None, 1, mo_rat=["3g", "volte"], call_direction="mo") 565 566 @test_tracker_info(uuid="6a636c5d-5da9-4916-9751-435ab39aaa00") 567 @TelephonyBaseTest.tel_test_wrap 568 def test_msim_voice_call_mt_3g_volte_esim_dds_slot_0(self): 569 return self._test_msim_call_voice( 570 None, 1, 0, mt_rat=["3g", "volte"], call_direction="mt") 571 572 @test_tracker_info(uuid="0b9d9d5c-e5e7-4c9d-ab8a-0658fadbf450") 573 @TelephonyBaseTest.tel_test_wrap 574 def test_msim_voice_call_mt_3g_volte_esim_dds_slot_1(self): 575 return self._test_msim_call_voice( 576 None, 1, 1, mt_rat=["3g", "volte"], call_direction="mt") 577 578 579 580 581 @test_tracker_info(uuid="fce99df9-8931-4a34-9285-121145fb9b2f") 582 @TelephonyBaseTest.tel_test_wrap 583 def test_msim_voice_call_mo_csfb_psim_dds_slot_0(self): 584 return self._test_msim_call_voice( 585 0, None, 0, mo_rat=["csfb", "csfb"], call_direction="mo") 586 587 @test_tracker_info(uuid="81d9a087-e494-40e4-a0fb-7e4ef62e566c") 588 @TelephonyBaseTest.tel_test_wrap 589 def test_msim_voice_call_mo_csfb_psim_dds_slot_1(self): 590 return self._test_msim_call_voice( 591 0, None, 1, mo_rat=["csfb", "csfb"], call_direction="mo") 592 593 @test_tracker_info(uuid="d4520000-9cd1-4aff-9862-bfb6832d51ce") 594 @TelephonyBaseTest.tel_test_wrap 595 def test_msim_voice_call_mt_csfb_psim_dds_slot_0(self): 596 return self._test_msim_call_voice( 597 None, 0, 0, mt_rat=["csfb", "csfb"], call_direction="mt") 598 599 @test_tracker_info(uuid="0eaf1e67-6aec-4a39-8f06-4e49009400e0") 600 @TelephonyBaseTest.tel_test_wrap 601 def test_msim_voice_call_mt_csfb_psim_dds_slot_1(self): 602 return self._test_msim_call_voice( 603 None, 0, 1, mt_rat=["csfb", "csfb"], call_direction="mt") 604 605 @test_tracker_info(uuid="0e6bc15a-e510-4b56-826c-96e0add6b20a") 606 @TelephonyBaseTest.tel_test_wrap 607 def test_msim_voice_call_mo_csfb_esim_dds_slot_0(self): 608 return self._test_msim_call_voice( 609 1, None, 0, mo_rat=["csfb", "csfb"], call_direction="mo") 610 611 @test_tracker_info(uuid="ecead288-424d-4579-bf6a-10a1a78600d5") 612 @TelephonyBaseTest.tel_test_wrap 613 def test_msim_voice_call_mo_csfb_esim_dds_slot_1(self): 614 return self._test_msim_call_voice( 615 1, None, 1, mo_rat=["csfb", "csfb"], call_direction="mo") 616 617 @test_tracker_info(uuid="3a76076d-808e-45f8-b99c-95b82f2f07de") 618 @TelephonyBaseTest.tel_test_wrap 619 def test_msim_voice_call_mt_csfb_esim_dds_slot_0(self): 620 return self._test_msim_call_voice( 621 None, 1, 0, mt_rat=["csfb", "csfb"], call_direction="mt") 622 623 @test_tracker_info(uuid="af638c75-c0e1-4ac1-83f5-bc0e6cdd913c") 624 @TelephonyBaseTest.tel_test_wrap 625 def test_msim_voice_call_mt_csfb_esim_dds_slot_1(self): 626 return self._test_msim_call_voice( 627 None, 1, 1, mt_rat=["csfb", "csfb"], call_direction="mt") 628 629 630 631 @test_tracker_info(uuid="0bf59f38-ddbc-4a88-bc8a-d6985e7d7567") 632 @TelephonyBaseTest.tel_test_wrap 633 def test_msim_voice_call_mo_csfb_3g_psim_dds_slot_0(self): 634 return self._test_msim_call_voice( 635 0, None, 0, mo_rat=["csfb", "3g"], call_direction="mo") 636 637 @test_tracker_info(uuid="59f5a14a-c7e5-4bca-82dd-cb90b9a7a0e1") 638 @TelephonyBaseTest.tel_test_wrap 639 def test_msim_voice_call_mo_csfb_3g_psim_dds_slot_1(self): 640 return self._test_msim_call_voice( 641 0, None, 1, mo_rat=["csfb", "3g"], call_direction="mo") 642 643 @test_tracker_info(uuid="79fc4d6f-0915-4717-80ae-db656cf3a82c") 644 @TelephonyBaseTest.tel_test_wrap 645 def test_msim_voice_call_mt_csfb_3g_psim_dds_slot_0(self): 646 return self._test_msim_call_voice( 647 None, 0, 0, mt_rat=["csfb", "3g"], call_direction="mt") 648 649 @test_tracker_info(uuid="b4927ebb-ae36-4ca7-a0b7-ea011b271122") 650 @TelephonyBaseTest.tel_test_wrap 651 def test_msim_voice_call_mt_csfb_3g_psim_dds_slot_1(self): 652 return self._test_msim_call_voice( 653 None, 0, 1, mt_rat=["csfb", "3g"], call_direction="mt") 654 655 @test_tracker_info(uuid="620be8d5-40b7-45f2-abfd-f788c8ce1977") 656 @TelephonyBaseTest.tel_test_wrap 657 def test_msim_voice_call_mo_csfb_3g_esim_dds_slot_0(self): 658 return self._test_msim_call_voice( 659 1, None, 0, mo_rat=["csfb", "3g"], call_direction="mo") 660 661 @test_tracker_info(uuid="e277e0db-2dfb-4cfc-8d13-7c699f397b9b") 662 @TelephonyBaseTest.tel_test_wrap 663 def test_msim_voice_call_mo_csfb_3g_esim_dds_slot_1(self): 664 return self._test_msim_call_voice( 665 1, None, 1, mo_rat=["csfb", "3g"], call_direction="mo") 666 667 @test_tracker_info(uuid="f7822fca-a22d-4989-bca8-506e9652cee1") 668 @TelephonyBaseTest.tel_test_wrap 669 def test_msim_voice_call_mt_csfb_3g_esim_dds_slot_0(self): 670 return self._test_msim_call_voice( 671 None, 1, 0, mt_rat=["csfb", "3g"], call_direction="mt") 672 673 @test_tracker_info(uuid="60e5f5cd-a2e1-4a6a-b76b-25a8ce2b037d") 674 @TelephonyBaseTest.tel_test_wrap 675 def test_msim_voice_call_mt_csfb_3g_esim_dds_slot_1(self): 676 return self._test_msim_call_voice( 677 None, 1, 1, mt_rat=["csfb", "3g"], call_direction="mt") 678 679 680 681 682 @test_tracker_info(uuid="ef4b5c61-e9c9-4a29-8ff1-f9920ec9f4dd") 683 @TelephonyBaseTest.tel_test_wrap 684 def test_msim_voice_call_mo_3g_csfb_psim_dds_slot_0(self): 685 return self._test_msim_call_voice( 686 0, None, 0, mo_rat=["3g", "csfb"], call_direction="mo") 687 688 @test_tracker_info(uuid="0e82934d-391d-46af-9609-f59522140ea9") 689 @TelephonyBaseTest.tel_test_wrap 690 def test_msim_voice_call_mo_3g_csfb_psim_dds_slot_1(self): 691 return self._test_msim_call_voice( 692 0, None, 1, mo_rat=["3g", "csfb"], call_direction="mo") 693 694 @test_tracker_info(uuid="dab9ea2d-5370-4438-b0ee-67c68ebda024") 695 @TelephonyBaseTest.tel_test_wrap 696 def test_msim_voice_call_mt_3g_csfb_psim_dds_slot_0(self): 697 return self._test_msim_call_voice( 698 None, 0, 0, mt_rat=["3g", "csfb"], call_direction="mt") 699 700 @test_tracker_info(uuid="3ba5816e-11fe-4a39-968d-2e9853e8f47a") 701 @TelephonyBaseTest.tel_test_wrap 702 def test_msim_voice_call_mt_3g_csfb_psim_dds_slot_1(self): 703 return self._test_msim_call_voice( 704 None, 0, 1, mt_rat=["3g", "csfb"], call_direction="mt") 705 706 @test_tracker_info(uuid="e8246c60-031d-4362-94c6-ad0882511d21") 707 @TelephonyBaseTest.tel_test_wrap 708 def test_msim_voice_call_mo_3g_csfb_esim_dds_slot_0(self): 709 return self._test_msim_call_voice( 710 1, None, 0, mo_rat=["3g", "csfb"], call_direction="mo") 711 712 @test_tracker_info(uuid="db66ecb2-b09d-44be-991b-8025c6fab26a") 713 @TelephonyBaseTest.tel_test_wrap 714 def test_msim_voice_call_mo_3g_csfb_esim_dds_slot_1(self): 715 return self._test_msim_call_voice( 716 1, None, 1, mo_rat=["3g", "csfb"], call_direction="mo") 717 718 @test_tracker_info(uuid="008e990c-94e4-4adc-abaa-e328d84079a5") 719 @TelephonyBaseTest.tel_test_wrap 720 def test_msim_voice_call_mt_3g_csfb_esim_dds_slot_0(self): 721 return self._test_msim_call_voice( 722 None, 1, 0, mt_rat=["3g", "csfb"], call_direction="mt") 723 724 @test_tracker_info(uuid="0a87cbb1-96d9-4eed-b92c-745432dc4ba4") 725 @TelephonyBaseTest.tel_test_wrap 726 def test_msim_voice_call_mt_3g_csfb_esim_dds_slot_1(self): 727 return self._test_msim_call_voice( 728 None, 1, 1, mt_rat=["3g", "csfb"], call_direction="mt") 729 730 731 732 733 @test_tracker_info(uuid="5620c3c8-e847-42c1-ae4e-b3370a0b6f98") 734 @TelephonyBaseTest.tel_test_wrap 735 def test_msim_voice_call_mo_3g_psim_dds_slot_0(self): 736 return self._test_msim_call_voice( 737 0, None, 0, mo_rat=["3g", "3g"], call_direction="mo") 738 739 @test_tracker_info(uuid="a4415a1e-cd91-4a74-8f49-6c8ea428fe8f") 740 @TelephonyBaseTest.tel_test_wrap 741 def test_msim_voice_call_mo_3g_psim_dds_slot_1(self): 742 return self._test_msim_call_voice( 743 0, None, 1, mo_rat=["3g", "3g"], call_direction="mo") 744 745 @test_tracker_info(uuid="35a73981-15d7-491f-bade-42642cabbf76") 746 @TelephonyBaseTest.tel_test_wrap 747 def test_msim_voice_call_mt_3g_psim_dds_slot_0(self): 748 return self._test_msim_call_voice( 749 None, 0, 0, mt_rat=["3g", "3g"], call_direction="mt") 750 751 @test_tracker_info(uuid="e38de6bd-8f6b-4a95-8c0f-e685abc3e7ef") 752 @TelephonyBaseTest.tel_test_wrap 753 def test_msim_voice_call_mt_3g_psim_dds_slot_1(self): 754 return self._test_msim_call_voice( 755 None, 0, 1, mt_rat=["3g", "3g"], call_direction="mt") 756 757 @test_tracker_info(uuid="1c86a1cb-5bd6-404a-a38f-4619a4b641a2") 758 @TelephonyBaseTest.tel_test_wrap 759 def test_msim_voice_call_mo_3g_esim_dds_slot_0(self): 760 return self._test_msim_call_voice( 761 1, None, 0, mo_rat=["3g", "3g"], call_direction="mo") 762 763 @test_tracker_info(uuid="665736ff-206f-4c02-ae81-26f2e25d5988") 764 @TelephonyBaseTest.tel_test_wrap 765 def test_msim_voice_call_mo_3g_esim_dds_slot_1(self): 766 return self._test_msim_call_voice( 767 1, None, 1, mo_rat=["3g", "3g"], call_direction="mo") 768 769 @test_tracker_info(uuid="5e5c8f33-60e5-44be-bf69-56c7715ead41") 770 @TelephonyBaseTest.tel_test_wrap 771 def test_msim_voice_call_mt_3g_esim_dds_slot_0(self): 772 return self._test_msim_call_voice( 773 None, 1, 0, mt_rat=["3g", "3g"], call_direction="mt") 774 775 @test_tracker_info(uuid="2250b4d5-7b34-45cb-8ec2-300f4a4fbc2b") 776 @TelephonyBaseTest.tel_test_wrap 777 def test_msim_voice_call_mt_3g_esim_dds_slot_1(self): 778 return self._test_msim_call_voice( 779 None, 1, 1, mt_rat=["3g", "3g"], call_direction="mt")