Телефонизация. Технический блог.

Time Conditions в FreePBX 17: настройка маршрутизации по времени

Time Conditions в FreePBX 17: настройка маршрутизации по времени через веб-интерфейс
Time Conditions — это инструмент FreePBX, который направляет входящие звонки по разным сценариям в зависимости от времени. Рабочее время — звонок идёт менеджеру. Обед — включается голосовое меню с предложением оставить заявку. Ночь или праздник — автоответчик «перезвоните завтра».

Всё настраивается через веб-интерфейс. Никакого кода, никакой командной строки.
Как это работает
Настройка Time Conditions состоит из нескольких модулей

Time Group — календарь. Вы указываете дни недели и часы: «понедельник-пятница, с 9 до 18». Или конкретную дату: «1 января, весь день».

Time Condition — правило маршрутизации. Вы берёте Time Group и говорите: «Если звонок попадает в это время — отправь сюда. Если не попадает — отправь туда».

Calendar - Позволяет подключить удаленный календарь через ical/caldav/outlook calendar.
Для чего это нужно.
На пример мы подключаем через ical google календарь в котором в настройках включено → Интересные календари → Праздники России → Государственные праздники. И этот календарь мы импортируем как ical, а в time conditions выставляем работу по календарю. Далее мы разберем более детальной этот вариант.

Схема простая: звонок приходит на Inbound Route → тот смотрит на Time Condition → если время рабочее, звонок уходит на IVR или очередь. Если нерабочее — на автоответчик.
Пошаговая настройка
Шаг 1. Создаём Time Group
Где: Applications → Time Groups → Add Time Group

В поле Description пишем понятное название. Например: «Рабочее время, Пн–Пт 9–18»
В блоке Time's
  • Time to Start - 09 - 00
  • Time to finish - 18 - 00
  • Week Day Start - monday
  • Week Day finish - friday

Это будет соответствовать графику понедельник - пятница с 9:00 до 18:00

В одну time group можно задавать несколько интервалов.
Допустим мы работаем еще в субботу 10-17
Добавляем в этой же Time group через add time и заполняем:

  • Time to Start - 10 - 00
  • Time to finish - 17 - 00
  • Week Day Start - Saturday
  • Week Day finish - Saturday

Это будет соответствовать графику суббота с 10:00 до 17:00
Шаг 2. Создаём Time Conditions
Где: Applications → Time conditions → Add Time Condition

Разберем настройку по Time group

Заполняем:
  • Time condition name: название правила. Например «Маршрутизация: рабочее время / нерабочее»
  • Time Zone - выбираем часовой пояс по которому будет работать это правило
  • Mode: выбираем Time Group
  • Time Group: выбираем созданную ранее группу из выпадающего списка
  • Destination matches: куда пойдёт звонок, если время совпало. Например: IVR, Queue, Ring Group, Extension
  • Destination non-matches: куда пойдёт звонок, если время НЕ совпало. Например: автоответчик (Announcement), голосовая почта, другой IVR или просто сброс звонка (terminate call)

Разберем настройку по Calendar в паре с Time group
Что это значит:
Ваша АТС будет проверять сначала в календаре государственный праздничный день сегодня или нет, затем будет проверять рабочее сейчас время или нет.
Как это работает:
Звонок попадает в inbound route → DID транка → Time Condition с mode calendar → если не праздничный день → Time Condition с mode group

Настраиваем модуль Calendar
Где: Applications → Calendar → Add Remote Ical calendar
  • Name - задаем имя, допустим производственный календарь
  • Description - можно оставить пустым из Name и так понятно что за календарь
  • Remote URL - указываем ссылку на календарь что-то типа такого - https://calendar.google.com/calendar/ical/ru.russian.official%23holiday%40group.v.calendar.google.com/public/basic.ics
  • Auto Refresh - Как часто обновлять календарь, обычно ставят раз в неделю (1 week).
