Asterisk™: будущее телефонии Второе издание - Меггелен Джим Ван
Проводит проверку на определение доступности какого-либо из запрашиваемых каналов. Это приложение также задает следующие переменные каналов:
AVAILCHAN
Имя доступного канала, включая номер сеанса вызова, используемого для проведения проверки.
AVAILORIGCHAN
Каноническое имя канала, используемое для его создания, то есть имя канала без номера сеанса.
AVAIiSTATUS
Код статуса канала.
Если задана опция s (означающая state - состояние), Asterisk будет считать используемый канал недоступным, даже если он может принять другой вызов.
Если задана опция j и не доступен ни один из запрашиваемых каналов, выполнение переходит в приоритет n + 101 (где n - текущий приоритет), если этот приоритет существует.
; проверяет, доступны ли каналы Zap/1 и Zap/2 exten => 123,1,ChanIsAvail(Zap/1&Zap/2) ; выводит имя доступного канала в CLI Asterisk exten => 123,2,Verbose(0,${AVAILORIGCHAN})
Г~ 1 Это приложение работает некорректно для каналов MGCP.
ChannelRedirect()
Перенаправляет канал в новую точку диалплана
ChannelRedirect(кaнaл,[[контекст,]добaвочныйномер,]приоритет)
Это приложение перенаправляет заданный канал в новый приоритет диалплана. Если добавочныйномер не задан, принимается текущий добавочный номер. Если контекст не задан, будет принят текущий контекст:
; Перенаправляет SIP/Bob к музыке во время ожидания
; при наборе добавочного номера 123
exten => 123,1,ChannelRedirect(SIP/Bob,124,1)
exten => 124,1,Answer()
exten => 124,2,MusicOnHold()
Смотрите также
Transfer()
ChanSpy()
Слушает разговор в канале и может посылать сигналы в вызывающий канал
ChanSpy([префикскaнaлa[,опции]])
Это приложение используется для прослушивания аудиосигнала, проходящего по каналу Asterisk в обоих направлениях. Если задан параметр префиксканала, прослушиваться будут только каналы, начинающиеся с этого префикса.
При прослушивании канала могут осуществляться следующие действия:
• Набор # циклически меняет уровень громкости.
• Набор * заставит приложение перейти к прослушиванию следующего доступного канала.
• Набор последовательности символов, завершенный нажатием кнопки #, создает имя канала (которое будет добавлено после префикска- нала). Например, если запустить ChanSpy(Zap), а затем в процессе прослушивания набрать символы 42#, начнется прослушивание канала Zap/42.
Параметр опции может содержать нуль или более следующих опций:
b
Прослушивать только соединенные каналы.
g(группа)
Прослушивать только каналы с переменной канала SPYGROUP, в которой в необязательном списке с разделяющими двоеточиями должна быть указана группа.
q
Скрытый режим. Указывает приложению, начиная прослушивание, не подавать звуковой сигнал или не читать имя выбранного канала.
r[(базовоеимя)]
Записывает разговор, ведущийся по каналу, в папку очереди для записей разговоров (обычно это /var/spool/asterisk/monitor). Необязательное базовоеимя задает базовое имя файла для записей, значение по умолчанию - chanspy.
v([значение])
Настраивает громкость прослушиваемого аудиосигнала. Значение должно быть в диапазоне от 4 до -4. Отрицательное значение сделает звук тише, тогда как положительное - громче.
w
Режим шепота. Позволяет прослушивающему каналу «говорить» с прослушиваемым каналом. При этом ни один другой соединенный канал не сможет слышать этот разговор.
W
Закрытый режим шепота. Позволяет прослушивающему каналу «говорить» с прослушиваемым каналом без возможности слышать аудиосигнал из прослушиваемого канала.
; Прослушиваем каналы Zap в режиме шепота exten => 123,1,ChannelSpy(Zap,w)
Смотрите также
ExtenSpy()
Congestion()
Устанавливает состояние перегрузки канала
Congestion([времяожидания])
Указывает каналу индицировать перегрузку, а затем ожидает, когда пользователь повесит трубку или разрыва соединения по истечении времени ожидания (заданного необязательным параметром времяожида- ния в секундах).
Это приложение сигнализирует о перегрузке только на дальний конец соединения; оно фактически не воспроизводит тональный сигнал перегрузки линии абоненту. Для воспроизведения сигнала перегрузки используйте приложение Playtones(congestion).
При использовании данной команды без времени ожидания возникает риск того, что канал задержится в этом состоянии. В этом нет необходимости, когда вы просто хотите проинформировать пользователя о перегруженности канала. Используйте приложение Playtones(congestion), чтобы абонент услышал сигнал «занято» повышенной частоты, а затем выполните Hangup().
Всегда завершается аварийно:
; для Caller ID 555-1234 всегда воспроизводить ; сигнал перегруженности линии
exten => 123,1,GotoIf($[${CALLERID(num)} = 5551234]?5:2)
exten => 123,2,Playtones(congestion)
exten => 123,3,Congestion(3)
exten => 123,4,Hangup()
exten => 123,5,Dial(Zap/1)
Смотрите также
Busy(), Progress(), Playtones(), Hangup()
ContinueWhile()
Выполняет перезапуск цикла While()
ContinueWhile()
Возвращается к началу цикла While() и повторно вычисляет условное выражение.
Смотрите также
While(), ExitWhile()
ControlPlayback()
Воспроизводит файл с возможностью ускоренной перемотки вперед и назад
ControlPlayback(файл[,skipms[, ff [, rew[,stop[, pause[, restart[, опции]]]]]]])
Воспроизводит указанный файл (без расширения файла), предоставляя при этом пользователю возможность перемещаться по файлу вперед и назад, нажимая кнопки ff и rew. По умолчанию можно использовать кнопки * и # для перемотки файла назад и вперед соответственно. Опция skipms определяет, на сколько секунд записи вперед или назад выполняется переход при каждом нажатии кнопки ff или rew. Если задан аргумент stop, приложение будет останавливать воспроизведение при нажатии кнопки stop.
Также может быть задан аргумент pause, который определяет, что при нажатии кнопки pause воспроизведение файла будет приостановлено. При повторном нажатии кнопки pause воспроизведение файла возобновится.
Если задан параметр restart, то при нажатии определенной кнопки воспроизведение файла будет начато сначала.
Если для параметра опции задано значение j и указанного файла не существует, приложение переходит в приоритет n + 101, если таковой присутствует (где n - номер текущего приоритета).
Приложение ControlPlayback() по завершении выполнения задает значение для переменной канала CPLAYBACKSTATUS. Переменной CPLAYBACK STATUS будет присвоено одно из следующих значений: SUCCESS (успех)
USERSTOPPED (остановлен пользователем) ERROR (ошибка)
; позволяет вызывающему абоненту управлять ; воспроизведением этого файла
exten => 123,1,ControlPlayback(tt-monkeys3000#*5 )
Смотрите также
Playback(), Background(), Dictate(),
DateTime()
Проговаривает дату и/или время в указанном пользователем формате
DateTime([unixtime[, часовойпояс[, формат]]])
Если задан параметр unixtime, приложение проговаривает эти дату и время. В противном случае оно проговаривает текущие дату и время. Если задан часовойпояс, дата и время вычисляются соответственно этому часовому поясу. В противном случае используется зональная настройка сервера Asterisk. Если задан параметр формат, дата и время будут проговариваться соответственно этому формату. (Подробнее о формате даты и времени можно узнать из образца файла voicemail.conf.)