1.\" Copyright (c) 2001-2003 Maksim Yevmenkin <m_evmenkin@yahoo.com> 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23.\" SUCH DAMAGE. 24.\" 25.\" $Id: rfcomm_sppd.1,v 1.3 2003/09/07 18:15:55 max Exp $ 26.\" $FreeBSD$ 27.\" 28.Dd April 21, 2008 29.Dt RFCOMM_SPPD 1 30.Os 31.Sh NAME 32.Nm rfcomm_sppd 33.Nd RFCOMM Serial Port Profile daemon 34.Sh SYNOPSIS 35.Nm 36.Op Fl bhS 37.Fl a Ar address 38.Fl c Ar channel 39.Op Fl t Ar tty 40.Sh DESCRIPTION 41The 42.Nm 43utility is a Serial Port Profile daemon. 44It can operate in two modes: client and server. 45.Pp 46In client mode, 47.Nm 48opens RFCOMM connection to the specified 49.Ar address 50server and 51.Ar channel . 52Once connection is established, the 53.Nm 54utility provides access to the server's remote serial port via stdin/stdout 55or via 56.Xr pty 4 57interface if 58.Fl t 59option was specified. 60.Pp 61If the 62.Fl S 63option is specified, 64.Nm 65will operate in server mode and act as RFCOMM server, 66listening on 67.Dv ANY 68address and advertising a virtual serial port 69via the 70.Xr sdpd 8 71daemon. 72If 73.Fl t 74options was specified, 75the server side of the virtual serial port is attached to the pseudo-terminal 76.Ar tty . 77Otherwise the virtual serial port is attached to the stdin/stdout. 78.Nm 79should be run as root in order to communicate with 80.Xr sdpd 8 81in this case. 82.Pp 83The 84.Nm 85utility opens both master and slave pseudo terminals. 86This is done to ensure that RFCOMM connection stays open until 87.Nm 88is terminated. 89The data received from the master pseudo terminal are sent over 90the RFCOMM connection. 91The data received from the RFCOMM connection are written 92into master pseudo terminal. 93The application in its turn opens the slave pseudo 94terminal and operates on it just like it would operate over the standard serial 95port. 96.Pp 97The options are as follows: 98.Bl -tag -width indent 99.It Fl a Ar address 100In client mode, 101this required option specifies the address of the remote RFCOMM server. 102If this option is specified in server mode, 103.Nm 104will only accept connections from the 105.Tn Bluetooth 106device with address 107.Ar address . 108The address can be specified as BD_ADDR or name. 109If name was specified then 110.Nm 111utility will attempt to resolve the name via 112.Xr bt_gethostbyname 3 . 113.It Fl b 114Detach from the controlling terminal, i.e., run in background. 115.It Fl c Ar channel 116In both client and server mode, 117this option specifies the RFCOMM channel to connect to or listen on. 118In server mode, 119the channel should be a number between 1 and 30. 120If not specified, 121.Nm 122will try to bind to 123.Dq wildcard 124RFCOMM channel number. 125The actual RFCOMM channel will be obtained via 126.Xr getsockname 2 127call and will be used to register Serial Port service with 128.Xr sdpd 8 . 129In client mode, 130the channel could either be a number between 1 and 30 or a service name. 131Supported service names are: 132.Cm DUN 133(for DialUp Networking service), 134.Cm FAX 135(for Fax service), 136.Cm LAN 137(for LAN Access Using PPP service) and 138.Cm SP 139(for Serial Port service). 140If channel was not specified then 141.Nm 142utility will try to obtain RFCOMM channel for Serial Port service via Service 143Discovery Protocol from the server. 144.It Fl h 145Display usage message and exit. 146.It Fl S 147Server mode; see 148.Sx DESCRIPTION . 149.It Fl t Ar tty 150Slave pseudo tty name. 151If not set stdin/stdout will be used. 152This option is required if 153.Fl b 154option was specified. 155.El 156.Sh FILES 157.Bl -tag -width ".Pa /dev/tty[p-sP-S][0-9a-v]" -compact 158.It Pa /dev/pty[p-sP-S][0-9a-v] 159master pseudo terminals 160.It Pa /dev/tty[p-sP-S][0-9a-v] 161slave pseudo terminals 162.El 163.Sh EXIT STATUS 164.Ex -std 165.Sh EXAMPLES 166.Dl "rfcomm_sppd -a 00:01:02:03:04:05 -c 1 -t /dev/ttyp1" 167.Pp 168Will start the 169.Nm 170utility and open RFCOMM connection to the server at 171.Li 00:01:02:03:04:05 172and channel 173.Li 1 . 174Once the connection has been established, 175.Pa /dev/ttyp1 176can be used to talk to the remote serial port on the server. 177.Sh SEE ALSO 178.Xr bluetooth 3 , 179.Xr ng_btsocket 4 , 180.Xr pty 4 , 181.Xr rfcomm_pppd 8 , 182.Xr sdpd 8 183.Sh AUTHORS 184.An Maksim Yevmenkin Aq m_evmenkin@yahoo.com 185.Sh BUGS 186Please report if found. 187