Сохраняемые в потоковую БД мастер-домена события
Путь расположения
Путь в сборочном каталоге | Описание |
---|---|
|
|
|
Обзор
Набор ассетов осуществляющих фильтрацию событий и состава их полей между генерацией в системе и сохранением в потоковую БД мастер-домена (CDR common).
На основе файлов метаданных:
-
автоматически формируется структура событийной потоковой БД домена, создаются схемы, таблицы, столбцы указанных типов;
-
осуществляется фильтрация генерируемых событий, сохраняемых в потоковую БД вплоть до полного отсутствия;
-
фильтруется состав полей генерируемых событий для сохранения в БД ограниченного их числа.
Перечень и описание классов событий, типов событий и их полей доступны в разделе.
Дескриптор состава классов и типов событий (events.json)
Список классов событий и содержащихся в них типов событий, подлежащих сохранению в событийную потоковую БД мастер-домена (CDR common).
Каждому из перечисленных в списке классов событий в папке events должен соответствовать отдельный каталог, внутри которого для каждого типа событий этого класса должен присутствовать файл, описывающий состав полей события, подлежащих сохранению в БД.
[ { "class": str, "events": array<str> }, ... ]
-
class
– имя класса событий. -
events
– список имен типов событий, входящих в класс.
Пример events.json
Перечисляет все классы событий мастер-домена и входящие в них типы событий
[ { "class": "callevents", "events": [ "call_asr", "call_rec_links", "dlg_binding", "dlg_call", "dlg_dead", "dlg_init", "dlg_pickup", "dlg_start", "dlg_stop", "fork_answer", "fork_cancel", "fork_preanswer", "fork_redirect", "fork_start", "fork_stop", "hold", "invite", "media_migrate_done", "rec_info", "records_moved", "refer", "replaces_invite", "replaces_refer", "route", "route_feature", "route_fin", "route_redirect", "route_referred", "route_replacing", "route_dead", "unhold", "user_redirect" ], "partition": { "cdr": { "fields": [ "invitedt" ], "template": "datemonth" } } }, { "class": "confevents", "events": [ "call_attach", "call_detach", "conf_dead", "conf_init", "conf_rec_links", "conf_start", "conf_stop", "fork_answer", "fork_preanswer", "fork_start", "fork_stop" ] } ]
Дескриптор полей событий типа
Каталог класса событий. Именуется названием класса. Содержит внутри файлы-дескрипторы по всем типам событий класса, их полей и типов значений в БД. Имена файлов соответствуют именам типов событий.
{ "class": str, "type": str, "fields": [ { "name": str, "type": "varchar" | "bigserial" | "timestamp" | "uuid" | "integer", "required": true | false }, ... ] }
-
class
– название класса событий (дубликат имени каталога). -
type
– название типа событий (дубликат имени файла). -
fields
– список сохраняемых в БД полей (суть структура таблицы):-
name
– название поля события и одновременно столбца в таблице БД. -
type
– тип значения столбца в таблице БД. -
required
– признак обязательности поля (по умолчаниюfalse
). -
default
– значение по умолчанию (для полей сrequired = false
)
-
Пример
Пример файла для типа событий callevents.dlg_start
, расположение /callevents/dlg_start.json
.
{ "class": "callevents", "type": "dlg_start", "fields": [ { "name": "id", "type": "bigserial" }, { "name": "acallid", "type": "varchar", "required":true }, { "name": "dialogid", "type": "varchar" }, { "name": "alocaluri", "type": "varchar" }, { "name": "alocaltag", "type": "varchar" }, { "name": "aremoteuri", "type": "varchar" }, { "name": "bcallid", "type": "varchar" }, { "name": "blocaluri", "type": "varchar" }, { "name": "blocaltag", "type": "varchar" }, { "name": "bremoteuri", "type": "varchar" }, { "name": "usemedia", "type": "bool" }, { "name": "mgc", "type": "varchar" }, { "name": "msid", "type": "varchar" }, { "name": "reclinks", "type": "varchar" }, { "name": "isrec", "type": "boolean" }, { "name": "invitets", "type": "bigint" }, { "name": "eventts", "type": "timestamp" }, { "name": "acallidhash", "type": "bigint" }, { "name": "dialogidhash", "type": "bigint" }, { "name": "cid", "type": "uuid" }, { "name": "invitedt", "type": "timestamp"}, { "name": "aremoteparty", "type": "varchar" }, { "name": "aremotecontact", "type": "varchar" }, { "name": "bremotecontact", "type": "varchar" }, { "name": "ausername", "type": "varchar" }, { "name": "adomain", "type": "varchar" }, { "name": "adisplayname", "type": "varchar" }, { "name": "anetworkaddr", "type": "varchar" }, { "name": "acallednum", "type": "varchar" }, { "name": "arepresentative", "type": "varchar" }, { "name": "aouter", "type": "boolean" }, { "name": "aprovidercode", "type": "varchar" }, { "name": "busername", "type": "varchar" }, { "name": "bdomain", "type": "varchar" }, { "name": "bdisplayname", "type": "varchar" }, { "name": "bnetworkaddr", "type": "varchar" }, { "name": "bouter", "type": "boolean" }, { "name": "bprovidercode", "type": "varchar" }, { "name": "anumber", "type": "varchar" }, { "name": "bnumber", "type": "varchar" }, { "name": "ctxscridm", "type": "varchar" }, { "name": "ctxscridd", "type": "varchar" }, { "name": "relates", "type": "varchar" } ] }