Настройка домена (setting)

Описание

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

Ограничения

  • Коллекция доступна в любом домене.

Поля

Структура сущности
{
  "key": str,
  "value": str
}
Table 1. Поля
Спецификация Описание

Поле: key
Режим: in
Тип: str
По умолчанию: required

Поле: value
Режим: in
Тип: any
По умолчанию: required

Значение

Ключи настроек

Table 2. Ключи настроек
Спецификация Описание

"acme_account_email"
Тип домена: мастер
Тип значения: str
По умолчанию: str

Адрес электронной почты для уведомления об операциях при работе сервиса
автоматической генерации SSL-сертификатов LetsEncrypt. Заполнение поля активирует сервис для всех доменов.
Далее настройками управляется каждый домен в отдельности (поля 'acme_enabled' и 'acme_subdomains').

"acme_enabled"
Тип домена: любой
Тип значения: int
По умолчанию: 0

Признак активности сервиса автоматической генерации SSL-сертификатов LetsEncrypt для домена.
Работа сервиса требует настройки 'acme_account_email' в мастер-домене.

При успешной генерации сертификат автоматически подгружается в 'certificate_pem'.
Сертификат выписывается на 3 месяца и автоматически продляется.
Если значение поля 'certificate_pem' заполнено вручную (не имеет специальной сигнатуры), то сервис автоматической генерации принудительно деактивируется.

Если сервис неактивен, то при поступлении запроса по TLS запроса в домен будет произведен поиск сертификата в цепочке родительских доменов по именам
(вплоть до мастера, если имя текущего домена наследуется от имени мастер-домена). Это делается в расчете на то,что при наличии сертификата в родительском домене имя текущего домена добавлено в него в качестве дочернего (вручную или с помощью 'acme_subdomains').
Если ни в одном из родительских доменов сертификат не загружен, то применяется сертификат из настроек конфигурации (лежит на диске по пути, установленному в конфигурации).

