Контексты

Диалплан разбит на разделы, называемые контекстами. Контексты - это именованные группы добавочных номеров, которые выполняют несколько функций.

Контексты изолируют разные части диалплана, предотвращая возможность их взаимодействия. Добавочный номер, определённый в одном контексте, полностью изолирован от добавочных номеров другого контекста, если только взаимодействие не разрешено специально.

[context1] ... [context2] ...

В качестве простого примера возьмём две компании, совместно использующие один сервер Asterisk. Если разместить голосовое меню каждой компании в собственном контексте, они будут эффективно отделены друг от друга. Это позволяет независимо определять действия, выполняемые, скажем, при наборе номера 0: при нажатии кнопки 0 в голосовом меню компании А вы попадаете к секретарю компании А, а при нажатии кнопки 0 в голосовом меню компании Б - к секретарю компании Б.

Контексты различаются по именам. Имена контекстов заключаются в квадратные скобки. Допустимыми символами для образования имени являются буквы от A до Z (верхнего и нижнего регистра), цифры от 0 до 9, дефис и символ подчёркивания.

Максимальная длина имени контекста - 79 символов (80 символов - 1 завершающий нуль).

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

Все инструкции, размещаемые после описания контекста и до описания следующего контекста, являются частью данного контекста. В начале диалплана находятся два специальных контекста, [general] и [globals].

[general] ; содержит список общих настроек диалплана [globals] ; содержит глобальные переменные [context1] ... [context2] ...

Раздел [general] содержит список общих настроек диалплана, а контекст [globals] мы будем обсуждать в разделе "Глобальные переменные". Пока что достаточно знать, что эти два контекста являются специальными. Созданные вами контексты можно назвать как угодно, только не используйте имена [general] и [globals].

При описании канала (а именно так выполняется подключение элементов к системе) одним из параметров этого описания является контекст. Иначе говоря, контекст - это точка диалплана, с которой будет начинать обработка соединений, выполняемых через этот канал.

Другое важное применение контекстов (возможно, самое важное) - обеспечение безопасности. Правильно применяя контексты, определённым абонентам можно предоставить доступ к функциям (таким как международная связь), которые недоступны для других. Если диалплан разработан неаккуратно, пользователи по вашей оплошности могут получить возможность мошенничать в вашей системе. Пожалуйста, помните об этом при построении системы Asterisk.

В подпапке doc папки исходного кода Asterisk находится очень важный файл, security.txt, в котором определено нескольно шагов для обеспечения безопасности системы Asterisk. Вам чрезвычайно важно прочитать и понять этот файл. Если проигнорировать меры предосторожности, описанные там, всё может закончиться тем, что кто угодно сможет делать междугородные звонки за ваш счёт.

Далее рассмотрим добавочный номер