В данном конкретном случае записывается файл testagi (в формате GSM), любой DTMF-код от 1 до 4 может прервать запись и максимальное время записи - 3000 мс.
print STDERR "6a. Testing 'record' playback..."; print "STREAM FILE testagi \"\"\n"; my $result =
Вторая часть этого теста воспроизводит записанный ранее аудиофайл, используя команду STREAM FILE. Команда STREAM FILE уже рассматривалась, поэтому данный фрагмент кода не требует дополнительных пояснений.
print STDERR "================== Complete ======================\n";
print STDERR "$tests tests completed, $pass passed, $fail failed\n"; print STDERR "==================================================\n";
В конце сценария AGI результаты тестирования записываются в STDERR, который должен быть выведен в консоли Asterisk.
Итак, при написании AGI-программ на Perl необходимо помнить следующее:
• Должен быть активирован строгий контроль выполнения правил языка программирования с помощью команды use strict[102].
• Должна быть отключена буферизация вывода через задание $|=1.
• Данные, поступающие от Asterisk, принимаются с помощью цикла
while(
• Значения записываются командой print.
• Для записи отладочной информации в консоль Asterisk используется команда print STDERR.
Библиотека AGI для Perl
Тем, кто собирается создавать собственные сценарии AGI на языке Perl, вероятно, будет интересен модуль на Perl - Asterisk::AGI, написанный Джеймсом Головичем (James Golovich), который можно найти по адресу
Создание сценариев AGI на PHP
Мы обещали обсудить несколько языков программирования, поэтому пойдем дальше и рассмотрим, как выглядит сценарий AGI на PHP. Основные правила программирования AGI те же, изменился только язык программирования. В данном примере мы напишем сценарий AGI для загрузки из Интернета сводки погоды и предоставления вызывающему абоненту информации о температуре, направлении и скорости ветра.
#!/usr/bin/php -q