#!/bin/sh

sh -n ~/.ip-up

# $Id: connect,v 1.42 1999/01/08 11:45:57 czyborra Exp czyborra $

# First argument may be M0=quiet, M1=dial, M2=listen, M3=greet

case $1 in [Mm][0123]) MUTE=$1; shift;; *) MUTE=m3
esac

# Start pppd with the right arguments if not running yet.

case $1 in

...) shift;;

*)  killall tail
    tail -n 1 -f /var/log/messages &

    case ${provider=$1} in 

	cs)    shift; set cs $*;;
	[mz]*) shift; set max $*;;
	[ad]*) shift; set dds $*;;
	"") case `hostname -f` in
	    **.nl) set bitoe;;
	    *****) set max;;
	    esac
    esac

    exec pppd modem crtscts connect "$0 $MUTE ... $*" `
	    case $provider in
	    cs)  echo user czyborra ;;
	    max) echo user czybcdih ;;
	    btx) echo user 000878590489045324917#0001;;
	    esac`

    exit 2
esac

# Dialing prefixes for Amsterdam and Berlin and Sweden:

case $2 in

    009*) ASD=00931W20 BLN=00949W30 TU=$BLN-314;;
    0314) ASD=0031-20- BLN=0-       TU=;;
    0*3*) ASD=0031-20- BLN=030-     TU=$BLN-314-;;
    004*) ASD=0031-20- BLN=0049-30- TU=$BLN-314-;;
    ****) ASD= BLN= TU=314-

esac


# Password fetching routines

password()
{
    {
	echo -n "Password: "; 
	trap "exec stty echo < /dev/tty" 0 1 2 3
	stty -echo; read PASS; echo; stty echo; trap 0 1 2 3

    } < /dev/tty > /dev/tty 2>/dev/tty

    case "$PASS" in "") exit 1;; *) echo "$PASS"; esac
}

zrzword()
{
    awk '/czybcdih/{print$3}' /etc/ppp/pap-secrets
}

# Login dialogues

case $1 in

basta)  NUMBERS="${TU}20988 ${TU}730 ${BLN}39991099" # ${TU}20920"
        DIALOG="IRB \\n login: \\pczyborra word: \\qp`password`"
        ;;

bitoe)  NUMBERS="${ASD}5350535"
        DIALOG=": Pbitoe d: `password`"
        ;;

cs)	NUMBERS="${BLN}3984780"
	;;

[ad]*)  NUMBERS="${ASD}6225222"
        DIALOG="login: czyborra word: `zrzword` : ppp"
        ;;

btx)	NUMBERS="0191011"
	;;

snafu)  NUMBERS="${BLN}254420"
        DIALOG=": Poma : `password`"
        ;;

sof**)	NUMBERS="${BLN}4210290"
	DIALOG="protocol: ppp"
	;;

cisco)  NUMBERS="${TU}20934 ${TU}20952"
        DIALOG="> who > login name: czybcdih word: `zrzword` > ppp bytes"
        ;;

max|*)  NUMBERS="${BLN}31553500 ${TU}70500"
	DIALOG="name: czybcdih word: `zrzword` > ppp"
	;;

esac

# Dialing

trap exit 15
while :
do for NUMBER in $NUMBERS
do chat -V -t 30 ABORT BUSY ABORT CARRIER ABORT TONE ABORT HOOK \
"" atz OK ats=0${MUTE}dt${NUMBER} CONNECT ${DIALOG:+""} $DIALOG && 
echo ppp >&2  && logger -t pppd "Connection with $NUMBER"
case $? in 0|2) exit $?;; *) echo "---> Exit $?" >&2; esac
done
done
