Suche:

Sie sind hier: Home > Produkte > Hardware > Least Cost Router

Telekommunikation:

Projekt: Least-Cost-Router im Selbstbau

Wer über den richtigen Provider zur richtigen Zeit telefoniert, der kann bekanntlich eine ganze Menge Geld sparen. Doch wer kennt im aktuellen Tarifchaos schon immer die richtige Netznummer? Ein selbstgebauter Least-Cost-Router hilft Ihnen dabei.

Wer sparen will, muss leiden! Das gilt zumindest fürs Telefonieren in Deutschland. Denn nur wenn man tatsächlich immer zum richtigen Zeitpunkt den günstigsten Netzbetreiber anwählt, kann man wirklich so richtig sparen. Doch das fällt schwer: In Deutschland gibt es zurzeit etwa zwei Dutzend wichtige Provider, die über 13 Zeitzonen verteilt mindestens 7 unterschiedliche Distanzkategorien anbieten. Das macht alles in allem über 2000 Einzeltarife, die sich wohl kaum jemand neben das Telefon klebt, geschweige denn im Kopf behält (Zum Vergleich: Bei unserem Nachbarn Frankreich gibt es zwar mindestens genauso viele Provider, erfreulicherweise aber nur 2 Zeitzonen und 4 Distanzen).

Mögliche Auswege aus diesem Dilemma bietet bekanntlich die Preselection eines Netzanbieter bzw. die Anschaffung eines Least-Cost-Router. Bei ersterem wird man grundsätzlich über einen hoffentlich günstigsten Provider verbunden, wodurch allerdings die Call-by-Call-Flexibilität und somit die Sparkurve leidet. Und bei einem Least-Cost-Router ist man auf die Aktualität, Fairness sowie die Preisgestaltung des zugehörigen Update-Dienstes angewiesen. Denn nur wenn die Datenbank des Geräts auch immer auf dem neuesten Stand und vor allem komplett ist, kann man einen echten Spareffekt erwarten - der hoffentlich nicht von den Kosten des Update-Abos wieder aufgefressen wird.

Do it yourself!
Dennoch ist die Lösung über einen Least-Cost-Router noch am interessantesten. Doch wie kann man dessen Nachteile am besten aufheben? Indem man sich ein solches "Gerät" einfach selbst baut.

Dies ist durchaus keine absurde Idee, zumal man dazu nicht einmal den Lötkolben schwingen muss: Alles was man dazu als Grundvoraussetzung benötigt, ist eine beliebige Telefonanlage mit zumindest zwei analogen Anschlüssen. Die Anlage muss darüber hinaus Gespräche über die R-Taste (Hook-Flash) makeln können, was bei den meisten Geräten aber ohnehin der Fall ist. Ob Ihre Telefonanlage geeignet ist, testen Sie wie folgt:

  • 1. Wählen Sie mit Telefon A den Apparat B als Interngespräch an.
  • 2. Nehmen Sie Telefon B ab und drücken Sie die R-Taste (Hook-Flash).
  • 3. Holen Sie anschließend an Apparat B die Amtsleitung - normalerweise über eine "0".
  • 4. Sobald das Freizeichen zu hören ist, legen Sie auf.
  • 5. Ist das Freizeichen der Amtsleitung jetzt am Telefon A zu hören, so war der Test erfolgreich.

Den Least-Cost-Router selbst mimt ein ausrangierter PC mit zwei Modems. Der Rechner muss keinerlei besondere Performance aufweisen, eine Maschine der AT- oder gar XT-Klasse genügt völlig. Als Speicherausbau genügen 512 KByte und ein Diskettenlaufwerk, dazu zwei serielle Ports für die Modems. Eine Festplatte ist unnötig und auch eine (besondere) Grafikkarte ist nicht erforderlich. Weder Monitor, noch Tastatur oder gar Maus werden für den späteren Einsatz gebraucht. Wichtig hingegen ist eine funktionierende interne Uhr, die aber nicht unbedingt Jahr-2000-fähig sein muss. 

