Asterisk Gateway-gränssnitt
Asterisk Gateway Interface ( AGI ) är ett mjukvarugränssnitt och kommunikationsprotokoll för kontroll av applikationsnivå av utvalda funktioner i Asterisk PBX .
AGI tillåter ett externt, användarskrivet program, som lanseras från Asterisk-uppringningsplanen via pipes för att styra telefonidrift på dess tillhörande kontroll- och röstkanaler. Det liknar CGI- funktionen hos webbservrar genom att tillåta vilket språk som helst att användas för att skriva det externa programmet som kommunicerar med Asterisk via stdin och stdout .
Medan den initiala funktionsuppsättningen av AGI endast inkluderade en procedurkontroll av Asterisk-operationer via kommandon och svarshandskakning, gav Enhanced AGI (EAGI) också åtkomst utanför bandet till den inkommande ljudströmmen.
FastAGI är ett tillägg till AGI som gör att det externa programmet kan köras på en separat nätverksvärd för att undvika omkostnader för att skapa en ny process för varje samtal på Asterisk-servern. Den använder en TCP- socket för kommunikation till den externa värden som tillhandahåller funktionen av en AGI-tjänst, på ett sätt som klient- servermodellen . Standard TCP-port för FastAGI är 4573 . I likhet med HTTP Uniform Resource Identifiers (URI) använder FastAGI URI-formatet agi://hostname[:port][/program/path] .
AGI-funktionsuppsättningen av Asterisk är implementerad som en Asterisk-laddningsbar modul ( res_agi ). Funktionerna kan nås av en mängd olika applikationsprogrammeringsgränssnitt på olika språk, såsom phpagi , Perl AGI Library, CAGI , NanoAGI och PyST