VoIP mit Freeswitch

Hallo, Vermittlung?

Wenn das Stichwort Voice-Over-IP fällt, denken die meisten an den Asterisk-Telefonie-Server. In Freeswitch findet er einen Konkurrenten, der sich recht leicht konfigurieren lässt.

Eine Reihe von Open-Source-Projekten haben die Eintrittsschwelle für Internet-Telefonie niedriger gelegt. Asterisk zum Beispiel hat sich als leistungsfähige Alternative zu teuren Telefonanlagen etabliert [1] . Ein weiterer Unruhestifter in der Welt des Telefon-Business ist die gut skalierbare Softswitch-Bibliothek Freeswitch [2] .

Die Website beschreibt das Programm als "einfachen Switch, Vermittlungsstelle, Media Gateway oder Media-Server für IVR-Anwendungen, also sprachgesteuerte Menüs". Ganz im Sinne dieser chamäleonartigen Beschreibung wurde Freeswitch in der Praxis schon für alles mögliche verwendet, von der Telefonvermittlung über Softphones für Laptop-Anwender bis zum Audio-Routing im Opensim-Projekt [3] .

Als dieser Artikel entstand, war Version 1.4 von Freeswitch aktuell, das Sie auf der Website des Projekts finden. Oder Sie checken den Code aus dem Git-Repository aus, um an die neueste Version zu kommen. Je nach Betriebssystem fällt die Installation unterschiedlich aus. Für Windows steht sogar ein MSI-Installer bereit, für Debian und CentOS gibt es fertige Pakete. Wer Freecode selbst compilieren möchte, findet auf der Website ein Makefile, das die nötigen Pakete herunterlädt und übersetzt. So laden Sie es herunter:

curl https://stash.freeswitch.org/projects/FS/repos/freeswitch/browse/build/Makefile.centos6?raw > Makefile

Das anschließende »make« müssen Sie gegebenenfalls mit Root-Rechten ausführen, weil es die Paketdatenbank des System verändern möchte - wenn Sie nicht vorher selber die nötigen Pakete von Hand installiert haben. Um die Dateien im System zu installieren, führen Sie anschließend im Verzeichnis »freeswitch-git« »make install« aus. Die Sound-Dateien installieren Sie, indem Sie folgende Befehle ausführen:

make cd-sounds-install
make cd-moh-install

Freeswitch kann mit Audio-Dateien umgehen, die Sample-Raten von 8, 16, 32 und 48 kHz aufweisen. Nur wenige Telefoniesysteme, egal ob Open Source oder proprietär, können Anrufe mit so unterschiedlichen Sample-Raten verarbeiten wie Freeswitch.

Zum Testen können Sie Freeswitch mit Root-Rechten starten, sollten aber im Echtweltbetrieb einen Benutzer »freeswitch« in der Gruppe »daemon« anlegen und ihm das Verzeichnis »/usr/local/freeswitch« übertragen.

Der Befehl »freeswitch« startet die Anwendung, das Hilfsprogramm »fs_cli« verschafft Zugang zur Kommandozeile eines Freeswitch-Servers, auch wenn er auf einem anderen Rechner läuft. Wechseln Sie zum Ausführen der Programme in das Verzeichnis »/usr/local/freeswitch/bin« oder fügen Sie es zum »PATH« hinzu. Beim Start gibt das Programm ziemlich viel Debug- und Log-Infos aus, aber um Warnungen und Fehlermeldungen brauchen Sie sich an dieser Stelle noch nicht zu kümmern.

Vermittlung

Der einfachste interaktive Befehl ist »version« , das die Version des Servers ausgibt. Laufzeitinformationen wie Uptime und gerade aktive Sessions zeigt »status« . Die eingebaute Hilfe erreichen Sie mit »help« . Um Freeswitch zu beenden, verwenden Sie »fsctl shutdown« oder geben »...« ein, also drei Punkte hintereinander.

Wenn im Rechner eine Soundkarte eingebaut oder ein Headset angeschlossen ist, probieren Sie Folgendes aus:

load mod_portaudio

