Читаем Asterisk™: будущее телефонии Второе издание полностью

exten => 123,1,Dial(Zap/1,10,m) exten => 123,n,Playback(vm-nobodyavail) exten => 123,n,Hangup

Теперь, когда мы научились использовать приложение Dial, добавочные номера 1 и 2 в диалплане стали бесполезными. Давайте заменим их новыми добавочными номерами, которые позволят внешним абонентам дозваниваться до Джона (John) и Джейн (Jane):

[incoming]
exten =>123,1,Answer
exten =>123,n,Background(enter-ext-of-person)
exten =>123,n,WaitExten
exten =>1,1,Dial(Zap/1,10)
exten =>1,n,Playback(vm-nobodyavail)
exten =>1,n,Hangup
exten =>2,1,Dial(SIP/Jane,10)
exten =>2,n,Playback(vm-nobodyavail)
exten =>2,n,Hangup
exten =>i,1,Playback(pbx-invalid)
exten =>i,n,Goto(incoming,123,1)
exten =>t,1,Playback(vm-goodbye)
exten =>t,n,Hangup

Четвертый и последний аргумент приложения Dial - URL. Если вызываемый канал поддерживает прием URL в момент вызова, заданный URL будет передан (например, если используется IP-телефон, поддерживающий прием URL, этот URL появится на дисплее телефона; аналогично, если используется программный телефон, URL может быть выведен на экран монитора). Этот аргумент применяется очень редко.

Обратите внимание, что второй, третий и четвертый аргументы могут быть опущены. Например, если требуется определить опцию, но при этом вы не собираетесь задавать время ожидания, просто оставьте пропуск на месте аргумента времени ожидания, как в данном примере:

exten => 1,1,Dial(Zap/1,,m)

Добавление контекста для внутренних вызовов

До сих пор в наших примерах мы ограничивались одним контекстом, но, вероятно, справедливо предполагать, что в диалпланах практически всех установок Asterisk будет не один контекст, а больше. Как упоминалось в начале данной главы, одна из важных функций контекстов - разделение прав доступа (таких, как осуществление междугородних вызовов или звонков на определенные добавочные номера) для разных классов абонентов. В следующем примере наш диалплан будет дополнен созданием двух внутренних добавочных номеров, для которых будет настроена возможность звонить друг другу. Для этого создадим новый контекст, [employees] (служащие).

Как и в предыдущих примерах, предполагаем, что аналоговый канал FXS (Zap/1 в данном случае) уже сконфигурирован и что настройки файла zapata.conf таковы, что все вызовы, берущие начало в Zap/1, обрабатываются в контексте [employees]. В нескольких примерах в конце главы также будет предполагаться, что Zap-канал FXO сконфигурирован как Zap/4 и вызовы, поступающие на этот канал, направляются в контекст [incoming].

Также мы предположили, что имеется по крайней мере один SIP-канал (названный SIP/Jane), который используется в контексте [employees]. Это было сделано, чтобы показать пример использования других типов каналов.

Если вы не располагаете оборудованием для организации перечисленных выше каналов (таких, как Zap/4) или если используете другие имена каналов (например, не SIP/Jane), просто скорректируйте примеры соответственно конфигурации своей системы.

Теперь наш диалплан выглядит так:

[incoming]

exten => 123,1,Answer

exten => 123,n,Background(enter-ext-of-person) exten => 123,n,WaitExten

exten => 1,1,Dial(Zap/1,10)

exten => 1,n,Playback(vm-nobodyavail)

exten => 1,n,Hangup

exten => 2,1,Dial(SIP/Jane,10) exten => 2,n,Playback(vm-nobodyavail) exten => 2,n,Hangup

exten => i,1,Playback(pbx-invalid) exten => i,n,Goto(incoming,123,1)

exten => t,1,Playback(vm-goodbye) exten => t,n,Hangup

[employees]

exten => 101,1,Dial(Zap/1)

exten => 102,1,Dial(SIP/Jane) В этом примере в контекст [employees] было добавлено два новых добавочных номера. Таким образом, человек, использующий канал Zap/1, может поднять трубку телефона и позвонить человеку, находящемуся на линии SIP/Jane, набрав номер 102. Точно так же телефон, зарегистрированный как SIP/Jane, может позвонить Zap/1, если пользователь наберет 101.

Добавочные номера 101 и 102 выбраны для примера произвольно, для своих добавочных номеров вы можете использовать любые другие цифры. Также необходимо помнить, что вы не ограничены трехзначными добавочными номерами; номер может включать столько угодно цифр. (Скажем так, почти сколько угодно. Добавочные номера не должны быть длиннее 80 символов, и нельзя использовать добавочные номера длиной в один символ для собственных нужд, поскольку они зарезервированы.) Не забывайте, что могут применяться и имена, как в данном примере: [incoming]

exten => 123,1,Answer

exten => 123,n,Background(enter-ext-of-person) exten => 123,n,WaitExten

exten => 1,1,Dial(Zap/1,10)

exten => 1,n,Playback(vm-nobodyavail)

exten => 1,n,Hangup

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT