#!/bin/bash
###################################################################
#
# These parameters control the attack dialing sequence.
#
# Maximum number of attempts to reach the telephone number(s)
MAX_ATTEMPTS=10

# Delay between each of the attempts. This is a parameter to sleep
# so use "15s" for 15 seconds, "1m" for 1 minute, etc.
SLEEP_DELAY=10s

###################################################################
#
# This is a list of telephone numbers. Add new numbers if you wish
# and see the function 'callall' below for the dial process.
PHONE1=<INSERT PHONE NUMBER>

###################################################################
#
# If you use the ppp-on script, then these are passed to this routine
# automatically. There is no need to define them here. If not, then
# you will need to set the values.
#
ACCOUNT=<INSERT USER LOGIN>
PASSWORD=<INSERT USER PASSWORD>

###################################################################
#
# Function to initialize the modem and ensure that it is in command
# state. This may not be needed, but it doesn't hurt.
#
function initialize
{
    /usr/sbin/chat -v TIMEOUT 3 '' AT 'OK-+++\c-OK'
    return
}

###################################################################
#
# Script to dial a telephone
#
function callnumber
{
/usr/sbin/chat -v							\
	ABORT		'\nBUSY\r'			\
	ABORT		'\nNO ANSWER\r'			\
	ABORT		'\nNO CARRIER\r'		\
	ABORT		'\nNO DIALTONE\r'		\
	ABORT		'\nRINGING\r\n\r\nRINGING\r'	\
	''		ATDT$1				\
	CONNECT		''				\
	ogin:--ogin:	$ACCOUNT			\
	assword:	$PASSWORD
#
# If the connection was successful then end the whole script with a
# success.
#
    if [ "$?" = "0" ]; then
       exit 0
    fi

    return
}

###################################################################
#
# Script to dial any telephone number
#
function callall
{
#   echo "dialing attempt number: $1" >/dev/console
    callnumber $PHONE1
#    callnumber $PHONE2
}

###################################################################
#
# Initialize the modem to ensure that it is in the command state
#
initialize
if [ ! "$?" = "0" ]; then
   exit 1
fi

#
# Dial telephone numbers until one answers
#
attempt=0
while : ; do
    attempt=`expr $attempt + 1`
    callall $attempt
    if [ "$attempt" = "$MAX_ATTEMPTS" ]; then
	exit 1
    fi	
    sleep "$SLEEP_DELAY"
done
