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