Zumindest eines der beiden benötigten Modems muss voice-fähig sein, damit es die Multifrequenztöne (DTMF) einer Anwahl interpretieren kann - eine maximal Übertragungsgeschwindigkeit von 9600 Baud dabei völlig ausreichend. Das zweite Modem kann dagegen aus den Hardware-Mottenkiste der 80er stammen. Ein 2400-Baud-sonst-kann-ich-nichts reicht hierfür völlig aus. Beide Modems werden parallel an einen freien analogen Anschluss der Telefonanlage angeschlossen. Bei den aktuellen Preisen für gebrauchte Hardware aus dem letzten Jahrtausend dürften dafür kaum mehr als 100 DM nötig sein.

Das Prinzip
Der oben gezeigte Tauglichkeitstest für die Telefonanlage zeigt schon recht deutlich das Prinzip des Selbstbau-Routers - das Gerät ist einfach eine smarte Gesprächsvermittlung auf Basis Ihrer Anlage: 

  • 1. Über eines der an die Anlage angeschlossenen (DTMF-fähigen) Telefone wählt man den Anschluss mit den beiden Modems an.
  • 2. Von der Least-Cost-Router-Software (dazu gleich mehr) gesteuert nimmt das voice-fähige Modem ab. Es gibt einen kurzen Quittungston aus und schaltet die DTMF-Erkennung ein.
  • 3. Sie sind jetzt mit Ihrer "persönlichen Telefonvermittlung" verbunden. Nun gibt man wie üblich die Rufnummer des gewünschten Gesprächspartners ein. Erhält das Modem länger als 5 Sekunden lang keine weiteren DTMF-Töne, so wird die anzuwählende Nummer als komplett angesehen.
  • 4. Jetzt legt das erste Modem auf und etwa 500 ms später nimmt das zweite Modem ab. Dies generiert einen Hook-Flash an der Telefonanlage, wodurch die Leitung des Anrufers gehalten wird (Dieses simulierte Drücken der R-Taste kann leider nicht vom ersten Modem allein ausgeführt werden: Da es bereits einen Anruf angenommen hat, sperrt sich die Firmware gegen einen Hook-Flash, da dies ein Kommando für abgehende Anrufe ist. Und die equivalente Sequenz "Auflegen-Abnehmen" nimmt mindestens 2 Sekunden in Anspruch, was für einen Hook-Flash viel zu lange ist - die Telefonanlage würde die Leitung nicht halten. Daher auch die Notwendigkeit eines zweiten Modems).
  • 5. Die Router-Software analysiert jetzt die übermittelte Rufnummer und wählt abhängig von Wochentag, Tageszeit und Distanz den günstigsten Provider aus der Datenbank.
  • 6. Das zweite Modem generiert jetzt eine Amtsholung und wählt anschließend die Netznummer des ermittelten Netzanbieters sowie die gewünschte Rufnummer.
  • 7. Dann legt auch das zweite Modem wieder auf, woraufhin die Telefonanlage das sich im Aufbau befindliche Gespräch an die gehaltene Leitung (also an Sie) weitergibt.

Die Steuerungs-Software
Weil der Least-Cost-Router auch selbst kaum etwas kosten soll, muss aufgrund der verwendeten Hardware auch die Software "zeitgemäß" sein: Da für das Gerät allein ein Diskettenstart vorgesehen ist, kommen Windows und dergleichen als Betriebssystem natürlich nicht in Frage. Da die Steuerungs-Software möglichst von jedermann erweiterbar und wartbar sein soll, fällt zudem auch Linux aus. Bleibt also ein DOS-Qbasic-Gespann, dass inklusive Logik problemlos auf eine 720-KByte-Diskette passt. Was will man mehr?


Der Selbstbau-Least-Cost-Router wird einfach von einer Bootdiskette aus über ein Qbasic-Programm gesteuert.

Die Boot-Diskette lässt sich entweder mit Windows 95/98 oder auch allein unter DOS erstellen. Legen Sie die formatierte Diskette ein und übertragen Sie die für den Start notwendigen Systemdateien io.sys und msdos.sys mit folgenden Befehl (Unter Windows beispielsweise über Startmenü/Ausführen):

sys c: a:

