Найти тему
Merion Academy

Интеграция Cisco UCCX с базой данных через скрипт

Для пользователей, которые обладают премиальной лицензии на Cisco Unified Contact Center Express (UCCX), одной из самых крутых фич является наличие возможной интеграции и отправки запросов в базу данных. Сами запросы могут строиться на базе введенной звонящим информации, его номера – чего угодно.

Безусловно важно сделать ¬¬изначальный дизайн скриптов правильным и учитывать нагрузку. Большие и тяжелые скрипты, которые имеют много «плеч» в БД (базу данных), значительно увеличивают нагрузку на ресурсы сервера. А если БД еще и удалена от сервера CCX и имеет место сетевая задержка, то может иметь место прямое воздействие на бизнес и лояльность звонящего вам клиента.

ОБЗОР CISCO UNIFIED CCX SCRIPT EDITOR

Для создания и управления IVR скриптами в UCCX используется специальный инструмент - Cisco Unified CCX Editor. Он позволяет визуально управлять некими блоками, которые отвечают за то, или иное действие. Выглядит эта палетта следующим образом:

Давайте рассмотрим раздел Database. Здесь мы видимо 4 пункта:

  • DB Get - сопоставление полученных данных из БД к переменным скрипта;
  • DB Read - подключение к серверу и запрос;
  • DB Release - закрываем подключение к БД;
  • DB Write - если нужно внести изменения в БД, используем Write метод;
-2

На скриншоте выше видно, что каждый скрипт начинается с события Start и заканчивается событием End. Во время звонка, по ходу выполнения скрипта, мы можем запрашивать данные из БД сколько угодно раз. Каждый запрос имеет свой отдельный список шагов, которые указаны в списке из 4х пунктов выше.

Мы рекомендуем предварительно обкатать все SQL запросы, доступ системы и прочие рабочие факторы перед выгрузкой в продуктивную среду

Например, давайте посмотрим, что скрыто внутри блока DB Read:

-3

Взглянем на поля, которые доступны для конфигурации:

  • DB Resource Name - метка запроса. Своего рода метка;
  • Data Source Name - источник данных (DSN), указанное в административной консоли UCCX (Cisco Unified CCX Administration Database);
  • Timeout (in sec) - пауза выполнения запроса. Этот интервал защитит вашу систему от, например, потери связи с БД. То есть, максимум 7 секунд ожидания. Кстати, если указано как 0, то запрос не будет ограничен по времени;

Теперь из вкладки General переходим во вкладку Field Selection:

-4
  • Запрос - SQL – команда (запрос), который вы ходите выполнить. Например, SELECT fld1, fld2 from tbl where fld1 = $variable - выбираем два поля из таблицы, где одно из полей равно переменной, которую, мы ранее, присвоили в скрипте (DTMF от клиента, например);
  • Test (кнопка) - нажмите на эту кнопку, чтобы проверить синтаксис запроса и подключение к БД;
  • Number of rows returned - количество вернувшихся строк запроса, в случае, если была нажата кнопка Test;
  • Show all fields (select table/view) - показать все поля в таблице, к которой выполняется подключение;

Отлично, разобрались. Теперь давайте взглянем на блок DB Get:

-5
  • DB Resource Name - лэйбл или имя для этого запроса;
  • Data Source Name - имя БД (настраивается на стороне Cisco Unified CCX Administration);
  • Refresh Database Schema (кнопка) - кнопка, которая отвечает за подтягивание данных БД и таблицы в CCX Editor;

Переходим во вкладку Field Selection:

-6
  • Table/View - данное поле показывает имя таблицы из БД, которая выбрана во вкладке General, которую мы описывали выше;
  • Табличное поле:
  • Field Name - имя поля, в выбранной БД;
  • Data Type - типа данных (строка/число и так далее);
  • Local Variable - переменная скрипта, которая будет хранить соответствующее поле;
  • Add/Modify (кнопки) - кнопки, которые отвечают за модификацию полей (кроме типа данных, он read only);

Полученные данные можно использовать в скрипте, например, чтобы озвучивать клиенту (TTS) его данные по номеру телефона, или по введенным цифрам (номер заказа). Кстати, аналогичную фичу мы реализовали в связке Yandex.SpeechKit и Asterisk.