Bluetooth HandsFreeProfile support for Asterisk

Asterisk Bluetooth Support

Well, here we go - Attempt to provide Handsfree profile support in both AG and HF modes, AG (AudioGateway) mode support for using headsets, and HF (Handsfree) mode for utilising mobile/cell phones

It would be nice to also provide HeadsetProfile support at some time in the future, however, a working Handsfree profile is ok for now, and as far as I can see, almost all recent headsets/phones support HandsFreeProfile. Let me know if you have a device that doesn't.


Status

Right now (20/11/05), unmaintained. However, I have had so many emails about it, i'm goign to revive it and get it working. However, i'm currently working on a major project at work, so it'll be a little while (maybe christmas?)

IMPORTANT

This code is not at all tested, and only been developed with a HBH-200 headset and a Nokia 6310i right now.

Expect it to crash, dial random numbers, and steal all your money.

It's also only been tested with a Cambrige bluetooth USB dongle

PLEASE try any headsets and phones, and let me know the results, working or not, along with all debug output and what bluetooth adapter you are using!


INSTALL

chan_bluetooth installation instructions

*** NOTE: If you are installing from r34 or earlier, 
*** make clean in asterisk source dir first

If you're running asterisk from CVS HEAD, make sure you've done
a make update!

- Edit channels/Makefile in the asterisk source distribution, and:
  (1) add chan_bluetooth.so to the variable CHANNEL_LIBS, so you 
      have something like this:

CHANNEL_LIBS=chan_bluetooth.so chan_modem.so chan_sip.so \
         chan_modem_aopen.so \
             chan_modem_bestdata.so chan_modem_i4l.so \
             chan_agent.so chan_mgcp.so chan_iax2.so \
         chan_local.so chan_skinny.so

  (2) add 'include /path/to/chan_bluetooth_dir/Makefile' to the very 
      bottom of the Makefile.


 - recompile and install asterisk as normal.

 - copy conf/bluetooth.conf to /etc/asterisk/bluetooth.conf, and edit as per
   the comments in the file.

 - start asterisk!

INSTRUCTIONS

You need to have bluez's bluetooth stack, along with user space tools (>=v2.10), and running hcid and sdsp.

See bluetooth.conf for configuration details.

  • Ensure bluetooth subsystem is up and running. 'hciconfig' should show interface as UP.
  • If you're trying to use a headset/HS, start up asterisk, and try to pair it as you normally would.
  • If you're trying to use a Phone/AG, just make sure bluetooth is enabled on your phone, and start up asterisk.
  • 'bluetooth show peers' will show all bluetooth devices states.
  • Send a call out by using Dial(BLT/DevName/0123456). Call a HS with Dial(BLT/DevName)

BUGS

  • What should happen when an AG is paired with asterisk and someone uses the AG dalling a number manually? My test phone seems to try to open an SCO link. Perhaps an extension to route the call to, or maybe drop the RFCOM link all together?

TODO

 * - Write better documentation (README) - Add something to voip-info.org?
 * - Add support for instances for multiple BT interfaces (get_route)
 * - Incoming/Outgoing buffers for NBIO.
 * - Inband Ring Tones?
 * - CTP/Intercom/AdvAudio Profile support
 * - SMS send/recieve support
 * - Add chan_blt features into this module
 * - Define actions on events?
 * - Add a few applications i.e BLTPresent(), BLTStatus(), etc.
 * - Some form of phone (MC) book integration
 * - Add manufacturer custom extensions (Nokia, Ericsson, etc)
 * - Allocate channel numbers automatically.

COMPATIBILITY

PLEASE email theo@crazygreek.co.uk with the results of ANY device not listed in here (working or not), or if the device is listed and it doesn't work! Please also email full debug output for any device not working correctly or generating errors in log.

HandsFree Profile

HS (HeadSet)

AG (AudioGateway)


Mailing List

Any questions, comments, bugs, or patches - please send to the list.


Download

There is currently no release. Click here for latest snapshot of the code.

Subversion

Latest code. See http://subversion.tigris.org for more information on subversion.

svn co http://svn.tr3.org/chan_bluetooth/trunk/ chan_bluetooth