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 $ 26f2bb1caeSJulian Elischer.\" $FreeBSD$ 2772f00208SRuslan Ermilov.\" 28aa6985f4SMaksim Yevmenkin.Dd April 21, 2008 29f2bb1caeSJulian Elischer.Dt RFCOMM_SPPD 1 30f2bb1caeSJulian Elischer.Os 31f2bb1caeSJulian Elischer.Sh NAME 32f2bb1caeSJulian Elischer.Nm rfcomm_sppd 33f2bb1caeSJulian Elischer.Nd RFCOMM Serial Port Profile daemon 34f2bb1caeSJulian Elischer.Sh SYNOPSIS 35f2bb1caeSJulian Elischer.Nm 360a314f7cSMaksim Yevmenkin.Op Fl bhS 372aa65cf7SMaksim Yevmenkin.Fl a Ar address 3872f00208SRuslan Ermilov.Fl c Ar channel 39969fdab1SMaksim Yevmenkin.Op Fl t Ar tty 40f2bb1caeSJulian Elischer.Sh DESCRIPTION 41f2bb1caeSJulian ElischerThe 42f2bb1caeSJulian Elischer.Nm 4372f00208SRuslan Ermilovutility is a Serial Port Profile daemon. 440a314f7cSMaksim YevmenkinIt can operate in two modes: client and server. 450a314f7cSMaksim Yevmenkin.Pp 460a314f7cSMaksim YevmenkinIn client mode, 470a314f7cSMaksim Yevmenkin.Nm 480a314f7cSMaksim Yevmenkinopens RFCOMM connection to the specified 492aa65cf7SMaksim Yevmenkin.Ar address 502aa65cf7SMaksim Yevmenkinserver and 5172f00208SRuslan Ermilov.Ar channel . 5272f00208SRuslan ErmilovOnce connection is established, the 53f2bb1caeSJulian Elischer.Nm 54969fdab1SMaksim Yevmenkinutility provides access to the server's remote serial port via stdin/stdout 55969fdab1SMaksim Yevmenkinor via 56f2bb1caeSJulian Elischer.Xr pty 4 57969fdab1SMaksim Yevmenkininterface if 58969fdab1SMaksim Yevmenkin.Fl t 59969fdab1SMaksim Yevmenkinoption was specified. 60f2bb1caeSJulian Elischer.Pp 610a314f7cSMaksim YevmenkinIf the 620a314f7cSMaksim Yevmenkin.Fl S 630a314f7cSMaksim Yevmenkinoption is specified, 640a314f7cSMaksim Yevmenkin.Nm 650a314f7cSMaksim Yevmenkinwill operate in server mode and act as RFCOMM server, 660a314f7cSMaksim Yevmenkinlistening on 670a314f7cSMaksim Yevmenkin.Dv ANY 680a314f7cSMaksim Yevmenkinaddress and advertising a virtual serial port 690a314f7cSMaksim Yevmenkinvia the 700a314f7cSMaksim Yevmenkin.Xr sdpd 8 710a314f7cSMaksim Yevmenkindaemon. 72aa6985f4SMaksim YevmenkinIf 730a314f7cSMaksim Yevmenkin.Fl t 74aa6985f4SMaksim Yevmenkinoptions was specified, 750a314f7cSMaksim Yevmenkinthe server side of the virtual serial port is attached to the pseudo-terminal 760a314f7cSMaksim Yevmenkin.Ar tty . 77aa6985f4SMaksim YevmenkinOtherwise the virtual serial port is attached to the stdin/stdout. 780a314f7cSMaksim Yevmenkin.Nm 790a314f7cSMaksim Yevmenkinshould be run as root in order to communicate with 80aa6985f4SMaksim Yevmenkin.Xr sdpd 8 810a314f7cSMaksim Yevmenkinin this case. 820a314f7cSMaksim Yevmenkin.Pp 8372f00208SRuslan ErmilovThe 84f2bb1caeSJulian Elischer.Nm 8572f00208SRuslan Ermilovutility opens both master and slave pseudo terminals. 8672f00208SRuslan ErmilovThis is done to ensure that RFCOMM connection stays open until 87f2bb1caeSJulian Elischer.Nm 8872f00208SRuslan Ermilovis terminated. 8972f00208SRuslan ErmilovThe data received from the master pseudo terminal are sent over 9072f00208SRuslan Ermilovthe RFCOMM connection. 9172f00208SRuslan ErmilovThe data received from the RFCOMM connection are written 9272f00208SRuslan Ermilovinto master pseudo terminal. 9372f00208SRuslan ErmilovThe application in its turn opens the slave pseudo 94f2bb1caeSJulian Elischerterminal and operates on it just like it would operate over the standard serial 95f2bb1caeSJulian Elischerport. 96f2bb1caeSJulian Elischer.Pp 97f2bb1caeSJulian ElischerThe options are as follows: 98f2bb1caeSJulian Elischer.Bl -tag -width indent 992aa65cf7SMaksim Yevmenkin.It Fl a Ar address 1000a314f7cSMaksim YevmenkinIn client mode, 1010a314f7cSMaksim Yevmenkinthis required option specifies the address of the remote RFCOMM server. 1020a314f7cSMaksim YevmenkinIf this option is specified in server mode, 1030a314f7cSMaksim Yevmenkin.Nm 1040a314f7cSMaksim Yevmenkinwill only accept connections from the 1050a314f7cSMaksim Yevmenkin.Tn Bluetooth 1060a314f7cSMaksim Yevmenkindevice with address 1070a314f7cSMaksim Yevmenkin.Ar address . 1082aa65cf7SMaksim YevmenkinThe address can be specified as BD_ADDR or name. 1090a314f7cSMaksim YevmenkinIf name was specified then 1102aa65cf7SMaksim Yevmenkin.Nm 1112aa65cf7SMaksim Yevmenkinutility will attempt to resolve the name via 1122aa65cf7SMaksim Yevmenkin.Xr bt_gethostbyname 3 . 113f2bb1caeSJulian Elischer.It Fl b 11472f00208SRuslan ErmilovDetach from the controlling terminal, i.e., run in background. 115f2bb1caeSJulian Elischer.It Fl c Ar channel 1160a314f7cSMaksim YevmenkinIn both client and server mode, 117aa6985f4SMaksim Yevmenkinthis option specifies the RFCOMM channel to connect to or listen on. 1180a314f7cSMaksim YevmenkinIn server mode, 1190a314f7cSMaksim Yevmenkinthe channel should be a number between 1 and 30. 1200a314f7cSMaksim YevmenkinIf not specified, 1210a314f7cSMaksim Yevmenkin.Nm 122aa6985f4SMaksim Yevmenkinwill try to bind to 123aa6985f4SMaksim Yevmenkin.Dq wildcard 124aa6985f4SMaksim YevmenkinRFCOMM channel number. 125aa6985f4SMaksim YevmenkinThe actual RFCOMM channel will be obtained via 126aa6985f4SMaksim Yevmenkin.Xr getsockname 2 127aa6985f4SMaksim Yevmenkincall and will be used to register Serial Port service with 128aa6985f4SMaksim Yevmenkin.Xr sdpd 8 . 1290a314f7cSMaksim YevmenkinIn client mode, 1300a314f7cSMaksim Yevmenkinthe channel could either be a number between 1 and 30 or a service name. 131d47d4f47SMaksim YevmenkinSupported service names are: 132d47d4f47SMaksim Yevmenkin.Cm DUN 133d47d4f47SMaksim Yevmenkin(for DialUp Networking service), 134d47d4f47SMaksim Yevmenkin.Cm FAX 135a9412967SMaksim Yevmenkin(for Fax service), 136a9412967SMaksim Yevmenkin.Cm LAN 137a9412967SMaksim Yevmenkin(for LAN Access Using PPP service) and 138d47d4f47SMaksim Yevmenkin.Cm SP 139d47d4f47SMaksim Yevmenkin(for Serial Port service). 1400986ab12SMaksim YevmenkinIf channel was not specified then 1410986ab12SMaksim Yevmenkin.Nm 142d47d4f47SMaksim Yevmenkinutility will try to obtain RFCOMM channel for Serial Port service via Service 143d47d4f47SMaksim YevmenkinDiscovery Protocol from the server. 144f2bb1caeSJulian Elischer.It Fl h 145f2bb1caeSJulian ElischerDisplay usage message and exit. 1460a314f7cSMaksim Yevmenkin.It Fl S 1470a314f7cSMaksim YevmenkinServer mode; see 1480a314f7cSMaksim Yevmenkin.Sx DESCRIPTION . 14972f00208SRuslan Ermilov.It Fl t Ar tty 15072f00208SRuslan ErmilovSlave pseudo tty name. 151969fdab1SMaksim YevmenkinIf not set stdin/stdout will be used. 152969fdab1SMaksim YevmenkinThis option is required if 153969fdab1SMaksim Yevmenkin.Fl b 154969fdab1SMaksim Yevmenkinoption was specified. 155f2bb1caeSJulian Elischer.El 1566c7216dfSRuslan Ermilov.Sh FILES 1576c7216dfSRuslan Ermilov.Bl -tag -width ".Pa /dev/tty[p-sP-S][0-9a-v]" -compact 1586c7216dfSRuslan Ermilov.It Pa /dev/pty[p-sP-S][0-9a-v] 1596c7216dfSRuslan Ermilovmaster pseudo terminals 1606c7216dfSRuslan Ermilov.It Pa /dev/tty[p-sP-S][0-9a-v] 1616c7216dfSRuslan Ermilovslave pseudo terminals 1626c7216dfSRuslan Ermilov.El 1636c7216dfSRuslan Ermilov.Sh EXIT STATUS 1646c7216dfSRuslan Ermilov.Ex -std 165f2bb1caeSJulian Elischer.Sh EXAMPLES 16672f00208SRuslan Ermilov.Dl "rfcomm_sppd -a 00:01:02:03:04:05 -c 1 -t /dev/ttyp1" 167f2bb1caeSJulian Elischer.Pp 16872f00208SRuslan ErmilovWill start the 169f2bb1caeSJulian Elischer.Nm 17072f00208SRuslan Ermilovutility and open RFCOMM connection to the server at 17172f00208SRuslan Ermilov.Li 00:01:02:03:04:05 172f2bb1caeSJulian Elischerand channel 17372f00208SRuslan Ermilov.Li 1 . 17472f00208SRuslan ErmilovOnce the connection has been established, 175f2bb1caeSJulian Elischer.Pa /dev/ttyp1 176f2bb1caeSJulian Elischercan be used to talk to the remote serial port on the server. 177f2bb1caeSJulian Elischer.Sh SEE ALSO 1782aa65cf7SMaksim Yevmenkin.Xr bluetooth 3 , 179f2bb1caeSJulian Elischer.Xr ng_btsocket 4 , 18072f00208SRuslan Ermilov.Xr pty 4 , 1810a314f7cSMaksim Yevmenkin.Xr rfcomm_pppd 8 , 1820a314f7cSMaksim Yevmenkin.Xr sdpd 8 183f2bb1caeSJulian Elischer.Sh AUTHORS 184f2bb1caeSJulian Elischer.An Maksim Yevmenkin Aq m_evmenkin@yahoo.com 1856c7216dfSRuslan Ermilov.Sh BUGS 1866c7216dfSRuslan ErmilovPlease report if found. 187