AGI
Материал из Xgu.ru
AGI (Asterisk Gateway Interface) — интерфейс к программной АТС Asterisk, предназначенный для интеграции
её с внешними программными модулями и расширения с их помощью её функциональности.
AGI-скрипт взаимодействует с Asterisk через стандартные потоки ввода вывода, поэтому AGI-скрипты могут быть написаны на любом языке программирования, который умеет работать со стандартными потоками. Существуют готовые библиотеки для работы с AGI для языков программирования Perl, Python, Ruby, PHP, Haskell и ряда других.
[править] Пример AGI-скрипта
#!/usr/bin/perl use Asterisk::AGI; use File::Basename; use Digest::MD5 qw(md5_hex); $AGI = new Asterisk::AGI; my %input = $AGI->ReadParse(); my ($text)=@ARGV; my $hash = md5_hex($text); my $sounddir = "/var/lib/asterisk/sounds/tts"; my $wavefile = "$sounddir/"."tts-$hash.wav"; my $t2wp=""; unless (-f $wavefile) { open(fileOUT, ">$sounddir"."/say-text-$hash.txt"); print fileOUT "$text"; close(fileOUT); my $execf=$t2wp."text2wave $sounddir/say-text-$hash.txt -F 8000 -o $wavefile"; system($execf); unlink($sounddir."/say-text-$hash.txt"); } $wavefile =~ s/.wav//; $AGI->exec('tts/'.basename($wavefile,".wav"));
[править] Дополнительная информация
- Asterisk AGI (англ.)