AGI ( englanninkielisestä Asterisk Gateway Interface -liittymästä - "Asterisk gateway interface") on työkalupakki ohjelmien suorittamiseen, jotka on kirjoitettu lähes millä tahansa ohjelmointikielellä Asterisk IP -puhelinkeskuksen palvelimen numerointisuunnitelmasta . Viestintä ohjelman ja Asterisk - palvelimen välillä tapahtuu tavallisilla tulo - ja lähtövirroilla . Tyypillisesti AGI-komentosarjoja käytetään edistyneen logiikan toteuttamiseen, yhteyden muodostamiseen relaatiotietokantoihin ja muihin ulkoisiin resursseihin. Ohjauksen luovuttaminen ulkoiselle AGI-skriptille antaa Asteriskille mahdollisuuden toteuttaa helposti tehtäviä, jotka muuten olisivat vaikeita tai mahdottomia. AGI:n yleisin käyttötarkoitus on monimutkaisten IVR -järjestelmien kirjoittaminen .
On monia kirjastoja, jotka yksinkertaistavat huomattavasti AGI-skriptien kirjoittamista. Mielenkiintoisin niistä:
Esimerkki: NanoAGI
#include "src/agi.h" int main () { AGI agi ; jos ( agi . cmd ( "stream-tiedosto hello world 0" ) < 0 ) { // cerr << agi.err; paluu -1 ; } agi . cmd ( "katkaista" ); paluu 0 ; }Käännetty binaari on sijoitettava hakemistoon ${atagidir} . Lisää sitten seuraava rivi tiedostoon ${astetcdir}/extensions.conf ja lataa soittosuunnitelma uudelleen:
exten => _100,1,AGI(skripti)