Asterisk Gateway-Schnittstelle - Asterisk Gateway Interface

Asterisk Gateway Interface ( AGI ) ist eine Softwareschnittstelle und ein Kommunikationsprotokoll zur Steuerung ausgewählter Funktionen der Asterisk PBX auf Anwendungsebene .

AGI ermöglicht ein externes, vom Benutzer geschriebenes Programm, das vom Asterisk-Wählplan über Pipes gestartet wird , um Telefonievorgänge auf den zugehörigen Steuerungs- und Sprachkanälen zu steuern. Es ähnelt der CGI- Funktion von Webservern , da jede Sprache zum Schreiben des externen Programms verwendet werden kann, das über stdin und stdout mit Asterisk kommuniziert .

Während der anfängliche Funktionsumfang von AGI nur eine prozedurale Steuerung von Asterisk-Vorgängen über Befehle und Antworthandshake beinhaltete, bot Enhanced AGI (EAGI) auch einen Out-of-Band-Zugriff auf den eingehenden Audiostream.

FastAGI ist eine Erweiterung von AGI, mit der das externe Programm auf einem separaten Netzwerkhost ausgeführt werden kann, um den Aufwand für die Erstellung eines neuen Prozesses für jeden Aufruf auf dem Asterisk-Server zu vermeiden. Es verwendet einen TCP- Socket für die Kommunikation mit dem externen Host, der die Funktion eines AGI-Dienstes nach Art des Client-Server-Modells bereitstellt . Der Standard- TCP-Port für FastAGI ist 4573 . Ähnlich wie bei HTTP- URIs ( Uniform Resource Identifiers ) verwendet FastAGI ein URI-Format vonagi: // Hostname [: Port] [/ Programm / Pfad].

Der AGI-Funktionsumfang von Asterisk ist als ladbares Asterisk-Modul ( res_agi ) implementiert . Auf die Funktionen kann über eine Vielzahl von Anwendungsprogrammierschnittstellen in verschiedenen Sprachen zugegriffen werden , z. B. phpagi , Perl AGI Library, CAGI , NanoAGI und PyST

Verweise