Anschließend ist der Basic-Interpreter Qbasic auf die Floppy zu kopieren. Die Datei qbasic.exe befindet sich normalerweise im DOS- bzw. Windows-Verzeichnis. Ist sie dort nicht auszumachen, muss sie gegebenenfalls nachinstalliert werden. Beispielsweise auf der Installations-CD von Windows 95 befindet sich die gesuchte Datei im Ordner \others\oldmsdos. Sollte man auch dort nicht fündig werden, so kann man den Basic-Interpreter auch von Microsoft über das Internet beziehen (Die Adresse steht am Ende des Artikels). 

Jetzt fehlt auf der Diskette noch die Steuerungsroutine selbst. Sie verbirgt sich in der Datei lcr.bas, die Sie über den Link am Ende des Artikels herunterladen.

Damit beim Booten der Least-Cost-Router-Diskette auch alle Module automatisch gestartet werden, muss auf der Floppy noch eine kleines Startskript angelegt werden. Öffnen Sie also einen beliebigen Editor und schreiben Sie folgendes Kommando:

qbasic /run lcr.bas

Speichern Sie diesen Text anschließend unter a:\autoexec.bat. Die Boot-Diskette für den Least-Cost-Router ist damit fertiggestellt.

Aufbau der Hardware
Eigentlich ist durch die vorangegangenen Erläuterungen der Aufbau der Hardware schon beschrieben. Lediglich auf die Anschlussreihenfolge der Schnittstellenkabel zu den Modems ist zu achten: Die Steuerungs-Software geht davon aus, dass das voice-fähige Gerät an com1: angeschlossen ist, das zweite, einfachere Modem entsprechend an com2:. 

Die Telefonanschlüsse der beiden Modems sind parallel an einen freien, analogen Anschluss der Telefonanlage zu klemmen. Falls mehrere freie Anschlüsse zur Verfügung stehen, sollte man den wählen, der eine möglichst sinnfällige Nummer hat. Eine detaillierte Übersicht der Verschaltung zeigt die nachfolgende Skizze:


Die Hardware-Verkabelung der einzelnen Routerkomponeten ist recht einfach. Wichtig: Das Voice-Modem gehört an com1. Schnittstellenkabel sind grün, Telefonstrippen dagegen blau.

Die Steuerung der Modems
Wichtigster Bestandteil des Least-Cost-Routers ist die Fähigkeit des voice-fähigen Modems, DTMF-Töne dekodieren zu können. Erst dadurch ist es der Software möglich, die gewünschte Rufnummer zu erkennen. Für diesen Zweck gibt es zwar fertig vorkonfektionierte Mikroschaltkreise wie beispielsweise den CM8888 von California Micro Devices. Nur für deren Preis, und nicht zuletzt den notwendigen Mehraufwand beim Aufbau, bekommt man auch ein gebrauchtes Modem, das man schließlich einfach nur an den PC zu stecken braucht. 

