Gerald Rosemann
(spellcaster@ewetel.net)
http://www.gerald-rosemann.de
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.
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:
Kernel 2.2.x oder höher
ISDN- oder Modemverbindung (> 14.400 bit/s)
Soundkarte
Mikrofon / Headset
ALSA, OSS; Kernel oder OSS-Kerneltreiber
X-Server (nur gphone)
GNOME wird nicht benötigt!
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.
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:
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.
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.
Wie
finde ich meinen Gesprächspartner?
Ideal sind
Chatclients wie z.b. Everybuddy (http://www.everybuddy.org),
ein Client für die Services Aol Instant Messenger (AIM) und I
seek You (ICQ). So kann man schnell die IP-Adressen austauschen und
die gphone-Verbindung herstellen.
Gphone und
andere Programme
Gphone belegt im Halbduplex-Modus extrem
wenig Bandbreite und verursacht nur minimale CPU-Last. Auf einem
langsamen Rechner oder bei Modemverbindung sollte man daher auf
Halbduplex wechseln, wenn man nebenbei noch surfen oder
Netzwerkspiele spielen will. Bei ISDN-Anbindung fällt der von
gphone verursachte Traffic nicht weiter ins Gewicht.
Optimieren
der Sprachqualität
Es empfiehlt sich, entweder ein gutes
Mikrofon oder ein für Spracherkennung konzipiertes Headset zu
verwenden. Der Eingangspegel sollte möglichst hoch eingestellt
werden, so daß bei normaler Gesprächslautstärke
gerade keine Verzerrungen auftreten.
Falls es zu Aussetzern oder Knacken kommt:
Ist die Soundkarte richtig konfiguriert? Gibt es eventuell Interruptkonflikte?
Ist genug Bandbreite frei (ca. 2.4 K/sec)?
Läuft
gphone hinter einer Firewall oder in einem Netzwerk, in dem
IP-Masquerading verwendet wird?
Idealerweise sollte gphone bei
Dial-in-Verbindungen direkt auf dem Einwahlrechner bzw. in LANs auf
einem Rechner mit gültiger IP laufen. Das bei
gphone.sourceforge.net erhältliche Tool rtptunnel funktioniert
zwar, ist aber noch nicht wirklich ausgereift, wie es mir scheint.
Zu beziehen unter:
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.
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ß.