Playing HandsFree with your Linux box

These days we came with the neat idea of using our Linux boxes, be desktop or N800, as handsfree unit for our cellphones... but how to do it?

There is no known open source handsfree profile other than Trolltech's Qtopia, so we did some quick hacks on a draft we have found, both with python-bluez and C that lead us to create the "selfone" project on garage.maemo.

"Selfone" is in its early stage, we're still testing on some phones we have around, but is much cleaner than the original draft. We already have bt-handsfree (.c, .h) module that implements the RFCOMM and bt-sco (.c, .h) for SCO (synchronous connection oriented) audio exchange. These modules are written in pure C (with minor GNU extensions) and provide clean and easy to use interfaces/callbacks. We hope to deliver some GObject wrappers later so it's easier to use with GMainLoop.

We have some basic test application that allows us to work as handsfree unit, dialing, identifying calling lines, accepting or rejecting connections, and our primary goal: be usable as speaker and microphone of your cellphone (on desktop, not N800). One guy is integrating with libgnokii so we can identify calling lines or dial using names instead of numbers.

There are still much to do: test and work around problems with different cell phones (you like how standards are implemented, don't you?), figure out how to route SCO data to HCI instead of PCM on N800 (and OpenMoko?), write sound backends properly (except by sound_file, others are totally kludge)... but we should get there, stay tuned!

Last but not least: we're looking for developers!