#!/bin/sh # # /etc/init.d/isdn.dial # # ISDN Dial trigger # # Copyright 1997 Peter Bieringer # # # Version: 2.11 Datum: 18.11.1997 # # Changes since 2.10: # deleting default route at stop is switched to delete all routes through # ISDN device to preserve automatic dial-up #set -x # Source function library. [ -f /etc/init.d/functions ] || exit 0 . /etc/init.d/functions # Source ISDN Hardware [ -f /etc/sysconfig/isdn-hw ] || exit 0 . /etc/sysconfig/isdn-hw # Source ISDN SyncPPP [ -f /etc/sysconfig/isdn ] || exit 0 . /etc/sysconfig/isdn-syncppp SYSPATH="/sbin" DELALLIP4ROUTES="/usr/local/sbin/delip4routes" # Check if ISDN Hardware is configured (isdn-hw.init start) if ! [ -f /var/lock/subsys/isdn-hw ] ; then echo -e "\aNo ISDN Hardware Is Configured!" exit 1 fi # Check if ISDN SyncPPP is configured (isdn-syncppp.init start) if ! [ -f /var/lock/subsys/isdn-syncppp ] ; then echo -e "\aNo ISDN SyncPPP Is Configured!" exit 1 fi # Choose Dial Device if [ "$2" = "" ] ; then DIALDEVICE=$ISDNDEVICE else DIALDEVICE=$2 fi #set -x case "$1" in start) echo "Dial ISDN Device $DIALDEVICE" START=0 TRIES=0 DIALWAIT=8 # seconds echo "Dial Up With $ISDNDIALMAX Tries:" while ! [ $TRIES = $ISDNDIALMAX ] ; do # Trigger DialUp $ISDNCTRLBIN dial $DIALDEVICE echo -n "Wait $DIALWAIT seconds" TRIES=$[ TRIES + 1 ] WAIT=0 while ! [ $WAIT = $DIALWAIT ] ; do sleep 1 WAIT=$[ WAIT + 1 ] echo -n "." # Check if online if { imontty | grep -i "outgoing" } ; then START=1 if [ $START = 1 ] ; then break; fi; fi; done if [ $START = 1 ] ; then break; fi; echo "[$TRIES/$ISDNDIALMAX]" done if ! [ $START = 1 ] ; then echo -e "\aDial Up Without Success!" $ISDNCTRLBIN hangup $DIALDEVICE exit 1; fi; echo "Dial Up Succeeded!" if [ $DIALDEVICE = $ISDNDEVICE ] ; then echo "Set Default-Route to ISDN" $SYSPATH/route add default netmask 0.0.0.0 dev $DIALDEVICE # Change software link to another resolv.conf, # which has other DNS entries echo "Change 'resolv.conf' to PPP usage" ln -f -s /etc/resolv.conf.ppp /etc/resolv.conf fi echo "ISDN Device $DIALDEVICE Is Dialed Up" ;; stop) echo "Hang Up ISDN Device $DIALDEVICE" # HangUp $ISDNCTRLBIN hangup $DIALDEVICE if [ $DIALDEVICE = $ISDNDEVICE ] ; then echo "Change 'resolv.conf' to normal usage" ln -f -s /etc/config/resolv.conf /etc/resolv.conf echo "Delete all routes to ISDN" $DELALLIP4ROUTES $DIALDEVICE fi echo "ISDN Device $DIALDEVICE Is Hanged Up" ;; sleep) echo "Hang Up ISDN Device $DIALDEVICE, but route to ISDN is up (autodial)" # HangUp $ISDNCTRLBIN hangup $DIALDEVICE echo "ISDN Device $DIALDEVICE Is Sleeping" ;; *) echo "Syntax: isdn.dial {start|stop|sleep} " exit 1 esac #set +x exit 0