Сохраняемые в потоковую БД мастер-домена события
Путь расположения
| Путь в сборочном каталоге | Описание |
|---|---|
|
|
|
Обзор
Набор ассетов осуществляющих фильтрацию событий и состава их полей между генерацией в системе и отправкой подписчикам и брокерам.
На основе файлов метаданных:
-
осуществляется фильтрация генерируемых событий;
-
фильтруется состав полей генерируемых событий.
Перечень и описание классов событий, типов событий и их полей доступны в разделе.
Дескриптор состава классов и типов событий (events.json)
Список классов событий и содержащихся в них типов событий.
Каждому из перечисленных в списке классов событий в папке 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" }
]
}