Нажимаем Submit → Apply Config

У модуля Calendar есть субмодуль Calendar Event Groups
Для чего:
Допустим ваша компания не придерживается полного производственного календаря и на некоторые праздники компания работает.
Настройка:
Где: Applications → Calendar → Add Calendar Event Groups
  • Name - Задаем имя этой группы
  • Calendars - выбираем ранее созданный календарь
  • Specific Categories - в данном случае не трогаем
  • Specific Events - в выпадающем списке выбираем галочками праздники в которые вы работать не будете.
Нажимаем Submit → Apply Config

Настраиваем Time condition для работы в mode calendar
Переходим в Applications → Time conditions → Add Time Condition

Заполняем
  • Time condition name: название правила. Например «Маршрутизация: рабочее время / нерабочее»
  • Time Zone - выбираем часовой пояс по которому будет работать это правило
  • Mode - выбираем Calendar
Важный момент, вы не можете одновременно выбрать и calendar и calendar group, что-то одно под ваш график.
  • Calendar - Выбираем, если будете полностью использовать производственный календарь
  • Calendar Group - Выбираем, если будете использовать календарь частично
  • Destination matches: куда пойдёт звонок, если время совпало. Например: IVR, Queue, Ring Group, Extension или другой Time Condition
  • Destination non-matches: куда пойдёт звонок, если время НЕ совпало. Например: автоответчик (Announcement), голосовая почта, другой IVR или просто сброс звонка (terminate call)
В данной конфигурации выбираем:
Destination matches → Announcement - Не рабочее время
Destination non-matches → Time conditions → Time condition созданный с time group.
Теперь вам нужно связать 2 time conditions правила между собой.
Нажимаем Submit → Apply Config

Итого у вас должно получиться 2 Time condtion правила
  1. Time condition с mode calendar/calendar group в котором Destination matches проигрывает голосовое сообщение о не рабочем дне, а Destination non-matches ведет на time condition с mode time group.
  2. Time condition с mode time group в котором Destination matches идет на IVR, а Destination non-matches проигрывает голосовое сообщение о не рабочем дне. Нет ничего не перепутано местами, все именно так и должно быть.

Вот примерная схема как это работает.
Шаг 3. Привязываем к Inbound Route
1. Connectivity → Inbound Routes
2. Выбираем нужный маршрут (или создаём новый)
3. В поле Set Destination выбираем созданный Time Condition из выпадающего списка
4. Submit → Apply Config

Для конфигурации с time condition mode calendar в inbound route выбираем правило time condition с mode calendar, а оно уже будет ссылаться на time condition с mode time group.

Готово. Теперь все звонки с этого маршрута проходят через Time Condition.
Реальные сценарии
Сценарий 1. Офис с обедом
Задача: с 9 до 13 и с 14 до 18 звонки идут в отдел продаж. С 13 до 14 — автоответчик «обед, оставьте заявку». Ночью — «перезвоните завтра».

Как сделать:
Создаём Time Group «Офис + обед»:
  • Entry 1: Monday–Friday, 09:00–13:00
  • Entry 2: Monday–Friday, 14:00–18:00
Создаём Time Condition:

Time Group: «Офис + обед»
  • Destination if Matches: Queue «Отдел продаж»
  • Destination if NOT Matches: Announcement «Обед / нерабочее время»

В Announcement записываем: «Здравствуйте. Сейчас нерабочее время. Оставьте заявку после сигнала, мы перезвоним в ближайший рабочий час.»

Привязываем Time Condition к Inbound Route — готово.
Сценарий 2. Праздничные дни без calendar
Задача: 1 января, 8 марта, 23 февраля, 9 мая — специальное приветствие и голосовая почта.

Как сделать:
Создаём отдельную Time Group «Праздники»:
  • Entry 1: 1 January, 00:00–23:59
  • Entry 2: 8 March, 00:00–23:59
  • Entry 3: 23 February, 00:00–23:59
  • Entry 4: 9 May, 00:00–23:59

