Licenses

The Sipwise C5 -implements software licensing in form of a regular comparison of the licensed services and capacities against the actual usage patterns of the platform. The purpose of this function is to monitor system usage and to raise warnings to the platform operator if the thresholds of commercially agreed license parameters (like number of provisioned subscribers or number of concurrent calls) are exceeded.

What is Subject to Licensing?

Sipwise C5 licenses determine 2 groups of system parameters which are regularly compared with actual values gathered from the system:

  • performance parameters:

    • number of provisioned subscribers

    • number of registered subscribers

    • number of concurrent calls

  • feature parameters: additional features / services that are subject to commercial agreement:

    • pre-paid billing

    • CPBX (Cloud PBX) services

    • Push notifications (mobile SIP clients on iOS and Android)

    • Lawful Interception services

    • SIP capturing via ngcp-voisniff

Please remember, that the parameter 'number of concurrent calls' by default doesn’t affect emergency type of calls. If you would like to change this behavior globally, you can set the config.yml option 'b2b.sbc.skip_cpslimit_license_check_emergency' to 'no' (which is by default set to 'yes'). Remember, by applying the changes the SEMS-B2B component will have to restart.

How Licensing Works

Sipwise operates a licensing server that is the source of license data for each deployed Sipwise C5 node. The nodes themselves request licensing data from the license server regularly and compare them with actual system performance indicators, check the activated features against the licensed ones. The presence and activity of the license client module ("licensed" process) may be confirmed by checking e.g. the output of "ngcp-service summary" command. It should contain a line showing:

   ngcp-license-client            managed    on-boot   active

All nodes of a single Sipwise C5 installation share the same license key. This is also valid for geographically distributed setups. This license key is referred by an ID that has to be configured in the main Sipwise C5 configuration file (config.yml), and that ID will be used to request license data from the license server.

In order for the license validation to work each node of an Sipwise C5 installation must be able to connect to the Sipwise license server via standard HTTPS protocol (TCP, port 443). Alternatively the nodes may use a local, system-wide proxy server and only that proxy server needs to access the Sipwise license server.

How to Configure Licenses

The Sipwise C5 operator can set the license key in the main configuration file (/etc/ngcp-config/config.yml). The correct license key has to be entered in the configuration file, at the **general.license_key** configuration parameter, so that licensing works as expected.

You always have to add the license key before being able to upgrade Sipwise C5 to release mr5.5.x or above. The upgrade script will look for the license key and will stop if it does not find the key.

The license key is also shown in the /etc/ngcp-license-key file once the key has been added to the configuration file and the new configuration has been applied.

There is another configuration parameter related to licenses: general.anonymous_usage_statistics that has an effect on Sipwise C5 CE installations only. This parameter enables / disables sending anonymous usage statistics to Sipwise.

Although not strictly related to Sipwise C5 configuration, the platform operator has to keep in mind that all Sipwise C5 nodes need to have access to Sipwise license server: license.sipwise.com

The operator has to ensure that there is no firewall rule or other network configuration that prevents Sipwise C5 nodes from connecting to Sipwise license server via HTTPS protocol (TCP, port 443).

How to Monitor License Client

As mentioned earlier in this chapter, the presence of license client can be monitored using the built-in utility ngcp-service.

The other way to observe the behaviour of the license client is looking into the log file of "licensed" process: /var/log/ngcp/licensed.log

The Sipwise C5 operator may find entries like the below ones in case of normal operation:

Dec 12 16:20:42 sp1 ngcp-licensed[2205]: Valid license: [ABCDEFGHI_123456789_a1b2c3d4e5f6]:
  10000 calls, 1000000 subscribers, 2000000 registered subscribers, valid until Tue Jan  1
  00:00:00 2030 (signature valid until Tue Dec 26 16:20:43 2017)
Dec 12 16:22:41 sp1 ngcp-licensed[2205]: Usage report: 0 calls, 18 subscribers, 0 registered subscribers

where:

  1. The first line shows the licensed capacities

  2. The second line shows the actual system usage indicators