Markus Feilner wrote:
hm - hört sich sehr gut an, wenn das auch zweikanal unterstützt und das feature addlink/removelink funktioniert - sehr gerne. wie schauts aus mit automatic hangup on incoming call?
wenn das alles bei deinem skript klappt, dann hast du wirklich gute arbeit geleistet
Wenns auch ohne das Skript (mit nur einem Provider) funktioniert hat, dann funktionierts auch mit. Da greift das Skript ja auch garnicht ein. Das Skript läuft nur einmal kurz, wenn Du offline bist und den Provider für die nächste Einwahl wechseln willst. Also hier mal der Code: begin ------------------------------------- #!/bin/bash # # /root/bin/provider # Providerwechsler für ISDN # # (C) 2001 by Magnus Rosenbaum # # Syntax: provider PROVIDERNAME # Als root aufrufen ################################### # Hier die Providerdaten eintragen: # name1="xxx" phon1="" user1="" pass1="" # name2="xxx" phon2="" user2="" pass2="" # easycall # Mo-Fr 9-18 Uhr 2,9 Pf/min, sonst 1,9 Pf/min, 1s-Takt name3="easycall" phon3="01925842" user3="easycall" pass3="easynet" # name4="xxx" phon4="" user4="" pass4="" # name5="xxx" phon5="" user5="" pass5="" # freenet # 9-18 Uhr 2,9 Pf/min, sonst 1,7 Pf/min, 60s-Takt name6="freenet" phon6="01019019231750" user6="x" pass6="x" # name7="xxx" phon7="" user7="" pass7="" # name8="xxx" phon8="" user8="" pass8="" ############################################################## ############################################################## name=$1 if [ $name = $name1 ]; then phon=$phon1 user=$user1 pass=$pass1 elif [ $name = $name2 ]; then phon=$phon2 user=$user2 pass=$pass2 elif [ $name = $name3 ]; then phon=$phon3 user=$user3 pass=$pass3 elif [ $name = $name4 ]; then phon=$phon4 user=$user4 pass=$pass4 elif [ $name = $name5 ]; then phon=$phon5 user=$user5 pass=$pass5 elif [ $name = $name6 ]; then phon=$phon6 user=$user6 pass=$pass6 elif [ $name = $name7 ]; then phon=$phon7 user=$user7 pass=$pass7 elif [ $name = $name8 ]; then phon=$phon8 user=$user8 pass=$pass8 else echo "provider: Kein Provider ausgewählt!" exit; fi echo "provider: Provider $name ($phon,$user,$pass) ausgewählt" ############################################### # /etc/ppp/options.ippp0 generieren echo "provider: Generiere /etc/ppp/options.ippp0 mit user $user" of="/etc/ppp/options.ippp0" echo "# /etc/ppp/options.ippp0 automatically generated" > $of echo "/dev/ippp0 /dev/ippp1" >> $of echo "+mp" >> $of echo "netmask 255.255.255.255" >> $of echo "user \"$user\"" >> $of echo "name \"$user\"" >> $of echo "ipcp-accept-local" >> $of echo "ipcp-accept-remote" >> $of echo "noipdefault" >> $of echo "-vj" >> $of echo "-vjccomp" >> $of echo "-ac" >> $of echo "-pc" >> $of echo "-bsdcomp" >> $of # Hier evtl. mru und mtu anpassen echo "#mru 1524" >> $of echo "#mtu 1500" >> $of echo "noccp" >> $of echo "ms-get-dns" >> $of ############################################### # /etc/ppp/pap-secrets generieren echo "provider: Generiere /etc/ppp/pap-secrets mit user $user und pass $pass" of="/etc/ppp/pap-secrets" echo "\"$user\" * \"$pass\"" > $of echo >> $of of="/etc/ppp/chap-secrets" echo "\"$user\" * \"$pass\"" > $of echo >> $of ############################################### echo "provider: /etc/init.d/i4l restart" /etc/init.d/i4l restart ############################################### echo "provider: Lösche alte Telefonnummern" outgoing=` /usr/sbin/isdnctrl list ippp0 | grep "Outgoing:" ` for oldphone in $outgoing do if [ $oldphone != "Outgoing:" ]; then /usr/sbin/isdnctrl delphone ippp0 out $oldphone fi done outgoing=` /usr/sbin/isdnctrl list ippp1 | grep "Outgoing:" ` for oldphone in $outgoing do if [ $oldphone != "Outgoing:" ]; then /usr/sbin/isdnctrl delphone ippp1 out $oldphone fi done ############################################### echo "provider: Trage Nummer von Provider $name ein: $phon" /usr/sbin/isdnctrl addphone ippp0 out $phon /usr/sbin/isdnctrl addphone ippp1 out $phon ############################################### # Zum anzeigen des aktuellen Providers #echo $name >> /root/.provider /usr/sbin/isdnctrl list all ############################################## end ------------------------------------------------ Ich hab mir dazu eine Anzeige gebaut, damit ich sehen kann, welcher Provider grade aktuell ist: root-tail -i 1 -color black -g 20x1+82+0 /root/.provider& Wenn der Rechner hochgefahren wird, sollte das Skript einmal laufen, um sozusagen den Default-Provider einzustellen.
*dickes lob* - unter vorbehalt ;-)
Danke für Dein Interesse. Ich muss allerdings schon zugeben, dass der Code sehr dirty ist ;-) Ich finde es schon _sehr_ merkwürdig, dass so ein Tool nicht bei den üblichen Distris eingebaut ist, obwohl es ja fast jedem Linux-mit-ISDN-zuhause User sehr viel bringt. Viel Spass damit, Magnum -- begin http://www.informatik.uni-muenchen.de/~_rosenbau/