AGI (fra det engelske Asterisk Gateway Interface - "Asterisk gateway interface") er et værktøjssæt til at køre programmer skrevet på næsten ethvert programmeringssprog fra Asterisk IP - telefoncentralserverens nummerplan . Kommunikation mellem programmet og Asterisk-serveren sker ved hjælp af standard input- og outputstrømme . Typisk bruges AGI-scripts til at implementere avanceret logik, oprette forbindelse til relationelle databaser og få adgang til andre eksterne ressourcer. Overdragelse af kontrollen til et eksternt AGI-script gør det muligt for Asterisk nemt at implementere opgaver, der ellers ville være vanskelige eller umulige. Den mest almindelige brug af AGI er at skrive komplekse IVR- systemer .
Der er mange biblioteker, der i høj grad forenkler processen med at skrive AGI-scripts. Den mest interessante af dem:
Eksempel på NanoAGI
#include "src/agi.h" int main () { AGI agi ; hvis ( agi . cmd ( "stream fil hej verden 0" ) < 0 ) { // cerr << agi.err; returnere -1 ; } agi . cmd ( "læg på" ); returnere 0 ; }Den kompilerede binære skal placeres i mappen ${atagidir} . Tilføj derefter følgende linje til ${astetcdir}/extensions.conf og genindlæs opkaldsplanen:
exten => _100,1,AGI(script)