Создаём Time Condition «Рабочее время с учётом праздников»:

Time Group: выбираем «Рабочее время, Пн–Пт 9–18»
  • Destination if Matches: Queue «Отдел продаж»
  • Destination if NOT Matches: ещё один Time Condition «Проверка праздников»

Создаём Time Condition «Проверка праздников»:

Time Group: «Праздники»
  • Destination if Matches: Announcement «Поздравляем с праздником! Оставьте сообщение.»
  • Destination if NOT Matches: Announcement «Нерабочее время, перезвоните завтра.»

Важный момент: порядок проверки — сначала рабочие часы, потом праздники, потом ночной автоответчик. Time Conditions можно вкладывать друг в друга через поле Destination.
Сценарий 3. Интернет-магазин: день и ночь
Задача: с 9 до 21 — звонки идут на менеджеров. С 21 до 9 — автоответчик «операторы не работают, сделайте заказ на сайте».

Как сделать:

Создаём Time Group «День»:
  • Entry: Monday–Sunday, 09:00–21:00
Time Condition «День/Ночь»:

  • Destination if Matches: Ring Group «Менеджеры»
  • Destination if NOT Matches: Announcement «Ночной»

Всё. Одна Time Group, одно условие.
Сценарий 4. Разные отделы по дням недели
Задача: в среду и пятницу звонки идут в бухгалтерию, в остальные дни — в отдел продаж.

Как сделать:

Time Group «Бухгалтерия»:
  • Entry 1: Wednesday, 09:00–18:00
  • Entry 2: Friday, 09:00–18:00

Time Condition «Бухгалтерия или продажи»:
  • Destination if Matches: Queue «Бухгалтерия»
  • Destination if NOT Matches: Queue «Отдел продаж»
Типовые ошибки
1. Забыли Apply Config. После любых изменений во FreePBX — оранжевая кнопка Apply Config вверху. Пока не нажали — ничего не работает.

2. Перепутали порядок. Если в Time Group два интервала пересекаются (например 9–18 и 13–14) — сработает первый по списку. Расставляйте интервалы осознанно.

3. Не учли часовой пояс. FreePBX использует системное время сервера. Проверьте что часовой пояс сервера совпадает с реальным. В Settings → System Setup можно посмотреть текущий timezone.

4. Слишком много вложенных Time Conditions. Если вы сделали цепочку из 5 TC, где каждый ссылается на следующий — отладить будет почти невозможно. Максимум 2–3 уровня.

5. Не обновили праздники на следующий год. В декабре не забудьте добавить праздничные даты на следующий год. Иначе 1 января звонки пойдут по обычному нерабочему сценарию, а не по-праздничному.
FAQ
В: Можно ли использовать Time Condition без Time Group?
О: Да. В поле Time Mode можно выбрать не Time Group, а Calendar — тогда условие будет сверяться с календарём FreePBX (праздники, события). Это удобнее для праздников, но требует настройки модуля Calendar.

В: Что делать если несколько условий должны сработать одновременно?
О: Time Conditions проверяются строго по одному. Вы можете вкладывать их: один TC в Destination другого
TC. Порядок проверки — тот, который вы выстроили в цепочке.

В: Как проверить что Time Condition работает?
О: Позвоните на номер и посмотрите в Reports → Call Logs. В колонке Destination будет видно куда ушёл звонок. Если маршрут правильный — TC отрабатывает.
Нужна настройка Time conditions или аудит существующей инсталляции?
Свяжитесь с нами:

Аудит АТС — проверим всю конфигурацию, найдём узкие места и ошибки.
Разовая помощь — настроим, исправим, проконсультируем.

Telephonization.ru — внедрение и поддержка корпоративной телефонии на Asterisk/FreePBX.
2026-06-04 15:52 Инструкция FreePBX