View Single Post
Posts: 151 | Thanked: 93 times | Joined on Sep 2009 @ sofia, bulgaria
#5
I wanted to have this:

* bluetooth to be on only during a call
* when switch on, force connect to my BT handsfree if available
* when call is over, switch off bluetooth only if bluetooth is not started manually

These are the scripts to achieve it:

/etc/dbus-scripts.d/bluetooth-during-call
Code:
/home/user/bin/bton.sh * * com.nokia.policy.telephony call_request
/home/user/bin/btoff.sh * * com.nokia.policy.telephony call_ended
/home/user/bin/bton.sh
Code:
#!/bin/sh

adapter=$(dbus-send --print-reply --system --dest=org.bluez / org.bluez.Manager.DefaultAdapter| sed -ne "s/^.*object path //p"|sed -e 's/"//g')

if ( dbus-send --system --print-reply --type=method_call --dest=org.bluez ${adapter} org.bluez.Adapter.GetProperties | sed -n '/string "Powered"/,/variant/ p' | grep -q false )
then
        dbus-send --system --type=method_call --dest=org.bluez $adapter org.bluez.Adapter.SetProperty string:Powered variant:boolean:true
        touch /tmp/bt.autopowered
fi


devmac=00:1C:EF:75:D4:B5

device=$(dbus-send --print-reply --system --dest=org.bluez ${adapter} org.bluez.Adapter.FindDevice string:${devmac}|sed -ne "s/^.*object path //p"|sed -e 's/"//g')
dbus-send --system --print-reply --type=method_call --dest=org.bluez ${device} org.bluez.Audio.Connect
!!!NOTE: change devmac to proper value for your BT handsfree

/home/user/bin/btoff.sh
Code:
#!/bin/sh

if [[ -f /tmp/bt.autopowered ]]
then
        dbus-send --system --type=method_call --dest=org.bluez $(dbus-send --system --print-reply --dest=org.bluez / org.bluez.Manager.ListAdapters | awk -F'"' '/at/ {print $2}') org.bluez.Adapter.SetProperty string:Powered variant:boolean:false
        rm /tmp/bt.autopowered
fi

TODO:

* disable WLAN during calls, as there are sound distortions while both BT and WLAN are enabled. Do not happen always, but I could not determine the pattern when/what is causing it.
 

The Following 4 Users Say Thank You to lidow For This Useful Post: