Pau Espin Pedrol | 03983aa | 2017-06-12 15:31:27 +0200 | [diff] [blame] | 1 | #!/usr/bin/env python3 |
Pau Espin Pedrol | dfe38ad | 2017-11-09 13:57:39 +0100 | [diff] [blame] | 2 | from osmo_gsm_tester.testenv import * |
Pau Espin Pedrol | 03983aa | 2017-06-12 15:31:27 +0200 | [diff] [blame] | 3 | |
| 4 | USSD_COMMAND_GET_EXTENSION = '*#100#' |
| 5 | |
Pau Espin Pedrol | 40c7bc7 | 2020-05-05 13:41:42 +0200 | [diff] [blame] | 6 | hlr = tenv.hlr() |
| 7 | bts = tenv.bts() |
| 8 | mgw_msc = tenv.mgw() |
| 9 | mgw_bsc = tenv.mgw() |
| 10 | stp = tenv.stp() |
| 11 | msc = tenv.msc(hlr, mgw_msc, stp) |
| 12 | bsc = tenv.bsc(msc, mgw_bsc, stp) |
| 13 | ms = tenv.modem() |
Pau Espin Pedrol | 03983aa | 2017-06-12 15:31:27 +0200 | [diff] [blame] | 14 | |
Pau Espin Pedrol | 4385780 | 2018-09-13 15:07:27 +0200 | [diff] [blame] | 15 | hlr.start() |
| 16 | stp.start() |
| 17 | msc.start() |
| 18 | mgw_msc.start() |
| 19 | mgw_bsc.start() |
| 20 | |
| 21 | bsc.bts_add(bts) |
| 22 | bsc.start() |
| 23 | |
Pau Espin Pedrol | 03983aa | 2017-06-12 15:31:27 +0200 | [diff] [blame] | 24 | bts.start() |
Pau Espin Pedrol | 4385780 | 2018-09-13 15:07:27 +0200 | [diff] [blame] | 25 | wait(bsc.bts_is_connected, bts) |
Pau Espin Pedrol | 03983aa | 2017-06-12 15:31:27 +0200 | [diff] [blame] | 26 | |
Pau Espin Pedrol | 4385780 | 2018-09-13 15:07:27 +0200 | [diff] [blame] | 27 | hlr.subscriber_add(ms) |
Pau Espin Pedrol | 03983aa | 2017-06-12 15:31:27 +0200 | [diff] [blame] | 28 | |
Pau Espin Pedrol | 4385780 | 2018-09-13 15:07:27 +0200 | [diff] [blame] | 29 | ms.connect(msc.mcc_mnc()) |
| 30 | |
Pau Espin Pedrol | 03983aa | 2017-06-12 15:31:27 +0200 | [diff] [blame] | 31 | ms.log_info() |
| 32 | |
| 33 | print('waiting for modems to attach...') |
Pau Espin Pedrol | 3a81a7e | 2020-06-10 16:52:53 +0200 | [diff] [blame] | 34 | wait(ms.is_registered, msc.mcc_mnc()) |
Pau Espin Pedrol | 4385780 | 2018-09-13 15:07:27 +0200 | [diff] [blame] | 35 | wait(msc.subscriber_attached, ms) |
Pau Espin Pedrol | 03983aa | 2017-06-12 15:31:27 +0200 | [diff] [blame] | 36 | |
Pau Espin Pedrol | 2d9c14a | 2017-08-02 13:08:35 +0200 | [diff] [blame] | 37 | # 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. |
| 45 | sleep(10) |
| 46 | |
Pau Espin Pedrol | 03983aa | 2017-06-12 15:31:27 +0200 | [diff] [blame] | 47 | print('Sending ussd code %s' % USSD_COMMAND_GET_EXTENSION) |
| 48 | response = ms.ussd_send(USSD_COMMAND_GET_EXTENSION) |
Pau Espin Pedrol | 4385780 | 2018-09-13 15:07:27 +0200 | [diff] [blame] | 49 | log('got ussd response: %r' % repr(response)) |
| 50 | assert response.endswith(' ' + ms.msisdn) |