anil madhavapeddy // anil.recoil.org

Blueproxy

Blueproxy is a simple proxy server to convert Bluetooth RFCOMM connections into TCP connections. This frees Bluetooth application programmers from having to worry about getting Bluetooth bindings for their language of choice (in my case, OCaml). Notable features include sending preambles to allow a single TCP server to aggregrate multiple Bluetooth sensors, and a scanning mode to continuously detect Bluetooth devices entering into range of a sensor.

Features

Blueproxy can operate in three modes:

Listen Mode Listens for incoming RFCOMM requests, and connects them to a remote TCP server, bi-directionally passing data.
Scan Mode Continuously performs device discovery looking for devices offering a compatible Blueproxy service, and connects them to a remote TCP server.
Splice Mode Designed for command-line invocation, this connects to a single remote RFCOMM address/channel and splices it with a remote TCP server.

Download

blueproxy-1.3.tar.gz   (MD5: bac65859ddc54efb11767ea835d9c40d)

Blueproxy is available under an OpenBSD-style license, which means you can do anything you want it as long as you do not remove my copyright notices from the code. Of course, patches for any enhancements you make would be appreciated.

Installation

Just unpack the distribution and try ./configure && make && make install. Supported operating systems include:

  • Linux Bluez (tested on 2.4.20-2.4.26))
  • FreeBSD 5.3 is required for the SDP daemon which was integrated after 5.2.1 was released. 5.2.1 should work if you backport the SDP daemon.
  • MacOS X Panther support is limited at the moment; you need to create an incoming Bluetooth Serial Port called something like blueproxy, and use /dev/tty.blueproxy as the interface. This is the best that can be done until decent Bluetooth APIs hopefully show up in Tiger. I've found the current version is enough for limited use on my Powerbook though.

Change Log

January 17 2005: Add silent/verbose command line options.

January 14 2005: Autoconf support and use TCP_NODELAY.

September 7 2004: Minor bug-fixes and code cleanup.

July 31 2004: Initial version 1.0 released.

Thanks

This work was funded by Intel Research Cambridge, and initial versions helpfully tested and used by Richard Sharp, David Scott, Kieran Mansley and Alastair Tse.