| #!/usr/bin/python3 |
| |
| import sys |
| import dbus |
| |
| 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) == 2): |
| ss_code = sys.argv[1] |
| else: |
| modem = sys.argv[1] |
| ss_code = sys.argv[2] |
| |
| ss = dbus.Interface(bus.get_object('org.ofono', modem), |
| 'org.ofono.SupplementaryServices') |
| |
| try: |
| ss_type, properties = ss.Initiate(ss_code, timeout=100) |
| except dbus.DBusException as e: |
| print("Unable to perform operation: %s" % e) |
| sys.exit(1); |
| |
| if (ss_type == "CallBarring"): |
| print("%s : Operation [ %s ] Service Type [ %s ]" % (ss_type, properties[0], properties[1])) |
| for key in properties[2]: |
| print("%s : %s" % (key, properties[2][key])) |
| elif (ss_type == "CallForwarding"): |
| print("%s : Operation [ %s ] Service Type [ %s ]" % (ss_type, properties[0], properties[1])) |
| for key in properties[2]: |
| print("%s : %s" % (key, properties[2][key])) |
| elif (ss_type == "CallWaiting"): |
| print("%s : Operation [ %s ]" % (ss_type, properties[0])) |
| for key in properties[1]: |
| print("%s : %s" % (key, properties[1][key])) |
| else: |
| print("%s : Operation [ %s ] Status [ %s ]" % (ss_type, properties[0], properties[1])) |