#!/usr/bin/python import gobject 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 = gobject.MainLoop() mainloop.run()