Return-Path: Message-ID: <446CDD43.3050604@free.fr> From: Fabien Chevalier MIME-Version: 1.0 To: bluez-devel@lists.sourceforge.net Content-Type: text/plain; charset=ISO-8859-1; format=flowed Subject: [Bluez-devel] New bluez headset implementation Sender: bluez-devel-admin@lists.sourceforge.net Errors-To: bluez-devel-admin@lists.sourceforge.net Reply-To: bluez-devel@lists.sourceforge.net List-Unsubscribe: , List-Id: BlueZ development List-Post: List-Help: List-Subscribe: , List-Archive: Date: Thu, 18 May 2006 22:46:59 +0200 Hello all, i've been spending most of my spare time in the past month writing an alternative implementation to btsco for headsets support. The starting point was me being frustrated not to be able to use my laptop for VoIP because of crappy microphones the manufacturers usually put in. So my goal now is to go wireless with bluetooth. :-) So here i am. The software i wrote is now mature enough to be shared with others. What i'm looking for now is peer review from experienced bluez developpers about it. But that's enough about me, let's talk about the software :-) So What's In ? What is implemented is the AG side of the headset profile. Both Headset initiated connections and access gateway initiated connections are supported. It does not support A2DP, as it is another profile, and moreover people here are already working on the subject :-) The spirit that governed the design was the following: - be able to handle voice over IP applications well (this means keeping buffering at a minimum for a reduced latency) - make it easy to use for open source VoIp apps developpers (the idea is that it should be very easy for the apps to provide some basic support for bluetooth headsets with no change to the application itself) - support 100% of bluetooth headset profile (device connect/disconnect, headset button push) The architecture is the following: - 1 daemon, responsible for doing SDP, handling RFCOMM and SCO channels, parsing AT commands, sending DBUS signals when things happen. The daemon handles application requests (referred to as AG initiated connection in HSP spec) or headset connection requests (referred to as HS initiated connection in HSP spec) The daemon also handles session caching between PCM open/close. - 2 ALSA user space IO plugins (1 control, 1 PCM). Both of them communicate with the daemon using unix sockets. The PCM also has an instance of the SCO socket, so that it can reads/write data directly to it. Compared to btsco, it differs in the following way: - it is 100% userspace. No more kernel module. - all parameters are supplied by the application to the alsa pcm plugin, that will eventually forward them to the daemon. This will make implementation of user friendly MMI much easier (in particular, there is no need to lauch the daemon separately with a predefined BD address. The gui will thus be able to provide bd address). - it handles only one active headset at a time - it supports HS initiated connections as well - codebase cleaner. It should be possible with minimal pain to support handsfree profile. Still to be done : 1) more testing 2) DBUS signalling to tell the world about connected / disconnected / button pushed events. 3) some kind of switching from headset to an alternate sound device in case the headset is unavailable. 4) interoperability testing against a variety of devices. 5) document the design 6) debug kernel sco support (more on that on a separate e-mail) I'm likely to do 3), 5), however 1 and 2 might be better handled by somebody else, and 4 is just everybody's work :-) Where to get the software: Simple! On my hard disk!! No i'm kidding... but in fact not completely. ;-) I don't wanna start a whole open source project for such a small thing. So for now i will send it by private e-mail to developers interested in giving it a try. Just reply to this e-mail if you are interested. How to play with the software: - use standard aplay/arecord tools (not very funny) - use xmms (a litte more funny :-) ) - use ekiga 2.0.1 (top fun!- however you will need to patch it and rebuild it) Fabien ------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Bluez-devel mailing list Bluez-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bluez-devel