Asterisk™: будущее телефонии Второе издание
Шрифт:
NOTSURE (не уверен)
Приложение не смогло определить, является ли вызываемая сторона человеком или автоответчиком.
HANGUP (разрыв)
В процессе определения произошел разрыв соединения. Приложение AMD также указывает в переменной канала AMDCAUSE причину, на основании которой делается заключение, обозначенное в переменной AMDSTATUS. Для переменной AMDCAUSE будет задано одно из следующих значений: TOOLONG-общее_время
INITIALSILENCE-продолжительность_паузы-начальная_пауза HUMAN-продолжительность_паузы-пауза_после_приветствия MAXWORDS-количество_слов-максимальное_число_слов LONGGREETING-продолжительность_разговора-приветствие Все
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 с каналом, если по нему в настоящий
Если нет веских оснований не делать этого, 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 ниже. Параметр максимумсимволов задает максимальное число символов, которое может ввести вызывающий абонент. Если этот параметр не задан, приложение будет принимать неограниченное число символов и станет ожидать от вызывающего абонента нажатия кнопки # после введения кода аутентификации.
Может быть задана одна или несколько опций из следующего списка:
a
Присваивает CDR-полю accountcode, а переменной канала ACCOUNTCODE - значение введенного пароля.
d
Трактует путь не как файл, а как ключ базы данных Asterisk, в которой следует искать пароль. При использовании ключа базы данных значением, ассоциированным с ключом, может быть все что угодно.
j
Поддерживает переход к приоритету n + 101 в случае неудачной аутентификации.