; перенаправляем вызовы систем продаж по телефону на этот

; добавочный номер, чтобы занять их

exten => 123,1,Answer()

exten => 123,n,Playback(tt-allbusy)

exten => 123,n,MusicOnHold(default)

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

SetMusicOnHold(), WaitMusicOnHold(), MUSICCLASS

NBScat()

Воспроизводит локальный NBS- поток

NBScat()

Использует программу nbscat8k для прослушивания локального потока NBS (Network Broadcast Sound - широковещательная сетевая передача звука). (Более подробную информацию можно найти в модуле nbs сервера Subversion компании Digium.) Вызывающий абонент может прекратить воспроизведение, нажав любую кнопку. При разрыве соединения возвращает -1. exten => 123,1,Answer() exten => 123,2,NBScat()

NoCDR()

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

NoCDR()

Отключает запись CDR для текущего звонка.

; не протоколировать звонки на 555-1212

exten => 5551212,1,Answer()

exten => 5551212,2,NoCDR()

exten => 5551212,3,Dial(Zap/4/5551212)

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

AppendCDRUserField(), ForkCDR(), SetCDRUserField()

NoOp()

Не производит никаких действий

NoOp(текст)

Ничего не делает, это просто заполнитель. Данное приложение часто используется как инструмент отладки. Если уровень детальности сообщений ядра Asterisk равен 3 или более, Asterisk обрабатывает и выводит каждую строку диалплана перед ее выполнением. Это означает, что любые аргументы, переданные в приложение NoOp() (в параметре текст), выводятся в консоли. Опытный администратор Asterisk может использовать вывод консоли для отладки диалплана. exten => 123,1,NoOp(CallerID is ${CALLERID})

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

Когда использовать 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()

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

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату