Работа с Custom contexts во FreePBX
В традиционных АТС обычно имеются средства разграничения доступа абонентов к различным направлениям, чем обычно пользуются для запрета доступа на дорогие направления (междугородную и международную связь). В IP-ATC TBE имеется мощное средство для аналогичных целей — Custom Contexts. Контексты являются основной программной единицей плана обработки вызова Asterisk, по-умолчанию все вызовы абонентов направляются в контекст from-internal, из которого доступны все исходящие направления и функции. Этот модуль позволяет создать для абонентов системы особенные исходящие контексты с заданными ограничениями, в том числе по времени действия.
Модуль Custom Contexts состоит из двух частей, в основной части Setup → Custom Contexts производится создание и настройка ограничений, в Setup → Custom Contexts Times определяются временные интервалы.
Временные интервалы
Для определения временных интервалов для охраны и обычных пользователей следует перейти в модуль Setup → Custom Contexts Times. Система сразу же предложит создать новый временной интервал (Add Time Group), для этого нужно ввести в поле Description название и нажать на кнопку Submit. Новый временной интервал появится в списке справа, для его изменения нужно нажать на соответствующую строку списка.
В секции New Time имеется несколько опций, которые задают временной интервал:
Time to start: Время начала временного отрезка, часы и минуты;
Time to finish: Время завершения временного отрезка, часы и минуты;
Week Day Start: День недели, с которого начинается отрезок времени;
Week Day finish: День недели, на котором завершается отрезок времени;
Month Day start: День месяца, с которого начинается отрезок времени;
Month Day finish: День месяца, на котором завершается отрезок времени
Month start: Месяц, на котором начинается отрезок времени;
Month finish: Месяц, на котором завершается отрезок времени;
После нажатия на кнопку Submit настройки сохранятся и появится возможность задать еще один отрезок времени в этом интервале, таким образом каждая временная группа может состоять из множества различных отрезков, объединенных логической операцией «ИЛИ».
Правила доступа
Правила доступа исходящих вызовов по сути являются контекстом, в который на основании настроек пользователя вкладываются другие контексты. Если контекст вложен, то в нем может быть произведен поиск номера для совершения звонка. Для создания контекста следует перейти в модуль Setup → Custom Contexts, ввести имя контекста (поле Context) название, под которым он будет отображаться в системе (поле Description). После сохранения все настройки нового контекста будут доступны по ссылке в списке слева.
Настройки контекста состоят из нескольких секций и опций:
Context: Эта секция содержит общие настройки созданного контекста:
Context: Внутреннее имя контекста;
Description: Имя, под которым он будет отображаться в системе;
Dial Rules: Правила набора, которыми можно ограничить применение некоторых правил исходящих звонков определенным шаблонам номеров.
Формат шаблона:
YY|XX./NN
где:
X – шаблон набираемого номера;
Y – отсекаемая часть набираемого номера, может быть
только в начале шаблона и использоваться один раз;
N – шаблон номера звонящего, позволяет задавать маршруты только для определенных пользователей. Эта часть должна быть отделена от первой наклонной чертой.
В шаблонах X и N могут использоваться следующие подстановочные символы:
X — любая цифра от 0 до 9,
Z — любая цифра от 1 до 9,
N — любая цифра от 2 до 9,
[123] — любая из цифр, перечисленных в квадратных скобках. В приведенном примере 1, 2 или 3,
- —* одна или несколько произвольных цифр, этот символ не может использоваться перед ‘|’ и ‘+’,
| — символ, позволяющий шаблону удалять префикс набора из номера. Например, шаблон 9|NXXXXXXX будет соответствовать набираемому номеру 95551234, но соединение будет производиться с номером без префикса, 5551234.
Правила Dial Rules создают вложенный контекст с минимальным приоритетом (в конце списка), в этот контекст, в совою очередь, вкладываются те контексты, у которых определено право доступа как Allow Rules или просто Allow (см. далее). Следует помнить, что временные группы присутствуют и в обработке Dial Rules, и в основном контексте.
Set All: Секция имеет одну опцию Set All To, которая для установки всех значений в одно. Например, можно выключить все правила для создаваемого контекста. Эта опция, так как и все остальные может принимать следующие значения:
Allow: разрешает доступ к вложенному контексту через Dial Rules и в самом контексте;
Deny: запретить вложенный контекст как в правилах так и в создаваемом контексте;
Allow Rules: разрешить доступ только через Dial Rules;
Deny Rules: разрешить только в контексте;
timegroup: разрешить через контекст и Dial Rules, но с учетом временной группы, при этом названия значений будет совпадать с названиями временных групп.
Помимо настроек доступа можно установить приоритет в поле Priority, оно отвечает за последовательность просмотра записей при поиске номера. Чем меньше значение, тем выше приоритет. Это нужно для особенного для контекста порядка выбора исходящих маршрутов;
Default Internal Context: Секция определяет правила доступа к внутреннему плану набора системы и имеет несколько настроек
Call Parking: Доступ к припаркованным вызовам;
Custom Internal Dialplan: Доступ к пользовательским правилам набора, определенных в контексте from-internal-custom в файле extensions_custom.conf. Опция для продвинутых пользователей;
ENTIRE Basic Internal Dialplan: Разрешить доступ в контекст from-internal, из которого есть доступ ко всем другим направлениям. Если вы хотите ограничить доступ, например, к городским направлениям, следует отключить доступ к этому контексту;
Fax: Доступ к факс-серверу.
Internal Dialplan: Содержимое этой секции зависит от текущих настроек системы. Модуль сканирует созданные системные контексты и выводит их список. Название контекстов обычно соответствует названиям модулей системы, однако следует понимать, что эта функциональность для продвинутых пользователей. Перечислим контексты, которые обычно бывают в системе:
ALL OUTBOUND ROUTES: Доступ к контексту, который содержит все внешние направления, определенные в модуле Outbound Routes. Если необходимо разграничить доступ к внешним направлениям, не нужно включать этот контекст;
app-chanspy: Прослушивание текущих в системе разговоров;
app-daynight: Переключение на дневной или ночной режим работы;
app-pickup: Перехват вызова в группе;
ext-group: Этот контекст содержит внутренние номера групп вызова;
ext-queues: Этот контекст содержит внутренние номера очередей вызова;
ext-local: Этот контекст содержит внутренние номера абонентов и некоторые системные номера;
ext-meetme: Контекст доступа к конференциям типа MeetMe;
ext-paging: Доступ к группам интеркома и селекторной связи;
fmgrps: Доступ к группам переадресации Follow-me
В системе может быть намного больше различных приложений диалплана, это зависит от установленных модулей FreePBX.
Outbound Routes: эта секция служит для определения прав доступа к внешним линиям, к направлениям, которые определены в модуле Outbound Routes. В секции перечислены направления, имена которых частично совпадают с именами направлений на внешние вызовы, перед названием можно увидеть цифру, которая определяет приоритет выбора контекста в модуле Outbound Routes. Приоритет обработки в создаваемом контексте задается значением поля Priority для каждого из контекстов. Чем меньше значение — тем больше приоритет.
Failover Destination: В случае, если номер, который вызывал пользователь не найден ни в одном вложенном контексте (на которые даем права доступа), то имеется возможность направить вызов в какое либо приложение, например, голосовое меню. При этом имеется возможность задать пин-код для доступа в альтернативное направление. В качестве направления можно использовать в том числе и Custom Destination, которое может указывать, например, на другой Custom Context, что дает возможность каскадировать систему контекстов.
- 03/08/12
- 7
Работа с Custom contexts во FreePBX 2012-11-13 14:18 / #
При создании контекста появляется ошибка
Warning: Invalid argument supplied for foreach() in /var/www/html/admin/modules/customcontexts/functions.inc.php on line 677
и после секции Set All сразу идет секция Failover Destination
в чем может быть проблема?
Работа с Custom contexts во FreePBX 2012-11-13 15:26 / #
В modules admin переустановите модуль custom contexts
Работа с Custom contexts во FreePBX 2012-12-13 10:46 / #
Спасибо за статью. Как раз думал о том где почитать о об этом модуле. В оригинале всё таки сложно воспринимать точно.
Работа с Custom contexts во FreePBX 2014-02-18 16:53 / #
Огромное спасибо за статью – давно искал эту информацию переведённую на русский язык
Работа с Custom contexts во FreePBX 2014-02-18 18:39 / #
Да не за что, пользуйтесь! Это, кстати, не перевод, а оригинал ;)
Работа с Custom contexts во FreePBX 2014-07-21 15:52 / #
Стоит задача ограничить звонки внутри станции. Например абоненты 2ХХ не должны звонить абонентам 3ХХ. Custom contexts может в этом помочь?
Работа с Custom contexts во FreePBX 2014-07-21 19:27 / #
Да, это можно реализовать с помощью Custom contexts