Wenn das Portaudio-Modul fehlt, aktivieren Sie es in der Datei »modules.conf« und installieren es mit »make mod_portaudio-install« . Nach einigen Debug-Zeilen erscheint schließlich »+OK« , wenn das Modul geladen wurde. Nun können Sie sich die auf dem System verfügbaren Portaudio-Geräte anzeigen lassen.

pa devlist
API CALL [pa(devlist)] output:
0;Built-in Microphone;2;0;i
1;Built-in Input;2;0;
2;Built-in Output;0;2;r,o
3;Logitech USB Headset;0;2;
4;Logitech USB Headset;1;0;

Die kleinen Buchstaben i und o stehen für Eingangs- (Input) respektive Ausgangs-Geräte (Output). Den Default-Eingang ändert der Befehl »pa indev« gefolgt von der Gerätenummer:

pa indev #1

Analog ändert »pa outdev« das Ausgabegerät. Im Beispiel dieses Artikels soll Nummer 4 der Eingang sein, Nummer 5 der Ausgang.

Wenn die MOH-Dateien (Music on Hold) installiert sind, ruft der folgende Befehl die MOH-Extension auf und schickt somit die Pausenmusik an den Ausgang:

pa call 9999

Hören Sie Musik, hat alles geklappt. Falls nicht, überprüfen Sie zuerst die Installation der MOH-Dateien. Der Befehl »pa hangup« legt wieder auf. Einga-ng und Ausgang zusammen überprüfen Sie mit dem Echo-Test:

pa call 9996

Wenn Sie nun ins Mikrofon sprechen, sollte Ihre eigene Stimme im Kopfhörer erklingen. Mit »pa hangup« beenden Sie den Test wieder.

So können Sie mit Freeswitch und Portaudio leicht ein eigenes Softphone aufbauen. Damit können Sie alle möglichen Codecs verwenden, die die Freeswitch-Installation unterstützt, ohne einen speziellen Softphone-Client zu installieren.

SIP-Phone

Die am weitesten verbreitete Art, Freeswitch zu verwenden, ist mit einem Softphone. Hardware wird häufig als Hardphone bezeichnet, während ein Software-basiertes Telefon eben Softphone heißt. Hardphones werden von einer ganzen Reihe von Herstellern vertrieben. Softphones gibt es sowohl als proprietäre wie auch freie Software. Ein beliebtes Softphone, das zwar umsonst ist, aber nicht frei im Sinn von quelloffener Software, ist X-Lite von Counterpath, das es für Windows, Linux und Mac OS X gibt [4] .

Auch wenn der Freeswitch-Server Linux voraussetzt, können die Softphones unter jedem anderen Betriebssystem laufen, solange sie SIP-kompatibel sind (siehe Kasten SIP). Laden Sie X-Lite auf Ihren Desktop-Computer oder Laptop herunter und installieren Sie es – Softphone und Freeswitch-Server auf demselben Rechner zu installieren, ist nicht die beste Option, reicht aber eventuell zum Testen.

Starten Sie dann die SIP-Account-Einstellungen, indem Sie den Button »Show Menu« anklicken (das ist der kleine Button links oben am Softphone). X-Lite ist auf einen SIP-Account beschränkt, wählen Sie den also aus und klicken Sie auf »Properties« . Füllen Sie das Formular aus und geben Sie »1234« als Passwort für die Nebenstelle »1000« ein ( Abbildung 1 ). Löschen Sie den Eintrag für Dialing plan, denn er ist bei Freeswitch überflüssig. Nach »OK« und »Close« registriert sich das Softphone beim Server, das Ergebnis zeigt Abbildung 2 .

Abbildung 1: Der Konfigurationsdialog des Softphones X-Lite SIP auf Mac OS X.
Abbildung 2: Der X-Lite-Client hat sich erfolgreich beim Freeswitch-Server angemeldet.

Einen Testanruf führen Sie durch, indem Sie 9999 wählen und dann die grüne Taste frücken. Einen Momen später sollten Sei die Pausenmusik hören. Abbildung 3 zeigt das Softphone beim Testanruf.

Abbildung 3: Der X-Lite ruft die Durchwahl 9999 an.
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023