- VoIP-Asterisk
- Asterisk
- Asterisk-Architektur
Asterisk-Architektur
Die Architektur der Asterisk-Lösung ist relativ einfach gehalten, wobei Asterisk als eine Art Übersetzer von Paket- bzw. Hardware-basierten Technologien zu Telefonapplikationen wie Call Bridging, Conferencing etc. zu verstehen ist.
Im Folgenden wird die Asterisk-Architektur anhand einer Abbildung erläutert.
Dynamic Module Loader & Switching Core
Bei einem Start von Asterisk wird als erster Schritt der Dynamic Module Loader geladen und initialisiert. Als Module, mit denen Asterisk ohne größere Eingriffe erweitert werden kann, stehen u.a. Unterstützungen für Dateiformate und Codecs zur Verfügung.
Anschließend ist Asterisk startbereit und Anrufe können von der Switching Core über die Schnittstellen (Hardware oder VoIP) angenommen und in der Konfigurationsdatei "extensions.conf" bearbeitet werden.
Application Launcher
Falls Anrufe angenommen werden, werden diese an den Application Launcher weitergeleitet, der die angeschlossenen IP-Telefone ansteuert, in dem er z.B. die Ringing-Datenpakete verschickt oder Sprachnachrichten aufzeichnet (VoiceMail-Funktion). Der Scheduler und der I/O Manager übernehmen dabei die Verwaltung der Applikationen und der Channels (Kanäle).
Codec Translator
Der Codec Translator übersetzt die verschiedenen Codecs in einen einheitlichen Standard (z.B. G711), der intern von allen Applikationen und Dateiformaten verstanden werden kann. Folgende Codecs werden von Asterisk unterstützt:
- ADPCM
- CELT (pass through)
- G.711 (A-Law & μ-Law)
- G.719 (pass through)
- G.722
- G.722.1 licensed from Polycom®
- G.722.1 Annex C licensed from Polycom®
- G.723.1 (pass through)
- G.726
- G.729a
- GSM
- iLBC
- Linear
- LPC-10
- Speex
- SILK
Channel
Ein Anruf über einen Asterisk-Server besteht aus einer eingehenden und einer ausgehenden Verbindung. Jeder Anruf, auch ein interner Anruf, kommt somit über einen sog. Channel herein, der ein Signalisierungsprotokoll, wie SIP, IAX2, SCCP usw. unterstützt. Bei Asterisk werden Channels über Treiber (sog. Channel-Treiber) realisiert. Jeder Channel-Treiber, also somit jedes Protokoll, unterstützt seinen eigenen Channel oder seine eigene protokollabhängige Gesprächsstruktur. Dies beinhaltet Art und Weise des Verbindungsauf- und -abbaus sowie die Aufrechterhaltung der Verbindung. Ein Channel ist somit eine abstrakte Bezeichnung für den Weg eines Gesprächs über einen Asterisk-Server, der über entsprechende Treiber bedient wird.
Rufnummernplan als zentrale Steuereinheit
Die zentrale Steuereinheit von Asterisk ist der Rufnummernplan. Dieser entscheidet u.a. wohin die Anrufer geleitet werden oder was passiert, wenn ein Teilnehmer ein Gespräch annimmt. Die Entwicklung eines Rufnummernplans ist nicht trivial und bildet die Telefonprozesse eines Unternehmens ab. Das heißt, dass jeder Rufnummernplan - je nach Anforderungen - unterschiedlich aussieht und jeweils bei einem Projekt neu erstellt werden muss. Dabei lassen sich hier auch Funktionen umsetzen, die normalerweise von Asterisk gar nicht angeboten werden. Hier steckt letztendlich die Intelligenz der Asterisk-Anlage und damit auch mit der größte Dienstleistungsaufwand bei der Umsetzung einer solchen Lösung.
Protokolle
Die verwendeten Hauptprotokolle von Asterisk sind RTP, SIP und IAX2. H.323 spielt heute in aktuellen Installationen nur noch eine untergeordnete Rolle.
Durch die Vielzahl der unterstützten Protokolle und Funktionen eignet sich Asterisk gleichermaßen für Gateways zwischen verschiedenen Netzen, als Konferenzserver sowie für Sprachmenüs und automatisierte Steuerung durch einen Anrufer.