Джим Меггелен - Asterisk™: будущее телефонии Второе издание
Queue(), RemoveQueueMember(), PauseQueueMember(), UnpauseQueueMember(), AgentLogin(), queues.conf
ADSIProg()
Загружает ADSI-сценарий в телефон, поддерживающий ADSI
ADSIProg(сценарий)
Программирует телефон, поддерживающий Analog Display Services Interface (ADSI), с помощью заданного сценария. Если сценарий не задан, используется сценарий по умолчанию, asterisk.adsi. Для сценария указывается относительный путь из папки конфигурации Asterisk (обычно это /etc/asterisk/). Также можно указать полный путь к сценарию.
Для получения CPE ID и другой информации от своего ADSI-телефона используйте приложение GetCPEID():
; программируем ADSI-телефон с помощью сценария telcordia-l.adsi exten => 123,1,ADSIProg(telcordia-1.adsi)
Смотрите также
GetCPEID(), adsi.conf
AgentCallbackLogin()
Регистрация агента с возможностью обратного вызова
AgentCallbackLogln([НомерАгентa][,[опции][,[добaвочныйномер]@контекст]])
Разрешает агенту вызовов, идентифицированному параметром Номер- Агента, регистрироваться в системе очереди вызовов, что позволяет при поступлении вызова для этого агента выполнять обратный вызов к нему.
При поступлении вызова для этого агента Asterisk звонит на заданный добавочный номер (с необязательным контекстом).
Аргумент опции может содержать букву s, что означает скрытую авторизацию:
регистрируется в скрытом режиме как агент номер 42 и определяет, что при поступлении вызова для этого агента Asterisk будет звонить на добавочный номер 123 в контексте internal exten => 123,1,AgentCallbackLogin(42,s, [email protected])
Это приложение является устаревшим, его функциональность замещена логикой диалплана на AEL, размещенного в файле doc/queues-with-callbackmembers.txt в папке исходного кода Asterisk.
Смотрите также
Queue(), AgentLogin(), AddQueueMember(), RemoveQueueMember(), PauseQueueMember(), UnpauseQueueMember(), AGENT, agents.conf, queues.conf
AgentLogin()
Регистрация агента вызовов в системе
AgentLogin([НомерАгента][, опции])
Регистрирует текущего вызывающего абонента в системе очереди вызовов как агента обработки вызовов (он может быть идентифицирован параметром НомерАгента). После регистрации агент может принимать вызовы и будет слышать звуковой сигнал в линии при поступлении нового вызова. Агент может прервать текущий вызов, нажав кнопку со звездочкой (*). Если НомерАгента не задан, вызывающему абоненту будет предложено ввести свой номер агента. Агенты описаны в файле agents.conf.
Аргумент опции может содержать букву s, что означает скрытую авторизацию:
; регистрируем в скрытом режиме вызывающего абонента как ; агента номер 42, как определено в agents.conf exten => 123,1,AgentLogin(42,s)
Смотрите также
Queue(), AddQueueMember(), RemoveQueueMember(), PauseQueueMember(), UnpauseQueueMember(), AGENT, agents.conf, queues.conf
AgentMonitorOutgoing()
Регистрирует исходящие вызовы агента
AgentMonitorOutgoing([опции])
Регистрирует все исходящие вызовы, производимые агентом обработки вызовов.
Это приложение пытается выяснить ID агента, выполняющего исходящий вызов, на основании сравнения Caller ID (ID звонящего) текущего интерфейса и глобальной переменной, заданной приложением AgentCallbackLogin(). Таким образом, оно должно использоваться только в сочетании (и после него!) с приложением AgentCallbackLogin(). Для записи вызовов оно использует не приложение Monitor(), а функции для записи разговоров модуля chan_agent. Это означает, что процедура записи вызовов должна быть правильно сконфигурирована в файле agents.conf. По умолчанию записанные звонки сохраняются в папке /var/spool/ asterisk/monitor/. Это можно переопределить с помощью параметра savecallsin в файле agents.conf.
Если Caller ID и/или ID агента на найден, это приложение передаст управление приоритету n + 1, если он существует (где n - текущий приоритет). Если это не переопределено какой-либо опцией, возвращается 0. Аргумент опции может включать одно или более из следующих значений:
d
В случае ошибки и отсутствия добавочного номера n + 101 приложение возвращает -1.
c
Меняет Call Detail Record (Запись параметров вызова) таким образом, что источник вызова записывается как Агент/id_агента.
Не формирует предупреждения, если отсутствует Caller ID или ID агента неизвестен. Эта опция полезна, если вы желаете использовать один контекст для звонков агентов и не-агентов.
; записываем исходящие звонки для этого агента и меняем ; CDR, чтобы отразить то, что звонок выполняется агентом exten => 123,1,AgentMonitorOutgoing(c)
Смотрите также
AgentCallbackLogin(), agents.conf
AGI()
Выполняет совместимое с AGI приложение
[E]AGI(прогрaммa[, аргументы])
Выполняет для текущего канала совместимую с Asterisk Gateway Interface программу. AGI-программы обеспечивают возможность внешним программам (которые могут быть написаны практически на любом языке программирования) управлять каналом связи путем воспроизведения аудиофайлов, чтения DTMF-сигналов и т. д. Asterisk обменивается информацией с AGI-программой с помощью стандартных потоков ввода вывода STDIN и STDOUT. Заданные аргументы передаются в AGI-программу.
В качестве программы должен быть задан исполняемый файл из базовой файловой системы. Путь к программе должен вести в папку 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. К этим параметрам относятся: