Lunar Gateway
- 1 year ago
- 0
- 0
AGI (от англ. Asterisk Gateway Interface — «шлюзовой интерфейс Asterisk») — это инструментарий для запуска программ , написанных практически на любом языке программирования , из плана нумерации сервера IP-телефонной станции Asterisk . Связь между программой и сервером Asterisk осуществляется стандартными потоками ввода и вывода . Как правило, сценарии AGI используются для реализации расширенной логики, соединения с реляционными базами данных и доступа к другим внешним ресурсам. Передача управления внешнему сценарию AGI позволяет Asterisk без труда реализовать задачи, выполнение которых в противном случае было бы сложным или невозможным. Наиболее часто AGI используется для написания сложных систем IVR .
Существует множество библиотек, значительно упрощающих процесс написания сценариев AGI. Наиболее интересные из них:
Пример для
#include "src/agi.H"
int main()
{
AGI agi;
if(
agi.cmd("stream file hello-world 0")
< 0)
{
// cerr << agi.err;
return -1;
}
agi.cmd("hangup");
return 0;
}
Скомпилированый бинарный файл необходимо поместить в каталог ${astagidir} . Затем добавить в ${astetcdir}/extensions.conf следующую строку и перезагрузить план нумерации:
exten => _100,1,AGI(script)