blob: 8e53ea7335a59b723f49fa632d083e40420f164f [file] [log] [blame]
#!/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=