Migrate Genesys Interaction Recording from a Single Tenant to a Multi-Tenant Deployment
This page describes the deployment steps required to migrate Genesys Interaction Recording from a single-tenant deployment to a multi-tenant deployment.
Important
- Before performing the upgrade procedure, verify that a multi-tenant Configuration Server is deployed in your environment.
- The steps on this page should be only performed when you want to add a tenant to a deployment in which a single tenant was previously configured using the existing Single Tenant configuration instructions.
- All the steps on this page should be only performed for each new tenant. The existing installation and configuration will continue to be used for the existing tenant only.
- GIR does not support WWE when configured with a multi-tenant deployment.
To successfully migrate GIR from a single-tenant deployment to a multi-tenant deployment, you must perform the following procedures in the order presented:
For the following steps, please substitute:
- Tenant-specific RPS load balancer URL = <loadbalancer>/t1/rp
- Tenant-specific RCS load balancer URL = <loadbalancer>/t1/rcs
- Tenant-specific SMIR load balancer URL = <loadbalancer>/t1/interactionreceiver
- Tenant-specific WebDAV load balancer URL = <loadbalancer>/t1/recordings
- Tenant-specific Interaction Recording Web Services load balancer URL = <loadbalancer>/t1
...where <loadbalancer>/t1 refers to the load balancer which is described in step 20 (Load Balancing), and t1 is a tenant-specific identifier - subsequent tenants will use t2, t3, etc.
|
- Genesys Administrator Extension (GAX): GAX is already installed in a single-tenant deployment. Therefore, when migrating from a single-tenant deployment to a multi-tenant deployment you do not have to install GAX.
- Interaction Recording Web Services (RWS) (or Web Services and Applications if you're using version 8.5.210.02 or earlier)
In a multi-tenant deployment, each tenant must deploy a separate instance of Interaction Recording Web Services.
Perform the steps described on the Interaction Recording Web Services (RWS) (Web Services and Applications) pages.
When performing these steps, consider and perform the following instructions for each additional tenant added to the existing tenant:
WebDAV [+] Show steps.
Cassandra [+] Show steps.
Important
When migrating from a single-tenant to a multi-tenant deployment, you do not have to deploy Cassandra since it is already deployed in the single-tenant deployment. You only need to add a keyspace per tenant. The existing keyspace (
sipfs) will continue to be used for the existing tenant only.
- Each tenant must have a separate keyspace for Interaction Recording Web Services (Web Services) on Cassandra. Follow the steps in either Initializing Cassandra or in the Initializing Cassandra section in the Web Services and Applications Deployment Guide (if you are using GIR version 8.5.210.02 or earlier) with the following exceptions:
CHANGED TEXT BEGINS
- When deploying the ks-schema file, replace the keyspace name from sipfs to a tenant-specific name such as sipfs1 as follows:
CREATE KEYSPACE sipfs1 WITH replication = {'class': 'SimpleStrategy',
'replication_factor': '2'} AND durable_writes = true;
- After the keyspace is created, update the schema file cf-schema.cql by changing the first line from sipfs to the tenant-specific keyspace name sipfs1 as follows:
CREATE TABLE sipfs1.accounts (
key text,
column1 text,
value blob,
PRIMARY KEY (key, column1)
) WITH COMPACT STORAGE
AND CLUSTERING ORDER BY (column1 ASC)
AND bloom_filter_fp_chance = 0.01
AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
AND comment = ''
AND compaction = {'class':
'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}
AND compression = {'sstable_compression':
'org.apache.cassandra.io.compress.SnappyCompressor'}
AND dclocal_read_repair_chance = 0.0
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.1
AND speculative_retry = 'NONE';
CHANGED TEXT ENDS
Elasticsearch [+] Show steps.
- In a multi-tenant deployment, the recommended deployment approach for Elasticsearch is a standalone Elasticsearch cluster shared across multiple tenants, with each tenant owning separate indexes. The minimum number of Elasticsearch nodes that should be deployed in a High Availability (HA) environment is 3. To deploy Elasticsearch properly for a multi-tenant deployment, refer to either the Elasticsearch section on the Configuring Features page or to the Prerequisites section in the Web Services and Applications Deployment Guide (if you're using GIR version 8.5.210.02 or earlier).
Interaction Recording Web Services [+] Show steps.
- You must create a separate Interaction Recording Web Services (Web Services) instance for each tenant (Note: Each instance can be a cluster of 2 or more High-Availability nodes):
- If you are using version 8.5.210.02 or earlier, follow the steps in the Installing section of the Web Services and Applications Deployment guide. Otherwise, follow the instructions in the Installing page in this guide. Note: The RWS instructions are different depending on whether you are using Interaction Recording Web Services by itself, or Interaction Recording Web Services together with Web Services.
- You must create a separate Cluster application for each tenant (note that this is shared per tenant between Interaction Recording Web Services and Web Services if you are using both services), and a separate Node application per tenant per server instance.
- For the Cluster application:
Change the name to IRWS_Cluster_<tenant> or WS_Cluster_<tenant>, depending for which service the cluster is being created, where <tenant> is the tenant name.
In the Tenants tab, click Add, select the tenant object that you want to configure for Interaction Recording Web Services (or Web Services) and click OK.
- For the Node application:
For a standalone deployment of Interaction Recording Web Services, make the connection to the IRWS_Cluster_<Tenant> application and name the application IRWS_Node_<Tenant>, where <tenant> is the tenant name.
For Web Services (when using version 8.5.210.02 or earlier) or a deployment where Interaction Recording Web Services is being used together with Web Services, make the connection to the WS_Cluster_<Tenant> application and name the application WS_Node_<Tenant> (when using version 8.5.210.02 or earlier), or IRWS_Node_<Tenant> (when using Interaction Recording Web Services together with Web Services) where <tenant> is the tenant name.
- For each Interaction Recording Web Services (Web Services) tenant instance, the Jetty genconfig/application.yaml must have the following parameters:
- keyspace: <Cassandra keyspace assigned to this tenant as per “Create separate keyspace”>
- nodes: <the shared Cassandra nodes>
- For each Interaction Recording Web Services (Web Services) tenant instance, the Jetty genconfig/application.yaml must have the following parameters (if you are using Web Services and Application version 8.5.201.09 or earlier modify the server-settings.yaml and not application.yaml):
- externalApiUrlV2: http://<tenant-specific Interaction Recording Web Services load balancer URL>/api/v2
- internalApiUrlV2: http://<tenant-specific Interaction Recording Web Services load balancer URL>/internal-api
- undocumentedExternalApiUrl: http://<tenant-specific Interaction Recording Web Services load balancer URL>/internal-api
- applicationName: <the WS_Node_<Tenant> name assigned for this tenant>
- crClusterName: <Elasticsearch cluster name as per cluster.name>
- crossOriginSettings/allowedOrigins: <tenant-specific Interaction Recording Web Services Servers>, <tenant-specific SpeechMiner Web Servers>
- Configure Voice Recordings: Follow the same instructions as for the single-tenant deployment. Whenever Interaction Recording Web Services server (Web Services server) is specified, replace it with the tenant-specific Interaction Recording Web Services server (Web Services server) instance.
When reference is made to the storage credentials, use the tenant-specific WebDAV Server credentials as configured in the WebDAV Server section above.
- Configure Screen Recordings: Follow the same instructions as the single tenant instructions. Whenever Interaction Recording Web Services server (Web Services server) is specified replace it with the tenant-specific Interaction Recording Web Services server (Web Services server) instance.
When reference is made to the storage credentials, use the tenant-specific WebDAV Server credentials as configured in the WebDAV Server section above.
- SIP Server
In a multi-tenant deployment, each tenant must deploy a separate SIP Server instance, each with its own tenant-specific Switch object.
Important
A new SIP Server application object must be created for each new tenant. The existing SIP Server will continue to be used for the existing tenant.
The GIR deployment instructions for SIP Server are the same as for a single tenant and must be performed for each additional tenant added to the existing tenant.
- Genesys Voice Platform (GVP)
GVP is a shared resource for all tenants. Follow the instructions in this link to deploy the Resource Manager and Media Control Platform that are shared for all tenants.
When creating the tenant-specific IVR profile, change the steps as follows:
Important
A new voice platform profile must be created for each new tenant. The existing voice platform profile associated with the Environment tenant will be used for the existing tenant only.
[+] Show steps.
In Step #1 on the Genesys Voice Platform (GVP) page:
- Under GAX, switch the view to the tenant you want to configure.
- Navigate to Configuration > System > Configuration Manager and under Voice Platform, select Voice Platform Profiles and click New.
In Step #3 on the Genesys Voice Platform (GVP) page:
- Change recordingclient.callrec_authorization to rp_username and re_password.
In Step #4 on the Genesys Voice Platform (GVP) page:
- In the Recording tab, following the same instructions, but change the following parameters with tenant-specific information:
- Storage destination—http://<Tenant-specific WebDAV load balancer URL>
- Storage HTTP Authorization header—<Tenant WebDAV Server authorization>
- Recording Processor—URI–http://<Tenant-specific RPS load balancer URL>/api/contact-centers/<Contact Center Domain Name>/recordings/
- SpeechMiner Interaction Receiver—http://<Tenant-specific SMIR load balancer URL>
- SpeechMiner Interaction Receiver Authorization header—<Tenant Interaction Receiver authorization>
- Interaction Concentrator (ICON)
When following the instructions on this page, use a tenant-specific instance of ICON and ICON DB.
Important
A new ICON instance and a new ICON DB instance must be created for each new tenant. The existing ICON and ICON DB instances associated with the Environment tenant will be used for the existing tenant only.
- Depending on the component you are using between Voice Processor and Recording Processor Script, follow the instructions below:
Voice Processor
Follow the instructions on this page except for the following for each additional tenant.
Important
A new Voice Processor instance must be created for each new tenant. The new instance must be configured to reference the appropriate tenant specific component instances. The existing Voice Processor instance will be used for the existing tenant only.
- Deploy separate instances of the Voice Processor for each tenant.
- Configure the following settings in the settings-override.yml:
Recording Processor Script (RPS)
Follow the instructions on this page except for the following for each additional tenant.
Important
A new Recording Processor (RP) instance must be created for each new tenant. The new RP instance must be configured to reference the appropriate tenant specific component instances. The existing RP instance will be used for the existing tenant only.
- Deploy separate instances of the Recording Processor for each tenant.
- Replace the following configuration parameters with tenant-specific instances of Interaction Recording Web Services (or Web Services and Applications if you're using version 8.5.210.02 or earlier) and ICON DB: [+] Show parameters.
- htcc.base_uri—Set this to the Tenant-specific Interaction Recording Web Services load balancer URL.
- htcc.username
- htcc.password
- icon_db_servers
- Recording Crypto Server (RCS)
When deploying RCS, use a tenant-specific instance of RCS.
Important
A new RCS instance must be created for each new tenant. The existing RCS instance will be used for the existing tenant only.
Follow the instructions on this page for each additional tenant, except for the following:
[+] Show steps.
- In the RCS application object, replace the following parameters with tenant-specific instances of Interaction Recording Web Services (or Web Services and Applications if you're using version 8.5.210.02 or earlier):
- htcc.baseurl—Set to the Tenant-specific Interaction Recording Web Services load balancer URL
- htcc.user
- htcc.password
- cors.allow-origins—Set to the Tenant-specific Interaction Recording Web Services load balancer URL.
- On the Annex tab for the specific tenant object:
- Create a new section called Recording.
- Create a parameter called: rcsurl.
- Set its value to the Tenant-specific RCS load balancer URL.
- In the [recording.archive] section, set speechminerurl = <Tenant-specific SMIR load balancer URL>.
- Recording Plug-in for GAX
Execute the Solution Deploy SPD file for each additional tenant, to create the appropriate tenant Access Groups, Roles, and Permissions. For additional information, refer to the Example Solution SPD File page.
Follow the instructions in the "Multi-Tenant Environment" subsection within the “Configure for Screen Recording” section.
- Deploying Encryption
Follow the instructions on this page and perform the following for each additional tenant:
[+] Show steps.
- Upload tenant certificates:
- Log into GAX using a user account belonging to the tenant.
- Follow the instructions about how to configure the encryption of voice recordings in the For Call Recordings section.
- For each tenant, configure the decryption proxy by following the steps in the Setting up the Decryption Proxy section.
Note: Replace Web Services and RCS URI with the tenant-specific addresses.
- Screen Recording Service
Follow the instructions on this page.
When using the command line to install the SR Service, change the /server parameter in the setup to point to the Interaction Recording Web Services tenant instance. For example: setup.exe /server=<Tenant-specific Interaction Recording Web Services load balancer URL>.
- Screen Recording Service - Advanced Configuration
Follow the instructions on this page for each additional tenant and replace the Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) instance with an Interaction Recording Web Services (Web Services) tenant instance.
For WDE, follow these WDE instructions and set the following:
screen-recording.htcc.uri: <Tenant-specific Interaction Recording Web Services load balancer URL>
- Recording Muxer Script
Follow the instructions on this page to deploy tenant-specific instances of Muxer to each additional tenant.
Replace the following parameters with tenant-specific values: [+] Show parameters.
- htcc.base_uri—Set this to the Tenant-specific Interaction Recording Web Services load balancer URL
- htcc.contact_center_id
- htcc.username
- htcc.password
- rcs.base_uri—Set set this to the Tenant-specific RCS load balancer URL.
- rcs.username
- rcs.password
- webdav.username
- webdav.password
- Interaction Recording Options Reference
Refer to this page for a description of the configuration options.
- User Access
Follow the instructions on this page for each additional tenant and consider the following:
[+] Show notes.
Environment Tenant
Deployment Steps
|
Description
|
1
|
Create a new Configuration Manager object for the Environment tenant (used for SpeechMiner access), so that only users associated with the Environment tenant can access the SpeechMiner instance configured for the Environment tenant.
Important Create a new Configuration Manager Application object for the Environment tenant for SpeechMiner access only if it does not already exist.
The new Configuration Manager object must be restricted to Environment tenant users only (that is, Environment\Administrators and Environment\Users) and super administrators.
|
Additional Tenants:
Deployment Steps
|
Description
|
1
|
To restrict logging into the SpeechMiner UI, a new Configuration Manager object must be created for each tenant. Back up the default Configuration Manager object, since this object is accessible by all users from all tenants.
For the tenant-specific Configuration Manager object, the permission must be restricted to tenant users (for example, TenantN\Administrators and TenantN\Users), and super administrators. For example for CME:
|
2
|
The agent hierarchy for each tenant must be configured to ensure the agents for each tenant are on a different agent hierarchy. While the previous step prevents a user from connecting to a SpeechMiner UI associated with a tenant the specific user is not allowed to use, the agent hierarchy ensures a unified hierarchy for all users in the Management Framework. For example, recording.agent_hierarchy for users in Tenant 1 would start with /Tenant1. Sub-teams could be a child of /Tenant1.
|
3
|
Users of each tenant will be assigned to the appropriate Roles in each tenant created by the Recording SPD. The Environment tenant should not be expected to have the Roles created by the SPD.
|
4
|
Users of each tenant will be assigned to the appropriate Access Groups in each tenant (but not the Environment tenant). Although the Recording SPD always creates a "/" for each tenant, it is recommended (per step #2) to create a /TenantX Access Group object and assign it to the appropriate tenant users.
|
- Speech and Text Analytics (SpeechMiner)
When following the instructions on this page, create a separate SpeechMiner instance for each additional tenant.
To do this, you must configure the following items for each tenant:
[+] Show items.
Environment Tenant
SpeechMiner Server Configuration
Deployment Steps
|
Description
|
1
|
Run SMConfig for the environment tenant, and set the Database to the Environment tenant-specific SpeechMiner database instance.
|
2
|
On the Recording tab, change the User Application Name to be the name of the Configuration Manager application object used for SpeechMiner purposes for the Environment tenant, as per the User Access section above. Note: The default Configuration Manager application object must no longer be used for this purpose.
|
Additional Tenants
SpeechMiner Database
Deployment Steps
|
Description
|
1
|
A shared SQL Server instance can be used by all SpeechMiner tenants. All SpeechMiner machines must be configured to connect to the same SQL Server and create a separate SpeechMiner database for each tenant.
|
2
|
A separate SpeechMiner database must be configured for each tenant. When installing the database portion of the SpeechMiner installation, create a new database for each tenant.
|
SQL Server Reporting Services
Deployment Steps
|
Description
|
1
|
A shared SQL Server Reporting Service can be used by all SpeechMiner tenants. All SpeechMiner machines must be configured to connect to the same SQL Server and create a separate SpeechMiner database for each tenant.
|
SpeechMiner Server Configuration
Deployment Steps
|
Description
|
1
|
For each tenant, create separate application objects for SpeechMiner components:
- <Speechminer prefix>_ClientApplications
- <Speechminer prefix>_InteractionReceiver
- <Speechminer prefix>_Platform
- <Speechminer prefix>_Web
Where <Speechminer prefix> is a name assigned for the tenant. This name is used later in step #7.
|
2
|
For each tenant in the SpeechMiner server, create separate UNC paths for the data directory. The data directory will hold files for Index, plus additional SpeechMiner files for the tenant.
|
3
|
After successfully installing the SpeechMiner software on each server, run SMConfig on each server, and set the Database to the tenant-specific SpeechMiner database instance. For example, speechminer855_sm2 is the database name.
|
4
|
On the Sites & Machines page:
- Configure the paths to folders for the tenant created in step #2
- Configure machines for this tenant for Web, Interaction Receiver, and Index
- Configure the primary/backup configuration server IP:port
|
5
|
On the Report Deployment page:
- Enter the server name for the shared SQL Server Reporting Services and deploy the MRSLibrary and reports for this tenant.
- After deploying the reports, use Internet Explorer to make sure the connection to the database source is configured. The default location is http://<SSRS server>/reports.
- Click on the database name that was chosen for this tenant.
- Click on SME to access the data source properties.
- Verify that the data source has a proper connection.
- Click Test Connection to validate, and click Apply to save the settings.
|
6
|
Follow existing deployment instructions for License, Services, Audio, and Index.
|
7
|
On the Recording tab, each tenant has different settings:
- Configuration
- Tenant - The tenant name as per the configuration server.
- Application Name - The SpeechMiner prefix for the application objects as per step #1.
- Users Access Group - The tenant-specific Access Group that contains the list of SpeechMiner users for the tenant.
- User Application Name - The name of the new Configuration Manager application object for the tenant as per step #1 in the Additional Tenants subsection of the User Access section above.
- Interaction Receiver - The RP Authorization.
- RP Authorization - Authorization for the tenant-specific RP.
- Playback
- RCS URI = <Tenant-specific RCS load balancer URL>
- External RCS URI = <Tenant-specific RCS load balancer URL>
- HTCC URL = <Tenant-specific Interaction Recording Web Services load balancer URL>
|
- Security (TLS)
Follow the instructions on this page for each additional tenant.
- Media Lifecycle Management
Follow the instructions on this page for each additional tenant and verify that the Interaction-Receiver settings group points to a tenant-specific Interaction Receiver. In the SpeechMiner section, use tenant Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) and tenant Interaction Receiver instances. Set the SpeechMiner Interaction Receiver URL to the Tenant-specific SMIR load balancer URL when enabling Interaction Recording Web Services to contact Interaction Receiver.
- Recording Storage Folder Hierarchy
Follow the instructions on this page for each additional tenant using a tenant WebDAV server instance.
- Feature Configuration
Follow the instructions on this page for each additional tenant.
Note: Audio Tones are applicable on a per-tenant basis.
- Load Balancing
Follow the instructions on this page.