mirror of git://git.sysmocom.de/ofono
59 lines
1.1 KiB
Python
Executable File
59 lines
1.1 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
import sys
|
|
import dbus
|
|
|
|
if (len(sys.argv) < 2):
|
|
print "Usage: %s [modem] <ussd-string>" % (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 = raw_input("Enter response: ")
|
|
|
|
result = ussd.Respond(response, timeout=100)
|
|
|
|
properties = ussd.GetProperties()
|
|
state = properties["State"]
|
|
|
|
print result
|
|
|
|
if state != "idle":
|
|
print "State: %s" % (state)
|