Шрифт:
В качестве программы должен быть задан исполняемый файл из базовой файловой системы. Путь к программе должен вести в папку AGI Asterisk, по умолчанию это /var/lib/asterisk/agi-bin/. Если необходимо выполнить AGI, когда не существует ни одного канала (как для добавочного номера h), используйте приложение DeadAGI. Если требуется выполнять AGI удаленно, используется приложение FastAGI.
Если вы хотите выполнять доступ к входящему аудиопотоку из своей AGI-программы, вместо AGI используйте приложение EAGI. Тогда входящий аудиопоток может читаться в дескриптор файла 3. Если происходит преждевременный разрыв соединения, процессу, запущенному командой AGI, будет послан сигнал HUP, извещающий о завершении соединения. Если ваша программа не перехватит этот сигнал, она будет завершена. Это поведение можно переопределить, задав для переменной канала AGISIGHUP значение 0: ; вызываем демонстрационную AGI-программу exten => 123,1,AGI(agi-test) exten => 123,2,EAGI(eagi-test)
Смотрите также
DeadAGI, FastAGI, главу 9
AlarmReceiver
Предоставляет поддержку для получения сигналов с панели охранной или пожарной сигнализации
AlarmReceiver
Эмулирует приемник сигналов тревоги и позволяет Asterisk принимать и декодировать специальные данные панелей пожарной и/или охранной сигнализации. На данный момент поддерживается только формат Ademco Contact ID.
Будучи вызванным, приложение AlarmReceiver подтвердит установление связи с панелью сигнализации, будет принимать события, проверять их достоверность, подтверждать их и сохранять до тех пор, пока панель не разорвет соединение. Как только панель разорвет соединение, приложение будет выполнять строку команд, заданную настройкой eventcmd в файле alarmreceiver.conf, и передавать события на стандартный ввод приложения. Файл alarmreceiver.conf также содержит настройки синхронизации DTMF и громкости тонов подтверждения приема. ; настраиваем Asterisk, чтобы она отвечала на вызовы ; поддерживаемой панели пожарной сигнализации exten => s,1,AlarmReceiver
Надежность этого приложения не гарантируется, поэтому не полагайтесь на него без всестороннего тестирования. Используя это приложение без тестирования, вы подвергаете свою жизнь и собственность большой опасности.
Смотрите также
alarmreceiver.conf
AMD
Выявление автоответчика
AMD([initialSilence[,greeting[,afterGreetingSilence[,totalAnalysisTime[, minimumUordien gth[,betweenUordsSilence[, maximumNumberOfUords[, silenceThreshold]]]]]]]])
Это приложение пытается установить наличие автоответчика на основании шаблонов синхронизации. Это приложение обычно используется исходящими вызовами, берущими начало или в файлах вызовов, или в интерфейсе Asterisk Manager. Приложение сообщает, какой тип вызова был выявлен, задавая переменной AMDSTATUS одно из следующих значений: MACHINE (машина)
Считается, что вызываемая сторона является автоответчиком. HUMAN (человек)
Считается, что вызываемая сторона является человеком, а не автоответчиком.
NOTSURE (не уверен)
Приложение не смогло определить, является ли вызываемая сторона человеком или автоответчиком.
HANGUP (разрыв)
В процессе определения произошел разрыв соединения. Приложение AMD также указывает в переменной канала AMDCAUSE причину, на основании которой делается заключение, обозначенное в переменной AMDSTATUS. Для переменной AMDCAUSE будет задано одно из следующих значений: TOOLONG-общее_время
INITIALSILENCE-продолжительность_паузы-начальная_пауза HUMAN-продолжительность_паузы-пауза_после_приветствия MAXWORDS-количество_слов-максимальное_число_слов LONGGREETING-продолжительность_разговора-приветствие Все параметры данного приложения помогают настроить его так, чтобы оно могло более эффективно оценивать разницу между человеком и автоответчиком. Если параметры не переданы в это приложение, Asterisk прочитает значения по умолчанию, описанные в amd.conf. К этим параметрам относятся:
initialSilence (начальная пауза)
Максимальная продолжительность паузы перед приветствием. Если это значение превышено, для переменной AMDSTATUS будет задано значение MACHINE.
greeting (приветствие)
Максимальная продолжительность приветствия. Если превышена, для переменной AMDSTATUS будет задано значение MACHINE.
afterGreetingSilence (пауза после приветствия)
Максимальная пауза после обнаружения приветствия. Если превышена, для переменной AMDSTATUS будет задано значение MACHINE.
totalAnalysisTime (общее время анализа)
Максимальное время, предоставляемое алгоритму для принятия решения о том, является ли вызываемая сторона человеком или автоответчиком. minimumWordLength (минимальная длина слова)
Если продолжительность разговора короче, чем minimumWordLength, это не будет считаться речью человека. betweenWordsSilence (пауза между словами)
Минимальная пауза после слова, чтобы считать следующий аудиосигнал новым словом.
maximumNumberOfWords (максимальное число слов)
Максимальное число слов в приветствии. Если это значение превышено, для переменной AMDSTATUS будет задано значение MACHINE.
silenceThreshold (пороговая продолжительность паузы) Чувствительность алгоритма при выявлении паузы.
; Используем алгоритм выявления автоответчика. Если ; вызываемая сторона является человеком, устанавливаем ; соединение с Бобом. В противном случае воспроизводим ; сообщение и разрываем соединение exten => 123,1,Answer exten => 123,n,AMD