Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet.doc
Скачиваний:
17
Добавлен:
18.03.2015
Размер:
2.48 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()

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 => john,1,Dial(Zap/1)

exten => 102,1,Dial(SIP/Jane)

exten => jane,1,Dial(SIP/Jane)

Конечно, не помешало бы добавить именные добавочные номера, если предполагается, что пользователи могут получать звонки по VoIP-протоколу, такому как SIP, который поддерживает вызов по имени. Также нетрудно заметить, что в диалплане могут быть разные добавочные номера для вызова одной конечной точки, например добавочный номер 200 с выходом на канал SIP/George и добавочный номер 201, который воспроизводит некоторое сообщение, а затем звонит SIP/George. Теперь, когда наши внутренние абоненты могут звонить друг другу, мы значительно продвинулись на пути к созданию полного диалплана. Далее будет показано, как можно сделать диалплан более масштабируемым и пригодным к внесению изменений в будущем.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]