Die meisten Probleme bei Callback können durch die Einstellung
des callback delay mit isdnctrl cbdelay
gelöst
werden. Eine Sekunde auf der wählenden Seite A (den Callbackmodus
auf 'out' setzen) und zwei Sekunden auf der angewählten Seite B
(den Callbackmodus auf 'in' setzen) genügt in den meisten
Fällen.
Der Grund für dieses Problem liegt in einem Designfehler des Treibers für den Verbindungslevel.
A wählt B an um einen Rückruf auszulösen. B wehrt den Anruf ab und ruft A zurück und stellt so eine arbeitende Verbindung innerhalb weniger als 4 Sekunden her. Der auslösende Anruf von A nach B wird jedoch erst nach 4 Sekunden vom ISDN Dienstleister beendet (um anderen Geräten auf der B Seite eine Chance der Rufannahme zu geben). Wenn dieser Ruf beendet wird, wird leider auch die bestehende Verbindung von B nach A beendet.
Torsten Hentschel
Torsten.Hentschel@DInet.de
schrieb am 03. Oktober 1996:
Eine Cisco wählt möglicherweise so schnell und häufig, daß der ipppd keine Chance des Zurückrufens hat. Die Ciscos sind so programmiert (klare Aussage eines Cisco-Entwicklers): Wenn eine Cisco ein Paket empfängt, das durch eine auf 'dial on demand' eingestellte Telefonverbindung hinausgehen soll, und es ist ein B-Kanal zur Hinauswahl frei, wird sofort gewählt. Wenn in einem solchen Fall (wie bei Delta Internet seit einem halben Jahr) eine Cisco mit 8 B-Kanälen auf der anderen Seite steht und jemand ein einfaches 'ping RemoteIP' eingibt, wird die Cisco im schlimmsten Fall alle 8 B-Kanäle zum Hinauswählen benutzen. Natürlich kann sie nicht eine Telefonnummer gleichzeitig auf zwei B-Kanälen wählen (es wäre sofort "besetzt"). Die Programmierung der Cisco ist nicht so dumm, sie richtet den nächsten B-Kanal zum Hinauswählen ein bevor sie annimmt, daß der vorherige B-Kanal versagt hat. Solch eine Cisco arbeitet wie ein Maschinengewehr was das Hinauswählen betrifft. Und I4L bekommt keinen freien B-Kanal zur Einwahl wenn die Cisco das nicht will. Das Schlechte daran ist, daß eine Cisco immer (auch bei einer Konfiguration mit 'callback client' = I4L ruft zurück) erwartet, daß die andere Seite den Ruf annimmt, beide auflegen und dann der Rückruf kommt. Username und Password müssen beim Gebrauch von PPP immer vor einem Rückruf ausgetauscht werden. Dadurch stellt man sicher, daß die Person, die den Rückruf verlangt, auch dazu berechtigt ist. (Cisco scheint sich an die Regel der (Deutschen) Telekom zu halten, daß keine Informationen ohne B-Kanal-Verbindung ausgetauscht werden dürfen. Ein Rückruf-Verlangen, identifiziert nur durch die anrufende Telefonnummer, kann im Zweifelsfall als Übertragung von Informationen betrachtet werden).
Torsten Hentschel
Torsten.Hentschel@DInet.de
schrieb zusätzlich am 20. November 1996:
Ich habe den Rückruf über PPP mit zwei CISCOs oft versucht. Nach meiner Erfahrung werden Versuche mit der Kombination CISCO - Linux nicht funktionieren. Eine CISCO handelt ein Rückruf-Verlangen immer per PPP aus. Dazu muss die Gegenseite zuerst den Ruf annehmen und die gesamte Verhandlung (Berechtigung,...) durchführen. Dann legen beide auf und der Rückruf wird durchgeführt. Die Befehle von isdnctrl in Linux beeinflussen nur die Netzwerk-Devices des Kernels und haben keinen oder nur wenig Einfluß darauf, wie ipppd Rückrufe durchführt. ipppd erkennt nicht, daß er einen Rückruf der Gegenseite erwarten soll. Daher lehnt er das Angebot der CISCO über PPP, daß sie zum Rückruf bereit ist, ab. Dann nimmt die CISCO an, daß sie nicht zurück rufen soll (sie erwartet ein explizites Rückruf-Verlangen während der PPP-Verhandlung zu sehen). Die CISCO bestätigt dies, wenn Du bei ihr einloggst und ihre Debug-Meldungen über die Einwahlversuche Deines Linux-Computers mit den folgenden Befehlen ansiehst:
deb ppp chap deb ppp negotiotion deb ppp error term mon
Du musst Dich über telnet einloggen, nicht auf der Konsole, da sonst die CISCO das Loggen nicht über das serielle Interface durchführen kann.
Ulrich Klein
ulik@hprc.tandem.com
schrieb am 14. Dezember 1996:
Irgendwo in den Ascend-Menues kannst Du 'dial broadcast' auf "no" oder "off" setzen. Anderenfalls wird das Ding mit jedem Rundruf wählen. Zumindest mir half das. Falls jemand aus dem Netzwerk, an das die Ascend angeschlossen ist, wirklich eine Verbindung aufbauen will, musst Du die etwas seltsamen Filter benutzen. Ich glaube, es gibt da einen, der nur als Rückruf hinauswählt.
Jan-Olaf Droese
jano@layla.RoBIN.de
schrieb am 31. Januar 1997:
Auf der Seite der Banzai sollte ein 'c' zu der zu wählenden Nummer hinzugefügt werden. Dadurch ist sie bereit für den Rückruf. Zur Sicherheit kannst Du die Anzahl der Wählversuche der Banzai auf 1 setzen, sodaß es keine Rufüberschneidungen gibt. Auf der I4L-Maschine habe ich folgende Einstellungen vorgenommen:
isdnctrl callback isdn0 in isdnctrl cbdelay isdn0 1
Nein, das geht mit ISDN4LINUX nicht. Da es nicht so trivial zu implementieren ist, gibt es z.Zt. keinen Plan dafür.