AGI (din limba engleză Asterisk Gateway Interface - „Asterisk gateway interface”) este un set de instrumente pentru rularea programelor scrise în aproape orice limbaj de programare din planul de numerotare al serverului de centrală telefonică Asterisk IP . Comunicarea între program și serverul Asterisk se face prin fluxuri standard de intrare și ieșire . De obicei, scripturile AGI sunt folosite pentru a implementa logica avansată, pentru a se conecta la baze de date relaționale și pentru a accesa alte resurse externe. Predarea controlului unui script AGI extern permite lui Asterisk să implementeze cu ușurință sarcini care altfel ar fi dificile sau imposibile. Cea mai comună utilizare a AGI este de a scrie sisteme IVR complexe .
Există multe biblioteci care simplifică foarte mult procesul de scriere a scripturilor AGI. Cele mai interesante dintre ele:
Exemplu pentru NanoAGI
#include „src/agi.h” int main () { AGI agi ; daca ( agi . cmd ( „fișierul de flux hello world 0” ) < 0 ) { // cerr << agi.err; întoarcere -1 ; } agi . cmd ( "închidere" ); returnează 0 ; }Binarul compilat trebuie plasat în directorul ${atagidir} . Apoi adăugați următoarea linie la ${astetcdir}/extensions.conf și reîncărcați planul de apelare:
exten => _100,1,AGI(script)