Перехват звонков из очереди

Материал из Oktell
Перейти к: навигация, поиск

Наверх

Цель: Настроить внешний модуль с возможностью перехвата любого звонка, находящегося в очереди ожидания в системе Oktell.

Задача актуальна в целях разгрузки очереди. Известно, что в часы наибольшей нагрузки в систему поступает большое количество звонков и часто доступные операторы не способны справиться с поступающим потоком абонентов. В эти моменты, супервизору может быть удобен мониторинг текущих очередей в системе и возможность перехватить абонента, который находится в очереди дольше всех.

Функционал реализовывается во внешнем модуле с частотой обновления раз в 2 секунды. При создании сценариев было обращено особое внимание на минимальное количество обращений в базу данных с целью снижения нагрузки на сервер баз данных.

Рассмотрим детальнее процесс реализации данной задачи.


Сценарий получения списка внешних линий

Сценарий предназначен для записи в глобальную переменную xml-структуры со списком всех внешних линий. Это нужно для того, чтобы не нагружать сервер БД при мониторинге, запрашивая их список. Глобальная переменная доступна во всех запускаемых сценариях.

Сценарий рекомендуется один раз в день, например, при запуске системы (при условии, что список внешних линий не меняется в течении дня).

Вид сценария представлен на рисунке:


Перехват звонков 001.png


  • Компонент "Получение списка линий" - делает запрос в БД Oktell на получение списка внешних линий в XML-формате. Используется следующий SQL-запрос:
declare @lines xml
set @lines = ( select SystemNumStr  from A_ServerExtLines for XML path ())
select @lines as "lines_queus"

В параметрах SQL-запроса переменные не указываются. Для передачи XML-структуры в сценарии создается глобальная переменная lines. Значение из переменной SQL-запроса @lines будет автоматически присвоено переменной сценария lines.

ВНИМАНИЕ: Если имя переменной сценария не будет совпадать с именем переменной SQL-запроса, то значение не будет передано.


  • Компонент "Ув1" - отладочное уведомление для вывода на экран значения в переменной lines.


Модификация главного сценария

Сценарий мониторинга для внешнего модуля

Сценарий перехвата

=== Сценарий вместо отбоя внешней линии ===