CAPIPLUGIN(8)

NAME
capiplugin - Plugin for pppd (Point-to-Point Protocol daemon)

SYNOPSIS
pppd [options] plugin /etc/ppp/plugins/capiplugin.so [options for capiplugin]

DESCRIPTION

The capiplugin provides a method to use PPP over ISDN with ISDN controllers 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 feature to reject an incoming call and call back. This feature can also be used when dialing out. In this case, the party called has to reject the call and call back soon.

HOW IT WORKS

The capiplugin registers a new_phase_hook 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 second 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 connection 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) and the timer function and the CAPI file desciptor will be unregistered.

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, protocol and redialdelay.

dial out with callback
    Call a given number, the called party rejects the call and then calls back.
    Required options: number and clicb. Recommended options: cli and msn or inmsn. Other possible options: cbwait, controller, connectdelay, dialtimeout, protocol

wait for dial in
    Wait for calls and accept incoming calls.
    Recommended options: cli and msn or inmsn. Possible options: connectdelay, controller, dialtimeout, protocol

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, dialtimeout, 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

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, separated by commas.

cli <phone numbers>
    List of numbers from which incoming calls will be accepted, separated by commas.

clicb
    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 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>

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 number 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
    ISDN protocol to use. With hdlc, the sync option must be added to the pppd. With x75, v42bis and modem, the sync option MUST NOT be enabled. Default value is hdlc. Not all controllers support v42bis and modem. Use capiinfo(8) to view which features your controller supports.

redialdelay <seconds>
    Number of seconds to wait between redialing. Default value is 5 seconds.

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 /etc/ppp/plugins/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 /etc/ppp/plugins/capiplugin.so
    msn MSN
    number PHONENUMBER
    clicb
    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 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 /etc/ppp/plugins/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 /etc/ppp/plugins/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 cbnumber 4711 192.168.0.1:192.168.0.2
    p1:23:respawn:/usr/sbin/pppd call incoming-cli cli 04712 cbnumber 4712 192.168.0.1:192.168.0.3
    p2:23:respawn:/usr/sbin/pppd call incoming-cli cli 04713 cbnumber 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 /etc/ppp/plugins/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 channels 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 /etc/ppp/plugins/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 /etc/ppp/plugins/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 operation; 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)