"acme_subdomains"
Тип домена: любой
Тип значения: str
По умолчанию: str`

Перечисление дочерних доменов, имена которых должны быть включены в автоматически генерируемый SSL-сертификат LetsEncrypt.

Применяется только при активности сервиса автоматической генерации SSL-сертификатов ('acme_enabled').

"alertcall_defaults"
Тип домена: рабочий
Тип значения: object
По умолчанию: { …​ }

"ap_constants"
Тип домена: любой
Тип значения: object
По умолчанию: { …​ }

Набор констант домена для шаблонов autoprovision (см. роль ap).

"ap_options"
Тип домена: мастер
Тип значения: object
По умолчанию: `
{
"masks": [
"{MAC}[.].","cfg{MAC}[.].","SEP{MAC}[.].*","type=ctl|CTLSEP{MAC}[.]tlv","type=itl|ITLSEP{MAC}[.]tlv"
],

Набор опций для работы микросервиса autoprovision.

  • masks - Маски файловых имен, по которым распознаются MAC-адреса в TFTP-запросах на получение файлов с конфигурациями. Базовый формат - регулярные выражения с блоком {MAC}, который подменяется на шаблон поиска.
    Впереди может быть указан тип (по умолчанию cfg), отделенный вертикальной чертой, для различения разных вариантов конфигураций, требуемых устройством.
    Если тип указан и отличается от cfg, то при поиске файла шаблона будет добавляться в качестве конечного расширения.
    Например, в результате запроса телефоном Cisco CP-9971 файла CTLSEP123412341234.tlv обнаружится шаблон type=ctl|CTLSEP{MAC}[.]tlv по нему сервис будет искать файлы по убыванию приоритета: "Cisco CP-9971.tlv.ctl", "cisco cp-9971.tlv.ctl", "Cisco.tlv.ctl", "cisco.tlv.ctl".
    Далее в соответствии с описанием sipuser.opts.ap_devices.

"blf_details_enabled"
Тип домена: рабочий
Тип значения: boolean
По умолчанию: false

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

"blf_external_numbers"
Тип домена: рабочий
Тип значения: Array<str>
По умолчанию: []

Дополнительный список внешних номеров, состояние которых размещается в хранилище и доступно для BLF-подписки и уведомлений.
Для успешной подписки требуется разрешение.

Номер должен быть доступен в маршрутизации для абонента, осуществляющего подписку.
Подписанный абонент будет уведомлен о смене состояния, когда номер будет точно соответствовать URI.username одной из сторон диалога, обслуживаемого микросервисом B2B (заголовки To и From SIP-запроса INVITE).
Важно, чтобы при настройке поля blf_external_numbers указывался именно номер URI.username, и он же указывался при настройке функции BLF в устройстве.

При подписке на номера IVR-featurecode производится подмена номера на "ivr-Extension".

Если указанный номер назначен в качестве внутреннего номера одного из пользователей домена, то в качестве внешнего он не рассматривается.

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

"callscrcode_context"
Тип домена: мастер
Тип значения: str
По умолчанию: str_empty

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

Контекстный сценарий завершается принудительно одновременно с завершением звонка.

Если сценарий завершается до завершения звонка, то события перестают отправляться.

Сценарий не запускается, если поле пустое или неверный код.

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

"certificate_pem"
Тип домена: любой
Тип значения: str
По умолчанию: str_empty

Содержимое pem-файла сертификата (содержит и приватный ключ, и сертификаты для доменов).

При TLS запросе к системе, преимущественно используется сертификат домена, по имени которого адресовано подключение.

При отсутствии домена или настройки (пустое значение), используется сертификат родительского домена, и так далее вплоть до мастер-домена.

Если ни в одном из доменов-предков сертификат не настроен, то применяется сертификат, заданный в параметрах конфигурации для текущего экземпляра роли веб-сервера.

"default_domain"
Тип домена: мастер
Тип значения: string
По умолчанию: str_emtpy

Домен, подставляемый автоматически в веб-приложение при отображении окна авторизации.
Если указано пустое значение, то автоматически подставляется единственный рабочий домен первого уровня, либо единственный мастер-домен.
В иных случаях подставляется значение 'defaultDomain' из файла 'defaults.json' (/rest/v1/public/resources/defaults.json).
Иначе поле остается незаполненным.

"email_to_fax"
Тип домена: рабочий
Тип значения: object
По умолчанию:
{
"caller_id": "fax", "caller_name": "fax", "enabled": false
}

Параметры для работы сервиса получения письма по электронной почте и отправки вложения по факсу.
Для работы сервиса необходима роль email.
Сервис подписывается на изменения email/Messages и при создании нового письма выполняет запуск системного служебного сценария svc_email_to_fax, в котором запрашиваются все не отправленные сообщения, по каждому из них выполняется дозвон с запуском ivr сценария ivr_email_to_fax для отправки факса.

При этом письмо должно удовлетворять следующим требованиям:

  • в теме указано fax:number, например - fax:1234567

  • только одно вложение

  • вложение может быть в одном из следующих форматов: bmp, jpeg, pdf, png, svg.

Результат обработки письма будет внесен в поле statusText класса email/Messages, возможные значения:

  • call_error - ошибка дозвона до номера. Считается не успешным, будет повторная попытка отправки.

  • error_bad_email_format - не корректный формат письма. Считается ошибкой, повторной отправки не будет.

  • convert_error - ошибка преобразования вложения в tiff. Считается ошибкой, повторной отправки не будет.

  • send_error - ошибка отправки факса. Считается ошибкой, повторной отправки не будет.

  • sending - запущена отправка факса. Считается успешным, повторной попытки не будет.

  • completed - отправка факса завершена. Считается успешным, повторной попытки не будет.
    все прочие статусы считаются не обработанными.

Доступные свойства email_to_fax:

  • account_id - идентификатор аккаунта (email/Accounts), с которого будут обрабатываться письма.

  • script_user_login - логин пользователя от имени которого будут выполняться запросы к классу email/Messages.

  • caller_id - номер, который будет подставлен при совершении звонка, для отправки факса.

  • caller_name - отображаемое имя (display_name), которое будет подставлено при совершении звонка, для отправки факса.

  • enabled - признак активности сервиса.

Например
{
  "account_id": "6dc58a05-0181-858c-e683-00e04c42bef0",
  "caller_id": "fax",
  "caller_name": "fax",
  "enabled": true,
  "script_user_login": "admin"
}

"ext"
Тип домена: любой
Тип значения: object
По умолчанию: {"a":1}

Произвольные значения, относящиеся к домену целиком, используемые в плагинах и внешних проектных настройках.
Среди прочих:
* default_sipuser_noreg_gates - значения по умолчанию для учетных записей sipuser без регистрации, применяемое в качестве значения поля devices.gates, если учетная запись содержит там пустое значение или пустой список.
* default_provider_srvidxs - значение по умолчанию для учетных записей provider текущего домена, применяемое в качестве значения поля serveridxs, если учетная запись содержит там пустой список.
* block_response_malware - используется в мастер-домене. Значение true или 1 означает блокировку отправки ответов 4xx-6xx на SIP-запросы, содержащие в поле To неизвестные доменные имена.

"fax_to_email"
Тип домена: рабочий
Тип значения: object
По умолчанию: {}

Параметры для работы featurecode fax_to_email.
Доступные свойства:

  • account_id - идентификатор аккаунта (класс email/Accounts), от имени которого будет отправлено письмо.

  • receivers - список email адресов получателей факса.

Например
{
  "receivers": [
    "email1@gmail.com",
    "email2@gmail.com"
  ],
  "account_id": "6dc58a05-0181-858c-e683-00e04c42bef0"
}

"hunt_sipuser_superstate"
Тип домена: рабочий
Тип значения: int
По умолчанию: 0

Выключатель режима связывания состояния 'registered' (зарегистрирован, доступен) учетной записи sipuser с состоянием 'registered' связанной учетной записи пользователя для использования в сервисе личных очередей и хант-групп.

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

Применяется микросервисом 'hunt' при определении состояния доступности ресурса.

"iam_external_svcscript_code"
Тип домена: мастер
Тип значения: str
По умолчанию: str_empty

Код служебного сценария обработки внешней аутентификации.
Указанный сценарий запускается при обработке запросов на /rest/v1/iam/external.
В пределах этого сценария будут работать операции внешней аутентификации в компоненте Операция.

"iam_general_svcscript_code"
Тип домена: мастер
Тип значения: str
По умолчанию: empty

Код служебного сценария, используемого для проведения идентификации пользователя (проверки пароля учетной записи) для всей системы в принудительном порядке.

Параметры:

1 – Домен;
2 – Логин;
3 – Пароль.

Сценарий должен завершаться компонентом СТОП, содержать переменную с именем result и значением 1,0,true,false.
Если по какой то причине сценарий завершается с ошибкой, не завершается корректно, не содержит указанной переменной или для нее не задано корректное значение, то применяется стандартный механизм авторизации пользователя через доменный центр. Это является защитой от сбоев в сценариях во избежании утраты доступа к системе.

Сценарий создан и исполняется в мастер домене. На выполнение сценария выделяется не более 5 секунд.
Если сценарий не задан, то используется стандартный механизм проверки пароля в доменном центре, или служебный сценарий домена, заданный в параметре iam_domain_svcscript_code.

Авторизация под резервной учетной записью мастер-админа производится без запуска сценария.

"iam_domain_svcscript_code"
Тип домена: любой
Тип значения: str
По умолчанию: empty

Код служебного сценария, используемого для проведения идентификации пользователя (проверки пароля учетной записи) для учетных записей домена при условии, что не задан генеральный сценарий идентификации в мастер-домене.

Входные параметры:

1 – Домен;
2 – Логин;
3 – Пароль.

Сценарий должен завершаться компонентом СТОП, содержать переменную с именем result и значением 1,0,true,false.
Если по какой то причине сценарий завершается с ошибкой, не завершается корректно, не содержит указанной переменной или для нее не задано корректное значение, то применяется стандартный механизм авторизации пользователя через доменный центр. Это является защитой от сбоев в сценариях во избежании утраты доступа к системе.

Сценарий создан и исполняется в домене, в который проводится авторизация.
Если сценарий не задан, то используется стандартный механизм проверки пароля в доменном центре.
Если в мастер-домене создан генеральный сценарий идентификации iam_general_svcscript_code, то данный сценарий не применяется.

Авторизация под резервной учетной записью мастер-админа производится без запуска сценария.

"iam_token_svcscript_code"
Тип домена: мастер
Тип значения: str
По умолчанию: empty

Код служебного сценария, используемого для проведения идентификации пользователя при авторизации по внешнему токену.
Сценарий создан и исполняется в мастер домене. На выполнение сценария выделяется не более 15 секунд.

Параметры:

1 – Токен.

Сценарий должен завершаться компонентом СТОП, содержать переменную с именем result и значением 1,0,true,false.
Если авторизация успешна ('result' = 1 или "true"), то должны быть присвоены значения переменным с именами domain и login, и в указанном домене должна существовать учетная запись пользователя с указанным логином.
Сценарий может создать учетную запись во время выполнения на основании проведенной авторизации во внешней системе.

Авторизация с помощью внешнего токена производится запросом:

POST /rest/v1/iam/sessions
Content-Type: application/json

{
  "token": "<TOKEN>"
}

"kafka_mustache"
Тип домена: любой
Тип значения: str | array<object>
По умолчанию: []

Шаблон mustache для вычисления параметров подключения к брокеру сообщений KAFKA.
Задается в виде строки, либо списка JSON-объектов (каждый из которых имеет привязку к конкретному сайту (поле site) и строковое значение (value)).
Результат применения строкового шаблона к JSON-объекту события должен возвращать строковое представление JSON-объекта c полями:

  • "endpoints" – список альтернативных брокеров/точек подключения в виде объектов с ключами host, port.

  • "topic" – топик в адресуемом экземпляре KAFKA.

  • "partition" – числовой номер партишена в топике адресуемого экземпляра KAFKA. Либо название модуля вычисления партишена. Предустановленные модули random и random_by_key. Могут добавляться и указываться другие erlang-модули c функцией partition(Topic::binary(),PartitionCount::integer(),Key::term(),Value::term()) → int(). По умолчанию 0.

  • "key" – ключ по которому вычисляется партишен. По умолчанию str_empty.

  • "mode" – режим размещения записи в KAFKA: sync | async | notify. По умолчанию async.

Например
"{
{{#callevents}}
\"endpoints\" : {{kafka_params.client.callevents_broker_group1}},
\"partition\" : \"{{kafka_params.producer.default_partitioner}}\",
\"topic\": \"{{domain}}_{{class}}\",
\"key\": \"{{data.cid}}\"
{{/callevents}}
}"

или в случае разных настроек для разных сайтов:

[
 {
  "site" : "SITE1",
  "value" : "{
    {{#callevents}}
    \"endpoints\" : {{kafka_params.client.callevents_broker_group1}},
    \"partition\" : \"{{kafka_params.producer.default_partitioner}}\",
    \"topic\": \"{{domain}}_{{class}}\",
    \"key\": \"{{data.cid}}\"
    {{/callevents}}
    }"
  }
]

Событие в KAFKA не отправляется в случаях, если вычисляемый результат не имеет необходимых полей, если для сайта не обнаруживается шаблон ни в домене, ни в мастер-домене.
Значение поля site может быть либо именем сайта, либо регулярным выражением в формате “/reg/…​”.

"kafka_params"
Тип домена: любой
Тип значения: object | array<object>
По умолчанию: []

Объект с параметрами, добавляемыми к JSON-объекту события для построения входного параметра шаблона mustache.
Задается в виде JSON-объекта, либо списка JSON-объектов, каждый из которых имеет привязку к конкретному сайту (поле site) и строковое значение (value).
Вычисленное значение добавляется к JSON-объекту события в поле "CLASSNAME", где CLASSNAME - значение поля "class".
Должен быть состыкован с шаблоном mustache, вычисляемому для того же домена/сайта.

Например
{
 "client": {
  "callevents_broker_group1": [
   {
    "host": "kafka_broker_1",
    "port": 9092
   },
   {
    "host": "192.168.0.136",
    "port": 9092
   }
  ]
 },
 "producer": {
  "default_partitioner": "random_by_key",
  "progressive_partitioner": "random_by_key"
 }
}

или в случае разных настроек для разных сайтов:

[
 {
  "site" : "SITE1",
  "value" : {
    "client": {
     "callevents_broker_group1": [
      {
       "host": "kafka_broker_1",
       "port": 9092
      },
      {
       "host": "192.168.0.136",
       "port": 9092
      }
     ]
    },
    "producer": {
     "default_partitioner": "random_by_key",
     "progressive_partitioner": "random_by_key"
    }
   }
  }
]

Событие в KAFKA не отправляется, если для сайта шаблон не обнаружен ни в домене, ни в мастер-домене.

"licowned"
Тип домена: любой
Тип значения: object
По умолчанию: {}

Состав зарезервированных количественных лицензий для собственных нужд домена.
Быть зарезервированы могут только свободные лицензии домена.
Доступный объем лицензий каждого типа для резервирования в домене определяется как X = Total – Sub, где Total – число переданных лицензий из родительского домена, Sub – число переданных лицензий дочерним доменам.
Зарезервированные лицензии не могут быть выделены дочерним доменам и изъяты родительским доменом.
Невозможно изъять из резервирования тот объем лицензий, которые уже использованы в внутренними сущностями домена.
Подробнее про лицензии.

"meet_config"
Тип домена: мастер
Тип значения: object
По умолчанию:
{
"era" : {
"defaultDomain" : "
}
}

Фрагмент конфигурации сервера meet. В случае изменения произойдет объединение с конфигурацией созданной при запуске роли meet. Позволяет применять изменения в конфигурации meet, которые не требуют перезагрузки сервера.

"meet_use_system_cert"
Тип домена: мастер
Тип значения: boolean
По умолчанию: false

Флаг, в случае установки сертификаты для роли meet для wss и turn будут определяться из значения параметра certificate_pem.
При этом: сертификаты указанные в параметрах роли meet или в meet_cert_pem, meet_turn_cert_pem игнорируются.

Домен для поиска сертификата определяется следующим образом:

  • для wss из domain.settings.meet_config.era.serverAddress или domain.settings.meet_config.era.defaultDomain (если первый не задан)

  • для turn из domain.settings.meet_config.turn.certDomain

"meet_cert_pem"
Тип домена: мастер
Тип значения: str
По умолчанию: str_empty

Содержимое pem-файла сертификата (содержит и приватный ключ, и сертификаты для доменов). При указании сертификат в параметре certdir роли meet игнорируется. Применяется только в случае meet_use_system_cert=false.

"meet_turn_cert_pem"
Тип домена: мастер
Тип значения: str
По умолчанию: str_empty

Содержимое pem-файла сертификата (содержит и приватный ключ, и сертификаты для доменов). При указании сертификат в параметре turn_certdir роли meet игнорируется. Применяется только в случае meet_use_system_cert=false.

"mixed_call_rec_options"
Тип домена: любой
Тип значения: object
По умолчанию:
{
"mode": enabled,
"endpoints" : []
}

Настройки серверов для записи в режиме 'mixed_call'. Является альтернативой записи siprec.
Запись на внешний сервер может быть включена в правилах записи конкретного домена (поле 'mixed_call_rec').
Запись будет осуществлена, если хотя бы для одного из абонентов диалога в его домене будет найдено соответствующее правило, разрешающее запись диалога в режиме 'mixed_call_rec'.

Запись осуществляется посредством одного SIP-вызова на каждый сервер, указанный в поле 'endpoints'. SDP описывает один микшированный стрим.
Если список серверов пустой, то запись будет осуществлена на серверы, указанные в соответствующем поле мастер-домена.
Если ни в домене, ни в мастер-домене серверы не заданы, тогда запись в режиме 'mixed_call_rec' не осуществляется.
Запись не осуществляется также, если в объекте на корневом уровне находится поле "mode" со значением "disabled". По умолчанию - "enabled" (включено).

Поле "mode". Варианты значений:

  • "disabled" - запись в режиме mixed_call_rec для абонентов домена выключена. Запись будет осуществляться только для кросс доменных звонков, если правилами и настройками другого домена она включена.

  • "enabled" - запись в режиме mixed_call_rec разрешена и осуществляется на серверы, указанные в поле 'endpoints' текущего значения (текущего домена). По умолчанию там пустой список, и таким образом настройки серверов определяются в мастер-домене.

  • "master" - настройки серверов определяются в мастер-домене. Для мастер-домена это значение эквивалентно значению "enabled".

Поле "endpoints".
Каждый сервер задается эндпойнтом. Это объект со следующими полями:

  • "enabled" - выключатель. По умолчанию - true (включен).

  • "ip_address" - ip-адрес сервера.

  • "port" - порт сервера.

  • "transport" - транспортный протокол. Допустимые значения "udp", "tcp". По умолчанию: "udp".

  • "to_uri" - логическое имя, подставляемое в заголовок To. Пример: "<sip:srs@somedomain.local>".

  • "from_uri" - логическое имя, подставляемое в заголовок From. Пример: ' "Display" <sip:src@mydomain.local>'.

  • "headers" - объект с дополнительными нестандартными заголовками. Каждый ключ - название заголовка, а его значение - значение заголовка.

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

Вызов на сервер записи осуществляется в течение 5 секунд. Если сервер записи отказал или не ответил, то он исключается из записи, и в лог-файле делается соответствующая запись.

Вызовы 'mixed_call_rec' осуществляются сразу после ответа вызываемого абонента и перевода диалога в активное состояние.
По аналогии со стандартной записью - каждый диалог записывается отдельно, то есть под каждый записываемый диалог формируется отдельный набор вызовов на серверы записи.

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

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

Режим записи 'mixed_call_rec' понижает общую производительность системы, поскольку формирует несколько дополнительных транзакций SIP, а также переключает медиа-контекст в режим конференции, что с необходимостью влечет микширование и транскодинг всех RTP-стримов в обе стороны.

Пример значения:

{
  "mode": "enabled",
  "endpoints": [
    {
      "enabled": true,
      "ip_address": "192.168.0.113",
      "port": 5060,
      "transport": "udp",
      "to_uri": "<sip:rec@somedomain.local>",
      "from_uri": "\"DISPLAY\"<sip:src@mydomain.local>",
      "headers": {
        "X-Test-Header1": "aaa",
        "X-Test-Header2": "bbb"
      }
    }
  ]
}

"mgc_options"
Тип домена: мастер
Тип значения: object
По умолчанию:
{
"test_timeout_deservicе": 3000,
"test_timeout_restart": 60000,
"work_timeout_deservice": 5000
}

Настраиваемые общие опции для микросервисов 'mgc'.

"pgctrl_options"
Тип домена: мастер
Тип значения: object
По умолчанию:
{
"check_interval": 20000,
"failover_timeout": 30000
}

Настраиваемые общие опции для микросервисов 'middleware' в части управления репликацией СУБД postgresql.

"platform_name"
Тип домена: мастер
Тип значения: str
По умолчанию: "COMMUNICATION PLATFORM"

Имя платформы, подставляемое в письма (восстановление паролей, авторегистрация, приглашения и т.д.).

"project_postgresql_connstr"
Тип домена: любой
Тип значения: str
По умолчанию: str_empty

Строка подключения к проектной реляционной БД PostgreSQL текущего домена.
Применяется в сценариях для упрощения настройки компонентов SQL-запрос в сценариях (пункт Проектная).

"redirect_codes"
Тип домена: мастер
Тип значения: array<object>
По умолчанию: []

Список правил сопоставления конкретных SIP-ответов с типами условий применения правил переадресации.
По умолчанию применяются:
"decline"603,
"busy"486,
"timeout"408,
"dnd"404, 480,
"error"0,
"other" – остальные коды.

redirect_allowed_masks
Тип домена: рабочий
Тип значения: array<str>
По умолчанию: ["*"]

Список масок номеров, разрешенных для установки в устройстве в качестве номера переадресации.
Применяется для тех устройств, в собственных настройках которых ('opts.redirect_allowed_masks') среди других присутствует элемент "/default".
Если в устройстве настроена переадресация 3xx на неразрешенный номер - она не обрабатывается сервером. Информация попадает в лог-журнал.

В качестве маски могут использоваться:

  • константы. Например, "414".

  • предустановленная маска "*" - любой номер, отрабатывается эффективно.

  • спец символы. Например "12XX", "8843*".

  • диапазоны. Например "/dia/1240+10".

  • регулярные выражения. Например "/reg/^(7|8)[0-8].*$".

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

"record_asr_options"
Тип домена: мастер
Тип значения: object
По умолчанию: { …​ }

Настройки подключения к сервису автоматического распознавания записанных разговоров. Поддерживается работа по grpc сервиса VOSK (поставляется вместе с системой и может быть установлен на одном из серверов кластера, либо на нескольких серверах).
Все разговоры, подлежащие автоматическому распознаванию после завершения на основи правил распознавания в соответствующих доменах, выстраиваются в очередь и обрабатываются последовательно в установленный интервал времени ежедневно.
Очередь обрабатывается по умолчанию в один поток, если иное не указано в параметре thread_count. При значениях более 6 в расчете на один сервер VOSK скорость распознавания начинает снижаться.

Формат значения
{
  "type" : "vosk",  "servers" : [
     {
       "host" : "...",       "port" : ...
     },     ...
  ],  "thread_count" : ...,  "utc_hours" : [FromHour, ToHour]
}
  • type - может быть только 'vosk'

  • servers - список из параметров подключения к сервисам распознавания.

  • thread_count - количество одновременных потоков обработчиков очереди заданий на распознавание разговоров.

  • utc_hours - список из двух чисел - час начала и час окончания работы с очередью записей разговор. По умолчанию время неограничено.

"self_register_mode"
Тип домена: мастер
Тип значения: str
По умолчанию: disabled

Режим самостоятельной регистрации пользователей.
Варианты значений:

  • disabled - самостоятельная регистрация запрещена.

  • master - самостоятельная регистрация разрешена. Список доменов для выбора в окне регистрации подставляется из настройки мастер-домена 'self_register_domains'.

  • auto - самостоятельная регистрация разрешена. Список доменов для выбора в окне регистрации подставляется на основании автоматического опроса всех доменов и значения настройки 'self_register_allowed'.

"self_register_domains"
Тип домена: мастер
Тип значения: array<str>
По умолчанию: []

Список доменов, поставляемых в рамках запроса rest/v1/public/resources/defaults.json в поле 'selfRegisterDomains'.
Применяется, если 'self_register_mode' имеет значение 'master'.

"self_register_allowed"
Тип домена: рабочий
Тип значения: integer
По умолчанию: 0

Разрешение домена на осуществлениями пользователями самостоятельной регистрации.

"self_register_template"
Тип домена: рабочий
Тип значения: object
По умолчанию:
{
"opts" : {
"roles" : [<<"user">>],
"tags" : [],
"ws_session_limit" : 10,
"allow_script_crud" : false
}
}

Шаблон учетной записи пользователя, дополнением которой формируется учетная запись самостояльно регистрирующегося пользователя.
К шаблону в ходе самостоятельной регистрации добавляются поля: 'id', 'name', 'login', 'pwd', 'opts.email', 'opts.self_registered'.
Все неуказанные свойства заполняются значениями по умолчанию.

"snmp_options"
Тип домена: любой
Тип значения: object
По умолчанию:
{
"community": "public", "enabled": false, "excluded_types": [], "ip": ", "level": "info", "types": ["*"]
}

Настройка SNMP трапов.
Система уведомляет SNMP-трапами версии 2c о событиях определенных типов, возникающих на текущем сайте.
Расположение MIB-файла: ":SYNC/common/snmp/ERA-MIB.mib"

Уведомления отправляются в соответствии с фильтром типов и уровней.
Если тип содержится в поле 'excluded_types', либо поле 'types' не содержит "*" или типа, то событие не отправляется.
Если уровень логирования типа ниже установленного (значение индекса выше), то событие не отправляется.

Уровни логирования:
* emergency (0)
* alert (1)
* critical (2)
* error (3)
* warning (4)
* notice (5)
* info (6)
* debug (7)

Типы событий:
* syslog_up (info; systemAlert) - перезапущен сервис агента syslog.
* node_down (warning; nodeDown) - потеряна связь с нодой, генерируется через 5 секунд после потери связи с ней.
* node_restart (notice; nodeRestart) - нода перезапустилась в течение 5 секунд после потери связи с ней.
* node_up (info; nodeUp) - нода запустилась.
* role_down (critical; roleDown) - роль стала недоступна, генерируется через 10 секунд после потери связи при условии недоступности ни одного экземпляра на сайте.
* server_down (error; serverDown) - потеряна связь с сервером, генерируется через 10 секунд после потери связи с корневой конфигурационной нодой сервера.
* mg_queued (notice; systemAlert) - медиашлюз поставлен в очередь на вывод из обслуживания по причине ошибки или таймаута реакции.
* mg_deserviced (notice; systemAlert) - медиашлюз выведен из обслуживания.
* mg_killed (info; systemAlert) - медиашлюз прибит системой.
* mg_cold_boot (warning; systemAlert) - медиашлюз запустился в режиме холодной загрузки.
* mg_disconnected (warning; systemAlert) - потеряна связь с медиашлюзом, генерируется контроллером через 5 секунд после отключения.
* mg_connected (notice; systemAlert) - медиашлюз присоединился.
* db_connected (info; systemAlert) - постоянное подключение к БД проведено успешно. Роль: доменный центр. В тексте сообщения указывается домен.
* db_connect_error (error; systemAlert) - ошибка подключения к БД. Роль: доменный центр. В тексте сообщения указывается домен.
* db_loaded (info; systemAlert) - загрузка домена из БД успешно завершена. Роль: доменный центр. В тексте сообщения указывается домен.
* db_load_error (error; systemAlert) - загрузка домена из БД завершилась ошибкой. Роль: доменный центр. В тексте сообщения указывается домен.
* backup_done (info; systemAlert) - резервное копирование проведено.
* backup_error (error; systemAlert) - резервное копирование завершилось ошибкой.
* sip_dialog_crashed (warning; systemAlert) - процесс обслуживания SIP диалога завершился с ошибкой. В параметрах CallId плеча инициатора.
* media_unavailable (error; systemAlert) - SIP сервер не смог зарезервировать медиа контекст на медиа-шлюзе. В параметрах CallId плеча инициатора.

Все уведомления успешного завершения операции (syslog_up, db_connected, db_loaded, backup_done) - достаточно переключить уровень логирования в 'notice'.

"siprec_options"
Тип домена: любой
Тип значения: object
По умолчанию:
{
"mode": enabled,
"endpoints" : []
}

Настройки siprec серверов для записи разговоров по RFC-7866 и RFC-7865.
Запись по протоколу siprec на внешние серверы может быть включена в правилах записи конкретного домена (поле 'siprec').
Запись будет осуществлена, если хотя бы для одного из абонентов диалога в его домене будет найдено соответствующее правило, разрешающее запись диалога в siprec.

Запись осуществляется посредством siprec-вызова на все серверы, указанные в поле 'endpoints'. В контенте INVITE-запроса в соответствии с RFC-7866 содержится раздел с SDP и раздел с метаданными вызова. Раздел SDP описывает два стрима - один транслирует медиа-поток абонента A (инициатора диалога), а другой транслирует медиа-поток абонента B (вызванного в диалоге абонента).
Если список серверов пустой, то запись будет осуществлена на серверы, указанные в соответствующем поле мастер-домена.
Если ни в домене, ни в мастер-домене серверы не заданы, тогда siprec-запись не осуществляется.
Запись не осуществляется также, если в объекте на корневом уровне находится поле "mode" со значением "disabled". По умолчанию - "enabled" (включено).

Поле "mode". Варианты значений:

  • "disabled" - запись в siprec для абонентов домена выключена. Запись будет осуществляться только для кросс доменных звонков, если правилами и настройками другого домена она включена.

  • "enabled" - запись в siprec разрешена и осуществляется на серверы, указанные в поле 'endpoints' текущего значения (текущего домена). По умолчанию там пустой список, и таким образом настройки серверов определяются в мастер-домене.

  • "master" - настройки серверов определяются в мастер-домене. Для мастер-домена это значение эквивалентно значению "enabled".

Поле "endpoints".
Каждый сервер задается эндпойнтом. Это объект со следующими полями:

  • "enabled" - выключатель. По умолчанию - true (включен).

  • "ip_address" - ip-адрес siprec-сервера.

  • "port" - порт siprec-сервера.

  • "transport" - транспортный протокол. Допустимые значения "udp", "tcp". По умолчанию: "udp".

  • "to_uri" - логическое имя, подставляемое в заголовок To. Пример: "<sip:srs@somedomain.local>".

  • "from_uri" - логическое имя, подставляемое в заголовок From. Пример: ' "Display" <sip:src@mydomain.local>'.

  • "headers" - объект с дополнительными нестандартными заголовками. Каждый ключ - название заголовка, а его значение - значение заголовка.

Когда в диалоге участвуют абоненты разных доменов, тогда каждый из доменов поставляет собственные настройки (включение записи диалога, список siprec-серверов).
При этом дублирующих вызовов осуществляться не будет.

Вызов на siprec-сервер осуществляется в течение 5 секунд. Если siprec-сервер отказал или не ответил, то он исключается из записи, и в лог-файле делается соответствующая запись.

Метаданные RFC-7865 формируются на основе шаблона, расположенного по пути: "/era_sip/priv/siprec/template.xml".
В шаблоне указаны макросы (пример: "{{some_name}}"), вместо которых подставляются значения конкретного диалога:

  • session_id - идентификатор сессии, генерируется автоматически. Одинаковое значение для всех siprec-серверов.

  • call_id - значение заголовка Call-Id из инициирующего записываемый диалог INVITE-запроса.

  • start_time - время начала записи (генерируется в момент старта записи, но фактически совпадает со временем перехода диалога в активное состояние).

  • a_participant_id - идентификатор абонента A (инициатора диалога), генерируется автоматически.

  • a_aor - логический адрес абонента A, например "sip:user1@some.domain.local".

  • a_dn - номер абонента A, например "414".

  • a_name - полное имя имя абонента A, например "Иван Егоров (414)". Номер для внутренних абонентов добавляется автоматически.

  • b_stream_id - идентификатор голосового стрима от абонента A.

  • b_stream_label - индекс стрима от абонента A для связи с SDP атрибутом "a=label:1".

  • b_participant_id - идентификатор вызываемого абонента, генерируется автоматически.

  • b_aor - логический адрес абонента B, например "sip:79274137274@some.domain.local".

  • b_dn - номер абонента B, например "79274137274".

  • b_name - имя абонента B, например "79274137274".

  • b_stream_id - идентификатор голосового стрима от абонента B.

  • b_stream_label - индекс стрима от абонента B для связи с SDP атрибутом "a=label:1".

Siprec-вызовы осуществляются сразу после ответа вызываемого абонента и перевода диалога в активное состояние.
По аналогии со стандартной записью - каждый диалог записывается отдельно, то есть под каждый записываемый диалог формируется отдельный набор вызовов на siprec-серверы.

Siprec-запись может быть осуществлена только, если специальным образом через конфигурацию не выключена обработка медиа.
Возможна настройка одновременной записи и в обычном режиме средствами платформы, и путем вызовов (в частности siprec) - для этого в правилах записи необходимо включить соответствующие режимы.

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

Режим записи siprec понижает общую производительность системы, поскольку формирует несколько дополнительных транзакций SIP, а также переключает медиа-контекст в режим конференции, что с необходимостью влечет микширование и транскодинг всех RTP-стримов в обе стороны.

Пример значения:

{
  "mode": "enabled",
  "endpoints": [
    {
      "enabled": true,
      "ip_address": "192.168.0.113",
      "port": 5060,
      "transport": "udp",
      "to_uri": "<sip:srs@somedomain.local>",
      "from_uri": "\"DISPLAY\"<sip:src@mydomain.local>",
      "headers": {
        "X-Test-Header1": "aaa",
        "X-Test-Header2": "bbb"
      }
    }
  ]
}

"streamed_call_rec_options"
Тип домена: любой
Тип значения: object
По умолчанию:
{
"mode": enabled,
"endpoints" : []
}

Настройки серверов для записи в режиме 'streamed_calls'. Является альтернативой записи siprec.
Запись на внешние серверы может быть включена в правилах записи конкретного домена (поле 'streamed_call_rec').
Запись будет осуществлена, если хотя бы для одного из абонентов диалога в его домене будет найдено соответствующее правило, разрешающее запись диалога в режиме 'streamed_call_rec'.

Запись осуществляется посредством пары SIP-вызовов на каждый сервер, указанный в поле 'endpoints'. Первый вызов транслирует медиа-поток абонента A (инициатора диалога), второй вызов транслирует медиа-поток абонента B (вызванного в диалоге абонента).
Если список серверов пустой, то запись будет осуществлена на серверы, указанные в соответствующем поле мастер-домена.
Если ни в домене, ни в мастер-домене серверы не заданы, тогда запись в режиме 'streamed_call_rec' не осуществляется.
Запись не осуществляется также, если в объекте на корневом уровне находится поле "mode" со значением "disabled". По умолчанию - "enabled" (включено).

Поле "mode". Варианты значений:

  • "disabled" - запись в режиме streamed_call_rec для абонентов домена выключена. Запись будет осуществляться только для кросс доменных звонков, если правилами и настройками другого домена она включена.

  • "enabled" - запись в режиме streamed_call_rec разрешена и осуществляется на серверы, указанные в поле 'endpoints' текущего значения (текущего домена). По умолчанию там пустой список, и таким образом настройки серверов определяются в мастер-домене.

  • "master" - настройки серверов определяются в мастер-домене. Для мастер-домена это значение эквивалентно значению "enabled".

Поле "endpoints".
Каждый сервер задается эндпойнтом. Это объект со следующими полями:

  • "enabled" - выключатель. По умолчанию - true (включен).

  • "ip_address" - ip-адрес сервера.

  • "port" - порт сервера.

  • "transport" - транспортный протокол. Допустимые значения "udp", "tcp". По умолчанию: "udp".

  • "to_uri" - логическое имя, подставляемое в заголовок To. Пример: "<sip:srs@somedomain.local>".

  • "from_uri" - логическое имя, подставляемое в заголовок From. Пример: ' "Display" <sip:src@mydomain.local>'.

  • "headers" - объект с дополнительными нестандартными заголовками. Каждый ключ - название заголовка, а его значение - значение заголовка.

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

Вызов на сервер записи осуществляется в течение 5 секунд. Если сервер записи отказал или не ответил, то он исключается из записи, и в лог-файле делается соответствующая запись.

Вызовы 'streamed_call_rec' осуществляются сразу после ответа вызываемого абонента и перевода диалога в активное состояние.
По аналогии со стандартной записью - каждый диалог записывается отдельно, то есть под каждый записываемый диалог формируется отдельный набор вызовов на серверы записи.

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

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

Режим записи 'streamed_call_rec' понижает общую производительность системы, поскольку формирует несколько дополнительных транзакций SIP, а также переключает медиа-контекст в режим конференции, что с необходимостью влечет микширование и транскодинг всех RTP-стримов в обе стороны.

Пример значения:

{
  "mode": "enabled",
  "endpoints": [
    {
      "enabled": true,
      "ip_address": "192.168.0.113",
      "port": 5060,
      "transport": "udp",
      "to_uri": "<sip:rec@somedomain.local>",
      "from_uri": "\"DISPLAY\"<sip:src@mydomain.local>",
      "headers": {
        "X-Test-Header1": "aaa",
        "X-Test-Header2": "bbb"
      }
    }
  ]
}

"system_state_options"
Тип домена: мастер
Тип значения: object
По умолчанию:
{
"svc_script_code": ",
"node_startup_sec": 60,
"role_startup_sec": 60,
"mq_len_pid_threshold": 200,
"mq_len_total_threshold": 500,
"mem_available_mb_threshold" : 200,
"mem_used_percent_threshold" : 80,
"disk_space_work_free_mb_threshold" : 5120,
"disk_space_total_mb" : 20480,
"disk_space_free_coeff_threshold" : 5,
"disk_space_low_limit_mb" : 5120,
"disk_space_high_limit_mb" : 20480,
"disk_inodes_total" : 1310720,
"disk_inodes_free_coeff_threshold" : 3,
"disk_inodes_low_limit" : 327680,
"disk_inodes_high_limit" : 1310720
}

Опции операции самодиагностики system_state, определяющих значения и пороги попадания данных в предупреждения.

  • svc_script_code - Код служебного сценария, исполняемого во время операции system_state. При наличии сценария на его выполнение отводится не более 5 секунд.
    Ожидается, что сценарий вернет строковую переменную 'result'. Если ее значение непустое, то оно попадает в предупреждения 'system/state'. Причина внепланового завершения сценария также попадает в предупреждения.

  • node_startup_sec - Интервал предупреждения о перезапуске ноды, секунды. По умолчанию 60.

  • role_startup_sec - Интервал предупреждения о перезапуске приложения микросервиса, секунды. По умолчанию 60.

  • mq_len_pid_threshold - Предельно допустимое количество необработанных сообщений в очередях процессов. По умолчанию 200.

  • mq_len_total_threshold - Предельно допустимое суммарное количество необработанных сообщений в очередях всех процессов. По умолчанию 500.

  • mem_available_mb_threshold - Предельный минимальный размер доступного объема оперативной памяти (free + buffers + caches), мегабайты. По умолчанию 200.

  • mem_used_percent_threshold - Предельный максимальный процент занятой памяти (allocated - buffers - caches). По умолчанию 80.

  • disk_space_work_free_mb_threshold - Предельный минимально допустимый объем свободного места на рабочем диске, мегабайты. По умолчанию 5120 (5 ГБ). Этим значением можно увеличить этот порог по сравнению с общим параметром, применяемым ко всем доступным дискам.

  • disk_space_total_mb - Минимальный размер диска, при котором он попадает на анализ свободного места, мегабайты. По умолчанию 20480 (20 ГБ).

  • disk_space_free_coeff_threshold - Коэффициент динамического вычисления порога минимально допустимого размера свободного места на диске относительно его полного размера. По умолчанию 5.

  • disk_space_low_limit_mb - Нижнее предельное значение порога свободного места на диске, ниже которого порог не опускается, мегабайты. По умолчанию 5120 (5 ГБ).

  • disk_space_high_limit_mb - Верхнее предельное значение порога свободного места на диске, выше которого порог не поднимается, мегабайты. По умолчанию 20480 (20 ГБ).

  • disk_inodes_total - Минимальное количество inodes на диске, при котором он попадает на анализ свободных доступных inodes. По умолчанию 1310720 (эквивалентно 20 ГБ при стандартной разметке - 4 блока по 4096 байтов на 1 inode).

  • disk_inodes_free_coeff_threshold - Коэффициент динамического вычисления порога количества свободно доступных inodes на диске относительно полного количества на диске. По умолчанию 3.

  • disk_inodes_low_limit - Нижнее предельное значение порога свободно доступных inodes на диске, ниже которого порог не опускается. По умолчанию 327680 (эквивалентно 5 ГБ при стандартной разметке - 4 блока по 4096 байтов на 1 inode).

  • disk_inodes_high_limit - Верхнее предельное значение порога свободно доступных inodes на диске, выше которого порог не поднимается. По умолчанию 1310720 (эквивалентно 20 ГБ при стандартной разметке - 4 блока по 4096 байтов на 1 inode).

"telegram_bot_token"
Тип домена: мастер
Тип значения: str
По умолчанию: "master_only"

Токен телеграм-бота для удаленного взаимодействия администратора с системой и мониторинга состояния.

Алгоритм подключения:
1. Создать нового бота через Telegram BotFather (команда /newbot).
2. Внести выданный токен в качестве значения параметра 'telegram_bot_token' настроек мастер-домена.
3. Настроить нового бота через Telegram BotFather. Задать имя (команда /setname), иконку (команда /setuserpic), а также контекстное меню (команда /setcommands).
4. Обнаружить новый бот в списке пользователей Telegram.
5. Проверить доступность нового бота, отправив ему команду /ping (опционально /test, /testfile, /echo Some Text)
6. Подключиться к новому боту командой /start AdminLogin:AdminPwd, указав актуальные логин и пароль действующего администратора мастер-домена.
7. Проверить подключение, отправив новому боту команду /system_state.

Поддерживаемое контекстное меню, которое может быть задано командой /setcommands):

start - Connect to service
stop - Disconnect from service
ping - Ping service
test - Test reply message
testfile - Test reply as file
echo - Echo message back
sendtoall - Forward message to all connected users
disable_subscription - Disable automatic events
pause_subscription - Pause automatic events until state is not clear
enable_subscription - Enable automatic events
set_silent_mode - Make notifications silent
reset_silent_mode - Make notifications not silent
system_state - Get system state

После подключения к боту:
* Ежедневно в период 5 минут с 8:00 бот отправляет всем подключенным к нему пользователям Telegram сообщение 'Report: service alive'.
* При перезагрузке системы (после загрузки микросервиса mware) отправляет сообщение 'ACHTUNG! Service reloaded!'.
* При обнаружении сбоя или предупреждения, зафиксированного сервисом system_state, отправляет файл с содержимым system_state (не чаще чем 1 раз в 5 минут).
* После нейтрализации сбоя или предупреждения, зафиксированного на предыдущей итерации, отправляет сообщение 'Report: system state ok!'.
* В любое время можно опросить текущее состояние system_state. При наличии предупреждений будет возвращаться файл, при отсутствии - сообщение 'system state ok!'
* Допускается отключение подписки (/disable_subscription) - никакие уведомления не будут поступать, последующее включение (/enable_subscription), а также пауза с автоматическим включением после устранения всех предупреждений system_state (/pause_subscription).
* Допускается управление тихим режимом (/set_silent_mode, /reset_silent_mode) - уведомления будут поступать в беззвучном режиме.
* Допускается отправлять сообщения всем подключенным к боту пользователям Telegram (/sendtoall Some Text).

ВНИМАНИЕ! После полной переустановки системы (в новые docker-контейнеры) и подключения к существующей БД необходимо заново подключиться к боту (/start AdminLogin:AdminPwd).

"user_copy_mode"
Тип домена: мастер
Тип значения: str
По умолчанию: "master_only"

Глобальный режим клонирования пользователей между доменами.
Для пользователя в мастер-домене может быть задан список шаблонов имен дочерних доменов произвольного уровня для автоматического клонирования пользователя при каждом изменении в мастер-домене (свойство 'opts.copy_to_domains').
Такие пользователи могут переключаться в клиентском приложении между доменами без ввода пароля путем изменения настроек сессии.

Операция клонирования производится на мастер-сайте. Соответственно, применение настроек на других сайтах осуществляется в течение 20 секунд (период синхронизации настроек доменов между сайтами).

Параметром выставляется режим обратной синхронизации при изменениях (или удалении) пользователей в дочерних доменах.
Условием является наличие в мастер-домене пользователя с тем же идентификатором, что и изменяемый в дочернем домене, и попадание имени домена под шаблон, установленный для пользователя в мастер-домене в свойстве 'opts.copy_to_domains'.

  • master_only – изменение и удаление таких пользователей в дочерних доменах запрещено.

  • sync_oneway – при изменении свойств пользователя или его удалении в дочернем домене результат применяется только в этом конкретном домене вплоть до следующей изменения свойств пользователя в мастер-домене.

  • sync_bothway – при изменении свойств пользователя в дочернем домене операция дублируется в мастер-домен, откуда в соответствии с шаблонами имен дочерних доменов распространяется на другие дочерние домены. В дочернем домене запрещено изменять логин, пароль, добавлять или удалять роль 'admin', а также удалять пользователя.

  • sync_bothway_accumulate_roles – в дополнение к 'sync_bothway' производит накопление ролей. Отличие поведения в невозможности удалить роли у клонируемого пользователя в дочернем домене. Как следствие добавление в разных дочерних доменах разных ролей приводит к их объединению.

В режимах 'master_only' и 'sync_bothway' дополнительно производится регулярная (раз в сутки) синхронизация свойств клонируемых пользователей из мастера в дочерние домены.

"user_pwd_policy"
Тип домена: мастер
Тип значения: object
По умолчанию:
{
"description": "Expected symbols: [A-Za-z0-9_-.~!]. At least 1 capital letter, 1 small letter, 1 digit, 1 special symbol should be used. Total length should be 6-20 symbols.", "regex_patterns": [
"[A-Z]", "[a-z]", "[\\d]", "[-_.~!]", "^.{6,20}$"
]
}

Глобальная политика обеспечения сложности паролей пользователей.
Применяется всякий раз при изменении пользовательского пароля. Заданный пароль проверяется на соответствие всем указанным регулярным выражениям в списке regex_patterns.
При обнаружении несоответствия в качестве ошибки возвращается текст из поля description.

Вне зависимости от установленной политики допускаются только пароли длиной менее 100 символов, состоящие из символов A-Za-z0-9_-.~!.

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

"worktime_mode"
Тип домена: любой
Тип значения: int
По умолчанию: 0

Источник рабочего расписания (недельный график и состав выходных и рабочих дней).
0 – стандартные настройки;
1 – настройки текущего домена;
2 – наследовать из родительского домена.

"worktime_periods"
Тип домена: любой
Тип значения: array<object>
По умолчанию: []

Недельный график рабочего времени.
Каждый элемент списка охватывает определенный отрезок внутри недели: от времени в конкретный день недели до времени в другой конкретный день недели.
На основе совокупности этих отрезков формируется общее расписание.
Элемент списка недельного расписания.

"yandex_cloud"
Тип домена: рабочий
Тип значения: object
По умолчанию: { …​ }

Параметры подключения к Yandex Cloud.
* speech - параметры авторизации на сервисе Yandex Cloud SpeechKit. Для корректной работы должны быть заполнены 'apiKey' и опционально 'folderId'.
* storage - параметры подключения к хранилищу S3. Для корректной работы должны быть заполнены параметры: 'bucket', 'keyId', 'secretKey'.
* accounts - объект, позволяющий задать настройки для работы с различными аккаунтами яндекса и получить выбор аккаунта при настройке в сценарии. Каждый ключ - код аккаунта, отображается в сценарии. Каждый объект внутри содержит вышеуказанные ключи 'speech' и 'storage'.

Корневые значения 'speech' и 'storage' относятся к аккаунту 'default', который задается компоненту по умолчанию.
Таким образом, при использовании лишь одного аккаунта для домена, задавать поле 'accounts' не требуется.

Ключи настроек хранилищ

Table 3. Ключи настроек хранилищ
Поле Тип хранилища Описание

bucket

s3

Обязательное поле. Название бакета.

key

s3

Обязательное поле. Public-Key.

secret

s3

Обязательное поле. Secret-Key.

region

s3

Регион AWS S3 Cloud для автоматического определения endpoint.

endpoint

s3

Нестандартный endpoint для подключения, альтернативный автоматическому определению на основе region

prefix

s3

Путь размещения в бакете.

host

clickhouse

Обязательное поле. IP-адрес точки доступа.

login

clickhouse

Обязательное поле. Логин.

password

clickhouse

Обязательное поле. Пароль.

port

clickhouse

Нестандартный порт точки доступа, отличный от 8123.

database

clickhouse

Нестандартное имя базы данных, отличное от "default".

Элемент списка недельного расписания

Table 4. Элемент списка недельного расписания
Поле Значение Описание

daystart

17

День недели начала отрезка (1 – пн, 7 – вс)

daystop

17

День недели конца отрезка (1 – пн, 7 – вс)

timestart

01440

Время начала отрезка внутри дня в минутах

timestop

01440

Время конца отрезка внутри дня в минутах

Ключи настроек телефонных оповещений по умолчанию

Table 5. Ключи настроек телефонных оповещений по умолчанию
Поле По умолчанию Описание

attemptcount

1

Максимальное количество попыток на одного абонента

attempttimeoutsec

10

Пауза после неудачого вызова абонента в секундах

callerid

"100"

Номер/username инициатора при вызове абонентов (SIP)

calltimeout

30

Таймаут вызова абонента

trunkcount

1

Максимальное количество транков для оповещения

См. также

Логические роли

  • mdc и sdc хранят и выдают настройки домена процессам, а также наследует настройки родительского домена.