Чтение онлайн

ЖАНРЫ

Asterisk™: будущее телефонии Второе издание
Шрифт:

Нет необходимости заключать текст в кавычки. Если кавычки помещены в круглые скобки, они будут выведены в консоли.

Когда использовать NoOp и Verbose

Разница между Verbose и NoOp невелика. Приведем здесь некоторые соображения по поводу того, как разобраться, в какой ситуации следует использовать эти приложения. Приложение Verbose пригодится, если надо что-то вывести в консоль. Используя команду set verbose (с указанием требуемого уровня детальности, от 0 до 4), можно настроить вывод так, чтобы на экране отображались не все операции системы, а лишь те, которые имеют такой же или меньший уровень детальности. (На самом деле можно задать любую детальность. Команда set verbose 999 будет прекрасно работать, но мы не нашли вывода с уровнем детальности выше, чем 4, поэтому на данный момент задавать детальность больше 4 просто не имеет смысла.) Это означает, что можно выводить всевозможную информацию, имеющую отношение к тестируемому разделу кода, без необходимости просматривать другие сообщения системы. Если записать в диалплане следующее:

exten => _X.,n,Verbose(2, ${SOME_VAR}) можно будет в CLI задать детальность 2 или меньше (core set verbose 2) и просматривать вывод различных вызовов Verbose, но очень мало другой информации.

Подробнее об использовании Verbose можно будет прочитать в данном приложении ниже, в посвященном ему разделе. При-

ложение NoOp лучше всего использовать как заполнитель. Например, если в диалплане имеется Goto с использованием метки приоритета, NoOp можно применять как точку перехода из этого приложения. Например,

exten => _X.,n(call_forward),NoOp

является превосходным маркером для указания перехода в ди- алплане в определенную точку. Из этой точки можно продолжать выполнение любой логики, которую требуется применить к этой части добавочного номера (судя по метке, речь идет о пересылке вызова). NoOp применяется, когда вы не знаете, какие действия придется выполнять за этой меткой, и чтобы гарантированно не менять в коде саму метку. Оно никогда не будет делать ничего другого, кроме как предоставлять точку перехода для Goto. Поэтому NoOp можно помещать куда угодно и быть увереннным, что это не станет причиной какого-либо неожиданного поведения.

Если вы ничего не поняли, виною наша неспособность правильно описать ситуацию. Поэкспериментируйте с Verbose и NoOp в своем диалплане (их можно использовать где угодно) - и вы быстро разберетесь в том, как они могут помочь (особенно если вы, как и мы, допускаете много синтаксических ошибок).

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

Verbose, Log

Page

Открывает одностороннюю аудиосвязь с несколькими телефонами

Page(технология/канал1[&технология/канал2]&[...][&технология/каналN][\опции])

Размещает исходящие вызовы абонентов в каналах, заданных аргументами технология/канал, и вводит их в конференцию как участников с выключенными микрофонами. Исходный вызывающий абонент помещается в эту конференцию как единственный участник, который может говорить. Когда он покидает конференцию, она уничтожается. Могут быть заданы следующие опции: d

Двусторонняя аудиосвязь. Обеспечивает возможность перечисленным в приложении Page людям отвечать вызывающему абоненту.

q

Скрытый режим. Не воспроизводить звуковой сигнал вызывающему абоненту.

r

Записывать сообщение. Больше информации можно найти в описании опции r для команды MeetMe.

exten => 123,1,Page(SIP/101&SIP/102&IAX2/iaxy123)

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

MeetMe

Park

Выполняет парковку текущего вызова

Park

Выполняет парковку текущего вызова (обычно в сочетании с контролируемой переадресацией для определения номера парковочного слота). Это приложение всегда регистрируется системой внутренне и не требует явного введения в диалплан, хотя необходимо включить контекст parkedcalls. Настройки парковки задаются в файле features.conf. ; явно паркуем вызывающего абонента include => parkedcalls exten => 123,1,Answer exten => 123,n,Park

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

ParkAndAnnounce, ParkedCall

ParkAndAnnounce

Выполняет парковку текущего вызова и объявляет о вызове по

заданному каналу

PaгkAndAnnounce(шаблон, времяожидания, к.анал[, котекст_возврата])

Выполняет парковку текущего вызова в парковочный слот и объявляет о вызове по заданному каналу. Шаблон - это разделенный двоеточиями список файлов, которые должны быть воспроизведены; слово PARKED (припаркован) заменяется номером слота парковки вызова. Аргумент времяожидания– это время в секундах, через которое вызов возвратится в контекст_возврата. Аргумент канал определяет канал, на который необходимо позвонить, чтобы сделать объявление. Console/dsp вызывает консоль. контекст_возврата– это метка в стиле Goto для возвращения вызова по истечении времени ожидания, которой по умолчанию является приоритет n + 1 (где n - текущий приоритет) в контексте контекст_возврата.

include => parkedcalls exten => 123,1,Answer

exten => 123,2,ParkAndAnnounce(vm-youhave:a:pbx-transfer:at:vm-extension: PARKED,120,Console/dsp)

exten => 123,3,Playback(vm-nobodyavail) exten => 123,4,Playback(vm-goodbye) exten => 123,5,Hangup

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

Park, ParkedCall

ParkedCall

Отвечает на припаркованный вызов

ParkedCall(парковочныйслот)

Соединяет вызывающего абонента с припаркованным вызовом, находящимся в парковочном слоте, который обозначен аргументом парковочныйслот. Это приложение всегда регистрируется системой внутренне и не требует явного добавления в диалплан, хотя необходимо включить контекст parkedcalls.

; ответить на вызов, припаркованный ; в парковочном слоте 701 exten => 123,1,Answer exten => 123,2,ParkedCall(701)

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

Park, ParkAndAnnounce

PauseMonitor

Приостанавливает запись разговора по каналу

PauseMonitor

Временно приостанавливает отслеживание (запись) текущего канала

exten => 123,1,Answer

exten => 123,n,Monitor(wav,monitor_test)

exten => 123,n,Playback(demo-congrats)

; временно приостанавливаем запись, пока собираем секретную информацию exten => 123,n,PauseMonitor exten => 123,n,Read(NEWPASS,vm-newpassword) exten => 123,n,SayDigits(${NEWPASS}) exten => 123,n,UnpauseMonitor exten => 123,n,Dial(${JOHN})

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

Monitor,StopMonitor, UnpauseMonitor

PauseQueueMember

Временно блокирует участника обработки очереди входящих вызовов

PauseQueueMember([имяочереди],интерфейс[, опции])

Приостанавливает выполнение заданного интерфейса обработки очереди вызовов. При этом любые вызовы из очереди не будут передаваться в этот интерфейс до тех пор, пока он не будет возвращен к работе с помощью приложения UnpauseQueueMember или интерфейса Manager. Если аргумент имяочереди не задан, интерфейс блокируется во всех очередях, участником которых он является.

Поделиться с друзьями: