Home | History | Annotate | Download | only in lab
      1 #/usr/bin/env python3.4
      2 #
      3 #   Copyright 2016 - The Android Open Source Project
      4 #
      5 #   Licensed under the Apache License, Version 2.0 (the "License");
      6 #   you may not use this file except in compliance with the License.
      7 #   You may obtain a copy of the License at
      8 #
      9 #       http://www.apache.org/licenses/LICENSE-2.0
     10 #
     11 #   Unless required by applicable law or agreed to in writing, software
     12 #   distributed under the License is distributed on an "AS IS" BASIS,
     13 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 #   See the License for the specific language governing permissions and
     15 #   limitations under the License.
     16 """
     17 Sanity tests for voice tests in telephony
     18 """
     19 import time
     20 
     21 from acts.controllers.anritsu_lib._anritsu_utils import AnritsuError
     22 from acts.controllers.anritsu_lib.md8475a import CsfbType
     23 from acts.controllers.anritsu_lib.md8475a import MD8475A
     24 from acts.controllers.anritsu_lib.md8475a import VirtualPhoneAutoAnswer
     25 from acts.controllers.anritsu_lib.md8475a import VirtualPhoneStatus
     26 from acts.test_utils.tel.anritsu_utils import WAIT_TIME_ANRITSU_REG_AND_CALL
     27 from acts.test_utils.tel.anritsu_utils import call_mo_setup_teardown
     28 from acts.test_utils.tel.anritsu_utils import ims_call_cs_teardown
     29 from acts.test_utils.tel.anritsu_utils import call_mt_setup_teardown
     30 from acts.test_utils.tel.anritsu_utils import set_system_model_1x
     31 from acts.test_utils.tel.anritsu_utils import set_system_model_1x_evdo
     32 from acts.test_utils.tel.anritsu_utils import set_system_model_gsm
     33 from acts.test_utils.tel.anritsu_utils import set_system_model_lte
     34 from acts.test_utils.tel.anritsu_utils import set_system_model_lte_1x
     35 from acts.test_utils.tel.anritsu_utils import set_system_model_lte_wcdma
     36 from acts.test_utils.tel.anritsu_utils import set_system_model_lte_gsm
     37 from acts.test_utils.tel.anritsu_utils import set_system_model_wcdma
     38 from acts.test_utils.tel.anritsu_utils import set_usim_parameters
     39 from acts.test_utils.tel.tel_defines import CALL_TEARDOWN_PHONE
     40 from acts.test_utils.tel.tel_defines import RAT_FAMILY_CDMA2000
     41 from acts.test_utils.tel.tel_defines import RAT_FAMILY_GSM
     42 from acts.test_utils.tel.tel_defines import RAT_FAMILY_LTE
     43 from acts.test_utils.tel.tel_defines import RAT_FAMILY_UMTS
     44 from acts.test_utils.tel.tel_defines import RAT_1XRTT
     45 from acts.test_utils.tel.tel_defines import NETWORK_MODE_CDMA
     46 from acts.test_utils.tel.tel_defines import NETWORK_MODE_GSM_ONLY
     47 from acts.test_utils.tel.tel_defines import NETWORK_MODE_GSM_UMTS
     48 from acts.test_utils.tel.tel_defines import NETWORK_MODE_LTE_CDMA_EVDO
     49 from acts.test_utils.tel.tel_defines import NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA
     50 from acts.test_utils.tel.tel_defines import NETWORK_MODE_LTE_GSM_WCDMA
     51 from acts.test_utils.tel.tel_defines import WAIT_TIME_IN_CALL
     52 from acts.test_utils.tel.tel_defines import WAIT_TIME_IN_CALL_FOR_IMS
     53 from acts.test_utils.tel.tel_test_utils import ensure_network_rat
     54 from acts.test_utils.tel.tel_test_utils import ensure_phones_idle
     55 from acts.test_utils.tel.tel_test_utils import toggle_airplane_mode_by_adb
     56 from acts.test_utils.tel.tel_test_utils import toggle_volte
     57 from acts.test_utils.tel.tel_voice_utils import phone_idle_volte
     58 from acts.test_utils.tel.TelephonyBaseTest import TelephonyBaseTest
     59 
     60 DEFAULT_CALL_NUMBER = "0123456789"
     61 
     62 
     63 class TelLabVoiceTest(TelephonyBaseTest):
     64     def __init__(self, controllers):
     65         TelephonyBaseTest.__init__(self, controllers)
     66         try:
     67             self.stress_test_number = int(self.user_params[
     68                 "stress_test_number"])
     69             self.log.info("Executing {} calls per test in stress test mode".
     70                           format(self.stress_test_number))
     71         except KeyError:
     72             self.stress_test_number = 0
     73             self.log.info(
     74                 "No 'stress_test_number' defined: running single iteration tests"
     75             )
     76 
     77         self.ad = self.android_devices[0]
     78         self.ad.sim_card = getattr(self.ad, "sim_card", None)
     79         self.md8475a_ip_address = self.user_params[
     80             "anritsu_md8475a_ip_address"]
     81         self.wlan_option = self.user_params.get("anritsu_wlan_option", False)
     82 
     83         setattr(self, 'voice_call_number', DEFAULT_CALL_NUMBER)
     84         if 'voice_call_number' in self.user_params:
     85             self.voice_call_number = self.user_params['voice_call_number']
     86             self.log.info("Using provided voice call number: {}".format(
     87                 self.voice_call_number))
     88 
     89     def setup_class(self):
     90         try:
     91             self.anritsu = MD8475A(self.md8475a_ip_address, self.log,
     92                                    self.wlan_option)
     93         except AnritsuError:
     94             self.log.error("Error in connecting to Anritsu Simulator")
     95             return False
     96         return True
     97 
     98     def setup_test(self):
     99         try:
    100             self.ad.droid.telephonyFactoryReset()
    101         except Exception as e:
    102             self.ad.log.error(e)
    103         toggle_airplane_mode_by_adb(self.log, self.ad, True)
    104         self.ad.adb.shell("setprop net.lte.ims.volte.provisioned 1",
    105                           ignore_status=True)
    106         # get a handle to virtual phone
    107         self.virtualPhoneHandle = self.anritsu.get_VirtualPhone()
    108         return True
    109 
    110     def teardown_test(self):
    111         self.log.info("Stopping Simulation")
    112         self.anritsu.stop_simulation()
    113         toggle_airplane_mode_by_adb(self.log, self.ad, True)
    114         return True
    115 
    116     def teardown_class(self):
    117         self.anritsu.disconnect()
    118         return True
    119 
    120     def _setup_voice_call(self,
    121                           set_simulation_func,
    122                           phone_setup_func,
    123                           phone_idle_func_after_registration=None,
    124                           is_ims_call=False,
    125                           is_wait_for_registration=True,
    126                           csfb_type=None,
    127                           srvcc=None,
    128                           mo=True,
    129                           voice_number=DEFAULT_CALL_NUMBER,
    130                           teardown_side=CALL_TEARDOWN_PHONE,
    131                           wait_time_in_call=WAIT_TIME_IN_CALL):
    132         try:
    133             set_simulation_func(self.anritsu, self.user_params,
    134                                 self.ad.sim_card)
    135             set_usim_parameters(self.anritsu, self.ad.sim_card)
    136             self.virtualPhoneHandle.auto_answer = (VirtualPhoneAutoAnswer.ON,
    137                                                    2)
    138             if srvcc != None:
    139                 if srvcc == "Alert":
    140                     self.anritsu.send_command("IMSCSCFAUTOANSWER 1,DISABLE")
    141                 self.anritsu.start_simulation()
    142                 self.anritsu.send_command("IMSSTARTVN 1")
    143                 check_ims_reg = True
    144                 check_ims_calling = True
    145             else:
    146                 self.anritsu.start_simulation()
    147             if is_ims_call:
    148                 self.anritsu.send_command("IMSSTARTVN 1")
    149 
    150             iterations = 1
    151             if self.stress_test_number > 0:
    152                 iterations = self.stress_test_number
    153             successes = 0
    154             for i in range(1, iterations + 1):
    155                 if self.stress_test_number:
    156                     self.log.info("Running iteration {} of {}".format(
    157                         i, iterations))
    158                 # FIXME: There's no good reason why this must be true;
    159                 # I can only assume this was done to work around a problem
    160                 self.ad.droid.telephonyToggleDataConnection(False)
    161 
    162                 # turn off all other BTS to ensure UE registers on BTS1
    163                 sim_model = (self.anritsu.get_simulation_model()).split(",")
    164                 no_of_bts = len(sim_model)
    165                 for i in range(2, no_of_bts + 1):
    166                     self.anritsu.send_command("OUTOFSERVICE OUT,BTS{}".format(
    167                         i))
    168 
    169                 if phone_setup_func is not None:
    170                     if not phone_setup_func(self.ad):
    171                         self.log.error("phone_setup_func failed.")
    172                         continue
    173                 if is_wait_for_registration:
    174                     self.anritsu.wait_for_registration_state()
    175 
    176                 if phone_idle_func_after_registration:
    177                     if not phone_idle_func_after_registration(self.log,
    178                                                               self.ad):
    179                         continue
    180 
    181                 for i in range(2, no_of_bts + 1):
    182                     self.anritsu.send_command("OUTOFSERVICE IN,BTS{}".format(
    183                         i))
    184 
    185                 time.sleep(WAIT_TIME_ANRITSU_REG_AND_CALL)
    186                 if srvcc:
    187                     if not ims_call_cs_teardown(
    188                             self.log, self.ad, self.anritsu, voice_number,
    189                             CALL_TEARDOWN_PHONE, False, check_ims_reg,
    190                             check_ims_calling, srvcc, mo,
    191                             WAIT_TIME_IN_CALL_FOR_IMS, WAIT_TIME_IN_CALL):
    192                         if mo:
    193                             self.log.error(
    194                                 "Phone {} Failed to make voice call to {}"
    195                                 .format(self.ad.serial, voice_number))
    196                         else:
    197                             self.log.error(
    198                                 "Phone {} failed to answer voice call."
    199                                 .format(self.ad.serial))
    200                         continue
    201                 else:
    202                     if not call_mo_setup_teardown(
    203                             self.log, self.ad, self.anritsu, voice_number,
    204                             CALL_TEARDOWN_PHONE, False, WAIT_TIME_IN_CALL,
    205                             is_ims_call):
    206                         self.log.error(
    207                             "Phone {} Failed to make voice call to {}"
    208                             .format(self.ad.serial, voice_number))
    209                         continue
    210                 successes += 1
    211                 if self.stress_test_number:
    212                     self.log.info("Passed iteration {}".format(i))
    213             if self.stress_test_number:
    214                 self.log.info("Total of {} successes out of {} attempts".
    215                               format(successes, iterations))
    216             return True if successes == iterations else False
    217 
    218         except AnritsuError as e:
    219             self.log.error("Error in connection with Anritsu Simulator: " +
    220                            str(e))
    221             return False
    222         except Exception as e:
    223             self.log.error("Exception during voice call procedure: " + str(e))
    224             return False
    225         return True
    226 
    227     def _phone_setup_lte_wcdma(self, ad):
    228         return ensure_network_rat(
    229             self.log,
    230             ad,
    231             NETWORK_MODE_LTE_GSM_WCDMA,
    232             RAT_FAMILY_LTE,
    233             toggle_apm_after_setting=True)
    234 
    235     def _phone_setup_lte_1x(self, ad):
    236         return ensure_network_rat(
    237             self.log,
    238             ad,
    239             NETWORK_MODE_LTE_CDMA_EVDO,
    240             RAT_FAMILY_LTE,
    241             toggle_apm_after_setting=True)
    242 
    243     def _phone_setup_wcdma(self, ad):
    244         return ensure_network_rat(
    245             self.log,
    246             ad,
    247             NETWORK_MODE_GSM_UMTS,
    248             RAT_FAMILY_UMTS,
    249             toggle_apm_after_setting=True)
    250 
    251     def _phone_setup_gsm(self, ad):
    252         return ensure_network_rat(
    253             self.log,
    254             ad,
    255             NETWORK_MODE_GSM_ONLY,
    256             RAT_FAMILY_GSM,
    257             toggle_apm_after_setting=True)
    258 
    259     def _phone_setup_1x(self, ad):
    260         return ensure_network_rat(
    261             self.log,
    262             ad,
    263             NETWORK_MODE_CDMA,
    264             RAT_FAMILY_CDMA2000,
    265             toggle_apm_after_setting=True)
    266 
    267     def _phone_setup_airplane_mode(self, ad):
    268         return toggle_airplane_mode_by_adb(self.log, ad, True)
    269 
    270     def _phone_setup_volte_airplane_mode(self, ad):
    271         toggle_volte(self.log, ad, True)
    272         return toggle_airplane_mode_by_adb(self.log, ad, True)
    273 
    274     def _phone_setup_volte(self, ad):
    275         ad.droid.telephonyToggleDataConnection(True)
    276         toggle_volte(self.log, ad, True)
    277         return ensure_network_rat(
    278             self.log,
    279             ad,
    280             NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA,
    281             RAT_FAMILY_LTE,
    282             toggle_apm_after_setting=True)
    283 
    284     """ Tests Begin """
    285 
    286     @TelephonyBaseTest.tel_test_wrap
    287     def test_voice_call_lte_wcdma_csfb_redirection(self):
    288         """ Test Voice call functionality on LTE (CSFB to WCDMA).
    289             CSFB type is REDIRECTION
    290 
    291         Steps:
    292         1. Setup CallBox on LTE and WCDMA network, make sure DUT register on LTE network.
    293         2. Make an voice call to DEFAULT_CALL_NUMBER. Make sure DUT CSFB to WCDMA.
    294         3. Make sure Anritsu receives the call and accept.
    295         4. Tear down the call.
    296 
    297         Expected Results:
    298         2. Voice call succeed. DUT CSFB to WCDMA.
    299         3. Anritsu can accept the call.
    300         4. Tear down call succeed.
    301 
    302         Returns:
    303             True if pass; False if fail
    304         """
    305         return self._setup_voice_call(
    306             set_system_model_lte_wcdma,
    307             self._phone_setup_lte_wcdma,
    308             voice_number=self.voice_call_number,
    309             csfb_type=CsfbType.CSFB_TYPE_REDIRECTION)
    310 
    311     @TelephonyBaseTest.tel_test_wrap
    312     def test_voice_call_lte_wcdma_csfb_handover(self):
    313         """ Test Voice call functionality on LTE (CSFB to WCDMA).
    314             CSFB type is HANDOVER
    315 
    316         Steps:
    317         1. Setup CallBox on LTE and WCDMA network, make sure DUT register on LTE network.
    318         2. Make an voice call to DEFAULT_CALL_NUMBER. Make sure DUT CSFB to WCDMA.
    319         3. Make sure Anritsu receives the call and accept.
    320         4. Tear down the call.
    321 
    322         Expected Results:
    323         2. Voice call succeed. DUT CSFB to WCDMA.
    324         3. Anritsu can accept the call.
    325         4. Tear down call succeed.
    326 
    327         Returns:
    328             True if pass; False if fail
    329         """
    330         return self._setup_voice_call(
    331             set_system_model_lte_wcdma,
    332             self._phone_setup_lte_wcdma,
    333             voice_number=self.voice_call_number,
    334             csfb_type=CsfbType.CSFB_TYPE_HANDOVER)
    335 
    336     @TelephonyBaseTest.tel_test_wrap
    337     def test_voice_call_lte_1x_csfb(self):
    338         """ Test Voice call functionality on LTE (CSFB to 1x).
    339 
    340         Steps:
    341         1. Setup CallBox on LTE and CDMA 1X network, make sure DUT register on LTE network.
    342         2. Make an voice call to DEFAULT_CALL_NUMBER. Make sure DUT CSFB to 1x.
    343         3. Make sure Anritsu receives the call and accept.
    344         4. Tear down the call.
    345 
    346         Expected Results:
    347         2. Voice call succeed. DUT CSFB to 1x.
    348         3. Anritsu can accept the call.
    349         4. Tear down call succeed.
    350 
    351         Returns:
    352             True if pass; False if fail
    353         """
    354         return self._setup_voice_call(
    355             set_system_model_lte_1x,
    356             self._phone_setup_lte_1x,
    357             voice_number=self.voice_call_number)
    358 
    359     @TelephonyBaseTest.tel_test_wrap
    360     def test_voice_call_wcdma(self):
    361         """ Test Voice call functionality on WCDMA
    362 
    363         Steps:
    364         1. Setup CallBox on WCDMA network, make sure DUT register on WCDMA network.
    365         2. Make an voice call to DEFAULT_CALL_NUMBER.
    366         3. Make sure Anritsu receives the call and accept.
    367         4. Tear down the call.
    368 
    369         Expected Results:
    370         2. Voice call succeed.
    371         3. Anritsu can accept the call.
    372         4. Tear down call succeed.
    373 
    374         Returns:
    375             True if pass; False if fail
    376         """
    377         return self._setup_voice_call(
    378             set_system_model_wcdma,
    379             self._phone_setup_wcdma,
    380             voice_number=self.voice_call_number)
    381 
    382     @TelephonyBaseTest.tel_test_wrap
    383     def test_voice_call_gsm(self):
    384         """ Test Voice call functionality on GSM
    385 
    386         Steps:
    387         1. Setup CallBox on GSM network, make sure DUT register on GSM network.
    388         2. Make an voice call to DEFAULT_CALL_NUMBER.
    389         3. Make sure Anritsu receives the call and accept.
    390         4. Tear down the call.
    391 
    392         Expected Results:
    393         2. Voice call succeed.
    394         3. Anritsu can accept the call.
    395         4. Tear down call succeed.
    396 
    397         Returns:
    398             True if pass; False if fail
    399         """
    400         return self._setup_voice_call(
    401             set_system_model_gsm,
    402             self._phone_setup_gsm,
    403             voice_number=self.voice_call_number)
    404 
    405     @TelephonyBaseTest.tel_test_wrap
    406     def test_voice_call_1x(self):
    407         """ Test Voice call functionality on CDMA 1X
    408 
    409         Steps:
    410         1. Setup CallBox on 1x network, make sure DUT register on 1x network.
    411         2. Make an voice call to DEFAULT_CALL_NUMBER.
    412         3. Make sure Anritsu receives the call and accept.
    413         4. Tear down the call.
    414 
    415         Expected Results:
    416         2. Voice call succeed.
    417         3. Anritsu can accept the call.
    418         4. Tear down call succeed.
    419 
    420         Returns:
    421             True if pass; False if fail
    422         """
    423         return self._setup_voice_call(
    424             set_system_model_1x,
    425             self._phone_setup_1x,
    426             voice_number=self.voice_call_number)
    427 
    428     @TelephonyBaseTest.tel_test_wrap
    429     def test_voice_call_1x_evdo(self):
    430         """ Test Voice call functionality on CDMA 1X with EVDO
    431 
    432         Steps:
    433         1. Setup CallBox on 1x and EVDO network, make sure DUT register on 1x network.
    434         2. Make an voice call to DEFAULT_CALL_NUMBER.
    435         3. Make sure Anritsu receives the call and accept.
    436         4. Tear down the call.
    437 
    438         Expected Results:
    439         2. Voice call succeed.
    440         3. Anritsu can accept the call.
    441         4. Tear down call succeed.
    442 
    443         Returns:
    444             True if pass; False if fail
    445         """
    446         return self._setup_voice_call(
    447             set_system_model_1x_evdo,
    448             self._phone_setup_1x,
    449             voice_number=self.voice_call_number)
    450 
    451     @TelephonyBaseTest.tel_test_wrap
    452     def test_voice_call_volte_wcdma_srvcc(self):
    453         """ Test Voice call functionality,
    454         VoLTE to WCDMA SRVCC
    455         Steps:
    456         1. Setup CallBox on VoLTE network with WCDMA.
    457         2. Turn on DUT and enable VoLTE. Make an voice call to DEFAULT_CALL_NUMBER.
    458         3. Check if VoLTE voice call connected successfully.
    459         4. Handover the call to WCDMA and check if the call is still up.
    460         5. Tear down the call.
    461 
    462         Expected Results:
    463         1. VoLTE Voice call is made successfully.
    464         2. After SRVCC, the DEFAULT_CALL_NUMBER call is not dropped.
    465         3. Tear down call succeed.
    466 
    467         Returns:
    468             True if pass; False if fail
    469         """
    470         return self._setup_voice_call(
    471             set_system_model_lte_wcdma,
    472             self._phone_setup_volte,
    473             phone_idle_volte,
    474             srvcc="InCall",
    475             voice_number=self.voice_call_number,
    476             wait_time_in_call=WAIT_TIME_IN_CALL_FOR_IMS)
    477 
    478     @TelephonyBaseTest.tel_test_wrap
    479     def test_voice_call_volte_gsm_srvcc(self):
    480         """ Test Voice call functionality,
    481         VoLTE to GSM SRVCC
    482         Steps:
    483         1. Setup CallBox on VoLTE network with GSM.
    484         2. Turn on DUT and enable VoLTE. Make an voice call to DEFAULT_CALL_NUMBER.
    485         3. Check if VoLTE voice call connected successfully.
    486         4. Handover the call to GSM and check if the call is still up.
    487         5. Tear down the call.
    488 
    489         Expected Results:
    490         1. VoLTE Voice call is made successfully.
    491         2. After SRVCC, the DEFAULT_CALL_NUMBER call is not dropped.
    492         3. Tear down call succeed.
    493 
    494         Returns:
    495             True if pass; False if fail
    496         """
    497         return self._setup_voice_call(
    498             set_system_model_lte_gsm,
    499             self._phone_setup_volte,
    500             phone_idle_volte,
    501             srvcc="InCall",
    502             voice_number=self.voice_call_number,
    503             wait_time_in_call=WAIT_TIME_IN_CALL_FOR_IMS)
    504 
    505     @TelephonyBaseTest.tel_test_wrap
    506     def test_voice_call_volte_wcdma_asrvcc(self):
    507         """ Test Voice call functionality,
    508         VoLTE to WCDMA aSRVCC
    509         Steps:
    510         1. Setup CallBox on VoLTE network with WCDMA.
    511         2. Turn on DUT and enable VoLTE. Make an voice call to DEFAULT_CALL_NUMBER.
    512         3. Check if Virtual UA in CSCF server rings.
    513         4. Handover the call to WCDMA and check if the call is connected.
    514         5. Tear down the call.
    515 
    516         Expected Results:
    517         1. Virtual UA is rining.
    518         2. After aSRVCC, the DEFAULT_CALL_NUMBER call is connected.
    519         3. Tear down call succeed.
    520 
    521         Returns:
    522             True if pass; False if fail
    523         """
    524         return self._setup_voice_call(
    525             set_system_model_lte_wcdma,
    526             self._phone_setup_volte,
    527             phone_idle_volte,
    528             srvcc="Alert",
    529             voice_number=self.voice_call_number)
    530 
    531     @TelephonyBaseTest.tel_test_wrap
    532     def test_voice_call_volte_gsm_asrvcc(self):
    533         """ Test Voice call functionality,
    534         VoLTE to GSM aSRVCC
    535         Steps:
    536         1. Setup CallBox on VoLTE network with GSM.
    537         2. Turn on DUT and enable VoLTE. Make an voice call to DEFAULT_CALL_NUMBER.
    538         3. Check if Virtual UA in CSCF server rings.
    539         4. Handover the call to GSM and check if the call is connected.
    540         5. Tear down the call.
    541 
    542         Expected Results:
    543         1. Virtual UA is rining.
    544         2. After aSRVCC, the DEFAULT_CALL_NUMBER call is connected.
    545         3. Tear down call succeed.
    546 
    547         Returns:
    548             True if pass; False if fail
    549         """
    550         return self._setup_voice_call(
    551             set_system_model_lte_gsm,
    552             self._phone_setup_volte,
    553             phone_idle_volte,
    554             srvcc="Alert",
    555             voice_number=self.voice_call_number,
    556             wait_time_in_call=WAIT_TIME_IN_CALL_FOR_IMS)
    557 
    558     @TelephonyBaseTest.tel_test_wrap
    559     def test_voice_call_volte_wcdma_asrvcc_mt(self):
    560         """ Test Voice call functionality,
    561         MT VoLTE to WCDMA aSRVCC
    562         Steps:
    563         1. Setup CallBox on VoLTE network with WCDMA.
    564         2. Turn on DUT and enable VoLTE. Make a VoLTE call from MD8475A to UE.
    565         3. Check if Virtual UA in CSCF server calling.
    566         4. Handover the call to WCDMA and check if the call is connected.
    567         5. Tear down the call.
    568 
    569         Expected Results:
    570         1. Virtual UA is rining.
    571         2. After aSRVCC, the DEFAULT_CALL_NUMBER call is connected.
    572         3. Tear down call succeed.
    573 
    574         Returns:
    575             True if pass; False if fail
    576         """
    577         return self._setup_voice_call(
    578             set_system_model_lte_wcdma,
    579             self._phone_setup_volte,
    580             phone_idle_volte,
    581             srvcc="Alert",
    582             mo=False,
    583             voice_number=self.voice_call_number)
    584 
    585     @TelephonyBaseTest.tel_test_wrap
    586     def test_voice_call_volte_gsm_asrvcc_mt(self):
    587         """ Test Voice call functionality,
    588         MT VoLTE to GSM aSRVCC
    589         Steps:
    590         1. Setup CallBox on VoLTE network with GSM.
    591         2. Turn on DUT and enable VoLTE. Make a VoLTE call from MD8475A to UE.
    592         3. Check if Virtual UA in CSCF server calling.
    593         4. Handover the call to GSM and check if the call is connected.
    594         5. Tear down the call.
    595 
    596         Expected Results:
    597         1. Virtual UA is rining.
    598         2. After aSRVCC, the DEFAULT_CALL_NUMBER call is connected.
    599         3. Tear down call succeed.
    600 
    601         Returns:
    602             True if pass; False if fail
    603         """
    604         return self._setup_voice_call(
    605             set_system_model_lte_gsm,
    606             self._phone_setup_volte,
    607             phone_idle_volte,
    608             srvcc="Alert",
    609             mo=False,
    610             voice_number=self.voice_call_number,
    611             wait_time_in_call=WAIT_TIME_IN_CALL_FOR_IMS)
    612 
    613     @TelephonyBaseTest.tel_test_wrap
    614     def test_voice_call_volte(self):
    615         """ Test Voice call functionality on VoLTE
    616 
    617         Steps:
    618         1. Setup CallBox on VoLTE network.
    619         2. Turn on DUT and enable VoLTE. Make an voice call to DEFAULT_CALL_NUMBER.
    620         3. Make sure Anritsu receives the call and accept.
    621         4. Tear down the call.
    622 
    623         Expected Results:
    624         2. Voice call succeed.
    625         3. Anritsu can accept the call.
    626         4. Tear down call succeed.
    627 
    628         Returns:
    629             True if pass; False if fail
    630         """
    631         return self._setup_voice_call(
    632             set_system_model_lte,
    633             self._phone_setup_volte,
    634             phone_idle_volte,
    635             is_ims_call=True,
    636             voice_number=self.voice_call_number,
    637             wait_time_in_call=WAIT_TIME_IN_CALL_FOR_IMS)
    638 
    639     """ Tests End """
    640