ofono/test/test-voicecall

95 lines
2.2 KiB
Python
Executable File

#!/usr/bin/python
import gobject
import dbus
import dbus.mainloop.glib
import sys
def hangup_all():
print "Hanging up"
vcmanager.HangupAll()
def print_calls():
calls = vcmanager.GetCalls()
if (len(calls) != 0):
print "No calls available"
else:
for path, properties in calls:
print " [ %s ]" % (path)
for key in properties.keys():
val = str(properties[key])
print " %s = %s" % (key, val)
print
def voicecalls_call_added(path, properties):
print " Voice Call [ %s ] Added" % (path)
for key in properties.keys():
val = str(properties[key])
print " %s = %s" % (key, val)
print
def voicecalls_call_removed(path):
print " Voice Call [ %s ] Removed" % (path)
def voicecall_property_changed(name, value):
print "Voicecall property: '%s' changed to '%s'" % (name, value)
def voicecall_disconnect_reason(reason):
print "Voicecall disconnect reason: '%s'" % (reason)
if __name__ == "__main__":
global vcmanager
if (len(sys.argv) < 2):
print "Usage: %s [modem] <number>" % (sys.argv[0])
sys.exit(1)
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
manager = dbus.Interface(bus.get_object('org.ofono', '/'),
'org.ofono.Manager')
modems = manager.GetModems()
modem = modems[0][0]
if (len(sys.argv) == 3):
modem = sys.argv[1]
number = sys.argv[2]
else:
number = sys.argv[1]
print "Using modem %s" % modem
vcmanager = dbus.Interface(bus.get_object('org.ofono', modem),
'org.ofono.VoiceCallManager')
vcmanager.connect_to_signal("CallAdded", voicecalls_call_added)
vcmanager.connect_to_signal("CallRemoved", voicecalls_call_removed)
print_calls()
print "Dialing %s..." % number
obj = vcmanager.Dial(number, "")
print "Dialing in progress, got obj: %s" % (obj)
call = dbus.Interface(bus.get_object('org.ofono', obj),
'org.ofono.VoiceCall')
properties = call.GetProperties()
print "State: %s, Number: %s" %\
(properties['State'], properties['LineIdentification'])
call.connect_to_signal("PropertyChanged", voicecall_property_changed)
call.connect_to_signal("DisconnectReason", voicecall_disconnect_reason)
gobject.timeout_add(1000000, hangup_all)
mainloop = gobject.MainLoop()
mainloop.run()