ofono/test/test-voicecall

93 lines
2.1 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(value):
for p in value:
call = dbus.Interface(bus.get_object('org.ofono', p),
'org.ofono.VoiceCall')
properties = call.GetProperties()
status = properties['State']
lineid = properties['LineIdentification']
print "Call %s, Status: %s, LineId: %s" %\
(p, status, lineid)
def voicecalls_property_changed(name, value):
if name == 'Calls':
print "Call list modification>"
if len(value) == 0:
print "No calls in systems"
else:
print_calls(value)
else:
print "VoiceCallManager property: '%s' changed to '%s'" %\
(name, value)
def voicecall_property_changed(name, value):
print "Voicecall property: '%s' changed to '%s'" % (name, value)
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.GetProperties()['Modems']
modem = modems[0]
print modems
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("PropertyChanged",
voicecalls_property_changed)
properties = vcmanager.GetProperties()
print properties['Calls']
voicecalls_property_changed('Calls', properties['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)
gobject.timeout_add(10000, hangup_all)
mainloop = gobject.MainLoop()
mainloop.run()