Настройка домена (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.

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

Режим выбора имени модельной БД postgresql в автоматическом режиме (если конкретное подключение не указано в хранилищах, а выбран режим 'auto')
Возможные значения:

  • default - Выбор режима исходя из установленного в мастер-домене значения поля [auto_model_db_mode_default].

  • separated - Рядом с основной БД домена создается дополнительная БД.

  • embedded - Схемы модельной БД размещаются в основной БД домена.

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

Режим выбора имени модельной БД postgresql в автоматическом режиме для всех доменов, где режим не переопределен параметром [auto_model_db_mode].
Используется для того, чтобы при создании домена не создавалась поспешно дополнительная БД, если необходимо сократить количество баз данных на сервере БД при большом количестве ненагруженных доменов.

Возможные значения:

  • separated - Рядом с основной БД домена создается дополнительная БД.

  • embedded - Схемы модельной БД размещаются в основной БД домена.

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

Параметры подключения к Azure.

  • speech - параметры подключения и авторизации на сервисе Azure Speech. Для корректной работы должно быть заполнено поле 'apiKey' и 'region'.

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

Объект speech поставляет данные для подключения к сервису SpeechKit Яндекс-облака:

  • apiKey - авторизационный API-ключ (SubscriptionId). Специально создается для подключения к сервису Speech облака Azure.

  • uri_asr_short - Необязательный параметр. URI для подключения к сервису распознавания коротких аудио облака Azure. По умолчанию: 'https://%REGION%.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1'.

  • uri_tts - Необязательный параметр. URI для подключения к сервису синтеза речи облака Azure. По умолчанию: 'https://%REGION%.tts.speech.microsoft.com/cognitiveservices/v1'.

  • region - параметр необходим, если не используется uri_asr_short. Значение региона подставляется в макрос %REGION%.

Пример 1
{
 "speech" : {
  "apiKey" : "6nBS8zU7WzGg2VYspx2Ag5G9eavE3eTNV5ByH7",
  "region": "northeurope"
 }
}
Пример 2
{
 "accounts" : [{
   "My Account B" : {
    "speech" : {
     "uri_asr_short" : "https://northeurope.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1",
     "apiKey" : "6nBS8zU7WzGg2VYspx2Ag5G9eavE3eTNN3ByH7"
    }
   },

   "My Account C" : ...,

   ...
  }
 ]
}

Можно задавать одновременно, тогда в списке будут и настройки аккаунта 'default', и настройки указанных в списке аккаунтов.

"billing_options"
Тип домена: мастер
По умолчанию:
{
"enabled": true,
"protocol": "radius",
"sipcode": 403,
"statusline": "Forbidden",
"reason": "Insufficient funds",
"radius": {
"access_servers": [
"192.168.0.112:2813",
"172.27.1.112:2813"
],
"accounting_servers": [
"192.168.0.112:2812",
"172.27.1.112:2812"
],
"attempt_count": 3,
"failover_mode": "restrict",
"interim_update_int1erval_ms": 60000,
"request_timeout_ms": 1000,
"secret": "asdfghjkl",
"select_mode": "leader",
"selected_retransmit_count": 2
}
}

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

Биллинг применяется к плечам вызовов, устанавливаемых с провайдерами (upstream), в учетных записях которых включена соответствующая опция.
В качестве номеров Caller-Id и Called-Id принимаются номера из внешнего номерного плана.

Поддерживается протокол RADIUS (RFC-2865, RFC-2866, RFC-2869, RFC-6929).

Последовательность обращений к системе биллинга в рамках обслуживания одного диалога:

  1. Перед инициацией форк-плеча осуществляется запрос access.

  2. После ответа осуществляется запрос accounting:start.

  3. Периодически во время активного диалога осуществляется запрос accounting:interim_update.

  4. При разрыве диалога осуществляется запрос accounting:stop.

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

При взаимодействии с системой биллинга на основании ее ответов может быть уменьшено время, отведенное на диалог.

Поля объекта:

  • enabled - Глобальный выключатель биллинга. По умолчанию false.

  • protocol - Выбор протокола. Возможные значения: 'radius'.

  • sipcode - Код SIP для сообщения об отказе в случае запрета вызова внешней системой биллинга. По умолчанию 403.

  • statusline - Строка SIP-ответа для сообщения об отказе в случае запрета вызова внешней системой биллинга. По умолчанию 'Forbidden'

  • reason - Строка причины для заголовка Reason сообщения об отказе в случае запрета вызова внешней системой биллинга.

  • radius - Опции подключения к системе биллинга по протоколу RADIUS.

Опции подключения к RADIUS:

  • access_servers - Список точек подключения к системе биллинга (адрес:порт). Используется для отправки запросов Access.

  • accounting_servers - Список точек подключения к системе биллинга (адрес:порт). Используется для отправки запросов Accounting (start, stop, interim_update).

  • attempt_count - Количество попыток переотправки запроса. Используется в случае отсутствия ответа за установленный интервал времени. По умолчанию 3.

  • request_timeout_ms - Таймаут ожидания ответа на отправленный запрос. По умолчанию 1000.

  • failover_mode - Режим работы в случае отсутствия ответов от системы биллинга. Варианты: 'permit' - продолжить вызов, 'restrict' - заблокировать вызов. По умолчанию 'restrict'.

  • select_mode - Режим выбора точки подключения. Варианты: 'leader' - в порядке приоритета, 'random' - случайным образом. Рассчитывается в каждом диалоге независимо. По умолчанию 'leader'.

  • selected_retransmit_count - Количество попыток переотправки запроса на ранее выбранную точку подключения перед тем, как выбрать следующую. По умолчанию 2.

  • interim_update_interval - Период отправки запроса accounting:interim_update, секунды. По умолчанию 60.

  • disable_authenticator_check - Выключатель проверки поля Authenticator в ответах RADIUS-сервера.

  • secret - Секретная строка для шифрования значений.

  • password - Пароль.

"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".

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

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

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

Значение 1 означает блокировку отправки ответов 4xx-6xx на SIP-запросы, содержащие в поле To неизвестные доменные имена.
Применяется в микросервисах, обрабатывающих SIP-сигнализацию: sg, esg, b2b, ivr, conf, prompt..

"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).
Иначе поле остается незаполненным.

"disabled_plugins"
Тип домена: мастер
Тип значения: object
По умолчанию:
{
"events": []
}

Позволяет выключить часть встроенных плагинов в целях экономии ресурсов.
Например, выключить обработку CDR событий в целях подготовки событий CTI (grpc). Для этого в списке 'events' необходимо перечислить отключаемые. "cti".

"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, если учетная запись содержит там пустой список.

"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"
}

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

