.\"
.\"	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
.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
.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
