1#!/usr/bin/python 2 3import sys 4import dbus 5from optparse import OptionParser, make_option 6 7bus = dbus.SystemBus() 8 9manager = dbus.Interface(bus.get_object("org.bluez", "/"), "org.bluez.Manager") 10 11option_list = [ 12 make_option("-i", "--device", action="store", 13 type="string", dest="dev_id"), 14 ] 15parser = OptionParser(option_list=option_list) 16 17(options, args) = parser.parse_args() 18 19if options.dev_id: 20 adapter_path = manager.FindAdapter(options.dev_id) 21else: 22 adapter_path = manager.DefaultAdapter() 23 24adapter = dbus.Interface(bus.get_object("org.bluez", adapter_path), 25 "org.bluez.Adapter") 26 27test = dbus.Interface(bus.get_object("org.bluez", "/org/bluez/test"), 28 "org.bluez.TelephonyTest") 29 30if len(args) < 1: 31 print """Usage: %s <command> 32 33 connect <bdaddr> 34 disconnect <bdaddr> 35 outgoing <number> 36 incoming <number> 37 cancel 38 signal <level> 39 battery <level> 40 roaming <yes|no> 41 registration <status> 42 subscriber <number> 43 speakergain <bdaddr> [level] 44 microphonegain <bdaddr> [level] 45 play <bdaddr> 46 stop <bdaddr> 47 """ % sys.argv[0] 48 sys.exit(1) 49 50if args[0] == "connect": 51 if len(args) < 2: 52 print "Need device address parameter" 53 sys.exit(1) 54 device = adapter.FindDevice(args[1]) 55 headset = dbus.Interface(bus.get_object("org.bluez", device), 56 "org.bluez.Headset") 57 headset.Connect() 58 sys.exit(0) 59 60if args[0] == "disconnect": 61 if len(args) < 2: 62 print "Need device address parameter" 63 sys.exit(1) 64 device = adapter.FindDevice(args[1]) 65 headset = dbus.Interface(bus.get_object("org.bluez", device), 66 "org.bluez.Headset") 67 headset.Disconnect() 68 sys.exit(0) 69 70if args[0] == "speakergain": 71 if len(args) < 2: 72 print "Need device address parameter" 73 sys.exit(1) 74 device = adapter.FindDevice(args[1]) 75 headset = dbus.Interface(bus.get_object("org.bluez", device), 76 "org.bluez.Headset") 77 if len(args) > 2: 78 headset.SetProperty('SpeakerGain', dbus.UInt16(args[2])) 79 else: 80 props = headset.GetProperties() 81 print props['SpeakerGain'] 82 83 sys.exit(0) 84 85if args[0] == "microphonegain": 86 if len(args) < 2: 87 print "Need device address parameter" 88 sys.exit(1) 89 device = adapter.FindDevice(args[1]) 90 headset = dbus.Interface(bus.get_object("org.bluez", device), 91 "org.bluez.Headset") 92 if len(args) > 2: 93 headset.SetProperty('MicrophoneGain', dbus.UInt16(args[2])) 94 else: 95 props = headset.GetProperties() 96 print props['MicrophoneGain'] 97 98 sys.exit(0) 99 100if args[0] == "play": 101 if len(args) < 2: 102 print "Need device address parameter" 103 sys.exit(1) 104 device = adapter.FindDevice(args[1]) 105 headset = dbus.Interface(bus.get_object("org.bluez", device), 106 "org.bluez.Headset") 107 headset.Play() 108 109 sys.exit(0) 110 111if args[0] == "stop": 112 if len(args) < 2: 113 print "Need device address parameter" 114 sys.exit(1) 115 device = adapter.FindDevice(args[1]) 116 headset = dbus.Interface(bus.get_object("org.bluez", device), 117 "org.bluez.Headset") 118 headset.Stop() 119 120 sys.exit(0) 121 122if args[0] == "outgoing": 123 if len(args) > 1: 124 test.OutgoingCall(args[1]) 125 else: 126 print "Need number parameter" 127 sys.exit(0) 128 129if args[0] == "incoming": 130 if len(args) > 1: 131 test.IncomingCall(args[1]) 132 else: 133 print "Need number parameter" 134 sys.exit(0) 135 136if args[0] == "cancel": 137 test.CancelCall() 138 sys.exit(0) 139 140if args[0] == "signal": 141 if len(args) > 1: 142 test.SignalStrength(args[1]) 143 else: 144 print "Need signal strength parameter" 145 sys.exit(0) 146 147if args[0] == "battery": 148 if len(args) > 1: 149 test.BatteryLevel(args[1]) 150 else: 151 print "Need battery level parameter" 152 sys.exit(0) 153 154if args[0] == "roaming": 155 if len(args) > 1: 156 test.RoamingStatus(args[1] == "yes" or False) 157 else: 158 print "Need yes/no parameter" 159 sys.exit(0) 160 161if args[0] == "registration": 162 if len(args) > 1: 163 test.RegistrationStatus(args[1] == "yes" or False) 164 else: 165 print "Need yes/no parameter" 166 sys.exit(0) 167 168if args[0] == "subscriber": 169 if len(args) > 1: 170 test.SetSubscriberNumber(args[1]) 171 else: 172 print "Need number parameter" 173 sys.exit(0) 174 175print "Unknown command" 176sys.exit(1) 177