#!/usr/bin/python3 import sys import dbus bus = dbus.SystemBus() manager = dbus.Interface(bus.get_object('org.ofono', '/'), 'org.ofono.Manager') if (len(sys.argv) == 1): modem = None modems = manager.GetModems() for path, properties in modems: if "org.ofono.VoiceCallManager" in properties["Interfaces"]: modem = path break if (modem is None): exit(2) elif (len(sys.argv) == 2): modem = sys.argv[1] else: print("Usage: %s [modem]" % (sys.argv[0])) exit(1) modemapi = dbus.Interface(bus.get_object('org.ofono', modem), 'org.ofono.Modem') properties = modemapi.GetProperties() if "org.ofono.VoiceCallManager" not in properties["Interfaces"]: print("org.ofono.VoiceCallManager not found") exit(2) print("[ %s ]" % (modem)) mgr = dbus.Interface(bus.get_object('org.ofono', modem), 'org.ofono.VoiceCallManager') mgr.ReleaseAndSwap()