Der Aynchronous Javascript Asterisk Manager (AJAM)

Seit Version 1.4 bringt Asterisk einen kleinen Webserver mit, AJAM genannt, über den man per HTTP auf das Asterisk Manager Interface (AMI) zugreifen kann. Die Bezeichnung „AJAM“ ist eindeutig von „AJAX[140] (Asynchronous JavaScript and XML) abgeleitet.

Zur Einrichtung sind die Schritte wie in „Das Manager-Interface (AMI)“ Voraussetzung, zusätzlich stellt man in der manager.conf im Abschnitt [general] den Parameter webenabled auf yes ein. Beachten Sie auch den Parameter httptimeout, der festlegt, nach welcher Inaktivität (in Sekunden) man im Web-Interface automatisch ausgeloggt wird. Um dann den Webserver zu aktivieren, setzt man in der http.conf folgende Einstellungen:

[general]
enabled=yes
enablestatic=yes
bindaddr=127.0.0.1
bindport=8088
prefix=asterisk

enablestatic muss man nur dann aktivieren, wenn der AJAM auch als Webserver für statische Dateien im Verzeichnis /var/lib/asterisk/static-http/ fungieren soll. Normalerweise stellt man das auf no, es ist aber Voraussetzung für die Asterisk-AJAM-Demo („AJAM Demo“).

Restart nicht vergessen!

[Achtung]

Nach meiner Einschätzung ist es in den seltensten Fällen empfehlenswert, andere Web-Applikationen, also solche, die ausschließlich für den Administrator zugänglich sind, direkt auf die AJAM-Schnittstelle zugreifen zu lassen, und das ist wohl auch nicht so gedacht, denn dazu lassen sich die Rechte mit read und write (siehe „Das Manager-Interface (AMI)“) einfach nicht granular genug einstellen. Denken Sie daran, dass ein User absichtlich oder unabsichtlich auch andere Aktionen ausführen kann, als Sie ihm in der GUI zur Verfügung stellen. Besser wäre es, Ihre Applikation auf z.B. ein PHP-Skript zugreifen zu lassen, das nur vordefinierte erlaubte Befehle auf dem AMI ausführt, und zur Sicherheit muss noch nicht mal dieses Skript alle AMI-Rechte haben.