«Чёрный список» в UCCX

Задача: фильтровать нежелательные номера, звонящие в колл-центер.

Конечно всё можно фильтровать translation pattern’ами на голосовом шлюзе, но у нас есть такой мощный и гибкий инструмент как UCCX (колл-центр жи), тем самым, за одно, спасём конфиг шлюза от разрастания до нечитабельного вида.

Ниже скриншот скрипта. Жёлтым отмаркировано всё, что касается нашей задачи. После пройдёмся по порядку.

Получаем номер звонившего

Для начала нам необходимо получить вызывающий номер, который попадает в это приложение. Добавьте переменную «CallingNumber», тип — String, значение по умолчанию — любое. Добавляем действие «Call Contact\Get Call Contact Info» и записываем в нём в переменную «CallingNumber» вызывающий номер.

Получаем список запрещённых номеров

Список запрещённых номеров будем хранить в виде XML. Что бы избежать хардкода лучше всего опубликовать файл где-нибудь на веб сервере. Но если такой возможности нет, то можно записать его в переменную типа Document в контейнере TEXT[]. Я разберу «хороший» вариант.

Создаём переменную «BlacklistURL», тип — String, значение по умолчанию — любое, добавьте атрибут Parameter (Опять же, уходим от хардкода — это даст нам возможность менять URL в настройках приложения в веб-консоли UCCX’а. Помните, что URL необходимо заключать в двойные кавычки). Создаём переменную «blacklist», тип — Document, значение по умолчанию — null. Добавляем действие «Document\Create URL Document». Выберите метод Get (вам необходимо просто получить веб содержимое в виде текста), Timeout — 100 (время ожидания ответа от веб-сервера в миллисекундах. В действительности, внутри локальной сети достаточно и 10), URL — берём из переменной BlacklistURL, и записываем всё в документ с именем blacklist.


У нас есть текстовый документ, теперь надо представить его как XML документ. Создаём действие «Document\Create XML Document». Source Document — текстовый документ, Document — XML документ. Как вы видите я просто переприсвоил переменную.

Проверяем звонящий является ли звонящий телефонный номер запрещённым

Для начала я покажу формат нашего XML файла:

<?xml version=»1.0″ encoding=»utf-8″ standalone=»yes»?>
<BadNumbers>
<BadNumber>1234</BadNumber>
<BadNumber>4431</BadNumber>
<BadNumber>2231</BadNumber>
</BadNumbers>

Структура — очень простая. Имеем один корневой элемент BadNumbers внутри которого дочерние элементы BadNumber текст каждого из которых — это номер, который нам необходимо блокировать.

Мы создаём строковую переменную «badnumber» со значением по умолчанию null. Создаём действие «Document\Get XML Document Data». Далее мы присваиваем этой переменной значение текста XML поля BadNumber с текстом звонящего номера. То есть, если в нашем XML документе есть поле BadNumber с номером звонящего, то переменная «badnumber» принимает значение номера звонящего, если же такого поля нет, то переменная остаётся со значением null. На всякий случай вот текст запроса: «//BadNumber[.='»+CallingNumber+»‘]»


Создаём условие «General\If». Выражение условия — CallingNumber == badnumber. Создаём маркер в том месте скрипта, куда вы хотите пересылать нежелательный номер (в моём случае — к шагу сброса звонка), даём ему название (End). В случае, если выражение нашего условия верно, создаём действие «General\Goto» с указателем на наш маркер.


Всё.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *