Revision as of 15:31, June 21, 2024 by Xavier (talk | contribs)
Jump to: navigation, search

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.

Important
Genesys does not deploy and operate databases, WebDAV servers, or load balancers in on-premises deployments. It is the responsibility of the customer. In a production deployment, data store components (Redis) and WebDAV must be deployed outside of the Docker network and managed by the customer's DBA team. The customer's DBA team is also responsible for ensuring that the data store components are configured with the appropriate scalability, resiliency, and data protection (backups).

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.
EXCP Outgoing TCP Any GIR-RWS 443 (default) HTTPS GET Request by EXCP to GIR to retrieve recording metadata. (Applicable only for GIR deployments)

High-Level Deployment Plan

  1. Refer the deployment procedure for WebDAV & Load Balancer.
  2. Execute the procedure described in the Configuring hybrid_integration transaction in CME section.
  3. Execute the procedure described in

Configuring record IVR profile inside Voice Platform Profiles under CME. section.

  1. Download the EXRP component from Genesys FTP:
    • EXRP (exrp-100.0.100.XX.tgz) - EXRP container
  2. Deploy the EXRP container to the local container registry
  3. Execute the procedure described in the Configuring .env file section.
  4. Execute the procedure described in the Deploying EXEC for Recording Injection page.
  5. Execute the procedure described in the Starting EXEC Services section.

Deployment Procedure

Reference deployment for WebDAV server and load balancer

Deploying Apache WebDAV Server for Recording Injection

  1. Deploy WebServer that supports the WebDAV module and ensure that the WebDAV module is installed and enabled as well.
  2. Create the directory to keep the recording files, and provide the required permission for the webserver user to access those recording files.
  3. Create the user and password and configure it for authentication of the recording folder.
  4. Open the firewall for the port used by the WebDAV server.

The sample installation and configuration for the Apache2 WebDAV server is described below:

  1. Install Apache Web Server. The installation process for WebDAV Server on an Ubuntu machine can be found at How to install Apache2 page.
  2. Check if the DAV module is installed and enabled in the machine.
  3. 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>
  4. Open the firewall. Ensure that the default incoming port 80 is open.
  5. 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
  6. 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
  7. Configure the Apache HTTP server start on boot up (and start it now) using the following commands:
    sudo systemctl enable apache2
  8. 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.

Deploying HTTP Load Balancer for Recording Injection

  1. Deploy HTTP Load Balancer in a different VM from the EXEC service VMs.
  2. Configure the upstream instances for EXCP and EXRP that will be used for load balancing the request.
  3. 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:

  1. Install NGNIX Proxy in a different VM which is accessible to EXEC VM. See Installing nginx for information on installing nginx..
  2. 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;
    }
  3. Edit the nginx.conf file 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 third-party recorders and GIR.

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 recording_enabled True Enable Recording Support. Default Value: False.
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
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.

Third-party Configuration

For third-party recorders, no additional configuration is required.

GIR Integration

For integrating with GIR, add the following parameters to the transaction object.

Folder Parameter Name Value Description
conversation_provider
gir_orgId <Engage_Contact_Center_ID> The 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
Important
This is Ops user from RWS deployment specified under Ops Account section in Interaction Recording
gir_password <RWS_PASSWORD> GIR RWS user password
gir_metadata_fetch_delay 10 Determines the initial delay (in minutes) for trying out the first GIR request after the call completes.
gir_metadata_fetch_interval 1380 Determines the time (in minutes) after which the retry of failed GIR request has to be made.
gir_metadata_fetch_duration 1440 Determines how long (in minutes) the GIR request has to be retried.


Configuring record IVR profile inside Voice Platform Profiles under CME

Third-party recorder integration

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.

Two types of migration of the Speech & Text Analytics (STA) function from the GIA to GC are described in the Architecture section: full replacement and gradual migration.

GIR Recorder integration

Recordings injection to GC can happen for all engage recordings or for sync-scoped engage recordings. First method will fully replace GIA with GC STA for all Engage recordings. Second method will help in gradual replacement of GIA with GC STA.

Gradual STA Migration

To configure a gradual migration, perform the following configurations in GVP:

  1. Create a new recording profile.
  2. Set up the tenant configuration for allocating percentage of traffic to a new recording profile.
  3. Modify the old recording profile.

For a new recording profile,

  1. Create a new IVR profile named record2.
  2. Copy the entire configuration from the record IVR profile to this new record2 profile.
  3. Modify the following parameters:
Folder Parameter Value Description
gvp.general service-type record IVR profile type: always set to record.
gvp.service-parameters recordingclient.callrec_dest fixed,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 fixed,<WEBDAV_USERNAME>:<WEBDAV_PASSWORD> Credentials to post recordings to the intermediate WebDAV recording storage.
gvp.service-parameters recordingclient.recdest2 fixed,http://<WEBDAV_URL>/ HTTP URL of the intermediate WebDAV recording storage.
gvp.service-parameters recordingclient.type2 fixed,audio/opus Recording file format. Currently only the opus format is supported.
Tenant configuration

In the tenant object, configure a object gvp.general.record2-profile-percentage indicating the percentage of traffic to flow to GC for STA. This can be modified to increase or decrease the percentage of recording distribution between GIA and GC analytics.

For existing recording profile configurations,

  1. Leave all parameters in the recording profile like recordingclient.callrec_dest, recordingclient.recdest which are configured to point to GIR recording untouched.
  2. Point the service-parameters.recdest2’ parameter to GIA destination and codecs.
Full STA Replacement

A full STA migration is executed by redirecting all high-quality recordings generated for the STA purposes from GIA to GC. Configuration required to implement this approach is detailed below.

  1. Identify the recording profile where GIR and GIA destinations are configured.
  2. Comment out the following parameters in the gvp.service-parameters folder, which are currently pointed at GIA:
    • service-parameters.httpauthorization2
    • service-parameters.recdest2
    • service-parameters.type2
  3. Create instances of those three parameters and configure them to point at EXEC as described in the 'New recording profile' section above.

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.


EXCP Parameters

Parameter Name Description
EXCP_RECORDING_PROCESSOR_PROXY_HOST* HTTP Load Balancer Proxy's IP address or FQDN which proxies the request to EXRP instances.
EXCP_RECORDING_PROCESSOR_PROXY_PORT* HTTP Load Balancer Proxy's Port which proxies the request to EXRP instances.
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.

For third-party recorders, no additional configuration is required.

For GIR Integration, configure the GIR RWS URL in EXCP using the environment variable GIR_HOST. This can be configured during installation by EXOP env options.

Comments or questions about this documentation? Contact us for support!