xref: /freebsd/usr.sbin/bluetooth/rfcomm_pppd/rfcomm_pppd.8 (revision b2c76c41be32f904179efed29c0ca04d53f3996c)
11a63eb31SJulian Elischer.\" Copyright (c) 2001-2003 Maksim Yevmenkin <m_evmenkin@yahoo.com>
21a63eb31SJulian Elischer.\" All rights reserved.
31a63eb31SJulian Elischer.\"
41a63eb31SJulian Elischer.\" Redistribution and use in source and binary forms, with or without
51a63eb31SJulian Elischer.\" modification, are permitted provided that the following conditions
61a63eb31SJulian Elischer.\" are met:
71a63eb31SJulian Elischer.\" 1. Redistributions of source code must retain the above copyright
81a63eb31SJulian Elischer.\"    notice, this list of conditions and the following disclaimer.
91a63eb31SJulian Elischer.\" 2. Redistributions in binary form must reproduce the above copyright
101a63eb31SJulian Elischer.\"    notice, this list of conditions and the following disclaimer in the
111a63eb31SJulian Elischer.\"    documentation and/or other materials provided with the distribution.
121a63eb31SJulian Elischer.\"
131a63eb31SJulian Elischer.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
141a63eb31SJulian Elischer.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
151a63eb31SJulian Elischer.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
161a63eb31SJulian Elischer.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
171a63eb31SJulian Elischer.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
181a63eb31SJulian Elischer.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
191a63eb31SJulian Elischer.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
201a63eb31SJulian Elischer.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
211a63eb31SJulian Elischer.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
221a63eb31SJulian Elischer.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
231a63eb31SJulian Elischer.\" SUCH DAMAGE.
241a63eb31SJulian Elischer.\"
250986ab12SMaksim Yevmenkin.\" $Id: rfcomm_pppd.8,v 1.7 2003/09/07 18:32:11 max Exp $
2672f00208SRuslan Ermilov.\"
271a63eb31SJulian Elischer.Dd February 4, 2003
281a63eb31SJulian Elischer.Dt RFCOMM_PPPD 8
291a63eb31SJulian Elischer.Os
301a63eb31SJulian Elischer.Sh NAME
311a63eb31SJulian Elischer.Nm rfcomm_pppd
321a63eb31SJulian Elischer.Nd RFCOMM PPP daemon
331a63eb31SJulian Elischer.Sh SYNOPSIS
341a63eb31SJulian Elischer.Nm
3572f00208SRuslan Ermilov.Fl c
3672f00208SRuslan Ermilov.Op Fl dh
372aa65cf7SMaksim Yevmenkin.Fl a Ar address
3872f00208SRuslan Ermilov.Fl C Ar channel
3972f00208SRuslan Ermilov.Fl l Ar label
4013706e45SMaksim Yevmenkin.Fl u Ar N
4172f00208SRuslan Ermilov.Nm
4272f00208SRuslan Ermilov.Fl s
43b1fae135SMaksim Yevmenkin.Op Fl dDhS
442aa65cf7SMaksim Yevmenkin.Op Fl a Ar address
4572f00208SRuslan Ermilov.Fl C Ar channel
4672f00208SRuslan Ermilov.Fl l Ar label
471a63eb31SJulian Elischer.Sh DESCRIPTION
481a63eb31SJulian ElischerThe
491a63eb31SJulian Elischer.Nm
50cb233e74SMarkus Bruefferdaemon is a simple wrapper daemon that allows the use of
5172f00208SRuslan Ermilov.Xr ppp 8
52cb233e74SMarkus Brueffervia an RFCOMM connection.
5372f00208SRuslan ErmilovIt can operate in two modes: client and server.
541a63eb31SJulian Elischer.Pp
55cb233e74SMarkus BruefferIn client mode,
561a63eb31SJulian Elischer.Nm
579b90f236SRuslan Ermilovopens an RFCOMM connection to the specified server's
5872f00208SRuslan Ermilov.Ar BD_ADRR
5972f00208SRuslan Ermilovand
6072f00208SRuslan Ermilov.Ar channel .
61cb233e74SMarkus BruefferOnce the RFCOMM connection is established,
621a63eb31SJulian Elischer.Nm
631a63eb31SJulian Elischerexecutes
6472f00208SRuslan Ermilov.Xr ppp 8
651a63eb31SJulian Elischerin
6672f00208SRuslan Ermilov.Fl direct
6772f00208SRuslan Ermilovmode with the specified
6872f00208SRuslan Ermilov.Ar label .
69cb233e74SMarkus BruefferLikewise,
7072f00208SRuslan Ermilov.Xr ppp 8
71cb233e74SMarkus Bruefferoperates over the RFCOMM connection just like it would over a standard serial
72cb233e74SMarkus Bruefferport, thus allowing a user to
7372f00208SRuslan Ermilov.Dq "dial out"
741a63eb31SJulian Elischerand connect to the Internet.
751a63eb31SJulian Elischer.Pp
76cb233e74SMarkus BruefferIn server mode,
771a63eb31SJulian Elischer.Nm
786fb9b618SGiorgos Keramidasopens an RFCOMM socket and listens for incoming connections from remote clients.
796fb9b618SGiorgos KeramidasOnce the new incoming connection is accepted,
801a63eb31SJulian Elischer.Nm
811a63eb31SJulian Elischerforks and executes
8272f00208SRuslan Ermilov.Xr ppp 8
831a63eb31SJulian Elischerin
8472f00208SRuslan Ermilov.Fl direct
8572f00208SRuslan Ermilovmode with the specified
8672f00208SRuslan Ermilov.Ar label .
87cb233e74SMarkus BruefferLikewise,
8872f00208SRuslan Ermilov.Xr ppp 8
89cb233e74SMarkus Bruefferoperates over the RFCOMM connection just like it would over a standard serial
90cb233e74SMarkus Bruefferport, thus providing network connectivity to remote clients.
911a63eb31SJulian Elischer.Pp
921a63eb31SJulian ElischerThe options are as follows:
931a63eb31SJulian Elischer.Bl -tag -width indent
942aa65cf7SMaksim Yevmenkin.It Fl a Ar address
95cb233e74SMarkus BruefferIn client mode, this required option specifies the address of the remote
9672f00208SRuslan ErmilovRFCOMM server.
97cb233e74SMarkus BruefferIn server mode, this option can be used to specify the local
982aa65cf7SMaksim Yevmenkinaddress to listen on.
99cb233e74SMarkus BruefferBy default, in server mode, the daemon will listen on
1001a63eb31SJulian Elischer.Dv ANY
1011a63eb31SJulian Elischeraddress.
1022aa65cf7SMaksim YevmenkinThe address can be specified as BD_ADDR or name.
103cb233e74SMarkus BruefferIf a name was specified, the
1042aa65cf7SMaksim Yevmenkin.Nm
1052aa65cf7SMaksim Yevmenkinutility will attempt to resolve the name via
1062aa65cf7SMaksim Yevmenkin.Xr bt_gethostbyname 3 .
1071a63eb31SJulian Elischer.It Fl C Ar channel
108cb233e74SMarkus BruefferIn both client and server mode, this required option specifies the RFCOMM
109cb233e74SMarkus Bruefferchannel to connect to or listen on.
110cb233e74SMarkus BruefferIn server mode, the channel should be a number between 1 and 30.
111cb233e74SMarkus BruefferIn client mode, the channel could either be a number between 1 and 30
1129b90f236SRuslan Ermilovor a service name.
1139b90f236SRuslan ErmilovSupported service names are:
1140986ab12SMaksim Yevmenkin.Cm DUN
115cb233e74SMarkus Brueffer(Dial-Up Networking) and
1160986ab12SMaksim Yevmenkin.Cm LAN
117cb233e74SMarkus Brueffer(LAN Access Using PPP).
118cb233e74SMarkus BruefferIf a service name is used instead of a numeric channel number, then
1190986ab12SMaksim Yevmenkin.Nm
120cb233e74SMarkus Bruefferwill try to obtain an RFCOMM channel number via SDP
121cb233e74SMarkus Brueffer(Service Discovery Protocol).
12272f00208SRuslan Ermilov.It Fl c
1239b90f236SRuslan ErmilovAct as an RFCOMM client.
12472f00208SRuslan ErmilovThis is the default mode.
1251a63eb31SJulian Elischer.It Fl d
12672f00208SRuslan ErmilovDo not detach from the controlling terminal, i.e., run in foreground.
127b1fae135SMaksim Yevmenkin.It Fl D
128b1fae135SMaksim YevmenkinIn server mode, register the
129b1fae135SMaksim Yevmenkin.Cm DUN
130b1fae135SMaksim Yevmenkin(Dial-Up Networking) service in addition to the
131b1fae135SMaksim Yevmenkin.Cm LAN
132b1fae135SMaksim Yevmenkin(LAN Access Using PPP) service.
133b1fae135SMaksim YevmenkinAT-command exchange can be faked with
134b1fae135SMaksim Yevmenkin.Xr ppp 8
135b1fae135SMaksim Yevmenkinchat script.
1361a63eb31SJulian Elischer.It Fl h
1371a63eb31SJulian ElischerDisplay usage message and exit.
1381a63eb31SJulian Elischer.It Fl l Ar label
139cb233e74SMarkus BruefferIn both client and server mode, this required option specifies which
14072f00208SRuslan Ermilov.Xr ppp 8
14172f00208SRuslan Ermilovlabel will be used.
1421985a3a3SMaksim Yevmenkin.It Fl S
143cb233e74SMarkus BruefferIn server mode, register the
144cb233e74SMarkus Brueffer.Cm SP
145cb233e74SMarkus Brueffer(Serial Port) service in addition to the
146cb233e74SMarkus Brueffer.Cm LAN
147cb233e74SMarkus Brueffer(LAN Access Using PPP) service.
148cb233e74SMarkus Brueffer.Pp
1491a74e6a1SRuslan ErmilovIt appears that some cell phones are using the so-called
1501a74e6a1SRuslan Ermilov.Dq "callback mechanism" .
1511a74e6a1SRuslan ErmilovIn this scenario, the user is trying to connect his cell phone to the Internet,
152cb233e74SMarkus Bruefferwhile the user's host computer is acting as the gateway server.
1531985a3a3SMaksim YevmenkinIt seems that it is not possible to tell the phone to just connect and start
154cb233e74SMarkus Bruefferusing the
155cb233e74SMarkus Brueffer.Cm LAN
156cb233e74SMarkus Bruefferservice.
1571a74e6a1SRuslan ErmilovInstead, the user's host computer must
1581a74e6a1SRuslan Ermilov.Dq "jump start"
159cb233e74SMarkus Bruefferthe phone by connecting to the phone's
160cb233e74SMarkus Brueffer.Cm SP
161cb233e74SMarkus Bruefferservice.
1621985a3a3SMaksim YevmenkinWhat happens next is the phone kills the existing connection and opens another
1631985a3a3SMaksim Yevmenkinconnection back to the user's host computer.
164cb233e74SMarkus BruefferThe phone really wants to use the
165cb233e74SMarkus Brueffer.Cm LAN
166cb233e74SMarkus Bruefferservice, but for whatever reason it looks for the
167cb233e74SMarkus Brueffer.Cm SP
168cb233e74SMarkus Bruefferservice on the user's host computer.
169cb233e74SMarkus BruefferThis brain-damaged behavior was reported for the Nokia 6600 and the
170cb233e74SMarkus BruefferSony/Ericsson P900.
1711a63eb31SJulian Elischer.It Fl s
1729b90f236SRuslan ErmilovAct as an RFCOMM server.
17313706e45SMaksim Yevmenkin.It Fl u Ar N
174cb233e74SMarkus BruefferThis option maps directly to the
17513706e45SMaksim Yevmenkin.Fl unit
17613706e45SMaksim Yevmenkin.Xr ppp 8
177cb233e74SMarkus Brueffercommand-line option and tells
17813706e45SMaksim Yevmenkin.Nm
17913706e45SMaksim Yevmenkinto instruct
18013706e45SMaksim Yevmenkin.Xr ppp 8
18113706e45SMaksim Yevmenkinto only attempt to open
18213706e45SMaksim Yevmenkin.Pa /dev/tun Ns Ar N .
183cb233e74SMarkus BruefferThis option only works in client mode.
1841a63eb31SJulian Elischer.El
1851a63eb31SJulian Elischer.Sh PPP CONFIGURATION
18672f00208SRuslan Ermilov.Ss Important Notes on PPP Configuration
1871a63eb31SJulian ElischerSpecial attention is required when adding new RFCOMM configurations to the
18872f00208SRuslan Ermilovexisting PPP configuration.
18972f00208SRuslan ErmilovPlease keep in mind that PPP will
1901a63eb31SJulian Elischer.Em always
1911a63eb31SJulian Elischerexecute commands in the
19272f00208SRuslan Ermilov.Dq Li default
1931a63eb31SJulian Elischerlabel of your
1941a63eb31SJulian Elischer.Pa /etc/ppp/ppp.conf
19572f00208SRuslan Ermilovfile.
19672f00208SRuslan ErmilovPlease make sure that the
19772f00208SRuslan Ermilov.Dq Li default
1981a63eb31SJulian Elischerlabel
1991a63eb31SJulian Elischer.Em only
2001a63eb31SJulian Elischercontains commands that apply to
2011a63eb31SJulian Elischer.Em every
20272f00208SRuslan Ermilovother label.
20372f00208SRuslan ErmilovIf you need to use PPP for both dialing out and accepting incoming
2041a63eb31SJulian ElischerRFCOMM connections, please make sure you have moved all commands related to
2051a63eb31SJulian Elischerdialing out from the
20672f00208SRuslan Ermilov.Dq Li default
20772f00208SRuslan Ermilovsection into an appropriate outgoing label.
20872f00208SRuslan Ermilov.Ss RFCOMM Server
20972f00208SRuslan ErmilovOne of the typical examples is the LAN access.
210cb233e74SMarkus BruefferIn this example, an RFCOMM connection
211cb233e74SMarkus Bruefferis used as a null-modem connection between a client and a server.
212cb233e74SMarkus BruefferBoth client and server will start talking PPP right after the RFCOMM
213cb233e74SMarkus Bruefferconnection has been established.
2141a63eb31SJulian Elischer.Bd -literal -offset indent
2151a63eb31SJulian Elischerrfcomm-server:
2161a63eb31SJulian Elischer set timeout 0
2171a63eb31SJulian Elischer set lqrperiod 10
2181a63eb31SJulian Elischer set ifaddr 10.0.0.1 10.0.0.2 255.255.255.0
2191a63eb31SJulian Elischer enable lqr
2201a63eb31SJulian Elischer accept lqr
221a60c1777SPav Lucistnik accept dns
2221a63eb31SJulian Elischer # Do not use PPP authentication. Assume that
2231a63eb31SJulian Elischer # Bluetooth connection was authenticated already
2241a63eb31SJulian Elischer disable pap
2251a63eb31SJulian Elischer deny pap
2261a63eb31SJulian Elischer disable chap
2271a63eb31SJulian Elischer deny chap
2281a63eb31SJulian Elischer.Ed
22972f00208SRuslan Ermilov.Ss RFCOMM Client
23072f00208SRuslan ErmilovThe
2311a63eb31SJulian Elischer.Nm
232cb233e74SMarkus Bruefferutility supports both
233cb233e74SMarkus Brueffer.Cm LAN
234cb233e74SMarkus Brueffer(LAN Access Using PPP) and
235cb233e74SMarkus Brueffer.Cm DUN
236cb233e74SMarkus Brueffer(Dial-Up Networking) access.
237cb233e74SMarkus BruefferThe client's configuration for
238cb233e74SMarkus Brueffer.Cm LAN
239cb233e74SMarkus Bruefferaccess is very similar to the server's and might look like this:
2401a63eb31SJulian Elischer.Bd -literal -offset indent
2411a63eb31SJulian Elischerrfcomm-client:
2421a63eb31SJulian Elischer enable lqr
2431a63eb31SJulian Elischer accept lqr
2441a63eb31SJulian Elischer set dial
2451a63eb31SJulian Elischer set timeout 0
2461a63eb31SJulian Elischer disable iface-alias
2471a63eb31SJulian Elischer set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
2481a63eb31SJulian Elischer # Do not use PPP authentication. Assume that
2491a63eb31SJulian Elischer # Bluetooth connection was authenticated already
2501a63eb31SJulian Elischer deny pap
2511a63eb31SJulian Elischer disable pap
2521a63eb31SJulian Elischer deny chap
2531a63eb31SJulian Elischer disable chap
2541a63eb31SJulian Elischer.Ed
2551a63eb31SJulian Elischer.Pp
256cb233e74SMarkus BruefferThe client's configuration for
257cb233e74SMarkus Brueffer.Cm DUN
258cb233e74SMarkus Bruefferaccess is different.
25972f00208SRuslan ErmilovIn this scenario, the client gets connected to the virtual serial port on the
26072f00208SRuslan Ermilovserver.
261cb233e74SMarkus BruefferTo open a PPP session, the client must dial a number.
26272f00208SRuslan ErmilovNote that by default
26372f00208SRuslan Ermilov.Xr ppp 8
26472f00208SRuslan Ermilovwill not execute any configured chat scripts.
26572f00208SRuslan ErmilovThe
26672f00208SRuslan Ermilov.Ic force-scripts
26772f00208SRuslan Ermilovoption can be used to override this behavior.
268cb233e74SMarkus BruefferAn example configuration is shown below:
2691a63eb31SJulian Elischer.Bd -literal -offset indent
2701a63eb31SJulian Elischerrfcomm-dialup:
2711a63eb31SJulian Elischer # This is IMPORTANT option
2721a63eb31SJulian Elischer enable force-scripts
2731a63eb31SJulian Elischer
2741a63eb31SJulian Elischer # You might want to change these
2751a63eb31SJulian Elischer set authname
2761a63eb31SJulian Elischer set authkey
2771a63eb31SJulian Elischer set phone "*99***1#"
2781a63eb31SJulian Elischer
2791a63eb31SJulian Elischer # You might want to adjust dial string as well
28072f00208SRuslan Ermilov set dial "ABORT BUSY ABORT NO\\\\sCARRIER TIMEOUT 5 \\
2814b99735dSMaksim Yevmenkin           \\"\\" AT OK-AT-OK ATE1Q0 OK \\\\dATDT\\\\T TIMEOUT 40 CONNECT"
2821a63eb31SJulian Elischer set login
2831a63eb31SJulian Elischer set timeout 30
2841a63eb31SJulian Elischer enable dns
2851a63eb31SJulian Elischer resolv rewrite
2861a63eb31SJulian Elischer
2871a63eb31SJulian Elischer set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
2881a63eb31SJulian Elischer add default HISADDR
2891a63eb31SJulian Elischer.Ed
2901a63eb31SJulian Elischer.Pp
291cb233e74SMarkus BruefferNote that by adjusting the initialization string, one can make a CSD (Circuit
2921a63eb31SJulian ElischerSwitched Data), HSCSD (High Speed Circuit Switched Data) or GPRS (General
29372f00208SRuslan ErmilovPacket Radio Service) connection.
29472f00208SRuslan ErmilovThe availability of the particular connection
2951a63eb31SJulian Elischertype depends on the phone model and service plan activated on the phone.
29659a3c79dSRuslan Ermilov.Sh EXIT STATUS
29759a3c79dSRuslan Ermilov.Ex -std
2981a63eb31SJulian Elischer.Sh EXAMPLES
29972f00208SRuslan Ermilov.Dl "rfcomm_pppd -s -a 00:01:02:03:04:05 -C 1 -l rfcomm-server"
3001a63eb31SJulian Elischer.Pp
30172f00208SRuslan ErmilovThis command will start
3021a63eb31SJulian Elischer.Nm
30372f00208SRuslan Ermilovin the server mode.
30472f00208SRuslan ErmilovThe RFCOMM server will listen on local address
30572f00208SRuslan Ermilov.Li 00:01:02:03:04:05
3061a63eb31SJulian Elischerand channel
30772f00208SRuslan Ermilov.Li 1 .
3086fb9b618SGiorgos KeramidasOnce the incoming connection has been accepted,
3091a63eb31SJulian Elischer.Nm
3101a63eb31SJulian Elischerwill execute
31172f00208SRuslan Ermilov.Xr ppp 8
3121a63eb31SJulian Elischerin
31372f00208SRuslan Ermilov.Fl direct
314cb233e74SMarkus Brueffermode with the
31572f00208SRuslan Ermilov.Dq Li rfcomm-server
3161a63eb31SJulian Elischerlabel.
3171a63eb31SJulian Elischer.Pp
31872f00208SRuslan Ermilov.Dl "rfcomm_pppd -c -a 00:01:02:03:04:05 -C 1 -l rfcomm-client"
31972f00208SRuslan Ermilov.Pp
32072f00208SRuslan ErmilovThis command will start
3211a63eb31SJulian Elischer.Nm
3221a63eb31SJulian Elischerin the client mode.
3231a63eb31SJulian Elischer.Nm
3241a63eb31SJulian Elischerwill try to connect to the RFCOMM server at
32572f00208SRuslan Ermilov.Li 00:01:02:03:04:05
3261a63eb31SJulian Elischeraddress and channel
32772f00208SRuslan Ermilov.Li 1 .
328cb233e74SMarkus BruefferOnce connected,
3291a63eb31SJulian Elischer.Nm
3301a63eb31SJulian Elischerwill execute
33172f00208SRuslan Ermilov.Xr ppp 8
3321a63eb31SJulian Elischerin
33372f00208SRuslan Ermilov.Fl direct
334cb233e74SMarkus Brueffermode with the
33572f00208SRuslan Ermilov.Dq Li rfcomm-client
3361a63eb31SJulian Elischerlabel.
3371a63eb31SJulian Elischer.Sh SEE ALSO
33872f00208SRuslan Ermilov.Xr rfcomm_sppd 1 ,
3392aa65cf7SMaksim Yevmenkin.Xr bluetooth 3 ,
3401a63eb31SJulian Elischer.Xr ng_btsocket 4 ,
34113706e45SMaksim Yevmenkin.Xr ppp 8 ,
34213706e45SMaksim Yevmenkin.Xr sdpcontrol 8 ,
34313706e45SMaksim Yevmenkin.Xr sdpd 8
3441a63eb31SJulian Elischer.Sh AUTHORS
34501c2b8acSBaptiste Daroussin.An Maksim Yevmenkin Aq Mt m_evmenkin@yahoo.com
3460afc94c1SUlrich Spörlein.Sh CAVEATS
3470afc94c1SUlrich SpörleinThe
3480afc94c1SUlrich Spörlein.Nm
3490afc94c1SUlrich Spörleinutility in server mode will try to register the Bluetooth LAN Access Over PPP
350*c69b68f5SAndriy Voskoboinykservice with the local SDP daemon.
3510afc94c1SUlrich SpörleinIf the local SDP daemon is not running,
3520afc94c1SUlrich Spörlein.Nm
3530afc94c1SUlrich Spörleinwill exit with an error.
354