License

The system requires activation for its operation. Activation is performed using a license file containing a set of parameters and their values tied to this particular instance of the system and the installed product.

The license file is created by the licensor based on the activation code generated by the system instance using the API.

The license file is transferred encrypted and uploaded using API to the master domain, or can be uploaded directly to the HDD of a server with the mdc role on the master site, the working directory of the node in the /var/lib/era/_workdir/<NODE>/lic/r.lic.

A license defines restrictions in addition to activating an instance of the system.

The license is applied, maintained and backed up on all servers with the role of mdc.

Licensed parameters

The license file in decrypted form is a JSON structure transparently reflected by the system through the license management API.

A distinction should be made between the contents of the license file and the composition of the current actual license values. The condition file may contain time ranges of indicator availability, combined values and different configurations of license parameters tied to time periods.

For convenience, the API provides the ability to view the independently decrypted contents of the file and the current valid license.

A simple example of the contents of a license:
{
  "products": "incoplax",
  "topleveldnpolicy": 1,
  "dql": {
    "domains": 100,
    "devices": 15000,
    "siptrunks": 3000
  },
  "sqf": {
  }
}
A complex example of the contents of a license:
{
  "products": "incoplax",
  "topleveldnpolicy": 1,
  "dql": {
    "domains": 100,
    "devices": 1000,
    "siptrunks": 1000
  },
  "sqf": {
    "custom_key": true
  },
  "licensed_to": "Company 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
      }
    }
  ]
}

Basic parameters

Key Description

products

Specifies the name of the product being licensed. The license can only be applied to a system instance deployed from the distribution of the corresponding product.

topleveldnpolicy

Restriction on first-level domain names.

  • 0 – allows arbitrary names for first-level domains.

  • 1 – allows only child names of the master domain according to the rules FQDN.

Default 1.

dlgtimesec

Limits the time of all conversations. Can be used in test licenses.

dql

A group of quantitative parameters of functionality.

sqf

A group of qualitative parameters of functionality.

configurations

A section containing a list of different configurations and their application conditions.

Contains a list of objects, each representing an alternative configuration. The smart key contains a set of application conditions, including dtstart and dtstop in format yyyy-MM-dd.

The first matching configuration is merged with the original configuration from the root, replacing the values of matching keys, and the remaining alternative configurations are ignored.

An alternate configuration can have all the keys in this section as part of it (products, topleveldnpolicy, dql, …​).

If some key is missing, it is taken from the base structure.

licensed_to

A line with the name of the licensor.

license_number

License Number.

Quantitative parameters

Quantitative parameters are set with numeric values and are consumed/restored when entities are created/deleted in domains. Contained in the property group dql (domain quantitative limits).

All quantitative parameters are distributed over the domain tree. Every domain:

  • reserves a part of the quantitative licenses received from the parent domain for internal use,

  • part of the quantitative licenses is transferred to its subsidiary domains,

  • the rest are not used and can be withdrawn by the parent domain administrator if necessary.

The reservation is made via domain settings management API (licowned key), and the transfer to the child domain is made via domain entity management API (field lic).

Key Description

domains

Number of domains. Spend one for each domain.

If there are not enough licenses in a domain, you cannot create a new child domain.

devices

The number of registered SIP devices under SIP-user accounts. Spread across SIP user accounts. Spent one per detached SIP device at the time of enrollment. Not automatically redistributed between accounts.

If there are not enough licenses in the domain, you cannot change the SIP user entity to increase the number of devices or create a new one.

Reaching a limit within a SIP user entity causes a new device to be denied registration if the limit is currently already registered. However, there may be situations where the device initiates a new registration without deleting the previous registration on the server. To avoid such problems, the system polls registered devices with a SIP request before rejecting registration due to insufficient number of licenses OPTIONS. Registration is rejected only if all registered devices have responded correctly. In other cases, registration is performed instead of "zombie".

siptrunks

Number of simultaneously active trunks on SIP providers accounts. Distributed across SIP provider accounts. Spent one per call through role esg and released when the call ends. Not automatically redistributed between accounts.

If there are not enough licenses in the domain, you cannot change the SIP provider entity to increase the number of trunks or create a new one.

Reaching a constraint within a SIP provider entity causes the next call to be dropped from service.

Quality parameters

Qualitative parameters are specified by Boolean values (or equivalently 0 and 1) and define the availability of functionality within an instance of the installed system. Contained in the property group sqf (system qualitative flags).

Key Description

Transfer of quantitative tree licenses

The allocation algorithm is as follows:

  1. The master domain is licensed directly through the API, either from the HDD.

  2. The master domain passes quantitative licenses to child domains via their property lic.

  3. Each worker domain is licensed from the parent domain.

  4. The worker domain reserves a portion of the received quantitative licenses for internal use. Via customization, key licowned.

  5. A worker domain passes some of the reserved licenses to its entities (e.g. sipuser, provider) via their property lic.

  6. A working domain transfers a portion of the received and unreserved quantitative licenses to child domains via their property lic.

Product license extension

The license file extends the product license file.

All quantitative indicators are summed up, qualitative indicators are activated if at least in one of the licenses: product or

The suffix tilldt' for `dql

A suffix can be added to the string representation of any value in the dql section of the license file and restrict the application of that value to a specified date. Can combine multiple values at once.

For example, the default value "devices": 100 can be modified as follows:

  • "devices": "100" : doesn’t change behavior.

  • "devices": "100,tilldt=2025-10-01" : Until October 1, 2025 - 100', after – `0.

  • "devices": "100;500,tilldt=2022-10-01;200,tilldt=2023-02-23" : Until October 1, 2022 - 800', until February 23, 2023 - `300', after – `100.

Features

At intervals of a few minutes, the license is recalculated, thereby updating its conditional values.

If the values are changed downward, the server reloads the domain tree.

Licenses may be withdrawn from child domains to an extent not greater than X = T - O - D, where

  • T – number of licenses allocated to the domain,

  • O – number of reserved licenses,

  • D – number of licenses allocated to child domains.

If the domain is locked (opts.isblocked property), all licenses can be removed from it.

If communication between sites is lost, they retain the last active license until successful synchronization with the master site. After a reboot, the system also applies the last active license.

Unlimited license quantity values (numeric values greater than 123456789) set in the product assertion defaultlic.json are propagated through the domain tree automatically.

Temporary licenses

Limiting quantitative indicators can be done with the help of

  • of the suffix `tilldt' in specific meanings;

  • settings for alternative configurations.

Test licenses

For the purpose of limitations for test operation, the following may apply:

  • parameter dlgtimesec;

  • time constraints:

    • reducing quantitative indicators, including domains;

    • activating alternative configurations with disabled functionality.

See also