2005-01-14 17:57:33

by Paul Ionescu

[permalink] [raw]
Subject: [Bluez-users] btsco and headsets questions

Hi,

I was playing with btsco and my bt headset, and I noticed that as long as
btsco is connected, the headset is active and there is SCO traffic even
if the alsa device is not used by anything.
This means that the headset has no chance to enter idle mode in order to
save power.
Is this the intended behavior or is my setup flawed ?
Otherwise the headset is working ok.

Another question is how to set up my linux to automatically connect to the
headset when I press the button on it ?
I think of something like inetd for tcp/ip, which should listen for bt
connections and route them to the appropriate programs.
I need something to listen for my headset, and when I press the button on
it and it tries to connect to my computer (last paired device), then it
will launch btsco MAC-ADDR-OF-REQUESTER.
Is this possible without writing a new program ?

Thanks,
Paul





-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users


2005-02-12 00:23:12

by Fred Schaettgen

[permalink] [raw]
Subject: Re: [Bluez-users] btsco and headsets questions

On Friday 11 February 2005 23:39, Paul Ionescu wrote:
> I think we need something like inetd is for tcpip.
> There is a kbluetoothd that does this, but it depends on kde.
> I managed to modify a little bit the btsco2 in order to use it with
> kbluetoothd. So now, I can press my connect button on HS and it connects to
> my laptop. But I would prefer a small inetd like daemon, something in core
> bluez (which is not yet written).

IIRC I had a short discussion with Marcel once about something like
kbluetoothd (before it existed). He didn't seem to like the idea a lot that
time, but it works pretty well for us now.
It's especially useful if you want users to interactively accept connection.
Asking the user and managing connection policies is all done by the
framework, not by the server process, so there is less duplication of code.
Now that dbus is here, user interaction should also be possible with services
not running under a regular user account and a hypothetical bluetoothd.
It also more resource friendly and it doesn't matter that much if a bluetooth
services crashes from time to time. And you don't have to deal with sdp
registration in you C code and provide a registration file instead. One
concern was that sdp records are not static, but usually it's only the rfcomm
(or l2cap) channel which must be dynamic.

But obviously there wasn't that much demand for it. A "bluetoothd" for just
one or two services looks a bit like overkill. Or how many bluetooth services
are running on your machine?

Fred

--
Fred Schaettgen
[email protected]


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2005-02-11 23:02:47

by Brad Midgley

[permalink] [raw]
Subject: Re: [Bluez-users] btsco and headsets questions

Paul

> I did some hacks on btsco2 and now I can press connect button on my HS and it disconnects the SCO
> channel. Then I press it again twice, and it connects the SCO channel again.

you mean twice in a row means you want to connect? why not have it
toggle like most phones do?

as long as your patch doesn't introduce a dependency on the kde stuff,
we should have a serious look.

i'd rather have a context diff than the complete file. (use cvs diff -u)

brad


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2005-02-11 22:39:49

by Paul Ionescu

[permalink] [raw]
Subject: Re: [Bluez-users] btsco and headsets questions


--- Brad Midgley <[email protected]> wrote:

> Paul
>
> > I was playing with btsco and my bt headset, and I noticed that as long as
> > btsco is connected, the headset is active and there is SCO traffic even
> > if the alsa device is not used by anything.
> > This means that the headset has no chance to enter idle mode in order to
> > save power.
> > Is this the intended behavior or is my setup flawed ?
> > Otherwise the headset is working ok.
>
> our server should time out the connection when not busy. I will add this
> to the bug list now.

I did some hacks on btsco2 and now I can press connect button on my HS and it disconnects the SCO
channel. Then I press it again twice, and it connects the SCO channel again. All this time the ACL
link is up, but no SCO packets are flowing.
I did this by interpreting AT+CHUP to disconnect and reconnect the SCO channel.
In the long run, I was thinking at something better:
When there is a client connected to alsa ( meaning when we need to send or receive audio data),
then send some AT commands to the HS to start the SCO link, and when there are no more alsa
clients, send some AT commands to the HS to disconnect the SCO link.


> > Another question is how to set up my linux to automatically connect to the
> > headset when I press the button on it ?
> > I think of something like inetd for tcp/ip, which should listen for bt
> > connections and route them to the appropriate programs.
> > I need something to listen for my headset, and when I press the button on
> > it and it tries to connect to my computer (last paired device), then it
> > will launch btsco MAC-ADDR-OF-REQUESTER.
> > Is this possible without writing a new program ?
>
> This is in our bug list already. Yes, it needs to be written [by someone].
>
> Brad

I think we need something like inetd is for tcpip.
There is a kbluetoothd that does this, but it depends on kde.
I managed to modify a little bit the btsco2 in order to use it with kbluetoothd.
So now, I can press my connect button on HS and it connects to my laptop.
But I would prefer a small inetd like daemon, something in core bluez (which is not yet written).

If you want, I can send my modified btsco2.c program to play with it.

Best regards,
Paul



__________________________________
Do you Yahoo!?
Meet the all-new My Yahoo! - Try it today!
http://my.yahoo.com




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

2005-02-11 17:01:30

by Brad Midgley

[permalink] [raw]
Subject: Re: [Bluez-users] btsco and headsets questions

Paul

> I was playing with btsco and my bt headset, and I noticed that as long as
> btsco is connected, the headset is active and there is SCO traffic even
> if the alsa device is not used by anything.
> This means that the headset has no chance to enter idle mode in order to
> save power.
> Is this the intended behavior or is my setup flawed ?
> Otherwise the headset is working ok.

our server should time out the connection when not busy. I will add this
to the bug list now.

> Another question is how to set up my linux to automatically connect to the
> headset when I press the button on it ?
> I think of something like inetd for tcp/ip, which should listen for bt
> connections and route them to the appropriate programs.
> I need something to listen for my headset, and when I press the button on
> it and it tries to connect to my computer (last paired device), then it
> will launch btsco MAC-ADDR-OF-REQUESTER.
> Is this possible without writing a new program ?

This is in our bug list already. Yes, it needs to be written [by someone].

Brad


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users