mirror of git://git.sysmocom.de/ofono
95 lines
2.2 KiB
Python
Executable File
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()
|