| #!/usr/bin/python3 |
| |
| from gi.repository import GLib |
| |
| import dbus |
| import dbus.mainloop.glib |
| |
| def property_changed(property, value): |
| print("CallForwarding property %s changed to %s" % (property, value)) |
| |
| def print_properties(cf): |
| properties = cf.GetProperties() |
| |
| for p in properties: |
| if len(properties[p].__str__()) > 0: |
| value = properties[p] |
| else: |
| value = "disabled" |
| |
| print("%s call forwarding rule: %s" % (p, value)) |
| |
| if __name__ == "__main__": |
| 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) |
| |
| ss = dbus.Interface(bus.get_object('org.ofono', modems[0][0]), |
| 'org.ofono.SupplementaryServices') |
| |
| # Clear everything |
| ss.Initiate("##002#") |
| print_properties(cf) |
| |
| # Busy To +155542, for Voice |
| print("Setting Busy Voice rule to +155542") |
| print(ss.Initiate("*67*+155542*11#")) |
| print_properties(cf) |
| |
| # Not Reachable to +155543, Voice |
| print("Setting Voice Not Reachable rule to +155543") |
| print(ss.Initiate("**62*+155543*11#")) |
| |
| # Not Reachable to +155544, Voice service |
| print("Setting Voice No Reply rule to +155544, timeout=30") |
| print(ss.Initiate("**61*+155544*11*30#")) |
| |
| # Unconditional to +155547, Voice |
| print("Setting Unconditional for Voice to +155545") |
| print(ss.Initiate("*21*+155545*10#")) |
| |
| print_properties(cf) |
| |
| print("Query all voice forwardings") |
| print(ss.Initiate("*#002**11#")) |
| |
| print("Query no reply voice forwardings") |
| print(ss.Initiate("*#61**11#")) |
| |
| # Deactivate everything |
| print("Deactivating everything") |
| print(ss.Initiate("##002#")) |
| print_properties(cf) |
| |
| mainloop = GLib.MainLoop() |
| mainloop.run() |