Media Control Platform
The core component of the Genesys Voice Platform (GVP) 8.x that executes the actual voice applications in the GVP solution. In addition, it is used by other communication layer components, such as SIP Server, to provide broader customer service scenarios, such as agent interactions, and many other functions.
Glossary
When configuring Recording Processor to connect to a primary and backup ICON Database in HA mode, two separate DB Servers must be used. The DB Servers should run in an active/active pair mode.
Media Control Platform
The core component of the Genesys Voice Platform (GVP) 8.x that executes the actual voice applications in the GVP solution. In addition, it is used by other communication layer components, such as SIP Server, to provide broader customer service scenarios, such as agent interactions, and many other functions.
Glossary
When configuring Recording Processor to connect to a primary and backup ICON Database in HA mode, two separate DB Servers must be used. The DB Servers should run in an active/active pair mode.
Media Control Platform
The core component of the Genesys Voice Platform (GVP) 8.x that executes the actual voice applications in the GVP solution. In addition, it is used by other communication layer components, such as SIP Server, to provide broader customer service scenarios, such as agent interactions, and many other functions.
Glossary
When configuring Recording Processor to connect to a primary and backup ICON Database in HA mode, two separate DB Servers must be used. The DB Servers should run in an active/active pair mode.
Deploying Recording Processor Script
Voice Processor, a multi-threaded microservice based on the Node.JS platform, is an alternative to the Recording Processor Script (RPS).
- For information on deploying Voice Processor, see Deploying Voice Processor.
- To migrate from an existing RPS deployment to Voice Processor, see Migrating from RPS to Voice Processor.
- RPS is not supported for deployments integrated with SIP Cluster. If your deployment uses SIP Cluster, you must use Voice Processor.
Contents
- 1 Prerequisites
- 2 Installing Recording Processor Script
- 3 Configuring Recording Processor Script
- 3.1 Configuring High Availability
- 3.2 Configure Passwords
- 3.3 Configure the Configuration Server Connection
- 3.4 Configuring the Server Port
- 3.5 Configuring the Connection to Interaction Recording Web Services (Web Services)
- 3.6 Configuring Cross-Site Request Forgery (CSRF) Protection
- 3.7 Configuring the Connection to SpeechMiner
- 3.8 Configuring Failed Message Files
- 3.9 Configuring the Agent Hierarchies
- 3.10 Configuring Basic Authorization
- 3.11 Configuring After Call Work
- 3.12 Configuring ICON for Recording Processor
- 3.13 Configure how to Filter Metadata from ICON
- 3.14 Configuring SSL for Recording Processor
- 3.15 Configure the HTTPS on the backup Recording Processor Server
- 3.16 Configuring the IVR Profile
- 3.17 Configuring the Recording Processor Using Genesys Administrator Extension (Optional)
- 4 Starting the Recording Processor Script
Prerequisites
Before installing and configuring the RPS, you must have the following prerequisites:
- An Interaction Recording Web Services 8.5.205.32 (or higher) instance where the call recording and screen recording metadata is stored.
- A Recording Crypto Server 8.5.095.16 (or higher) instance to decrypt the encrypted recordings.
- Network access to the WebDAV storage where the recordings are stored.
- For Recording Processor Script 8.5.500.13 (or higher), Recording Muxer Script must be upgraded to 8.5.500.10 (or higher).
Installing Recording Processor Script
Installing on Windows
- Install 64 bit Python 3.11.5 from the
Python website.
To make Python 3 to work with OpenSSL 3.0.13, follow the below steps:
- Download libcrypto-3.dll and libssl-3.dll from the Python Binary repository.
- In [python-source-folder]\DLLs, replace with the above downloaded DLL files.
- Install the RPS IP with the installer.
Note: Install the following third-party libraries in the order they appear and unzip the files in Administrator mode. - Unzip the <RPS>\thirdparty\more-itertools-10.1.0.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\more-itertools-10.1.0 directory. - Unzip the <RPS>\thirdparty\jaraco.functools-4.0.0.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\jaraco.functools-4.0.0 directory. - Unzip the <RPS>\thirdparty\cheroot-10.0.0.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\cheroot-10.0.0 directory. - Unzip the <RPS>\thirdparty\web.py-0.62.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\web.py-0.62 directory. - Unzip the <RPS>\thirdparty\pyparsing-3.1.1.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\pyparsing-3.1.1 directory. - Unzip the <RPS>\thirdparty\httplib2-0.22.0.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\httplib2-0.22.0 directory. - Unzip the <RPS>\thirdparty\six-1.16.0.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\six-1.16.0 directory. - Unzip the <RPS>\thirdparty\python-dateutil-2.8.2.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\python-dateutil-2.8.2 directory.
Installing on Linux (RHEL)
- Install zlib-devel (yum install zlib-devel).
- Install sqlite devel (yum install sqlite-devel.x86_64).
- Install libffi devel (yum install libffi-devel).
- Install OpenSSL.
- For 8.5.500.11 or lower versions, install OpenSSL version 1.1.1.
- For 8.5.500.13 or higher versions, install OpenSSL 3.0.13.
Download OpenSSL 3.0.13 from OpenSSL website and compile it.
Example config command -./config --prefix=/usr/home/openssl-3.0.13 --openssldir=/usr/home/openssl-3.0.13 --libdir=lib no-shared
- Install 64 bit Python 3.11.5.
- For 8.5.500.11 or lower versions, compile with OpenSSL 1.1.1 from the
Python website.
While compiling Cpython 3.11.5 with custom openssl, use--with-openssl
flag while compilation.
Example config command -./configure --with-openssl=/usr/home/openssl-1.1.1 --enable-optimizations
- For 8.5.500.13 or higher versions, compile with OpenSSL 3.0.13 from the
Python website.
While compiling Cpython 3.11.5 with custom openssl, use--with-openssl
flag while compilation.
Example config command -./configure --with-openssl=/usr/home/openssl-3.0.13 --enable-optimizations
- For 8.5.500.11 or lower versions, compile with OpenSSL 1.1.1 from the
Python website.
- Install the RPS IP with the installer.
Note: Install the following third-party libraries in the order they appear. - Untar the <RPS>/thirdparty/more-itertools-10.1.0.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/more-itertools-10.1.0 directory. - Untar the <RPS>/thirdparty/jaraco.functools-4.0.0.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/jaraco.functools-4.0.0 directory. - Untar the <RPS>/thirdparty/cheroot-10.0.0.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/cheroot-10.0.0 directory. - Untar the <RPS>/thirdparty/web.py-0.62.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/web.py-0.62 directory. - Untar the <RPS>/thirdparty/pyparsing-3.1.1.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/pyparsing-3.1.1 directory. - Untar the <RPS>/thirdparty/httplib2-0.22.0.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/httplib2-0.22.0 directory. - Untar the <RPS>/thirdparty/six-1.16.0.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/six-1.16.0 directory. - Untar the <RPS>/thirdparty/python-dateutil-2.8.2.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/python-dateutil-2.8.2 directory.
- GIR does not support direct upgrade of RPS from Python 2 to Python 3.
- Do not use the setup.py install command for installing libraries, instead use pip install command as mentioned above.
Configuring Recording Processor Script
This section describes how to configure the Recording Processor Script for your environment.
Configuring High Availability
Recording Processor Cluster
RPS now provides High Availability support using multiple instances of RPS (all active). These active/active instances must be accessed through an HA proxy or load balancer. In this mode, each RPS is responsible for sending metadata to Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) and SpeechMiner based on the load it receives. Each Recording Processor is responsible for fetching metadata from all ICON DB Servers. Media Control Platform (MCP) instances must be configured to access the Recording Processor instances by specifying a single URL that points to the load balancer.
To configure HA:
- In each Recording Processor's rpconfig.cfg configuration file, in the [processing] section, set the following options:
- get_from_httc_before_posting = 1
- mode = active
- Ensure that all Recording Processor instances have the same network related configuration.
ImportantGenesys recommends that multiple Recording Processor instances be deployed on a single host to optimize the available CPU and take advantage of parallel processing. Multiple Recording Processor instances can then be deployed on other hosts as needed.
- Using Genesys Administrator Extension, under the Recording tab in the IVR Profile, set the Recording Processor URI parameter to the load balancer's URL.
- Configure the load balancer to balance traffic to the Recording Processor instances.
The following is an example configuration section that is needed for setting up an Apache load balancer for a three-instance Recording Processor cluster.
ProxyPass /cluster balancer://nodecluster <Proxy balancer://nodecluster> BalancerMember http://<IP address of the active1 Recording Processor server>:<active Recording Processor port> BalancerMember http://<IP address of the active2 Recording Processor Server>:<active Recording Processor port> BalancerMember http://<IP address of the active3 Recording Processor Server>:<active Recording Processor port> </Proxy>
Recording Processor Script Active/Backup HA
RPS can also provide High Availability support by using two RPS instances (active and backup) accessed through an HA proxy or load balancer in failover mode. In this mode, the active RPS is always responsible for sending metadata to Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) and SpeechMiner, and the backup instance is responsible for receiving and temporarily storing metadata if the active instance is unavailable. Once the active instance recovers, the balancer will direct clients to the active instance, and the backup instance will send any stored data to the active instance for metadata processing. Media Control Platform (MCP) instances must be configured to access the Recording Processor instances by specifying a single URL that points to the load balancer.
To configure HA:
- In the active Recording Processor's rpconfig.cfg configuration file located in the [processing] section, set the mode parameter to active.
- In the backup Recording Processor's rpconfig.cfg configuration file:
- Set the mode parameter to backup.
- In the [processing] section, set the post_uri parameter to http://<active_rp_ip>:<active_rp_port>/api/contact-centers/%s/recordings/.
- Using Genesys Administrator Extension, under the Recording tab in the IVR Profile, set the Recording Processor URI parameter to the failover load balancer's URL.
- Configure the load balancer to direct traffic to the active Recording Processor instance first and to the backup instance if an error/failure occurs.
The following is an example configuration section that is needed for setting up an Apache load balancer in failover mode for Recording HA support.
ProxyPass /cluster balancer://nodecluster <Proxy balancer://nodecluster> BalancerMember http://<IP address of the active Recording Processor server>:<active Recording Processor port> BalancerMember http://<IP address of the backup Recording Processor Server>:<active Recording Processor port> status=H </Proxy>
For more information about how to use Genesys Administrator Extension to configure your Contact Center, see the Genesys Administrator Extension Help.
Configure Passwords
The following definitions describe the mapping of the environment variables to the corresponding configuration parameter:
HTCC_PASSWORD – maps to the existing configuration parameter under the htcc section, password value.
AUTH_PASSWORD - maps to the existing configuration parameter under the auth section, password value.
CONFIG_SERVER_PASSWORD - maps to the existing configuration parameter under the config_server section, password value.
<ICON_ID>_DB_INFO_PASSWORD - maps to the existing configuration parameter under the <ICON_ID>_db_info section, password value, where <ICON_ID> refers to the ICON instance listed in the icon_db_servers section.
In a Windows environment only, the Recording Processor Script (RPS) can store passwords in the Windows Vault instead of in the rpconfig.cfg file or requiring the use of environment variables.
For example, run the following command for the Recording Processor Script credentials located at <Recording Processor Directory>\rp. This command will prompt the user to enter valid values for the password/key configuration parameters and stores the passwords in the encrypted file named rp.secret:
Command to store:encryptPassword.bat -password <password_string>
Where <password_string> is a comma-delimited series of key/value pairs, use the format <environment variable name 1>=<environment variable value 1>,<environment variable name 2>=<environment variable value 2>,<environment variable name 3>=<environment variable value 3>, and so on. Note that space is not allowed in <password_string>.
For example:
encryptPassword.bat -password "HTCC_PASSWORD=somepassword1, AUTH_PASSWORD=somepassword2, CONFIG_SERVER_PASSWORD=somepassword3, ICON1_DB_INFO_PASSWORD=somepassword4, ICON2_DB_INFO_PASSWORD=somepassword5"
Configure the Configuration Server Connection
To configure the Configuration Server connection, set the following parameters in the [config_server] section of the Recording Processor rpconfig.cfg configuration file:
Parameter Name | Default Value | Description |
---|---|---|
application_name | Empty | Specifies the name of the RPS application object in the Configuration Server, when using RPS as a third party server application. |
hostname | <ip address> | Specifies the IP address of the primary Configuration Server. |
port | 2020 | Specifies the port of the primary Configuration Server. |
username | default | Specifies the Configuration Server username. |
password | password | Specifies the Configuration Server password. Note: |
backup_host | Empty | Specifies the IP address of the backup Configuration Server. |
backup_port | Empty | Specifies the backup port of the backup Configuration Server. |
Configuring the Server Port
In the [rp_server] section of the rpconfig.cfg file, set the port parameter.
Configuring the Connection to Interaction Recording Web Services (Web Services)
To configure the Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) connection, set the following parameters in the [htcc] section of the Recording Processor rpconfig.cfg configuration file:
Parameter Name | Default Value | Description |
---|---|---|
base_uri | http://<Web Services IP>:<Web Services Port> | Specifies the Base URI for accessing the Interaction Recording Web Services (Web Services) API. |
username | ops | Specifies the username used to access the Interaction Recording Web Services (Web Services) account. |
password | ops | Specifies the password used to access the Interaction Recording Web Services (Web Services) account. Note: The password can be overridden by the HTCC_PASSWORD environment variable. |
Each Interaction Recording Web Services (Web Services) instance must have a region associated with it. Set the region parameter in the [metadata] section of the rpconfig.cfg file to match the region associated with Interaction Recording Web Services (Web Services) instance set to receive the Recording Processor's metadata.
Configuring Cross-Site Request Forgery (CSRF) Protection
If Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) has CSRF enabled, set the following parameter in the [htcc] section of the rpconfig.cfg file:
- csrfp = 1
Configuring the Connection to SpeechMiner
To configure the SpeechMiner Connection:
- In the IVR Profile, set the recording destinations to point to the SpeechMiner interaction receiver:
- Login to Genesys Administrator Extension, and navigate to Configuration > System > Configuration Manager.
- Under Voice Platform, select Voice Platform Profiles.
- Click on the IVR Profile for which you want to set the recording destination.
- Select the Recording tab.
- In theSpeechMiner Interaction Receiver field, enter the URL that points to the SpeechMiner service responsible for accepting metadata from the RPS for this profile. For example, https://<SpeechMiner IP>/interactionreceiver.
- In the SpeechMiner Interaction Receiver Authorization Header field, enter the authorization information (username:password) required to connect to the SpeechMiner service used by the RPS. For example, user:password.
Configuring Failed Message Files
The Recording processor can backup messages that fail to POST correctly to Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) and SpeechMiner. These files are located in the <recording processor dir>\failed folder.
In the rpconfig.cfg configuration file, add the following parameter:
[processing] backup_failed_metadata = 1
Configuring the Agent Hierarchies
Recording Processor Script uses the agent hierarchy information to set the access control information for recordings within the recording metadata. Refer to Access Control for Genesys Interaction Recording Users to configure this appropriately.
Configuring Basic Authorization
In the rpconfig.cfg configuration file, set the following parameters:
[auth] # Basic Authentication username and password. Set username blank to disable. username = rp_username password = rp_password
- The username and password must match the username and password entered in the IVR Profile. For more information about configuring the IVR Profile, see the IVR Profile section.
- The password can be overridden by the AUTH_PASSWORD environment variable.
Configuring After Call Work
Recording Processor can collect After Call Work (ACW) customized data from ICON.
In the rpconfig.cfg file, in the [processing] section, add the following parameters:
- enable_acw—Set it to 1.
- acw_threshold_minutes—Set it to the maximum time to wait for the customized attached data.
- If Call Customized Attached Data is still not available in the ICON database after acw_threshold_minutes, the RPS will stop collecting customized data for this recording and write it to the database.
- If enable_acw is set to 0, ACW customized data will not be included.
- If disposition code is required in the metadata, you must set enable_acw and acw_threshold_minutes using Recording Processor configuration.
The disposition code is part of the user data collected during ACW. For this reason, enable_acw must be enabled in the Recording Processor. If it is not enabled, the data will not be collected.
If the disposition code must be collected from the Recording Processor, configure the following to include the disposition code for recording:
[processing] enable_acw=1
[metadata] acw_threshold_minutes=5. Where 5 is the maximum time (in minutes) to wait for the disposition code.
In the ICON configuration, the EventData parameter in the custom-states section, must include char,DispositionCode and store-event-data must be set to conf to collect the attached data:
[custom-states] store-event-data=conf EventData=char,DispositionCode
For additional information, refer to the ICON Deployment Guide.
Configuring ICON for Recording Processor
To configure ICON, edit the rpconfig.cfg configuration file as follows:
- Configure the switches:
Add a configuration option for each switch name under the [icon_db_servers] section. You can specify more than two ICON databases per SIP Switch configuration. For example:[icon_db_servers] SIP_Switch1: icon1 SIP_Switch2: icon2, icon2Backup SIP_Switch3: icon3, icon4, icon5, icon6
ImportantIn the above example, SIP_Switch3 has 4 ICON databases. The Recording Processor Script (RPS) keeps track of the ICON database instance currently used. If the current database instance becomes unavailable, RPS will attempt the operation in the next database.
The configuration option name must match the exact name of the switch as configured in the Genesys configuration. The primary and backup ICON names must be unique, but do not have to match anything in the Genesys configuration.
- Configure the ICON Connection Settings:
- For each unique ICON specified in the first step, create a new section using the following syntax:
<ICON_ID>_db_info, where <ICON_ID> corresponds to the values defined in the [icon_db_servers] section above. - dbengine must be mssql, oracle, db2, or postgres.
- dbserver_host and dbserver_port specify the host and port information for the Genesys DB Server.
- dbms specifies the host where the database resides.
The following is an example using the values for SIP_Switch1 and SIP_Switch2 from step 1:
[icon1_db_info] dbserver_host = vm221.us.int.genesyslab.com dbserver_port = 12201 username = iconuser_1 password = genesys dbname = ICON_LRM_DB_1 dbms = 10.0.0.228,1433 dbengine = mssql [icon2_db_info] dbserver_host = vm222.us.int.genesyslab.com dbserver_port = 12201 username = iconuser_1 password = genesys dbname = ICON_LRM_DB_1 dbms = 10.0.0.228,1433 dbengine = mssql [icon2Backup_db_info] dbserver_host = vm223.us.int.genesyslab.com dbserver_port = 12201 username = iconuser_1 password = genesys dbname = ICON_LRM_DB_1 dbms = 10.0.0.228,1433 dbengine = mssql [icon_oracle_db_info] dbserver_host = <host> dbserver_port = <port> username = <username> password = <password> dbname = dbms = <database host/Oracle SID> dbengine = oracle [icon_postgres_db_info] dbserver_host = <host> dbserver_port = <port> username = <username> password = <password> dbname = <database name> dbms = <database host> dbengine = postgres [icon_db2_db_info] dbserver_host = <host> dbserver_port = <port> username = <username> password = <password> dbname = dbms = <database host> dbengine = db2
- For each unique ICON specified in the first step, create a new section using the following syntax:
- For Oracle or DB2 implementations, the dbname parameter must be left blank or empty.
- The password can be overridden by the <ICON_ID>_DB_INFO_PASSWORD environment variable.
In the example above, the RPS will use the connection properties in section [icon1_db_info] when processing recording metadata from an MCP provisioned to SIP_Switch1. The RPS will use the connection properties in section [icon2_db_info] when processing recording metadata from an MCP provisioned to SIP_Switch2. In the case of SIP_Switch2, the RPS will use the connection settings in [icon2Backup_db_info] if the primary ICON (icon2) is unavailable when recording metadata is being processed.
Configure how to Filter Metadata from ICON
The Recording Processor supports the ability to filter specific attached data fields (based on the key name), such as attached data and After Call Work (ACW) customized data retrieved from the ICON database. This support prevents specific metadata from reaching additional GIR related components (for example, SpeechMiner).
The following two sections describe how to:
-
Verify that the following items are not removed from the filter. Removing these items may cause errors in GIR:
- GRECORD_PARTITIONS
- GRECORD_PROGRAM
- GSIP_REC_FN
- When running SpeechMiner, you must include Workspace Web Edition (WWE) in the attached attached_data_filter and acw_custom_data_filter Recording Processor configuration values. For example:
Filter Attached Data
- Edit the rpconfig.cfg file.
- Locate the Filter section. If the Filter section does not exist, add it as follows:
... [filter] ...
- Add a new option called attached_data_filter to the Filter section as follows. The value must be a Regex pattern used to filter out attached data whose key name matches the pattern.
... [filter] attached_data_filter = ^ORSI: ; (Note: this is the default value when the option is not specified.) ...
For information about Regex patterns, refer to the Python's documentation found here: https://docs.python.org/3.11/library/re.html.
- Add a new option called attached_data_filter_exception to this section as follows. The value must be a Regex pattern used to exclude key names that should not be filtered out (for example, like GRECORD_PARTITIONS).
... [filter] attached_data_filter = ^ORSI: ; (Note: this is the default value when the option is not specified.) attached_data_filter_exception = ^GRECORD_PARTITIONS$ ; (Note: this is the default value when the option is not specified.) ...
For information about Regex patterns, refer to the Python's documentation found here: https://docs.python.org/3.11/library/re.html.
- Restart the Recording Processor.
Filter ACW Related Custom Data
- Edit the rpconfig.cfg file.
- Locate the Filter section. If the Filter section does not exist, add it as follows:
... [filter] ...
- Add a new option called acw_custom_data_filter to the Filter section as follows. The value must be a Regex pattern used to filter out ACW whose key name matches the pattern.
... [filter] acw_custom_data_filter = ^ORSI: ; (Note: this is the default value when the option is not specified.) ...
For information about Regex patterns, refer to the Python's documentation found here: https://docs.python.org/3.11/library/re.html.
- Add a new option called acw_custom_data_filter_exception to this section as follows. The value must be a Regex pattern used to exclude ACW that should not be filtered out (for example, like GRECORD_PARTITIONS).
... [filter] acw_custom_data_filter = ^ORSI: ; (Note: this is the default value when the option is not specified.) acw_custom_data_filter_exception = ^GRECORD_PARTITIONS$ ; (Note: this is the default value when the option is not specified.) ...
- Restart the Recording Processor.
For information about Regex patterns, refer to the Python's documentation found here: https://docs.python.org/3.11/library/re.html.
Configuring SSL for Recording Processor
To configure SSL:
Configure HTTPS on the Primary Recording Processor Server
- Create a self-signed certificate and private key for the Recording Processor host. For example, on RHEL run: openssl req -new -x509 -days 1024 -nodes -out cert228.pem -keyout cert228key.pem
- In the rp_server section of the Recording Processor's configuration file, set the following parameters:
- ssl_certificate—To point to the certificate PEM file. For example, ssl_certificate=cert228.pem.
- ssl_private_key—To point to the private key file. For example, cert228.pem.
- Give the self-signed certificate PEM file to any MCP client that needs to validate the certificate during the SSL handshake. See the "Enable Secure Communication" section Genesys Voice Platform 8.5 User's Guide.
- Restart Recording Processor.
Configure the HTTPS connection to Interaction Recording Web Services (Web Services)
- Set up HTTPS on Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier). See the Genesys Security Deployment Guide.
- Get the corresponding certificate for the Interaction Recording Web Services (Web Services) server. Set the caCertificate option in your Interaction Recording Web Services application (see caCertificate if you're using a Web Services application).
- In the [htcc] section of the Recording Processor configuration file, set base_uri parameter to use https.
- In the [client] section, set the certs parameter to point to the file that contains the certificate (see previous step). Or, point to an existing CA certificate file after copying the content of the new certificate into the existing CA certificate file.
ImportantIf there are multiple client connections using HTTPS, use a single CA cert file with all the certificates listed.
Configure the HTTPS connection to SpeechMiner
- Set up HTTPS on SpeechMiner.See the Genesys Security Deployment Guide.
- Set the disable_ssl_certificate_validation parameter in the [speechminer] section of the Recording Processor configuration to a value of 1.
- Using Genesys Administrator Extension on the Recording tab of the IVR Profile, modify the SpeechMiner Interaction Receiver field use https as the protocol in the URL.
- In the [client] section, set the certs parameter to point to the file that contains the certificate (see previous step). Or, point to an existing CA certificate file after copying the content of the new certificate into the existing CA cert file.
ImportantIf there are multiple client connections using HTTPS, use a single CA cert file with all the certificates listed.
Configure the HTTPS connection from the backup Recording Processor to the primary Recording Processor
- Configure HTTPS on the primary Recording Processor.
- Get the corresponding PEM certificate for the Web Services server.
- In the [processing] section of the Recording Processor configuration file, set the post_uri parameter to use https as the protocol in the URL.
- In the client section, set the certs parameter to point to the file that contains the certificate (see previous step). Or, point to an existing CA certificate file after copying the content of the new certificate into the existing CA certificate file.
ImportantIf there are multiple client connections using HTTPS, use a single CA cert file with all the certificates listed.
Configure the HTTPS on the backup Recording Processor Server
Follow the same procedure used for the Primary Recording Processor Server using a new certificate and private key for the Backup Recording Processor’s server.
Configuring the IVR Profile
Using Genesys Administrator Extension, configure the following parameters on the Recording tab of the IVR Profile:
- Recording Processor URI—The URI that the Media Control Platform (MCP) uses to post the metadata of the audio recording after the recording is complete. For example, http:// <Recording Processor Host>/api/contact-centers/<Contact Cente Domain Name>/recordings/.
ImportantThe value for the URI must always end with a forward slash (/).
- SpeechMiner Interaction Receiver—The URL that points to the SpeechMiner service responsible for accepting metadata from the RPS for this profile.
- SpeechMiner Interaction Receiver Authorization Header—The authorization information required to connect to the SpeechMiner service used by the RPS. For example, <SpeechMiner Webserver Username>:<SpeechMiner Webserver Password>.
For more information, see the Configuring GVP.
Configuring the Recording Processor Using Genesys Administrator Extension (Optional)
The Recording Processor uses a configuration file instead of a specific application object in Configuration Server. However, it is possible to configure the Recording Processor as a "third-party server" application enabling Genesys Administrator Extension to monitor, start, and stop the process.
The following steps describe how to setup Recording Processor as a "third party server" application in Genesys Administrator Extension. For more information, see the "Using the Management Layer" section of the Framework 8.5.1 Management Layer User's Guide
Configuring RPS to Start/Stop via LCA using Genesys Administrator Extension:
- Install and deploy the latest RPS.
- Make sure that the Local Control Agent (LCA) is running.
- Create a new application template in Genesys Administrator Extension called Recording Processor Script of type Third Party Server.
- Create a new application (for example, myRPS) in Genesys Administrator Extension using this new application template.
- Set the Command Line parameter (for example, C:\Python311\python.exe).
- Set the Host parameter in the application’s server info to the correct Host object.
- Set the Working Directory parameter to the <Recording Processor Install Directory>\rp directory. For example, /opt/genesys/Recording_Processor_Script_8.5/rp/.
- Set the Command Line Arguments parameter to the appropriate values. For example, recording_process.py --config-file=/opt/genesys/Recording_Processor_Script_8.5/rp/rpconfig.cfg.
Refer to the Starting the Recording Processor Script section for additional command line parameters - Make sure that LCA has permission to read and write to the Recording Processor installation directory and Recording Processor log directory.
- Save the configuration changes.
- Ensure that the Configuration Server parameters in the Recording Processor configuration file are set appropriately. Refer to Configure the Configuration Server Connection tab on this page.
For more information about the RPS options, see Genesys Interaction Recording Options Reference.
Starting the Recording Processor Script
To launch the RPS, run the following command from the <Recording Processor Install Directory>:
<python executable> recording_process.py --config-file=rpconfig.cfg
Use the following command line when you want to run multiple instances of RPS on the same machine:
<python executable> recording_process.py --config-file=rpconfig.cfg --id=1 --port=8889
For each RPS instance, assign a unique id (--id parameter) and port number (--port).
- --port defines the server port opened by the RPS process.
- --id represents the suffix of the:
- application_name in the configuration file. For example, if application_name is defined in the configuration file as RecordingProcessorScript and --id 2 is specified in the command line, then the application object named RecordingProcessorScript_2 will be used to start the program.
- log files
- metadata json files created in the failed folder
- database file created by the process
By default the RPS log file is stored in the working directory. This can be changed by specifying a preexisting folder in the logfile_path parameter in the log file section of the configuration file. For example, in Windows:
logfile_path = C:\logs\recordingProcessor
Voice Processor, a multi-threaded microservice based on the Node.JS platform, is an alternative to the Recording Processor Script (RPS).
- For information on deploying Voice Processor, see Deploying Voice Processor.
- To migrate from an existing RPS deployment to Voice Processor, see Migrating from RPS to Voice Processor.
- RPS is not supported for deployments integrated with SIP Cluster. If your deployment uses SIP Cluster, you must use Voice Processor.
Contents
- 1 Prerequisites
- 2 Installing Recording Processor Script
- 3 Configuring Recording Processor Script
- 3.1 Configuring High Availability
- 3.2 Configure Passwords
- 3.3 Configure the Configuration Server Connection
- 3.4 Configuring the Server Port
- 3.5 Configuring the Connection to Interaction Recording Web Services (Web Services)
- 3.6 Configuring Cross-Site Request Forgery (CSRF) Protection
- 3.7 Configuring the Connection to SpeechMiner
- 3.8 Configuring Failed Message Files
- 3.9 Configuring the Agent Hierarchies
- 3.10 Configuring Basic Authorization
- 3.11 Configuring After Call Work
- 3.12 Configuring ICON for Recording Processor
- 3.13 Configure how to Filter Metadata from ICON
- 3.14 Configuring SSL for Recording Processor
- 3.15 Configure the HTTPS on the backup Recording Processor Server
- 3.16 Configuring the IVR Profile
- 3.17 Configuring the Recording Processor Using Genesys Administrator Extension (Optional)
- 4 Starting the Recording Processor Script
Prerequisites
Before installing and configuring the RPS, you must have the following prerequisites:
- An Interaction Recording Web Services 8.5.205.32 (or higher) instance where the call recording and screen recording metadata is stored.
- A Recording Crypto Server 8.5.095.16 (or higher) instance to decrypt the encrypted recordings.
- Network access to the WebDAV storage where the recordings are stored.
Installing Recording Processor Script
Installing on Windows
- Install 64 bit Python 3.11.5 from the Python website.
- Install the RPS IP with the installer.
Note: Install the following third-party libraries in the order they appear and unzip the files in Administrator mode. - Unzip the <RPS>\thirdparty\more-itertools-10.1.0.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\more-itertools-10.1.0 directory. - Unzip the <RPS>\thirdparty\jaraco.functools-4.0.0.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\jaraco.functools-4.0.0 directory. - Unzip the <RPS>\thirdparty\cheroot-10.0.0.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\cheroot-10.0.0 directory. - Unzip the <RPS>\thirdparty\web.py-0.62.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\web.py-0.62 directory. - Unzip the <RPS>\thirdparty\pyparsing-3.1.1.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\pyparsing-3.1.1 directory. - Unzip the <RPS>\thirdparty\httplib2-0.22.0.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\httplib2-0.22.0 directory. - Unzip the <RPS>\thirdparty\six-1.16.0.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\six-1.16.0 directory. - Unzip the <RPS>\thirdparty\python-dateutil-2.8.2.zip file.
- Run
py -m pip install .
from the <RPS>\thirdparty\python-dateutil-2.8.2 directory.
Installing on Linux (RHEL)
- Install zlib-devel (yum install zlib-devel).
- Install sqlite devel (yum install sqlite-devel.x86_64).
- Install libffi devel (yum install libffi-devel).
- Install OpenSSL 1.1.1.
- For RHEL 7:
- Download OpenSSL 1.1.1 from
OpenSSL website and compile it.
Example config command -./config --prefix=/usr/home/openssl-1.1.1 --openssldir=/usr/home/openssl-1.1.1
- Add OpenSSL lib path in LD_LIBRARY_PATH.
Example command -export LD_LIBRARY_PATH=/usr/home/openssl-1.1.1/lib:$LD_LIBRARY_PATH
- Download OpenSSL 1.1.1 from
OpenSSL website and compile it.
- For RHEL 7:
- Install 64 bit Python 3.11.5 compiled with OpenSSL 1.1.1 from the
Python website.
- While compiling Cpython 3.11.5 with custom openssl, use
--with-openssl
flag while compilation.
Example config command -./configure --with-openssl=/usr/home/openssl-1.1.1 --enable-optimizations
- While compiling Cpython 3.11.5 with custom openssl, use
- Install the RPS IP with the installer.
Note: Install the following third-party libraries in the order they appear. - Untar the <RPS>/thirdparty/more-itertools-10.1.0.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/more-itertools-10.1.0 directory. - Untar the <RPS>/thirdparty/jaraco.functools-4.0.0.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/jaraco.functools-4.0.0 directory. - Untar the <RPS>/thirdparty/cheroot-10.0.0.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/cheroot-10.0.0 directory. - Untar the <RPS>/thirdparty/web.py-0.62.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/web.py-0.62 directory. - Untar the <RPS>/thirdparty/pyparsing-3.1.1.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/pyparsing-3.1.1 directory. - Untar the <RPS>/thirdparty/httplib2-0.22.0.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/httplib2-0.22.0 directory. - Untar the <RPS>/thirdparty/six-1.16.0.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/six-1.16.0 directory. - Untar the <RPS>/thirdparty/python-dateutil-2.8.2.tar.gz file.
- Run
python3 -m pip install .
from the <RPS>/thirdparty/python-dateutil-2.8.2 directory.
- GIR does not support direct upgrade of RPS from Python 2 to Python 3.
- Do not use the setup.py install command for installing libraries, instead use pip install command as mentioned above.
Configuring Recording Processor Script
This section describes how to configure the Recording Processor Script for your environment.
Configuring High Availability
Recording Processor Cluster
RPS now provides High Availability support using multiple instances of RPS (all active). These active/active instances must be accessed through an HA proxy or load balancer. In this mode, each RPS is responsible for sending metadata to Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) and SpeechMiner based on the load it receives. Each Recording Processor is responsible for fetching metadata from all ICON DB Servers. Media Control Platform (MCP) instances must be configured to access the Recording Processor instances by specifying a single URL that points to the load balancer.
To configure HA:
- In each Recording Processor's rpconfig.cfg configuration file, in the [processing] section, set the following options:
- get_from_httc_before_posting = 1
- mode = active
- Ensure that all Recording Processor instances have the same network related configuration.
ImportantGenesys recommends that multiple Recording Processor instances be deployed on a single host to optimize the available CPU and take advantage of parallel processing. Multiple Recording Processor instances can then be deployed on other hosts as needed.
- Using Genesys Administrator Extension, under the Recording tab in the IVR Profile, set the Recording Processor URI parameter to the load balancer's URL.
- Configure the load balancer to balance traffic to the Recording Processor instances.
The following is an example configuration section that is needed for setting up an Apache load balancer for a three-instance Recording Processor cluster.
ProxyPass /cluster balancer://nodecluster <Proxy balancer://nodecluster> BalancerMember http://<IP address of the active1 Recording Processor server>:<active Recording Processor port> BalancerMember http://<IP address of the active2 Recording Processor Server>:<active Recording Processor port> BalancerMember http://<IP address of the active3 Recording Processor Server>:<active Recording Processor port> </Proxy>
Recording Processor Script Active/Backup HA
RPS can also provide High Availability support by using two RPS instances (active and backup) accessed through an HA proxy or load balancer in failover mode. In this mode, the active RPS is always responsible for sending metadata to Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) and SpeechMiner, and the backup instance is responsible for receiving and temporarily storing metadata if the active instance is unavailable. Once the active instance recovers, the balancer will direct clients to the active instance, and the backup instance will send any stored data to the active instance for metadata processing. Media Control Platform (MCP) instances must be configured to access the Recording Processor instances by specifying a single URL that points to the load balancer.
To configure HA:
- In the active Recording Processor's rpconfig.cfg configuration file located in the [processing] section, set the mode parameter to active.
- In the backup Recording Processor's rpconfig.cfg configuration file:
- Set the mode parameter to backup.
- In the [processing] section, set the post_uri parameter to http://<active_rp_ip>:<active_rp_port>/api/contact-centers/%s/recordings/.
- Using Genesys Administrator Extension, under the Recording tab in the IVR Profile, set the Recording Processor URI parameter to the failover load balancer's URL.
- Configure the load balancer to direct traffic to the active Recording Processor instance first and to the backup instance if an error/failure occurs.
The following is an example configuration section that is needed for setting up an Apache load balancer in failover mode for Recording HA support.
ProxyPass /cluster balancer://nodecluster <Proxy balancer://nodecluster> BalancerMember http://<IP address of the active Recording Processor server>:<active Recording Processor port> BalancerMember http://<IP address of the backup Recording Processor Server>:<active Recording Processor port> status=H </Proxy>
For more information about how to use Genesys Administrator Extension to configure your Contact Center, see the Genesys Administrator Extension Help.
Configure Passwords
The following definitions describe the mapping of the environment variables to the corresponding configuration parameter:
HTCC_PASSWORD – maps to the existing configuration parameter under the htcc section, password value.
AUTH_PASSWORD - maps to the existing configuration parameter under the auth section, password value.
CONFIG_SERVER_PASSWORD - maps to the existing configuration parameter under the config_server section, password value.
<ICON_ID>_DB_INFO_PASSWORD - maps to the existing configuration parameter under the <ICON_ID>_db_info section, password value, where <ICON_ID> refers to the ICON instance listed in the icon_db_servers section.
In a Windows environment only, the Recording Processor Script (RPS) can store passwords in the Windows Vault instead of in the rpconfig.cfg file or requiring the use of environment variables.
For example, run the following command for the Recording Processor Script credentials located at <Recording Processor Directory>\rp. This command will prompt the user to enter valid values for the password/key configuration parameters and stores the passwords in the encrypted file named rp.secret:
Command to store:encryptPassword.bat -password <password_string>
Where <password_string> is a comma-delimited series of key/value pairs, use the format <environment variable name 1>=<environment variable value 1>,<environment variable name 2>=<environment variable value 2>,<environment variable name 3>=<environment variable value 3>, and so on. Note that space is not allowed in <password_string>.
For example:
encryptPassword.bat -password "HTCC_PASSWORD=somepassword1, AUTH_PASSWORD=somepassword2, CONFIG_SERVER_PASSWORD=somepassword3, ICON1_DB_INFO_PASSWORD=somepassword4, ICON2_DB_INFO_PASSWORD=somepassword5"
Configure the Configuration Server Connection
To configure the Configuration Server connection, set the following parameters in the [config_server] section of the Recording Processor rpconfig.cfg configuration file:
Parameter Name | Default Value | Description |
---|---|---|
application_name | Empty | Specifies the name of the RPS application object in the Configuration Server, when using RPS as a third party server application. |
hostname | <ip address> | Specifies the IP address of the primary Configuration Server. |
port | 2020 | Specifies the port of the primary Configuration Server. |
username | default | Specifies the Configuration Server username. |
password | password | Specifies the Configuration Server password. Note: |
backup_host | Empty | Specifies the IP address of the backup Configuration Server. |
backup_port | Empty | Specifies the backup port of the backup Configuration Server. |
Configuring the Server Port
In the [rp_server] section of the rpconfig.cfg file, set the port parameter.
Configuring the Connection to Interaction Recording Web Services (Web Services)
To configure the Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) connection, set the following parameters in the [htcc] section of the Recording Processor rpconfig.cfg configuration file:
Parameter Name | Default Value | Description |
---|---|---|
base_uri | http://<Web Services IP>:<Web Services Port> | Specifies the Base URI for accessing the Interaction Recording Web Services (Web Services) API. |
username | ops | Specifies the username used to access the Interaction Recording Web Services (Web Services) account. |
password | ops | Specifies the password used to access the Interaction Recording Web Services (Web Services) account. Note: The password can be overridden by the HTCC_PASSWORD environment variable. |
Each Interaction Recording Web Services (Web Services) instance must have a region associated with it. Set the region parameter in the [metadata] section of the rpconfig.cfg file to match the region associated with Interaction Recording Web Services (Web Services) instance set to receive the Recording Processor's metadata.
Configuring Cross-Site Request Forgery (CSRF) Protection
If Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) has CSRF enabled, set the following parameter in the [htcc] section of the rpconfig.cfg file:
- csrfp = 1
Configuring the Connection to SpeechMiner
To configure the SpeechMiner Connection:
- In the IVR Profile, set the recording destinations to point to the SpeechMiner interaction receiver:
- Login to Genesys Administrator Extension, and navigate to Configuration > System > Configuration Manager.
- Under Voice Platform, select Voice Platform Profiles.
- Click on the IVR Profile for which you want to set the recording destination.
- Select the Recording tab.
- In theSpeechMiner Interaction Receiver field, enter the URL that points to the SpeechMiner service responsible for accepting metadata from the RPS for this profile. For example, https://<SpeechMiner IP>/interactionreceiver.
- In the SpeechMiner Interaction Receiver Authorization Header field, enter the authorization information (username:password) required to connect to the SpeechMiner service used by the RPS. For example, user:password.
Configuring Failed Message Files
The Recording processor can backup messages that fail to POST correctly to Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) and SpeechMiner. These files are located in the <recording processor dir>\failed folder.
In the rpconfig.cfg configuration file, add the following parameter:
[processing] backup_failed_metadata = 1
Configuring the Agent Hierarchies
Recording Processor Script uses the agent hierarchy information to set the access control information for recordings within the recording metadata. Refer to Access Control for Genesys Interaction Recording Users to configure this appropriately.
Configuring Basic Authorization
In the rpconfig.cfg configuration file, set the following parameters:
[auth] # Basic Authentication username and password. Set username blank to disable. username = rp_username password = rp_password
- The username and password must match the username and password entered in the IVR Profile. For more information about configuring the IVR Profile, see the IVR Profile section.
- The password can be overridden by the AUTH_PASSWORD environment variable.
Configuring After Call Work
Recording Processor can collect After Call Work (ACW) customized data from ICON.
In the rpconfig.cfg file, in the [processing] section, add the following parameters:
- enable_acw—Set it to 1.
- acw_threshold_minutes—Set it to the maximum time to wait for the customized attached data.
- If Call Customized Attached Data is still not available in the ICON database after acw_threshold_minutes, the RPS will stop collecting customized data for this recording and write it to the database.
- If enable_acw is set to 0, ACW customized data will not be included.
- If disposition code is required in the metadata, you must set enable_acw and acw_threshold_minutes using Recording Processor configuration.
The disposition code is part of the user data collected during ACW. For this reason, enable_acw must be enabled in the Recording Processor. If it is not enabled, the data will not be collected.
If the disposition code must be collected from the Recording Processor, configure the following to include the disposition code for recording:
[processing] enable_acw=1
[metadata] acw_threshold_minutes=5. Where 5 is the maximum time (in minutes) to wait for the disposition code.
In the ICON configuration, the EventData parameter in the custom-states section, must include char,DispositionCode and store-event-data must be set to conf to collect the attached data:
[custom-states] store-event-data=conf EventData=char,DispositionCode
For additional information, refer to the ICON Deployment Guide.
Configuring ICON for Recording Processor
To configure ICON, edit the rpconfig.cfg configuration file as follows:
- Configure the switches:
Add a configuration option for each switch name under the [icon_db_servers] section. You can specify more than two ICON databases per SIP Switch configuration. For example:[icon_db_servers] SIP_Switch1: icon1 SIP_Switch2: icon2, icon2Backup SIP_Switch3: icon3, icon4, icon5, icon6
ImportantIn the above example, SIP_Switch3 has 4 ICON databases. The Recording Processor Script (RPS) keeps track of the ICON database instance currently used. If the current database instance becomes unavailable, RPS will attempt the operation in the next database.
The configuration option name must match the exact name of the switch as configured in the Genesys configuration. The primary and backup ICON names must be unique, but do not have to match anything in the Genesys configuration.
- Configure the ICON Connection Settings:
- For each unique ICON specified in the first step, create a new section using the following syntax:
<ICON_ID>_db_info, where <ICON_ID> corresponds to the values defined in the [icon_db_servers] section above. - dbengine must be mssql, oracle, db2, or postgres.
- dbserver_host and dbserver_port specify the host and port information for the Genesys DB Server.
- dbms specifies the host where the database resides.
The following is an example using the values for SIP_Switch1 and SIP_Switch2 from step 1:
[icon1_db_info] dbserver_host = vm221.us.int.genesyslab.com dbserver_port = 12201 username = iconuser_1 password = genesys dbname = ICON_LRM_DB_1 dbms = 10.0.0.228,1433 dbengine = mssql [icon2_db_info] dbserver_host = vm222.us.int.genesyslab.com dbserver_port = 12201 username = iconuser_1 password = genesys dbname = ICON_LRM_DB_1 dbms = 10.0.0.228,1433 dbengine = mssql [icon2Backup_db_info] dbserver_host = vm223.us.int.genesyslab.com dbserver_port = 12201 username = iconuser_1 password = genesys dbname = ICON_LRM_DB_1 dbms = 10.0.0.228,1433 dbengine = mssql [icon_oracle_db_info] dbserver_host = <host> dbserver_port = <port> username = <username> password = <password> dbname = dbms = <database host/Oracle SID> dbengine = oracle [icon_postgres_db_info] dbserver_host = <host> dbserver_port = <port> username = <username> password = <password> dbname = <database name> dbms = <database host> dbengine = postgres [icon_db2_db_info] dbserver_host = <host> dbserver_port = <port> username = <username> password = <password> dbname = dbms = <database host> dbengine = db2
- For each unique ICON specified in the first step, create a new section using the following syntax:
- For Oracle or DB2 implementations, the dbname parameter must be left blank or empty.
- The password can be overridden by the <ICON_ID>_DB_INFO_PASSWORD environment variable.
In the example above, the RPS will use the connection properties in section [icon1_db_info] when processing recording metadata from an MCP provisioned to SIP_Switch1. The RPS will use the connection properties in section [icon2_db_info] when processing recording metadata from an MCP provisioned to SIP_Switch2. In the case of SIP_Switch2, the RPS will use the connection settings in [icon2Backup_db_info] if the primary ICON (icon2) is unavailable when recording metadata is being processed.
Configure how to Filter Metadata from ICON
The Recording Processor supports the ability to filter specific attached data fields (based on the key name), such as attached data and After Call Work (ACW) customized data retrieved from the ICON database. This support prevents specific metadata from reaching additional GIR related components (for example, SpeechMiner).
The following two sections describe how to:
-
Verify that the following items are not removed from the filter. Removing these items may cause errors in GIR:
- GRECORD_PARTITIONS
- GRECORD_PROGRAM
- GSIP_REC_FN
- When running SpeechMiner, you must include Workspace Web Edition (WWE) in the attached attached_data_filter and acw_custom_data_filter Recording Processor configuration values. For example:
Filter Attached Data
- Edit the rpconfig.cfg file.
- Locate the Filter section. If the Filter section does not exist, add it as follows:
... [filter] ...
- Add a new option called attached_data_filter to the Filter section as follows. The value must be a Regex pattern used to filter out attached data whose key name matches the pattern.
... [filter] attached_data_filter = ^ORSI: ; (Note: this is the default value when the option is not specified.) ...
For information about Regex patterns, refer to the Python's documentation found here: https://docs.python.org/3.11/library/re.html.
- Add a new option called attached_data_filter_exception to this section as follows. The value must be a Regex pattern used to exclude key names that should not be filtered out (for example, like GRECORD_PARTITIONS).
... [filter] attached_data_filter = ^ORSI: ; (Note: this is the default value when the option is not specified.) attached_data_filter_exception = ^GRECORD_PARTITIONS$ ; (Note: this is the default value when the option is not specified.) ...
For information about Regex patterns, refer to the Python's documentation found here: https://docs.python.org/3.11/library/re.html.
- Restart the Recording Processor.
Filter ACW Related Custom Data
- Edit the rpconfig.cfg file.
- Locate the Filter section. If the Filter section does not exist, add it as follows:
... [filter] ...
- Add a new option called acw_custom_data_filter to the Filter section as follows. The value must be a Regex pattern used to filter out ACW whose key name matches the pattern.
... [filter] acw_custom_data_filter = ^ORSI: ; (Note: this is the default value when the option is not specified.) ...
For information about Regex patterns, refer to the Python's documentation found here: https://docs.python.org/3.11/library/re.html.
- Add a new option called acw_custom_data_filter_exception to this section as follows. The value must be a Regex pattern used to exclude ACW that should not be filtered out (for example, like GRECORD_PARTITIONS).
... [filter] acw_custom_data_filter = ^ORSI: ; (Note: this is the default value when the option is not specified.) acw_custom_data_filter_exception = ^GRECORD_PARTITIONS$ ; (Note: this is the default value when the option is not specified.) ...
- Restart the Recording Processor.
For information about Regex patterns, refer to the Python's documentation found here: https://docs.python.org/3.11/library/re.html.
Configuring SSL for Recording Processor
To configure SSL:
Configure HTTPS on the Primary Recording Processor Server
- Create a self-signed certificate and private key for the Recording Processor host. For example, on RHEL run: openssl req -new -x509 -days 1024 -nodes -out cert228.pem -keyout cert228key.pem
- In the rp_server section of the Recording Processor's configuration file, set the following parameters:
- ssl_certificate—To point to the certificate PEM file. For example, ssl_certificate=cert228.pem.
- ssl_private_key—To point to the private key file. For example, cert228.pem.
- Give the self-signed certificate PEM file to any MCP client that needs to validate the certificate during the SSL handshake. See the "Enable Secure Communication" section Genesys Voice Platform 8.5 User's Guide.
- Restart Recording Processor.
Configure the HTTPS connection to Interaction Recording Web Services (Web Services)
- Set up HTTPS on Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier). See the Genesys Security Deployment Guide.
- Get the corresponding certificate for the Interaction Recording Web Services (Web Services) server. Set the caCertificate option in your Interaction Recording Web Services application (see caCertificate if you're using a Web Services application).
- In the [htcc] section of the Recording Processor configuration file, set base_uri parameter to use https.
- In the [client] section, set the certs parameter to point to the file that contains the certificate (see previous step). Or, point to an existing CA certificate file after copying the content of the new certificate into the existing CA certificate file.
ImportantIf there are multiple client connections using HTTPS, use a single CA cert file with all the certificates listed.
Configure the HTTPS connection to SpeechMiner
- Set up HTTPS on SpeechMiner.See the Genesys Security Deployment Guide.
- Set the disable_ssl_certificate_validation parameter in the [speechminer] section of the Recording Processor configuration to a value of 1.
- Using Genesys Administrator Extension on the Recording tab of the IVR Profile, modify the SpeechMiner Interaction Receiver field use https as the protocol in the URL.
- In the [client] section, set the certs parameter to point to the file that contains the certificate (see previous step). Or, point to an existing CA certificate file after copying the content of the new certificate into the existing CA cert file.
ImportantIf there are multiple client connections using HTTPS, use a single CA cert file with all the certificates listed.
Configure the HTTPS connection from the backup Recording Processor to the primary Recording Processor
- Configure HTTPS on the primary Recording Processor.
- Get the corresponding PEM certificate for the Web Services server.
- In the [processing] section of the Recording Processor configuration file, set the post_uri parameter to use https as the protocol in the URL.
- In the client section, set the certs parameter to point to the file that contains the certificate (see previous step). Or, point to an existing CA certificate file after copying the content of the new certificate into the existing CA certificate file.
ImportantIf there are multiple client connections using HTTPS, use a single CA cert file with all the certificates listed.
Configure the HTTPS on the backup Recording Processor Server
Follow the same procedure used for the Primary Recording Processor Server using a new certificate and private key for the Backup Recording Processor’s server.
Configuring the IVR Profile
Using Genesys Administrator Extension, configure the following parameters on the Recording tab of the IVR Profile:
- Recording Processor URI—The URI that the Media Control Platform (MCP) uses to post the metadata of the audio recording after the recording is complete. For example, http:// <Recording Processor Host>/api/contact-centers/<Contact Cente Domain Name>/recordings/.
ImportantThe value for the URI must always end with a forward slash (/).
- SpeechMiner Interaction Receiver—The URL that points to the SpeechMiner service responsible for accepting metadata from the RPS for this profile.
- SpeechMiner Interaction Receiver Authorization Header—The authorization information required to connect to the SpeechMiner service used by the RPS. For example, <SpeechMiner Webserver Username>:<SpeechMiner Webserver Password>.
For more information, see the Configuring GVP.
Configuring the Recording Processor Using Genesys Administrator Extension (Optional)
The Recording Processor uses a configuration file instead of a specific application object in Configuration Server. However, it is possible to configure the Recording Processor as a "third-party server" application enabling Genesys Administrator Extension to monitor, start, and stop the process.
The following steps describe how to setup Recording Processor as a "third party server" application in Genesys Administrator Extension. For more information, see the "Using the Management Layer" section of the Framework 8.5.1 Management Layer User's Guide
Configuring RPS to Start/Stop via LCA using Genesys Administrator Extension:
- Install and deploy the latest RPS.
- Make sure that the Local Control Agent (LCA) is running.
- Create a new application template in Genesys Administrator Extension called Recording Processor Script of type Third Party Server.
- Create a new application (for example, myRPS) in Genesys Administrator Extension using this new application template.
- Set the Command Line parameter (for example, C:\Python311\python.exe).
- Set the Host parameter in the application’s server info to the correct Host object.
- Set the Working Directory parameter to the <Recording Processor Install Directory>\rp directory. For example, /opt/genesys/Recording_Processor_Script_8.5/rp/.
- Set the Command Line Arguments parameter to the appropriate values. For example, recording_process.py --config-file=/opt/genesys/Recording_Processor_Script_8.5/rp/rpconfig.cfg.
Refer to the Starting the Recording Processor Script section for additional command line parameters - Make sure that LCA has permission to read and write to the Recording Processor installation directory and Recording Processor log directory.
- Save the configuration changes.
- Ensure that the Configuration Server parameters in the Recording Processor configuration file are set appropriately. Refer to Configure the Configuration Server Connection tab on this page.
For more information about the RPS options, see Genesys Interaction Recording Options Reference.
Starting the Recording Processor Script
To launch the RPS, run the following command from the <Recording Processor Install Directory>:
<python executable> recording_process.py --config-file=rpconfig.cfg
Use the following command line when you want to run multiple instances of RPS on the same machine:
<python executable> recording_process.py --config-file=rpconfig.cfg --id=1 --port=8889
For each RPS instance, assign a unique id (--id parameter) and port number (--port).
- --port defines the server port opened by the RPS process.
- --id represents the suffix of the:
- application_name in the configuration file. For example, if application_name is defined in the configuration file as RecordingProcessorScript and --id 2 is specified in the command line, then the application object named RecordingProcessorScript_2 will be used to start the program.
- log files
- metadata json files created in the failed folder
- database file created by the process
By default the RPS log file is stored in the working directory. This can be changed by specifying a preexisting folder in the logfile_path parameter in the log file section of the configuration file. For example, in Windows:
logfile_path = C:\logs\recordingProcessor
Voice Processor, a multi-threaded microservice based on the Node.JS platform, is an alternative to the Recording Processor Script (RPS).
- For information on deploying Voice Processor, see Deploying Voice Processor.
- To migrate from an existing RPS deployment to Voice Processor, see Migrating from RPS to Voice Processor.
- RPS is not supported for deployments integrated with SIP Cluster. If your deployment uses SIP Cluster, you must use Voice Processor.
Contents
- 1 Prerequisites
- 2 Installing Recording Processor Script
- 3 Configuring Recording Processor Script
- 3.1 Configuring High Availability
- 3.2 Configure Passwords
- 3.3 Configure the Configuration Server Connection
- 3.4 Configuring the Server Port
- 3.5 Configuring the Connection to Interaction Recording Web Services (Web Services)
- 3.6 Configuring Cross-Site Request Forgery (CSRF) Protection
- 3.7 Configuring the Connection to SpeechMiner
- 3.8 Configuring Failed Message Files
- 3.9 Configuring the Agent Hierarchies
- 3.10 Configuring Basic Authorization
- 3.11 Configuring After Call Work
- 3.12 Configuring ICON for Recording Processor
- 3.13 Configure how to Filter Metadata from ICON
- 3.14 Configuring SSL for Recording Processor
- 3.15 Configure the HTTPS on the backup Recording Processor Server
- 3.16 Configuring the IVR Profile
- 3.17 Configuring the Recording Processor Using Genesys Administrator Extension (Optional)
- 4 Starting the Recording Processor Script
Genesys Interaction Recording (GIR) needs the Recording Processor Script (RPS) to manage the recording metadata between Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) and SpeechMiner.
Prerequisites
Before installing and configuring the RPS, you must have the following prerequisites:
- An Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) instance where the call recording and screen recording metadata is stored.
- A Recording Crypto Server instance to decrypt the encrypted recordings.
- Network access to the WebDAV storage where the recordings are stored.
Installing Recording Processor Script
Installing on Windows
- Install 32 bit Python 2.7.5 or latest 2.7.x release from the Python website.
- Install the RPS IP.
- Unzip the <RPS>\thirdparty\httplib2-0.8.zip file.
- From the newly created directory, run: python setup.py install.
- Unzip the <RPS>\thirdparty\setuptools-1.3.2.zip file.
- From the newly created directory, run: python setup.py install.
- Unzip the <RPS>\thirdparty\python-dateutil-1.5.zip file.
- From the newly created directory, run: python setup.py install.
- Unzip the <RPS>\thirdparty\web.py-0.37.zip file.
- From the newly created directory, run: python setup.py install.
- Download pyOpenSSL for Windows (32 bit) from the Python pyOpenSSL site.
- Install pyOpenSSL by running pyOpenSSL-0.12.1.win32-py2.7.exe.
Installing on Linux (RHEL)
- Install zlib-devel (yum install zlib-devel).
- Install sqlite devel (yum install sqlite-devel.x86_64).
- Install openssl devel (yum install openssl-devel.x86_64).
- Install Python 2.7.5 or latest 2.7.x release from the
Python website:
-
Genesys recommends that newer versions of Python are installed separately from existing versions (do not update).
- See the Example below for an example of how to install CPython 2.7.6 on RHEL5.
-
Genesys recommends that newer versions of Python are installed separately from existing versions (do not update).
- Install/deploy the RPS IP.
- Install httplib2-0.8:
- Untar httplib2-0.8.tar.gz from the thirdparty directory in the RPS installation directory.
- From the newly created directory, run: python setup.py install.
- Install setuptools-1.3.2:
- Untar setuptools-1.3.2.tar.gz from the thirdparty directory in the RPS installation directory.
- From the newly created directory, run: python setup.py install.
- Install python-dateutil-1.5:
- Untar python-dateutil-1.5.tar.gz from the thirdparty directory in the RPS installation directory.
- From the newly created directory, run: python setup.py install.
- Install web.py-0.37:
- Untar web.py-0.37.tar.gz from the thirdparty directory in the RPS installation directory.
- From the newly created directory, run: python setup.py install.
- Install pyOpenSSL-0.12:
- Download pyOpenSSL-0.12.tar.gz from the pyOpenSSL 0.12 site.
- Untar the downloaded file, pyOpenSSL-0.12.tar.gz to the RPS installation directory.
- From the newly created directory, run the following command to build the library: python setup.py build.
- Install the library, run: python setup.py install.
The following instructions are intended as an example only. A specific system or environment may require different steps when installing CPython 2.7.6 on RHEL5 (64bit):
- Verify that zlib-devel is installed on the OS (yum install zlib-devel).
- Verify that sqlite dev is installed on the OS (yum install sqlite-devel.x86_64).
- Verify that openssl devel is installed on the OS (yum install openssl-devel.x86_64).
- Download CPython 2.7.6 source from the Python site.
- Untar compressed source.
- Run “./configure --enable-ipv6”.
- Run "'make altinstall'" (this should prevent the overwriting of any existing versions).
Upgrading Recording Processor Script
- Stop the RPS process.
- Stop the RPS application.
- Back up the RPS configuration file (rpconfig.cfg) and the sqlite file from the \rp directory (rpqueue.db).
- Rename the existing installation folder name to <folder name>.<old.current_date> or something similar.
- Uninstall the RPS component.
- Install the new RPS component.
- Copy the rpconfig.cfg and rpqueue.db files from the previous version into the \rp folder inside the new installation directory.
- Start the new RPS application.
- Repeat the above steps for additional RPS instances.
Configuring Recording Processor Script
This section describes how to configure the Recording Processor Script for your environment.
Configuring High Availability
Recording Processor Cluster
RPS now provides High Availability support using multiple instances of RPS (all active). These active/active instances must be accessed through an HA proxy or load balancer. In this mode, each RPS is responsible for sending metadata to Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) and SpeechMiner based on the load it receives. Each Recording Processor is responsible for fetching metadata from all ICON DB Servers. Media Control Platform (MCP) instances must be configured to access the Recording Processor instances by specifying a single URL that points to the load balancer.
To configure HA:
- In each Recording Processor's rpconfig.cfg configuration file, in the [processing] section, set the following options:
- get_from_httc_before_posting = 1
- mode = active
- Ensure that all Recording Processor instances have the same network related configuration.
ImportantGenesys recommends that multiple Recording Processor instances be deployed on a single host to optimize the available CPU and take advantage of parallel processing. Multiple Recording Processor instances can then be deployed on other hosts as needed.
- Using Genesys Administrator Extension, under the Recording tab in the IVR Profile, set the Recording Processor URI parameter to the load balancer's URL.
- Configure the load balancer to balance traffic to the Recording Processor instances.
The following is an example configuration section that is needed for setting up an Apache load balancer for a three-instance Recording Processor cluster.
ProxyPass /cluster balancer://nodecluster <Proxy balancer://nodecluster> BalancerMember http://<IP address of the active1 Recording Processor server>:<active Recording Processor port> BalancerMember http://<IP address of the active2 Recording Processor Server>:<active Recording Processor port> BalancerMember http://<IP address of the active3 Recording Processor Server>:<active Recording Processor port> </Proxy>
Recording Processor Script Active/Backup HA
RPS can also provide High Availability support by using two RPS instances (active and backup) accessed through an HA proxy or load balancer in failover mode. In this mode, the active RPS is always responsible for sending metadata to Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) and SpeechMiner, and the backup instance is responsible for receiving and temporarily storing metadata if the active instance is unavailable. Once the active instance recovers, the balancer will direct clients to the active instance, and the backup instance will send any stored data to the active instance for metadata processing. Media Control Platform (MCP) instances must be configured to access the Recording Processor instances by specifying a single URL that points to the load balancer.
To configure HA:
- In the active Recording Processor's rpconfig.cfg configuration file located in the [processing] section, set the mode parameter to active.
- In the backup Recording Processor's rpconfig.cfg configuration file:
- Set the mode parameter to backup.
- In the [processing] section, set the post_uri parameter to http://<active_rp_ip>:<active_rp_port>/api/contact-centers/%s/recordings/.
- Using Genesys Administrator Extension, under the Recording tab in the IVR Profile, set the Recording Processor URI parameter to the failover load balancer's URL.
- Configure the load balancer to direct traffic to the active Recording Processor instance first and to the backup instance if an error/failure occurs.
The following is an example configuration section that is needed for setting up an Apache load balancer in failover mode for Recording HA support.
ProxyPass /cluster balancer://nodecluster <Proxy balancer://nodecluster> BalancerMember http://<IP address of the active Recording Processor server>:<active Recording Processor port> BalancerMember http://<IP address of the backup Recording Processor Server>:<active Recording Processor port> status=H </Proxy>
For more information about how to use Genesys Administrator Extension to configure your Contact Center, see the Genesys Administrator Extension Help.
Configure Passwords
The following definitions describe the mapping of the environment variables to the corresponding configuration parameter:
HTCC_PASSWORD – maps to the existing configuration parameter under the htcc section, password value.
AUTH_PASSWORD - maps to the existing configuration parameter under the auth section, password value.
CONFIG_SERVER_PASSWORD - maps to the existing configuration parameter under the config_server section, password value.
<ICON_ID>_DB_INFO_PASSWORD - maps to the existing configuration parameter under the <ICON_ID>_db_info section, password value, where <ICON_ID> refers to the ICON instance listed in the icon_db_servers section.
In a Windows environment only, the Recording Processor Script (RPS) can store passwords in the Windows Vault instead of in the rpconfig.cfg file or requiring the use of environment variables.
For example, run the following command for the Recording Processor Script credentials located at <Recording Processor Directory>\rp. This command will prompt the user to enter valid values for the password/key configuration parameters and stores the passwords in the encrypted file named rp.secret:
Command to store:encryptPassword.bat -password <password_string>
Where <password_string> is a comma-delimited series of key/value pairs, use the format <environment variable name 1>=<environment variable value 1>,<environment variable name 2>=<environment variable value 2>,<environment variable name 3>=<environment variable value 3>, and so on. Note that space is not allowed in <password_string>.
For example:
encryptPassword.bat -password "HTCC_PASSWORD=somepassword1, AUTH_PASSWORD=somepassword2, CONFIG_SERVER_PASSWORD=somepassword3, ICON1_DB_INFO_PASSWORD=somepassword4, ICON2_DB_INFO_PASSWORD=somepassword5"
Configure the Configuration Server Connection
To configure the Configuration Server connection, set the following parameters in the [config_server] section of the Recording Processor rpconfig.cfg configuration file:
Parameter Name | Default Value | Description |
---|---|---|
application_name | Empty | Specifies the name of the RPS application object in the Configuration Server, when using RPS as a third party server application. |
hostname | <ip address> | Specifies the IP address of the primary Configuration Server. |
port | 2020 | Specifies the port of the primary Configuration Server. |
username | default | Specifies the Configuration Server username. |
password | password | Specifies the Configuration Server password. Note: |
backup_host | Empty | Specifies the IP address of the backup Configuration Server. |
backup_port | Empty | Specifies the backup port of the backup Configuration Server. |
Configuring the Server Port
In the [rp_server] section of the rpconfig.cfg file, set the port parameter.
Configuring the Connection to Interaction Recording Web Services (Web Services)
To configure the Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) connection, set the following parameters in the [htcc] section of the Recording Processor rpconfig.cfg configuration file:
Parameter Name | Default Value | Description |
---|---|---|
base_uri | http://<Web Services IP>:<Web Services Port> | Specifies the Base URI for accessing the Interaction Recording Web Services (Web Services) API. |
username | ops | Specifies the username used to access the Interaction Recording Web Services (Web Services) account. |
password | ops | Specifies the password used to access the Interaction Recording Web Services (Web Services) account. Note: The password can be overridden by the HTCC_PASSWORD environment variable. |
Each Interaction Recording Web Services (Web Services) instance must have a region associated with it. Set the region parameter in the [metadata] section of the rpconfig.cfg file to match the region associated with Interaction Recording Web Services (Web Services) instance set to receive the Recording Processor's metadata.
Configuring Cross-Site Request Forgery (CSRF) Protection
If Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) has CSRF enabled, set the following parameter in the [htcc] section of the rpconfig.cfg file:
- csrfp = 1
Configuring the Connection to SpeechMiner
To configure the SpeechMiner Connection:
- In the IVR Profile, set the recording destinations to point to the SpeechMiner interaction receiver:
- Login to Genesys Administrator Extension, and navigate to Configuration > System > Configuration Manager.
- Under Voice Platform, select Voice Platform Profiles.
- Click on the IVR Profile for which you want to set the recording destination.
- Select the Recording tab.
- In theSpeechMiner Interaction Receiver field, enter the URL that points to the SpeechMiner service responsible for accepting metadata from the RPS for this profile. For example, https://<SpeechMiner IP>/interactionreceiver.
- In the SpeechMiner Interaction Receiver Authorization Header field, enter the authorization information (username:password) required to connect to the SpeechMiner service used by the RPS. For example, user:password.
Configuring Failed Message Files
The Recording processor can backup messages that fail to POST correctly to Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier) and SpeechMiner. These files are located in the <recording processor dir>\failed folder.
In the rpconfig.cfg configuration file, add the following parameter:
[processing] backup_failed_metadata = 1
Configuring the Agent Hierarchies
Recording Processor Script uses the agent hierarchy information to set the access control information for recordings within the recording metadata. Refer to Access Control for Genesys Interaction Recording Users to configure this appropriately.
Configuring Basic Authorization
In the rpconfig.cfg configuration file, set the following parameters:
[auth] # Basic Authentication username and password. Set username blank to disable. username = rp_username password = rp_password
- The username and password must match the username and password entered in the IVR Profile. For more information about configuring the IVR Profile, see the IVR Profile section.
- The password can be overridden by the AUTH_PASSWORD environment variable.
Configuring After Call Work
Recording Processor can collect After Call Work (ACW) customized data from ICON.
In the rpconfig.cfg file, in the [processing] section, add the following parameters:
- enable_acw—Set it to 1.
- acw_threshold_minutes—Set it to the maximum time to wait for the customized attached data.
- If Call Customized Attached Data is still not available in the ICON database after acw_threshold_minutes, the RPS will stop collecting customized data for this recording and write it to the database.
- If enable_acw is set to 0, ACW customized data will not be included.
- If disposition code is required in the metadata, you must set enable_acw and acw_threshold_minutes using Recording Processor configuration.
The disposition code is part of the user data collected during ACW. For this reason, enable_acw must be enabled in the Recording Processor. If it is not enabled, the data will not be collected.
If the disposition code must be collected from the Recording Processor, configure the following to include the disposition code for recording:
[processing] enable_acw=1
[metadata] acw_threshold_minutes=5. Where 5 is the maximum time (in minutes) to wait for the disposition code.
In the ICON configuration, the EventData parameter in the custom-states section, must include char,DispositionCode and store-event-data must be set to conf to collect the attached data:
[custom-states] store-event-data=conf EventData=char,DispositionCode
For additional information, refer to the ICON Deployment Guide.
Configuring ICON for Recording Processor
To configure ICON, edit the rpconfig.cfg configuration file as follows:
- Configure the switches:
Add a configuration option for each switch name under the [icon_db_servers] section. You can specify more than two ICON databases per SIP Switch configuration. For example:[icon_db_servers] SIP_Switch1: icon1 SIP_Switch2: icon2, icon2Backup SIP_Switch3: icon3, icon4, icon5, icon6
ImportantIn the above example, SIP_Switch3 has 4 ICON databases. The Recording Processor Script (RPS) keeps track of the ICON database instance currently used. If the current database instance becomes unavailable, RPS will attempt the operation in the next database.
The configuration option name must match the exact name of the switch as configured in the Genesys configuration. The primary and backup ICON names must be unique, but do not have to match anything in the Genesys configuration.
- Configure the ICON Connection Settings:
- For each unique ICON specified in the first step, create a new section using the following syntax:
<ICON_ID>_db_info, where <ICON_ID> corresponds to the values defined in the [icon_db_servers] section above. - dbengine must be mssql, oracle, db2, or postgres.
- dbserver_host and dbserver_port specify the host and port information for the Genesys DB Server.
- dbms specifies the host where the database resides.
The following is an example using the values for SIP_Switch1 and SIP_Switch2 from step 1:
[icon1_db_info] dbserver_host = 10.0.0.221 dbserver_port = 12201 username = iconuser_1 password = genesys dbname = ICON_LRM_DB_1 dbms = 10.0.0.228,1433 dbengine = mssql [icon2_db_info] dbserver_host = 10.0.0.222 dbserver_port = 12201 username = iconuser_1 password = genesys dbname = ICON_LRM_DB_1 dbms = 10.0.0.228,1433 dbengine = mssql [icon2Backup_db_info] dbserver_host = 10.0.0.223 dbserver_port = 12201 username = iconuser_1 password = genesys dbname = ICON_LRM_DB_1 dbms = 10.0.0.228,1433 dbengine = mssql [icon_oracle_db_info] dbserver_host = <host> dbserver_port = <port> username = <username> password = <password> dbname = dbms = <database host/Oracle SID> dbengine = oracle [icon_postgres_db_info] dbserver_host = <host> dbserver_port = <port> username = <username> password = <password> dbname = <database name> dbms = <database host> dbengine = postgres [icon_db2_db_info] dbserver_host = <host> dbserver_port = <port> username = <username> password = <password> dbname = dbms = <database host> dbengine = db2
- For each unique ICON specified in the first step, create a new section using the following syntax:
- For Oracle or DB2 implementations, the dbname parameter must be left blank or empty.
- The password can be overridden by the <ICON_ID>_DB_INFO_PASSWORD environment variable.
In the example above, the RPS will use the connection properties in section [icon1_db_info] when processing recording metadata from an MCP provisioned to SIP_Switch1. The RPS will use the connection properties in section [icon2_db_info] when processing recording metadata from an MCP provisioned to SIP_Switch2. In the case of SIP_Switch2, the RPS will use the connection settings in [icon2Backup_db_info] if the primary ICON (icon2) is unavailable when recording metadata is being processed.
Configure how to Filter Metadata from ICON
The Recording Processor supports the ability to filter specific attached data fields (based on the key name), such as attached data and After Call Work (ACW) customized data retrieved from the ICON database. This support prevents specific metadata from reaching additional GIR related components (for example, SpeechMiner).
The following two sections describe how to:
-
Verify that the following items are not removed from the filter. Removing these items may cause errors in GIR:
- GRECORD_PARTITIONS
- GRECORD_PROGRAM
- GSIP_REC_FN
- When running SpeechMiner, you must include Workspace Web Edition (WWE) in the attached attached_data_filter and acw_custom_data_filter Recording Processor configuration values. For example:
Filter Attached Data
- Edit the rpconfig.cfg file.
- Locate the Filter section. If the Filter section does not exist, add it as follows:
... [filter] ...
- Add a new option called attached_data_filter to the Filter section as follows. The value must be a Regex pattern used to filter out attached data whose key name matches the pattern.
... [filter] attached_data_filter = ^ORSI: ; (Note: this is the default value when the option is not specified.) ...
For information about Regex patterns, refer to the Python's documentation found here: https://docs.python.org/2/library/re.html.
- Add a new option called attached_data_filter_exception to this section as follows. The value must be a Regex pattern used to exclude key names that should not be filtered out (for example, like GRECORD_PARTITIONS).
... [filter] attached_data_filter = ^ORSI: ; (Note: this is the default value when the option is not specified.) attached_data_filter_exception = ^GRECORD_PARTITIONS$ ; (Note: this is the default value when the option is not specified.) ...
For information about Regex patterns, refer to the Python's documentation found here: https://docs.python.org/2/library/re.html.
- Restart the Recording Processor.
Filter ACW Related Custom Data
- Edit the rpconfig.cfg file.
- Locate the Filter section. If the Filter section does not exist, add it as follows:
... [filter] ...
- Add a new option called acw_custom_data_filter to the Filter section as follows. The value must be a Regex pattern used to filter out ACW whose key name matches the pattern.
... [filter] acw_custom_data_filter = ^ORSI: ; (Note: this is the default value when the option is not specified.) ...
For information about Regex patterns, refer to the Python's documentation found here: https://docs.python.org/2/library/re.html.
- Add a new option called acw_custom_data_filter_exception to this section as follows. The value must be a Regex pattern used to exclude ACW that should not be filtered out (for example, like GRECORD_PARTITIONS).
... [filter] acw_custom_data_filter = ^ORSI: ; (Note: this is the default value when the option is not specified.) acw_custom_data_filter_exception = ^GRECORD_PARTITIONS$ ; (Note: this is the default value when the option is not specified.) ...
- Restart the Recording Processor.
For information about Regex patterns, refer to the Python's documentation found here: https://docs.python.org/2/library/re.html.
Configuring SSL for Recording Processor
To configure SSL:
Configure HTTPS on the Primary Recording Processor Server
- Make sure pyOpenSSL is installed.
- Create a self-signed certificate and private key for the Recording Processor host. For example, on RHEL run: openssl req -new -x509 -days 1024 -nodes -out cert228.pem -keyout cert228key.pem
- In the rp_server section of the Recording Processor's configuration file, set the following parameters:
- ssl_certificate—To point to the certificate PEM file. For example, ssl_certificate=cert228.pem.
- ssl_private_key—To point to the private key file. For example, cert228.pem.
- Give the self-signed certificate PEM file to any MCP client that needs to validate the certificate during the SSL handshake. See the "Enable Secure Communication" section Genesys Voice Platform 8.5 User's Guide.
- Restart Recording Processor.
Configure the HTTPS connection to Interaction Recording Web Services (Web Services)
- Set up HTTPS on Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier). See the Genesys Security Deployment Guide.
- Get the corresponding certificate for the Interaction Recording Web Services (Web Services) server. Set the caCertificate option in your Interaction Recording Web Services application (see caCertificate if you're using a Web Services application).
- In the [htcc] section of the Recording Processor configuration file, set base_uri parameter to use https.
- In the [client] section, set the certs parameter to point to the file that contains the certificate (see previous step). Or, point to an existing CA certificate file after copying the content of the new certificate into the existing CA certificate file. See the <Python27 install directory>\Lib\site-packages\httplib2\cacerts.txt file for an example.
ImportantIf there are multiple client connections using HTTPS, use a single CA cert file with all the certificates listed.
Configure the HTTPS connection to SpeechMiner
- Set up HTTPS on SpeechMiner.See the Genesys Security Deployment Guide.
- Set the disable_ssl_certificate_validation parameter in the [speechminer] section of the Recording Processor configuration to a value of 1.
- Using Genesys Administrator Extension on the Recording tab of the IVR Profile, modify the SpeechMiner Interaction Receiver field use https as the protocol in the URL.
- In the [client] section, set the certs parameter to point to the file that contains the certificate (see previous step). Or, point to an existing CA certificate file after copying the content of the new certificate into the existing CA cert file. See the <Python27 install directory>\Lib\site-packages\httplib2\cacerts.txt file for an example.
ImportantIf there are multiple client connections using HTTPS, use a single CA cert file with all the certificates listed.
Configure the HTTPS connection from the backup Recording Processor to the primary Recording Processor
- Configure HTTPS on the primary Recording Processor.
- Get the corresponding PEM certificate for the Web Services server.
- In the [processing] section of the Recording Processor configuration file, set the post_uri parameter to use https as the protocol in the URL.
- In the client section, set the certs parameter to point to the file that contains the certificate (see previous step). Or, point to an existing CA certificate file after copying the content of the new certificate into the existing CA certificate file. See the <Python27 install directory>\Lib\site-packages\httplib2\cacerts.txt file for an example.
ImportantIf there are multiple client connections using HTTPS, use a single CA cert file with all the certificates listed.
Configure the HTTPS on the backup Recording Processor Server
Follow the same procedure used for the Primary Recording Processor Server using a new certificate and private key for the Backup Recording Processor’s server.
Configuring the IVR Profile
Using Genesys Administrator Extension, configure the following parameters on the Recording tab of the IVR Profile:
- Recording Processor URI—The URI that the Media Control Platform (MCP) uses to post the metadata of the audio recording after the recording is complete. For example, http:// <Recording Processor Host>/api/contact-centers/<Contact Cente Domain Name>/recordings/.
ImportantThe value for the URI must always end with a forward slash (/).
- SpeechMiner Interaction Receiver—The URL that points to the SpeechMiner service responsible for accepting metadata from the RPS for this profile.
- SpeechMiner Interaction Receiver Authorization Header—The authorization information required to connect to the SpeechMiner service used by the RPS. For example, <SpeechMiner Webserver Username>:<SpeechMiner Webserver Password>.
For more information, see the Configuring GVP.
Configuring the Recording Processor Using Genesys Administrator Extension (Optional)
The Recording Processor uses a configuration file instead of a specific application object in Configuration Server. However, it is possible to configure the Recording Processor as a "third-party server" application enabling Genesys Administrator Extension to monitor, start, and stop the process.
The following steps describe how to setup Recording Processor as a "third party server" application in Genesys Administrator Extension. For more information, see the "Using the Management Layer" section of the Framework 8.5.1 Management Layer User's Guide
Configuring RPS to Start/Stop via LCA using Genesys Administrator Extension:
- Install and deploy the latest RPS.
- Make sure that the Local Control Agent (LCA) is running.
- Create a new application template in Genesys Administrator Extension called Recording Processor Script of type Third Party Server.
- Create a new application (for example, myRPS) in Genesys Administrator Extension using this new application template.
- Set the Command Line parameter (for example, C:\Python27\python.exe).
- Set the Host parameter in the application’s server info to the correct Host object.
- Set the Working Directory parameter to the <Recording Processor Install Directory>\rp directory. For example, /opt/genesys/Recording_Processor_Script_8.5/rp/.
- Set the Command Line Arguments parameter to the appropriate values. For example, recording_process.py --config-file=/opt/genesys/Recording_Processor_Script_8.5/rp/rpconfig.cfg.
Refer to the Starting the Recording Processor Script section for additional command line parameters - Make sure that LCA has permission to read and write to the Recording Processor installation directory and Recording Processor log directory.
- Save the configuration changes.
- Ensure that the Configuration Server parameters in the Recording Processor configuration file are set appropriately. Refer to Configure the Configuration Server Connection tab on this page.
For more information about the RPS options, see Genesys Interaction Recording Options Reference.
Starting the Recording Processor Script
To launch the RPS, run the following command from the <Recording Processor Install Directory>:
<python executable> recording_process.py --config-file=rpconfig.cfg
Use the following command line when you want to run multiple instances of RPS on the same machine:
<python executable> recording_process.py --config-file=rpconfig.cfg --id=1 --port=8889
For each RPS instance, assign a unique id (--id parameter) and port number (--port).
- --port defines the server port opened by the RPS process.
- --id represents the suffix of the:
- application_name in the configuration file. For example, if application_name is defined in the configuration file as RecordingProcessorScript and --id 2 is specified in the command line, then the application object named RecordingProcessorScript_2 will be used to start the program.
- log files
- metadata json files created in the failed folder
- database file created by the process
By default the RPS log file is stored in the working directory. This can be changed by specifying a preexisting folder in the logfile_path parameter in the log file section of the configuration file. For example:
logfile_path = C:\logs\recordingProcessor