• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Problem mit Internet aktivieren per Telefon

Yanai

Newbie
Hallo an alle!

Ich wollte mich mal an etwas Ausgefallenerem versuchen, nämlich meine Internet-Verbindung (ISDN) per Telefonanruf auf- bzw. wieder abzubauen. Es funktioniert auch teilweise, aber eben nicht vollständig. Folgendes Problem tritt bei mir auf: Nach Anleitung von dieser Seite lasse ich durch isdnlog ein Script aufrufen um abhängig von der angerufenen MSN die Verbindung entweder auf- oder abzubauen. Da das Device ippp0 nach dem Start des Rechners noch nicht existiert, muss ich es zuerst durch Aufruf von ifup ippp0 aktivieren und kann mich dann mit isdnctrl dial ippp0 auch ins Internet einwählen. Will ich danach aber über einen weiteren Anruf die Verbindung wieder beenden (über isdnctrl hangup ippp0), passiert nichts. Habe ich dagegen die Verbindung über KInternet von Hand aufgebaut, lässt sie sich durch einen Anruf beenden. Auch wenn ich nach dem Start des Rechners den Befehl ifup ippp0 von Hand starte und im Script diesen Befehl auskommentiere, kann ich die Verbindung nach Belieben starten und trennen per Anruf. Aber das ist leider nicht Sinn und Zweck der Sache, da ich über entsprechende Hardware den Rechner auch per Anruf hochfahren lassen will, und da kann ich ja keinen Befehl manuell eingeben sondern muss alles über das Script durchführen lassen :wink:

Ich glaube jedenfalls ich habe den Fehler schon etwas eingegrenzt, habe allerdings keine Idee woher er kommt und wie ich ihn lösen kann. Ich hoffe von euch kann mir da jemand weiterhelfen. Hier mal meine Vermutung:

So sieht mein Script "handycall" aus, welches von isdnlog aufgerufen wird:
Code:
#!/bin/sh

localnum=$1

case "$localnum" in
        +49**********)
                ifup ippp0
                isdnctrl dial ippp0
                ;;
        +49**********)
                isdnctrl hangup ippp0
                ;;
esac

Und so der Eintrag in /etc/isdn/callerid.conf
Code:
[NUMBER]
NUMBER = +49xxxxxxxxxx
ALIAS = Matthias Handy
START = {
   [FLAG]
   FLAGS = I|R|
   PROGRAM = /usr/local/bin/handycall $3
}

[NUMBER]
NUMBER = xxxxxxxxxx
ALIAS = Matthias Handy
START = {
   [FLAG]
   FLAGS = I|R|
   PROGRAM = /usr/local/bin/handycall $3
}
Ich habe meine Nummer einmal mit und einmal ohne Ländervorwahl drin (jeweils ohne führende Null bei der Vorwahl), da ich der Meinung bin meine Nummer würde mal so und mal so angezeigt werden.

Rufe ich jetzt in einer Situation an wo es funktioniert, sieht der entsprechende Ausschnitt der /var/log/messages so aus (anrufende Nummer = xxx, angerufene Nummer = ***):
Code:
Jul  5 21:15:09 Melchior-1 isdnlog: Jul 05 21:15:09 * Call to tei 127 from Matthias Handy on +49 *****/*****, Wörlitz  RING (Speech)
Jul  5 21:15:09 Melchior-1 isdnlog: Jul 05 21:15:09 * Call to tei 127 from Matthias Handy on +49 *****/*****, Wörlitz  HLC: CCITT, Telefonie
Jul  5 21:15:09 Melchior-1 isdnlog: ippp0: hung up
Jul  5 21:15:09 Melchior-1 kernel: capidrv-1: incoming call xxxxxxxxxx,1,1,*****
Jul  5 21:15:09 Melchior-1 kernel: capidrv-1: patching si2=1 to 0 for VBOX
Jul  5 21:15:09 Melchior-1 kernel: isdn_net: call from xxxxxxxxxx -> 0 ***** ignored
Jul  5 21:15:09 Melchior-1 kernel: isdn_tty: call from xxxxxxxxxx -> ***** ignored
Jul  5 21:15:09 Melchior-1 kernel: capidrv-1: incoming call xxxxxxxxxx,1,0,***** ignored

In einer Situation wo es dagegen nicht funktioniert sieht es wie folgt aus:
Code:
Jul  5 21:20:24 Melchior-1 kernel: capidrv-1: incoming call xxxxxxxxxx,1,1,*****
Jul  5 21:20:24 Melchior-1 kernel: capidrv-1: patching si2=1 to 0 for VBOX
Jul  5 21:20:24 Melchior-1 kernel: isdn_net: call from xxxxxxxxxx -> 0 ***** ignored
Jul  5 21:20:24 Melchior-1 kernel: isdn_tty: call from xxxxxxxxxx -> ***** ignored
Jul  5 21:20:24 Melchior-1 kernel: capidrv-1: incoming call xxxxxxxxxx,1,0,***** ignored

Wie man sieht fehlt in diesem Fall der komplette erste Teil, der von isdnlog erzeugt wird. Es hat also den Anschein als ob isdnlog von dem Anruf überhaupt nichts mitbekommt, und deshalb kann es auch das Script zum Einwählen/Auflegen nicht ausführen. Dies ist wie gesagt nur dann der Fall wenn ich ifup vom Script ausführen lasse, bei manueller Ausführung passiert dies nicht. Ich habe es auch schon mit einer Zeitverzögerung zwischen ifup und isdnctrl versucht, 30 Sekunden, ohne Erfolg.

Ich hoffe wirklich irgendjemand hat eine Idee wo das Problem liegen könnte, oder kennt vielleicht einen anderen Weg den ISDN-Adapter zu initialisieren außer über ifup.

Danke
Matthias
 
Oben