Лицензия и активационный токен

Обзор

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

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

Активационный токен:

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

  • Загружается с помощью API в мастер-домен системы. Может загружаться в приложении Настройки администратором мастер-домена вручную или с сервера-лицензий инструментом при внесении идентификационной информации.

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

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

  • Имеет ограничение времени применения, по истечении которого конкретный токен считается просроченным и неспособным провести активацию.

  • Может предоставляться сервером лицензий в автоматическом виде.

  • Может предоставляться сервером лицензий на основании HTTP-запросов для применения к системам, установленным в закрытом контуре.

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

  • Хранится на серверах системы в шифрованном виде, не подлежащим переносу вручную.

Активация

Активация, актуализация и продление токена автоматическом режиме

Способ применяется, если

  • версия активируемой системы 1.9 или более новая,

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

  • активируемая система имеет выход в сеть интернет.

    1. Авторизуйтесь в установленную систему, подлежащую активации.

    2. В меню в разделе "Домен" откройте инструмент "Лицензии".

    3. В разделе "Активация токена" нажмите кнопку "Получить код активации".

    4. В открывшееся поле "Новая лицензия" внесите идентификатор и один из неиспользованных ранее паролей в следующем формате: ID/PWD (числовой идентификатор, слэш, пароль). Нажмите кнопку Применить.

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

В дальнейшем система автоматически будет периодически опрашивать сервер лицензий для обновления токена и лицензионной информации. Если состав лицензии претерпевает плановые изменения, ускорить обновление можно кнопкой "Обновить токен" в разделе "Информация".

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

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

Способ применяется, если

  • версия активируемой системы 1.9 или более новая,

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

  • активируемая система не имеет выхода в сеть интернет.

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

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

  2. Получите идентификатор и список из нескольких паролей.

  3. Авторизуйтесь в заблаговременно установленную систему, подлежащую активации. Откройте приложение Настройки (в мастер-домене). В меню в разделе "Домен" откройте инструмент "Лицензии".

  4. В разделе "Активация токена" нажмите кнопку "Получить код активации".

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

  6. Откройте браузер на компьютере, подключенном к сети интернет. В адресную строку внесите: https://activate.era-platform.ru/api/licserver/v1/get_token?id=ID&pwd=PWD&activationCode=ACTIVATIONCODE, подставив идентификатор из выданных на 2 шаге данных, один из неиспользованных ранее паролей оттуда же, и скопированный на шаге 5 активационный код.

  7. В случае, если все корректно, сервер вернет файл с лицензионным токеном, которому отведено ограниченное время на активацию. Откройте файл и скопируйте значение, перенесите его на активируемую систему в закрытый контур.

  8. Внесите токен в поле "Новая лицензия", где был на 4-5 шагах взят активационный код. Важно, чтобы сессия была та же самая. Важно, чтобы активация токена была проведена оперативно после его выдачи лицензионным сервером.

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

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

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

Активация старых версий (до 1.8)

Если в ответ на запрос лицензии выдан токен, то внесите его в систему вручную.

Этот способ применялся вплоть до версии 1.8.

  1. Авторизуйтесь в установленную систему, подлежащую активации.

  2. В меню в разделе "Домен" откройте инструмент "Лицензии".

  3. В разделе "Активация токена" нажмите кнопку "Получить код активации".

  4. В открывшееся поле "Новая лицензия" внесите выданный ранее токен и нажмите кнопку "Применить".

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

Файл лицензии в расшифрованном виде представляет собой 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
      }
    }
  ]
}

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

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

lbdate

Дата начала действия лицензии (из лицензионного договора). Отображается в параметрах лицензии.

ledate

Дата окончания действия лицензии (из лицензионного договора). Отображается в параметрах лицензии.

cdate

Дата создания активационного токена. Отображается в параметрах лицензии.

adate

Дата утраты токеном возможности активации. Токен должен быть применен до истечения этой даты.

tdate

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

alarm_notify_date

Дата после которой в мониторинг состояния системы начнет выводиться предупреждение о скором истечении срока действия токена или лицензии. Как правило, на две недели меньше параметра 'tdate'.

from_dt

Дата/время создания токена сервером лицензий. Уточняет параметр 'cdate' и применяется системой.

Заполняется только при получении токена с сервера лицензий.

sync_dt

Дата/время следуюещго обновления токена на сервере лицензий. Система пытается получить новый токен начиная с момента, ориентировочно на 2 часа предшествующего указанному значению. При неудаче попытка повторяется каждый час. Система остается активированной вплоть до истечения времени 'stop_dt'.

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

Тем не менее остается возможность активировать другой инстанс системы, используя другой из списка выданных паролей.

Заполняется только при получении токена с сервера лицензий.

stop_dt

Время окончания действия токена, до истечения которого система должна успеть получить свежий токен. В противном случае система переходит в нерабочее состояние, обнуляя список доменов. Уточняет параметр 'tdate' и применяется системой.

Заполняется только при получении токена с сервера лицензий.

products

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

info

Информация о продукте и лицензии. Лицензиар, лицензиат, идентификационная информация.

maxproductversion

Ограничение на поддерживаемую версию продукта.

Пример: "1.8" - поддерживает все версии 1.8.* и более ранние, а 1.9.0 уже не поддерживается.

max_server_count

Ограничение на количество серверов в конфигурации кластера.

dlgtimesec

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

По умолчанию не ограничено

devices_mode

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

Варианты:

  • 'contacts_reserved' - ограничивает количество зарегистрированных устройств, требует распределения лицензий по учетным записям sipuser (параметр lic.devices), тем самым резервируя слоты для регистрации устройств конкретных учетных записей.

  • 'contacts_concurrent' - ограничивает количество одновременно зарегистрированных устройств. Не резервирует слоты. Заполнение опции lic.devices в учетных записях sipuser произвольно и ограничивает количество одновременно зарегистрированных устройств под конкретной учетной записью.

  • 'accounts_reserved' - ограничивает количество создаваемых аккаунтов sipuser без учета количества зарегистрированных устройств. Заполнение опции lic.devices в учетных записях sipuser произвольно и ограничивает количество одновременно зарегистрированных устройств под конкретной учетной записью.

  • 'accounts_concurrent' - ограничивает количество одновременно зарегистрированных аккаунтов sipuser без учета количества зарегистрированных устройств. Заполнение опции lic.devices в учетных записях sipuser произвольно и ограничивает количество одновременно зарегистрированных устройств под конкретной учетной записью.

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

По умолчанию: 'contacts_reserved'. Обычно используемое значение: 'accounts_concurrent'.

topleveldnpolicy

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

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

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

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

dql

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

  • domains - Ограничение общего количества рабочих доменов. Если не указано - это 0.

  • devices - Ограничение общего количество внутренних SIP-аккаунтов или зарегистрированных устройств (в соответствии с параметром 'devices_mode'). Если не указано - это 0.

  • siptrunks - Ограничение общего количества внешних транков, распределяемых по учетным записям SIP-провайдеров. Если не указано - это 0.

Могут быть расширены другими параметрами:

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

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

sqf

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

configurations

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

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

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

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

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

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

Количественные параметры задаются числовыми значениями и расходуются/восстанавливаются при создании/удалении сущностей в доменах. Содержатся в группе свойств 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;

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

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

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