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()

exten => 123,n,GotoIf($['${AMDSTATUS}' = 'HUMAN']?human:machine) exten => 123,n (machine),WaitForSilence(2000) exten => 123,n,Playback(asterisk-friend) exten => 123,n,Hangup()

exten => 123,n(human),Verbose(3, We've got a human on the line!)

exten => 123,n,Playback(transfer)

exten => 123,n,Dial(SIP/bob)

exten => 123,n,Playback(im-sorry)

exten => 123,n,Hangup()

Смотрите также

WaitForSilence()

Answer()

Устанавливает соединение, если по каналу поступает вызов

Answer([задержка])

Обусловливает установление соединения Asterisk с каналом, если по нему в настоящий момент поступает вызов. Если по текущему каналу вызов не производится, это приложение ничего не делает. Если задана задержка, Asterisk ответит на вызов и перейдет к следующему приоритету диалплана только по прошествии заданного количества миллисекунд.

Если нет веских оснований не делать этого, Answer() рекомендуется использовать для канала перед вызовом всех остальных приложений. Существует несколько ключевых приложений, которые требуют, чтобы перед их выполнением было выполнено приложение Answer(). В противном случае они могут работать некорректно: exten => 123,1,Answer(750) exten => 123,n,Playback(tt-weasels)

Смотрите также

Hangup()

AppendCDRUserField()

Добавляет значение в поле пользователя записи Call Detail Record

AppendCDRUserField( .значение)

Добавляет значение в поле пользователя записи Call Detail Record (CDR). Поле пользователя часто используется для хранения произвольных данных о вызове, которые не подходят для всех остальных полей:

; задаем в поле пользователя значение 'abcde' exten => 123,1,SetCDRUserField(abcde) ; теперь добавлям в конец 'xyz' exten => 123,1,AppendCDRUserField(xyz)

Это приложение было признано устаревшим и заменено CDR- функцией.

exten => 123,1,Set(CDR(userfield)=${CDR(userfield)}12345)

Смотрите также

SetCDRUserField(), ForkCDR(), NoCDR(), ResetCDR(), CDR

Authenticate()

Требует от вызывающего абонента введения правильного пароля для продолжения выполнения

Authenticate(пaроль[,опции[, максимумсимволов]])

Требует от вызывающего абонента ввести заданный пароль, чтобы продолжать выполнение следующего приоритета диалплана. Authenticate() дает вызывающему абоненту три попытки для правильного введения пароля. Если за эти три попытки вызывающий абонент так и не смог ввести правильный пароль, выполняется разрыв соединения.

Если пароль начинается с символа /, он трактуется как файл, содержащий список действительных паролей (по одному в строке). Пароли также могут храниться в базе данных Asterisk (AstDB); см. опцию d

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату