Journal (jrnl)

Описание

Функциональная роль управления журналами (разговоров, чатов, и др.). Работает с хранилищами – потоковой БД CDR и файловым хранилищем записей разговоров. На основе данных в них копирует или перемещает (в зависимости от настройки) данные из потоковой событийной БД в журнальную БД домена.

Резервируется в режиме Active-Passive. Не масштабируется.

Table 1. Системные характеристики

Код

jrnl

Режим работы

Сервис

Режим резервирования

Active-Passive

Типы сайтов

Любые

Слой

Бизнес-логика

Размещение

Внутренний

Сохранение и восстановление состояния при перезагрузке

Да

Приложение

rostell_jrnl

Собственное хранилище

PostgreSQL Journal DB

Ограничения

  • Данные о записи разговора размещаются независимо от перемещения самой записи разговора. Перемещением записи занимается функциональная роль recmover

Параметры

Table 2. Параметры
Имя Тип Умолчание Описание

name

str

required

Имя. Может состоять из латинских букв и цифр, должно начинаться с буквы.

roletype

str

required

Тип функциональной роли. Возможные значения: "jrnl".

iface

str

required

Алиас сетевого интерфейса сервера, на котором будет происходить внутреннее взаимодействие функциональных ролей между собой.

dbconnstrings

array<str>

required

Строки подключения к ферме серверов PostgreSQL журнальных БД доменов (jrnl).
Формат строки подключения: "alias://pgdb_strings/<ALIAS_NAME>", где <ALIAS_NAME> – конкретный алиас конфигурации из раздела pgdb_strings.
Перечисление в списке нескольких строк подключения обеспечивает резервный доступ к ферме серверов БД – если подключение через первую строку не удается, производится подключение через вторую и т.д.

group

int

required

Номер группы.
Горизонтальное масштабирование внутри сайта не поддерживается. Все экземпляры функциональной роли на сайте должны иметь одинаковое значение.
Целое число от 1 до 9999999.

order

int

required

Порядок экземпляра функциональной роли в рамках группы.
Определяет в каком порядке будет происходить перетекание в режиме Active-Passive.

cleantime

str

"01:00:25Z"

Время ежедневного запуска процедуры очистки старых записей (в бд и медиа), в формате ISO 8601.
Формат "HH:MMZ" или "HH:MM+HH:MM", например "01:35Z", "02:47+03:00".

intervalerrsec

int

60

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

intervalsec

int

300

Интервал между операциями копирования (от завершения предыдущей до начала следующей), в секундах.
Возможные значения от 1 до 86400.

mode

str

"move"

Режим работы с БД CDR как с поставщиком данных. Возможные значения:

  • "copy" – данные копируются и помечаются как скопированные.

  • "move" – данные копируются в журнал, а затем удаляются из CDR.

  • "pause" – копирование из CDR приостановлено.

Пример конфигурации

Управление конфигурацией производится в приложении, доступном для администраторов мастер-домена. Приложение скрывает полное содержание конфигурации, однако тем не менее оно доступно через API.

Конфигурация содержит раздел для описания всех экземпляров всех функциональных ролей. Параметры определяются для каждого конкретного экземпляра функциональной роли.

Пример узла
{
  "name": "jrnl1",
  "roletype": "jrnl",
  "iface": "eth0",

  "dbconnstrings": [
    "alias://pgdb_strings/a"
  ],
  "group": 10005004,
  "order": 1,

  "intervalerrsec": 30,
  "intervalsec": 30,
  "mode": "copy"
}

См. также