Привет! В данной статье мы расскажем про специальный модуль FreePBX (в нашем случае 13, но он доступен и на более ранних версиях), который поможет вам создать правила (которые называются контексты - context), позволяющие разграничить права доступа внутренних абонентов к разным направлениям на Вашей IP-АТС Asterisk. Итак, встречайте - Custom Context
Стоит отметить, что для решения подобных задач более изящным способом существует ещё один модуль - Class of Service, но, как можно догадаться, за него придётся заплатить, так как он предназначен для коммерческого использования.
Задач, которые можно решить с помощью модуля Custom Context – огромное множество, всё ограничивается лишь вашей фантазией и потребностями. Наиболее часто встречающиеся задачи – это ограничение доступа набора исходящих международных и междугородных номеров, а также ограничение доступа набора некоторых внутренних номеров.
Модуль находится в разделе Connectivity, однако, может случиться так, что на Вашем FreePBX изначально не будет данного модуля. Но не надо отчаиваться, установить его очень просто. Для этого переходим в Module Admin → Check Online, ищем Custom Context нажимаем Download → Process и ждём пока процесс установки завершится.
Важно! Для работы данного модуля предварительно нужно установить модуль Time Group
После установки Вы найдёте модуль в разделе Connectivity:
Чтобы было понятнее как работает модуль Custom Context, давайте рассмотрим пример.
Пример настройки
Предположим, у нас есть следующая задача: для некоторых внутренних номеров нужно ограничить возможность набора других внутренних номеров, зарегистрированных на нашей IP-АТС. Например, операторы первой линии не должны иметь возможность набрать внутренний номер нашего уважаемого Генерального директора и отвлекать его от важной работы.
Пусть 102 - это номер оператора, а 110 - номер генерального директора.
Теперь приступим непосредственно к реализации. Открываем модуль, нам предлагают ввести его название и дать понятное описание:
Заполняем поля и жмём Submit. После этого перед нами разворачивается полный функционал данного модуля, который позволяет настроить нужные правила.
В нашем случае, необходимо прописать номер генерального директора (110) в поле Dial Rules и выбрать правило Deny Rules напротив строки ENTIRE Basic Internal Dialplan:
Далее прокрутим меню до строки ext-local и напротив неё также выберем Deny Rules и нажмём Submit:
Отлично, мы создали кастомный контекст. Теперь необходимо применить его в правилах внутреннего номера нашего оператора (102). Для этого заходим в модуль Extensions ищем нашего оператора (102), переходим во вкладку Other и видим, что у нас появился новый пункт - Custom Context, значение по умолчанию которого - ALLOW ALL. Меняем его на наш кастомный контекст и жмём Submit. Не забываем применять изменения Apply Config.
Теперь, при попытке набора 110, наш оператор 102 услышит фразу: “Your call cannot be completed as dialed. Please, check the number and dial again”. Наш многоуважаемый CEO может спать спокойно :)