CDR (cdr)

Описание

Обработчик событий, поставляющий их из брокера сообщений функциональной роли sq в потоковую БД внутри одного сайта.
Имеет прямой доступ к реляционным потоковым БД всех доменов вне зависимости от того, на каких сайтах они обслуживаются.

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

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

Код

cdr

Режим работы

Сервис

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

Active-Active

Типы сайтов

Любые

Слой

Служебный

Размещение

Внутренний

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

Да

Приложение

rostell_cdr

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

PostgreSQL CDR DB

Параметры

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

name

str

required

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

roletype

str

required

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

iface

str

required

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

dbconnstrings

array<str>

required

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

group

int

required

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

order

int

required

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

checktoutcallsinterval

int

3600

Период проверки наличия звонков с таймаутом в БД, в секундах.
Минимальное значение: 30.

domainsubscrqlist

array<str>

empty

Cписок доменных очередей, на которые подписан экземпляр функциональной роли.

istoutcallsinterval

int

7200

Время, прошедшее с момента получения события callevents.dlg_start, после которого звонок считается завершенным и автоматически генерируется событие callevents.dlg_dead, в секундах.
Минимальное значение: 3600.

maxevents

int

5000

Максимальное количество событий которое функциональная роль может получить со всех очередей за одну итерацию.
Минимальное значение: 10.

querytout

int

1000

Таймаут на запросы в БД в мс.
Минимальное значение: 1000.

subscrqlist

array<str>

empty

Список очередей на которые подписан экземпляр функциональной роли

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

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

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

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

  "dbconnstring": [
    "host:192.168.0.36,port:5433,login:rostellpgadmin2,pwd:123456,database:template1",
    "host:192.168.0.84,port:5432,login:rostellpgadmin,pwd:123456,database:template1"
  ],
  "group": "1",
  "order": "2",

  "subscrqlist": [
    "q1"
  ],
  "maxevents": "2000",
  "querytout": "1500"
}

См. также