#!/usr/bin/python3 import sys import dbus if (len(sys.argv) < 2): print("Usage: %s [modem] " % (sys.argv[0])) sys.exit(1) bus = dbus.SystemBus() manager = dbus.Interface(bus.get_object('org.ofono', '/'), 'org.ofono.Manager') modems = manager.GetModems() if (len(sys.argv) == 2): path = modems[0][0] ussdstring = sys.argv[1] else: path = sys.argv[1] ussdstring = sys.argv[2] ussd = dbus.Interface(bus.get_object('org.ofono', path), 'org.ofono.SupplementaryServices') properties = ussd.GetProperties() state = properties["State"] print("State: %s" % (state)) if state != "idle": sys.exit(1); result = ussd.Initiate(ussdstring, timeout=100) properties = ussd.GetProperties() state = properties["State"] print(result[0] + ": " + result[1]) if state == "idle": sys.exit(0) print("State: %s" % (state)) while state == "user-response": response = input("Enter response: ") result = ussd.Respond(response, timeout=100) properties = ussd.GetProperties() state = properties["State"] print(result) if state != "idle": print("State: %s" % (state))