1f2bb1caeSJulian Elischer.\" Copyright (c) 2001-2003 Maksim Yevmenkin <m_evmenkin@yahoo.com> 2f2bb1caeSJulian Elischer.\" All rights reserved. 3f2bb1caeSJulian Elischer.\" 4f2bb1caeSJulian Elischer.\" Redistribution and use in source and binary forms, with or without 5f2bb1caeSJulian Elischer.\" modification, are permitted provided that the following conditions 6f2bb1caeSJulian Elischer.\" are met: 7f2bb1caeSJulian Elischer.\" 1. Redistributions of source code must retain the above copyright 8f2bb1caeSJulian Elischer.\" notice, this list of conditions and the following disclaimer. 9f2bb1caeSJulian Elischer.\" 2. Redistributions in binary form must reproduce the above copyright 10f2bb1caeSJulian Elischer.\" notice, this list of conditions and the following disclaimer in the 11f2bb1caeSJulian Elischer.\" documentation and/or other materials provided with the distribution. 12f2bb1caeSJulian Elischer.\" 13f2bb1caeSJulian Elischer.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14f2bb1caeSJulian Elischer.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15f2bb1caeSJulian Elischer.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16f2bb1caeSJulian Elischer.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17f2bb1caeSJulian Elischer.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18f2bb1caeSJulian Elischer.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19f2bb1caeSJulian Elischer.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20f2bb1caeSJulian Elischer.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21f2bb1caeSJulian Elischer.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22f2bb1caeSJulian Elischer.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23f2bb1caeSJulian Elischer.\" SUCH DAMAGE. 24f2bb1caeSJulian Elischer.\" 250986ab12SMaksim Yevmenkin.\" $Id: rfcomm_sppd.1,v 1.3 2003/09/07 18:15:55 max Exp $ 2672f00208SRuslan Ermilov.\" 27aa6985f4SMaksim Yevmenkin.Dd April 21, 2008 28f2bb1caeSJulian Elischer.Dt RFCOMM_SPPD 1 29f2bb1caeSJulian Elischer.Os 30f2bb1caeSJulian Elischer.Sh NAME 31f2bb1caeSJulian Elischer.Nm rfcomm_sppd 32f2bb1caeSJulian Elischer.Nd RFCOMM Serial Port Profile daemon 33f2bb1caeSJulian Elischer.Sh SYNOPSIS 34f2bb1caeSJulian Elischer.Nm 35*dc7b2697SMaksim Yevmenkin.Op Fl bhtS 362aa65cf7SMaksim Yevmenkin.Fl a Ar address 3772f00208SRuslan Ermilov.Fl c Ar channel 38f2bb1caeSJulian Elischer.Sh DESCRIPTION 39f2bb1caeSJulian ElischerThe 40f2bb1caeSJulian Elischer.Nm 4172f00208SRuslan Ermilovutility is a Serial Port Profile daemon. 420a314f7cSMaksim YevmenkinIt can operate in two modes: client and server. 430a314f7cSMaksim Yevmenkin.Pp 440a314f7cSMaksim YevmenkinIn client mode, 450a314f7cSMaksim Yevmenkin.Nm 460a314f7cSMaksim Yevmenkinopens RFCOMM connection to the specified 472aa65cf7SMaksim Yevmenkin.Ar address 482aa65cf7SMaksim Yevmenkinserver and 4972f00208SRuslan Ermilov.Ar channel . 5072f00208SRuslan ErmilovOnce connection is established, the 51f2bb1caeSJulian Elischer.Nm 52969fdab1SMaksim Yevmenkinutility provides access to the server's remote serial port via stdin/stdout 53969fdab1SMaksim Yevmenkinor via 54*dc7b2697SMaksim Yevmenkin.Xr pts 4 55969fdab1SMaksim Yevmenkininterface if 56969fdab1SMaksim Yevmenkin.Fl t 57969fdab1SMaksim Yevmenkinoption was specified. 58f2bb1caeSJulian Elischer.Pp 590a314f7cSMaksim YevmenkinIf the 600a314f7cSMaksim Yevmenkin.Fl S 610a314f7cSMaksim Yevmenkinoption is specified, 620a314f7cSMaksim Yevmenkin.Nm 630a314f7cSMaksim Yevmenkinwill operate in server mode and act as RFCOMM server, 640a314f7cSMaksim Yevmenkinlistening on 650a314f7cSMaksim Yevmenkin.Dv ANY 660a314f7cSMaksim Yevmenkinaddress and advertising a virtual serial port 670a314f7cSMaksim Yevmenkinvia the 680a314f7cSMaksim Yevmenkin.Xr sdpd 8 690a314f7cSMaksim Yevmenkindaemon. 70aa6985f4SMaksim YevmenkinIf 710a314f7cSMaksim Yevmenkin.Fl t 72aa6985f4SMaksim Yevmenkinoptions was specified, 73*dc7b2697SMaksim Yevmenkinthe server side of the virtual serial port is attached to a pseudo-terminal. 74aa6985f4SMaksim YevmenkinOtherwise the virtual serial port is attached to the stdin/stdout. 750a314f7cSMaksim Yevmenkin.Nm 760a314f7cSMaksim Yevmenkinshould be run as root in order to communicate with 77aa6985f4SMaksim Yevmenkin.Xr sdpd 8 780a314f7cSMaksim Yevmenkinin this case. 790a314f7cSMaksim Yevmenkin.Pp 8072f00208SRuslan ErmilovThe 81f2bb1caeSJulian Elischer.Nm 8272f00208SRuslan Ermilovutility opens both master and slave pseudo terminals. 8372f00208SRuslan ErmilovThis is done to ensure that RFCOMM connection stays open until 84f2bb1caeSJulian Elischer.Nm 8572f00208SRuslan Ermilovis terminated. 8672f00208SRuslan ErmilovThe data received from the master pseudo terminal are sent over 8772f00208SRuslan Ermilovthe RFCOMM connection. 8872f00208SRuslan ErmilovThe data received from the RFCOMM connection are written 8972f00208SRuslan Ermilovinto master pseudo terminal. 9072f00208SRuslan ErmilovThe application in its turn opens the slave pseudo 91f2bb1caeSJulian Elischerterminal and operates on it just like it would operate over the standard serial 92f2bb1caeSJulian Elischerport. 93f2bb1caeSJulian Elischer.Pp 94f2bb1caeSJulian ElischerThe options are as follows: 95f2bb1caeSJulian Elischer.Bl -tag -width indent 962aa65cf7SMaksim Yevmenkin.It Fl a Ar address 970a314f7cSMaksim YevmenkinIn client mode, 980a314f7cSMaksim Yevmenkinthis required option specifies the address of the remote RFCOMM server. 990a314f7cSMaksim YevmenkinIf this option is specified in server mode, 1000a314f7cSMaksim Yevmenkin.Nm 1010a314f7cSMaksim Yevmenkinwill only accept connections from the 1020a314f7cSMaksim Yevmenkin.Tn Bluetooth 1030a314f7cSMaksim Yevmenkindevice with address 1040a314f7cSMaksim Yevmenkin.Ar address . 1052aa65cf7SMaksim YevmenkinThe address can be specified as BD_ADDR or name. 1060a314f7cSMaksim YevmenkinIf name was specified then 1072aa65cf7SMaksim Yevmenkin.Nm 1082aa65cf7SMaksim Yevmenkinutility will attempt to resolve the name via 1092aa65cf7SMaksim Yevmenkin.Xr bt_gethostbyname 3 . 110f2bb1caeSJulian Elischer.It Fl b 11172f00208SRuslan ErmilovDetach from the controlling terminal, i.e., run in background. 112f2bb1caeSJulian Elischer.It Fl c Ar channel 1130a314f7cSMaksim YevmenkinIn both client and server mode, 114aa6985f4SMaksim Yevmenkinthis option specifies the RFCOMM channel to connect to or listen on. 1150a314f7cSMaksim YevmenkinIn server mode, 1160a314f7cSMaksim Yevmenkinthe channel should be a number between 1 and 30. 1170a314f7cSMaksim YevmenkinIf not specified, 1180a314f7cSMaksim Yevmenkin.Nm 119aa6985f4SMaksim Yevmenkinwill try to bind to 120aa6985f4SMaksim Yevmenkin.Dq wildcard 121aa6985f4SMaksim YevmenkinRFCOMM channel number. 122aa6985f4SMaksim YevmenkinThe actual RFCOMM channel will be obtained via 123aa6985f4SMaksim Yevmenkin.Xr getsockname 2 124aa6985f4SMaksim Yevmenkincall and will be used to register Serial Port service with 125aa6985f4SMaksim Yevmenkin.Xr sdpd 8 . 1260a314f7cSMaksim YevmenkinIn client mode, 1270a314f7cSMaksim Yevmenkinthe channel could either be a number between 1 and 30 or a service name. 128d47d4f47SMaksim YevmenkinSupported service names are: 129d47d4f47SMaksim Yevmenkin.Cm DUN 130d47d4f47SMaksim Yevmenkin(for DialUp Networking service), 131d47d4f47SMaksim Yevmenkin.Cm FAX 132a9412967SMaksim Yevmenkin(for Fax service), 133a9412967SMaksim Yevmenkin.Cm LAN 134a9412967SMaksim Yevmenkin(for LAN Access Using PPP service) and 135d47d4f47SMaksim Yevmenkin.Cm SP 136d47d4f47SMaksim Yevmenkin(for Serial Port service). 1370986ab12SMaksim YevmenkinIf channel was not specified then 1380986ab12SMaksim Yevmenkin.Nm 139d47d4f47SMaksim Yevmenkinutility will try to obtain RFCOMM channel for Serial Port service via Service 140d47d4f47SMaksim YevmenkinDiscovery Protocol from the server. 141f2bb1caeSJulian Elischer.It Fl h 142f2bb1caeSJulian ElischerDisplay usage message and exit. 1430a314f7cSMaksim Yevmenkin.It Fl S 1440a314f7cSMaksim YevmenkinServer mode; see 1450a314f7cSMaksim Yevmenkin.Sx DESCRIPTION . 146*dc7b2697SMaksim Yevmenkin.It Fl t 147*dc7b2697SMaksim YevmenkinUse slave pseudo tty. 148969fdab1SMaksim YevmenkinIf not set stdin/stdout will be used. 149969fdab1SMaksim YevmenkinThis option is required if 150969fdab1SMaksim Yevmenkin.Fl b 151969fdab1SMaksim Yevmenkinoption was specified. 152f2bb1caeSJulian Elischer.El 1536c7216dfSRuslan Ermilov.Sh FILES 154*dc7b2697SMaksim Yevmenkin.Bl -tag -width ".Pa /dev/pts/[num]" -compact 155*dc7b2697SMaksim Yevmenkin.It Pa /dev/pts/[num] 1566c7216dfSRuslan Ermilovslave pseudo terminals 1576c7216dfSRuslan Ermilov.El 1586c7216dfSRuslan Ermilov.Sh EXIT STATUS 1596c7216dfSRuslan Ermilov.Ex -std 160f2bb1caeSJulian Elischer.Sh EXAMPLES 161*dc7b2697SMaksim Yevmenkin.Dl "rfcomm_sppd -a 00:01:02:03:04:05 -c 1 -t" 162f2bb1caeSJulian Elischer.Pp 16372f00208SRuslan ErmilovWill start the 164f2bb1caeSJulian Elischer.Nm 16572f00208SRuslan Ermilovutility and open RFCOMM connection to the server at 16672f00208SRuslan Ermilov.Li 00:01:02:03:04:05 167f2bb1caeSJulian Elischerand channel 16872f00208SRuslan Ermilov.Li 1 . 169*dc7b2697SMaksim YevmenkinOnce the connection has been established, a 170*dc7b2697SMaksim Yevmenkin.Xr pts 4 171f2bb1caeSJulian Elischercan be used to talk to the remote serial port on the server. 172*dc7b2697SMaksim Yevmenkin.Nm 173*dc7b2697SMaksim Yevmenkinprints the name of the 174*dc7b2697SMaksim Yevmenkin.Xr pts 4 175*dc7b2697SMaksim Yevmenkinto use on stdout. 176f2bb1caeSJulian Elischer.Sh SEE ALSO 1772aa65cf7SMaksim Yevmenkin.Xr bluetooth 3 , 178f2bb1caeSJulian Elischer.Xr ng_btsocket 4 , 179*dc7b2697SMaksim Yevmenkin.Xr pts 4 , 1800a314f7cSMaksim Yevmenkin.Xr rfcomm_pppd 8 , 1810a314f7cSMaksim Yevmenkin.Xr sdpd 8 182f2bb1caeSJulian Elischer.Sh AUTHORS 1832b7af31cSBaptiste Daroussin.An Maksim Yevmenkin Aq Mt m_evmenkin@yahoo.com 1846c7216dfSRuslan Ermilov.Sh BUGS 1856c7216dfSRuslan ErmilovPlease report if found. 186