Лицензия

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

Файл лицензии создается лицензиаром на основании кода активации, сформированного экземпляром системы с помощью API.

Файл лицензии передается в шифрованном виде и загружается с помощью API в мастер-домен, либо может быть загружен непосредственно на HDD сервера с ролью mdc на мастер-сайте, рабочий каталог ноды в /var/lib/era/_workdir/<NODE>/lic/r.lic.

Лицензия помимо активации экземпляра системы определяет ограничения.

Лицензия применяется, поддерживается и резервируется на всех серверах с ролью mdc.

Лицензируемые параметры

Файл лицензии в расшифрованном виде представляет собой JSON-структуру, прозрачно отражаемую системой через API управления лицензией.

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

Для удобства API предоставляет возможность просматривать независимо расшифрованное содержимое файла и актуальную действующую в текущий момент лицензию.

Простой пример содержания лицензии:
{
  "products": "era",
  "topleveldnpolicy": 1,
  "dql": {
    "domains": 100,
    "devices": 15000,
    "siptrunks": 3000
  },
  "sqf": {
  }
}
Сложный пример содержания лицензии:
{
  "products": "era",
  "topleveldnpolicy": 1,
  "dql": {
    "domains": 100,
    "devices": 1000,
    "siptrunks": 1000
  },
  "sqf": {
    "custom_key": true
   },
  "licensed_to": "Компания X",
  "licensed_number": "712158",
  "configurations": [
    {
      "smart": {
        "dtstart": "2017-12-01",
        "dtstop": "2018-01-31"
      },
      "dql": {
        "domains": 100,
        "devices": "5000;10000,tilldt=2018-01-12",
        "siptrunks": "1000;2000,tilldt=2018-01-12"
      }
    },
    {
      "smart": {
        "dtstart": "2017-01-01",
        "dtstop": "2020-12-31"
      },
      "dql": {
        "domains": 100,
        "devices": 3000,
        "siptrunks": 1000
      }
    },
    {
      "smart": {
        "dtstart": "2020-12-31"
      },
      "dlgtimesec": 30,
      "sqf": {
        "custom_key": false
      }
    }
  ]
}

Базовые параметры

Ключ Описание

products

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

topleveldnpolicy

Ограничение на имена доменов первого уровня.

  • 0 – допускает произвольные имена для доменов первого уровня.

  • 1 – допускает только дочерние имена мастер-домена по правилам FQDN.

По умолчанию 1.

dlgtimesec

Ограничивает время всех разговоров. Может использоваться в тестовых лицензиях.

dql

Группа количественных параметров функциональности.

sqf

Группа качественных параметров функциональности.

configurations

Раздел, содержащий список различных конфигураций и условий их применения.

Содержит список объектов, каждый из которых представляет альтернативную конфигурацию. По ключу smart содержится набор условий применения, среди которых dtstart и dtstop в формате yyyy-MM-dd.

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

Альтернативная конфигурация может в своем составе иметь все ключи данного раздела (products, topleveldnpolicy, dql, …​).

Если какой-то ключ отсутствует, то он берется из базовой структуры.

licensed_to

Строка с названием лицензиара.

license_number

Номер лицензии.

Количественные параметры

Количественные параметры задаются числовыми значениями и расходуются/восстанавливаются при создании/удалении сущностей в доменах. Содержатся в группе свойств dql (domain quantitative limits).

Все количественные параметры распределяются по доменному дереву. Каждый домен:

  • резервирует под себя часть полученных от родительского домена количественных лицензий для внутреннего использования,

  • часть количественных лицензий передает своим дочерним доменам,

  • остальные не используются и могут быть изъяты администратором родительского домена при необходимости.

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

Ключ Описание

domains

Количество доменов. Расходуется по одному на каждый домен.

При нехватке лицензий в домене невозможно создать новый дочерний домен.

devices

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

При нехватке лицензий в домене невозможно изменить сущность SIP-пользователя в сторону увеличения количества устройств или создать новую.

Достижение ограничения внутри сущности SIP-пользователя приводит к отказу в регистрации нового устройства, если на текущий момент уже зарегистрировано предельное количество. Тем не менее, возможны ситуации, когда устройство инициирует новую регистрацию, не удалив предыдущую на сервере. Во избежание подобных проблем система перед отказом в регистрации по причине недостаточного количества лицензий осуществляет опрос зарегистрированных устройств с помощью SIP-запроса OPTIONS. Отказ в регистрации производится только, если все зарегистрированные устройства корректно ответили. В других случаях регистрация проводится вместо "зомби".

siptrunks

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

При нехватке лицензий в домене невозможно изменить сущность SIP-провайдера в сторону увеличения количества транков или создать новую.

Достижение ограничения внутри сущности SIP-провайдера приводит к отказу от обслуживания очередного звонка.

Качественные параметры

Качественные параметры задаются булевыми значениями (или эквивалентно 0 и 1) и определяют доступность функционала в рамках экземпляра установленной системы. Содержатся в группе свойств sqf (system qualitative flags).

Ключ Описание

Передача количественных лицензий по дереву

Алгоритм распределения следующий:

  1. Мастер-домен получает лицензию непосредственно через API, либо с HDD.

  2. Мастер-домен передает количественные лицензии дочерним доменам через их свойство lic.

  3. Каждый рабочий домен получает лицензию от домена родителя.

  4. Рабочий домен резервирует часть полученных количественных лицензий под внутреннее использование. Через настройки, ключ licowned.

  5. Рабочий домен передает часть зарезервированных лицензий своим сущностям (например sipuser, provider) через их свойство lic.

  6. Рабочий домен передает часть полученных и незарезервированных количественных лицензий дочерним доменам через их свойство lic.

Расширение лицензией продукта

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

Все количественные показатели суммируются, качественные показатели активируются, если хотя бы в одной из лицензий: продуктовой или

Суффикс tilldt для dql

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

Например, стандартное значение "devices": 100 может быть изменено следующим образом:

  • "devices": "100" : не изменяет поведение.

  • "devices": "100,tilldt=2025-10-01" : до 1 октября 2025 года – 100, после – 0.

  • "devices": "100;500,tilldt=2022-10-01;200,tilldt=2023-02-23" : до 1 октября 2022 года – 800, до 23 февраля 2023 года – 300, после – 100.

Особенности

С периодичностью в несколько минут лицензия пересчитывается, тем самым обновляя свои условные показатели.

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

Лицензии могут быть изъяты из дочерних доменов в объеме не большем, чем X = T - O - D, где

  • T – количество выделенных домену лицензий,

  • O – количество зарезервированных лицензий,

  • D – количество выделенных дочерним доменам лицензий.

Если домен заблокирован (свойство opts.isblocked), то из него могут быть изъяты все лицензии.

При потере связи между сайтами, они сохраняют последнюю активную лицензию вплоть до успешной синхронизации с мастер-сайтом. После перезагрузки система также применяет последнюю активную лицензию.

Безлимитные значения количественных показателей лицензии (числовые значения больше 123456789), устанавливаемые в ассете продукта defaultlic.json, распространяются по дереву доменов автоматически.

Временные лицензии

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

  • суффикса tilldt у конкретных значений;

  • настройки альтернативных конфигураций.

Тестовые лицензии

В целях ограничений для тестовой эксплуатации могут применяться:

  • параметр dlgtimesec;

  • ограничения во времени:

    • уменьшающие количественные показатели, в том числе домены;

    • активирующие альтернативные конфигурации с отключенной функциональностью.