Маршрутизация вызовов по времени в FreePBX

Дмитрий Аверин
16 июля 2020
access_time4 минуты
remove_red_eye4040
Компания «Ланкрафт»
Компания «Ланкрафт»

Панель управления FreePBX позволяет маршрутизировать входящие и исходящие вызовы в зависимости от дня недели и времени суток. Для этих целей служат два бесплатных модуля:

  • Time Conditions (временные условия)
  • Time Groups (временные группы)

Модуль Time Conditions  позволяет определять правила, по которым будут обрабатываться вызовы в определенный промежуток времени. В свою очередь, временной диапазон указывается в модуле Time Groups. 

Time Groups

Модуль позволяет определять временные интервалы, которые в дальнейшем применяются в Time Conditions. Определим их. Нам необходимо выполнить создание экспериментальной группы, которую назовем, скажем, WorkTime.. Для этого откроем Applications >> Time Groups. Щелкнем по кнопке Add Time Groups.

Выполним базовые настройки, которые основаны только на времени работы. 

Пунктам Дни недели, Месяцы, которые мы оставляем пустыми, изначально присваивается значение Все. Мы устанавливаем начало рабочего дня с 9:00 до 18:00. Если мы не меняем остальные опции, то условие станет выполняться ежедневно на протяжении всего года с 9:00 до 18:00.

Далее добавим дни недели. Исходим из того, что мы имеем классический вариант рабочей недели: 5 дней, пн-пт.

Мы можем учитывать как будни, так и выходные дни.

Изменив нужные нам параметры, применим настройки.

Time Conditions

После подготовки групп переходим к настройке временных правил (Time Conditions).

Переходим: Applications → Time Conditions. Здесь представлены следующие опции:

  • Time Condition Name. Задаем название временного правила, лучше всего осмысленное. Если прописывать что-то вроде Rule 1, то это может привести к неразберихе в будущем.
  • Override Code Pin. Этот пункт необязателен, но он позволяет привязать PIN-код к определенной группе правил.
  • Invert BLF Hint. Опция может принимать одно из двух значений: Yes и No. Если телефон поддерживает BLF, то мы можем вывести статус правил на BLF-панель. По умолчанию установлено значение No. В случае несовпадения правил выставляется статус INUSE. Его наличие пользователь определяет по характерной красной подсветке BLF-клавиши на панели. При совпадении правил с группой выставляется NOT_INUSE и включается зеленая подсветка.

Стоит учитывать, что оттенки подсветки и их значения могут отличаться у разных моделей телефонов.

При выставлении Yes значения инвертируются.

  • Change Override. Опция дает возможность с помощью сервисного кода изменять поведение временных параметров. Код автоматом присваивается каждому Time Conditions, начиная с *271.

Опция Change Override может принимать следующие значения:

  1. Unchanged. Используются базовые настройки, влияния на логику Time Conditions не происходит.
  2. Reset Override. Если выставить это значение и применить настройки, то параметры Change Override будут сброшены до стандартных.
  3. Temporary Matched / Unmatched. Служит для временного переключения логики правил времени. Если вызов абонента попадает в заданный промежуток, он направляется на Destination matches. В случае несовпадения – на Destination non-matches. Опцию можно задать как в веб-интерфейсе, так и используя Service Code.
  4. Permanent Matched / Unmatched. Выполняет функцию, сходную с п.3. Отличительной особенностью опции является то, что она не может быть удалена в автоматическом режиме по прошествии времени. Также ее нельзя задать через сервисный код. Необходимо использовать исключительно веб-интерфейс.

Если вы попытаетесь протестировать систему и сделать несколько звонков с теми настройками, которые уже выполнены, то увидите – вызов уходит на Destination matches. Из этого следует, что при необходимости мы можем менять логику в ручном режиме для рабочих и выходных дней.

Завершим обзор опций Time Conditions.

  • Time Zone. Задание часового пояса.
  • Time Group. Задание временной группы из выпадающего перечня для этих правил.
  • Destination matches. Определение направления логики звонка в случае, если он попадает в заданный временной диапазон.
  • Destination non-matches. Задается направление логики вызова для ситуаций, когда он не попадает в заданный временной интервал.

Итак, у нас есть готовая цепочка, имеющая такой вид:

  • в первую очередь вызов проверяется на соответствие праздничным дням;
  • в случае совпадения производится перенаправление на голосовое сообщение о выходном дне. Если звонок поступил в будний день, и система опознала этот факт, дальше вступают в силу ежедневные правила. В этом случае звонок проверяется не на определенные дни, а на дни недели и временные интервалы.

Применение Time Group в исходящей логике

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

Перейдем Connectivity → Outbound Routes.

Опции раздела Route Settings:

  • Route Name. Задаем имя. Пусть это будет краткое обозначение «TD».
  • Route Password. Если человек попытается дозваниваться по международной линии, то его попросят ввести PIN-код перед тем, как ему разрешат совершить звонок.
  • Time Group. Временная группа. Здесь необходимо добавить группу, которую мы создали прежде.
  • Trunk Sequence for Matched Routes. Указывается Trunk для звонков, выходящих на междугородний уровень.

После задания настроек выбираем вкладку DialPatterns.

Здесь необходимо указать шаблон. Используем универсальный шаблон 810Z для совершения международных вызовов.

Зададим в качестве Caller ID номер руководителя (скажем, 501) и секретаря (502). Далее следует сохранить и применить конфигурацию. Если все настроено корректно, то текущий маршрут смогут использовать для звонков только два абонента, находящихся внутри офиса, исключительно в рабочее время.