capiplugin
CAPIPLUGIN(8) CAPIPLUGIN(8)
NAME
capiplugin - Plugin for pppd (Point-to-Point Protocol daemon)
SYNOPSIS
pppd [options] plugin capiplugin.so [options for capiplugin]
before pppd 2.4.1:
pppd [options] plugin /usr/lib/pppd/<pppd-version>/capiplugin.so
[options for capiplugin]
DESCRIPTION
The capiplugin provides a method to use PPP over ISDN with ISDN con-
trollers that provide a CAPI2.0 interface. The plugin is responsible
for the call setup with CAPI2.0. You can dial out, wait for incoming
calls and set up communication over leased lines. It implements a fea-
ture to reject an incoming call and callback. This feature can also be
used when dialing out. In this case, the party called has to reject
the call and call back soon. When using dial-on-demand it is possible
let both parties setup the connection, that means while the pppd is in
dial-on-demand mode not only an outgoing paket but also an incoming
call can trigger the connection setup. This can also combined with
callback to assign the cost to one side only (COSO).
PPPD VERSIONS
The plugin interface of the pppd is binary incompartible between dif-
ferent version of the pppd. So you need a different capiplugin for
every version of the pppd. The different plugins will be in the direc-
tory /usr/lib/ppp/<pppd-version>. Since 2.4.1 pppd checks if the ver-
sion of the plugin matches and also search the plugins in these direc-
tories. With pppd versions before 2.4.1 you need to specify the absolut
pathname of the plugin.
HOW IT WORKS
The capiplugin registers a new_phase_notifier and its own options to
the pppd when loaded. When the pppd goes into phase SERIALCONN, the
capiplugin set up a connection and sets the global variable devnam.
The capiplugin will register a timer function that is called every sec-
ond to handle the CAPI messages while pppd is running. To notify pppd
when CAPI messages arrive, the CAPI file desciptor is added to the list
of file descriptors which the pppd monitors for input. Once the con-
nection is set up the pppd will start PPP negotiation on device devnam.
When the pppd enters the DEAD phase, the connection will be dropped (if
it is still active) When operating in dial-on-demand mode with wakeup
on incoming calls, in phase DORMANT the plugin will setup CAPI2.0 to
accept incoming calls. To wakeup pppd when an incoming call arrives,
the plugin will generate an UDP paket to the discard port (9) of the
gateway, so don't filter this paket or wakeup by incoming a call will
not work.
MODES OF OPERATION
normal dial out
Simply make a connection, for example to your Internet provider.
Required options: number.
Recommended options: msn.
Other possible options: controller, dialmax, dialtimeout, proto-
col and redialdelay.
dial out with callback
Call a given number, the called party rejects the call and then
calls back.
Required options: number and coso remote.
Recommended options: cli and msn or inmsn.
Other possible options: cbwait, controller, connectdelay, dial-
timeout, protocol
dial out on demand
Initiate the connection only on demand, i.e. when data traffic
is present and drop the connection after a fix amount of idle
time.
Required options: number.
Required pppd options: demand, connect, idle.
Recommended options: msn.
Other possible options: controller, dialmax, dialtimeout, proto-
col and redialdelay.
dial out on demand on an incoming phone call
Initiate the connection only on demand, i.e. when data traffic
is present or an incoming phone call is detected and drop the
connection after a fix amount of idle time. This is usefull if
you are not at home and ypou want your computer to make an con-
nection to the internet.
Required options: number and cli.
Required options: number, voicecallwakeup and inmsn and/or cli.
Required pppd options: demand, connect, idle.
Recommended options: msn. Other possible options: controller,
dialmax, dialtimeout, protocol, redialdelay and inmsn.
wait for dial in
Wait for calls and accept incoming calls.
Recommended options: cli and msn or inmsn.
Possible options: connectdelay, controller, dialtimeout, proto-
col
wait for dial in and call back.
Wait for calls, reject the call and then call back.
Required options: cbnumber.
Recommended options: cli and msn or inmsn.
Other possible options: cbdelay, connectdelay, controller, dial-
timeout, protocol
dial on demand and also wait for dial in
Initiate the connection only on demand, i.e. when data traffic
is present or when the other side dial in and drop the connec-
tion after a fix amount of idle time.
Required options: number and inmsn and/or cli.
Recommended options: cli and msn or inmsn.
Optional options: coso caller.
Other possible options: cbdelay, connectdelay, controller, dial-
timeout, protocol
dial on demand and also wait for dial in with COSO.
Initiate the connection only on demand, i.e. when data traffic
is present or when the other side dial in and drop the connec-
tion after a fix amount of idle time. If option coso local is
set, pppd will reject an incoming call from the remote party and
will callback. With the option coso remote set, the remote
party should reject the incoming call and call back.
Required options: number, inmsn and/or cli, coso local or coso
remote.
Recommended options: cli and msn or inmsn.
Other possible options: cbdelay, connectdelay, controller, dial-
timeout, protocol
leased line
set up a leased line connection, with or without CAPI channel
bundling.
Required options: channels. Other possible options:
connectdelay, controller, dialtimeout and protocol
OPTIONS
avmadsl
make an DSL connection with the Fritz!Card DSL controller. The
parameters for the DSL connection will be loaded from file
/etc/drdsl/adsl.conf. This file can be edited or will be created
by the program drdsl.
cbdelay <seconds>
Number of seconds to wait before callback, when acting as dial-
in server with callback. Default value is 2 seconds.
cbnumber <phone numbers>
List of phone numbers for callback, separated by commas, when
acting as dial-in server with callback.
cbwait <seconds>
Time to wait for callback before giving up. Default value is 60
seconds.
channels <channel specification>
List of b-channels or ranges to activate leased line mode, sepa-
rated by commas.
cli <phone numbers>
List of numbers from which incoming calls will be accepted, sep-
arated by commas.
clicb The option is retained for compartiblity reasons only. Use
option coso local or coso remote instead.
Enable callback mode. When option number is set, call number
and wait for callback. When option number is not set, wait for
incoming call, reject the call and call back. This option is
optional if the cbnumber option is set.
connectdelay <seconds>
Number of seconds to wait after a connection is set up, before
PPP negotiation starts. Default value is 0 seconds. This option
is useful when connecting with protocol modem. Some Internet
access servers will hang up if they receive data immediatly
after the connection is established.
controller <controller specification>
For point-to-multipoint <controller specification> is only the
CAPI 2.0 controller number, default is 1. For point-to-point,
specify <controller number>,<ddi>,<length of internal numbers>
coso caller
No callback is done, the costs are assigned to the caller.
coso local
The costs are assigned to the local party. On an incoming call
pppd will reject the call and callback.
coso remote
The costs are assigned to the remote party. On an outcoming
call the remote party will reject the call and callback.
dialmax <times>
Maximum number of times the list of phone numbers is tried
before giving up. Default value is 4.
dialtimeout <seconds>
Time to wait for the connection to be established or fail before
giving up. Default value is 60 seconds.
inmsn <msn>
List of phone numbers to monitor for calls, separated by commas.
If this option is not set, the value of option msn is used.
msn <msn>
Phone number used to make outgoing calls. Also used for incoming
calls if option inmsn is not set.
number <phone numbers>
List of phone numbers to call, separated by commas. Every num-
ber in the list is called until a connection can be established.
When the end of the list is reached, the first number is called
again. See option dialmax.
numberprefix <prefix>
phone number to dial to access an outside line. For example,
numberprefix 0.
protocol hdlc | x75 | v42bis | modem | v110async | v120async
ISDN protocol to use. With hdlc and adskpppoe, the sync option
must be added to the pppd. With x75, v42bis, modem, v110async
and v120async the sync option MUST NOT be enabled. Default value
is hdlc. Not all controllers support v42bis, modem and
v120async. Use capiinfo(8) to view which features your con-
troller supports.
redialdelay <seconds>
Number of seconds to wait between redialing. Default value is 5
seconds.
voicewakeup
With this option a incoming voicecall can trigger an outgoing
connection setup.
EXAMPLE FOR NORMAL DIAL OUT
Probably the most common use of pppd is to dial out to an ISP. This
can be specified with a command like
pppd call isp
where the /etc/ppp/peers/isp file is set up by the system administrator
to resemble the following:
sync
noauth
defaultroute
name USERNAME
plugin capiplugin.so msn MSN
number PHONENUMBER
protocol hdlc
ipcp-accept-local
ipcp-accept-remote
/dev/null
and where the files /etc/ppp/pap-secrets and /etc/ppp/chap-secrets are
set up by the system administrator to resemble the following:
USERNAME * PASSWORD *
EXAMPLE OF DIAL OUT WITH CALLBACK
Dial out with callback can be specified with a command like
pppd call isp-callback
where the /etc/ppp/peers/isp-callback file is set up by the system
administrator to resemble the following:
sync
noauth
defaultroute
name USERNAME
plugin capiplugin.so
msn MSN
number PHONENUMBER
coso remote
cli PHONENUMBER
protocol hdlc
ipcp-accept-local
ipcp-accept-remote
/dev/null
and where the files /etc/ppp/pap-secrets and /etc/ppp/chap-secrets are
set up by the system administrator to resemble the following:
USERNAME * PASSWORD *
EXAMPLE DIAL OUT ON DEMAND
To dial out on demand and drop the link after 120 seconds idle time on
the link add this line to the /etc/inittab file:
isp:23:respawn:/usr/sbin/pppd call isp demand connect "" idle
120
where the /etc/ppp/peers/isp file is set up by the system administrator
to resemble the following:
sync
noauth
defaultroute
name USERNAME
plugin capiplugin.so msn MSN
number PHONENUMBER
protocol hdlc
ipcp-accept-local
ipcp-accept-remote
/dev/null
and where the files /etc/ppp/pap-secrets and /etc/ppp/chap-secrets are
set up by the system administrator to resemble the following:
USERNAME * PASSWORD *
EXAMPLE DIAL OUT ON DEMAND AND ON AN INCOMING PHONE CALL
To dial out on demand or on an incoming phone call and drop the link
after 120 seconds idle time on the link add this line to the /etc/init-
tab file:
isp:23:respawn:/usr/sbin/pppd call isp demand connect "" idle
120
where the /etc/ppp/peers/isp file is set up by the system administrator
to resemble the following:
sync
noauth
defaultroute
name USERNAME
plugin capiplugin.so
msn MSN
number PHONENUMBER
cli VOICEPHONENUMBER
voicecallwakeup
protocol hdlc
ipcp-accept-local
ipcp-accept-remote
/dev/null
and where the files /etc/ppp/pap-secrets and /etc/ppp/chap-secrets are
set up by the system administrator to resemble the following:
USERNAME * PASSWORD *
EXAMPLE DIAL OUT ON DEMAND AND ALSO ACCEPT AN INCOMING DATA CALL
To dial out on demand or on an incoming data call and drop the link
after 120 seconds idle time on the link add this line to the /etc/init-
tab file:
isp:23:respawn:/usr/sbin/pppd call isp demand connect "" idle
120
where the /etc/ppp/peers/isp file is set up by the system administrator
to resemble the following:
sync
noauth
defaultroute
name USERNAME
plugin capiplugin.so
msn MSN
number PHONENUMBER
inmsn MSN
protocol hdlc
ipcp-accept-local
ipcp-accept-remote
/dev/null
and where the files /etc/ppp/pap-secrets and /etc/ppp/chap-secrets are
set up by the system administrator to resemble the following:
USERNAME * PASSWORD *
EXAMPLE OF WAIT FOR DIAL IN WITHOUT CLI AUTHENTICATION
Wait for incoming calls, accept them according to options msn, inmsn,
and protocol.
Do not provide option cli to the capiplugin. Start a pppd for every b
channel. Authorization is checked using PAP or CHAP and the ip numbers
are assigned according to the /etc/ppp/pap-secrets or /etc/ppp/chap-
secrets file. Assume that the server has ip number 192.168.0.1, the
clients are to be assigned the ip numbers starting from 192.168.0.2,
and the hostname of the server is "dialinserver". Add these two lines
to the /etc/inittab file:
p0:23:respawn:/usr/sbin/pppd call incoming-noncli
p1:23:respawn:/usr/sbin/pppd call incoming-noncli
where the /etc/ppp/peers/incoming-noncli file is set up to resemble the
following:
sync
auth
plugin capiplugin.so
inmsn MSN
protocol hdlc 192.168.0.1:
with the files /etc/ppp/pap-secrets and /etc/ppp/chap-secrets set up to
resemble the following:
user1 dialinserver PASSWORD1 192.168.0.2
user2 dialinserver PASSWORD2 192.168.0.3
EXAMPLE OF WAIT FOR DIAL IN WITH CLI AUTHENTICATION
Wait for incoming calls, accept them according to options msn, inmsn,
cli and protocol.
Start a pppd for every client. Assume that the server has ip number
192.168.0.1 and the clients are to be assigned the ip numbers starting
from 192.168.0.2. Add these three lines to the /etc/inittab file:
p0:23:respawn:/usr/sbin/pppd call incoming-cli cli 04711
192.168.0.1:192.168.0.2
p1:23:respawn:/usr/sbin/pppd call incoming-cli cli 04712
192.168.0.1:192.168.0.3
p2:23:respawn:/usr/sbin/pppd call incoming-cli cli 04713
192.168.0.1:192.168.0.4
where the /etc/ppp/peers/incoming-cli file is set up to resemble the
following:
sync
noauth
plugin capiplugin.so
inmsn MSN
protocol hdlc
EXAMPLE OF WAIT FOR DIAL IN WITH CLI AUTHENTICATION AND CALLBACK
Wait for incoming calls, accept them according to options msn, inmsn,
cli and protocol, reject incoming calls and call back.
Start a pppd for every client. Assume that the server has ip number
192.168.0.1 and the clients are to be assigned the ip numbers starting
from 192.168.0.2. Add these three lines to the /etc/inittab file.
p0:23:respawn:/usr/sbin/pppd call incoming-cli cli 04711 cbnum-
ber 4711 192.168.0.1:192.168.0.2
p1:23:respawn:/usr/sbin/pppd call incoming-cli cli 04712 cbnum-
ber 4712 192.168.0.1:192.168.0.3
p2:23:respawn:/usr/sbin/pppd call incoming-cli cli 04713 cbnum-
ber 4713 192.168.0.1:192.168.0.4
where the /etc/ppp/peers/incoming-cli file is set up to resemble the
following:
sync
noauth
plugin capiplugin.so
inmsn MSN
protocol hdlc
EXAMPLE OF A LEASED LINE CONNECTION WITH HDLC
Assume that the server has ip number 192.168.0.1 and the peer has the
ip number 192.168.0.2. Add this line to the /etc/inittab file:
p0:23:respawn:/usr/sbin/pppd call leased-hdlc controller 1 chan-
nels 1 192.168.0.1:192.168.0.2
where the /etc/ppp/peers/leased-hdlc file is set up to resemble the
following:
sync
noauth
lcp-echo-interval 5
lcp-echo-failure 3
lcp-max-configure 50
lcp-max-terminate 2
noccp
noipx
persist
plugin capiplugin.so
protocol hdlc
EXAMPLE OF A LEASED LINE CONNECTION WITH V42BIS
Assume that the server has ip number 192.168.0.1 and the peer has the
ip number 192.168.0.2. Add this line to the /etc/inittab file for
server 1 (192.168.0.1):
p0:23:respawn:/usr/sbin/pppd call leased-v42bis controller 1
channels 1 192.168.0.1:192.168.0.2
and this line to the /etc/inittab file for server 1 (192.168.0.2):
p0:23:respawn:/usr/sbin/pppd call leased-v42bis controller 1
channels p1 192.168.0.2:192.168.0.1
where the /etc/ppp/peers/leased-v42bis file is set up to resemble the
following:
sync
noauth
lcp-echo-interval 5
lcp-echo-failure 3
lcp-max-configure 50
lcp-max-terminate 2
noccp
noipx
persist
plugin capiplugin.so
protocol v42bis
CAVEATS
Every pppd awaiting incoming calls can receive an incoming call first.
So when two pppds are started to monitor the same MSN, one with CLI
Authentication and the other without, the following can happen:
The Client with the CLI specified to the first pppd calls, but
the pppd without the cli option receives the call first and
accepts it.
To combine CLI Authentication and PAP/CHAP Authentication, use one MSN
for CLI authenticated calls and another for the PAP/CHAP authenticated
calls.
DIAGNOSTICS
Messages are sent to the syslog daemon just as in normal pppd opera-
tion; see the pppd manual page.
SEE ALSO
pppd(8), capiinfo(8), capiinit(8), capictrl(8)
AUTHORS
Carsten Paeth (calle@calle.in-berlin.de)
AVM GmbH Berlin (info@avm.de)
CAPIPLUGIN(8)