Internet-Telefonie unter Linux

Gerald Rosemann (spellcaster@ewetel.net)
http://www.gerald-rosemann.de

Vorwort

In diesem Dokument wird erläutert, wie man als Linux-User über das Internet telefonieren kann. Dabei stelle ich bewußt nicht die gesamte Bandbreite der verfügbaren Software dar, sondern konzentriere mich auf zwei Programme, die m.E. derzeit am besten geeignet sind und die nicht auf zentrale Server angewiesen sind, sondern auf direkter Client-to-Client-Verbindung basieren. Die Sprachqualität liegt bei Verwendung eines guten Mikrofons über der normaler Telefonverbindungen. Beide Programme verwenden das RTP-Protokoll und sind daher kompatibel.

Voraussetzungen

Die Hardwareanforderungen sind sehr gering. Jeder Rechner, auf dem Linux mit einer X-Window-Oberfläche läuft, sollte ausreichen. Auf einem PII 233 MHz mit 64 MB RAM liegt die CPU-Aulastung unter 5%.

Auf jeden Fall erforderlich:

Einrichten der Soundkarte

Gphone und Speak Freely unterstützen sowohl Halbduplex (Gegensprechverbindung)- als auch Vollduplexbetrieb (gleichzeitiges Sprechen und Hören). Es lohnt sich also, zu überprüfen, ob die Soundkarte vollduplexfähig bzw. ein geeigneter Linux-Treiber für den Vollduplex-Modus vorhanden ist.

Falls der nichkommerzielle OSS-Treiber bzw. der Kerneltreiber den Vollduplex-Modus nicht unterstützt, sollte man sich die ALSA-Treiber anschauen (http://www.alsa-project.org).

Ein Hinweis zum weitverbreiteten Soundblaster 16:

Von dieser Karte existieren zahlreiche Unterversionen, die vom Hersteller nicht gesondert gekennzeichnet wurden. Dies betrifft insbesondere alle Karten der Serie „Creative VIBRA16X PnP“. Diese Karten sind zwar im Prinzip vollduplexfähig, manche Versionen lassen sich aber weder mit den OSS- noch mit den ALSA- oder Kerneltreibern im Vollduplex-Modus fahren.

Installation der Software

Variante 1: GPhone

Ich konzentriere mich hier auf das Programm Gnomophone (kurz gphone), das meiner Meinung nach bisher die beste Lösung für Linux darstellt. Eine Alternative ist Speak Freely (http://www.speakfreely.org), welches aber eher für Experten zu empfehlen ist und weit über die Funktionalität eines reinen Telefonie-Tools hinausgeht. Weitere Informationen zu Speak Freely weiter unten.

Gphone ist unter folgender URL zu beziehen:

http://gphone.sourceforge.net

Neben dem Sourcecode wird auch die gsm-compression library benötigt.

Entgegen seiner Bezeichnung benötigt gphone weder den Gnome-Desktop noch einzelne Gnome-Libraries! Es läuft mit jedem Window-Manager.

Sollte es beim Übersetzen von gphone Probleme geben - was nicht unwahrscheinlich ist, da die Dokumentation extrem dürftig ist und außerdem alte Libraries erforderlich sind, kann man auch folgendes Binary verwenden (nein, es enthält *keine* Viren und *keine* Trojaner! Ehrenwort!)

http://www.gerald-rosemann.de/gphone.zip

Gphone kann entweder irgendwo im executable-Pfad (z.B. /usr/local/bin) oder auch im /home eines Users installiert werden.

Bei Verwendung der obigen Binary-Version sollte man prüfen, ob alle erforderlichen Libraries vorhanden sind und ggf. nachinstallieren:

ldd gphone

gibt die erforderlichen Auskünfte.

Testen der Verbindung

Nicht vergessen, das Mikro anzuschließen und die Lautstärke einzustellen! X-Server muß laufen!

Gphone wird aufgerufen durch:

gphone -c <host>

oder

gphone -h -c <host>

für den Halbduplexbetrieb. Soll nicht direkt beim Programmstart eine Verbindung hergestellt werden, kann die Hostangabe ausgelassen werden. Der Hostname oder die IP des Gesprächspartners kann dann in der grafischen Oberfläche eingegeben werden.

Zum Testen kann man sich der Kompatibilität zu Speak Freely bedienen und einen Speak Freely-Testserver konnektieren, der alle eingehenden Daten mit einer Verzögerung von 10 Sekunden zurückschickt. Dazu muß der von Speakfreely verwendete Port angegeben werden:

gphone -h -l 2074 -r 2074 -c echo.fourmilab.to

Mit den gleichen Portangaben kann man auch einen Gesprächspartner erreichen, der Speak Freely unter Windows verwendet.

Tips & Tricks

Problembehebung

Falls es zu Aussetzern oder Knacken kommt:

Variante 2: Speak Freely

Zu beziehen unter:

http://www.speakfreely.org

Während Gphone wirklich nur ein reines Telefonie-Tool darstellt, ist Speak Freely sehr viel breiter angelegt. Es bietet eine Fülle von Funktionen, die von Verschlüsselung bis hin zu Live-Übertragungen und Audio-Streaming reichen. Dementsprechend komplizierter gestaltet sich die Konfiguration. Für Speak Freely gibt es auch ein graphisches Frontend auf Tcl/Tk-Basis. Sobald ich dieses länger getestet habe, werde ich hier mehr dazu schreiben.

Das Kompilieren der UNIX-Sourcen ist in der Regel unproblematisch. Die mitgelieferte Dokumentation ist recht gut, so daß ich hier auf weitere Erläuterungen verzichten kann. Man sollte unbedingt die manpages zu sflaunch, sfmike und sfspeaker lesen.

Der Aufruf erfolgt durch

sflaunch <hostname>

Das Umschalten zwischen Sprechen und Hören erfolgt mit der Space-Taste.

Testen der Verbindung

sflaunch echo.fourmilab.to

Treten dabei Probleme auf, müssen die beiden Teilprogramme manuell gestartet werden:

sfspeaker &

sfmike <hostname>

Man sollte dies zuerst ohne zusätzliche Parameter testen. Gibt es dann immer noch Schwierigkeiten hilft die Lektüre der manpages, die korrekten Optionen für die jeweilige Systemkonfiguration zu setzen.

Für die komplexeren Funktionen von Speak Freely, wie Telefonkonferenz (Voraussetzung: Alle Teilnehmer müssen über im Vollduplex-Modus laufende Soundkarten verfügen), Audiostreaming, usw. macht es im Rahmen eines Mini-Howtos, das möglichst schnell eine funktionsfähige Verbindung ermöglichen soll, wenig Sinn allgemeine Tips zu geben, da sehr viel individuell angepasst werden kann und teilweise auch angepaßt werden muß.