Wer einmal ein ls im Verzeichnis
/etc/asterisk/
ausgeführt hat, wird dort nicht nur
eine Datei extensions.conf
, sondern auch eine Datei
extensions.ael
gefunden haben. In dieser Datei ist
ein Teil des Dialplanes in der Asterisk Extension Language (kurz AEL)
abgespeichert. AEL ist ein Versuch die Programmierung des Dialplanes
syntaktisch mehr an andere Programmiersprachen anzulehnen. Wenn ein sonst
üblicher Dialplan wie folgt aussieht:
[meine-telefone] exten => 23,1,Wait(1) exten => 23,2,Answer() exten => 23,3,Playback(hello-world) exten => 23,4,Wait(1) exten => 23,5,Hangup()
Dann sieht die gleiche Extension im gleichen Context in AEL wie folgt aus:
context meine-telefone { 23 => { Wait(1); Answer(); Playback(hello-world); Wait(1); Hangup(); }; };
Wie spielen die beiden Versionen des Dialplanes zusammen? Asterisk
lädt erst die Datei extensions.conf
und dann konvertiert es
die Datei extensions.ael
in das .conf
Format, um
es danach zu laden. Es werden also beide Dateien geladen und als Dialplan
ausgeführt! Da die AEL erst noch in das alte Format umkonvertiert werden
muss, könnte man sogar mit einem leichten zeitlichen Nachteil
argumentieren. Wenn in beiden Dateien die gleiche Extension im gleichen
Context definiert ist, dann nimmt Asterisk die
extensions.conf
Variante.
Ob man den traditionellen oder den AEL Weg wählt, muss jeder selbst
entscheiden. Vom technischen Standpunkt gibt es keine Unterschiede in der
Funktionalität. Wer sich für AEL interessiert, sollte einmal einen Blick
in die Datei /etc/asterisk/extensions.ael
werfen.
Dort gibt es einige praktische Beispiele.
In diesem Buch werden alle Beispiele immer im traditionellen Modus beschrieben. Einer der Gründe dafür ist, das AEL bei der Asterisk Version 1.2 noch als experimentell eingestuft wurde. Erst mit der Asterisk Version 1.4 ist AEL vom Status "stable" .