Asterisk (Telefonanlage)
# Asterisk (Telefonanlage)

Asterisk ist eine freie Software für Computer aller Art, die Funktionalitäten einer Telefonanlage bietet. Sie unterstützt IP-Telefonie (VoIP) mit unterschiedlichen Netzwerkprotokollen und kann mittels Hardware mit Anschlüssen wie POTS (analoger Telefonanschluss), ISDN-Basisanschluss (BRI) oder -Primärmultiplexanschluss (PRI, E1 oder T1) verbunden werden.

Mark Spencer hat Asterisk ursprünglich bei der Firma Digium entwickelt. Mittlerweile haben sich noch weitere Entwickler der Asterisk-Gemeinde angeschlossen und so stammen viele Erweiterungen und Applikationen auch von anderen Entwicklern. Der Name stammt von der Bezeichnung für das Sternsymbol ab.

Asterisk wird unter einer dualen Lizenz zur Verfügung gestellt – der GNU General Public License (GPL) als freier Softwarelizenz und einer proprietären Lizenz, die es den Lizenznehmern gestattet, proprietäre, nichtöffentliche Bestandteile auszuliefern.

## Funktionen

Asterisk unterstützt

* Sprachdienste
* Anrufbeantworter
* Telefonkonferenzen
* Sprachdialoge (IVR) per MFV
   * Spracherkennung ist mittels Zusatzprogrammen möglich.
* Verzeichnisdienste (Directory)
* Verzögerungsfreie Kryptographie

## Hardware

Asterisk funktioniert auf einer Reihe unterschiedlicher Computersysteme. Neben Personal Computern mit x86-Prozessor läuft Asterisk auch auf Geräten wie dem Raspberry Pi und Routern, die OpenWrt unterstützen.

Ohne besondere Hardware kann ein Asterisk-System nur über ein Netzwerk mit VoIP-Endgeräten (intern) und VoIP-Telefonprovidern (extern) verbunden und betrieben werden.

Für die Anbindung von normalen Endgeräten wie Telefonen, Faxgeräten etc. (intern) oder an herkömmliche Telefonnetze (extern) benötigt man zusätzliche Steckkarten oder externe Analog-Adapter für analoge POTS oder digitale ISDN-Amtsleitungen (nach extern) oder Nebenstellen (nach intern).

Interne ISDN-Nebenstellen können nur über Schnittstellen realisiert werden, die den NT-Modus beherrschen (ISDN-Karten mit HFC-Chips oder VoIP-Adapter/-Router mit internem ISDN-Anschluss).

## Konfiguration und Programmierung

Das zentrale Steuerelement von Asterisk ist der Rufnummern- oder besser Wählplan (englisch dial plan). Hier wird entschieden:

* wohin ein Anrufer weitergeleitet wird (an welche Endstelle)
* was passiert, wenn dort niemand abnimmt oder es besetzt ist
* welcher Anrufbeantworter/welche Mailbox informiert werden soll
* welche Eingaben (Ziffern, Sprache) akzeptiert werden
* welche Aktion durch eine Eingabe ausgelöst wird

Dieser Plan gliedert sich in mehrere Abschnitte (englisch sections), deren Bezeichnungen in eckigen Klammern gefasst werden. Ein Abschnitt ist bis zur nächsten öffnenden Klammer bzw. bis zum Dateiende gültig. Innerhalb der Abschnitte wird jeweils eine bestimmte Gruppe Nebenstellen (englisch extensions) und damit zusammenhängende Reihenfolgen, Aktionen und Verhalten behandelt. Die Abschnitte „[general]“ und „[globals]“ sind vordefinierte Abschnitte. Alle anderen Abschnitte werden auch als Kontexte bezeichnet. Kontexte bestimmen einen geschlossenen Bereich und somit einen definierten Sicherheitsbereich. Ein Kontext kann den Sicherheitsbereich eines anderen Kontexts erlangen, indem er in diesen Kontext über die Anweisung include eingebunden wird. Ist für eine Nebenstelle kein Kontext definiert, so wird diese über den Standardkontext „[default]“ behandelt.

## Schnittstellen

### Betriebssysteme

Asterisk ist lauffähig unter folgenden Betriebssystemen:

* GNU/Linux (größte Hardwareunterstützung und Angebot an Zusatzsoftware)
* BSD
* macOS (ab Version 10.2)
* Portierungen für Windows unter Cygwin

### VoIP-Protokolle

* InterAsterisk eXchange (IAX)
* Session Initiation Protocol (SIP)
* H.323
* UNIStim (Unified Networks IP Stimulus) von Nortel (proprietär)
* Skinny Client Control Protocol (SCCP) von Cisco Systems (proprietär)
* Voice over Frame-Relay-Protokoll (VoFR) von Adtran wird über passende Schnittstellen ebenfalls unterstützt
* SS7-Protokoll, derzeit von mehreren Anbietern unterstützt

### ISDN / PRI-Protokolle

* Euro-ISDN (DSS1)
* 4ESS
* QSIG Kanalgebundene Zeichengabe
* DMS100
* Lucent 5E Distributed Switching
* National ISDN2
* NFAS

### Lokale Schnittstellen

Neben den vorgenannten Protokollen bietet Asterisk mit den Modulen chan_alsa und chan_mobile auch die Nutzung lokaler Schnittstellen. Damit ist es möglich, eine vorhandene Soundkarte als Sprechstelle zu nutzen. Auch kann ein Bluetooth Headset direkt als Nebenstelle angemeldet werden. Ein Handy/Smartphone wird per Bluetooth zum Mobilfunkgateway.

