Contents
Configuration Options Reference
This page provides descriptions and explanations of Genesys Mobile Services-specific options.
Overview
By default, the Options tab for your Genesys Mobile Services Application object contains several sections with configuration values.
- Log — Standard log file options for this Application object. For more information about these options, refer to your Genesys Framework documentation.
- gms — Configuration settings used across different services.
- push — Configuration settings for the Notification sub-service.
- resources — Configuration details for handling of resource groups.
- server — This section describes configuration options specific to each Genesys Mobile Services Application instance.
- service.servicename — Every service you want to provide using this instance of Genesys Mobile Services can have a custom entry created using this format. The default installation provides two examples:
- service.request-interaction
- service.query
- port_restrictions — Configuration settings for port restrictions.
gms Section
Changes take effect: Immediately.
Option name | Option type | Default value | Restriction on value | Description |
---|---|---|---|---|
http.use_lax_redirect_strategy | Boolean | true | Optional
Valid boolean |
Instructs GMS to use the Lax Redirect Strategy implementation that automatically redirects all HEAD, GET and POST requests. This strategy relaxes restrictions on automatic redirection of POST methods imposed by the HTTP specification. (Introduced in GMS 8.5.002.02) |
http.connection_timeout | Integer | 10 | Optional
Valid integer (seconds) |
Connection timeout (in seconds) for http connections to be established from gms to other servers (ORS, httpcb and cluster resource service). Default is set pretty low, so should be on the fast network. |
http.socket_timeout | Integer | 10 | Optional
Valid integer (seconds) |
Socket timeout (in seconds) for reading data over established http connection from gms to other servers(ORS, httpcb and cluster resource service). Default is set pretty low, so should be on the fast network. |
http.max_connections_per_route | Integer | 20 | Optional
Positive integer |
GMS will use these number of concurrent connections to connect to each http server. All subsequent concurrent requests will be queued. |
http.max_connections_total | Integer | 100 | Optional
Positive integer |
GMS will use these number of concurrent connections to connect to any of the http servers. |
http.client_port_range | Integer Range (eg., 52000-53000) | System assigned | Optional
Max Range (0-65535) |
All http client requests from GMS to other servers will use a client socket port from the specified range. If the selected port is already in use, then the request is tried using the next port in a serial fashion. If this option is not specified then the OS will assign a random available port for the request. |
http.proxy-auto-config-file | String | Optional
Valid URL |
Specifies the proxy auto-config (PAC) file location. For example:
(Introduced in 8.5.006.09) | |
http.proxy-cache-size | Integer | 32 | Optional
Valid integer |
Size of the cache that stores URLs that were already processed. If the requested URL is in the cache, GMS will not process the PAC file.
(Introduced in 8.5.006.09) |
http.proxy-ttl | Integer | 5 | Optional
Valid integer (minutes) |
Specifies the interval to refresh PAC content.
(Introduced in 8.5.006.09) |
push Section
Changes take effect: After restart. The push configuration includes three logical groups of options: general configuration, push provider configuration, and OS-specific message formatting. For more information about providers and OS-specific message formatting refer to Genesys Mobile Services Push Notification Service.
In the following table, values for the affinity column can be:
- general - The option applies to general behavior.
- provider - The option describes the provider configuration used for accessing the target (APPLE APNS service, GOOGLE C2DM service, http address).
- OS-formatting - The option affects the resulting OS-specific message output.
Option name | Affinity | Option type | Necessity | Restriction on value | Notes |
---|---|---|---|---|---|
Common Notification Options | |||||
customhttp.url | provider | string | Mandatory | Valid URL | This is the URL where the notifications will be pushed. The subscriber must provide a URL that will be invoked. GMS posts the payload to this URL (using HTTP POST). The Payload is a JSON object that contains two properties: the deviceId, which is the custom id provided at subscription time by subscriber, and the message, which is the notification message. |
defaultSubscriptionExpiration | general | Integer | Optional | Any Integer>=30 | Default subscription expiration (in seconds). If not set or assigned an incorrect value, the default value (30) will be used. |
pushEnabled | provider | Collection<String> | Mandatory | A comma-delimited list of strings that describe the enabled push types. Currently, the following push types are supported: android and/or gcm and/or ios and/or httpcb and/or orscb and/or customhttp. Any other push type will be ignored. If an option value is not set then it will be handled as empty string option value (that is, push will be disabled for all supported types and the push service will not work at all). | |
Apple Notification Options
Note: Please see the relevant documentation at developer.apple.com for information about OS-Specific message formatting options. Note that if no alert-related options are specified, the alert dictionary entry will not be included in the JSON sent to the Apple device. | |||||
apple.keystore | provider | String | Mandatory | valid path | The keystore location (path to the file) for iOS push notifications. |
apple.keystorePassword | provider | String | Mandatory | not null (but may be empty string) | The password used to access the keystore. If the password is incorrect then attempts to push messages will fail with corresponding log entries. |
apple.content-available | OS-formatting | Integer | Optional | Any String | Provide this key with a value of 1 to indicate that new content is available. This is used to support Newsstand apps and background content downloads.
Newsstand apps are guaranteed to be able to receive at least one push with this key per 24-hour window. |
apple.alert | OS-formatting | String | Optional | Any String | If specified (not null), it becomes the message text of an alert with two buttons: Close and View. If the user taps View, the application is launched. |
apple.alertMessage.body | OS-formatting | String | Optional | Any String | If specified (not null), used as body entry in alert dictionary (iOS-specific). |
apple.alertMessage.action-loc-key | OS-formatting | String | Optional | Any String | If specified (not null), used as action-loc-key entry in alert dictionary (iOS-specific). |
apple.alertMessage.loc-key | OS-formatting | String | Optional | Any String | If specified (not null), used as loc-key entry in alert dictionary (iOS-specific). |
apple.alertMessage.loc-argnames | OS-formatting | String | Optional | Any String | If specified (not null), used as loc-args entry in alert dictionary (iOS-specific). |
apple.alertMessage.launch-image | OS-formatting | String | Optional | Any String | If specified (not null), used as launch-image entry in alert dictionary (iOS-specific). |
apple.badge | OS-formatting | Integer | Optional | Any Integer | If specified (not null), used as badge entry in aps dictionary (iOS-specific). |
apple.sound | OS-formatting | String | Optional | Any String | If specified (not null), used as sound entry in aps dictionary (iOS-specific). |
Android Notification Options | |||||
android.senderEmail | provider | String | Mandatory | Valid mail (sender account registered in Google service) | The valid name of a mail account. Notifications will be sent on behalf of this account. After signing up for C2DM, the sender account will be assigned the default quota, which currently corresponds to approximately 200,000 messages per day. If the default quota is not sufficient for your purposes, please see http://code.google.com/android/c2dm/quotas.html. |
android.senderPassword | provider | String | Mandatory | Valid password of registered account | The password for the specified mail account. |
android.senderAccountType | provider | String | Mandatory | Not null, may be empty | Specified when initializing a C2DM push service. |
android.source | provider | String | Mandatory | Not empty | Specified when initializing a C2DM push service. |
android.ssl_trust_all | provider | Boolean | Optional | If included and true, indicates that any SSL certificate provided during an establishing HTTPS connection to https://www.google.com/accounts/ClientLogin and https://android.apis.google.com/c2dm/send addresses are considered valid, regardless of their presence in keystore/truststore used by environment. Default value: false.
Please note that setting this option to true is not recommended. It is preferred behavior to configure the security system so that only received certificates are permitted. | |
android.delayWhileIdle | OS-formatting | Boolean | Optional | If included and true, indicates that the message should not be sent immediately if the device is idle. The server will wait for the device to become active (only the last message will be delivered to device when it becomes active). Default, or unspecified, value: false. | |
android.collapseKey | OS-formatting | String | Mandatory | Not empty | An arbitrary string that is used to collapse a group of like messages when the device is offline, so that only the last message gets sent to the client. This is intended to avoid sending too many messages to the phone when it comes back online. Note that since there is no guarantee regarding the order in which messages are sent, the "last" message in this case may not actually be the last message sent by the application server. |
android.unavailability_retry_timeout | provider | Integer | Optional | Any Positive Integer | This parameter specifies the default timeout (in seconds) to wait before Google C2DM service can be accessed again if the request returned the 503 code (Service unavailable). Note that this value is ignored if the 503 response from Google contains valid Retry-After header. The default value, used if a value is not specified or is incorrect, is 120. |
android.gcm.apiKey | provider | String | Mandatory | Not empty | Valid Google API Key. See Google CDM description. Please see http://developer.android.com/guide/google/gcm/gs.html |
android.gcm.retryNumber | provider | Integer | Optional | Retry attempts (in case the GCM servers are unavailable). | |
localizationFileLocation | provider | String | Optional | Location of the file containing the list of localized messages. Please see Localization File. |
Note: Please note that the number of C2DM messages being sent is limited. For details, refer to http://code.google.com/android/c2dm/quotas.html. |
Each provider can contain 2 channels for message sending - production and debug for each target type. The provider-affiliated options enlisted above describe the production channel. For each provider-related option <option-name> the sibling option can be provided with name debug.<option-name>. Such options will describe the provider-specific configuration of debug channel for corresponding target type. The debug channel will be enabled for enabled target type only if all mandatory options will be specified for debug channel. The OS-message formatting options do not have production-debug differentiation.
push.provider.providername Section
It is possible to create providers by adding push.provider.providername sections which contain the appropriate credential configuration options that are associated with a given provider. This allows you to control and isolate notifications and events between a given provider and the associated services/applications that are using it. This type of provider name section can only contain provider-related options (as listed in push section). All providers are isolated - if the option is not specified in provider's section, then it is not specified. If a mandatory option is missing then the corresponding target type will not be enabled, even if that type is present in the pushEnabled option. Please note that we have the following restriction on providername: it may only contain alphanumeric characters, the underscore (_), and the minus sign (-).
push.provider.event Section
You can define the event definitions associated across providers by adding your push.provider.event section, and then setting the appropriate OS-specific attribute options within. This will allow you to add OS-specific attributes to a published event message that is going to any provider’s push notification system. This section can contain OS formatting-related options. All other options will be ignored. For more information about providers and OS-specific message formatting refer to Genesys Mobile Services Push Notification Service.
push.provider.event.eventname Section
You can define the event definitions associated across providers by adding a custom push.provider.event.eventname section, and then setting the appropriate OS-specific attribute options within. This will allow you add OS-specific attributes to a published event message that is going to a specific channel for given group of events tags. This section can contain OS formatting-related options. All other options will be ignored. For more information about providers and OS-specific message formatting refer to Genesys Mobile Services Push Notification Service.
push.provider.providername.event.eventname Section
You can define the event definitions associated with given provider by adding your push.provider.providername.event.eventname section, and then setting the appropriate OS-specific attribute options within. This will allow you add OS-specific attributes to a published event message that is going to a specific provider and channel for given group of events tags. This section can contain OS formatting-related options. All other options will be ignored. For more information about providers and OS-specific message formatting refer to Genesys Mobile Services Push Notification Service.
resources Section
Changes take effect: Immediately.
Option name | Option type | Default value | Restriction on value | Description |
---|---|---|---|---|
resources_list_name | String | GMS_Resources | Mandatory | Name of the Strategy configuration object (of type List) which holds configuration details of resources and resource groups. |
user_control | String | false | If not present, the default value is used. | This option enables GMS to control resource access based on gms_user header passed in the GMS request. Option is dynamic. |
List Object Options: Each section in the Annex is a group that should have distinct list options specified. | ||||
_allocation_strategy | String | RANDOM | Should correspond to one of the supported allocation strategies. Otherwise the default strategy will be used. | Supported strategies:
|
_booking_expiration_timeout | Integer | 30 | Valid integer (seconds) | Determines the maximum amount of time, in seconds, that a resource may be allocated. If the resource is not released before this time limit elapses, it is automatically returned to the pool of available resources. This option is used with the LOCAL and CLUSTER allocation strategies. |
_backup_resource | String | Existing resource | The resource returned if there are no regular resources available. This option is used with the LOCAL and CLUSTER allocation strategies. | |
List Entries | ||||
All keys not starting with # or _ | String | The value is put into the pool of resources. The option name may be anything (since that value is not currently used). |
The following screenshot shows an example of an application object configured in Configuration Manager.
Example
[Dnis_Pool] _allocation_strategy = LOCAL _booking_expiration_timeout = 20 dnis1 = 1-888-call-me1 dnis2 = 1-888-call-me2 dnis3 = 1-888-call-me3
Note: For testing purposes, Genesys recommends that you include at least three numbers in the pool. If only a single number is defined in the pool, when the API call is made, that number is allocated for 30 seconds (default). If another API call is made before the number is returned to the pool, an error will occur. Alternatively, if using a single number, use _allocation_strategy = RANDOM.
server Section
Changes take effect: Immediately.
Option name | Option type | Default value | Restriction on value | Description |
---|---|---|---|---|
access_code_prefix | Integer | Optional | This value is a range of access_code; the value must be unique for each GMS node accross the cluster. GMS will randomly choose within this range the access_code_prefix that it will associate as the prefix for access_code. If the option is not present, GMS will use the nodeId value instead. An example range is 455,456-458 where the prefix can be 455, 456, 457, or 458. | |
external_url_base | String | Optional | Specifies the external url used by the Storage Service to allow the retrieval of a binary attachment. This is useful in the case of a Load Balancer deployment. The valid value is http://<web_host>:<web_port>/, where web_host is used by the cluster service to identify a node; and where web_port is used by the cluster service to identify a node. The web_port value must be the same as the GMS port described in the jetty configuration file, otherwise an alarm will be displayed in Solution Control Interface (SCI) and GMS will stop. | |
node_id | Integer | Mandatory, two-digit number | Specifies a two-digit number that should be unique in the Genesys Mobile Services deployment. It is used in the generation of DTMF access tokens. | |
dateFormat | String | Optional | The string used to format dates. Syntax of the string should meet the expectations of java class java.text.SimpleDateFormat. See Simple Date Format for details. | |
Cluster Service options | ||||
web_host | String | result of InetAddress.getLocalHost() | Optional, valid host name | InetAddress.getLocalHost() is not only default value, it is the value that will be used in the most cases. This configuration value is used in cases when there are problems obtaining local name. |
web_port | Integer | 80 | Optional, valid TCP port | Use this option to set a different port than the port that GMS uses (Note: GMS uses port 8080, which can be changed in the jetty.xml file). This option can be used in the case of proxy (role of the customer to forward requests). At startup, GMS checks that a GMS is available on the port specified in web_port. If a GMS is not available, the web_port option alarm (EventId 2002) is thrown. |
app_name | String | gsg_web | Optional, valid http path | Web application "context" path. |
service.servicename Section
You can create customized services by adding your service.servicename section, and then setting the appropriate options within.
Option name | Option type | Default value | Restriction on value | Description |
---|---|---|---|---|
_type | String | Mandatory |
| |
_service | String | Mandatory |
| |
_ors | String | Optional | Note: Only used for Orchestration Server-based services.
The URI of the ORS instance or load balancer for this service, allowing different ORS clusters to be used by a single Genesys Mobile Services deployment. Overrides any ORS connections, if they are present. Should be used to direct Genesys Mobile Services to a load balancer that is located in front of multiple ORS instances. This option is specific to each service. If not present, Genesys Mobile Services will use the ORS instance defined in the Application object during installation. Only the base URL needs to be specified. Genesys Mobile Services will use the standard URL path to start ORS session and pass events. Example:http://<host>:<port> | |
_booking_expiration_timeout | Integer | Optional
Valid values: Lower limit is 5 seconds and upper limit is 1800 seconds (30 minutes). |
This option is specific to the service.request-interaction and service.request-access services, and applies only to LOCAL and CLUSTER allocation strategies.
This option allows you to set a different value per service for the booking expiration timeout. This value can also be passed through the request-access URI parameter. Note that the value passed through the request-access URI parameter will override the value in the service section. | |
_return_pool_health | Boolean | Optional
Valid values: true/false |
This option is specific to the service.request-interaction and service.request-access services, and applies only to LOCAL and CLUSTER allocation strategies.
This option allows you to return metrics about pool health used to allocate the resource. | |
_agent_timeout_notification_message | String | Optional
Customer is not online |
This option is specific to Chat services using an auto-push notification solution. This option specifies the message that will be sent to the agent in a chat session when the customer is not online but the session is still alive. CometD channel is not working and a new message arrives from Agent. | |
_client_timeout_notification_message | String | Optional
New message from Agent |
This option is specific to Chat services using an auto-push notification solution. This option specifies the message that will be sent to the customer as a notification on the device specified at subscription time. This message will be sent when the customer chat session, which is still alive, is not running as an active application (CometD is not working) and the agent is sending a message.
The subscription Id that is retrieved from the GMS subscription request must be set as a parameter of the invoked chat service (parameter key: 'subscriptionID') to be able to receive auto push chat notification. | |
_mandatory_customer_lookup_keys | String | _customer_number | Mandatory | This option is specific to the Callback services.
The value is a list of mandatory customer lookup keys that must be in the Callback schedule request. If a lookup key is missing the schedule request, it is rejected with an invalid option message and an HTTP Bad Request error code. By default, the value is _customer_number. Example 1: Options:
Result: The default value for both options is _customer_number. Example 2: Options:
Result: The mandatory value in the request is _customer_number, however, you can also search by the _email_address value. Note: _customer_lookup_keys (for lookup) is a superset of (⊇) _mandatory_customer_lookup_keys (Introduced in 8.5.006.09) |
Additional options vary depending on the type of service being created. For more information, refer to documentation for the corresponding service in the Genesys Mobile Services API Reference.
port_restrictions Section
See Restricting Ports for information about these configuration options. Changes in this section require an update to the jetty.xml file on all GMS nodes, and then restarting GMS.