BTSCO(4)

NAME
btsco - Bluetooth SCO Audio

SYNOPSIS
btsco* at bthub?
audio* at audiobus?

DESCRIPTION
btsco provides support for Bluetooth SCO Audio devices through the audio(4) driver. btsco is configured at run time with the btdevctl program.

The following properties are used by btsco during autoconfiguration:

local-bdaddr
    Local device address.

remote-bdaddr
    Remote device address.

service-name
    btsco matches the ‘HF’ and ‘HSET’ services. For the ‘HF’ service, the btsco device will, on open(2), listen for incoming connections from the remote device. Otherwise, btsco will attempt to initiate a connection to the remote device.

rfcomm-channel
    This integer value is not used directly, but will be stored and passed via the BTSCO_INFO ioctl as shown below.

SCO connections require a baseband connection between the two devices before they can be created. btsco does not create this, but can provide information to facilitate an application setting up a control channel prior to use, via the BTSCO_INFO ioctl(2) call on the mixer device, which returns a btsco_info structure as follows:

    #include <dev/bluetooth/btsco.h>
    struct btsco_info {
    	bdaddr_t	laddr;		/* controller bdaddr */
    	bdaddr_t	raddr;		/* headset bdaddr */
    	uint8_t		channel;	/* RFCOMM channel */
    	int		vgs;		/* mixer index speaker */
    	int		vgm;		/* mixer index mic */
    };
    #define BTSCO_INFO	_IOR('b', 16, struct btsco_info)

btsco can be configured to act in Connect or Listen mode. In Connect mode, it will initiate a connection to the remote device on an open(2) call, whereas in Listen mode open(2) will block until the remote device initiates the connection.

SEE ALSO
ioctl(2), audio(4), bluetooth(4)

HISTORY
The btsco driver was written for NetBSD 4.0 by Iain Hibbert under the sponsorship of Itronix, Inc.

BUGS
btsco takes no notice of the HCI Voice Setting in the Bluetooth controller, and must be 0x0060 (the default) as alternate values are currently unsupported.