diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2017-10-06 18:41:20 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2017-10-17 12:13:25 +0000 |
commit | 4897e7a9f2bd20d14f067a2acc92ad2a368c5d34 (patch) | |
tree | 7a878a39726a3237ba11047cf5d53c661235267a /suites | |
parent | d71edd16c508a9b2017c6895810b13704e13f240 (diff) |
debug: Add voicecall related methods to interactive shell
Change-Id: Id2df68bf4fba0fb542eebdeb515a3dac6d5e575e
Diffstat (limited to 'suites')
-rwxr-xr-x | suites/aoip_debug/interactive.py | 61 | ||||
-rwxr-xr-x | suites/debug/interactive.py | 61 |
2 files changed, 120 insertions, 2 deletions
diff --git a/suites/aoip_debug/interactive.py b/suites/aoip_debug/interactive.py index d596b68..819f207 100755 --- a/suites/aoip_debug/interactive.py +++ b/suites/aoip_debug/interactive.py @@ -23,13 +23,17 @@ for m in modems: m.connect(msc.mcc_mnc()) while True: - cmd = prompt('Enter command: (q)uit (s)ms (g)et-registered (w)ait-registered') + cmd = prompt('Enter command: (q)uit (s)ms (g)et-registered (w)ait-registered, call-list [<ms_msisdn>], call-dial <src_msisdn> <dst_msisdn>, call-wait-incoming <src_msisdn> <dst_msisdn>, call-answer <mt_msisdn> <call_id>, call-hangup <ms_msisdn> <call_id>') cmd = cmd.strip().lower() if not cmd: continue + + params = cmd.split() + if 'quit'.startswith(cmd): break + elif 'wait-registered'.startswith(cmd): try: for m in modems: @@ -37,12 +41,67 @@ while True: wait(msc.subscriber_attached, *modems) except Timeout: print('Timeout while waiting for registration.') + elif 'get-registered'.startswith(cmd): print(msc.imsi_list_attached()) print('RESULT: %s' % ('All modems are registered.' if msc.subscriber_attached(*modems) else 'Some modem(s) not registered yet.')) + elif 'sms'.startswith(cmd): for mo in modems: for mt in modems: mo.sms_send(mt.msisdn, 'to ' + mt.name()) + + elif cmd.startswith('call-list'): + if len(params) != 1 and len(params) != 2: + print('wrong format') + continue + for ms in modems: + if len(params) == 1 or str(ms.msisdn) == params[1]: + print('call-list: %r %r' % (ms.name(), ms.call_id_list())) + + elif cmd.startswith('call-dial'): + if len(params) != 3: + print('wrong format') + continue + src_msisdn, dst_msisdn = params[1:] + for mo in modems: + if str(mo.msisdn) == src_msisdn: + print('dialing %s->%s' % (src_msisdn, dst_msisdn)) + call_id = mo.call_dial(dst_msisdn) + print('dial success: call_id=%r' % call_id) + + elif cmd.startswith('call-wait-incoming'): + if len(params) != 3: + print('wrong format') + continue + src_msisdn, dst_msisdn = params[1:] + for mt in modems: + if str(mt.msisdn) == dst_msisdn: + print('waiting for incoming %s->%s' % (src_msisdn, dst_msisdn)) + call_id = mt.call_wait_incoming(src_msisdn) + print('incoming call success: call_id=%r' % call_id) + + elif cmd.startswith('call-answer'): + if len(params) != 3: + print('wrong format') + continue + mt_msisdn, call_id = params[1:] + for mt in modems: + if str(mt.msisdn) == mt_msisdn: + print('answering %s %r' % (mt.name(), call_id)) + mt.call_answer(call_id) + + elif cmd.startswith('call-hangup'): + if len(params) != 3: + print('wrong format') + continue + ms_msisdn, call_id = params[1:] + for ms in modems: + if str(ms.msisdn) == ms_msisdn: + print('hanging up %s %r' % (ms.name(), call_id)) + ms.call_hangup(call_id) + + else: + print('Unknown command: %s' % cmd) diff --git a/suites/debug/interactive.py b/suites/debug/interactive.py index 37076dc..1b89a7d 100755 --- a/suites/debug/interactive.py +++ b/suites/debug/interactive.py @@ -16,13 +16,17 @@ for m in modems: m.connect(nitb.mcc_mnc()) while True: - cmd = prompt('Enter command: (q)uit (s)ms (g)et-registered (w)ait-registered') + cmd = prompt('Enter command: (q)uit (s)ms (g)et-registered (w)ait-registered, call-list [<ms_msisdn>], call-dial <src_msisdn> <dst_msisdn>, call-wait-incoming <src_msisdn> <dst_msisdn>, call-answer <mt_msisdn> <call_id>, call-hangup <ms_msisdn> <call_id>') cmd = cmd.strip().lower() if not cmd: continue + + params = cmd.split() + if 'quit'.startswith(cmd): break + elif 'wait-registered'.startswith(cmd): try: for m in modems: @@ -30,12 +34,67 @@ while True: wait(nitb.subscriber_attached, *modems) except Timeout: print('Timeout while waiting for registration.') + elif 'get-registered'.startswith(cmd): print(nitb.imsi_list_attached()) print('RESULT: %s' % ('All modems are registered.' if nitb.subscriber_attached(*modems) else 'Some modem(s) not registered yet.')) + elif 'sms'.startswith(cmd): for mo in modems: for mt in modems: mo.sms_send(mt.msisdn, 'to ' + mt.name()) + + elif cmd.startswith('call-list'): + if len(params) != 1 and len(params) != 2: + print('wrong format') + continue + for ms in modems: + if len(params) == 1 or str(ms.msisdn) == params[1]: + print('call-list: %r %r' % (ms.name(), ms.call_id_list())) + + elif cmd.startswith('call-dial'): + if len(params) != 3: + print('wrong format') + continue + src_msisdn, dst_msisdn = params[1:] + for mo in modems: + if str(mo.msisdn) == src_msisdn: + print('dialing %s->%s' % (src_msisdn, dst_msisdn)) + call_id = mo.call_dial(dst_msisdn) + print('dial success: call_id=%r' % call_id) + + elif cmd.startswith('call-wait-incoming'): + if len(params) != 3: + print('wrong format') + continue + src_msisdn, dst_msisdn = params[1:] + for mt in modems: + if str(mt.msisdn) == dst_msisdn: + print('waiting for incoming %s->%s' % (src_msisdn, dst_msisdn)) + call_id = mt.call_wait_incoming(src_msisdn) + print('incoming call success: call_id=%r' % call_id) + + elif cmd.startswith('call-answer'): + if len(params) != 3: + print('wrong format') + continue + mt_msisdn, call_id = params[1:] + for mt in modems: + if str(mt.msisdn) == mt_msisdn: + print('answering %s %r' % (mt.name(), call_id)) + mt.call_answer(call_id) + + elif cmd.startswith('call-hangup'): + if len(params) != 3: + print('wrong format') + continue + ms_msisdn, call_id = params[1:] + for ms in modems: + if str(ms.msisdn) == ms_msisdn: + print('hanging up %s %r' % (ms.name(), call_id)) + ms.call_hangup(call_id) + + else: + print('Unknown command: %s' % cmd) |