#!/bin/bash #Start/Stop Script für ISDN-Netzwerk Devices #(c) Rainmaker MultiMedia OHG # #$Author$ #$Date$ #$Revision$ # #$Log$ #Revision 1.6 2004/02/20 14:42:11 kueller #Einstellungen und Setup fuer Kanalbuendelung hinzugefuegt. Start fuer ibod #muss noch eingebaut werden, wenn das binary fuer ibod existiert # #Revision 1.5 2003/04/19 08:10:37 kueller #Restart Option eingebaut # #Revision 1.4 2002/11/04 22:40:43 kueller #Wenn keine ISDN - Geräte konfiguriert sind, wird dies nun zuverlässiger erkannt, #und keine Fehlermeldung mehr erzeugt. Dazu war das Nachbearbeiten der Variable #DEVNUM mit sed notwendig. "wc" hinterlässt leerzeichen in der Variable. # #Revision 1.3 2002/05/14 09:16:59 hkueller #ippp# wird nun mit der adresse 1.1.1.1 initialisiert. 0.0.0.0 wäre zwar richtig, #jedoch wird so das interface bei der netzwerkinitialisierung mit # ip -f inet addr list #nicht erkannt - was zu fehlern bei der initialisierung des Routings führt #(u.U. nicht eingeschaltenes (/proc/sys/net/ipv4/ip_forward). # #Revision 1.2 2001/09/28 22:59:41 kueller #ipppd wird nun nur beendet, wenn ippp Interfaces configuriert sind. # #Revision 1.1.1.1 2001/09/23 00:21:27 kueller #Neustart wg. Datenverlust # #Revision 1.1.1.1 2001/08/29 20:55:09 cro #Erstes einspielen der Dateien # # source /etc/init.d/functions DEVNUM=`ls /etc/sysconfig/net/isdn.* 2>/dev/null|wc -w` DEVNUM=`echo "$DEVNUM"|sed -e "s/ *//"` case $1 in start) if [ ! "$DEVNUM" = "0" ]; then for i in `ls /etc/sysconfig/net/isdn.*|cut -d "." -f2`; do echo -n "Setting up isdn Interface $i" source /etc/sysconfig/net/isdn.$i isdnctrl addif $i >/dev/null isdnctrl addphone $i out $OUTPHONE >/dev/null isdnctrl eaz $i $EAZ >/dev/null isdnctrl huptimeout $i $HANGUP >/dev/null isdnctrl dialmax $i $DIALMAX >/dev/null isdnctrl chargehup $i $CHARGEHUP >/dev/null isdnctrl l2_prot $i hdlc >/dev/null isdnctrl dialmode $i $DIALMODE >/dev/null if [ "$CHANNELB" ]; then isdnctrl addslave $CHANNELB >/dev/null isdnctrl sdelay $CHANNELB 0 >/dev/null isdnctrl trigger $CHANNELB 4096 >/dev/null isdnctrl addphone $CHANNELB out $OUTPHONE >/dev/null isdnctrl eaz $CHANNELB $EAZ >/dev/null isdnctrl huptimeout $CHANNELB $HANGUP >/dev/null isdnctrl dialmax $CHANNELB $DIALMAX >/dev/null isdnctrl chargehup $CHANNELB $CHARGEHUP >/dev/null isdnctrl l2_prot $CHANNELB hdlc >/dev/null isdnctrl dialmode $CHANNELB $DIALMODE >/dev/null fi case $i in ippp?) isdnctrl encap $i syncppp >/dev/null if [ "$CHANNELB" ]; then isdnctrl encap $CHANNELB syncppp >/dev/null fi ipppd /dev/$i file /etc/ppp/options.$i if [ $DEFAULT == 1 ]; then ifconfig ippp0 1.1.1.1 route add default dev ippp0 fi ;; isdn?) isdnctrl addphone $i in $INPHONE >/dev/null isdnctrl chargeint $i $CHARGEINT >/dev/null isdnctrl callback $i $CALLBACK >/dev/null isdnctrl cbdelay $i $CBDELAY >/dev/null isdnctrl cbhup $i $CBHUP >/dev/null isdnctrl secure $i $SECURE >/dev/null isdnctrl encap $i rawip >/dev/null ;; *) logger -p daemon.notice -t isdn "Unknown Device name $i" ;; esac evaluate_retval done fi ;; stop) route del default IPPD=1 for i in `ls /etc/sysconfig/net/isdn.*|cut -d "." -f2`; do case $i in ippp?) if [ $IPPD == "1" ]; then echo -n "Stopping ipppd Daemons" killproc /sbin/ipppd IPPD=0 fi ;; esac echo -n "Deleting isdn Interface $i" isdnctrl delif $i force >/dev/null evaluate_retval done ;; restart) $0 stop sleep 1 $0 start ;; *) echo "Usage: $0 {start|stop|restart}" esac