Корзина
1 отзыв
Обновление на 3CX v15.5 бесплатно!Получить обновление
+380
67
958-68-68
+380
44
392-86-76
УкраинаДнепропетровская областьДнепрул. Вернадского 24 / 449027
Работа с базами данных в 3CX Call Flow Designer

Работа с базами данных в 3CX Call Flow Designer

Работа с базами данных в 3CX Call Flow Designer

В этой статье мы расскажем, как делать запросы к базе данных SQL Server из 3CX Call Flow Designer, используя компонент Database Access. Отметим, что компонент Database Access также может работать с базой PostgreSQL, которую использует 3CX.

Демо-проект этого голосового приложения поставляется вместе с дистрибутивом 3CX CFD и находится в папке Documents\3CX Call Flow Designer Demos. Если вы захотите им воспользоваться – просто укажите расположение вашей базы данных и учетные данные доступа.
Наше голосовое приложения будет запрашивать ПИН пользователя (это может быть номер клиента, страхового полиса и т.п.), проверяет его в базе данных и переводит его на указанный добавочный номер (это может быть обслуживающий сотрудник, заранее подготовленное голосовое меню или другое голосовое приложение), если ПИН найден.

Создание проекта

Для создания проекта CFD перейдите в File → New → Project, укажите папку размещения проекта и его имя, например, DatabaseAccessDemo.

Запрос ПИН-кода у пользователя

ПИН пользователя запрашивается с использованием компонента User Input. Добавим компонент в голосовое приложение:
  • Перетащите компонент User Input из набора компонентов слева в главный экран приложения. Выберите компонент и в окне Properties переименуйте его в requestPIN.

  • Дважды кликните по компоненту, чтобы открыть окно конфигурации, и установите следующие свойства:
    • Initial Prompts – укажите WAV файл, в котором у пользователя будет запрашиваться ПИН, например, “Введите ваш персональный идентификационный номер”. Формат WAV файла: PCM, 8 kHz, 16 bit, Mono.
    • Subsequent Prompts – укажите WAV файл с более подробными пояснениями по вводу. Он проигрывается только, если пользователь сделал неверный ввод или вообще ничего не ввел. Например, “Введите ваш персональный идентификационный номер. Допускаются цифры от 0 до 9 и длина — от 3 до 6 цифр”.
    • Timeout Prompts – укажите WAV файл с предупреждением о том, что ничего не было введено, например, “К сожалению, мы не получили ввод от вас”.
    • Invalid Digit Prompts – укажите WAV файл с предупреждением о некорректном (слишком мало цифр или они недопустимы), например, “К сожалению, вы некорректно ввели ПИН”.
  • Остальные опции настройте, как показано ниже, и нажмите OK для сохранения.

Проверка введенного ПИН в базе данных

После получения ПИН от пользователя, его следует проверить в базе данных. Для этого добавим компонент Database Access в ветвление компонента Valid Input, предполагающее верный ввод. Переименуйте компонент в validatePIN и дважды кликните на нем, чтобы установить свойства:
  • Database Type — выберите SqlServer.
  • Configure each property separately – выберите эту опцию, чтобы указать параметры подключения по отдельности. Однако, вы можете указать и строку подключения к базе данных.
  • Server – имя или IP адрес сервера базы данных. Это поле может быть и выражением, поэтому, если вы указываете константу, возьмите ее в кавычки.
  • Port – порт SQL сервера. При использовании стандартного номера порта, это поле можно оставить пустым.
  • User Name и Password – учетные данные подключения к базе данных. Значения также могут переменными.
  • Statement Type – укажите Scalar, т.к. требуется получить только одно значение из базы – количество записей о пользователе с данным ПИН.
  • Timeout – оставьте по умолчанию 30 сек. или измените, при необходимости.
  • SQL Statement – в этом поле указывается строка запроса к базе данных. Но предварительно добавим параметр в раздел Parameters, который используется в строке запроса. Параметр – это ПИН, введенный пользователем.
  • id – имя переменной, requestPIN.Buffer – значение, т.е. буфер ввода в компоненте User Input (который мы ранее назвали requestPIN)

Теперь введем строку запроса к базе. Используйте небольшую кнопку справа от окна ввода, чтобы вставить значение переменной id. Наша строка имеет вид: SELECT count(*) FROM customers WHERE id={0} Окно свойств компонента Database Access должно выглядеть примерно так:

Проверка результата SQL запроса и выбор дальнейших действий

Настроив компонент Database Access, перейдем к проверке ПИН. Для этого добавим компонент Create a Condition с двумя условиями (ветвлениями) – успешная и неуспешная валидация.
Перетащите компонент из левой части и переименуйте в validateDatabaseResult. Переименуйте ветвления в success и error. Окно среды разработки должно выглядеть примерно так:


Чтобы выполнялось ветвление success, запрос к базе данных должен вернуть 1, что означает, то клиент с таким ПИН кодом найден (найдена одна запись). Для этого вручную или с помощью конструктора выражений введем условный оператор: EQUAL(validatePIN.ScalarResult,1)

image

После того, как вы указали условия для ветвления success, добавьте компоненты Prompt Playback для всех возможных ветвлений голосового приложения: ПИН найден, ПИН не найден и ПИН введен неверно допустимое количество раз (у нас в компоненте User Input Max Retry Count=3). В параметрах компонентов укажите соответствующие WAV файл уведомлений.
После этого в ветвление success добавьте компонент Transfer, который будет переводить вызов на сотрудника. Голосовое приложение будет иметь примерно такой вид:

Компиляция и установка приложения на сервер 3CX

Голосовое приложение готово! Теперь его следует скомпилировать и загрузить на сервер 3CX. Для этого:
  • Перейдите в меню Build > Build All, и CFD создаст файл DatabaseAccessDemo.tcxvoiceapp.
  • Перейдите в интерфейс управления 3CX, в раздел Очереди вызовов. Создайте новую Очередь вызовов, укажите название и добавочный номер Очереди, а затем установите опцию Голосовые приложения и загрузите скомпилированный файл.
  • Сохраните изменения в Очереди вызовов. Голосовое приложение готово к использованию.

Вы можете проверить работу приложения, позвонив на добавочный номер Очереди и введя ПИН для проверки. Если он будет найден в базе данных, вызов будет переведен на оператора.
Предыдущие статьи