Mailinglist Archive: opensuse-isdn-de (223 mails)

< Previous Next >
Re: [suse-isdn] mppp - mit dial-up verbindungen
  • From: Magnus Rosenbaum <rosenbau@xxxxxxxxxxxxxxxxxxxxxxxxxx>
  • Date: Thu, 11 Oct 2001 20:07:12 +0000 (UTC)
  • Message-id: <3BC5FBBE.EA0E1392@xxxxxxxxxxxxxxxxxxxxxxxxxx>
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/

< Previous Next >