test-ussd: read stdin for Response()s

This commit is contained in:
Pekka Pessi 2010-09-16 20:32:47 +03:00 committed by Denis Kenzior
parent 217c161cf5
commit 0d9473d8c8
1 changed files with 19 additions and 0 deletions

View File

@ -2,10 +2,13 @@
import sys
import gobject
import os
import dbus
import dbus.mainloop.glib
state = None
def ussd_notification_received(content):
print("Network sent a Notification: " + content)
@ -14,9 +17,23 @@ def ussd_request_received(content):
ss.Cancel()
def ussd_property_changed(name, value):
global state
if name != "State":
return
print("USSD session state is " + value)
state = str(value)
def stdin_handler(fd, condition):
s = os.read(fd.fileno(), 160).rstrip()
if not s:
ss.Cancel()
elif state == "user-response":
print ss.Respond(s, timeout = 100)
elif state == "idle":
print ss.Initiate(s, timeout = 100)
else:
print "Invalid state", state
return True
if __name__ == "__main__":
if (len(sys.argv) < 2):
@ -44,5 +61,7 @@ if __name__ == "__main__":
print ss.Initiate(sys.argv[1], timeout=100)
gobject.io_add_watch(sys.stdin, gobject.IO_IN, stdin_handler)
mainloop = gobject.MainLoop()
mainloop.run()