.\"
.\"	This program is free software; you can redistribute it and/or modify
.\"	it under the terms of the GNU General Public License as published by
.\"	the Free Software Foundation; either version 2 of the License, or
.\"	(at your option) any later version.
.\"
.\"	This program is distributed in the hope that it will be useful,
.\"	but WITHOUT ANY WARRANTY; without even the implied warranty of
.\"	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\"	GNU General Public License for more details.
.\"
.\"	You should have received a copy of the GNU General Public License
.\"	along with this program; if not, write to the Free Software
.\"	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
.\"
.\"
.TH RFCOMM 1 "APRIL 28, 2002" "" ""

.SH NAME
rfcomm \- RFCOMM configuration utility
.SH SYNOPSIS
.BR "rfcomm
[
.I options
] <
.I command
> <
.I dev
>
.SH DESCRIPTION
.B rfcomm
is used to set up, maintain, and inspect the RFCOMM configuration
of the Bluetooth subsystem in the Linux kernel. If no
.B command
is given, or if the option
.B -a
is used,
.B rfcomm
prints information about the configured RFCOMM devices.
.SH OPTIONS
.TP
.BI -h
Gives a list of possible commands.
.TP
.BI -a
Prints information about all configured RFCOMM devices.
.TP
.BI -r
Switch TTY into raw mode (doesn't work with "bind").
.TP
.BI -f " <file>"
Specify alternate config file.
.TP
.BI -i " <hciX> | <bdaddr>"
The command is applied to device
.BI -A
Enable authentication.
.BI -E
Enable encryption.
.BI -S
Secure connection.
.BI -M
Become the master of a piconet.
.I
hciX
, which must be the name or the address of an installed Bluetooth
device. If not specified, the command will be use the first
available Bluetooth device.
.TP
.BI -A
Enable authentification
.TP
.BI -E
Enable encryption
.TP
.BI -S
Secure connection
.TP
.BI -M
Become the master of a piconet
.TP
.BI -L " <seconds>"
Set linger timeout
.SH COMMANDS
.TP
.BI show " <dev>"
Display the information about the specified device.
.TP
.BI connect " <dev> [bdaddr] [channel]"
Connect the RFCOMM device to the remote Bluetooth device on the
specified channel. If no channel is specified, it will use the
channel number 1. If also the Bluetooth address is left out, it
tries to read the data from the config file. This command can
be terminated with the key sequence CTRL-C.
.TP
.BI listen " <dev> [channel] [cmd]"
Listen on a specified RFCOMM channel for incoming connections.
If no channel is specified, it will use the channel number 1, but
a channel must be specified before cmd. If cmd is given, it will be
executed as soon as a client connects. When the child process
terminates or the client disconnect, the command will terminate.
Occurences of {} in cmd will be replaced by the name of the device
used by the connection. This command can be terminated with the key
sequence CTRL-C.
.TP
.BI watch " <dev> [channel] [cmd]"
Watch is identical to
.B listen
except that when the child process terminates or the client
disconnect, the command will restart listening with the same
parameters.
.TP
.BI bind " <dev> [bdaddr] [channel]"
This binds the RFCOMM device to a remote Bluetooth device. The
command did not establish a connection to the remote device, it
only creates the binding. The connection will be established right
after an application tries to open the RFCOMM device. If no channel
number is specified, it uses the channel number 1. If the Bluetooth
address is also left out, it tries to read the data from the config
file.

If
.B all
is specified for the RFCOMM device, then all devices that have
.B "bind yes"
set in the config will be bound.
.TP
.BI release " <dev>"
This command releases a defined RFCOMM binding.

If
.B all
is specified for the RFCOMM device, then all bindings will be removed.
This command didn't care about the settings in the config file.
.SH AUTHOR
Written by Marcel Holtmann <marcel@holtmann.org>.
.br
