Bluetooth Headset or Handsfree profile

Maksim Yevmenkin maksim.yevmenkin at savvis.net
Fri Jul 29 15:21:22 GMT 2005


Loren,

>>>Has any work been done yet on implementing the Bluetooth Headset or
>>>Handsfree profiles in FreeBSD?  I'd be quite interesting in helping to
>>>develop it.  If I don't get any responces for a week, I might just start
>>>working on it from scratch.  I believe the Headset profile is simplier,
>>>though it supports less features so I might start with that one.
>>
>>i have the sco support code in my local cvs. so far i managed to receive 
>>audio data from my plantronics m2500 headset with 3com usb bluetooth 
>>dongle. i will give it a little bit more polishing and testing and then 
>> commit it to -current. it probably would not make it to the 6.0 release.
> 
> I purchased a motorola hs805 bt headset for use with my nokia 6230 bt
> cellphone.  I also have a linksys bt adapter for my fbsd box.

ok

>>what exactly are you planning to implement and how exactly would you use 
>>headset and handsfree profiles on freebsd?
> 
> The most interesting application I can think of it speech reconizition
> for a bt headset, similar to what my cellphone already does.  I'd like
> to hook sphinz up to it so I can control various external devices though
> my computer with my voice.  Listening to mp3's or using it for
> voice/video conferencing could be interesting too, though my headset has
> limited quality for audio.

sounds interesting

> Both my cellphone and bt headset support both handsfree and headset so I
> have a lot of combinations I can play with.

well, are you aware that most bluetooth headsets are "dumb"? i.e. the 
headset can only be paired with one host and, after paired, will only 
accept connections from the paired host. what it means is that once 
paired with the cellphone, the headset can only be used with the 
cellphone. it is only possible to, say, transfer the call between the 
headset and the cellphone only. it is *not* possible to transfer the 
call to another audio gateway.

it would have been so nice if cellphones could also use bluetooth to 
connect to audio gateways. this way - as soon as i walk in the room with 
bluetooth audio gateway (such as asterix/skype/etc.) i could switch my 
phone to use it instead of gsm. now all my calls go via voip and not 
coming out of my minutes. i also wish headsets could "remember" more 
then one paired host.

> My understanding of these protocols is that headset/handsfree are a
> high-level protocol that work on top of l2cap/sdp/rfcomm/sco and
> therefore can be developed in userspace to start with.  The one part
> that needs to be developed in the kernel is the sco transport upon which
> various audio and video bt protocols like handsfree are built upon.
> Once that is finished, the handsfree protocol can then be developed as a
> daemon running in userspace.  Without sco, I should still be able to
> implement part of the headset/handfree profiles that deal with the
> various controls they use like the redial button.  I'm thinking I might
> start with this to just get a better understanding of the api neccessary
> for using bt in fbsd.

actually, headset profile is quite simple. all you need to do is to open 
two connections:

1) RFCOMM control connection (looks like serial port) to send control AT 
commands

2) SCO channel to transfer the voice data.

(1) is already supported. support for (2) is coming.

> Also, I would be interested in helping with the sco transport layer as
> well, though I think that means I'll need to be running -current,
> correct?

you could run either RELENG_5,6 or -current. if you choose RELENG branch 
then you will need to merge patches by hand. other then this it should work.

> Is the cvs repository visible on the internet anywhere?

no, my local cvs is not visible. FreeBSD cvs is - 
http://www.freebsd.org/cgi/cvsweb.cgi/

thanks,
max


More information about the freebsd-bluetooth mailing list