Um das Voice-Modem für die automatische Nummernannahme zu präparieren sendet die Steuerungs-Software zu Beginn die Codes für Reset (&f), automatisches Abheben (s0=1) sowie Eintritt in den Voice-Modus (#cls=8):

at&fs0=1#cls=8

Das Modem befindet sich danach bereits im Voice-Modus und antwortet daher auch nicht mehr mit dem üblichen "OK", sondern liefert die beiden Codes [dle]h. Der Code [dle] hat den Wert 16 und ist ein Signal dafür, dass das Modem nach diesem Zeichen eine Voice-Mode-Zustandsaussage mach: "h" steht nämlich für "hung up", zu deutsch "aufgelegt". 

Kommt es nun zu einem Anruf über die betreffende Nebenstelle der Telefonanlage so erzeugt das Modem zunächst die Meldung "ring", gefolgt von "vcon". Ersteres deutet lediglich auf das Klingelzeichen hin und kann ignoriert werden. Die Meldung "vcon" dagegen zeigt an, dass nun eine Voice-Mode-Verbindung besteht und entsprechende Kommandos eingesetzt werden können. Die Steuerungs-Software beginnt daraufhin mit der Annahme der Rufnummer.

Sobald eine der zwölf Wähltasten (0-9, * und #) vom Anrufer gedrückt wird, generiert das Modem eine entsprechende Statusmeldung vom Format [dle][zeichen], wobei zeichen für die genannten Wähltasten steht. Wird vom Anwender in dieser Phase das "Gespräch" vorzeitig beendet, so liefert das Modem die Nachricht [dle]b. Das Zeichen "b" steht dabei für "busy", da das Modem von der Anlage ein Besetztzeichen signalisiert bekommt. Das Modem legt aber erst dann auf, wenn das LCR-Programm dies explizit über das Kommando ath (Hang up, Modem verlässt Voice-Mode und antwortet mit "OK") verlangt.

Kommt es während der Rufnummerneingabe zu einer Pause von 5 Sekunden, so deutet die Steuerungs-Software dies als Hinweis auf das Ende der Ziffernsequenz. Die erhaltene Rufnummer wird daraufhin analysiert und auf Basis der aktuellen Uhrzeit, des Wochentages und der Distanz die Netznummer des hierfür günstigsten Providers ermittelt. Das Voice-Modem erhält daraufhin das Kommando zum Auflegen (ath). Etwa 500 Millisekunden später erhält das zweite Modem den Befehl zum Öffnen der Leitung mittels atx0d; (Dial, Modem antwortet mit "OK"). Wie bereits beschrieben, wird dadurch ein Drücken der R-Taste (Hook-Flash) simuliert, wodurch die Leitung des Anwenders von der Telefonanlage gehalten wird und das zweite Modem freie Bahn für den Zugriff aufs Amt erhält. 

Bitte beachten Sie, dass das oben genannte Dial-Kommando mit einem Semikolon abgeschlossen wurde. Dies ist sehr wichtig, da das Modem dadurch im AT-Kommando-Modus bleibt und nicht versucht, wie eigentlich üblich, per Pfeifton eine Verbindung aufzubauen. Da viele Telefonanlage an den Nebenstellen einen gepulsten Freiton signalisieren, wurde dem Wählkommando auch der Zusatz x0 hinzugefügt. Diese Option unterdrückt die Wähl- und Besetzttonerkennung des Modems, so dass das atypische Nebenstellenfreizeichen nicht fälschlich mit einer Busy- oder No Dialtone-Fehlermeldung quittiert wird.

Als nächstes wird ein weiteres Wählkommando abgesetzt, diesmal zur Amtsholung (die erste 0) gefolgt von der Netznummer des anzuwählenden Providers (Beispielnummer 01234) und der eigentlichen Teilnehmernummer (hier 089-143120). Das "t" in diesem Kommando veranlasst das Modem mittels DTMF zu wählen, anstatt mit dem veralteten Pulswahlverfahren ("p"):

atdt0,01234089143120;

Das Komma nach der Null zur Amtsholung generiert eine Pause von 2 Sekunden. Währenddessen hat die Telefonanlage Zeit, die betreffende Nebenstelle auch tatsächlich mit der Amtsleitung zu verbinden, bevor die restliche Anwahlsequenz geschickt wird. 

Wurden alle Ziffern gewählt, meldet das Modem "OK" (da das Kommando wieder mit einem Semikolon abgeschlossen wurde). Die Steuerungs-Software schickt daraufhin das Kommando zum Auflegen (ath), wodurch das sich gerade im Aufbau befindliche Gespräch an die gehaltene Leitung weitergereicht wird. Der Least-Cost-Router hat damit seine Arbeit getan, kehrt in die Warteschleife zurück und der Anwender hat sein verbilligtes Telefongespräch.


Der Debug-Mitschnitt zeigt die einzelnen Stationen auf, die das Steuerungsprogramm bei einer Nummernumsetzung durchläuft.

Download: ZIP-kompatibles Archiv (5,31 KByte) für Windows 7 / Vista / XP und frühere.
Welche Lizenz benötigen Sie für den Einsatz dieses Software? Alle Infos hier.

Alle Tools und Artikel komplett auf der Tools&More-CD.

Dieses Programm weiterempfehlen.

Fehlt noch das Betriebssystem ...
für den Least-Cost-Router. Hierfür kommt jede DOS-Variante in Frage, also auch Windows 95/98. Wer Microsofts Qbasic-Interpreter noch nicht auf seinem System oder zumindest auf den Installations-CDs hat, findet hier bei Microsoft ein enstprechendes Paket.

Top
© 2011 Wirth IT-Design
Druckversion