DNS-имя, обращение по которому маршрутизируется на веб-сервер установленной системы.
Используется в случае, если на веб-серверах отключен xref:configuration:roles/ws.adoc#ports_mode обработки http запросов.
Применяется:

  • при формировании URL точек доступа для микросервисов продуктового слоя.

  • при переадресации вебсервером с http на https в режиме https+redir, если обращение по http производится по URL с IP-адресом сервера.

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

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

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

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

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

"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 секунд.

В частности этот сценарий применяется в качестве сценария связывания при авторизации через OAuth, если сущность провайдера OAuth задан режим login_mode = script.

Параметры:

1 – Токен. Если используется в качестве сценария связывания при авторизации через OAuth, то это идентификатор запроса.
2 - Для OAuth-связывания это сущность провайдера авторизации.
3 - Для OAuth-связывания это сущность запроса авторизации.
4 - Для OAuth-связывания это "адрес:порт" пира.

Сценарий должен завершаться компонентом СТОП, содержать переменную с именем 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 – число переданных лицензий дочерним доменам.
Зарезервированные лицензии не могут быть выделены дочерним доменам и изъяты родительским доменом.
Невозможно изъять из резервирования тот объем лицензий, которые уже использованы в внутренними сущностями домена.
Подробнее про лицензии.

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

