Asterisk™: будущее телефонии Второе издание - Меггелен Джим Ван
exten => 123,1,Echo()
exten => 123,2,Playback(vm-goodbye)
Смотрите также
Milliwatt()
EndWhile()
Завершает цикл while
EndWhile()
Возвращается к ранее вызванному приложению While(). Полную информацию о том, как использовать цикл while, можно найти в описании приложения While().
exten => 123,1,Set(COUNT=1) exten => 123,2,While($[ ${COUNT} < 5 ]) exten => 123,3,SayNumber(${COUNT}) exten => 123,4,Set(COUNT=$[${COUNT} + 1] exten => 123,5,EndWhile()
Смотрите также
While(), ExitWhile(), GotoIf()
Exec()
Динамически выполняет приложение Asterisk
Ex.ec(имяприложения(aргументы))
Позволяет вызывать любое приложение, даже если оно не указано в коде диалплана. Выполняет выход так же, как и базовое приложение, или аварийно, если это приложение не найдено. Значение аргументы передается в вызываемое приложение.
Это приложение позволяет динамически вызывать приложения, извлекая их из базы данных или другого внешнего источника.
exten => 123,1,Set(MYAPP=SayDigits(12345)) exten => 123,2,Exec(${MYAPP})
Смотрите также
EVAL, TryExec(), ExecIf()
ExecIf()
Выполняет приложение Asterisk по условию
ExecIf(выражение,приложение, аргументы)
Если выражение истинно, выполняет заданное приложение, передавая в него аргументы, и возвращает результат. Больше информации о выражениях Asterisk можно найти в главе 6 или в файле channelvariables. txt в подпапке doc/ папки исходного кода Asterisk. Если выражение ложно, выполнение продолжается со следующего приоритета.
exten => 123,1,ExecIf($[ ${CALLERIDNUM} = 101 ],SayDigits,12345) exten => 123,2,SayDigits(6789)
Смотрите также
EVAL, Exec(), TryExec()
ExitWhile()
Выполняет выход из цикла While() независимо от того, было удовлетворено условие или нет
ExitWhile()
Завершит цикл While() независимо от того, было ли удовлетворено условие в выражении.
exten => 123,1,Set(COUNT=1)123,1,Set(COUNT=1) exten => 123,n,While($[${COUNT} < 5]) exten => 123,n,GotoIf($[${COUNT} != 3]?continue) exten => 123,n,ExitWhile() exten => 123,n(continue),NoOp() exten => 123,n,SayNumber(${COUNT}) exten => 123,n,Set(COUNT=$[${COUNT} + 1]) exten => 123,n,EndWhile()Смотрите также
While(), ContinueWhile(), EndWhile()
ExtenSpy()
Прослушивает аудиосигнал по добавочному номеру и может (опционально) посылать сигнал в вызывающий канал
ExtenSpy([добавочныйномер@контекст[, опции]])
Это приложение используется для прослушивания аудиосигнала, поступающего в канал и из канала Asterisk. Для прослушивания будут выбираться только каналы, созданные исходящими вызовами с заданного добавочного номера.
При прослушивании канала могут выполняться следующие действия:
• Набор # циклически меняет уровень громкости.
• Набор * заставит приложение перейти к прослушиванию следующего доступного канала.
Параметр опции может содержать нуль или более следующих опций: b
Прослушивать только соединенные каналы.
g(группа)
Прослушивать только каналы с переменной канала SPYGROUP, в которой в необязательном списке с разделяющими двоеточиями должна быть указана группа.
q
Скрытый режим. Указывает приложению, начиная прослушивание, не подавать звуковой сигнал или не читать имя выбранного канала.
r[(базовоеимя)]
Записывает разговор, ведущийся по каналу, в папку очереди для записей разговоров (обычно это /var/spool/asterisk/monitor). Необязательный аргумент базовоеимя задает базовое имя файла для записей, значение по умолчанию - chanspy.
v([значение])
Настраивает громкость прослушиваемого аудиосигнала. Значение должно быть в диапазоне от 4 до -4. Отрицательное значение сделает звук тише, тогда как положительное - громче.
w
Режим шепота. Позволяет прослушивающему каналу «говорить» с прослушиваемым каналом. При этом ни один другой соединенный канал не сможет слышать этот разговор.
W
Закрытый режим шепота. Позволяет прослушивающему каналу «говорить» с прослушиваемым каналом без возможности слышать аудиосигнал из прослушиваемого канала.
; Прослушиваем каналы, созданные добавочным номером 125 ; в контексте lab
exten => 123,1,ExtenSpy([email protected],w)
Смотрите также
ChanSpy()
ExternalIVR()
Обеспечивает сопряжение с внешним IVR-приложением
ExternalIVR(команда[,аргумент1[,аргумент2...]])
Создает процесс для выполнения указанной совместимой с интерфейсом ExternallVR команды и запускает генератор для канала. Список воспроизведения генератора управляет внешним приложением, которое может добавлять и удалять записи посредством простых команд, передаваемых по STDOUT. Внешнее приложение будет получать уведомления обо всех DTMF-событиях, полученных по каналу, а также уведомление о том, что абонент повесил трубку. Приложение не будет принудительно завершаться, когда абонент повесил трубку. Спецификацию интерфейса ExternalIVR можно найти в папке исходного кода Asterisk в файле doc/externalivr.txt.
; Выполняем внешнюю программу IVR, передавая аргумент
exten => 123,1,ExternalIVR(test_program,${MYARGUMENT})
Смотрите также
AGI()
FastAGI()
Удаленно выполняет совместимый с AGI сценарий
FastAGI(agl://имяхоста[:порт][/сценарий], аргументы)
Выполняет совместимую с AGI программу по сети. Это приложение очень похоже на AGI(), за исключением того что вызывает специально написанный сценарий FastAGI по сетевому соединению. Основные цели использования FastAGI - перенести требующие интенсивной работы ЦП AGI-сценарии на удаленные серверы и сократить время запуска AGI-сце- нария (программа FastAGI выполняется уже до того, как Asterisk соединится с ней).
FastAGI() пытается подключиться прямо к выполняющейся программе FastAGI, которая должна слушать соединения по заданному порту сервера, заданного параметром имяхоста. Если порт не задан, по умолчанию используется порт 4573. Если сценарий задан, он передается в программу FastAGI как переменная agi_network_script (сетевой agi-сцена- рий). Параметр аргументы будет передан в программу.
Пример сценария FastAGI можно найти в папке исходного кода Asterisk agi/fastagi-test. Он должен послужить вам хорошим образцом для написания собственных программ FastAGI.
Возвращает -1, если приложение запросило разорвать соединение, или 0 при выходе без разрыва соединения.
; соединяемся с программой fastagi-test, которая уже ; должна выполняться на локальном компьютере exten => 123,1,Answer() exten => 123,2,FastAGI(agi://localhost)
; соединяемся со сценарием FastAGI на хосте calvin ; через порт 8000 и передаем имя сценария testing ; с аргументом 12345 exten => 124,1,Answer()
exten => 124,2,FastAGI(agi://calvin:8000/testing,12345)
Смотрите также
AGI(), DeadAGI()
Festival()
Использует механизм речевого воспроизведения текста Festival для чтения текста вызывающему абоненту
Festival^^^, кнопкипрерывания])
Подключается к выполняемому локально серверу Festival, посылает ему текст и воспроизводит результирующий звуковой файл абоненту. Это приложение позволяет вызывающему абоненту нажимать определенную кнопку (заданную параметром кнопкипрерывания), чтобы немедленно прекратить воспроизведение и возвратить значение кнопкипреры- вания. Если для параметра кнопкипрерывания задано значение any (любой), Festival() передаст управление каналом добавочному номеру, введенному пользователем.