Web Services and Applications Deployment Guide - Genesys
Web Services and Applications Deployment Guide - Genesys
Deployment Guide
Web Services and Applications 8.5.0
3/16/2020
Table of Contents
3
4
Architecture 5
Prerequisites 6
8
15
19
Feature Configuration 20
Node Start-Up Procedures 24
Testing the User Interfaces with Workspace Web Edition 26
Web Services Configuration Options Reference 27
29
Workspace Web Edition & Web Services Deployment Guide
RESTRICTED
Note: This is restricted release documentation, and therefore is subject to change and is not complete. Some
features that are described in this documentation might not be fully implemented in the application.
This guide provides information about deploying and configuring Workspace Web Edition & Web Services.
Other Resources
• Workspace Web Edition & Web Services 8.5.x Landing Page
For information about configuring the Workspace Web Edition (agent desktop) interface, refer to Workspace Web
Edition Configuration Guide.
6. Test the User Interface with Workspace Web Edition & Web Services.
End of Procedure
Architecture
On-Premise Architecture
This configuration assumes that you have one contact center for each Workspace Web Edition & Web Services
cluster. The following example depicts a two-node configuration, one node for the Synchronization Node
(SyncNode) and one Client node. You can have any number of Client nodes. Each node must have a connection to
the Cassandra database and the Configuration Layer database.
Prerequisites
The following prerequisites must be met before you can install and configure Workspace Web Edition & Web
Services:
Installing Cassandra
Start of Procedure
2. Copy the Cassandra archive to the installation directory. For example, /usr/local
3. Use a tar utility to extract the files. For example, tar -zxvf apache-cassandra-1.1.11-bin.tar.gz
End of Procedure
Next Steps
• Configure Cassandra
Configuring Cassandra
Start of Procedure
b. Set initial_token according to the place in ring. It must be one of the following:
Node #1: 0
Node #2: 56713727820156410577229101238628035242
Node #3: 113427455640312821154458202477256070484
c. Set seeds to the list of host names of all nodes. For example: -seeds: “node1, node2, node3”
7. Modify the log4j-server.properties file by setting the log4j.appender.R.File according to the created
folder.
8. Modify the cassandra-topology.properties file by updating the cluster topology to match the following:
node1=AZ1:RAC1
node2=AZ1:RAC1
node3=AZ1:RAC1
End of Procedure
Next Steps
2. Use the nodetool utility to verify that all nodes have connected by entering the following command:
End of Procedure
• Google Chrome
Tip
Users, DNs, Places, and Skills are loaded from the Configuration Layer.
The following sections provide details on creating and configuring the Workspace Web Edition & Web Services
application pair.
Purpose: Import the templates for the Workspace Web Edition & Web Services Applications. If the Cloud and
CloudCluster application templates already exist, skip these steps.
1. To create the Cloud template, right-click in the main content area in Configuration Manager and select New >
Application Template.
• Name: Cloud
• Version: 8.5
3. Click OK.
4. To import the Cluster template, right-click in the main content area in Configuration Manager and select Import >
Application Template.
7. Click OK.
End of Procedure
Next Steps
1. Navigate to the Applications folder in Configuration Manager. Right-click and select New > Application.
• Name: Workspace_Web_Edition_Web_Services_850
3. Click OK.
5. On the Server Info tab, choose the appropriate Host object. This automatically adds a corresponding port entry. The
port value is ignored by the server and does not need to be modified.
6. On the Start Info tab, add a “.” to the Working Directory, Command Line, and Command Line Arguments
fields. These values are mandatory for all applications and must be entered to save the application object. Workspace
Web Edition & Web Services does not use these values, so the “.” is used as a placeholder.
• T-Server
• Stat Server
• Configuration Server
Important
Additional connections to Interaction Server and UCS may be configured if
you are using eServices in your deployment. However, if you add a
connection to Interaction Server or to UCS, you must add a connection to
the other. You must connect both or connect neither.
End of Procedure
Next Steps
Important
You must create one Cloud application for EACH node. Each Cloud
application must be configured identically.
Start of Procedure
1. Navigate to the Applications folder in Configuration Manager. Right-click and select New > Application.
• Name: Cloud
• Template: Cloud
Tip
Users, DNs, Places, and Skills are loaded from the Configuration Layer.
The following sections provide details on creating and configuring the Workspace Web Edition & Web Services
application pair.
Purpose: Create the templates for the Workspace Web Edition & Web Services Applications. If the Cloud
and CloudCluster application templates already exist, skip these steps.
• Name: Cloud
• Version: 8.5
• State: Enabled
9. Click OK.
End of Procedure
Next Steps
• Name: Workspace_Web_Edition_Web_Services_850
• State: Enabled
1. Click Add.
3. Click OK.
8. On the Server Info tab, choose the appropriate Host object. This automatically adds a corresponding port entry. The
port value is ignored by the server and does not need to be modified.
9. On the Start Info tab, add a “.” to the Working Directory, Command Line, and Command Line Arguments
fields. These values are mandatory for all applications and must be entered to save the application object. Workspace
Web Edition & Web Services does not use these values, so the “.” is used as a placeholder.
• T-Server
• Stat Server
• Configuration Server
Important
End of Procedure
Next Steps
Important
You must create one Cloud application for EACH node. Each Cloud
application must be configured identically.
Start of Procedure
1. Navigate to the Applications folder in Configuration Manager. Right-click and select New > Application.
• Name: Cloud
• Template: Cloud
Next Steps
1. Copy the cf-schema.txt and ks-schema-prod_HA.txt (or ks-schema-local.txt for a single node
Cassandra configuration) from [install_dir]/data to the cassandra node host.
a. Align the datacenter name with that of the Cassandra cluster. You can use nodetool to find the name of the
datacenter by examining the output of "nodetool ring" (the tool is located in the bin directory of Cassandra) to find
the name of the datacenter). The following is sample output from the nodetool:
c. Edit the contents to adjust the replication factors. (Refer to external documentation on the DataStax website that
provide more details for information about how to choose the correct values).
3. Clean the data, commitlog, and saved_caches folders prior to starting the Cassandra cluster.
End of Procedure
Next Steps
1. Stop Jetty.
6. Copy the configuration files from [build_path]/conf to $JETTY_HOME/genconfig and edit the fields marked
ToBeChanged (refer to Premise Configuration).
End of Procedure
To start each Web Services node, enter the following command line:
The following parameters are mandatory for the web services node:
Start of Procedure
As described below, modify (or remove) each of the following Workspace Web Edition & Web Services
configuration files:
• server-settings.yaml
• onpremise-settings.yaml
• cassandra-cluster.yaml
The following information is specific to deployment of Workspace Web Edition & Web Services in Premise mode.
For a more general description of available Workspace Web Edition & Web Services configuration options, please
refer to the options reference.
1. In the server-settings.yaml, review the options and modify or retain as appropriate for the deployment. This file
contains a number of core parameters that are used by the server.
contactCenterSynchronizationTimeout: 60000
opsUserName: [ToBeChanged: "OPS_USER_NAME"]
opsUserPassword: [ToBeChanged: "OPS_USER_PASSWORD"]
applicationName: [ToBeChanged: "APPLICATION_NAME"]
applicationType: [ToBeChanged: "APPLICATION_TYPE"]
cmeUserName: [ToBeChanged: "CME_USER_NAME"]
cmePassword: [ToBeChanged: "CME_PASSWORD"]
syncNode: [ToBeChanged: true|false]
cmeAuthenticationEnabled: [ToBeChanged: true|false]
nodeId: [ToBeChanged: unique id of the node]
2. In the onpremise-settings.yaml, review the options and modify or retain as appropriate for the deployment. This
file contains a number of core parameters that are used by the server.
cmeHost specifies the host or IP of the Configuration Server and cmePort specifies the port of Configuration
Server.
If there is a backup Configuration Server in the Genesys environment and you want HA support, you can
configure two additional parameters in the onpremise-settings.yaml file: backupCmeHost and
backupCmePort. These are the host (IP) and port of the backup Configuration Server.
thrift_port: 9160
jmx_port: 7199
keyspace: sipfs
nodes: hpe-voicevm-84.genesyslab.com
should_sync_schema: TRUE
write_consistency_level: CL_ONE
read_consistency_level: CL_ONE
max_conns_per_host: 16
max_cons: 16
max_pending_conns_per_host: 80
max_blocked_threads_per_host: 160
retry_sleep_time_ms: 5000
retry_max_attempt: 1
#replication_factor: 1
6. (Optional) Specify retry_sleep_time_ms and retry_max_attempt, which define the Web Services retry policy
as a Cassandra client. If these are not specified, the retry_max_attempt is 1 and retry_sleep_time_ms is
5000 (which equals 5 seconds).
End of Procedure
In a multi-node Workspace Web Edition & Web Services deployment, only a single node should be configured to be
the Synchronization Node. The syncNode option in server-settings.yaml is used to control this functionality.
The Workspace Web Edition & Web Services node that performs synchronization tasks should be configured with
the value of syncNode set to true, and all the other Workspace Web Edition & Web Services nodes configured
with the value of syncNode set to false.
Reporting Configuration
The following procedure outlines the steps that are required to enable Workspace Web Edition & Web Services to
use, store, and expose statistical data. Workspace Web Edition & Web Services uses several statistics internally to
support contact availability and also provides a default set of statistics used by the bundled client applications.
The following steps include the configuration of Workspace Web Edition & Web Services node, Statistics Time-to-
Live, Stat Server, and Contact Center Stat Server host and port.
Start of Procedure
2. Configure the Workspace Web Edition & Web Services node by setting the nodeId property. The value of this option
must be a unique identifier for the Workspace Web Edition & Web Services node.
Each Workspace Web Edition & Web Services node in a cluster must define a unique nodeId. All Workspace Web
Edition & Web Services nodes that share the same Cassandra storage will read the contact centers that require
statistic and divide the monitoring tasks among the Workspace Web Edition & Web Services nodes.
3. In the same file, configure the Statistics Time-to-Live by doing the following:
1. Define the "time-to-live" for statistic storage using the statisticsTTL property. If you do not define this optional
parameter, the default value of 86400 (24 hours) is used.
2. Confirm that the statistics.yaml file is present in the main Workspace Web Edition & Web Services config
folder (defined by the config.path variable, /opt/jetty/genconfig, by default). Modifications to this file are
not typically necessary.
The statistics.yaml file defines which statistics, and for what object types, Workspace Web Edition & Web
Services will request from Stat Server. A default statistics.yaml file is included with the Workspace Web
Edition & Web Services distribution and contains all the statistics Workspace Web Edition & Web Services
requries internally as well as those required by the bundled UI applications.
4. Configure any Stat Server applications in the Genesys environment(s) to which the Workspace Web Edition & Web
Services node/cluster will connect to include a set of statistic definitions that match those included in the
statistics.yaml file. You must do this for both the primary and backup Stat Servers in each Genesys environment
that will be accessed by Workspace Web Edition & Web Services.
A sample Stat Server configuration can be found on the installation CD. This file can be copied locally and imported
using Configuration Manager or Genesys Administrator for both the primary and backup Stat Servers.
End of Procedure
Start of Procedure
1. Start Jetty.
2. To verify that Workspace Web Edition & Web Services Server is up and running, type the following URL into a web
browser:
http://[htcc_host]:[htcc_port]/api/v2/diagnostics/version
If the request is successful, the version will be printed as shown below:
{
statusCode: 0
version: "gws-x.x.xxx.xx"
}
End of Procedure
Feature Configuration
Each contact center that is created in Workspace Web Edition & Web Services is assigned a set of features. A
feature represents a set of functionality that can be enabled or disabled for each contact center. Workspace Web
Edition & Web Services provides APIs that enable clients to read the list of features that are assigned to a contact
center and then show or hide UI elements according to what is specified. New features can also be assigned to or
removed from contact centers after creation.
Supported Features
The following features are currently supported. If a feature is marked "assigned by default" all contact centers have
this feature assigned. Note: Default features cannot be unassigned at this time.
Important
Features that are assigned to contact centers by default cannot be removed using the API. To
change the default set of features for contact centers, a custom feature-definitions.json
file must be included as described in the next section.
The following sample feature-definitions.json removes the two features that are related to call recording
from the default features.
{
"id":"api-provisioning-read",
"displayName":"API Provisioning Read",
"description":"General provisioning read",
"autoAssignOnContactCenterCreate": true
},
{
"id":"api-provisioning-write",
"displayName":"API Provisioning Write",
"description":"General provisioning write",
"autoAssignOnContactCenterCreate": true
},
{
"id":"api-voice",
"displayName":"Voice API",
"description":"API for Voice",
"autoAssignOnContactCenterCreate": true
},
{
"id":"ui-supervisor-provisioning-routing",
"displayName":"UI Supervisor Provisioning For Routing",
"description":"Routing Provisioning UI",
"autoAssignOnContactCenterCreate": true
},
{
"id":"ui-supervisor-provisioning-skill",
"displayName":"UI Supervisor Skill Provisioning",
"description":"UI Supervisor Skill Provisioning",
"autoAssignOnContactCenterCreate": true
},
{
"id":"ui-supervisor-provisioning-user",
{
"id":"ui-supervisor-recording",
"displayName":"UI Supervisor Recording",
"description":"UI For Call Recording Supervisor",
"autoAssignOnContactCenterCreate": false
},
{
"id":"api-supervisor-recording",
"displayName":"API Supervisor Recording",
"description":"API For Call Recording Supervisor",
"autoAssignOnContactCenterCreate": false
},
{
"id":"ui-supervisor-reporting",
"displayName":"UI Supervisor Reporting",
"description":"UI For Reporting Supervisor",
"autoAssignOnContactCenterCreate": true
},
{
"id":"api-multimedia",
"displayName":"Multimedia API",
"description":"API for Multimedia",
"autoAssignOnContactCenterCreate": false
}
]
API Samples
GET http://localhost:8080/api/v2/ops/features
Response:
{ "statusCode" : 0,
"uris" : [ "http://localhost:8080/api/v2/system/features/api-voice",
"http://localhost:8080/api/v2/system/features/ui-supervisor-provisioning-user",
"http://localhost:8080/api/v2/system/features/api-provisioning-write",
"http://localhost:8080/api/v2/system/features/ui-supervisor-provisioning-routing",
"http://localhost:8080/api/v2/system/features/ui-supervisor-reporting",
"http://localhost:8080/api/v2/system/features/ui-supervisor-recording",
"http://localhost:8080/api/v2/system/features/api-supervisor-recording",
"http://localhost:8080/api/v2/system/features/api-provisioning-read",
"http://localhost:8080/api/v2/system/features/ui-supervisor-provisioning-skill",
"http://localhost:8080/api/v2/system/features/api-multimedia"
]
}
GET http://localhost:8080/api/v2/ops/contact-centers
Response:
{ "statusCode" : 0,
"uris" : [ "http://localhost:8080/api/v2/ops/contact-centers/95c81988-b435-48b2-8046-ff7b7e11e524",
"http://localhost:8080/api/v2/ops/contact-centers/8fd8e342-3e25-4224-a485-bf4533e0e2bf"
]
}
Request:
GET http://localhost:8080/api/v2/ops/contact-centers/95c81988-b435-48b2-8046-ff7b7e11e524/features
Response:
{ "statusCode" : 0,
"uris" : [ "http://localhost:8080/api/v2/system/features/api-voice",
"http://localhost:8080/api/v2/system/features/ui-supervisor-provisioning-user",
"http://localhost:8080/api/v2/system/features/api-provisioning-write",
"http://localhost:8080/api/v2/system/features/ui-supervisor-provisioning-routing",
"http://localhost:8080/api/v2/system/features/ui-supervisor-reporting",
"http://localhost:8080/api/v2/system/features/ui-supervisor-recording",
"http://localhost:8080/api/v2/system/features/api-supervisor-recording",
"http://localhost:8080/api/v2/system/features/api-provisioning-read",
"http://localhost:8080/api/v2/system/features/ui-supervisor-provisioning-skill"
]
}
• Reads the list of Genesys environments from Cassandra and test that the environment for the specified cmeHost
and cmePort does not already exist. If it does exists, the existing Genesys environment object is loaded.
• Connects to the Configuration Layer (CME) by using the specified settings and read the Cloud application “Node
1” and the Cluster application.
• From the server-settings.yaml file, “Node 1” determines that this host has to synchronize CME with
Cassandra.
• Attempts to read contact center with predefined name from Cassandra DB:
• If the contact center does not exist, create a new Contact Center and store it in Cassandra.
• Read Cluster (server) application connections, then configure and store or update the Genesys Environment
record.
• Subscribe to notifications for CME updates and continuously synchronize updated objects.
• Reads the list of Genesys environments from Cassandra and test that the environment for the specified cmeHost
and cmePort does not already exist. If it does exists, the existing Genesys environment object is loaded.
• Connects to the Configuration Layer (CME) by using the specified settings and load Cloud application “Node 1”
and the Cluster application.
• From the server-settings.yaml file, “Node 1” determines that this host has to synchronize CME with
Cassandra.
• Attempts to read the contact center by using the predefined name from the Cassandra database:
• Since the contact center already exists in Cassandra, the contact center initial synchronization and creation
step is skipped and the existing contact center and the existing Genesys Environment are used.
• Retrieves the update history log from CME and synchronizes with the updates that occurred since the node
was shutdown.
• Subscribes to notifications for CME updates and continuously synchronizes with updated objects.
• Opens connections to CME, to the Genesys servers, and to the T-Servers on demand, according to Genesys
Environment configuration.
2. Enter the credentials for any of the previously created agents. Note that the user must be of the agent type.
3. After clicking Log In, the Workspace Web Edition agent desktop view is displayed and the agent is ready to work.
server-settings.yaml
Option Description Mandatory Default
externalApiUrl Yes
internalApiUrl Yes
connectionTimeout No 120000
externalApiUrlV2 Yes
reconnectAttempts Yes
reconnectTimeout Yes
activationTimeout Yes
contactCenterSynchronizationTimeout Yes
opsUserName Yes
opsUserPassword Yes
applicationName Yes
applicationType Yes
cmeAuthenticationEnabled No True
cmeUserName Yes
cmePassword Yes
syncNode No
logoutAgentWhenNoActiveCometSessionTimeout No
NodeId No
statisticsTTL No 86400
statConnectionTimeout No 5000
statReconnectAttempts No 1
statReconnectTimeout No 10000
createCallRecordingCF No False
crClusterName No
crRegion No
awsS3AccessKey No
awsS3SecretKey No
awsS3BucketName No
awsS3SocketTimeout should >0 No 50000
awsS3MaxErrorRetry should >=0 No 3
If you open an Issue Request for Workspace Web Edition & Web Services, you must provide ALL of the following
information to assist with troubleshooting and investigating defects:
General Info
• A detailed description of steps that you took to reproduce the issue and the results.
• Screenshots that demonstrate the problem or concern (marked up to indicate the location in the screenshot where the
issue can be seen)
http://[htcc_host]:[htcc_port]/api/v2/diagnostics/version
{
statusCode: 0
version: "gws-x.x.xxx.xx"
}
• Attach the Workspace Web Edition & Web Services log file: Found under /var/log/jetty/cloud.log.
• (There may also be parts of log for a particular date/time already zipped, attach those as well).
• Note: Change log back to INFO as soon as possible, otherwise the VM's disk space will be filled, which can cause
various random errors. Use the df command to check disk space.
• Zip up all those files and attach them to the issue report.