From YateBTS
Jump to: navigation, search


Our licensing system, called "CodeMeter" is provided in collaboration with Wibu-Systems, one of the top suppliers in the industry.

Our clients (hereinafter called "licensee") must activate license on their machine, as our licensing system permits that one licence to cover any of our Core Network Products installed or used on a single machine (virtual or not).

There are two major usage scenarios:

  • Product and license on the same machine
    • One license per machine
    • Each license is bound to one machine
  • Products use one of the licenses on a license server
    • One server can hold a number of licenses
    • All licenses are bound to the server machine
    • Each application machine is granted one license on start, up to the number of licenses bought

License activation is strongly bounded to the hardware, because on any license request (as action) made by the licensee, a machine fingerprint (containing hardware, environment and OS informations) is generated and stored in the .WibuCmRaC file. In case of a Virtual Machine the license will be bound to characteristics of both the VM and the host's hardware. Moving the VM to another host would invalidate the license so in this case it is undesirable to install the license in the VM, a separate license server should be used.

The .WibuCmRaC file (which also contains the license request code) must be sent to us via BugTracker and in turn, we will send back an update file ( .WibuCmRaU ) to the licensee.

The license update operation is made only once on the licensee machine.

Once license is updated, a license receipt is generated and must be sent to us. This procedure will allow future rebuilding of the license on that specific machine if the license is destroyed.



All our Yate based core products are built on top of Mageia 5 so this Linux distribution should be already installed on the machine.

On every machine with private Yate packages installed, we need to add the YateCore repository and install the yate-mgmt-core package as root.

[yate@licensee-machine][~]$ su -
[root@licensee-machine][~]# urpmi.addmedia --update YateCore
[root@licensee-machine][~]# urpmi yate-mgmt-core

These packages will be installed: yate-mgmt-core-*.mga5.noarch , yate-mgmt-*.mga5.noarch and CodeMeter-*.x86_64

Our work as root is temporarily done, to exit root environment, just type 'exit'

[root@licensee-machine][~]# exit

After the installation we will have yate-mgmt in our /usr/bin directory, typing yate-mgmt (we can check if yate-mgmt-core installed successfully) in your console we will have this output message:

[yate@licensee-machine][~]$ yate-mgmt
Usage: yate-mgmt options...
    --cert-view [filename.txt]             Display Apache SSL certificate
    --cert-update filename.crt             Update Apache certificate and restart the service
    --license-view [filename.txt]          View current license information
    --license-dump [filename.txt]          Dump Wibu licensing info for troubleshooting
    --license-prepare [filename.wbb]       Create license container from template
    --license-request [filename.WibuCmRaC] Create a license request
    --license-update filename.WibuCmRaU    Install or update license, use - for stdin
    --license-receipt [filename.WibuCmRaC] Create a license activation receipt

Verifying and preparing environment

The environment must be set up on the client's machine or on his license server (if there is one -> check #License on a License Server section).

Before we install any license we must check if there are current license information on licensee system by typing: "yate-mgmt --license-view" or the short command: yate-mgmt -lv

[yate@licensee-machine][~]$ yate-mgmt -lv

If there is no result it means our licensee system has no license at all and we may continue.

To add a license we must prepare the environment for the license by creating a license container with the command: "yate-mgmt --license-prepare" or we can use the short command yate-mgmt -lp

[yate@licensee-machine][~]$ yate-mgmt -lp

You may skip preparation in this case this step is executed automatically when creating a License Request.

License request

Next in our process is the license request step and by typing "yate-mgmt --license-request" or the short command yate-mgmt -lr

A file ending in .WibuCmRaC is created. The license request generates and stores also the machine fingerprint in the license request file (ending in .WibuCmRaC)

License request will be made on licensee machine. If our Core Network products are not running on the same machine, check #License on a License Server section.

[yate@licensee-machine][~]$ yate-mgmt -lr
[yate@licensee-machine][~]$ ls *Wibu*
-rw-r--r--  1 yate yate  33358 Sep  2 15:57 32767-16385_5000676.WibuCmRaC

The generated file (in our case 32767-16385_5000676.WibuCmRaC) must sent to us via BugTracker ticketing system.

We will send a .WibuCmRaU file used for licence update which will generate a licence receipt. Generated license receipt file must be sent to us in order to activate the license.

License activation

The license update procedure sums 'license update' and 'license receipt' operations and are will be made with yate-mgmt as shown below:

[yate@licensee-machine][~]$ yate-mgmt -lu 15767-16385_5000676.WibuCmRaU
[yate@licensee-machine][~]$ yate-mgmt -lR 

After that a new file ending in .WibuCmRaC is generated, named 128-26881_5000676-receipt.WibuCmRaC which must be sent to us via BugTracker ticketing system.

The license request operation also changes the license container on the licensee machine from 32767-16385_5000676 to 128-26881_5000676 and this change can be checked with yate-mgmt --license-view command.

[yate@licensee-machine][~]$ yate-mgmt --license-view
SER=128-26881 FC=5000676 PC=100 QTY=1 FEAT=0x8000000f NAME=Yate based core network products

Finalizing instalation

Once the license is set up it is time to install the product themselves on their machines. This needs again to become root.

Here is an example for installing YateHSS:

[yate@licensee-machine][~]$ su -
[root@licensee-machine][~]# urpmi yate-hss
[root@licensee-machine][~]# systemctl status yate-hss.service
● yate-hss.service - YATE based Home Subscribers Server
   Loaded: loaded (/usr/lib/systemd/system/yate-hss.service; enabled)
   Active: active (running) since Tue 2017-06-06 17:45:33 CEST; 14s ago

License on a License Server

If the licensee machine is virtual or is not the same as the machine where our Core Network products are running, you must store the licenses on a license server.

Virtual machines must have installed also yate-mgmt-core as described in #Requirements chapter.

In this case YateHSS and YateUCN or any other Yate Core products are running on another/virtual machine and the license server is another machine.

License prepare and license request operations will be made on the license server and here the license files will be stored/installed.

Easy access & Forwarding

CodeMeter License Server by default works on port 22350 and it accepts connexions only from, to access it a local port forwarding is needed.

We will connect trough ssh and forward remote 22350 port to local 8035 port like this:

[user@localhost][~]$ ssh -L 8035:localhost:22350 yate@license-server
Last login: Tue Sep  6 14:24:33 2016 from about.lan

Operations on License Server

  • Open in browser http://localhost:8035/ and see the output of the license server on port 22350 (the CodeMeter default port).
  • Enable Network Server from menu -> Configuration -> Server -> Server Access tab -> Network Server -> [X] Enable

CodeMeter License Server.png

  • Add licensee machine IP address in License Access Permission tab next to Server Access tab by clicking 'Add' and then Apply.
  • Restart CodeMeter service
[root@license-server][~]# service codemeter restart

Operations on products machine

  • Connect trough ssh and forward remote 22350 port of licensee machine were Yate products are running to local 8034 port like this:
[user@localhost][~]$ ssh -L 8034:localhost:22350 yate@licensee-machine
  • Open http://localhost:8034/ in browser and modify CodeMeter settings, to search for licenses on a specific IP address (IP address of the License Server).

CodeMeter Licensee Machine.png

  • It is very important to restart the CodeMeter service so changes can take effect.
[root@licensee-machine][~]# service codemeter restart