Введение
В этой статье мы покажем, как создавать голосовое приложение 3CX Call Flow Designer, которое маршрутизирует входящие вызовы с 3CX в зависимости от времени суток.
Такая функция весьма востребована, если нужно сообщать звонящим разные приветственные сообщения в зависимости от времени суток, либо направлять абонентов в Очереди обслуживания на разных языках, в зависимости от времени звонка.
Это простое приложение поможет вам освоиться в среде разработки и получить базовые навыки использования CFD.
Обратите внимание — утилита 3CX CFD бесплатно доступна для пользователей 3CX Phone System Pro.
Для вашего удобства, 3CX включила это приложение в набор демо-приложений CFD. Вы можете открыть и изучить его более детально. Готовый рабочий проект приложения размещается в папке Documents\3CX Call Flow Designer Demos при установке CFD.
Создание проекта
Создадим новый проект CFD. Откройте среду разработки, перейдите в File → New → Project, укажите папку, где будет сохранен проект, и укажите имя проекта, например, TimeBasedRouting.
Добавьте компонент Create a condition
Чтобы добавить компонент:
- Перетащите компонент Create a condition из Панели компонентов слева в рабочую область под зеленую стрелку, обозначающую начало работы голосового приложения. Дайте компоненту понятное название, например, selectTimeRange. Для этого кликните по компоненту и измените название в правом нижнем окне Properties Window.
- Создайте 4 ветвления приложения и назовите их from0to9, from9to12, from12to18 и from18to0. Для этого кликните по компоненту правой кнопкой мыши и выберите Add branch.
- Теперь для каждого ветвления следует создать соответствующие условия. Условия — это логические выражения на C#, которые должны вернуть ИСТИНУ, чтобы сработал компонент, находящийся внутри ветвления (визуально — под условием). Условия проверяются слева направо, т.е. если первое условие вернуло ЛОЖЬ, проверяется второе условие и т.д. Определим условия:
- Для ветвления from0to9: DateTime.Now.Hour < 9
- Для ветвления from9to12: DateTime.Now.Hour >= 9 && DateTime.Now.Hour < 12
- Для ветвления from12to18: DateTime.Now.Hour >= 12 && DateTime.Now.Hour < 18
- Для ветвления from18to0: оставляем пустым. Это ветвление будет выполняться, если не “сработали” другие ветвления.
Добавьте компоненты Transfer
Создав условия для ветвлении, добавим в каждое ветвление компонент Transfer. Таким образом, при “срабатывании” условия, вызов будет переводиться на соответствующий добавочный номер.
Для этого перетащите компонент Transfer в каждое из ветвлений. Настройте каждый компонент для перевода вызова на разный добавочный номер. Для этого кликните на компоненте и установите свойство Destination на добавочные номера 101, 102, 103 и 104, соответственно.
Свойство Destination — это выражение, поэтому, если вы указываете здесь константу, она должна быть взята в скобки. Обратите внимание, что в Destination можно указывать и переменные, и вычисляемые выражения.
Компиляция и установка приложения на сервер 3CX
Голосовое приложение готово! Теперь его следует скомпилировать и загрузить на сервер 3CX. Для этого:
- Перейдите в меню Build → Build All,и CFD создаст файл TimeBasedRouting.tcxvoiceapp.
- Перейдите в интерфейс управления 3CX, в раздел Очереди вызовов. Создайте новую Очередь вызовов, укажите название и добавочный номер Очереди, а затем установите опцию Голосовые приложения и загрузите скомпилированный файл.
- Сохраните изменения в Очереди вызовов. Голосовое приложение готово к работе. Теперь, при поступлении вызова на эту Очередь, он будет переведен на соответствующий добавочный номер в зависимости от времени суток.
Вы можете проверить работу приложения, позвонив на добавочный номер Очереди, либо направив на эту Очередь вызовы с внешних транков.