Linux PPP HOWTO
Prev | Chapter 18. Automating your connections - Creating the connection scripts | Next

# 18.2. The ppp-on script

This is the first of a PAIR of scripts that actually fire up the connection.

    #!/bin/sh
    #
    # Script to initiate a PPP connection. This is the first part of the
    # pair of scripts. This is not a secure pair of scripts as the codes
    # are visible with the 'ps' command.  However, it is simple.
    #
    # These are the parameters. Change as needed.
    TELEPHONE=555-1212      # The telephone number for the connection
    ACCOUNT=george          # The account name for logon (as in 'George Burns')
    PASSWORD=gracie         # The password for this account (and 'Gracie Allen')
    LOCAL_IP=0.0.0.0        # Local IP address if known. Dynamic = 0.0.0.0
    REMOTE_IP=0.0.0.0       # Remote IP address if desired. Normally 0.0.0.0
    NETMASK=255.255.255.0   # The proper netmask if needed
    #
    # Export them so that they will be available to 'ppp-on-dialer'
    export TELEPHONE ACCOUNT PASSWORD
    #
    # This is the location of the script which dials the phone and logs
    # in.  Please use the absolute file name as the $PATH variable is not
    # used on the connect option.  (To do so on a 'root' account would be
    # a security hole so don't ask.)
    #
    DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
    #
    # Initiate the connection
    #
    #
    exec /usr/sbin/pppd debug /dev/ttySx 38400 \
            $LOCAL_IP:$REMOTE_IP \
            connect $DIALER_SCRIPT

Here is the ppp-on-dialer script:-

    #!/bin/sh
    #
    # This is part 2 of the ppp-on script. It will perform the connection
    # protocol for the desired connection.
    #
    /usr/sbin/chat -v                                                 \
            TIMEOUT         3                               \
            ABORT           '\nBUSY\r'                      \
            ABORT           '\nNO ANSWER\r'                 \
            ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
            ''              \rAT                            \
            'OK-+++\c-OK'   ATH0                            \
            TIMEOUT         30                              \
            OK              ATDT$TELEPHONE                  \
            CONNECT         ''                              \
            ogin:--ogin:    $ACCOUNT                        \
            assword:        $PASSWORD

For PPP-2.2, the `ppp-off` script looks like:-

    #!/bin/sh
    ######################################################################
    #
    # Determine the device to be terminated.
    #
    if [ "$1" = "" ]; then
            DEVICE=ppp0
    else
            DEVICE=$1
    fi

    ######################################################################
    #
    # If the ppp0 pid file is present then the program is running. Stop it.
    if [ -r /var/run/$DEVICE.pid ]; then
            kill -INT `cat /var/run/$DEVICE.pid`
    #
    # If the kill did not work then there is no process running for this
    # pid. It may also mean that the lock file will be left. You may wish
    # to delete the lock file at the same time.
            if [ ! "$?" = "0" ]; then
                    rm -f /var/run/$DEVICE.pid
                    echo "ERROR: Removed stale pid file"
                    exit 1
            fi
    #
    # Success. Let pppd clean up its own junk.
            echo "PPP link to $DEVICE terminated."
            exit 0
    fi
    #
    # The ppp process is not running for ppp0
    echo "ERROR: PPP link is not active on $DEVICE"
    exit 1

Prev | Home | Next
Automating your connections - Creating the connection scripts | Up | Editing the supplied PPP startup scripts