From: Jo?o Paulo Rechi Vita <jprvita@xxxxxxxxxxxxx> The Bluetooth Handsfree Profile (HFP), role Hansfree (HF), is used when we want to work as a Hands-free unit to control audio calls performed by an Audio Gateway (AG), generally a cellular phone. After the release of BlueZ 5, which added support for external profiles, the HFP implementation has been moved out of BlueZ and implemented in oFono. A new D-Bus API has been defined to enable the IPC between oFono's Handsfree Audio Manager, which takes care of the Bluetooth HFP modems, and a Handsfree Audio Agent, which in our particular case is PulseAudio. This series implements support for the HFP HF role in the card representing the Bluetooth device through a new card profile, "Handsfree Audio Gateway", which is the name of the role performed by the remote device. At the moment HFP up to 1.6 is supported, but without wideband speech. Wideband speech support work is in progress. Also, this series works with kernels < 3.8, since handling of defer setup of SCO sockets is also a WIP. This series is based on top of Mikel Astiz' work to add BlueZ 5 support to the bluetooth modules. Jo?o Paulo Rechi Vita (24): bluetooth: Remove unnecessary braces bluetooth: Fix identation bluetooth: Improve code readability bluetooth: Track org.ofono service bluetooth: Register Handsfree Audio Agent object path on the bus bluetooth: Register Handsfree Audio Agent with oFono bluetooth: Unregister Handsfree Audio Agent with oFono bluetooth: Implement Handsfree Audio Agent Release() bluetooth: List HF cards from oFono bluetooth: Parse HF cards properties bluetooth: Add new profile type PROFILE_HFP_AG bluetooth: Create a pa_bluetooth_transport for each HF card bluetooth: Track org.ofono.HandsfreeAudioManager.CardAdded bluetooth: Track org.ofono.HandsfreeAudioManager.CardRemoved bluetooth: Do not track new UUIDs bluetooth: Create card profiles based on transport bluetooth: Create card profile for PROFILE_HFP_AG bluetooth: Configure transport for PROFILE_HFP_AG bluetooth: Create sink and source for PROFILE_HFP_AG bluetooth: Implement Handsfree Audio Agent NewConnection() bluetooth: Fix stream setup for PROFILE_HFP_AG bluetooth: Make the I/O thread aware of PROFILE_HFP_AG bluetooth: Suspend source and sink for PROFILE_HFP_AG bluetooth: Load module-loopback for hfp_ag src/modules/bluetooth/bluetooth-util.c | 480 ++++++++++++++++++++++-- src/modules/bluetooth/bluetooth-util.h | 2 +- src/modules/bluetooth/module-bluetooth-device.c | 141 +++---- src/modules/bluetooth/module-bluetooth-policy.c | 4 + 4 files changed, 530 insertions(+), 97 deletions(-) -- 1.7.11.7