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 или очередь. Если нерабочее — на автоответчик.
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
Это будет соответствовать графику понедельник - пятница с 9:00 до 18:00
В одну time group можно задавать несколько интервалов.
Допустим мы работаем еще в субботу 10-17
Добавляем в этой же Time group через add time и заполняем:
Это будет соответствовать графику суббота с 10:00 до 17:00
В поле 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
Заполняем:
Разберем настройку по Calendar в паре с Time group
Что это значит:
Ваша АТС будет проверять сначала в календаре государственный праздничный день сегодня или нет, затем будет проверять рабочее сейчас время или нет.
Как это работает:
Звонок попадает в inbound route → DID транка → Time Condition с mode calendar → если не праздничный день → Time Condition с mode group
Настраиваем модуль Calendar
Где: Applications → Calendar → Add Remote Ical calendar
У модуля Calendar есть субмодуль Calendar Event Groups
Для чего:
Допустим ваша компания не придерживается полного производственного календаря и на некоторые праздники компания работает.
Настройка:
Где: Applications → Calendar → Add Calendar Event Groups
Настраиваем Time condition для работы в mode calendar
Переходим в Applications → Time conditions → Add Time Condition
Заполняем
Destination matches → Announcement - Не рабочее время
Destination non-matches → Time conditions → Time condition созданный с time group.
Теперь вам нужно связать 2 time conditions правила между собой.
Нажимаем Submit → Apply Config
Итого у вас должно получиться 2 Time condtion правила
Вот примерная схема как это работает.
Разберем настройку по 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).
У модуля Calendar есть субмодуль Calendar Event Groups
Для чего:
Допустим ваша компания не придерживается полного производственного календаря и на некоторые праздники компания работает.
Настройка:
Где: Applications → Calendar → Add Calendar Event Groups
- Name - Задаем имя этой группы
- Calendars - выбираем ранее созданный календарь
- Specific Categories - в данном случае не трогаем
- Specific Events - в выпадающем списке выбираем галочками праздники в которые вы работать не будете.
Настраиваем Time condition для работы в mode calendar
Переходим в Applications → Time conditions → Add Time Condition
Заполняем
- Time condition name: название правила. Например «Маршрутизация: рабочее время / нерабочее»
- Time Zone - выбираем часовой пояс по которому будет работать это правило
- Mode - выбираем Calendar
- 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 правила
- Time condition с mode calendar/calendar group в котором Destination matches проигрывает голосовое сообщение о не рабочем дне, а Destination non-matches ведет на time condition с mode time group.
- 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.
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 «Офис + обед»:
Time Group: «Офис + обед»
В Announcement записываем: «Здравствуйте. Сейчас нерабочее время. Оставьте заявку после сигнала, мы перезвоним в ближайший рабочий час.»
Привязываем Time Condition к Inbound Route — готово.
Как сделать:
Создаём Time Group «Офис + обед»:
- Entry 1: Monday–Friday, 09:00–13:00
- Entry 2: Monday–Friday, 14:00–18:00
Time Group: «Офис + обед»
- Destination if Matches: Queue «Отдел продаж»
- Destination if NOT Matches: Announcement «Обед / нерабочее время»
В Announcement записываем: «Здравствуйте. Сейчас нерабочее время. Оставьте заявку после сигнала, мы перезвоним в ближайший рабочий час.»
Привязываем Time Condition к Inbound Route — готово.
Сценарий 2. Праздничные дни без calendar
Задача: 1 января, 8 марта, 23 февраля, 9 мая — специальное приветствие и голосовая почта.
Как сделать:
Создаём отдельную Time Group «Праздники»:
Создаём Time Condition «Рабочее время с учётом праздников»:
Time Group: выбираем «Рабочее время, Пн–Пт 9–18»
Создаём Time Condition «Проверка праздников»:
Time Group: «Праздники»
Важный момент: порядок проверки — сначала рабочие часы, потом праздники, потом ночной автоответчик. Time Conditions можно вкладывать друг в друга через поле Destination.
Как сделать:
Создаём отдельную 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 «День»:
Всё. Одна Time Group, одно условие.
Как сделать:
Создаём Time Group «День»:
- Entry: Monday–Sunday, 09:00–21:00
- Destination if Matches: Ring Group «Менеджеры»
- Destination if NOT Matches: Announcement «Ночной»
Всё. Одна Time Group, одно условие.
Сценарий 4. Разные отделы по дням недели
Задача: в среду и пятницу звонки идут в бухгалтерию, в остальные дни — в отдел продаж.
Как сделать:
Time Group «Бухгалтерия»:
Time Condition «Бухгалтерия или продажи»:
Как сделать:
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 января звонки пойдут по обычному нерабочему сценарию, а не по-праздничному.
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 Mode можно выбрать не Time Group, а Calendar — тогда условие будет сверяться с календарём FreePBX (праздники, события). Это удобнее для праздников, но требует настройки модуля Calendar.
В: Что делать если несколько условий должны сработать одновременно?
О: Time Conditions проверяются строго по одному. Вы можете вкладывать их: один TC в Destination другого
TC. Порядок проверки — тот, который вы выстроили в цепочке.
В: Как проверить что Time Condition работает?
О: Позвоните на номер и посмотрите в Reports → Call Logs. В колонке Destination будет видно куда ушёл звонок. Если маршрут правильный — TC отрабатывает.
Нужна настройка Time conditions или аудит существующей инсталляции?
Свяжитесь с нами:
Аудит АТС — проверим всю конфигурацию, найдём узкие места и ошибки.
Разовая помощь — настроим, исправим, проконсультируем.
Аудит АТС — проверим всю конфигурацию, найдём узкие места и ошибки.
Разовая помощь — настроим, исправим, проконсультируем.
Telephonization.ru — внедрение и поддержка корпоративной телефонии на Asterisk/FreePBX.