Хранение записей разговоров

Записи разговоров в Oktell Studio производятся по настроенным фильтрам. Можно записывать все звонки, либо только определенные. Фильтры задаются в разделе Управление записями разговоров - Правила записей разговоров.

Отдельно задается продолжительность хранения записей по времени. Срок хранения записей задается в разделе Управление записями разговоров - Правила хранения записей.

Любые изменения правил записей разговоров и хранения записей приводят к пересчету существующих записей. Это важно учитывать при внесении изменений в существующие правила, чтобы избежать непреднамеренного удаления записей разговоров.

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

В Oktell Studio могут записываться все коммутации, в том числе и звонки, которые обслуживаются с помощью IVR сценария. Файлы записей хранятся отдельно. Если вызов был обслужен IVR сценарием, а потом был переключен на сторонний КЦ - будет сохранено две записи. Одна запись в рамках IVR, вторая запись разговора с оператором в КЦ.

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

Создание правила хранения записей

Выбор правила хранения записей

На главной странице Bridge открыть приложение администрирования Настройки. C левой стороны в области Объекты перейти в раздел Управление записями разговоров - Правила хранения записей и нажать newObject.

Создание правила хранения записей

Задать название, указать период хранения в днях. Нажать saveButton.

Создание правила записей разговоров

Выбор управление записью

C левой стороны в области Объекты перейти в раздел Управление записями разговоров - Управление записью и нажать newObject.

Создание правила хранения записей

Задать приоритет, включить параметр Записывать, выбрать правило созданное ранее.

Создание правила хранения записей 2

Задать фильтры при необходимости. Если требуется записывать все вызовы, указать маску *. Нажать saveButton.

Контекстный сценарий

Настройка главного контекстного сценария производится в настройках мастер-домена.

Создание контекстного сценария

Создание служебного сценария МД

В управлении мастер-доменом с левой стороны в области Объекты перейти в раздел Служебные задачи и нажать newObject.

Создание служебного сценария МД 2

Откроется Создание объекта. Прописать Название сценария и Код сценария. Нажать saveButton.

Назначение контекстного сценария

Общие настройки

В управлении мастер-доменом с левой стороны в области Объекты перейти в раздел Общие настройки.

Создание служебного сценария МД 2

Прописать код ранее созданного сценария в поле Код контекстного служебного сценария. Нажать saveButton.

Настройка контекстного сценария

SVC сценарии

Вернутся к ранее созданному сценарию. C левой стороны в области Объекты перейти в раздел Общие настройки, найти в списке сценариев контекстный сценарий, в строке созданного служебного сценария нажать Открыть в редакторе.

Старт

Откроется редактор сценариев. Разместить компонент Старт, в качестве типа страта выбрать Пост-обрбаотка, для получения сообщения после завершения коммутации, в котором содержаться данные для получения записи разговоров.

Взаимодействие сценариев

Добавить компонент Взаимодействие сценариев. Режим - Прием сообщения, сообщение в переменную - сохранить события в переменную msg, таймаут - 60 секунд.

Запуск сценария

Разместить компонент Запуск сценария, режим запуска - Асинхронный служебный, источник сценария - указать для запуска код служебного сценария из другого домена, в котором будет происходить работа с данными. Вид кода сценария для запуска в другом домене <code>@<domain>, в примере bridge_context@bridge.demo.oktell-studio, в качестве параметра запуска передать переменную msg. Сохранить сценарий - нажать кнопку saveSvcButton.

Цикл

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

Цикл

Перевести на компонент Стоп по ветке Переход, время, то есть по завершению работы остановить контекстный сценарий.

Цикл

Разместить компонент Старт, в свойствах которого указать Перевести на компонент Стоп по ветке Переход, время, то есть по завершению работы остановить контекстный сценарий. Сохранить saveSvcButton.

Сценарий обработки событий звонка

Вернуться в настройки основного домена Bridge.

SVC сценарии

C левой стороны в области Объекты перейти в раздел Web каналы - SVC сценарии и нажать newObject.

SVC создание

Откроется Создание объекта. Прописать Название сценария и Код сценария, который был задан в компоненте Запуск процесса в контекстном сценарии мастер-домена. Нажать saveButton. В списке сценариев отобразится новый служебный сценарий. В строке созданного служебного сценария нажать Открыть в редакторе.

Взаимодействие сценариев

Откроется редактор сценариев. Разместить компонент Старт, в качестве параметра запуска передается сообщение из контекстного сценария в мастер-домене. Сохранить значение в переменную `msg `.

Парсер 1

Разместить компонент Парсер, в качестве документа указать переменную msg, алгоритм - выбрать Пасрсер Json, поисковый запрос - "type", функция - Восстановленное содержимое, результат в переменную - указать переменную msg_type.

Парсер 2

Разместить компонент Парсер, в качестве документа указать переменную msg, алгоритм - выбрать Пасрсер Json, поисковый запрос - "data", функция - Восстановленное содержимое, результат в переменную - указать переменную data.

Сравнение

Разместить компонент Сравнение, в качестве аргумента 1 указать переменную msg_type и в качестве аргумента 2 указать константу call_rec_links - событие, которое содержит в себе путь к записи разговора.

Парсер 3

Если msg_type равен call_rec_links, разместить компонент Парсер, в качестве документа указать переменную data, алгоритм - выбрать Пасрсер Json, поисковый запрос - "recpath", функция - Восстановленное содержимое, результат в переменную - указать переменную recpath. Если нет, остановить сценарий отправив на компонент Стоп.

Парсер 4

Разместить компонент Парсер, в качестве документа указать переменную data, алгоритм - выбрать Пасрсер Json, поисковый запрос - "recstorageid", функция - Восстановленное содержимое, результат в переменную - указать переменную recstorageid.

Операция

Разместить компонент Операция, тип операции - Скачать запись разговора, ид хранилища - recstorageid, путь к записи в хранилище - recpath, результат в переменную - file.

Файловая операция

Разместить компонент Файловая операция, тип объекта - выбрать Файл, операция - выбрать Скопировать, путь источника - переменная file, путь назначения - указать выражение makepath(gs_domain(),[file]), результат в переменную - temp.

Доступ к сервису S3

Разместить компонент Доступ к сервису S3. Хранилище - указать название хранилища S3, ключ хранения - указать путь для сохранения (в примере выражение`domain()"/"), действие - выбрать `Разместить, путь к файлу - выражение makepath(gs_domain(),[file]), заголовки - выражение в виде JSON-структуры {"Content-Type":"audio/mpeg"}, параметры запроса - выражение в виде JSON-структуры с параметрами доступа S3 хранилища "{\"s3_host\": \"s3.amazonaws.com\",\"s3_port\": 443,\"access_key_id\": \"AKIA33UUS3YMMISZGXLG\",\"secret_access_key\": \"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\"}".

Контекстный сценарий позволяет получать информацию о всех событиях происходящих во время звонка. По событию завершение звонка можно производить любые операции связанные с агрегацией данных в рамках множества КЦ: сохранять записи разговоров всех КЦ в хранилище, объединять записи разговоров и производить любые другие операции.