Contents
Recording Deployment (New)
Prerequisites
No-Media Integration Deployment
EXEC deployment for No-Media Integration should be up and running before the configuration required for the Recording Injection is added to the environment. See No Media Deployment for more information.
Mandatory Environment Elements
WebDAV
WebDAV is required only for the Recording Injection. EX Engage Connector supports any standard WebDAV server. Customers should plan to use 30 GB of WebDAV memory for contact centers with 1000 concurrent recording calls.
HTTP Load Balancer
HTTP Load Balancer is required only for the Recording Injection. EX Engage Connector supports any standard HTTP load balancer.
Virtual Machines for the EXRP Component
- A minimum of 2 VMs (N+1) for EX Engage Connector Recording Provider (EXRP)
The EXEC VM must sync the system time at least once every 24 hours as the communication between the EXEC services and Genesys Cloud are very time-sensitive.
All VMs running EX Engage Connector components should belong to the same local network segment and be interconnected so that all components can communicate over the network. EXEC components can use either FQDNs or IP addresses to establish communication with each other. The connectivity table lists both incoming and outgoing connections required by the EXEC components.
| Service | Direction | Protocol | Local Port | Remote Peer | Remote Peer Port | Purpose |
|---|---|---|---|---|---|---|
| MCP | Outgoing | HTTP | ANY | WebDAV | 80 (default) | Post the recording files to WebDAV Server using HTTP requests. |
| MCP | Outgoing | HTTP | ANY | HTTP Load Balancer | HTTP_LB_EXCP_PORT | Deliver recording metadata using HTTP POST requests. |
| HTTP Load Balancer | Outgoing | HTTP | ANY | EXCP | 3650 (default) | HTTP POST proxied by HTTP Load Balancer for delivering recording metadata. |
| EXCP | Outgoing | HTTP | Any | HTTP Load Balancer | HTTP_LB_EXRP_PORT | HTTP POST to HTTP Load Balancer for interaction-end with recording metadata. |
| HTTP Load Balancer | Outgoing | HTTP | ANY | EXRP | 8080 (default) | HTTP POST proxied by HTTP Load Balancer to EXRP for interaction-end with recording metadata. |
| EXRP | Outgoing | TCP | Any | WebDAV | 80 (default) | HTTP request by EXRP to fetch recording. |
High-Level Deployment Plan
- Refer the deployment procedure for WebDAV & Load Balancer. [LINK}
- Execute the procedure described in the Configuring hybrid_integration transaction in CME section.
- Download the EXRP component from Genesys FTP:
- EXRP (exrp-100.0.100.XX.tgz) - EXRP container
- Deploy the EXRP container to the local container registry
- Execute the procedure described in the Configuring .env file section.
- Execute the procedure described in the Deploying EXEC for Recording Injection page.
- Execute the procedure described in the Starting EXEC Services section.
Deployment Procedure
Deploying Apache WebDAV Server for Recording Injection
- Deploy WebServer that supports the WebDAV module and ensure that the WebDAV module is installed and enabled as well.
- Create the directory to keep the recording files, and provide the required permission for the webserver user to access those recording files.
- Create the user and password and configure it for authentication of the recording folder.
- Open the firewall for the port used by the WebDAV server.
The sample installation and configuration for the Apache2 WebDAV server is described below:
- Install Apache Web Server. The installation process for WebDAV Server on an Ubuntu machine can be found at How to install Apache2 page.
- Check if the DAV module is installed and enabled in the machine.
- Edit the /etc/apache2/apache2.conf file, and append the following to the end of the file:
Alias /recordings /mnt/recordings <Directory /mnt/recordings> Options Indexes MultiViews FollowSymLinks EnableSendfile off AllowOverride None Order allow,deny allow from all </Directory> <Location "/recordings"> DAV On AuthType Basic AuthName "user" AuthUserFile /var/www/htpasswd Require valid-user </Location>
- Open the firewall. Ensure that the default incoming port 80 is open.
- Create the directory to keep the recording files, and set the permission to Apache, using the following commands
mkdir /mnt/recordings chown www-data:www-data /mnt/recordings
- Create an Apache HTTP Server User for httpd, and configure the password. The following example creates a user called user:
htpasswd -cm /var/www/htpasswd user
- Configure the Apache HTTP server start on boot up (and start it now) using the following commands:
sudo systemctl enable apache2
- Test the Apache HTTP Server installation:
- Upload a sample hello.world file to the Apache HTTP Server using the following command:
curl -T hello.world -u user:password http://<WEBDAV_URL>/hello.world // WEBDAV_URL: <WEBDAV_VM_ADDRESS>:<WEBDAV_PORT>/recordings
- Using a browser, open the http://<WEBDAV_URL>/hello.world URL. The browser will request user credentials.
- Upload a sample hello.world file to the Apache HTTP Server using the following command:
HTTP Load Balancing Configurations needed for Recording Injection
- Deploy HTTP Load Balancer in a different VM from the EXEC service VMs.
- Configure the upstream instances for EXCP and EXRP that will be used for load balancing the request.
- Configure the port that the HTTP Load Balancer will listen for both EXCP and EXRP requests.
The sample installation and configuration for the NGNIX HTTP Load Balancer is described below:
- Install NGNIX Proxy in a different VM which is accessible to EXEC VM. (https://nginx.org/en/docs/install.html).
- Edit the nginx-upstreams.conf under the /etc/nginx/ directory in NGINX VM.
upstream excp { server <EXCP_1_VM_HOST_PAIR_IPADDR1>:<EXCP_1_PORT> max_fails=0; server <EXCP_1_VM_HOST_PAIR_IPADDR2>:<EXCP_1_PORT> max_fails=0; } upstream exrp { server <EXRP_VM_HOST_IPADDR1>:<EXRP_PORT> max_fails=0; server <EXRP_VM_HOST_IPADDR2>:<EXRP_PORT> max_fails=0; server <EXRP_VM_HOST_IPADDR3>:<EXRP_PORT> max_fails=0; }
- Edit the nginx.conf under /etc/nginx/ directory in NGINX VM.
events { worker_connections 1000; } http { include nginx-upstreams.conf; # conversation-provider server { listen <HTTP_LB_EXCP_PORT>; #eg: listen 3650 location / { proxy_pass http://excp/; proxy_next_upstream_tries 3; } } # recording-provider server { listen <HTTP_LB_EXRP_PORT>; #eg: listen 8080 location / { proxy_pass http://exrp/; proxy_next_upstream_tries 3; } } }
Configuring hybrid_integration transaction in CME
Common Configuration
This section contains configuration required for both 3rd party recorder and GIR integrations.
Transaction Object
Transaction object hybrid_integration contains EXEC configuration. It should be configured as:
- Path to the transaction object:
- for the single-tenant Engage deployment the transaction object should be created in the Transactions configuration unit in the Resources structure
- for the multi-tenant Engage deployment there must be a separate transaction object under each of the tenant. Each transaction should point at a dedicated EX Org. EX Orgs cannot be shared by multiple Engage tenants.
- Name: hybrid_integration
- Type: List
Transaction Annex Folders
| Folder | Parameter Name | Value | Description |
|---|---|---|---|
| conversation_provider | sta_default_programid | <DEFAULT_STA_PROGRAM_ID> | Program UUID for topic detection |
| sta_default_language | <DEFAULT_STA_LANGUAGE> | ISO 639-1 two letter language code + '-' + ISO 3166-1 alpha-2 two letter country code string. Default language to use for transcription | |
| gir_orgId | b19c6179-266c-4ee2-8065-7fb92022797b | Engage contact center ID to be used in request to GIR RWS. This value is same as the value of ‘rp.defaultccid’ configured in RWS. | |
| gir_user | user1 | GIR RWS user Note: This is Ops user from RWS deployment specified under Ops Account section in Documentation:CR:Solution:IRWSOptions:8.5.2 - Genesys Documentation | |
| gir_password | abc123 | GIR RWS user password | |
| gir_metadata_fetch_delay | 10 | Determines the initial delay for trying out the first GIR request after the call completes. Time in minutes. Default value - 10 | |
| gir_metadata_fetch_interval | 1380 | Determines the time after which the retry of failed GIR request has to be made. Time in minutes. Default value - 1380 | |
| gir_metadata_fetch_duration | 1440 | Determines how long the GIR request has to be retried. Time in minutes. Default value - 1440 | |
| recording_enabled | True | Enable Recording Support. Default Value: False. | |
| recording-uploader.exec.transientStorage | type | WebDAV | The value must be WebDAV. |
| username | WEBDAV_USERNAME | The username used for downloading recording files from WebDAV. | |
| password | WEBDAV_PASSWORD | Password used for downloading recording files from WebDAV. | |
| url | WEBDAV_URL | WebDAV URL from where the recording files are downloaded. | |
| recording-uploader.exec.genesysCloud | client_id | CFG_ALIAS_EX_ORG_OAUTH_CLIENT_ID | OAuth client ID. |
| password | CFG_ALIAS_EX_ORG_OAUTH_CLIENT_SECRET | OAuth client secret. |
Configuring record IVR profile inside Voice Platform Profiles under CME
Engage deployments with third-party recording solutions use recording client recdest parameters for connecting to third-party recorders. It is expected that parameter callrec_dest is not used for the third-party recorder integration and can be utilized to direct recording metadata to EXEC.
For recording injection functionality, MCP posts the recording file into the WebDAV server and also it posts the recording metadata to the EXCP service. FAs part of this process, the recording IVR profile inside the Voice Platform Profile must be configured.
| Folder | Parameter | Value | Description |
|---|---|---|---|
| gvp.general | service-type | record | IVR profile type: always set to record. |
| gvp.service-parameters | recordingclient.callrec_dest | http://<HTTP_LB_HOST_IPADDR>:<HTTP_LB_EXCP_PORT>/api/v1/recording | HTTP URL for posting recording metadata: pointed at the NGINX front-ending all EXCP instances. |
| gvp.service-parameters | recordingclient.httpauthorization2 | <WEBDAV_USERNAME>:<WEBDAV_PASSWORD> | Credentials to post recordings to the intermediate WebDAV recording storage. |
| gvp.service-parameters | recordingclient.recdest2 | http://<WEBDAV_URL>/ | HTTP URL of the intermediate WebDAV recording storage. |
| gvp.service-parameters | recordingclient.type2 | audio/opus | Recording file format. Currently only the opus format is supported. |
Configuring .env file
The .env file contains the description of the EXEC docker environment. Configure all mandatory parameters to describe the environment where EXEC components are planned to be deployed. Bootstrap script converts data from this file into the docker compose yml configuration files.
You can specify parameters for the deployment by overriding the default values in the .env file. See the Parameters table for a full list of overridable values.
Common Parameters
| Parameter Name | Description |
|---|---|
| EXEC_DOCKER_REPOSITORY * | Jfrog Artifactory Edge repository for pulling EXEC images. |
| EXEC_INFRA_DOCKER_REPOSITORY | Docker repo for Redis, grafana, and Prometheus containers, if empty - docker hub will be used. |
| EXEC_HOST_LOGS_VOLUME_PATH * | Host path which is mounted inside the container to store logs. |
| EXEC_ORG_ID * | EX Org ID is taken from the following path in the GC UI Admin view: Organization Settings / Organization Details / Advanced / Organization ID |
| EXEC_TENANT_ID * | Unique ID to identify the Engage tenant. DBID of the Tenant configuration object in the Engage Configuration DB can be used. |
| EXEC_REDIS_HOST * | IP Address of the Redis proxy in case of enterprise Redis and IP Address of Redis server in case of Lab environment |
| EXEC_REDIS_PORT * | Port of Redis server |
| EXEC_REDIS_SECURE | If the Redis server is password protected via the requirepass option. |
| EXEC_REDIS_PASSWORD | Do not configure the password in the .env file, provide it as input when you run the bootstrap script |
| A * indicates mandatory fields. | |
EXRP Parameters
| Parameter Name | Description |
|---|---|
| EXRP_VM_HOST_LIST * | Comma Separated VM IP Address list where Recording Provider service will be running. |
| EXRP_PORT * | Recording Provider Service Port |
| EXRP_TAG * | Recording Provider container version |
| EXRP_LOG_LEVEL | Defines the EXRP log level. Values: trace, debug, info, warn, error, fatal |
| EXRP_CONFIG_SERVER_USER * | Config Server Username |
| EXRP_CONFIG_SERVER_PASSWORD * | Config Server Password |
| EXRP_CONFIG_SERVER_APPLICATION * | Config Server Application |
| EXRP_CONFIG_SERVER_PRIMARY_HOST * | IP Address of Config Server |
| EXRP_CONFIG_SERVER_PRIMARY_PORT* | IP Port of Config Port |
| A * indicates mandatory fields. | |