Diese Möglichkeiten werden überwiegend im privaten Umfeld genutzt, da sie naturgemäß nur im unmittelbaren Umfeld des Asteriskservers eingesetzt werden können.

### Audio-Codecs

Unter anderem werden folgende Audio-Codecs unterstützt:

* G.711 in den Varianten A-law und μ-law
* G.722 Wideband-Codec
* G.729, kommerzielle Lizenz erforderlich
* GSM
* ADPCM
* iLBC
* Speex (ab Version 10 mit 32 kHz)
* MP3, nur dekomprimieren, z. B. für Wartemusik (Music-on-Hold)
* SILK (ab Version 10)
* Opus (ab Version 11)

### Programmierschnittstellen

Das AGI Asterisk Gateway Interface bietet unter anderem eine Programmierschnittstelle zu:

* C#
* Java
* MySQL
* Perl
* PHP
* Ruby
* Python

## GUIs und Distributionen

Grafische Benutzerschnittstellen ermöglichen das Bearbeiten der Asterisk-Konfiguration via Web-Interface. Die nachfolgenden Asterisk-Server-Distributionen beinhalten Linux oder BSD und sind inzwischen meist kommerzielle Produkte, die jedoch ihre Wurzeln in freien Projekten haben und in den Basisversionen oder für Privatanwender kostenfrei sind.

* Asterisk4UCS ist eine Infrastrukturmanagementlösung für Asterisk-basierte Telefonanlagen, basierend auf der Linux-Distribution Univention Corporate Server (UCS). Es ermöglicht die Telefoninfrastruktur mit einer grafischen Web-GUI zu verwalten und mit LDAP zu verknüpfen. Ebenfalls werden zentrale Asterisk-Telefonfunktionen angeboten. Die Lösung basiert auf der Open-Source-Lizenz GNU GPLv3 und kann kostenlos verwendet werden. Support und Maintenance ist hingegen kostenpflichtig.
* Ansitel webinterface 3.0 ist ein komplett deutsch-/englischsprachiges Webinterface für Asterisk-basierte Telefonanlagen, das eine einfache und schnelle Einrichtung umsetzt. Zum schnellen Einstieg gibt es eine eingeschränkte Live-CD als Download.
* AsteriskNOW ist eine von der Firma Digium erstellte Distribution inklusive Asterisk-Steuerung. Die Asterisk Business Edition von Digium enthält eine optionale Distribution.
* AskoziaPBX ist ein einfach zu konfigurierendes kommerzielles Live-Asterisk-System, basierend auf Linux, mit einer WebGUI, die sich neben professionellen Anwendern auch an Einsteiger richtet. Eine Testversion für bis zu 2 gleichzeitige Verbindungen ist erhältlich. (Der Vertrieb der AskoziaPBX wurde mit der Übernahme durch 3CX im August 2017 eingestellt. Der Support endet Ende 2017.)
* AstLinux ist eine ressourcenschonende Version mit zusätzlicher Router- und VPN-Funktionalität, die von einem Flash-Speicher oder als VM läuft. Die aktuelle Version ist 1.4.5 (Stand März 2022).
* Astimax ist eine kommerzielle professionelle VoIP-Appliance auf Basis von Asterisk mit einem grafischen Verwaltungstool.
* FreePBX, eine Web-basierte Open-Source-GUI unter GPL.
* Gemeinschaft ist der Name einer Open-Source-Telefonanlage, die bis zur Version 3 auf Asterisk basiert. Ab Version 4 bildet FreeSWITCH die Grundlage.
* KITOMA ist eine skalierbare und leicht integrierbare VoIP-Komplettlösung, die auf Asterisk basiert. Es wird eine Web-basierte Benutzeroberfläche zur Verfügung gestellt, die intuitiv bedienbar ist und eine offene REST-Schnittstelle zur flexiblen Anbindung von Applikationen anbietet. Es kann immer die aktuelle Asterisk-Version verwendet werden! Die Anzahl der verwaltbaren Asterisk-Server ist beliebig.
* pascom ist eine Unified Communications Lösung auf Asterisk-Basis.
* STARFACE Basierend auf der Asterisk-Business-Edition mit grafischem Interface für die einfache Bedienung. Verfügbar sowohl als Software-Lösung, VoIP-Appliance, sowie als Cloud-Dienst. Kostenlos verwendbare Version bis 3 Benutzer erhältlich.
* Thirdlane PBX und Thirdlane Multi Tenant PBX sind auf Asterisk basierende PBX-Software-Lösungen. Sie zielen auf Unternehmen und Internet-Telefonie-Service-Provider.
* Trixbox ging im Mai 2006 aus dem Projekt Asterisk@Home hervor.
* VoIPonCD ist eine frei verfügbare VoIP-Telefonanlage.
* Doccom ist eine VoIP Anlage basierend auf Asterisk zugeschnitten auf die speziellen Anforderungen von Arztpraxen und Ärztehäusern.

## Sprachbausteine (Voiceprompts)

Sprachbausteine werden benötigt, um das Asterisk-Voicemailsystem mit lokaler Sprache zu nutzen. Es handelt sich dabei um Sammlungen erforderlicher Buchstaben, Zahlen und Wörter eines Sprechers und nicht um Text-to-Speech- oder Sprachsynthese-Module.

* Digium bietet keine deutschen Sprachbausteine an.
* voip-info.org (englisch) bietet viele verschiedene Sprachen, von Chinesisch bis Türkisch.
