Distributing Glink configurations from an EMM/MDM

Glink has a large number of configuration parameters that are available through the Settings screens in Glink.

A Glink configuration can be prepared and tested on one device, then exported from this device and imported by Glink on many other devices. If your MDM does not allow you to distribute the exported Glink configuration file as it is, it will probably allow you to distribute Glink parameters to a managed Enterprise version of Glink, either using a menu to set the Glink parameters or by importing a JSON formatted configuration file containing the Glink parameters. Either way, you will find the parameters in the exported Glink configuration file useful when setting up such a configuration.

Below you will find some examples on how you can distribute a Glink configuration file.

Auto import from file location on Android device

Some MDM servers can export files to the MDM controlled Android devices. You can use this feature to distribute exported Glink configuration files to the devices. Glink for Android will check the following path for a new Glink configuation file at start-up and when the user enters the Sessions menu:
/SD Card/.GlinkXX/import/config.glinki   (where XX is either VT,5250, 3270 or omitted for the full version)

The "SD Card" folder (sometimes also referred as Phone Storage or Internal Storage) is often addressed like "/storage/emulated/0". For example:

/storage/emulated/0/.GlinkVT/import/config.glinki
/storage/emulated/0/.Glink5250/import/config.glinki
/storage/emulated/0/.Glink3270/import/config.glinki
/storage/emulated/0/.Glink/import/config.glinki

If/when Glink finds a config.glinki file in the import folder, the file will be imported and renamed to config-nn.glinki in the import folder. This is to make sure it is only imported once. nn is the next available number. The current configuration will be overwritten by the imported configuration file and lost.

If you have a large number of devices and have received a Glink license file (licenses.glinki) from G&R, you can use the auto-import feature in Glink to distribute the license file to your devices. Set up your MDM to distribute the Glink license file to:

/SD Card/.GlinkXX/import/licenses.glinki   (where XX is either VT,5250, 3270 or omitted for the full version)
SOTI and AirWatch are examples of MDMs that allow you to distribute Glink configuration and license files this way.

Download the Glink configuration from a web server

The managed versions of Glink (all iOS versions and Glink VT/5250/3270 Enterprise for Android) can be configured directly from the MDM if the MDM supports managed app configuration. The MDM either use a menu to set the Glink parameters or it imports a JSON formatted configuration file containing the Glink parameters. The method and format varies with the different MDMs.

The MDM server can instruct Glink to import a Glink configuration file from a network location with the following parameters:

config.versionThis parameter (key-name) specifies the version of the MDM parameters. If the version number matches the version number on the device, the rest of the parameters are ignored.
config.urlThis parameter (key-name) provides the URL of the Glink configuration file. Please note that this parameter is ignored if the config.version parameter is missing or the version number is the same as the version number on the device. So every time you update the configuration file, you must also update the config.version parameter

Here is an example:

    config.version=2
    config.url=http://myhost.mydomain.xx/glink/group1/config.glinki
Depending on the MDM, these two parameters are either configured in a menu in the MDM console (MobileIron, Meraki, Intune) or in a JSON file uploaded to the MDM (Google Admin) or defined in a MDM-menu (Intune).

Here is an example:

Microsoft Intune (Android)

Set up Glink configuration parameters directly

The iOS versions and the managed Glink Enterprise for Android versions of Glink (Glink 5250 Enterprise, Glink VT Enterprise, Glink 3270 Enterprise and Glink Enterprise) can be configured directly from the MDM if the MDM supports managed app configuration. The MDM either use a menu to set the Glink parameters or it imports a JSON formatted configuration file containing the Glink parameters. The method and format varies with the different MDMs.

Here are three key parameters that are explicitly defined with information texts and the minimum set of parameters required for a host session configuration:

config.versionThis parameter (key-name) specifies the version of the MDM parameters. If the version number matches the version number on the device, the rest of the parameters are ignored.
config.nameThis is the name of the configuration (session) and must be provided. The configuration is created if it does not already exits. Additional parameters will be set for this selected configuration.
com.servernameThis specifies the IP address of your host

Here is an example:

    config.version=1    
    config.name=myhost
    com.servername=myhost.mydomain.com
These parameters are sufficient to create a host configuration with default values.

For other parameters you have to check your exported Glink configuration file config.glinki. These parameters have to be defined as parameter_key/parameter_value pairs. For example:

    Parameter key 1_config.name / Parameter value myhost2
    Parameter key 1_com.servername / Parameter value host2.mydomain.com
    Parameter key 2_config.name / Parameter value myhost3
    Parameter key 2_com.servername / Parameter value host3.mydomain.com

Parameters for the first session, named with config.name, you do not need a prefix, but other sessions need a prefix. Session 2 parameters are prefixed with 1_, session 3 parameters are prefixed with 2_ and so on.

How you set these parameters will depend on your MDM. Different methods are used. While some MDMs present a menu with the parameters that can be set (MobileIron, Meraki, Intune), others require an JSON-/XML-file with key-name and key-value pairs (Google Admin, Intune).

Here are some examples:

MobileIron (Android), MobileIron (iOS), Meraki (Android), Meraki (iOS), Google Admin, Intune.

General options

Parameters that are common to all sessions and configured in the General options menu, must be configured in a config.name named GeneralOptions, without a n_ prefix. For example:
    Parameter key config.name / Parameter value GeneralOptions
    Parameter key screen.noautolock / Parameter value true

Passwords

Passwords are normally entered as the encrypted string you see in an exported Glink configuration file. Starting from version 2.4.3 you can also specify passwords in clear text if you use the prefix ##. For example, the password that protects access to Settings, General options, New configuration, Export configurations and more:
    Parameter key config.name / Parameter value GeneralOptions
    Parameter key screen.cfgpassword / Parameter value ##settingpassword
or the password for an auto-logon to IBM AS400/iSeries:
    Parameter key config.name / Parameter value AS400
    Parameter key com.servername / Parameter value myhost.mydomain.com
    Parameter key com.ibm5250user / Parameter value username
    Parameter key com.ibm5250subspw / Parameter value ##as400password
    Parameter key com.ibm5250usealtlogin / Parameter value true

XML Schema

The AppConfig Community, supported by a collection of industry leading EMM solution providers, have defined a standard schema to configure apps. Using this definition, the Glink parameters can be specified in a XML document using the following syntax:
    <managedAppConfiguration>
    <version>1</version>
    <bundleId>no.gar.glink5250</bundleId>
    <dict>
       <string keyName="config.name">
           <defaultValue>
                  <value>MyConfigName</value>
           </defaultValue>
       </string>
       <string keyName="com.servername">
           <defaultValue>
                  <value>MyServerAddress</value>
           </defaultValue>
       </string>
    </dict>
    </managedAppConfiguration>

Please note that the bundleId must match the Glink version you are using; either no.gar.glink5250, no.gar.glink3270, no.gar.glinkvt or no.gar.glink .