Введение в контексты и екстеншены сервера Asterisk
План набора состоит из контекстов. Определение контекстов - самая важная часть файла extensions.conf и самая важная часть конфигурации сервера Asterisk.
Контекст состоит из набора екстеншенов (по сути, это номера телефонов, но не только!). Ниже приводится схематичное представление (т.е. не так, как это будет выглядеть в файле extensions.conf!) примера простого контекста:
Контекст "default":
Екстеншен Описание
101 Mark Spencer
102 Wil Meadows
103 Greg Vance
104 проверка голосовой почты
105 Конференция
0 Оператор
В этом примере, контекст с именем "default", содержит несколько екстеншенов. Первые три екстеншена (101 - 103) используются для совершения вызовов на обычные телефоны абонентов. Четвертый екстеншен (104) назначен, для того, чтобы абоненты могли проверить свою голосовую почту. Пятый екстеншен (105) предназначен для входа в конференцию. И, наконец, екстеншен "0" - используется для связи с оператором (секретарем).
Вот еще один пример контекста:
Контекст "mainmenu":
Екстеншен Описание
s Приветственное сообщение и инструкция
1 Отдел прадаж
2 Поддержка
3 Коммерческий отдел
9 Список
# Закончить вызов
В этом примере, контекст с именем "mainmenu", содержит только екстеншены состоящие из одной цифры (скорее, из одного символа). Екстеншен "s" - это стартовый екстеншен, предполагается, что с него начинается обработка вызова, который поступил в этот контекст. В пределах этого екстеншена проигрывается приветственное сообщение, типа: "Спасибо, что позвонили в компанию БлаБлаБла. Нажмите 1, чтобы соединиться с отделом продаж, 2 для соединения со службой поддержки , 3 для соединения с коммерческим отделом, 9 для получения списка департаментов компании или #, чтобы повесить трубку." Каждый пункт меню, фактически, это номер екстеншена, при наборе которых, мы можем соединить абонента с конкретным номером или отправить вызывающего абонента в другое меню.
Контексты реализовывают различную важную функциональность, включая следующие возможности:
- Безопасность: Можно разрешить междугородные/международные вызовы только конкретным абонентам.
- Маршрутизация вызовов: Маршрутизация вызовов в зависимости от номера абонента.
- Автосекретарь: Проигрывание приветствия и приглашение ввести добавочный номер.
- Многоуровневые голосовые меню: Голосовые меню для службы поддержки, отдела продаж и т.д.
- Авторизация: Запрос пароля для доступа к некоторым екстеншенам.
- Обратный вызов: Позволяет уменьшить затраты на междугородние/международные вызовы.
- Списки доступа: Занесение в черные списки надоедливых абонентов, не давая им возможности связаться с Вами.
- Виртуальные АТС: Вы можете создать "виртуальную АТС" в пределах Вашей основной АТС.
- Дневной/Ночной режим работы: Вы можете изменять поведение Вашей АТС в зависимости от времени суток.
- Макросы: Можно создавать скрипты для решения повторяющихся задач в плане набора.
Как используются контексты?
Когда Asterisk принимает вызов, вне зависимости от того, поступил ли этот вызов из вне или с внутреннего екстеншена (абонента), этот вызов поступает на обработку в контекст. Выбор того, в каком контексте этот вызов будет обрабатываться, зависит от того, с какого канала поступил этот вызов. Когда вы конфигурируете каналы, которые вы планируете использовать в Вашем сервере Asterisk, одна из важных вещей, которую нужно указать в настройках каналов - это в какой контекст будут попадать вызовы, поступающие через каждый конкретный канал, используя определенную директиву, чаще всего такую:
context=incoming
Таким образом, первое, для чего предназначены контексту - это способ указать серверу Asterisk выполнить различные действия по обработки вызова в зависимости от того, откуда он поступил. У Вас будет определен, по крайней мере, один контекст для того, чтобы Asterisk смог обрабатывать входящие вызовы через Вашу телефонную линию: это могут быть действия по вызову определенных екстеншенов или проигрывание приветственного сообщения и запись сообщения голосовой почты. Если Вы хотите, чтобы Asterisk обрабатывал вызовы из Вашей внутренней сети особым образом, например, ограничить выбор вызываемых номеров екстеншенов или, если Вы хотите ввести ограничение на набираемые номера в публичную телефонную сеть — тогда Вам просто нужно определить другой "контекст" в который будут попадать вызовы с "каналов", по которым подключены Ваши внутренние абоненты.
Ссылки по теме:
- Включение различных контекстов в зависимости от времени суток
- Введение в систему приоритетов плана набора Asterisk
- План набора - extensions.conf
- Каналы в Asterisk
- Стандартные екстеншены в Asterisk
- AEL: The Asterisk Extension Language
- Команды плана набора
- Dial,::::: plan" class="wiki wikinew text-danger tips">Как построить план набора
- Файлы конфигурации сервера Asterisk
- Asterisk