blob: bac311f7891ea499999b237f2d625ed0fce64a4b [file] [log] [blame]
Pau Espin Pedrol03983aa2017-06-12 15:31:27 +02001#!/usr/bin/env python3
Pau Espin Pedroldfe38ad2017-11-09 13:57:39 +01002from osmo_gsm_tester.testenv import *
Pau Espin Pedrol03983aa2017-06-12 15:31:27 +02003
4USSD_COMMAND_GET_EXTENSION = '*#100#'
5
Pau Espin Pedrol40c7bc72020-05-05 13:41:42 +02006hlr = tenv.hlr()
7bts = tenv.bts()
8mgw_msc = tenv.mgw()
9mgw_bsc = tenv.mgw()
10stp = tenv.stp()
11msc = tenv.msc(hlr, mgw_msc, stp)
12bsc = tenv.bsc(msc, mgw_bsc, stp)
13ms = tenv.modem()
Pau Espin Pedrol03983aa2017-06-12 15:31:27 +020014
Pau Espin Pedrol43857802018-09-13 15:07:27 +020015hlr.start()
16stp.start()
17msc.start()
18mgw_msc.start()
19mgw_bsc.start()
20
21bsc.bts_add(bts)
22bsc.start()
23
Pau Espin Pedrol03983aa2017-06-12 15:31:27 +020024bts.start()
Pau Espin Pedrol43857802018-09-13 15:07:27 +020025wait(bsc.bts_is_connected, bts)
Pau Espin Pedrol03983aa2017-06-12 15:31:27 +020026
Pau Espin Pedrol43857802018-09-13 15:07:27 +020027hlr.subscriber_add(ms)
Pau Espin Pedrol03983aa2017-06-12 15:31:27 +020028
Pau Espin Pedrol43857802018-09-13 15:07:27 +020029ms.connect(msc.mcc_mnc())
30
Pau Espin Pedrol03983aa2017-06-12 15:31:27 +020031ms.log_info()
32
33print('waiting for modems to attach...')
Pau Espin Pedrol43857802018-09-13 15:07:27 +020034wait(ms.is_connected, msc.mcc_mnc())
35wait(msc.subscriber_attached, ms)
Pau Espin Pedrol03983aa2017-06-12 15:31:27 +020036
Pau Espin Pedrol2d9c14a2017-08-02 13:08:35 +020037# ofono (qmi) currently changes state to 'registered' jut after sending
38# 'Location Update Request', but before receiving 'Location Updating Accept'.
39# Which means we can reach lines below and send USSD code while still not being
40# attached, which will then fail. See OsmoGsmTester #2239 for more detailed
41# information.
42# Until we find an ofono fix or a better way to workaround this, let's just
43# sleep for a while in order to receive the 'Location Updating Accept' message
44# before attemting to send the USSD.
45sleep(10)
46
Pau Espin Pedrol03983aa2017-06-12 15:31:27 +020047print('Sending ussd code %s' % USSD_COMMAND_GET_EXTENSION)
48response = ms.ussd_send(USSD_COMMAND_GET_EXTENSION)
Pau Espin Pedrol43857802018-09-13 15:07:27 +020049log('got ussd response: %r' % repr(response))
50assert response.endswith(' ' + ms.msisdn)