| #!/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 <property> <value>" % (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() |