Объект, содержащий различные ограничения, установленные для домена.
Доступны следующие параметры:

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

  • max_call_duration_sec - максимально допустимая длительность телефонного разговора. Значение в пределах 10 - 7200. По умолчанию 7200.

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

  • script_pause_between_components - Пауза в миллисекундах между всеми компонентами всех сценариев. Приводит к общему замедлению работы сценариев и понижению нагрузки на систему. По умолчанию: 0 (отсутстует).

  • script_limit_component_count - Ограничение на количество исполненных компонентов в одном обработчике сценариев. Включает также все вложенные сценарии. При превышени лимита сценарий завершается, управление передается на ветку пост-обработки с типом "превышен лимит". По умолчанию: -1 (не ограничено).

  • script_duration_sec - Ограничение на время исполнения обработчика сценариев в секундах. Включает также все вложенные сценарии. По умолчанию: -1 (не ограничено).

  • script_limit_site_count - (не применяется) Ограничение на количество обработчиков сценариев, одновременное исполняемых на одном сайте. По умолчанию: -1 (не ограничено).

  • script_allow_global_variables - (не применяется) Ограничение на использование глобальных переменных. По умолчанию: true (разрешено).

"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" - объект с дополнительными нестандартными заголовками. Каждый ключ - название заголовка, а его значение - значение заголовка.

  • "audio_formats" - список предлагаемых INVITE-запросом кодеков из числа поддерживаемых платформой. Возможные кодеки и состав по умолчанию определяется параметром payloads_audio_offer в параметрах роли b2b в конфигурации.

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

Вызов на сервер записи осуществляется в течение 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>",
      "audio_formats": ["PCMA/8000"],
      "headers": {
        "X-Test-Header1": "aaa",
        "X-Test-Header2": "bbb"
      }
    }
  ]
}

"mgc_options"
Тип домена: мастер
Тип значения: object
По умолчанию:
{
"regular_deservice": {
"enabled": true,
"work_duration_in_hours": 12,
"allowed_week_days": [1,2,3,4,5,6,7],
"allowed_daily_hours": [0,1,2,3,4,5,22,23]
},
"self_testing": {
"enabled": true,
"interval_minutes": 1,
"timeout_deservice": 3000,
"timeout_restart": 60000
},
"timeout_deservice": 5000
}

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

  • regular_deservice - раздел настройки параметров регулярного профилактического вывода медиашлюзов из обслуживания.

    • 'enabled' - выключатель режима. По умолчанию true - включен.

    • 'work_duration_in_hours' - минимальное время активной работы в часах до принятия решения о профилактическом выводе из обслуживания. От 1 до 744 часов. По умолчанию 12 часов.

    • 'allowed_week_days' - список дней недели, в которые разрешен профилактический вывод из обслуживания. Пустой список эквивалентен всем дням недели. По умолчанию - все дни недели.

    • 'allowed_daily_hours' - список часов дня, в которые разрешен профилактический вывод из обслуживания. Пустой список эквивалентен всем часам дня. По умолчанию - ночью с 22 до 5 часов.

  • self_testing - раздел настройки параметров автоматической диагностики медиашлюзов.

    • 'enabled' - выключатель режима. По умолчанию true - включен.

    • 'interval_minutes' - интервал диагностики в минутах. От 1 до 30 минут. По умолчанию 1 минута.

    • 'timeout_deservice' - таймаут ожидания ответа на тестовый запрос для принятия решения о принудительном выводе из обслуживания. От 1000 до 30000 мс. По умолчанию 3000 мс.

    • 'timeout_restart' - таймаут ожидания ответа на тестовый запрос для принятия решения о принудительном внеочередном перезапуске медиашлюза. От 'timeout_deservice' до 120000 мс. По умолчанию 60000 мс.

  • timeout_deservice - предельно допустимое время выполнения запроса к медиашлюзу в миллисекундах, по истечении которого принимается решение о принудительном выводе медиашлюза из обслуживания (ожидает завершения всех разговоров и не принимается за обслуживание новых). От 1000 до 60000 мс. По умолчанию 5000 миллисекунд.

Любое некорректное значение приводит к применению соответствующего значения по умолчанию.

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

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

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

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

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

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

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

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

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

Код файлового хранилища текущего домена (поле 'instance') для размещения записей разговоров в домене.
Используется по умолчанию, если иной код не указан в применяемом правиле записи. См. описание свойства 'storagekey' правила записи.

"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'.
Все неуказанные свойства заполняются значениями по умолчанию.

