RFCOMM_PPPD(8) | MidnightBSD System Manager's Manual | RFCOMM_PPPD(8) |
rfcomm_pppd
—
RFCOMM PPP daemon
rfcomm_pppd |
-c [-dh ]
-a address
-C channel
-l label
-u N |
rfcomm_pppd |
-s [-dDhS ]
[-a address]
-C channel
-l label |
The rfcomm_pppd
daemon is a simple wrapper
daemon that allows the use of
ppp(8) via an RFCOMM
connection. It can operate in two modes: client and server.
In client mode, rfcomm_pppd
opens an
RFCOMM connection to the specified server's BD_ADRR
and channel. Once the RFCOMM connection is
established, rfcomm_pppd
executes
ppp(8) in
-direct
mode with the specified
label. Likewise,
ppp(8) operates over the
RFCOMM connection just like it would over a standard serial port, thus
allowing a user to “dial out” and connect to the Internet.
In server mode, rfcomm_pppd
opens an
RFCOMM socket and listens for incoming connections from remote clients. Once
the new incoming connection is accepted, rfcomm_pppd
forks and executes ppp(8) in
-direct
mode with the specified
label. Likewise,
ppp(8) operates over the
RFCOMM connection just like it would over a standard serial port, thus
providing network connectivity to remote clients.
The options are as follows:
-a
addressANY
address. The address can be
specified as BD_ADDR or name. If a name was specified, the
rfcomm_pppd
utility will attempt to resolve the
name via
bt_gethostbyname(3).-C
channelDUN
(Dial-Up Networking) and
LAN
(LAN Access Using PPP). If a service name is
used instead of a numeric channel number, then
rfcomm_pppd
will try to obtain an RFCOMM channel
number via SDP (Service Discovery Protocol).-c
-d
-D
DUN
(Dial-Up
Networking) service in addition to the LAN
(LAN
Access Using PPP) service. AT-command exchange can be faked with
ppp(8) chat script.-h
-l
label-S
SP
(Serial Port)
service in addition to the LAN
(LAN Access Using
PPP) service.
It appears that some cell phones are using the so-called
“callback mechanism”. In this scenario, the user is trying
to connect his cell phone to the Internet, while the user's host
computer is acting as the gateway server. It seems that it is not
possible to tell the phone to just connect and start using the
LAN
service. Instead, the user's host computer
must “jump start” the phone by connecting to the phone's
SP
service. What happens next is the phone kills
the existing connection and opens another connection back to the user's
host computer. The phone really wants to use the
LAN
service, but for whatever reason it looks
for the SP
service on the user's host computer.
This brain-damaged behavior was reported for the Nokia 6600 and the
Sony/Ericsson P900.
-s
-u
N-unit
ppp(8) command-line option
and tells rfcomm_pppd
to instruct
ppp(8) to only attempt to
open /dev/tunN. This option
only works in client mode.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.
One of the typical examples is the LAN access. In this example, an RFCOMM connection is used as a null-modem connection between a client and a server. Both client and server will start talking PPP right after the RFCOMM connection has been 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 accept dns # Do not use PPP authentication. Assume that # Bluetooth connection was authenticated already disable pap deny pap disable chap deny chap
The rfcomm_pppd
utility supports both
LAN
(LAN Access Using PPP) and
DUN
(Dial-Up Networking) access. The client's
configuration for LAN
access is very similar to the
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 DUN
access
is different. In this scenario, the client gets connected to the virtual
serial port on the server. To open a PPP session, the 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. An example 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 \\dATDT\\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 a 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.
The rfcomm_pppd
utility exits 0 on
success, and >0 if an error occurs.
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 incoming connection has been accepted,
rfcomm_pppd
will execute
ppp(8) in
-direct
mode with the
“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,
rfcomm_pppd
will execute
ppp(8) in
-direct
mode with the
“rfcomm-client
” label.
rfcomm_sppd(1), bluetooth(3), ng_btsocket(4), ppp(8), sdpcontrol(8), sdpd(8)
Maksim Yevmenkin <m_evmenkin@yahoo.com>
The rfcomm_pppd
utility in server mode
will try to register the Bluetooth LAN Access Over PPP service with the
local SDP daemon. If the local SDP daemon is not running,
rfcomm_pppd
will exit with an error.
February 4, 2003 | midnightbsd-3.1 |