Licensing
SAFR systems require a license to operate.
License Limit Metrics
SAFR licenses limit usage according to the following metrics:
- Expiration date: The date when the SAFR license expires. After this date, SAFR software discontinues operation.
- Max Feeds per Hour: Maximum number of video feeds that can be used at one time by the SAFR system. If you attempt to connect more video feeds than your license allows, the excess video feed connection attempts will all fail. Existing video feeds must be disconnected for a period of 1 hour before new video feeds are allowed to re-use the license.
Note: If a single camera is providing video feeds to 2 different Desktop client instances, that counts as 2 video feeds for licensing purposes.
- Max Faces: Maximum number of people that can be registered with the SAFR system’s Person Directory. Attempting to add people above this limit results in an error.
- Max Days Between Reports: The maximum elapsed time that can pass before the SAFR system can report its status to a SAFR License Server. SAFR Server discontinues operation if it is unable to reach the SAFR License Server after the specified time has elapsed. If you need to operate your SAFR system on a private network that isn’t connected to the Internet, contact your SAFR account manager to acquire a special offline license.
Note: This metric is only applicable for local deployments.
License limit metrics for your SAFR license can be found on the Status page of the Web Console. Note that Max Days Between Reports won’t appear on your Web Console if you have a cloud deployment.
Licensing for Local Deployments
In local deployments, SAFR licenses are attached to your SAFR system’s primary server. The following describes how the SAFR license is managed:
- License Acquisition - Your SAFR Server attempts to acquire a license from the SAFR license server when it’s first run. If your SAFR system doesn’t have Internet connectivity, see the Offline Licensing section below to see how to obtain a SAFR license.
- Licenses are bound to the primary SAFR Server. If you install one or more secondary servers for the purpose of load balancing or redundancy, the secondary servers acquire their licenses through the primary server.
- If you want to move your primary server to a machine with a different IP address, you must wait 24 hours between uninstalling the server and reinstalling it on the new machine. If you try to reinstall the SAFR Server before 24 hours has elapsed, you will get an unauthorized access error when the SAFR Server unsuccessfully attempts to get a valid licence from the SAFR License Server. After 24 hours has elapsed, however, a reinstalled SAFR Server will automatically (and successfully) reacquire a SAFR license.
- Note that the previous behavior only applies to SAFR servers that are uninstalled. If, on the other hand, the IP address of your SAFR Server changes or changes to a hostname while the server remains installed, there is no problem; your server simply informs the SAFR License Server of its new IP address or hostname the next time it checks in with the SAFR License Server.
If your SAFR system doesn’t have Internet connectivity, do the following to get a SAFR license:
- Obtain a license request file for the machine on which SAFR Platform is installed.
- On the machine that has SAFR Platform installed, run get-license-request.py.
- For Windows:
C:\Program Files\RealNetworks\SAFR\bin\get-license-request.py
- For Linux:
/opt/RealNetworks/SAFR/bin/get-license-request.py
- For macOS:
/Library/RealNetworks/SAFR/bin/get-license-request.py
- When prompted, enter the SAFR account name and password.
- The script will attempt to read safrports.conf to communicate with CoVi. If safrports.conf can’t be found, then the script will use the default port, 8080.
- The script can be copied and run from any system that has Python 3 installed. If you run the script on a machine other than the one hosting SAFR Platform, use the -n parameter to provide the hostname of the machine hosting SAFR Platform.
- Running the script generates a file called safr_license_request.json in the same working directory as the script. Make sure to run the script in a directory that you have write access to.
- Retrieve the license by sending the license request to SAFR Cloud.
- Copy the newly generated safr_license_request.json file and the script get-license.py to a machine that has Internet access and has Python 3 installed. get-license.py can be found at the following locations:
- For Windows:
C:\Program Files\RealNetworks\SAFR\bin\get-license.py
- For Linux:
/opt/RealNetworks/SAFR/bin/get-license.py
- For macOS:
/Library/RealNetworks/SAFR/bin/get-license.py
Note: On a macOS machine you might receive an error message about being unable to load SSL root certificates. This is an issue with the way Python handles SSL certificates on Macs. More information about the issue can be found here. A workaround can be found here.
- When prompted, enter the SAFR account name and password.
- You can use the -p parameter to tell the script where safr_license_request.json is located.
- You can use the -e parameter to set the environment value. (i.e. prod, int2, or dev) The default is prod.
- Running the script generates a file called safr_license.json in the same working directory as the script. Make sure to run the script in a directory that you have write access to.
- Install the retrieved license onto your installed SAFR Platform.
- Copy safr_license.json to the machine running your SAFR Platform.
- Run insert-license.py to install the license onto your SAFR installation.
- For Windows:
C:\Program Files\RealNetworks\SAFR\bin\insert-license.py
- For Linux:
/opt/RealNetworks/SAFR/bin/insert-license.py
- For macOS:
/Library/RealNetworks/SAFR/bin/insert-license.py
- When prompted, enter the SAFR account name and password.
- The script will attempt to read safrports.conf to communicate with CoVi. If safrports.conf can’t be found, then the script will use the default port, 8080.