"serviced_domains"
Тип домена: мастер
Тип значения: object
По умолчанию:
{
"ap": [""],
"broker": ["
"],
"dms": [""],
"email": ["
"],
"huntq": [""],
"im": ["
"],
"msvc": [""],
"resv": ["
"],
"vmail": ["*"]
}

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

В списке доменов указываются полные имена доменов всего доменного дерева.
Если для микросервиса не задано значение, либо в списке доменов присутствует "*", то фильтр не применяется.

Даже если доменное дерево разделено на несколько экземпляров микросервисов, фильтр у них общий.

"snmp_options"
Тип домена: мастер
Тип значения: object
По умолчанию:
{
"enabled": false,
"community": "public",
"ip": ",
"level": "info",
"types": ["*"],
"excluded_types": [],
"system_state_interval_min": 5,
"system_state_excluded_keys": [],
"rate_interval_min": 1
}

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

'ip' и 'community' определяют узел мониторинга, куда отправляются трапы.
'enabled' - выключатель механизма отправки трапов.

Уведомления отправляются в соответствии с фильтром типов и уровней. Событие не отправляется, если:

  • тип события содержится содержится в поле 'excluded_types';

  • поле 'types' не содержит "*" или типа события;

  • уровень логирования типа ниже установленного (значение индекса выше).

Уровни логирования - 'level':

  • emergency (0)

  • alert (1)

  • critical (2)

  • error (3)

  • warning (4)

  • notice (5)

  • info (6)

  • debug (7)

Типы событий - 'types', 'excluded_types' (в скобках - уровень логирования и тип события из MIB):

  • 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; mgAlert) - медиашлюз поставлен в очередь на вывод из обслуживания по причине ошибки или таймаута реакции.

  • mg_deserviced (notice; mgAlert) - медиашлюз выведен из обслуживания.

  • mg_killed (info; mgAlert) - медиашлюз прибит системой.

  • mg_cold_boot (warning; mgAlert) - медиашлюз запустился в режиме холодной загрузки.

  • mg_disconnected (warning; mgAlert) - потеряна связь с медиашлюзом, генерируется контроллером через 5 секунд после отключения.

  • mg_connected (notice; mgAlert) - медиашлюз присоединился.

  • db_connected (info; dbAlert) - постоянное подключение к БД проведено успешно. Роль: доменный центр. В тексте сообщения указывается домен.

  • db_connect_error (error; dbAlert) - ошибка подключения к БД. Роль: доменный центр. В тексте сообщения указывается домен.

  • db_loaded (info; dbAlert) - загрузка домена из БД успешно завершена. Роль: доменный центр. В тексте сообщения указывается домен.

  • db_load_error (error; dbAlert) - загрузка домена из БД завершилась ошибкой. Роль: доменный центр. В тексте сообщения указывается домен.

  • backup_done (info; backupAlert) - резервное копирование проведено.

  • backup_error (alert; backupAlert) - резервное копирование завершилось ошибкой.

  • admin_logon_local (notice; auditAlert) - произведен логин из под учетной записи администратора (пользователя с ролями 'admin' и/или 'crud') с локальной проверкой пароля (без использования внешней авторизации), создана новая http или websocket сессия, либо выполнен единичный запрос. Передаются domain, login, peer.

  • user_logon_local_restricted (notice; auditAlert) - зафиксирована попытка авторизации по причине указания неверного пароля при локальной проверке (без использования внешней авторизации). Передаются domain, login, peer.

  • sip_dialog_crashed (warning; systemAlert) - процесс обслуживания SIP диалога завершился с ошибкой. В параметрах CallId плеча инициатора.

  • media_unavailable (error; systemAlert) - SIP сервер не смог зарезервировать медиа контекст на медиа-шлюзе. В параметрах CallId плеча инициатора.

  • system_state (info | alert | emergency; healthInfo) - регулярное сообщение (раз в 5 минут, если не настроено иное) с результатом самодиагностики системы (/api/monitor/v1/system/state). 'key': 'status', 'value': 'ok', 'alert', 'error'. При уведомлении 'alert' в поле 'message' содержится список ключей из результата самодиагностики. Список анализируемых ключей можно сократить, указав в опциях дополнительный ключ 'system_state_excluded_keys' со списком ключей, чьи значения не анализируются при определении типа сообщения ('ok' или 'alert').

  • certificate_expires (warning | critical; certificateExpiresAlert) - уведомление об истечении срока действия сертификата SSL/TLS. Генерируется для каждого сертификата, срок действия которого истек или истекает в ближайшие 2 недели. Генерируется не чаще 1 раза в сутки в период между 08:00 и 10:00 по UTC. Поле 'message' содержит текст уведомления, поля 'key' и 'value' указывают на сам сертификат - доменный или конфигурационный, а также домен или путь.

  • sip_provider_state_changed (info; sipProviderAlert) - уведомление об изменении состояния подключения к провайдеру телефонии. Генерируется на основе результатов регистрации/перерегистрации и пинга. Возможные значения: 'available', 'unavailable', 'unknown'.

  • sip_providers_available (info; rateInfo) - регулярное сообщение (раз в минуту), сообщающее общее количество активных (подключенных) провайдеров телефонии. В сумму попадают успешно зарегистрированные учетные записи с успешно проведенным пингом, а также учетные записи без регистрации и без настроенного пинга.

  • sip_cps_rate (info; rateInfo) - регулярное сообщение (раз в минуту), сообщающее среднее значение cps, округленное в меньшую сторону до целого числа. Учитываются раздельно все вызовы, проходящие через B2B, кроме инициированных служебными сервисами.

  • sip_route_fin_rate (info; rateInfo) - регулярное сообщение (раз в минуту), сообщающее среднее количество неуспешных попыток маршрутизации вызовов в минуту. Включает все вызовы, поступившие на B2B, завершившиеся на этапе маршрутизации.

  • sip_devices_registered (info; rateInfo) - регулярное сообщение (раз в минуту), сообщающее текущее количество всех зарегистрированных SIP-устройств во всех доменах без группировки по учетным записям.

  • users_registered (info; rateInfo) - регулярное сообщение (раз в минуту), сообщающее текущее количество подключенных пользователей (активно websocket подключение к вебсерверу) во всех доменах с группировкой по учетным записям.

Прочие параметры:

  • 'system_state_interval_min' - задает в минутах интервал отправки трапа healthInfo (system_state). По умолчанию 5.

  • 'system_state_excluded_keys' - устанавливает режим фильтрации для тестов healthInfo. Указанные в списке тесты будут проводиться, но не будут влиять на принятие решения о типе сигнала.

  • 'rate_interval_min' - задает в минутах интервал отправки всех потоковых событий трапа rateInfo. По умолчанию 1.

"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" - объект с дополнительными нестандартными заголовками. Каждый ключ - название заголовка, а его значение - значение заголовка.

  • "audio_formats" - список предлагаемых INVITE-запросом кодеков из числа поддерживаемых платформой. Возможные кодеки и состав по умолчанию определяется параметром payloads_audio_offer в параметрах роли b2b в конфигурации.

Когда в диалоге участвуют абоненты разных доменов, тогда каждый из доменов поставляет собственные настройки (включение записи диалога, список 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>",
      "audio_formats": ["PCMA/8000"],
      "headers": {
        "X-Test-Header1": "aaa",
        "X-Test-Header2": "bbb"
      }
    }
  ]
}

"speech_analytics_options"
Тип домена: мастер
Тип значения: object
По умолчанию:
{
"mode": "summary",
"silence-threshold": 40,
"silence-duration": 800,
"voice-duration": 200,
"interrupt-offset": 1000,
"interrupt-duration": 1000
}

Настройка режима speech_analytics для записанных телефонных разговоров средствами медиагейта.

Результат расчета речевой аналитики размещается в поле speechinfo события callevents.call_rec_links, а также транслируются в событие ccsevents.connection_set_record_info.

Аналитика для каждого из каналов включает процент владения эфиром (activity_percent), суммарную продолжительность владения эфиром (activity_duration_ms), количество реплик разорванных паузами (activity_fragments), а также общую информацию о перебиваниях оппонента (interrupt _count, _ms, _percent).
При выборе детального режима (mode=detailed) доступны также списки фрагментов владения эфиром и перебиваний с привязкой по времени.

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

Расчет речевой аналитики активируется правилом записи соответствующего домена, примененного к звонку.

Возможные варианты значений ключей:

  • mode: summary | detailed. По умолчанию summary. В режиме detailed появляется еще один раздел 'details' с перечислением обнаруженных фрагментов речи.

  • silence-threshold - порог тишины/голоса в дб. По умолчанию 40.

  • silence-duration - минимальная продолжительность тишины в мс. По умолчанию 100.

  • voice-duration - минимальная продолжительность голоса в мс. По умолчанию 100.

  • interrupt-offset - минимальное смещение перебивания в мс. По умолчанию 1000.

  • interrupt-duration - минимальная продолжительность перебивания в мс. Фактически продолжительность наложения (пересечение) двух участков. По умолчанию 1000.

"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" - объект с дополнительными нестандартными заголовками. Каждый ключ - название заголовка, а его значение - значение заголовка.

  • "audio_formats" - список предлагаемых INVITE-запросом кодеков из числа поддерживаемых платформой. Возможные кодеки и состав по умолчанию определяется параметром payloads_audio_offer в параметрах роли b2b в конфигурации.

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

Вызов на сервер записи осуществляется в течение 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>",
      "audio_formats": ["PCMA/8000"],
      "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>
По умолчанию: []

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

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

Параметры подключения к Sber Salute.

  • speech - параметры авторизации на сервисе Sber Salute. Для корректной работы содержит элемент 'endpoints', где в качестве значения массив объектов, каждый из которых представляет точку подключения (должны быть заполнены 'uri_asr', 'uri_tts' и 'cert').

  • accounts - объект, позволяющий задать настройки для работы с различными аккаунтами Sber Salute и получить выбор аккаунта при настройке в сценарии. Каждый ключ - это код аккаунта, он отображается в сценарии в выпадающем списке при выборе аккаунтов. Каждый объект внутри содержит вышеуказанный ключ 'speech' с аналогичным содержимым.

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

Объект speech поставляет данные для подключения к сервису Sber salute:

  • mode (onprem|cloud) - способ подключения к сервису. Значение по умолчанию: 'onprem'.

  • endpoints - список точек подключения к сервису Sber salute. В случае использования mode=cloud параметр может быть опущен, тогда применяются значения по умолчанию.

    • uri_asr - полный URI к точке подключения для сервиса распознавания речи. Например: 'https://x.local:8082'. В случае использования mode=cloud параметр может быть опущен, тогда применяются значения по умолчанию.

    • uri_tts - полный URI к точке подключения для сервиса синтеза речи. Например: 'https://y.local:8082'. В случае использования mode=cloud параметр может быть опущен, тогда применяются значения по умолчанию.

    • cert - для SSL/TLS точек подключения указывает на PEM-файл сертификата, размещенный в каталоге ':SYNC_DOMAIN' или ':SYNC_COMMON'. Файл сертификата может быть загружен, например, в REST-endpoint '/rest/v1/fs/targets/files/certificates/cert.pem' и адресован через ':SYNC_DOMAIN_DATA/files/certificates/cert.pem'. Если не указан, то клиентское подключение не будет проверять сертификат сервера на доверенность. Сертификат обязательно требуется для подключения при использовании сервиса on-prem.

  • uri_oauth - полный URI сервиса OAuth-авторизации и выдачи access token. Применяется при использовании mode=cloud. Может быть опущен, тогда используется значение по умолчанию.

  • auth_data - предоставленное при регистрации значение Authorization data (не client_secret!). Требуется и обязательно при использовании mode=cloud.

  • scope - согласно документации Sber Salute Speech одно из значений, предоставленных при регистрации: 'SALUTE_SPEECH_PERS', 'SALUTE_SPEECH_CORP'. Применяется при использовании mode=cloud. Может быть опущен, тогда используется значение по умолчанию: 'SALUTE_SPEECH_PERS'.

Пример 1
{
 "speech" : {
  "endpoints" : [{
    "uri_asr" : "https://a.loc:8082",
    "uri_tts" : "https://a.loc:8082",
    "cert" : ":SYNC_DOMAIN/data/files/crt/a.loc/cert.pem"
   },
   ...
  ]
 }
}
Пример 2
{
 "accounts" : [{
   "My Account B" : {
    "speech" : {
     "endpoints" : [{
       "uri_asr" : "https://b.loc:8082",
       "uri_tts" : "https://b.loc:8082",
       "cert" : ":SYNC_DOMAIN/data/files/crt/b.loc/cert.pem"
      },
      ...
     ]
    }
   },
   "My Account C" : ...,
   ...
  }
 ]
}

Можно задавать одновременно, тогда в списке будут и настройки аккаунта 'default', и настройки указанных в списке аккаунтов.

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

Параметры подключения к Yandex Cloud.

  • speech - параметры авторизации на сервисе Yandex Cloud SpeechKit. Для корректной работы должно быть заполнено поле 'apiKey'.

  • storage - параметры подключения к хранилищу S3. Для корректной работы должны быть заполнены параметры: 'bucket', 'keyId', 'secretKey'.

  • accounts - объект, позволяющий задать настройки для работы с различными аккаунтами яндекса и получить выбор аккаунта при настройке в сценарии. Каждый ключ - код аккаунта, отображается в сценарии. Каждый объект внутри содержит вышеуказанные ключи 'speech' и 'storage'.

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

Объект speech поставляет данные для подключения к сервису SpeechKit Яндекс-облака:

  • uri_tts - URI для подключения к сервису синтеза речи Яндекс-облака. По умолчанию: 'https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize'.

  • uri_asr_short - URI для подключения к сервису распознавания коротких аудио Яндекс-облака. По умолчанию: 'https://stt.api.cloud.yandex.net/speech/v1/stt:recognize'.

  • uri_asr_long - URI для подключения к сервису распознавания длинных аудио Яндекс-облака. По умолчанию: 'https://transcribe.api.cloud.yandex.net/speech/stt/v2/longRunningRecognize'.

  • uri_asr_long_response - URI для подключения к сервису распознавания длинных аудио Яндекс-облака. По умолчанию: 'https://operation.api.cloud.yandex.net/operations'.

  • apiKey - авторизационный API-ключ. Специально создается для подключения к сервису SpeechKit Яндекс-облака.

  • folderId - необязательный параметр.

Объект storage использутся при распознавании длинных аудио для предварительной загрузки файлов в хранилище Яндекс-облака:

  • bucket - имя хранилища. Создается заранее.

  • keyId - авторизационный ключ для сервисного аккаунта.

  • secretKey - секретный ключ, соответствующий авторизационному ключу.

Пример 1
{
 "speech" : {
  "apiKey" : "BDUQ8zTZWzPmiVYspB__a8CMNG9lenE3eTVR3ByH7"
 },

 "storage" : {
  "bucket": "my_bucket_1",
  "keyId": "1dsqW72VN_7KaakeYRR9",
  "secretKey": "YNElGkHMrSnWyyfGqvMpDHlLoWGxwT2WAj4LCiWV"
 },}
Пример 2
{
 "accounts" : [{
   "My Account B" : {
    "speech" : {
     "uri_tts" : "https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize",
     "uri_asr_short" : "https://stt.api.cloud.yandex.net/speech/v1/stt:recognize",
     "uri_asr_long" : "https://transcribe.api.cloud.yandex.net/speech/stt/v2/longRunningRecognize",
     "uri_asr_long_response" : "https://operation.api.cloud.yandex.net/operations",
     "apiKey" : "6nBS8zU7WzGg2VYspB__x2Ag5G9eavE3eTNN3ByH7"
    },

    "storage" : {
     "bucket": "my_bucket_1",
     "keyId": "3thzS72WG_5ioAxHTq0",
     "secretKey": "AGalGkChmSnNo1fGqvHzSHlHigGyET2WAj7LCuZn"
    }
   },

   "My Account C" : ...,

   ...
  }
 ]
}

Можно задавать одновременно, тогда в списке будут и настройки аккаунта 'default', и настройки указанных в списке аккаунтов.

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

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 хранят и выдают настройки домена процессам, а также наследует настройки родительского домена.