Introduction
Long-Term Check-Out (LTCO) licensing is a licensing model suitable for scenarios where an end-user requires the ability to use their software for long, but not indefinite, periods of time without having to refresh it from the Zentitle Licensing Server. The user may then be completely offline during this time interval. Common scenarios include where a user will be working from home or whilst traveling with limited or no access to the Internet. LTCO functionality can be added to any regular Zentitle license, i.e. no special license type is needed.
On the server side, one simply configures the maximum check-out period, in days, for a license code. This can be done on an individual license code basis or for all license codes in a profile. The client application then issues a remote procedure call to the server whereby it checks out a license for a period not longer than the maximum configured for this license on the server (note: a valid license must already be in force before invoking the remote procedure call). The client application will then function as normal for this period of time, with the client lease extended to the end of the check-out interval.
In scenarios where a user requires an LTCO license managed by the Zentitle LAN Daemon, they should use the Daemon's LTCO functionality rather than that described here.
Server-Side Implementation
Configuring License Codes
To configure the LTCO functionality of a license code, first, choose a license code.
- Go to the manage codes page (with the icon indicated below):
- Then select one of the license codes shown by clicking the Edit Code button:
Alternatively, if you wish to configure a known license code, you can do so using the search functionality. Both methods of configuring a license code are described in the managing licenses documentation.
Once you have reached the Code Edit page for the selected license code, select the Server Functions tab as shown below.
There are two tables here, Server Functions Configuration and Server Functions Usage History. We shall describe these in turn.
Server Functions Configuration
This table provides a list of remote procedure calls enabled on the Zentitle Licensing Server. LTCO is one such function.
By default LTCO is not enabled on any license code. However you can enable it by clicking the small pen icon at the left to edit the configuration of LTCO for this license. Clicking this icon will cause the Edit Function prompt to be displayed:
Here you can enable/disable LTCO functionality by clicking the Enabled checkbox. You can also specify the maximum duration of an LTCO in days for this license by entering this value in the Parameters textbox. Clicking OK and then saving the license code configuration will make the required changes to the LTCO configuration for this license.
You must save the changes to the license code on the Code Edit page to save changes to the LTCO configuration. Clicking the OK button in the Edit Function prompt alone will not suffice.
Once you have saved your changes, the LTCO row in the Server Functions Configuration table will be correspondingly updated.
Server Functions Usage History
This table provides a client usage history of LTCO and any other server functions for this license code.
Successful LTCO check-outs are shown, with the corresponding computer ID. The Request column shows the number of days requested and the Result column shows the expiry date of the LTCO. The Date column shows the date of the LTCO request.
Configuring Profiles
LTCO functionality can be configured for multiple license codes simultaneously using license code profiles. You can enable and set the maximum check-out time for a profile. If you save the profile with the option to inherit profile properties enabled, this will set this LTCO configuration for all license codes in the profile.
To configure LTCO functionality for a license code profile, please go to the Code Profiles menu item on the dashboard as shown.
Select the profile you wish to modify by clicking its Edit button.
As with a license code, click the Server Functions tab to reveal the Server Functions Configuration table. This displays the configuration of server functions for this license code profile.
Clicking the small pen icon will cause the Edit Function prompt for this profile to be displayed:
As with a license code, you can enable/disable LTCO by checking/unchecking the Enabled checkbox. The maximum check-out interval should be entered into the Parameters textbox. Click the OK button when done and, as with a license code, save the changes to this profile to complete the configuration.
Client-Side Implementation
Client Parameters
The table below shows the parameter values required to check out an LTCO license using the general RPC functions NSLRemoteCall and NSLRemoteCallV.
| Parameter | Value for LTCO |
| rpcName |
A NULL terminated, UTF-8 encoded string containing the name of the remote procedure to be accessed. Should be initialised as "LTCO". |
| rpcReturn | On success contains the return information from the rpc as a NULL terminated, UTF-8 encoded string. This may be NULL if no return is to be received from the call, which is the case for LTCO. |
| rpcVarNames | Must be set to "rpcLTCOEndDate". |
| rpcVarVals | The requested expiry date of the LTCO license in Unix epoch time format. |
Wrapper Functions
Our example applications contain wrapper functions for NSLRemoteCallV in C#, VB.NET and Java. You may use these to help integrate LTCO functionality into your application.