rfcomm_pppd -- RFCOMM PPP daemon
rfcomm_pppd -c [-dh] -a BD_ADDR -C channel -l label
rfcomm_pppd -s [-dh] [-a BD_ADDR] -C channel -l label
The rfcomm_pppd daemon is a simple wrapper daemon that allows to use
standard ppp(8) on RFCOMM connection. It can operate in two modes:
client and server.
In the client mode, rfcomm_pppd opens a RFCOMM connection to the specified
server's BD_ADRR and channel. Once RFCOMM connection is established,
rfcomm_pppd executes ppp(8) in -direct mode with the specified
label. The ppp(8) in its turn operates over the RFCOMM connection just
like it would operate over the standard serial port thus allowing user to
``dial out'' and connect to the Internet.
In the server mode, rfcomm_pppd opens a RFCOMM socket and listens for
incomming connections from remote clients. Once the new incomming connection
is accepted, rfcomm_pppd forks and executes ppp(8) in -direct
mode with the specified label. The ppp(8) in its turn operates over the
RFCOMM connection just like it would operate over the standard serial
port thus providing network connectivity to remote clients.
The options are as follows:
-a BD_ADDR
In the client mode this required option specifies the remote
BD_ADDR of the RFCOMM server. In the server mode, this option
can be used to specify the local BD_ADDR to listen on. By
default, server will listen on ANY address.
-C channel
In both client and server modes this required option specifies
RFCOMM channel to connect to or listen on. In the server mode
RFCOMM channel should be number between 1 and 30. In the client
mode RFCOMM channel could be either number between 1 and 30 or
service name. Supported service names are: DUN for DialUp Networking
service and LAN for LAN Access Using PPP service. If
service name was specified instead of numeric RFCOMM channel then
rfcomm_pppd utility will try to obtain RFCOMM channel for the
service via Service Discovery Protocol.
-c Act as a RFCOMM client. This is the default mode.
-d Do not detach from the controlling terminal, i.e., run in foreground.
-h Display usage message and exit.
-l label
In both client and server modes this required option specifies
which ppp(8) label will be used.
-s Act as a RFCOMM server.
Important Notes on PPP Configuration
Special attention is required when adding new RFCOMM configurations to
the existing PPP configuration. Please keep in mind that PPP will always
execute commands in the ``default'' label of your /etc/ppp/ppp.conf file.
Please make sure that the ``default'' label only contains commands that
apply to every other label. If you need to use PPP for both dialing out
and accepting incoming RFCOMM connections, please make sure you have
moved all commands related to dialing out from the ``default'' section
into an appropriate outgoing label.
RFCOMM Server [Toc] [Back]
One of the typical examples is the LAN access. In this example, RFCOMM
connection is used as a null-modem connection between client and server.
Both client and server will start talking PPP right after RFCOMM connection
was established.
rfcomm-server:
set timeout 0
set lqrperiod 10
set ifaddr 10.0.0.1 10.0.0.2 255.255.255.0
enable lqr
accept lqr
# Do not use PPP authentication. Assume that
# Bluetooth connection was authenticated already
disable pap
deny pap
disable chap
deny chap
RFCOMM Client [Toc] [Back]
The rfcomm_pppd utility supports both LAN and DUN (Dial-Up Networking)
access. The client's configuration for the LAN access is very similar to
server's and might look like this.
rfcomm-client:
enable lqr
accept lqr
set dial
set timeout 0
disable iface-alias
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
# Do not use PPP authentication. Assume that
# Bluetooth connection was authenticated already
deny pap
disable pap
deny chap
disable chap
The client's configuration for the DUN access is different. In this scenario,
the client gets connected to the virtual serial port on the
server. To open a PPP session, client must dial a number. Note that by
default ppp(8) will not execute any configured chat scripts. The
force-scripts option can be used to override this behavior. The example
of such configuration is shown below.
rfcomm-dialup:
# This is IMPORTANT option
enable force-scripts
# You might want to change these
set authname
set authkey
set phone "*99***1#"
# You might want to adjust dial string as well
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
\"\" AT OK-AT-OK ATE1Q0 OK \\dATD\\T TIMEOUT 40 CONNECT"
set login
set timeout 30
enable dns
resolv rewrite
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
add default HISADDR
Note that by adjusting the initialization string, one can make CSD (Circuit
Switched Data), HSCSD (High Speed Circuit Switched Data) or GPRS
(General Packet Radio Service) connection. The availability of the particular
connection type depends on the phone model and service plan activated
on the phone.
rfcomm_pppd -s -a 00:01:02:03:04:05 -C 1 -l rfcomm-server
This command will start rfcomm_pppd in the server mode. The RFCOMM
server will listen on local address 00:01:02:03:04:05 and channel 1.
Once the incomming connection has been accepted, rfcomm_pppd will execute
ppp(8) in -direct mode with ``rfcomm-server'' label.
rfcomm_pppd -c -a 00:01:02:03:04:05 -C 1 -l rfcomm-client
This command will start rfcomm_pppd in the client mode. rfcomm_pppd will
try to connect to the RFCOMM server at 00:01:02:03:04:05 address and
channel 1. Once connected, the rfcomm_pppd will execute ppp(8) in
-direct mode with ``rfcomm-client'' label.
The rfcomm_pppd utility exits 0 on success, and >0 if an error occurs.
The rfcomm_pppd utility does not register services with local SDP (Service
Discovery Protocol) daemon.
rfcomm_sppd(1), ng_btsocket(4), ppp(8)
Maksim Yevmenkin <[email protected]>
FreeBSD 5.2.1 February 4, 2003 FreeBSD 5.2.1 [ Back ] |