| #!/usr/bin/env python3.4 |
| # |
| # Copyright 2016 - Google |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| """ |
| Test Script for Live Network Telephony Conference Call |
| """ |
| |
| import time |
| from acts import signals |
| from acts.test_decorators import test_tracker_info |
| from acts.libs.utils.multithread import multithread_func |
| from acts_contrib.test_utils.tel.TelephonyBaseTest import TelephonyBaseTest |
| from acts_contrib.test_utils.tel.tel_defines import CALL_CAPABILITY_MERGE_CONFERENCE |
| from acts_contrib.test_utils.tel.tel_defines import CALL_CAPABILITY_SWAP_CONFERENCE |
| from acts_contrib.test_utils.tel.tel_defines import CALL_STATE_ACTIVE |
| from acts_contrib.test_utils.tel.tel_defines import CAPABILITY_CONFERENCE |
| from acts_contrib.test_utils.tel.tel_defines import PHONE_TYPE_CDMA |
| from acts_contrib.test_utils.tel.tel_defines import WAIT_TIME_IN_CALL |
| from acts_contrib.test_utils.tel.tel_defines import WFC_MODE_WIFI_ONLY |
| from acts_contrib.test_utils.tel.tel_defines import WFC_MODE_WIFI_PREFERRED |
| from acts_contrib.test_utils.tel.tel_phone_setup_utils import ensure_phones_idle |
| from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_3g |
| from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_voice_2g |
| from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_voice_3g |
| from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_csfb |
| from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_iwlan |
| from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_voice_general |
| from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_volte |
| from acts_contrib.test_utils.tel.tel_ss_utils import three_phone_call_forwarding_short_seq |
| from acts_contrib.test_utils.tel.tel_ss_utils import three_phone_call_waiting_short_seq |
| from acts_contrib.test_utils.tel.tel_subscription_utils import get_outgoing_voice_sub_id |
| from acts_contrib.test_utils.tel.tel_test_utils import get_phone_number |
| from acts_contrib.test_utils.tel.tel_test_utils import install_dialer_apk |
| from acts_contrib.test_utils.tel.tel_test_utils import num_active_calls |
| from acts_contrib.test_utils.tel.tel_test_utils import verify_incall_state |
| from acts_contrib.test_utils.tel.tel_test_utils import get_capability_for_subscription |
| from acts_contrib.test_utils.tel.tel_voice_utils import call_reject |
| from acts_contrib.test_utils.tel.tel_voice_utils import call_setup_teardown |
| from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_1x |
| from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_2g |
| from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_3g |
| from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_csfb |
| from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_iwlan |
| from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_volte |
| from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_wcdma |
| from acts_contrib.test_utils.tel.tel_voice_utils import swap_calls |
| from acts_contrib.test_utils.tel.tel_voice_utils import wait_and_answer_call |
| from acts_contrib.test_utils.tel.tel_voice_conf_utils import _get_expected_call_state |
| from acts_contrib.test_utils.tel.tel_voice_conf_utils import _hangup_call |
| from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_ims_conference_merge_drop_first_call_from_host |
| from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_ims_conference_merge_drop_first_call_from_participant |
| from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_ims_conference_merge_drop_second_call_from_host |
| from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_ims_conference_merge_drop_second_call_from_participant |
| from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_call_mo_mo_add_swap_x |
| from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_call_mo_mt_add_swap_x |
| from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_call_mt_mt_add_swap_x |
| from acts_contrib.test_utils.tel.tel_voice_conf_utils import _three_phone_call_mo_add_mo |
| from acts_contrib.test_utils.tel.tel_voice_conf_utils import _three_phone_call_mo_add_mt |
| from acts_contrib.test_utils.tel.tel_voice_conf_utils import _three_phone_hangup_call_verify_call_state |
| from acts_contrib.test_utils.tel.tel_voice_conf_utils import _test_wcdma_conference_merge_drop |
| |
| class TelLiveVoiceConfTest(TelephonyBaseTest): |
| def setup_class(self): |
| TelephonyBaseTest.setup_class(self) |
| if not get_capability_for_subscription( |
| self.android_devices[0], |
| CAPABILITY_CONFERENCE, |
| get_outgoing_voice_sub_id(self.android_devices[0])): |
| self.android_devices[0].log.error( |
| "Conference call is not supported, abort test.") |
| raise signals.TestAbortClass( |
| "Conference call is not supported, abort test.") |
| |
| self.dialer_util = self.user_params.get("dialer_apk", None) |
| if isinstance(self.dialer_util, list): |
| self.dialer_util = self.dialer_util[0] |
| |
| if self.dialer_util: |
| ads = self.android_devices |
| for ad in ads: |
| install_dialer_apk(ad, self.dialer_util) |
| |
| def teardown_test(self): |
| ensure_phones_idle(self.log, self.android_devices) |
| |
| # Note: Currently Conference Call do not verify voice. |
| # So even if test cases passed, does not necessarily means |
| # conference call functionality is working. |
| # Need to add code to check for voice. |
| """ Private Test Utils """ |
| |
| def _three_phone_call_mo_add_mt_reject(self, ads, verify_funcs, reject): |
| """Use 3 phones to make MO call and MT call. |
| |
| Call from PhoneA to PhoneB, accept on PhoneB. |
| Call from PhoneC to PhoneA. PhoneA receive incoming call. |
| if reject is True, then reject the call on PhoneA. |
| if reject if False, then just ignore the incoming call on PhoneA. |
| |
| Args: |
| ads: list of ad object. |
| The list should have three objects. |
| verify_funcs: list of phone call verify functions for |
| PhoneA and PhoneB. The list should have two objects. |
| |
| Returns: |
| True if no error happened. |
| """ |
| |
| class _CallException(Exception): |
| pass |
| |
| try: |
| verify_func_a, verify_func_b = verify_funcs |
| self.log.info("Step1: Call From PhoneA to PhoneB.") |
| if not call_setup_teardown( |
| self.log, |
| ads[0], |
| ads[1], |
| ad_hangup=None, |
| verify_caller_func=verify_func_a, |
| verify_callee_func=verify_func_b): |
| raise _CallException("PhoneA call PhoneB failed.") |
| |
| self.log.info("Step2: Call From PhoneC to PhoneA then decline.") |
| if not call_reject(self.log, ads[2], ads[0], reject): |
| raise _CallException("PhoneC call PhoneA then decline failed.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1]], True): |
| raise _CallException("PhoneA and PhoneB are not in call.") |
| |
| except _CallException: |
| return False |
| |
| return True |
| |
| |
| def _test_1x_mo_mo_add(self): |
| """Test multi call feature in 1x call. |
| |
| PhoneA (1x) call PhoneB, accept on PhoneB. |
| PhoneA (1x) call PhoneC, accept on PhoneC. |
| |
| Returns: |
| call_ab_id, call_ac_id, call_conf_id if succeed; |
| None, None, None if failed. |
| |
| """ |
| ads = self.android_devices |
| |
| # make sure PhoneA is CDMA phone before proceed. |
| if (ads[0].droid.telephonyGetPhoneType() != PHONE_TYPE_CDMA): |
| raise signals.TestSkip("not CDMA phone, abort this 1x test.") |
| |
| call_ab_id = _three_phone_call_mo_add_mo(self.log, |
| [ads[0], ads[1], ads[2]], [ |
| phone_setup_voice_3g, phone_setup_voice_general, |
| phone_setup_voice_general |
| ], [is_phone_in_call_1x, None, None]) |
| if call_ab_id is None: |
| self.log.error("Failed to get call_ab_id") |
| return None, None, None |
| |
| calls = ads[0].droid.telecomCallGetCallIds() |
| ads[0].log.info("Calls in PhoneA %s", calls) |
| if num_active_calls(self.log, ads[0]) != 3: |
| return None, None, None |
| for call_id in calls: |
| if (CALL_CAPABILITY_MERGE_CONFERENCE in ads[0] |
| .droid.telecomCallGetCapabilities(call_id)): |
| call_conf_id = call_id |
| elif call_id != call_ab_id: |
| call_ac_id = call_id |
| |
| return call_ab_id, call_ac_id, call_conf_id |
| |
| |
| def _test_1x_mo_mt_add_swap_x(self, num_swaps): |
| """Test multi call feature in 1x call. |
| |
| PhoneA (1x) call PhoneB, accept on PhoneB. |
| PhoneC call PhoneA (1x), accept on PhoneA. |
| Swap active call on PhoneA.(N times) |
| |
| Returns: |
| call_ab_id, call_ac_id, call_conf_id if succeed; |
| None, None, None if failed. |
| |
| """ |
| ads = self.android_devices |
| |
| # make sure PhoneA is CDMA phone before proceed. |
| if (ads[0].droid.telephonyGetPhoneType() != PHONE_TYPE_CDMA): |
| raise signals.TestSkip("not CDMA phone, abort this 1x test.") |
| |
| call_ab_id = _three_phone_call_mo_add_mt(self.log, |
| [ads[0], ads[1], ads[2]], [ |
| phone_setup_voice_3g, phone_setup_voice_general, |
| phone_setup_voice_general |
| ], [is_phone_in_call_1x, None, None]) |
| if call_ab_id is None: |
| self.log.error("Failed to get call_ab_id") |
| return None, None, None |
| |
| call_conf_id = None |
| calls = ads[0].droid.telecomCallGetCallIds() |
| ads[0].log.info("Calls in PhoneA %s", calls) |
| if num_active_calls(self.log, ads[0]) != 3: |
| return None, None, None |
| for call_id in calls: |
| if (CALL_CAPABILITY_SWAP_CONFERENCE in ads[0] |
| .droid.telecomCallGetCapabilities(call_id)): |
| call_conf_id = call_id |
| elif call_id != call_ab_id: |
| call_ac_id = call_id |
| |
| if num_swaps > 0: |
| self.log.info("Step3: Begin Swap x%s test.", num_swaps) |
| if not swap_calls( |
| self.log, |
| ads, |
| call_ab_id, |
| call_ac_id, |
| num_swaps, |
| check_call_status=False): |
| self.log.error("Swap test failed.") |
| return None, None, None |
| |
| return call_ab_id, call_ac_id, call_conf_id |
| |
| |
| def _test_1x_mt_mt_add_swap_x(self, num_swaps): |
| """Test multi call feature in 1x call. |
| |
| PhoneB call PhoneA (1x), accept on PhoneA. |
| PhoneC call PhoneA (1x), accept on PhoneA. |
| Swap active call on PhoneA.(N times) |
| |
| Returns: |
| call_ab_id, call_ac_id, call_conf_id if succeed; |
| None, None, None if failed. |
| |
| """ |
| ads = self.android_devices |
| |
| # make sure PhoneA is CDMA phone before proceed. |
| if (ads[0].droid.telephonyGetPhoneType() != PHONE_TYPE_CDMA): |
| raise signals.TestSkip("not CDMA phone, abort this 1x test.") |
| |
| call_ab_id = self._three_phone_call_mt_add_mt( |
| [ads[0], ads[1], ads[2]], [ |
| phone_setup_voice_3g, phone_setup_voice_general, |
| phone_setup_voice_general |
| ], [is_phone_in_call_1x, None, None]) |
| if call_ab_id is None: |
| self.log.error("Failed to get call_ab_id") |
| return None, None, None |
| |
| call_conf_id = None |
| calls = ads[0].droid.telecomCallGetCallIds() |
| ads[0].log.info("Calls in PhoneA %s", calls) |
| if num_active_calls(self.log, ads[0]) != 3: |
| return None, None, None |
| for call_id in calls: |
| if (CALL_CAPABILITY_SWAP_CONFERENCE in ads[0] |
| .droid.telecomCallGetCapabilities(call_id)): |
| call_conf_id = call_id |
| elif call_id != call_ab_id: |
| call_ac_id = call_id |
| |
| if num_swaps > 0: |
| self.log.info("Step3: Begin Swap x%s test.", num_swaps) |
| if not swap_calls( |
| self.log, |
| ads, |
| call_ab_id, |
| call_ac_id, |
| num_swaps, |
| check_call_status=False): |
| self.log.error("Swap test failed.") |
| return None, None, None |
| |
| return call_ab_id, call_ac_id, call_conf_id |
| |
| |
| def _test_1x_multi_call_drop_from_participant(self, host, first_drop_ad, |
| second_drop_ad): |
| """Test private function to drop call from participant in 1x multi call. |
| |
| Host(1x) is in multi call scenario with first_drop_ad and second_drop_ad. |
| Drop call on first_drop_ad. |
| Verify call continues between host and second_drop_ad. |
| Drop call on second_drop_ad and verify host also ends. |
| |
| Args: |
| host: android device object for multi-call/conference-call host. |
| first_drop_ad: android device object for call participant, end call |
| on this participant first. |
| second_drop_ad: android device object for call participant, end call |
| on this participant second. |
| |
| Returns: |
| True if no error happened. Otherwise False. |
| """ |
| self.log.info("Drop 1st call.") |
| if not _hangup_call(self.log, first_drop_ad): |
| return False |
| time.sleep(WAIT_TIME_IN_CALL) |
| calls = host.droid.telecomCallGetCallIds() |
| host.log.info("Calls list: %s", calls) |
| if num_active_calls(self.log, host) != 3: |
| return False |
| if not verify_incall_state(self.log, [host, second_drop_ad], True): |
| return False |
| if not verify_incall_state(self.log, [first_drop_ad], False): |
| return False |
| |
| self.log.info("Drop 2nd call.") |
| if not _hangup_call(self.log, second_drop_ad): |
| return False |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state( |
| self.log, [host, second_drop_ad, first_drop_ad], False): |
| return False |
| return True |
| |
| |
| def _test_1x_multi_call_drop_from_host(self, host, active_participant_ad, |
| held_participant_ad): |
| """Test private function to drop call from host in 1x multi call. |
| |
| Host(1x) is in multi call scenario with first_drop_ad and second_drop_ad. |
| Drop call on host. Then active_participant_ad should ends as well. |
| Host should receive a call back from held_participant_ad. Answer on host. |
| Drop call on host. Then verify held_participant_ad ends as well. |
| |
| Args: |
| host: android device object for multi-call/conference-call host. |
| active_participant_ad: android device object for the current active |
| call participant. |
| held_participant_ad: android device object for the current held |
| call participant. |
| |
| Returns: |
| True if no error happened. Otherwise False. |
| """ |
| self.log.info("Drop current call on Host.") |
| if not _hangup_call(self.log, host, "Host"): |
| return False |
| if not wait_and_answer_call(self.log, host, |
| get_phone_number(self.log, |
| held_participant_ad)): |
| self.log.error("Did not receive call back.") |
| return False |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [host, held_participant_ad], |
| True): |
| return False |
| if not verify_incall_state(self.log, [active_participant_ad], False): |
| return False |
| |
| self.log.info("Drop current call on Host.") |
| if not _hangup_call(self.log, host, "Host"): |
| return False |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state( |
| self.log, [host, held_participant_ad, active_participant_ad], |
| False): |
| return False |
| return True |
| |
| |
| def _test_1x_conf_call_drop_from_host(self, host, participant_list): |
| """Test private function to drop call from host in 1x conference call. |
| |
| Host(1x) is in conference call scenario with phones in participant_list. |
| End call on host. Then all phones in participant_list should end call. |
| |
| Args: |
| host: android device object for multi-call/conference-call host. |
| participant_list: android device objects list for all other |
| participants in multi-call/conference-call. |
| |
| Returns: |
| True if no error happened. Otherwise False. |
| """ |
| self.log.info("Drop conference call on Host.") |
| if not _hangup_call(self.log, host, "Host"): |
| return False |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [host], False): |
| return False |
| if not verify_incall_state(self.log, participant_list, False): |
| return False |
| return True |
| |
| |
| def _test_1x_merge_conference(self, host, participant_list, call_conf_id): |
| """Test private function to merge to conference in 1x multi call scenario. |
| |
| Host(1x) is in multi call scenario with phones in participant_list. |
| Merge to conference on host. |
| Verify merge succeed. |
| |
| Args: |
| host: android device object for multi-call/conference-call host. |
| participant_list: android device objects list for all other |
| participants in multi-call/conference-call. |
| call_conf_id: conference call id in host android device object. |
| |
| Returns: |
| True if no error happened. Otherwise False. |
| """ |
| host.droid.telecomCallMergeToConf(call_conf_id) |
| time.sleep(WAIT_TIME_IN_CALL) |
| calls = host.droid.telecomCallGetCallIds() |
| host.log.info("Calls in Phone %s", calls) |
| if num_active_calls(self.log, host) != 3: |
| return False |
| if not verify_incall_state(self.log, [host], True): |
| return False |
| if not verify_incall_state(self.log, participant_list, True): |
| return False |
| if (CALL_CAPABILITY_MERGE_CONFERENCE in |
| host.droid.telecomCallGetCapabilities(call_conf_id)): |
| self.log.error("Merge conference failed.") |
| return False |
| return True |
| |
| """ Tests Begin """ |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="3cd45972-3862-4956-9504-7fefacdd5ca6") |
| def test_wcdma_mo_mo_add_merge_drop(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA to PhoneB, accept on PhoneB. |
| Call from PhoneA to PhoneC, accept on PhoneC. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_3g, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="c1158bd3-6327-4c91-96a7-400e69f68698") |
| def test_wcdma_mt_mt_add_merge_drop(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneB to PhoneA, accept on PhoneA. |
| Call from PhoneC to PhoneA, accept on PhoneA. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_3g, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="804478b4-a826-48be-a9fa-9a0cec66ee54") |
| def test_1x_mo_mo_add_merge_drop_from_participant(self): |
| """ Test 1x Conf Call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. Call from DUT to PhoneB, accept on PhoneB. |
| 3. Call from DUT to PhoneC, accept on PhoneC. |
| 4. On DUT, merge to conference call. |
| 5. End call PhoneC, verify call continues on DUT and PhoneB. |
| 6. End call on PhoneB, verify call end on PhoneA. |
| |
| Expected Results: |
| 4. Merge Call succeed on DUT. |
| 5. PhoneC drop call, DUT and PhoneB call continues. |
| 6. PhoneB drop call, call also end on DUT. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mo_add() |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Merge to Conf Call and verify Conf Call.") |
| if not self._test_1x_merge_conference(ads[0], [ads[1], ads[2]], |
| call_conf_id): |
| self.log.error("1x Conference merge failed.") |
| |
| self.log.info("End call on PhoneC, and end call on PhoneB.") |
| return self._test_1x_multi_call_drop_from_participant( |
| ads[0], ads[2], ads[1]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a36b02a6-480e-4cb6-9201-bd8bfa5ae8a4") |
| def test_1x_mo_mo_add_merge_drop_from_host(self): |
| """ Test 1x Conf Call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. Call from DUT to PhoneB, accept on PhoneB. |
| 3. Call from DUT to PhoneC, accept on PhoneC. |
| 4. On DUT, merge to conference call. |
| 5. End call on DUT, make sure all participants drop. |
| |
| Expected Results: |
| 4. Merge Call succeed on DUT. |
| 5. Make sure DUT and all participants drop call. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mo_add() |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Merge to Conf Call and verify Conf Call.") |
| if not self._test_1x_merge_conference(ads[0], [ads[1], ads[2]], |
| call_conf_id): |
| self.log.error("1x Conference merge failed.") |
| |
| self.log.info("End call on PhoneC, and end call on PhoneB.") |
| return self._test_1x_conf_call_drop_from_host(ads[0], [ads[2], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="0c9e5da6-90db-4cb5-9b2c-4be3460b49d0") |
| def test_1x_mo_mt_add_drop_active(self): |
| """ Test 1x MO+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. Call from DUT to PhoneB, accept on PhoneB. |
| 3. Call from PhoneC to DUT, accept on DUT. |
| 4. End call PhoneC, verify call continues on DUT and PhoneB. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Expected Results: |
| 4. PhoneC drop call, DUT and PhoneB call continues. |
| 5. PhoneB drop call, call also end on DUT. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( |
| 0) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on PhoneC, and end call on PhoneB.") |
| return self._test_1x_multi_call_drop_from_participant( |
| ads[0], ads[2], ads[1]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="9dc16b45-3470-44c8-abf8-19cd5944a53c") |
| def test_1x_mo_mt_add_swap_twice_drop_active(self): |
| """ Test 1x MO+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. DUT MO call to PhoneB, answer on PhoneB. |
| 3. PhoneC call to DUT, answer on DUT |
| 4. Swap active call on DUT. |
| 5. Swap active call on DUT. |
| 6. Drop on PhoneC. |
| 7. Drop on PhoneB. |
| |
| Expected Results: |
| 4. Swap call succeed. |
| 5. Swap call succeed. |
| 6. Call between DUT and PhoneB continues. |
| 7. All participant call end. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( |
| 2) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on PhoneC, and end call on PhoneB.") |
| return self._test_1x_multi_call_drop_from_participant( |
| ads[0], ads[2], ads[1]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="dc7a3187-142e-4754-a914-d0241397a2b3") |
| def test_1x_mo_mt_add_swap_once_drop_active(self): |
| """ Test 1x MO+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. DUT MO call to PhoneB, answer on PhoneB. |
| 3. PhoneC call to DUT, answer on DUT |
| 4. Swap active call on DUT. |
| 5. Drop on PhoneB. |
| 6. Drop on PhoneC. |
| |
| Expected Results: |
| 4. Swap call succeed. |
| 5. Call between DUT and PhoneC continues. |
| 6. All participant call end. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( |
| 1) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on PhoneB, and end call on PhoneC.") |
| return self._test_1x_multi_call_drop_from_participant( |
| ads[0], ads[1], ads[2]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="24cd0ef0-1a69-4603-89c2-0f2b96715348") |
| def test_1x_mo_mt_add_drop_held(self): |
| """ Test 1x MO+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. Call from DUT to PhoneB, accept on PhoneB. |
| 3. Call from PhoneC to DUT, accept on DUT. |
| 4. End call PhoneB, verify call continues on DUT and PhoneC. |
| 5. End call on PhoneC, verify call end on PhoneA. |
| |
| Expected Results: |
| 4. DUT drop call, PhoneC also end. Then DUT receive callback from PhoneB. |
| 5. DUT drop call, call also end on PhoneB. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( |
| 0) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on PhoneB, and end call on PhoneC.") |
| return self._test_1x_multi_call_drop_from_participant( |
| ads[0], ads[1], ads[2]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="1c5c1780-84c2-4547-9e57-eeadac6569d7") |
| def test_1x_mo_mt_add_swap_twice_drop_held(self): |
| """ Test 1x MO+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. DUT MO call to PhoneB, answer on PhoneB. |
| 3. PhoneC call to DUT, answer on DUT |
| 4. Swap active call on DUT. |
| 5. Swap active call on DUT. |
| 6. Drop on PhoneB. |
| 7. Drop on PhoneC. |
| |
| Expected Results: |
| 4. Swap call succeed. |
| 5. Swap call succeed. |
| 6. Call between DUT and PhoneC continues. |
| 7. All participant call end. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( |
| 2) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on PhoneB, and end call on PhoneC.") |
| return self._test_1x_multi_call_drop_from_participant( |
| ads[0], ads[1], ads[2]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="928a2b21-c4ca-4553-9acc-8d3db61ed6eb") |
| def test_1x_mo_mt_add_swap_once_drop_held(self): |
| """ Test 1x MO+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. DUT MO call to PhoneB, answer on PhoneB. |
| 3. PhoneC call to DUT, answer on DUT |
| 4. Swap active call on DUT. |
| 5. Drop on PhoneC. |
| 6. Drop on PhoneB. |
| |
| Expected Results: |
| 4. Swap call succeed. |
| 5. Call between DUT and PhoneB continues. |
| 6. All participant call end. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( |
| 1) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on PhoneC, and end call on PhoneB.") |
| return self._test_1x_multi_call_drop_from_participant( |
| ads[0], ads[2], ads[1]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="deb57627-a717-41f0-b8f4-f3ccf9ce2e15") |
| def test_1x_mo_mt_add_drop_on_dut(self): |
| """ Test 1x MO+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. Call from DUT to PhoneB, accept on PhoneB. |
| 3. Call from PhoneC to DUT, accept on DUT. |
| 4. End call on DUT. |
| 5. End call on DUT. |
| |
| Expected Results: |
| 4. DUT drop call, PhoneC also end. Then DUT receive callback from PhoneB. |
| 5. DUT drop call, call also end on PhoneB. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( |
| 0) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on DUT, DUT should receive callback.") |
| return self._test_1x_multi_call_drop_from_host(ads[0], ads[2], ads[1]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="9cdee9c2-98cf-40de-9396-516192e493a1") |
| def test_1x_mo_mt_add_swap_twice_drop_on_dut(self): |
| """ Test 1x MO+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. DUT MO call to PhoneB, answer on PhoneB. |
| 3. PhoneC call to DUT, answer on DUT |
| 4. Swap active call on DUT. |
| 5. Swap active call on DUT. |
| 6. Drop current call on DUT. |
| 7. Drop current call on DUT. |
| |
| Expected Results: |
| 4. Swap call succeed. |
| 5. Swap call succeed. |
| 6. DUT drop call, PhoneC also end. Then DUT receive callback from PhoneB. |
| 7. DUT drop call, call also end on PhoneB. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( |
| 2) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on DUT, DUT should receive callback.") |
| return self._test_1x_multi_call_drop_from_host(ads[0], ads[2], ads[1]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="26187827-64c0-436e-9792-20c216aeb442") |
| def test_1x_mo_mt_add_swap_once_drop_on_dut(self): |
| """ Test 1x MO+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. DUT MO call to PhoneB, answer on PhoneB. |
| 3. PhoneC call to DUT, answer on DUT |
| 4. Swap active call on DUT. |
| 5. Drop current call on DUT. |
| 6. Drop current call on DUT. |
| |
| Expected Results: |
| 4. Swap call succeed. |
| 5. DUT drop call, PhoneB also end. Then DUT receive callback from PhoneC. |
| 6. DUT drop call, call also end on PhoneC. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mo_mt_add_swap_x( |
| 1) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on DUT, DUT should receive callback.") |
| return self._test_1x_multi_call_drop_from_host(ads[0], ads[1], ads[2]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="ce590b72-b4ab-4a27-9c01-f8e3b110419f") |
| def test_1x_mt_mt_add_drop_active(self): |
| """ Test 1x MT+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. Call from PhoneB to DUT, accept on DUT. |
| 3. Call from PhoneC to DUT, accept on DUT. |
| 4. End call PhoneC, verify call continues on DUT and PhoneB. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Expected Results: |
| 4. PhoneC drop call, DUT and PhoneB call continues. |
| 5. PhoneB drop call, call also end on DUT. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( |
| 0) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on PhoneC, and end call on PhoneB.") |
| return self._test_1x_multi_call_drop_from_participant( |
| ads[0], ads[2], ads[1]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="736aa74e-1d0b-4f85-b0f7-11840543cf54") |
| def test_1x_mt_mt_add_swap_twice_drop_active(self): |
| """ Test 1x MT+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. PhoneB call to DUT, answer on DUT. |
| 3. PhoneC call to DUT, answer on DUT |
| 4. Swap active call on DUT. |
| 5. Swap active call on DUT. |
| 6. Drop on PhoneC. |
| 7. Drop on PhoneB. |
| |
| Expected Results: |
| 4. Swap call succeed. |
| 5. Swap call succeed. |
| 6. Call between DUT and PhoneB continues. |
| 7. All participant call end. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( |
| 2) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on PhoneC, and end call on PhoneB.") |
| return self._test_1x_multi_call_drop_from_participant( |
| ads[0], ads[2], ads[1]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="3eee6b6e-e1b1-43ec-82d5-d298b514fc07") |
| def test_1x_mt_mt_add_swap_once_drop_active(self): |
| """ Test 1x MT+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. PhoneB call to DUT, answer on DUT. |
| 3. PhoneC call to DUT, answer on DUT |
| 4. Swap active call on DUT. |
| 5. Drop on PhoneB. |
| 6. Drop on PhoneC. |
| |
| Expected Results: |
| 4. Swap call succeed. |
| 5. Call between DUT and PhoneC continues. |
| 6. All participant call end. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( |
| 1) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on PhoneB, and end call on PhoneC.") |
| return self._test_1x_multi_call_drop_from_participant( |
| ads[0], ads[1], ads[2]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="432549a9-e4bb-44d3-bd44-befffc1af02d") |
| def test_1x_mt_mt_add_drop_held(self): |
| """ Test 1x MT+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. Call from PhoneB to DUT, accept on DUT. |
| 3. Call from PhoneC to DUT, accept on DUT. |
| 4. End call PhoneB, verify call continues on DUT and PhoneC. |
| 5. End call on PhoneC, verify call end on PhoneA. |
| |
| Expected Results: |
| 4. PhoneB drop call, DUT and PhoneC call continues. |
| 5. PhoneC drop call, call also end on DUT. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( |
| 0) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on PhoneB, and end call on PhoneC.") |
| return self._test_1x_multi_call_drop_from_participant( |
| ads[0], ads[1], ads[2]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="c8f30fc1-8586-4eb0-854e-264989fd69b8") |
| def test_1x_mt_mt_add_swap_twice_drop_held(self): |
| """ Test 1x MT+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. PhoneB call to DUT, answer on DUT. |
| 3. PhoneC call to DUT, answer on DUT |
| 4. Swap active call on DUT. |
| 5. Swap active call on DUT. |
| 6. Drop on PhoneB. |
| 7. Drop on PhoneC. |
| |
| Expected Results: |
| 4. Swap call succeed. |
| 5. Swap call succeed. |
| 6. Call between DUT and PhoneC continues. |
| 7. All participant call end. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( |
| 2) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on PhoneB, and end call on PhoneC.") |
| return self._test_1x_multi_call_drop_from_participant( |
| ads[0], ads[1], ads[2]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="065ba51e-9843-4018-8009-7fdc6590011d") |
| def test_1x_mt_mt_add_swap_once_drop_held(self): |
| """ Test 1x MT+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. PhoneB call to DUT, answer on DUT. |
| 3. PhoneC call to DUT, answer on DUT |
| 4. Swap active call on DUT. |
| 5. Drop on PhoneC. |
| 6. Drop on PhoneB. |
| |
| Expected Results: |
| 4. Swap call succeed. |
| 5. Call between DUT and PhoneB continues. |
| 6. All participant call end. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( |
| 1) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on PhoneC, and end call on PhoneB.") |
| return self._test_1x_multi_call_drop_from_participant( |
| ads[0], ads[2], ads[1]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="69c69449-d430-4f00-ae19-c51242561ac9") |
| def test_1x_mt_mt_add_drop_on_dut(self): |
| """ Test 1x MT+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. Call from PhoneB to DUT, accept on DUT. |
| 3. Call from PhoneC to DUT, accept on DUT. |
| 4. End call on DUT. |
| 5. End call on DUT. |
| |
| Expected Results: |
| 4. DUT drop call, PhoneC also end. Then DUT receive callback from PhoneB. |
| 5. DUT drop call, call also end on PhoneB. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( |
| 0) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on DUT, DUT should receive callback.") |
| return self._test_1x_multi_call_drop_from_host(ads[0], ads[2], ads[1]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="282583a3-d455-4caf-a184-718f8bbccb91") |
| def test_1x_mt_mt_add_swap_twice_drop_on_dut(self): |
| """ Test 1x MT+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. PhoneB call to DUT, answer on DUT. |
| 3. PhoneC call to DUT, answer on DUT |
| 4. Swap active call on DUT. |
| 5. Swap active call on DUT. |
| 6. Drop current call on DUT. |
| 7. Drop current call on DUT. |
| |
| Expected Results: |
| 4. Swap call succeed. |
| 5. Swap call succeed. |
| 6. DUT drop call, PhoneC also end. Then DUT receive callback from PhoneB. |
| 7. DUT drop call, call also end on PhoneB. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( |
| 2) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on DUT, DUT should receive callback.") |
| return self._test_1x_multi_call_drop_from_host(ads[0], ads[2], ads[1]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="1cf83159-d230-41a4-842c-064be5ef11e6") |
| def test_1x_mt_mt_add_swap_once_drop_on_dut(self): |
| """ Test 1x MT+MT call among three phones. |
| |
| Steps: |
| 1. DUT in 1x idle, PhoneB and PhoneC idle. |
| 2. PhoneB call to DUT, answer on DUT. |
| 3. PhoneC call to DUT, answer on DUT |
| 4. Swap active call on DUT. |
| 5. Drop current call on DUT. |
| 6. Drop current call on DUT. |
| |
| Expected Results: |
| 4. Swap call succeed. |
| 5. DUT drop call, PhoneB also end. Then DUT receive callback from PhoneC. |
| 6. DUT drop call, call also end on PhoneC. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id, call_conf_id = self._test_1x_mt_mt_add_swap_x( |
| 1) |
| if ((call_ab_id is None) or (call_ac_id is None) |
| or (call_conf_id is None)): |
| self.log.error("Failed to setup 3 way call.") |
| return False |
| |
| self.log.info("Verify no one dropped call.") |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| self.log.info("End call on DUT, DUT should receive callback.") |
| return self._test_1x_multi_call_drop_from_host(ads[0], ads[1], ads[2]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="602db3cb-e02b-4e4c-9043-338e1231f51b") |
| def test_volte_mo_mo_add_volte_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. No CEP. |
| |
| Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. |
| Call from PhoneA (VoLTE) to PhoneC (VoLTE), accept on PhoneC. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="7c9ae738-9031-4a77-9ff7-356a186820a5") |
| def test_volte_mo_mo_add_volte_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. |
| 2. Call from PhoneA (VoLTE) to PhoneC (VoLTE), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneC, verify call continues. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f50e7e94-0956-41c4-b02b-384a12668f10") |
| def test_volte_mo_mo_add_volte_merge_drop_second_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. |
| 2. Call from PhoneA (VoLTE) to PhoneC (VoLTE), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-C, verify call continues. |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a6c22e39-fd7e-4bed-982a-145065572281") |
| def test_volte_mo_mo_add_volte_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. |
| 2. Call from PhoneA (VoLTE) to PhoneC (VoLTE), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneB, verify call continues. |
| 5. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="2188722a-31e3-4e46-8f74-6ea4cbc08476") |
| def test_volte_mo_mo_add_volte_merge_drop_first_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. |
| 2. Call from PhoneA (VoLTE) to PhoneC (VoLTE), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-B, verify call continues. |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="ef5ec1c9-7771-4289-ad94-08a80145d680") |
| def test_volte_mo_mt_add_volte_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. No CEP. |
| |
| Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. |
| Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="2111001d-c310-4eff-a6ef-201d199796ea") |
| def test_volte_mo_mt_add_volte_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. |
| 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneC, verify call continues. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="eee3577b-5427-43ee-aff0-ed7f7846b41c") |
| def test_volte_mo_mt_add_volte_merge_drop_second_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. |
| 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-C, verify call continues. |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="86faf200-be78-452d-8662-85e7f42a2d3b") |
| def test_volte_mo_mt_add_volte_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. |
| 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneB, verify call continues. |
| 5. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="d0e18f3c-71a1-49c9-b3ad-b8c24f8a43ec") |
| def test_volte_mo_mt_add_volte_merge_drop_first_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (VoLTE), accept on PhoneB. |
| 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-B, verify call continues. |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="b27d6b3d-b73b-4a20-a5ae-2990d73a07fe") |
| def test_volte_mt_mt_add_volte_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. No CEP. |
| |
| Call from PhoneB (VoLTE) to PhoneA (VoLTE), accept on PhoneA. |
| Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f66e940c-30bd-48c7-b5e2-91147fa04ba2") |
| def test_volte_mt_mt_add_volte_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneB (VoLTE) to PhoneA (VoLTE), accept on PhoneA. |
| 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneC, verify call continues. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="ad313a8b-8bb0-43eb-a10e-e2c17f530ee4") |
| def test_volte_mt_mt_add_volte_merge_drop_second_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneB (VoLTE) to PhoneA (VoLTE), accept on PhoneA. |
| 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-C, verify call continues. |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="18b30c14-fef1-4055-8987-ee6137609b81") |
| def test_volte_mt_mt_add_volte_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneB (VoLTE) to PhoneA (VoLTE), accept on PhoneA. |
| 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneB, verify call continues. |
| 5. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="7dc24162-f06e-453b-93e6-926d31e6d387") |
| def test_volte_mt_mt_add_volte_merge_drop_first_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneB (VoLTE) to PhoneA (VoLTE), accept on PhoneA. |
| 2. Call from PhoneC (VoLTE) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-B, verify call continues. |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="eb90a56b-2085-4fde-a156-ada3620200df") |
| def test_volte_mo_mo_add_wcdma_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. No CEP. |
| |
| Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. |
| Call from PhoneA (VOLTE) to PhoneC (WCDMA), accept on PhoneC. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="ae999260-7856-41cc-bf4c-67b26e18c9a3") |
| def test_volte_mo_mo_add_wcdma_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. |
| 2. Call from PhoneA (VoLTE) to PhoneC (WCDMA), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneC, verify call continues. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="cd48de00-c1e5-4716-b232-3f1f98e89510") |
| def test_volte_mo_mo_add_wcdma_merge_drop_second_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. |
| 2. Call from PhoneA (VoLTE) to PhoneC (WCDMA), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-C, verify call continues. |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a84ea6e8-dabc-4bab-b6d1-700b0a0fb9e9") |
| def test_volte_mo_mo_add_wcdma_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. |
| 2. Call from PhoneA (VoLTE) to PhoneC (WCDMA), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneB, verify call continues. |
| 5. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="7ac9a806-c608-42dd-a4fd-66b0ba535434") |
| def test_volte_mo_mo_add_wcdma_merge_drop_first_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. |
| 2. Call from PhoneA (VoLTE) to PhoneC (WCDMA), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-B, verify call continues. |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="35f9eb31-3a77-457c-aeb0-55a73c60dda1") |
| def test_volte_mo_mt_add_wcdma_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. No CEP. |
| |
| Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. |
| Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f3314f74-e929-45ed-91cb-27c1c26e240f") |
| def test_volte_mo_mt_add_wcdma_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. |
| 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneC, verify call continues. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="5e521ff1-505b-4d63-8b12-7b0187dea94b") |
| def test_volte_mo_mt_add_wcdma_merge_drop_second_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. |
| 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-C, verify call continues. |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="d5732ea2-a657-40ea-bb30-151e53cf8058") |
| def test_volte_mo_mt_add_wcdma_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. |
| 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneB, verify call continues. |
| 5. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="78e73444-3dde-465f-bf5e-dc48b40a93f3") |
| def test_volte_mo_mt_add_wcdma_merge_drop_first_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (WCDMA), accept on PhoneB. |
| 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-B, verify call continues. |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f4efbf04-b117-4508-ba86-0ef37481cc3a") |
| def test_volte_mt_mt_add_wcdma_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. No CEP. |
| |
| Call from PhoneB (WCDMA) to PhoneA (VoLTE), accept on PhoneA. |
| Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="064109cf-d166-448a-8655-81744ea37e05") |
| def test_volte_mt_mt_add_wcdma_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneB (WCDMA) to PhoneA (VoLTE), accept on PhoneA. |
| 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneC, verify call continues. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="bedd0576-5bb6-4fef-9700-f638cf742201") |
| def test_volte_mt_mt_add_wcdma_merge_drop_second_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneB (WCDMA) to PhoneA (VoLTE), accept on PhoneA. |
| 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-C, verify call continues. |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, self.android_devices, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="46178387-a0dc-4e77-8ca4-06f731e1104f") |
| def test_volte_mt_mt_add_wcdma_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneB (WCDMA) to PhoneA (VoLTE), accept on PhoneA. |
| 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneB, verify call continues. |
| 5. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a1d13168-078b-47d8-89f0-0798b085502d") |
| def test_volte_mt_mt_add_wcdma_merge_drop_first_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneB (WCDMA) to PhoneA (VoLTE), accept on PhoneA. |
| 2. Call from PhoneC (WCDMA) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-B, verify call continues. |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="08a26dc4-78e5-47cb-af75-9695453e82bb") |
| def test_volte_mo_mo_add_1x_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. No CEP. |
| |
| Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. |
| Call from PhoneA (VOLTE) to PhoneC (1x), accept on PhoneC. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="bde45028-b844-4192-89b1-8579941a03ed") |
| def test_volte_mo_mo_add_1x_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. |
| 2. Call from PhoneA (VoLTE) to PhoneC (1x), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneC, verify call continues. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f38d3031-d7f1-4990-bce3-9c329beb5eeb") |
| def test_volte_mo_mo_add_1x_merge_drop_second_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. |
| 2. Call from PhoneA (VoLTE) to PhoneC (1x), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-C, verify call continues. |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="d1391513-8592-4159-81b7-16cb10c406e8") |
| def test_volte_mo_mo_add_1x_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. |
| 2. Call from PhoneA (VoLTE) to PhoneC (1x), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneB, verify call continues. |
| 5. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return self._test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="e05c261e-e99a-4ca7-a8db-9ad982e06913") |
| def test_volte_mo_mo_add_1x_merge_drop_first_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. |
| 2. Call from PhoneA (VoLTE) to PhoneC (1x), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-B, verify call continues. |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f4329201-a388-4070-9225-37d4c8045096") |
| def test_volte_mo_mt_add_1x_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. No CEP. |
| |
| Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. |
| Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="fafa96ef-649a-4ff7-8fed-d4bfd6d88c2e") |
| def test_volte_mo_mt_add_1x_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. |
| 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneC, verify call continues. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="66d79e0b-879d-461c-bf5d-b27495f73754") |
| def test_volte_mo_mt_add_1x_merge_drop_second_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. |
| 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-C, verify call continues. |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a5f2a3d0-9b00-4496-8316-ea626b1c978a") |
| def test_volte_mo_mt_add_1x_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. |
| 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneB, verify call continues. |
| 5. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="98cfd8d8-200f-4820-94ed-1561df1ed152") |
| def test_volte_mo_mt_add_1x_merge_drop_first_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneA (VoLTE) to PhoneB (1x), accept on PhoneB. |
| 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-B, verify call continues. |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="c9ee6bb1-4aee-4fc9-95b0-f899d3d31d82") |
| def test_volte_mt_mt_add_1x_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. No CEP. |
| |
| Call from PhoneB (1x) to PhoneA (VoLTE), accept on PhoneA. |
| Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f4fb92a1-d4a0-4796-bdb4-f441b926c63c") |
| def test_volte_mt_mt_add_1x_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneB (1x) to PhoneA (VoLTE), accept on PhoneA. |
| 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneC, verify call continues. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="8ad0e672-83cc-463a-aa12-d331faa5eb17") |
| def test_volte_mt_mt_add_1x_merge_drop_second_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneB (1x) to PhoneA (VoLTE), accept on PhoneA. |
| 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-C, verify call continues. |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="3dad2fd1-d2c0-477c-a758-3c054df6e92a") |
| def test_volte_mt_mt_add_1x_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneB (1x) to PhoneA (VoLTE), accept on PhoneA. |
| 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. End call on PhoneB, verify call continues. |
| 5. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="e382469b-8767-47fd-b3e6-8c81d8fb45ef") |
| def test_volte_mt_mt_add_1x_merge_drop_first_call_from_host_cep(self): |
| """ Test VoLTE Conference Call among three phones. CEP enabled. |
| |
| 1. Call from PhoneB (1x) to PhoneA (VoLTE), accept on PhoneA. |
| 2. Call from PhoneC (1x) to PhoneA (VoLTE), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 4. On PhoneA disconnect call between A-B, verify call continues. |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="98db2430-07c2-4ec7-8644-2aa081a3eb22") |
| def test_volte_mo_mo_add_volte_swap_twice_drop_held(self): |
| """Test swap feature in VoLTE call. |
| |
| PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="7504958b-172b-4afc-97ea-9562b8429dfe") |
| def test_volte_mo_mo_add_volte_swap_twice_drop_active(self): |
| """Test swap feature in VoLTE call. |
| |
| PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="ac02ce22-fd8c-48ba-9e68-6748d1e48c68") |
| def test_volte_mo_mt_add_volte_swap_twice_drop_held(self): |
| """Test swap feature in VoLTE call. |
| |
| PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="2fb2c4f6-1c14-4122-bc3e-a7a6416003a3") |
| def test_volte_mo_mt_add_volte_swap_twice_drop_active(self): |
| """Test swap feature in VoLTE call. |
| |
| PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="deed9c13-2e9d-464a-b8f7-62e91265451d") |
| def test_volte_mo_mo_add_volte_swap_once_drop_held(self): |
| """Test swap feature in VoLTE call. |
| |
| PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="3324a4d3-68db-41a4-b0d0-3e8e82b84f46") |
| def test_volte_mo_mo_add_volte_swap_once_drop_active(self): |
| """Test swap feature in VoLTE call. |
| |
| PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="57c8c3f6-c690-41c3-aaed-98e5548cc4b6") |
| def test_volte_mo_mt_add_volte_swap_once_drop_held(self): |
| """Test swap feature in VoLTE call. |
| |
| PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="96376148-f069-41f9-b22f-f5240de427f7") |
| def test_volte_mo_mt_add_volte_swap_once_drop_active(self): |
| """Test swap feature in VoLTE call. |
| |
| PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="baac4ef4-198b-4a33-a09a-5507c6aa740d") |
| def test_wcdma_mo_mo_add_swap_twice_drop_held(self): |
| """Test swap feature in WCDMA call. |
| |
| PhoneA (WCDMA) call PhoneB, accept on PhoneB. |
| PhoneA (WCDMA) call PhoneC, accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_3g, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="8c2588ff-3857-49eb-8db0-9e76d7c99c68") |
| def test_wcdma_mo_mo_add_swap_twice_drop_active(self): |
| """Test swap feature in WCDMA call. |
| |
| PhoneA (WCDMA) call PhoneB, accept on PhoneB. |
| PhoneA (WCDMA) call PhoneC, accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_3g, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="16a6aa3c-fe68-41b4-af42-75847062d4ec") |
| def test_wcdma_mo_mt_add_swap_twice_drop_held(self): |
| """Test swap feature in WCDMA call. |
| |
| PhoneA (WCDMA) call PhoneB, accept on PhoneB. |
| PhoneC call PhoneA (WCDMA), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f38c4cd5-53b4-43d0-a5fa-2a008a96cedc") |
| def test_wcdma_mo_mt_add_swap_twice_drop_active(self): |
| """Test swap feature in WCDMA call. |
| |
| PhoneA (WCDMA) call PhoneB, accept on PhoneB. |
| PhoneC call PhoneA (WCDMA), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="734689e8-2acd-405f-be93-db62e2606252") |
| def test_wcdma_mo_mo_add_swap_once_drop_held(self): |
| """Test swap feature in WCDMA call. |
| |
| PhoneA (WCDMA) call PhoneB, accept on PhoneB. |
| PhoneA (WCDMA) call PhoneC, accept on PhoneC. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_3g, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="126f294e-590a-4392-8fbd-1b826cd97214") |
| def test_wcdma_mo_mo_add_swap_once_drop_active(self): |
| """Test swap feature in WCDMA call. |
| |
| PhoneA (WCDMA) call PhoneB, accept on PhoneB. |
| PhoneA (WCDMA) call PhoneC, accept on PhoneC. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_3g, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="e5f36f28-ec2b-4958-8578-c0454ef2a8ad") |
| def test_wcdma_mo_mt_add_swap_once_drop_held(self): |
| """Test swap feature in WCDMA call. |
| |
| PhoneA (WCDMA) call PhoneB, accept on PhoneB. |
| PhoneC call PhoneA (WCDMA), accept on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a2252ebe-3ee2-4b9e-b76b-6be68d6b2719") |
| def test_wcdma_mo_mt_add_swap_once_drop_active(self): |
| """Test swap feature in WCDMA call. |
| |
| PhoneA (WCDMA) call PhoneB, accept on PhoneB. |
| PhoneC call PhoneA (WCDMA), accept on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="cba48f87-4026-422d-a760-f913d2763ee9") |
| def test_csfb_wcdma_mo_mo_add_swap_twice_drop_held(self): |
| """Test swap feature in CSFB WCDMA call. |
| |
| PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. |
| PhoneA (CSFB WCDMA) call PhoneC, accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_csfb, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_csfb, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="3e6bd083-ccae-4962-a3d7-4194ed685b64") |
| def test_csfb_wcdma_mo_mo_add_swap_twice_drop_active(self): |
| """Test swap feature in CSFB WCDMA call. |
| |
| PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. |
| PhoneA (CSFB WCDMA) call PhoneC, accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_csfb, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_csfb, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a1972846-0bca-4583-a966-11ebf0670c04") |
| def test_csfb_wcdma_mo_mt_add_swap_twice_drop_held(self): |
| """Test swap feature in CSFB WCDMA call. |
| |
| PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. |
| PhoneC call PhoneA (CSFB WCDMA), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_csfb, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_csfb, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="98609dfd-07fb-4414-bf6e-46144205fe70") |
| def test_csfb_wcdma_mo_mt_add_swap_twice_drop_active(self): |
| """Test swap feature in CSFB WCDMA call. |
| |
| PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. |
| PhoneC call PhoneA (CSFB WCDMA), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_csfb, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_csfb, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="0c4c9b0b-ef7a-4e3d-9d31-dde721444820") |
| def test_csfb_wcdma_mo_mo_add_swap_once_drop_held(self): |
| """Test swap feature in CSFB WCDMA call. |
| |
| PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. |
| PhoneA (CSFB WCDMA) call PhoneC, accept on PhoneC. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_csfb, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_csfb, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="ee0f7772-9e58-4a00-8eb5-a03b3e5baf40") |
| def test_csfb_wcdma_mo_mo_add_swap_once_drop_active(self): |
| """Test swap feature in CSFB WCDMA call. |
| |
| PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. |
| PhoneA (CSFB WCDMA) call PhoneC, accept on PhoneC. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_csfb, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_csfb, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="2f9e0120-c052-467b-be45-313ada433dce") |
| def test_csfb_wcdma_mo_mt_add_swap_once_drop_held(self): |
| """Test swap feature in CSFB WCDMA call. |
| |
| PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. |
| PhoneC call PhoneA (CSFB WCDMA), accept on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_csfb, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_csfb, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="9110ad34-04e4-4d0f-9ac0-183ad9e6fa8a") |
| def test_csfb_wcdma_mo_mt_add_swap_once_drop_active(self): |
| """Test swap feature in CSFB WCDMA call. |
| |
| PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. |
| PhoneC call PhoneA (CSFB WCDMA), accept on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_csfb, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_csfb, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="8cca4681-a5d4-472a-b0b5-46b79a6892a7") |
| def test_volte_mo_mo_add_volte_swap_once_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. No CEP. |
| |
| PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="9168698e-987a-42e3-8bc6-2a433fa4b5e3") |
| def test_volte_mo_mo_add_volte_swap_once_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneC, verify call continues. |
| 6. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="397bfab8-6651-4438-a603-22657fd69b84") |
| def test_volte_mo_mo_add_volte_swap_once_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, self.android_devices, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="ba766c4c-690f-407b-87f8-05a91783e224") |
| def test_volte_mo_mo_add_volte_swap_once_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneB, verify call continues. |
| 6. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="1e45c749-6d4c-4d30-b104-bfcc37e13f1d") |
| def test_volte_mo_mo_add_volte_swap_once_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="d6648e19-8001-483a-a83b-a92b638a7650") |
| def test_volte_mo_mo_add_volte_swap_twice_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. No CEP. |
| |
| PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="18d3c304-ad04-409f-bfd4-fd3f01f9a51e") |
| def test_volte_mo_mo_add_volte_swap_twice_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneC, verify call continues. |
| 7. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f1e71550-3a45-45e4-88e4-7e4da919d58e") |
| def test_volte_mo_mo_add_volte_swap_twice_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| 7. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="60cc8bd1-4270-4b5c-9d29-9fa36a357503") |
| def test_volte_mo_mo_add_volte_swap_twice_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneB, verify call continues. |
| 7. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="7d81c5f8-5ee1-4ad2-b08e-3e4c97748a66") |
| def test_volte_mo_mo_add_volte_swap_twice_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (VoLTE), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| 7. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="5a887fde-8f9b-436b-ae8d-5ff97a884fc9") |
| def test_volte_mo_mt_add_volte_swap_once_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. No CEP. |
| |
| PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="82574508-0d77-42cf-bf60-9fdddee24c42") |
| def test_volte_mo_mt_add_volte_swap_once_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneC, verify call continues. |
| 6. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="8f30c425-c689-43b8-84f3-f24f7d9216f6") |
| def test_volte_mo_mt_add_volte_swap_once_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, self.android_devices, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="2a67845f-ccfd-4c06-aedc-9d6c1f022959") |
| def test_volte_mo_mt_add_volte_swap_once_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneB, verify call continues. |
| 6. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="0a5d1305-0890-40c4-8c7a-070876423e16") |
| def test_volte_mo_mt_add_volte_swap_once_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="77bbb5ec-fd16-4031-b316-7f6563b79a3d") |
| def test_volte_mo_mt_add_volte_swap_twice_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. No CEP. |
| |
| PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="09cd41cd-821d-4d09-9b1e-7330dca77150") |
| def test_volte_mo_mt_add_volte_swap_twice_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneC, verify call continues. |
| 7. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="bdb2791e-92d0-44a3-aa8f-bd83e8159cb7") |
| def test_volte_mo_mt_add_volte_swap_twice_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| 7. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="4f54e67d-7c7a-4952-ae09-f940094ec1ff") |
| def test_volte_mo_mt_add_volte_swap_twice_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneB, verify call continues. |
| 7. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="4ca28f9f-098f-4f71-b89c-9b2793aa2f5f") |
| def test_volte_mo_mt_add_volte_swap_twice_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (VoLTE), accept on PhoneB. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| 7. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f025c100-bb77-436e-b8ab-0c23a3d43318") |
| def test_volte_mt_mt_add_volte_swap_once_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. No CEP. |
| |
| PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="b6cd6b06-0984-4588-892e-939d332bf147") |
| def test_volte_mt_mt_add_volte_swap_once_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneC, verify call continues. |
| 6. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f7bda827-79bd-41cc-b720-140f49b381d9") |
| def test_volte_mt_mt_add_volte_swap_once_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="de8aae4e-c8fc-4996-9d0b-56c3904c9bb4") |
| def test_volte_mt_mt_add_volte_swap_once_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneB, verify call continues. |
| 6. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="35d72ebf-1a99-4571-8993-2899925f5489") |
| def test_volte_mt_mt_add_volte_swap_once_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="96c4c9d2-2e00-41a8-b4ce-3a9377262d36") |
| def test_volte_mt_mt_add_volte_swap_twice_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. No CEP. |
| |
| PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="e1e0bb6c-c2d5-4566-80b1-46bfb0b95544") |
| def test_volte_mt_mt_add_volte_swap_twice_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneC, verify call continues. |
| 7. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="764b5930-ba96-4901-b629-e753bc5c8d8e") |
| def test_volte_mt_mt_add_volte_swap_twice_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| 7. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="e03e52a1-7e7b-4a53-a496-3092a35153ae") |
| def test_volte_mt_mt_add_volte_swap_twice_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneB, verify call continues. |
| 7. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="10a63692-56de-4563-b223-91e8814ddbc9") |
| def test_volte_mt_mt_add_volte_swap_twice_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (VoLTE) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| 7. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_volte, |
| phone_setup_c=phone_setup_volte, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="cf4b1fe2-40d7-409b-a4ec-06bdb9a0d957") |
| def test_volte_mo_mo_add_wcdma_swap_once_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. No CEP. |
| |
| PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="fcc9dbd2-919d-4552-838c-2b672fb24b2b") |
| def test_volte_mo_mo_add_wcdma_swap_once_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneC, verify call continues. |
| 6. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="37021d31-4242-46a2-adbf-eb7b987e4a43") |
| def test_volte_mo_mo_add_wcdma_swap_once_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="cc362118-ccd1-4502-96f1-b3584b0c6bf3") |
| def test_volte_mo_mo_add_wcdma_swap_once_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneB, verify call continues. |
| 6. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="be57dd4f-020f-4491-9cd0-2461dcd0806b") |
| def test_volte_mo_mo_add_wcdma_swap_once_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="058425ca-7b25-4a85-a5c7-bfdcd7920f15") |
| def test_volte_mo_mo_add_wcdma_swap_twice_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. No CEP. |
| |
| PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="5f691165-d099-419d-a50e-1547c8677f6b") |
| def test_volte_mo_mo_add_wcdma_swap_twice_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneC, verify call continues. |
| 7. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="4fc8459e-23c6-408a-a061-e8f182086dd6") |
| def test_volte_mo_mo_add_wcdma_swap_twice_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| 7. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="3026802f-ddca-41e4-ae6f-db0c994613a7") |
| def test_volte_mo_mo_add_wcdma_swap_twice_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneB, verify call continues. |
| 7. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="5ce98774-66b4-4710-b0da-e43bb7fa1c0f") |
| def test_volte_mo_mo_add_wcdma_swap_twice_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (WCDMA), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| 7. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="61766517-8762-4db3-9366-609c0f1a43b5") |
| def test_volte_mo_mt_add_wcdma_swap_once_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. No CEP. |
| |
| PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="9a809168-1ca4-4672-a5b3-934aeed0f06c") |
| def test_volte_mo_mt_add_wcdma_swap_once_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneC, verify call continues. |
| 6. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="4a146608-fbc7-4828-b2ee-77e08c19ddec") |
| def test_volte_mo_mt_add_wcdma_swap_once_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="4a3d4c0b-912a-4922-a4a3-f0bdf600c376") |
| def test_volte_mo_mt_add_wcdma_swap_once_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneB, verify call continues. |
| 6. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="614903e0-7091-4791-9af6-076799e43a97") |
| def test_volte_mo_mt_add_wcdma_swap_once_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="cea2ffc9-b8c8-46df-8f58-b606f3d352e2") |
| def test_volte_mo_mt_add_wcdma_swap_twice_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. No CEP. |
| |
| PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="4b0e040a-f199-4dc4-9f98-eb923f79814e") |
| def test_volte_mo_mt_add_wcdma_swap_twice_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneC, verify call continues. |
| 7. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="56d45561-8e9b-40d4-bacc-a4c5ac4c2af0") |
| def test_volte_mo_mt_add_wcdma_swap_twice_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| 7. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="790ccd53-07e6-471b-a224-b7eeb3a83116") |
| def test_volte_mo_mt_add_wcdma_swap_twice_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneB, verify call continues. |
| 7. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="84083401-22af-4568-929a-4fd29e39db5c") |
| def test_volte_mo_mt_add_wcdma_swap_twice_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (WCDMA), accept on PhoneB. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| 7. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="11a3d9cd-6f05-4638-9683-3ee475e41fdb") |
| def test_volte_mt_mt_add_wcdma_swap_once_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. No CEP. |
| |
| PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="ff03b64e-fccd-45e3-8245-f8c6cb328212") |
| def test_volte_mt_mt_add_wcdma_swap_once_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneC, verify call continues. |
| 6. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="c1822404-df8e-4b0c-b5d2-f70bb8c3119d") |
| def test_volte_mt_mt_add_wcdma_swap_once_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="3ebf7526-57f9-47f5-9196-b483384d6759") |
| def test_volte_mt_mt_add_wcdma_swap_once_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneB, verify call continues. |
| 6. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="8b8e664d-e872-493f-bff9-34a9500b2c25") |
| def test_volte_mt_mt_add_wcdma_swap_once_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="aa4079dd-b5c6-41a3-ae0f-99f17fd0bae0") |
| def test_volte_mt_mt_add_wcdma_swap_twice_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test VoLTE Conference Call among three phones. No CEP. |
| |
| PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="d9f32013-529c-46c3-9963-405ebbdbc537") |
| def test_volte_mt_mt_add_wcdma_swap_twice_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneC, verify call continues. |
| 7. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="93331954-4403-47ec-8af3-1a791ea2fc8b") |
| def test_volte_mt_mt_add_wcdma_swap_twice_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| 7. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="c5a47e45-166b-46db-8b12-734d5d062509") |
| def test_volte_mt_mt_add_wcdma_swap_twice_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneB, verify call continues. |
| 7. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="05bff9cf-492d-4511-ac0e-b54f1d5fa454") |
| def test_volte_mt_mt_add_wcdma_swap_twice_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (WCDMA) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| 7. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f02add29-d61a-42f4-a1f0-271815e03c45") |
| def test_volte_mo_mo_add_1x_swap_once_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. No CEP. |
| |
| PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="776821e8-259b-441e-a126-45a990e6e14d") |
| def test_volte_mo_mo_add_1x_swap_once_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneC, verify call continues. |
| 6. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="c542c999-d1c7-47f9-ba5c-50a582afa9e5") |
| def test_volte_mo_mo_add_1x_swap_once_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="d40c681a-1bce-4012-a30c-774e6698ba3a") |
| def test_volte_mo_mo_add_1x_swap_once_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneB, verify call continues. |
| 6. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="2805f272-5ada-4dd4-916a-36070905aec4") |
| def test_volte_mo_mo_add_1x_swap_once_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="eb2d010c-ec32-409b-8272-5b950e0076f9") |
| def test_volte_mo_mo_add_1x_swap_twice_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. No CEP. |
| |
| PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="03bb2fa3-8596-4c66-8adb-a3f9c9085420") |
| def test_volte_mo_mo_add_1x_swap_twice_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneC, verify call continues. |
| 7. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="df3bb0e7-7d72-487a-8cb8-fa75b86662ef") |
| def test_volte_mo_mo_add_1x_swap_twice_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| 7. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="3893ce25-0fad-4eb8-af35-f9ebf47c0615") |
| def test_volte_mo_mo_add_1x_swap_twice_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneB, verify call continues. |
| 7. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="fcd0e656-4e98-40f2-b0ce-5ed90c7c4a81") |
| def test_volte_mo_mo_add_1x_swap_twice_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneA (VoLTE) call PhoneC (1x), accept on PhoneC. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| 7. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="009b5b45-d863-4891-8403-06656b542f3d") |
| def test_volte_mo_mt_add_1x_swap_once_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. No CEP. |
| |
| PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="8cfe9354-70db-4dbb-8950-b02e65f9d6ba") |
| def test_volte_mo_mt_add_1x_swap_once_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneC, verify call continues. |
| 6. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="d2502a9f-b35a-4390-b664-300b8310b55a") |
| def test_volte_mo_mt_add_1x_swap_once_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="1fbddcd1-2268-4c2c-a737-c0bcbdc842cb") |
| def test_volte_mo_mt_add_1x_swap_once_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneB, verify call continues. |
| 6. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="91a33ca8-508b-457e-a72f-6fabd00b2453") |
| def test_volte_mo_mt_add_1x_swap_once_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="3642995f-4de0-4327-86d6-c9e37416c7e7") |
| def test_volte_mo_mt_add_1x_swap_twice_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. No CEP. |
| |
| PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="dd11f3af-09af-4fa3-9c90-8497bbd8687e") |
| def test_volte_mo_mt_add_1x_swap_twice_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneC, verify call continues. |
| 7. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="172360a1-47b2-430a-8a9c-cae6d29813b6") |
| def test_volte_mo_mt_add_1x_swap_twice_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| 7. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="05d63cef-45b6-47df-8999-aac2e6ecfc9f") |
| def test_volte_mo_mt_add_1x_swap_twice_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneB, verify call continues. |
| 7. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="e02dfbc5-ffa3-4bff-a45e-1b3f4147005e") |
| def test_volte_mo_mt_add_1x_swap_twice_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneA (VoLTE) call PhoneB (1x), accept on PhoneB. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| 7. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="55bb85a0-bfbd-4b97-bd94-871e82276875") |
| def test_volte_mt_mt_add_1x_swap_once_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. No CEP. |
| |
| PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. |
| PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="31e71818-3522-4e04-8f26-ad26683f16d1") |
| def test_volte_mt_mt_add_1x_swap_once_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneC, verify call continues. |
| 6. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="0b51183d-3f92-4fe8-9487-64a72696a838") |
| def test_volte_mt_mt_add_1x_swap_once_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="2aee2db7-fcd0-4b0a-aaa0-b946a14e91bd") |
| def test_volte_mt_mt_add_1x_swap_once_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. End call on PhoneB, verify call continues. |
| 6. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="d78bbe8e-6d39-4843-9eaa-47f06b6e9a95") |
| def test_volte_mt_mt_add_1x_swap_once_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="bbf4dcd8-3e1d-4ad0-a4fd-bf875e409f15") |
| def test_volte_mt_mt_add_1x_swap_twice_merge_drop_second_call_from_participant_no_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. No CEP. |
| |
| PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. |
| PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| On PhoneA, merge to conference call (No CEP). |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="c222e199-497b-4c34-886d-b35592ccd3b2") |
| def test_volte_mt_mt_add_1x_swap_twice_merge_drop_second_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneC, verify call continues. |
| 7. End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="d916eef5-b942-48fe-9c63-be7e283b197d") |
| def test_volte_mt_mt_add_1x_swap_twice_merge_drop_second_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-C, verify call continues. |
| 7. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, self.android_devices, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="e34acc9d-4389-4bc3-b34d-6b7e8173cadf") |
| def test_volte_mt_mt_add_1x_swap_twice_merge_drop_first_call_from_participant_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. End call on PhoneB, verify call continues. |
| 7. End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| hone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="31ddc496-03a5-407f-b925-8cea04dbdae0") |
| def test_volte_mt_mt_add_1x_swap_twice_merge_drop_first_call_from_host_cep( |
| self): |
| """ Test swap and merge features in VoLTE call. CEP enabled. |
| |
| 1. PhoneB (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 2. PhoneC (1x) call PhoneA (VoLTE), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. Swap active call on PhoneA. |
| 5. On PhoneA, merge to conference call (VoLTE CEP conference call). |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| 7. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_volte, |
| phone_setup_b=phone_setup_voice_3g, |
| phone_setup_c=phone_setup_voice_3g, |
| verify_phone_a_network_subscription=is_phone_in_call_volte, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="35b6fa0f-780f-4436-93a0-70f9b79bc71a") |
| def test_csfb_wcdma_mo_mo_add_swap_once_merge_drop(self): |
| """Test swap and merge feature in CSFB WCDMA call. |
| |
| PhoneA (CSFB_WCDMA) call PhoneB, accept on PhoneB. |
| PhoneA (CSFB_WCDMA) call PhoneC, accept on PhoneC. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_csfb, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_csfb, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="9102ce81-0c17-4c7a-93df-f240245a07c5") |
| def test_csfb_wcdma_mo_mo_add_swap_twice_merge_drop(self): |
| """Test swap and merge feature in CSFB WCDMA call. |
| |
| PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. |
| PhoneA (CSFB WCDMA) call PhoneC, accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_csfb, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_csfb, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="b85ff5a7-f512-4585-a6b1-d92c9e7c25de") |
| def test_csfb_wcdma_mo_mt_add_swap_once_merge_drop(self): |
| """Test swap and merge feature in CSFB WCDMA call. |
| |
| PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. |
| PhoneC call PhoneA (CSFB WCDMA), accept on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_csfb, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_csfb, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="83a74ce1-9028-4e67-a417-599616ab0b2c") |
| def test_csfb_wcdma_mo_mt_add_swap_twice_merge_drop(self): |
| """Test swap and merge feature in CSFB WCDMA call. |
| |
| PhoneA (CSFB WCDMA) call PhoneB, accept on PhoneB. |
| PhoneC call PhoneA (CSFB WCDMA), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_csfb, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_csfb, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="835fe3d6-4e44-451c-9c5f-277b8842bf10") |
| def test_wcdma_mo_mo_add_swap_once_merge_drop(self): |
| """Test swap and merge feature in WCDMA call. |
| |
| PhoneA (WCDMA) call PhoneB, accept on PhoneB. |
| PhoneA (WCDMA) call PhoneC, accept on PhoneC. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_3g, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="627eb239-c6f6-47dc-b4cf-8d1796599417") |
| def test_wcdma_mo_mo_add_swap_twice_merge_drop(self): |
| """Test swap and merge feature in WCDMA call. |
| |
| PhoneA (WCDMA) call PhoneB, accept on PhoneB. |
| PhoneA (WCDMA) call PhoneC, accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_3g, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="571efb21-0ed5-4871-a7d8-f86d94e0ef25") |
| def test_wcdma_mo_mt_add_swap_once_merge_drop(self): |
| """Test swap and merge feature in WCDMA call. |
| |
| PhoneA (WCDMA) call PhoneB, accept on PhoneB. |
| PhoneC call PhoneA (WCDMA), accept on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="c981a90a-19b8-4582-a07c-1e9447fbe9ae") |
| def test_wcdma_mo_mt_add_swap_twice_merge_drop(self): |
| """Test swap and merge feature in WCDMA call. |
| |
| PhoneA (WCDMA) call PhoneB, accept on PhoneB. |
| PhoneC call PhoneA (WCDMA), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="23843881-320b-4071-bbc8-93cd1ee08408") |
| def test_wcdma_mt_mt_add_swap_once_merge_drop(self): |
| """Test swap and merge feature in WCDMA call. |
| |
| PhoneB call PhoneA (WCDMA), accept on PhoneA. |
| PhoneC call PhoneA (WCDMA), accept on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_3g, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="e447ec45-016c-4723-a954-4bde2e342cb2") |
| def test_wcdma_mt_mt_add_swap_twice_merge_drop(self): |
| """Test swap and merge feature in WCDMA call. |
| |
| PhoneB call PhoneA (WCDMA), accept on PhoneA. |
| PhoneC call PhoneA (WCDMA), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_3g, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_wcdma_conference_merge_drop(self.log, ads, call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="876dc6b2-75c2-4fb5-92a0-35d3d29fbd42") |
| def test_wcdma_mt_mt_add_merge_unmerge_swap_drop(self): |
| """Test Conference Call Unmerge operation. |
| |
| Phones A, B, C are in WCDMA Conference call (MT-MT-Merge) |
| Unmerge call with B on PhoneA |
| Check the number of Call Ids to be 2 on PhoneA |
| Check if call AB is active since 'B' was unmerged |
| Swap call to C |
| Check if call AC is active |
| Tear down calls |
| All Phones should be in Idle |
| |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_voice_3g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_3g, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| self.log.error("Either of Call AB ID or Call AC ID is None.") |
| return False |
| |
| self.log.info("Step4: Merge to Conf Call and verify Conf Call.") |
| ads[0].droid.telecomCallJoinCallsInConf(call_ab_id, call_ac_id) |
| time.sleep(WAIT_TIME_IN_CALL) |
| calls = ads[0].droid.telecomCallGetCallIds() |
| ads[0].log.info("Calls in PhoneA %s", calls) |
| if num_active_calls(self.log, ads[0]) != 3: |
| ads[0].log.error("Total number of call ids is not 3.") |
| return False |
| call_conf_id = None |
| for call_id in calls: |
| if call_id != call_ab_id and call_id != call_ac_id: |
| call_conf_id = call_id |
| if not call_conf_id: |
| self.log.error("Merge call fail, no new conference call id.") |
| return False |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| # Check if Conf Call currently active |
| if ads[0].droid.telecomCallGetCallState( |
| call_conf_id) != CALL_STATE_ACTIVE: |
| ads[0].log.error( |
| "Call_id: %s, state: %s, expected: STATE_ACTIVE", call_conf_id, |
| ads[0].droid.telecomCallGetCallState(call_conf_id)) |
| return False |
| |
| # Unmerge |
| self.log.info("Step5: UnMerge Conf Call into individual participants.") |
| ads[0].droid.telecomCallSplitFromConf(call_ab_id) |
| time.sleep(WAIT_TIME_IN_CALL) |
| calls = ads[0].droid.telecomCallGetCallIds() |
| ads[0].log.info("Calls in PhoneA %s", calls) |
| |
| # Are there 2 calls? |
| if num_active_calls(self.log, ads[0]) != 2: |
| ads[0].log.error("Total number of call ids is not 2") |
| return False |
| |
| # Unmerged calls not dropped? |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| self.log.error("Either Call_AB or Call_AC was dropped") |
| return False |
| |
| # Unmerged call in call state ACTIVE? |
| if ads[0].droid.telecomCallGetCallState( |
| call_ab_id) != CALL_STATE_ACTIVE: |
| ads[0].log.error("Call_id: %s, state:%s, expected: STATE_ACTIVE", |
| call_ab_id, |
| ads[0].droid.telecomCallGetCallState(call_ab_id)) |
| return False |
| |
| # Swap call |
| self.log.info("Step6: Swap call and see if Call_AC is ACTIVE.") |
| num_swaps = 1 |
| if not swap_calls(self.log, ads, call_ac_id, call_ab_id, num_swaps): |
| self.log.error("Failed to swap calls.") |
| return False |
| |
| # Other call in call state ACTIVE? |
| if ads[0].droid.telecomCallGetCallState( |
| call_ac_id) != CALL_STATE_ACTIVE: |
| ads[0].log.error("Call_id: %s, state: %s, expected: STATE_ACTIVE", |
| call_ac_id, |
| ads[0].droid.telecomCallGetCallState(call_ac_id)) |
| return False |
| |
| # All calls still CONNECTED? |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="63da439e-23f3-4c3c-9e7e-3af6500342c5") |
| def test_epdg_mo_mo_add_epdg_merge_drop_wfc_wifi_only(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (epdg), accept on PhoneB. |
| Call from PhoneA (epdg) to PhoneC (epdg), accept on PhoneC. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="89b9f228-97a6-4e5c-96b9-a7f87d847c22") |
| def test_epdg_mo_mo_add_epdg_merge_drop_wfc_wifi_preferred(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (epdg), accept on PhoneB. |
| Call from PhoneA (epdg) to PhoneC (epdg), accept on PhoneC. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="2c6dc281-59b0-4ea4-b811-e4c3a4d654ab") |
| def test_epdg_mo_mt_add_epdg_merge_drop_wfc_wifi_only(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (epdg), accept on PhoneB. |
| Call from PhoneC (epdg) to PhoneA (epdg), accept on PhoneA. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f6727241-b727-4eb8-8c0d-f61d3a14a635") |
| def test_epdg_mo_mt_add_epdg_merge_drop_wfc_wifi_preferred(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (epdg), accept on PhoneB. |
| Call from PhoneC (epdg) to PhoneA (epdg), accept on PhoneA. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="c9e54db0-2b0b-428b-ba63-619ad0b8637b") |
| def test_epdg_mt_mt_add_epdg_merge_drop_wfc_wifi_only(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneB (epdg) to PhoneA (epdg), accept on PhoneA. |
| Call from PhoneC (epdg) to PhoneA (epdg), accept on PhoneA. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a478cc82-d95c-43fc-9735-d8333b8937e2") |
| def test_epdg_mt_mt_add_epdg_merge_drop_wfc_wifi_preferred(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneB (epdg) to PhoneA (epdg), accept on PhoneA. |
| Call from PhoneC (epdg) to PhoneA (epdg), accept on PhoneA. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="b1acb263-1481-44a5-b18e-58bdeff7bc1e") |
| def test_epdg_mo_mo_add_volte_merge_drop_wfc_wifi_only(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (VoLTE), accept on PhoneB. |
| Call from PhoneA (epdg) to PhoneC (VoLTE), accept on PhoneC. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, |
| (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="03b8a0d2-80dd-465a-ad14-5db94cdbcc53") |
| def test_epdg_mo_mo_add_volte_merge_drop_wfc_wifi_preferred(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (VoLTE), accept on PhoneB. |
| Call from PhoneA (epdg) to PhoneC (VoLTE), accept on PhoneC. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, |
| (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="9eb1a816-1e2c-41da-b083-2026163a3893") |
| def test_epdg_mo_mt_add_volte_merge_drop_wfc_wifi_only(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (VoLTE), accept on PhoneB. |
| Call from PhoneC (VoLTE) to PhoneA (epdg), accept on PhoneA. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, |
| (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="3d66a1b6-916f-4221-bd99-21ff4d40ebb8") |
| def test_epdg_mo_mt_add_volte_merge_drop_wfc_wifi_preferred(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (VoLTE), accept on PhoneB. |
| Call from PhoneC (VoLTE) to PhoneA (epdg), accept on PhoneA. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, |
| (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="9d8e8b2f-e2b9-4607-8c54-6233b3096123") |
| def test_epdg_mo_mo_add_wcdma_merge_drop_wfc_wifi_only(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (WCDMA), accept on PhoneB. |
| Call from PhoneA (epdg) to PhoneC (WCDMA), accept on PhoneC. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="0884206b-2471-4a7e-95aa-228379416ff8") |
| def test_epdg_mo_mo_add_wcdma_merge_drop_wfc_wifi_preferred(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (WCDMA), accept on PhoneB. |
| Call from PhoneA (epdg) to PhoneC (WCDMA), accept on PhoneC. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="c7706af6-dc77-4002-b295-66c60aeace6b") |
| def test_epdg_mo_mt_add_wcdma_merge_drop_wfc_wifi_only(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (WCDMA), accept on PhoneB. |
| Call from PhoneC (WCDMA) to PhoneA (epdg), accept on PhoneA. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="b079618f-e32b-4ba0-9009-06e013805c39") |
| def test_epdg_mo_mt_add_wcdma_merge_drop_wfc_wifi_preferred(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (WCDMA), accept on PhoneB. |
| Call from PhoneC (WCDMA) to PhoneA (epdg), accept on PhoneA. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="571fe98b-354f-4038-8441-0e4b1840eb7a") |
| def test_epdg_mo_mo_add_1x_merge_drop_wfc_wifi_only(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (1x), accept on PhoneB. |
| Call from PhoneA (epdg) to PhoneC (1x), accept on PhoneC. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="8f531f3c-493e-43d6-9d6d-f4990b5feba4") |
| def test_epdg_mo_mo_add_1x_merge_drop_wfc_wifi_preferred(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (1x), accept on PhoneB. |
| Call from PhoneA (epdg) to PhoneC (1x), accept on PhoneC. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="00e1194b-3c06-46c4-8764-0339c0aa9f9e") |
| def test_epdg_mo_mt_add_1x_merge_drop_wfc_wifi_only(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (1x), accept on PhoneB. |
| Call from PhoneC (1x) to PhoneA (epdg), accept on PhoneA. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="c94f6444-d265-4277-9555-57041e3c4ff4") |
| def test_epdg_mo_mt_add_1x_merge_drop_wfc_wifi_preferred(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA (epdg) to PhoneB (1x), accept on PhoneB. |
| Call from PhoneC (1x) to PhoneA (epdg), accept on PhoneA. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="0980745e-dcdc-4c56-84e3-e2ee076059ee") |
| def test_epdg_mo_mo_add_epdg_swap_once_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="6bf0b152-fb1c-4edc-9525-b39e8640b967") |
| def test_epdg_mo_mo_add_epdg_swap_once_merge_drop_wfc_wifi_preferred(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="e3013df6-98ca-4318-85ba-04011ba0a24f") |
| def test_epdg_mo_mo_add_epdg_swap_twice_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="e88bf042-8799-44c7-bc50-66ac1e1fb2ac") |
| def test_epdg_mo_mo_add_epdg_swap_twice_merge_drop_wfc_wifi_preferred( |
| self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a8302e73-82a4-4409-b038-5c604fb4c66c") |
| def test_epdg_mo_mt_add_epdg_swap_once_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="80f69baf-1649-4858-b35c-b25baf79b42c") |
| def test_epdg_mo_mt_add_epdg_swap_once_merge_drop_wfc_wifi_preferred(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="1ac0c067-49fb-41d9-8649-cc709bdd8926") |
| def test_epdg_mo_mt_add_epdg_swap_twice_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="b20b1a94-048c-4f10-9261-dde79e1edb00") |
| def test_epdg_mo_mt_add_epdg_swap_twice_merge_drop_wfc_wifi_preferred( |
| self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="402b175f-1510-4e2a-97c2-7c9ea5ce40f6") |
| def test_epdg_mo_mo_add_volte_swap_once_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (VoLTE), accept on PhoneC. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, |
| (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="7c710fbf-4b77-4b46-9719-e17b3d047cfc") |
| def test_epdg_mo_mo_add_volte_swap_once_merge_drop_wfc_wifi_preferred( |
| self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (VoLTE), accept on PhoneC. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, |
| (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="642afbac-30c1-4dbf-bf3e-758ab6c3a306") |
| def test_epdg_mo_mo_add_volte_swap_twice_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (VoLTE), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, |
| (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a4ae1e39-ed6d-412e-b821-321c715a5d47") |
| def test_epdg_mo_mo_add_volte_swap_twice_merge_drop_wfc_wifi_preferred( |
| self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (VoLTE), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, |
| (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="7b8431f2-8a49-4aa9-b84d-77f16a6a2c30") |
| def test_epdg_mo_mt_add_volte_swap_once_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneC (VoLTE) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, |
| (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="5b4d7444-32a1-4e82-8847-1c4ae002edca") |
| def test_epdg_mo_mt_add_volte_swap_once_merge_drop_wfc_wifi_preferred( |
| self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneC (VoLTE) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, |
| (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="88c6c179-0b56-4d03-b5e4-76a147a40995") |
| def test_epdg_mo_mt_add_volte_swap_twice_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneC (VoLTE) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, |
| (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="7f744ab3-f919-4a7a-83ce-e38487d619cc") |
| def test_epdg_mo_mt_add_volte_swap_twice_merge_drop_wfc_wifi_preferred( |
| self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (VoLTE), accept on PhoneB. |
| PhoneC (VoLTE) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_volte, (self.log, ads[1])), (phone_setup_volte, |
| (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_volte, |
| verify_phone_c_network_subscription=is_phone_in_call_volte) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="5c861a99-a1b8-45fc-ba67-f8fde4575efc") |
| def test_epdg_mo_mo_add_wcdma_swap_once_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (WCDMA), accept on PhoneC. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="fdb32a13-302c-4c1c-a77e-f78ed7e90911") |
| def test_epdg_mo_mo_add_wcdma_swap_once_merge_drop_wfc_wifi_preferred( |
| self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (WCDMA), accept on PhoneC. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a2cf3366-ae66-4e8f-a682-df506173f282") |
| def test_epdg_mo_mo_add_wcdma_swap_twice_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (WCDMA), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="fc5f0f1c-9610-4d0f-adce-9c8db351e7da") |
| def test_epdg_mo_mo_add_wcdma_swap_twice_merge_drop_wfc_wifi_preferred( |
| self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (WCDMA), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="05332b1e-c36b-4874-b13b-f8e49d0d9bca") |
| def test_epdg_mo_mt_add_wcdma_swap_once_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. |
| PhoneC (WCDMA) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="2421d340-f9cb-47e7-ac3e-8581e141a6d0") |
| def test_epdg_mo_mt_add_wcdma_swap_once_merge_drop_wfc_wifi_preferred( |
| self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. |
| PhoneC (WCDMA) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="7c1f6008-cf59-4e63-9285-3cf1c26bc0aa") |
| def test_epdg_mo_mt_add_wcdma_swap_twice_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. |
| PhoneC (WCDMA) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="be153f3d-0707-45d0-9ddd-4aa696e0e536") |
| def test_epdg_mo_mt_add_wcdma_swap_twice_merge_drop_wfc_wifi_preferred( |
| self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (WCDMA), accept on PhoneB. |
| PhoneC (WCDMA) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_wcdma, |
| verify_phone_c_network_subscription=is_phone_in_call_wcdma) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="7235c917-a2d4-4561-bda5-630171053f8f") |
| def test_epdg_mo_mo_add_1x_swap_once_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (1x), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (1x), accept on PhoneC. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="8e52b9a4-c0d1-4dcd-9359-746354124763") |
| def test_epdg_mo_mo_add_1x_swap_once_merge_drop_wfc_wifi_preferred(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (1x), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (1x), accept on PhoneC. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="49a4440f-40a1-4518-810a-6ba9f1fbc243") |
| def test_epdg_mo_mo_add_1x_swap_twice_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (1x), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (1x), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="9d05bde3-50ac-4a49-a0db-2181c9b5a10f") |
| def test_epdg_mo_mo_add_1x_swap_twice_merge_drop_wfc_wifi_preferred(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (1x), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (1x), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="5c44eb64-b184-417a-97c9-8c22c48fb731") |
| def test_epdg_mo_mt_add_1x_swap_once_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (1x), accept on PhoneB. |
| PhoneC (1x) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="e16e2e81-1b59-4b02-b601-bb27b62d6468") |
| def test_epdg_mo_mt_add_1x_swap_once_merge_drop_wfc_wifi_preferred(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (1x), accept on PhoneB. |
| PhoneC (1x) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="fd4c3b72-ea2d-4cd4-af79-b93635eda8b8") |
| def test_epdg_mo_mt_add_1x_swap_twice_merge_drop_wfc_wifi_only(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (1x), accept on PhoneB. |
| PhoneC (1x) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a33d7b2b-cc22-40c3-9689-a2a14642396d") |
| def test_epdg_mo_mt_add_1x_swap_twice_merge_drop_wfc_wifi_preferred(self): |
| """Test swap and merge feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (1x), accept on PhoneB. |
| PhoneC (1x) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_3g, (self.log, ads[1])), |
| (phone_setup_voice_3g, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_1x, |
| verify_phone_c_network_subscription=is_phone_in_call_1x) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="7839c6a3-6797-4cd0-a918-c7d317881e3d") |
| def test_epdg_mo_mo_add_epdg_swap_twice_drop_held_wfc_wifi_only(self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="3f4e761e-8fa2-4b85-bc11-8150532b7686") |
| def test_epdg_mo_mo_add_epdg_swap_twice_drop_held_wfc_wifi_preferred(self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="9fd4f171-9eea-4fc7-91f1-d3c7f08a5fad") |
| def test_epdg_mo_mo_add_epdg_swap_twice_drop_active_wfc_wifi_only(self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="8b97d6b9-253a-4ab7-8afb-126df71fee41") |
| def test_epdg_mo_mo_add_epdg_swap_twice_drop_active_wfc_wifi_preferred( |
| self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="6617e779-c987-41dd-acda-ff132662ccf0") |
| def test_epdg_mo_mo_add_epdg_swap_twice_drop_active_apm_wifi_preferred( |
| self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f8b61289-ccc5-4adf-b291-94c73925edb3") |
| def test_epdg_mo_mt_add_epdg_swap_twice_drop_held_wfc_wifi_only(self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="bb975203-7cee-4fbc-ad4a-da473413e410") |
| def test_epdg_mo_mt_add_epdg_swap_twice_drop_held_wfc_wifi_preferred(self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="593f6034-fd15-4b1d-a9fe-c4331e6a7f72") |
| def test_epdg_mo_mt_add_epdg_swap_twice_drop_active_wfc_wifi_only(self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="adc3fb00-543e-44ec-905b-0eea52790896") |
| def test_epdg_mo_mt_add_epdg_swap_twice_drop_active_wfc_wifi_preferred( |
| self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=2, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="e96aac52-c536-4a08-9e6a-8bf598db9267") |
| def test_epdg_mo_mo_add_epdg_swap_once_drop_held_wfc_wifi_only(self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="74efa176-1ff2-4b06-9739-06f67009cb5d") |
| def test_epdg_mo_mo_add_epdg_swap_once_drop_held_wfc_wifi_preferred(self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="dfcdeebe-dada-4722-8880-5b3877d0809b") |
| def test_epdg_mo_mo_add_epdg_swap_once_drop_active_wfc_wifi_only(self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="b9658029-90da-4df8-bbb2-9c08eb3a3a8c") |
| def test_epdg_mo_mo_add_epdg_swap_once_drop_active_wfc_wifi_preferred( |
| self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="3381c8e0-cdf1-47d1-8a17-58592f3cd6e6") |
| def test_epdg_mo_mo_add_epdg_swap_once_drop_active_apm_wfc_wifi_preferred( |
| self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneA (epdg) call PhoneC (epdg), accept on PhoneC. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="fb655f12-aabe-45bf-8020-61c21ada9440") |
| def test_epdg_mo_mt_add_epdg_swap_once_drop_held_wfc_wifi_only(self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="35e7b36d-e2d5-42bd-99d9-dbc7986ef93a") |
| def test_epdg_mo_mt_add_epdg_swap_once_drop_held_wfc_wifi_preferred(self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="e959e668-8150-46c1-bf49-a1ab2a9f45a5") |
| def test_epdg_mo_mt_add_epdg_swap_once_drop_held_apm_wifi_preferred(self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="b9c47ccd-cc84-42cc-83f4-0a98c22c1d7a") |
| def test_epdg_mo_mt_add_epdg_swap_once_drop_active_wfc_wifi_only(self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_ONLY, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="273d521f-d11c-4956-ae51-33f69de87663") |
| def test_epdg_mo_mt_add_epdg_swap_once_drop_active_wfc_wifi_preferred( |
| self): |
| """Test swap feature in epdg call. |
| |
| PhoneA (epdg) call PhoneB (epdg), accept on PhoneB. |
| PhoneC (epdg) call PhoneA (epdg), accept on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneB, check if call continues between AC. |
| |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[1], |
| ad_verify=ads[0], |
| call_id=call_ac_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[2]]) |
| |
| |
| def _test_gsm_conference_merge_drop(self, call_ab_id, call_ac_id): |
| """Test conference merge and drop in GSM call. |
| |
| PhoneA in GSM call with PhoneB. |
| PhoneA in GSM call with PhoneC. |
| Merge calls to conference on PhoneA. |
| Hangup on PhoneC, check call continues between AB. |
| Hangup on PhoneB, check A ends. |
| |
| Args: |
| call_ab_id: call id for call_AB on PhoneA. |
| call_ac_id: call id for call_AC on PhoneA. |
| |
| Returns: |
| True if succeed; |
| False if failed. |
| """ |
| ads = self.android_devices |
| |
| self.log.info("Step4: Merge to Conf Call and verify Conf Call.") |
| ads[0].droid.telecomCallJoinCallsInConf(call_ab_id, call_ac_id) |
| time.sleep(WAIT_TIME_IN_CALL) |
| calls = ads[0].droid.telecomCallGetCallIds() |
| ads[0].log.info("Calls in PhoneA %s", calls) |
| if num_active_calls(self.log, ads[0]) != 3: |
| ads[0].log.error("Total number of call ids is not 3.") |
| return False |
| call_conf_id = None |
| for call_id in calls: |
| if call_id != call_ab_id and call_id != call_ac_id: |
| call_conf_id = call_id |
| if not call_conf_id: |
| self.log.error("Merge call fail, no new conference call id.") |
| return False |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], True): |
| return False |
| |
| # Check if Conf Call is currently active |
| if ads[0].droid.telecomCallGetCallState( |
| call_conf_id) != CALL_STATE_ACTIVE: |
| ads[0].log.error( |
| "Call_id: %s, state: %s, expected: STATE_ACTIVE", call_conf_id, |
| ads[0].droid.telecomCallGetCallState(call_conf_id)) |
| return False |
| |
| self.log.info("Step5: End call on PhoneC and verify call continues.") |
| if not _hangup_call(self.log, ads[2], "PhoneC"): |
| return False |
| time.sleep(WAIT_TIME_IN_CALL) |
| calls = ads[0].droid.telecomCallGetCallIds() |
| ads[0].log.info("Calls in PhoneA %s", calls) |
| if num_active_calls(self.log, ads[0]) != 1: |
| return False |
| if not verify_incall_state(self.log, [ads[0], ads[1]], True): |
| return False |
| if not verify_incall_state(self.log, [ads[2]], False): |
| return False |
| |
| self.log.info("Step6: End call on PhoneB and verify PhoneA end.") |
| if not _hangup_call(self.log, ads[1], "PhoneB"): |
| return False |
| time.sleep(WAIT_TIME_IN_CALL) |
| if not verify_incall_state(self.log, [ads[0], ads[1], ads[2]], False): |
| return False |
| return True |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="03eb38b1-bd7f-457e-8b80-d58651d82741") |
| def test_gsm_mo_mo_add_merge_drop(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA to PhoneB, accept on PhoneB. |
| Call from PhoneA to PhoneC, accept on PhoneC. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_voice_2g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_2g, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return self._test_gsm_conference_merge_drop(call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="3286306f-4d66-48c4-9303-f691c53bcfe0") |
| def test_gsm_mo_mo_add_swap_once_drop_held(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneA to PhoneB, accept on PhoneB. |
| Call from PhoneA to PhoneC, accept on PhoneC. |
| On PhoneA, swap active call. |
| End call on PhoneB, verify call continues. |
| End call on PhoneC, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_voice_2g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_2g, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=CALL_STATE_ACTIVE, |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="af4ff690-be2a-42d8-930a-8258fe81c77e") |
| def test_gsm_mt_mt_add_merge_drop(self): |
| """ Test Conf Call among three phones. |
| |
| Call from PhoneB to PhoneA, accept on PhoneA. |
| Call from PhoneC to PhoneA, accept on PhoneA. |
| On PhoneA, merge to conference call. |
| End call on PhoneC, verify call continues. |
| End call on PhoneB, verify call end on PhoneA. |
| |
| Returns: |
| True if pass; False if fail. |
| """ |
| ads = self.android_devices |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=phone_setup_voice_2g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_2g, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return self._test_gsm_conference_merge_drop(call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="6b70902e-ca59-4d92-9bfe-2116dcc91213") |
| def test_gsm_mo_mo_add_swap_twice_drop_active(self): |
| """Test swap feature in GSM call. |
| |
| PhoneA (GSM) call PhoneB, accept on PhoneB. |
| PhoneA (GSM) call PhoneC, accept on PhoneC. |
| Swap active call on PhoneA. |
| Swap active call on PhoneA. |
| Hangup call from PhoneC, check if call continues between AB. |
| |
| """ |
| ads = self.android_devices |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=phone_setup_voice_2g, |
| phone_setup_b=phone_setup_voice_general, |
| phone_setup_c=phone_setup_voice_general, |
| verify_phone_a_network_subscription=is_phone_in_call_2g, |
| verify_phone_b_network_subscription=None, |
| verify_phone_c_network_subscription=None) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _three_phone_hangup_call_verify_call_state(log=self.log, |
| ad_hangup=ads[2], |
| ad_verify=ads[0], |
| call_id=call_ab_id, |
| call_state=_get_expected_call_state(ads[0]), |
| ads_active=[ads[0], ads[1]]) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a9ddf5a7-8399-4a8c-abc9-b9235b0153b0") |
| def test_epdg_mo_mo_add_epdg_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_no_cep( |
| self): |
| """ Test WFC Conference Call among three phones. No CEP. |
| |
| Steps: |
| 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. |
| 2. PhoneA (WFC APM WiFi Preferred) call PhoneC (WFC APM WiFi Preferred), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (No CEP). |
| 4. End call on PhoneC, verify call continues. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Expected Results: |
| 3. Conference merged successfully. |
| 4. Drop calls succeeded. Call between A-B continues. |
| 5. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, No_CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="5aaff055-3329-4077-91e8-5707a0f6a309") |
| def test_epdg_mo_mo_add_epdg_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_cep( |
| self): |
| """ Test WFC Conference Call among three phones. CEP enabled. |
| |
| Steps |
| 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. |
| 2. PhoneA (WFC APM WiFi Preferred) call PhoneC (WFC APM WiFi Preferred), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (WFC CEP conference call). |
| 4. End call on PhoneC, verify call continues. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Expected Results: |
| 3. Conference merged successfully. |
| 4. Drop calls succeeded. Call between A-B continues. |
| 5. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="d3624dd8-20bd-4f6b-8a81-0c8671987b84") |
| def test_epdg_mo_mo_add_epdg_merge_drop_second_call_from_host_wfc_apm_wifi_preferred_cep( |
| self): |
| """ Test WFC Conference Call among three phones. CEP enabled. |
| |
| Steps: |
| 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. |
| 2. PhoneA (WFC APM WiFi Preferred) call PhoneC (WFC APM WiFi Preferred), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (WFC CEP conference call). |
| 4. On PhoneA disconnect call between A-C, verify call continues. |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Expected Results: |
| 3. Conference merged successfully. |
| 4. Drop calls succeeded. Call between A-B continues. |
| 5. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="ba43d88c-1347-4570-92d0-ebfa6404788f") |
| def test_epdg_mo_mo_add_epdg_merge_drop_first_call_from_participant_wfc_apm_wifi_preferred_cep( |
| self): |
| """ Test WFC Conference Call among three phones. CEP enabled. |
| |
| Steps: |
| 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. |
| 2. PhoneA (WFC APM WiFi Preferred) call PhoneC (WFC APM WiFi Preferred), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (WFC CEP conference call). |
| 4. End call on PhoneB, verify call continues. |
| 5. End call on PhoneC, verify call end on PhoneA. |
| |
| Expected Results: |
| 3. Conference merged successfully. |
| 4. Drop calls succeeded. Call between A-C continues. |
| 5. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="fbcd20ec-ebac-45c2-b228-30fdec42752f") |
| def test_epdg_mo_mo_add_epdg_merge_drop_first_call_from_host_wfc_apm_wifi_preferred_cep( |
| self): |
| """ Test WFC Conference Call among three phones. CEP enabled. |
| |
| Steps: |
| 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. |
| 2. PhoneA (WFC APM WiFi Preferred) call PhoneC (WFC APM WiFi Preferred), accept on PhoneC. |
| 3. On PhoneA, merge to conference call (WFC CEP conference call). |
| 4. On PhoneA disconnect call between A-B, verify call continues. |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Expected Results: |
| 3. Conference merged successfully. |
| 4. Drop calls succeeded. Call between A-C continues. |
| 5. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mo_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="fc54b329-4ec6-45b2-8f91-0a5789542596") |
| def test_epdg_mo_mt_add_epdg_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_no_cep( |
| self): |
| """ Test WFC Conference Call among three phones. No CEP. |
| |
| Steps: |
| 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. |
| 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (No CEP). |
| 4. End call on PhoneC, verify call continues. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Expected Results: |
| 3. Conference merged successfully. |
| 4. Drop calls succeeded. Call between A-B continues. |
| 5. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, No_CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="64096e42-1fb2-4eb4-9f60-3e22c7ad5c83") |
| def test_epdg_mo_mt_add_epdg_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_cep( |
| self): |
| """ Test WFC Conference Call among three phones. CEP enabled. |
| |
| Steps |
| 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. |
| 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (WFC CEP conference call). |
| 4. End call on PhoneC, verify call continues. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Expected Results: |
| 3. Conference merged successfully. |
| 4. Drop calls succeeded. Call between A-B continues. |
| 5. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="24b6abb4-03c8-464c-a584-ca597bd67b46") |
| def test_epdg_mo_mt_add_epdg_merge_drop_second_call_from_host_wfc_apm_wifi_preferred_cep( |
| self): |
| """ Test WFC Conference Call among three phones. CEP enabled. |
| |
| Steps: |
| 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. |
| 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (WFC CEP conference call). |
| 4. On PhoneA disconnect call between A-C, verify call continues. |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Expected Results: |
| 3. Conference merged successfully. |
| 4. Drop calls succeeded. Call between A-B continues. |
| 5. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f54776e4-84c0-43db-8724-f012ef551ebd") |
| def test_epdg_mo_mt_add_epdg_merge_drop_first_call_from_participant_wfc_apm_wifi_preferred_cep( |
| self): |
| """ Test WFC Conference Call among three phones. CEP enabled. |
| |
| Steps: |
| 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. |
| 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (WFC CEP conference call). |
| 4. End call on PhoneB, verify call continues. |
| 5. End call on PhoneC, verify call end on PhoneA. |
| |
| Expected Results: |
| 3. Conference merged successfully. |
| 4. Drop calls succeeded. Call between A-C continues. |
| 5. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="6635aeff-f10a-4fb0-b658-4f1e7f2d9a68") |
| def test_epdg_mo_mt_add_epdg_merge_drop_first_call_from_host_wfc_apm_wifi_preferred_cep( |
| self): |
| """ Test WFC Conference Call among three phones. CEP enabled. |
| |
| Steps: |
| 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. |
| 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (WFC CEP conference call). |
| 4. On PhoneA disconnect call between A-B, verify call continues. |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Expected Results: |
| 3. Conference merged successfully. |
| 4. Drop calls succeeded. Call between A-C continues. |
| 5. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="c2534477-74ff-43ca-920a-48238928f344") |
| def test_epdg_mt_mt_add_epdg_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_no_cep( |
| self): |
| """ Test WFC Conference Call among three phones. No CEP. |
| |
| Steps: |
| 1. PhoneB (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (No CEP). |
| 4. End call on PhoneC, verify call continues. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Expected Results: |
| 3. Conference merged successfully. |
| 4. Drop calls succeeded. Call between A-B continues. |
| 5. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, No_CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="ef5ea03d-1c1b-4c9a-a72d-14b2ba7e87cb") |
| def test_epdg_mt_mt_add_epdg_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_cep( |
| self): |
| """ Test WFC Conference Call among three phones. CEP enabled. |
| |
| Steps |
| 1. PhoneB (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (WFC CEP conference call). |
| 4. End call on PhoneC, verify call continues. |
| 5. End call on PhoneB, verify call end on PhoneA. |
| |
| Expected Results: |
| 3. Conference merged successfully. |
| 4. Drop calls succeeded. Call between A-B continues. |
| 5. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="b0df507f-2adf-45fe-a174-44f62718296e") |
| def test_epdg_mt_mt_add_epdg_merge_drop_second_call_from_host_wfc_apm_wifi_preferred_cep( |
| self): |
| """ Test WFC Conference Call among three phones. CEP enabled. |
| |
| Steps: |
| 1. PhoneB (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (WFC CEP conference call). |
| 4. On PhoneA disconnect call between A-C, verify call continues. |
| 5. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Expected Results: |
| 3. Conference merged successfully. |
| 4. Drop calls succeeded. Call between A-B continues. |
| 5. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="278c6bec-7065-4f54-9834-33d8a6172f58") |
| def test_epdg_mt_mt_add_epdg_merge_drop_first_call_from_participant_wfc_apm_wifi_preferred_cep( |
| self): |
| """ Test WFC Conference Call among three phones. CEP enabled. |
| |
| Steps: |
| 1. PhoneB (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (WFC CEP conference call). |
| 4. End call on PhoneB, verify call continues. |
| 5. End call on PhoneC, verify call end on PhoneA. |
| |
| Expected Results: |
| 3. Conference merged successfully. |
| 4. Drop calls succeeded. Call between A-C continues. |
| 5. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="1ffceadc-8bd1-489d-bb66-4b3081df3a64") |
| def test_epdg_mt_mt_add_epdg_merge_drop_first_call_from_host_wfc_apm_wifi_preferred_cep( |
| self): |
| """ Test WFC Conference Call among three phones. CEP enabled. |
| |
| Steps: |
| 1. PhoneB (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 3. On PhoneA, merge to conference call (WFC CEP conference call). |
| 4. On PhoneA disconnect call between A-B, verify call continues. |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| |
| Expected Results: |
| 3. Conference merged successfully. |
| 4. Drop calls succeeded. Call between A-C continues. |
| 5. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mt_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=0, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_first_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="b3dfaa38-8e9b-45b7-8e4e-6e6ca10887bd") |
| def test_epdg_mo_mt_add_epdg_swap_once_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_no_cep( |
| self): |
| """ Test swap and merge features in WFC call. No CEP. |
| |
| Steps: |
| 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. |
| 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (No CEP). |
| 5. End call on PhoneC, verify call continues. |
| 6. End call on PhoneB, verify call end on PhoneA. |
| |
| Expected Results: |
| 3. Swap operation succeeded. |
| 4. Conference merged successfully. |
| 5. Drop calls succeeded. Call between A-B continues. |
| 6. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, No_CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="eb82f1ac-e5a3-42bc-b9d9-806442263f79") |
| def test_epdg_mo_mt_add_epdg_swap_once_merge_drop_second_call_from_host_wfc_apm_wifi_preferred_cep( |
| self): |
| """ Test swap and merge features in WFC call. CEP enabled. |
| |
| Steps: |
| 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. |
| 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (WFC CEP conference call). |
| 5. On PhoneA disconnect call between A-C, verify call continues. |
| 6. On PhoneA disconnect call between A-B, verify call continues. |
| |
| Expected Results: |
| 3. Swap operation succeeded. |
| 4. Conference merged successfully. |
| 5. Drop calls succeeded. Call between A-B continues. |
| 6. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_host(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="53ba057d-5c5c-4236-9ff9-829177e6f51e") |
| def test_epdg_mo_mt_add_epdg_swap_once_merge_drop_second_call_from_participant_wfc_apm_wifi_preferred_cep( |
| self): |
| """ Test swap and merge features in WFC call. CEP enabled. |
| |
| Steps: |
| 1. PhoneA (WFC APM WiFi Preferred) call PhoneB (WFC APM WiFi Preferred), accept on PhoneB. |
| 2. PhoneC (WFC APM WiFi Preferred) call PhoneA (WFC APM WiFi Preferred), accept on PhoneA. |
| 3. Swap active call on PhoneA. |
| 4. On PhoneA, merge to conference call (WFC CEP conference call). |
| 5. End call on PhoneC, verify call continues. |
| 6. End call on PhoneB, verify call end on PhoneA. |
| |
| Expected Results: |
| 3. Swap operation succeeded. |
| 4. Conference merged successfully. |
| 5. Drop calls succeeded. Call between A-B continues. |
| 6. Drop calls succeeded, all call participants drop. |
| |
| Returns: |
| True if pass; False if fail. |
| |
| TAGS: Telephony, WFC, Conference, CEP |
| Priority: 1 |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[1], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_iwlan, |
| (self.log, ads[2], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| call_ab_id, call_ac_id = _test_call_mo_mt_add_swap_x(log=self.log, |
| ads=ads, |
| num_swaps=1, |
| phone_setup_a=None, |
| phone_setup_b=None, |
| phone_setup_c=None, |
| verify_phone_a_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_b_network_subscription=is_phone_in_call_iwlan, |
| verify_phone_c_network_subscription=is_phone_in_call_iwlan) |
| if call_ab_id is None or call_ac_id is None: |
| return False |
| |
| return _test_ims_conference_merge_drop_second_call_from_participant(self.log, ads, |
| call_ab_id, call_ac_id) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a246cbd0-915d-4068-8d63-7e099d41fd43") |
| def test_wcdma_add_mt_decline(self): |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_3g, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| if not self._three_phone_call_mo_add_mt_reject( |
| [ads[0], ads[1], ads[2]], [is_phone_in_call_wcdma, None], True): |
| return False |
| return True |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="2789388a-c67c-4c37-a4ea-98c9083abcf9") |
| def test_wcdma_add_mt_ignore(self): |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_3g, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| if not self._three_phone_call_mo_add_mt_reject( |
| [ads[0], ads[1], ads[2]], [is_phone_in_call_wcdma, None], False): |
| return False |
| return True |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="8f5399b2-5075-45b2-b916-2d436d1c1c93") |
| def test_1x_add_mt_decline(self): |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_3g, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| if not self._three_phone_call_mo_add_mt_reject( |
| [ads[0], ads[1], ads[2]], [is_phone_in_call_1x, None], True): |
| return False |
| return True |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a7e6ea10-d4d4-4089-a012-31565314cf65") |
| def test_1x_add_mt_ignore(self): |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_3g, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| if not self._three_phone_call_mo_add_mt_reject( |
| [ads[0], ads[1], ads[2]], [is_phone_in_call_1x, None], False): |
| return False |
| return True |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="c7d878f6-2f1c-4029-bcf9-2aecf2d202e7") |
| def test_volte_add_mt_decline(self): |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_volte, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| if not self._three_phone_call_mo_add_mt_reject( |
| [ads[0], ads[1], ads[2]], [is_phone_in_call_volte, None], True): |
| return False |
| return True |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="4f03240f-88a7-4d39-9d90-6327e835d5e2") |
| def test_volte_add_mt_ignore(self): |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_volte, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| if not self._three_phone_call_mo_add_mt_reject( |
| [ads[0], ads[1], ads[2]], [is_phone_in_call_volte, None], False): |
| return False |
| return True |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="ce51844a-4879-470e-9a22-4eafe25f8e2a") |
| def test_wfc_lte_add_mt_decline(self): |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| if not self._three_phone_call_mo_add_mt_reject( |
| [ads[0], ads[1], ads[2]], [is_phone_in_call_volte, None], True): |
| return False |
| return True |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="b5058cd0-4073-4018-9683-335fd27ab529") |
| def test_wfc_lte_add_mt_ignore(self): |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], False, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| if not self._three_phone_call_mo_add_mt_reject( |
| [ads[0], ads[1], ads[2]], [is_phone_in_call_iwlan, None], False): |
| return False |
| return True |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="456e0a04-7d82-4387-89bb-80613732412e") |
| def test_wfc_apm_add_mt_decline(self): |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| if not self._three_phone_call_mo_add_mt_reject( |
| [ads[0], ads[1], ads[2]], [is_phone_in_call_iwlan, None], True): |
| return False |
| return True |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="ee71fc98-9e52-406f-8d8a-6d9c62cbe6f4") |
| def test_wfc_apm_add_mt_ignore(self): |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_iwlan, |
| (self.log, ads[0], True, WFC_MODE_WIFI_PREFERRED, |
| self.wifi_network_ssid, self.wifi_network_pass)), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| if not self._three_phone_call_mo_add_mt_reject( |
| [ads[0], ads[1], ads[2]], [is_phone_in_call_iwlan, None], False): |
| return False |
| return True |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f4990e20-4a40-4238-9a2a-a75d9be3d354") |
| def test_call_forwarding_unconditional(self): |
| |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_voice_general, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_forwarding_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_forwarding_type="unconditional") |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f4990e20-4a40-4238-9a2a-a75d9be3d354") |
| def test_volte_call_forwarding_unconditional(self): |
| |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_volte, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_forwarding_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_forwarding_type="unconditional") |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="26b85c3f-5a38-465a-a6e3-dfd03c6ea315") |
| def test_call_forwarding_busy(self): |
| |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_voice_general, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_forwarding_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_forwarding_type="busy") |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="26b85c3f-5a38-465a-a6e3-dfd03c6ea315") |
| def test_volte_call_forwarding_busy(self): |
| |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_volte, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_forwarding_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_forwarding_type="busy") |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="96638a39-efe2-40e2-afb6-6a97f87c4af5") |
| def test_call_forwarding_not_answered(self): |
| |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_voice_general, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_forwarding_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_forwarding_type="not_answered") |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="96638a39-efe2-40e2-afb6-6a97f87c4af5") |
| def test_volte_call_forwarding_not_answered(self): |
| |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_volte, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_forwarding_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_forwarding_type="not_answered") |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a13e586a-3345-49d8-9e84-ca33bd3fbd7d") |
| def test_call_forwarding_not_reachable(self): |
| |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_voice_general, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_forwarding_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_forwarding_type="not_reachable") |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="a13e586a-3345-49d8-9e84-ca33bd3fbd7d") |
| def test_volte_call_forwarding_not_reachable(self): |
| |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_volte, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_forwarding_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_forwarding_type="not_reachable") |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="e9a6027b-7dd1-4dca-a700-e4d42c9c947d") |
| def test_call_waiting_scenario_1(self): |
| """ Call waiting scenario 1: 1st call ended first by caller1 during 2nd |
| call incoming. 2nd call ended by caller2. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_voice_general, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_waiting_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_waiting=True, |
| scenario=1) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="e9a6027b-7dd1-4dca-a700-e4d42c9c947d") |
| def test_volte_call_waiting_scenario_1(self): |
| """Tests that the call waiting function is workable by scenario 1. |
| |
| Initial Condition: |
| (1) Network Type: |
| - DUT: LTE, VoLTE ON. |
| - Caller1: LTE/3G. |
| |
| Execution Criteria: |
| (1) Enable call waiting on DUT. |
| (2) Let caller1 make the first MO call to DUT and let DUT answer the |
| call. |
| (3) Let caller2 make the second MO call to DUT. Do NOT answer the |
| call and keep the call alerting. |
| (4) End the first call by caller1. |
| (5) Let DUT answer the second call. |
| (6) End the second call by caller2. |
| |
| Pass Criteria: |
| (2)(5) All the call can be made/answered correctly. |
| (4)(6) All the call can be released correctly. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_volte, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_waiting_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_waiting=True, |
| scenario=1) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="3fe02cb7-68d7-4762-882a-02bff8ce32f9") |
| def test_call_waiting_scenario_2(self): |
| """ Call waiting scenario 2: 1st call ended first by caller1 during 2nd |
| call incoming. 2nd call ended by callee. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_voice_general, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_waiting_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_waiting=True, |
| scenario=2) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="bf5eb9ad-1fa2-468d-99dc-3cbcee8c89f8") |
| def test_call_waiting_scenario_3(self): |
| """ Call waiting scenario 3: 1st call ended first by callee during 2nd |
| call incoming. 2nd call ended by caller2. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_voice_general, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_waiting_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_waiting=True, |
| scenario=3) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f2e4b6a9-6a6f-466c-884c-c0ef79d6ff01") |
| def test_call_waiting_scenario_4(self): |
| """Call waiting scenario 4: 1st call ended first by callee during 2nd |
| call incoming. 2nd call ended by callee. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_voice_general, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_waiting_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_waiting=True, |
| scenario=4) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f2d36f45-63f6-4e01-9844-6fa53c26def7") |
| def test_call_waiting_scenario_5(self): |
| """ Call waiting scenario 5: 1st call ended by caller1. 2nd call ended |
| by caller2. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_voice_general, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_waiting_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_waiting=True, |
| scenario=5) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="7eb2a89d-30ad-4a34-8e63-87d0181b91aa") |
| def test_call_waiting_scenario_6(self): |
| """Call waiting scenario 6: 1st call ended by caller1. 2nd call ended by |
| callee. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_voice_general, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_waiting_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_waiting=True, |
| scenario=6) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="c63882e5-5b72-4ca6-8e36-260c50f42028") |
| def test_call_waiting_scenario_7(self): |
| """ Call waiting scenario 7: 1st call ended by callee. 2nd call ended by |
| caller2. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_voice_general, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_waiting_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_waiting=True, |
| scenario=7) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="f9be652f-a307-4fa5-9b30-ea78404110bd") |
| def test_call_waiting_scenario_8(self): |
| """Call waiting scenario 8: 1st call ended by callee. 2nd call ended by |
| callee. |
| """ |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_voice_general, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_waiting_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_waiting=True, |
| scenario=8) |
| |
| |
| @TelephonyBaseTest.tel_test_wrap |
| @test_tracker_info(uuid="b2e816b5-8e8f-4863-981c-47847d9527e0") |
| def test_call_waiting_deactivated(self): |
| |
| ads = self.android_devices |
| |
| tasks = [(phone_setup_voice_general, (self.log, ads[0])), |
| (phone_setup_voice_general, (self.log, ads[1])), |
| (phone_setup_voice_general, (self.log, ads[2]))] |
| if not multithread_func(self.log, tasks): |
| self.log.error("Phone Failed to Set Up Properly.") |
| return False |
| |
| return three_phone_call_waiting_short_seq( |
| self.log, |
| ads[0], |
| None, |
| None, |
| ads[1], |
| ads[2], |
| call_waiting=False) |
| |
| """ Tests End """ |