2009-05-21 21:21:15 +00:00
|
|
|
#!/usr/bin/python
|
|
|
|
|
|
|
|
import gobject
|
|
|
|
|
|
|
|
import dbus
|
|
|
|
import dbus.mainloop.glib
|
2009-05-21 23:57:44 +00:00
|
|
|
import sys
|
|
|
|
|
|
|
|
def hangup_all():
|
|
|
|
print "Hanging up"
|
|
|
|
vcmanager.HangupAll()
|
2009-05-21 21:21:15 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2009-05-21 23:57:44 +00:00
|
|
|
if (len(sys.argv) < 2):
|
|
|
|
print "Useage: %s <number>" % (sys.argv[0])
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
number = sys.argv[1]
|
|
|
|
|
2009-05-21 21:21:15 +00:00
|
|
|
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']
|
|
|
|
print modems
|
|
|
|
|
|
|
|
vcmanager = dbus.Interface(bus.get_object('org.ofono', modems[0]),
|
|
|
|
'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...."
|
2009-05-21 23:57:44 +00:00
|
|
|
obj = vcmanager.Dial(number, "")
|
2009-05-21 21:21:15 +00:00
|
|
|
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)
|
|
|
|
|
2009-05-21 23:57:44 +00:00
|
|
|
gobject.timeout_add(5000, hangup_all)
|
|
|
|
|
2009-05-21 21:21:15 +00:00
|
|
|
mainloop = gobject.MainLoop()
|
|
|
|
mainloop.run()
|