#!/usr/bin/python3 import sys from gi.repository import GLib import dbus import dbus.mainloop.glib def property_changed(property, value): if len(value.__str__()) > 0: print("CF property %s changed to %s" % (property, value)) else: print("CF property %s changed to disabled" % (property)) if canexit: mainloop.quit(); if __name__ == "__main__": if len(sys.argv) < 3: print("Usage: %s " % (sys.argv[0])) print("Properties can be: VoiceUnconditional, VoiceBusy,") print(" VoiceNoReply, VoiceNoReplyTimeout, VoiceNotReachable") print("Value: number to or the timeout") sys.exit(1) property = sys.argv[1] value = sys.argv[2] canexit = False 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() cf = dbus.Interface(bus.get_object('org.ofono', modems[0][0]), 'org.ofono.CallForwarding') cf.connect_to_signal("PropertyChanged", property_changed) if (property == "VoiceNoReplyTimeout"): try: cf.SetProperty(property, dbus.UInt16(value), timeout = 100) except dbus.DBusException as e: print("Unable SetProperty %s" % e) sys.exit(1); else: try: cf.SetProperty(property, value, timeout = 100) except dbus.DBusException as e: print("Unable SetProperty %s" % e) sys.exit(1); print("Set Property successful") canexit = True mainloop = GLib.MainLoop() mainloop.run()