Jump to: navigation, search
(Update with the copy of version: draft)
(Modified comment string {{Template:PEC_Migrated| with __NOINDEX__ {{Template:PEC_Migrated|)
 
(17 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
=Recording Cloud Backup Service=
 
=Recording Cloud Backup Service=
 +
 +
__NOINDEX__ {{Template:PEC_Migrated|
 +
 +
Target=[https://all.docs.genesys.com/PEC-REC/Current/Administrator/Backup Recording Cloud Backup Service]}}
 +
 +
 
{{BEC_Head
 
{{BEC_Head
 
|context=
 
|context=
The Recording Cloud Backup Service (RCBS) allows you to make a backup copy of your Genesys Interaction Recording voice and/or screen recording files prior to their automated deletion as per the Cloud retention policy. Once installed, you can securely download the encrypted voice and screen recording files from Amazon S3 and their respective metadata files from PureEngage and store them on your local machines. The recording file can then be decrypted and used as desired, for example, for compliance.|dimension=
+
The Recording Cloud Backup Service (RCBS) allows you to make a backup copy of your Genesys Interaction Recording voice and/or screen recording files prior to their automated deletion as per the Cloud retention policy. Once installed, you can [[Documentation:PSAAS:Administrator:Backup#Security|securely]] download the encrypted voice and screen recording files from Amazon S3 and their respective [[Documentation:PSAAS:Administrator:Backup#Recording_metadata|metadata]] files from Genesys Engage and store them on your machines.
 +
 
 +
RCBS can be installed on local machines or on AWS EC2 instances. The recording file can then be [[Documentation:PSAAS:Administrator:Backup#Decrypting_the_downloaded_files|decrypted]] and used as desired, for example, for compliance.|dimension=
 
}}
 
}}
 
{{NoteFormat|
 
{{NoteFormat|
Line 11: Line 19:
 
==Prerequisites==
 
==Prerequisites==
  
Before you can install and use the Recording Cloud Backup Service on your desktop, verify that you have the following information. Your IT department or your Genesys professional can help you get this information.
+
Before you can install and use the Recording Cloud Backup Service on a machine, verify that you have the following prerequisites. Your IT department or your Genesys professional can help you get this information.
  
 
* Windows Server 2008/2012 64-bit or Red Hat Enterprise Linux AS 6 Operating System with admin privileges.
 
* Windows Server 2008/2012 64-bit or Red Hat Enterprise Linux AS 6 Operating System with admin privileges.
Line 17: Line 25:
 
* The Recording Cloud Backup Service software (minimum version 8.5.2xx.xx).
 
* The Recording Cloud Backup Service software (minimum version 8.5.2xx.xx).
 
* The target directory or shared folder in your environment to download the recording files to&mdash;for example, <tt>C:/target_directory</tt> (this is for the '''targetDir''' parameter).
 
* The target directory or shared folder in your environment to download the recording files to&mdash;for example, <tt>C:/target_directory</tt> (this is for the '''targetDir''' parameter).
* The private key you used to initially configure the tenant for recording file encryption, so that those recording files can be decrypted (this is for decrypting the downloaded files).
+
* The private key you used to initially configure recording file encryption, so that the recording files can be decrypted (this is for decrypting the downloaded files).
* The name of your Platform Administration tenant administrator account – (this is for the <tt>GWS_USERNAME</tt> environment variable). Usernames should be in the format <tt>username@customer_tenant.com</tt>.
+
* The name of your Platform Administration tenant administrator account – (this is for the <tt>GWS_USERNAME</tt> [[Documentation:PSAAS:Administrator:Backup#Environment_Variables|environment variable]]). Usernames should be in the format <tt>username@customer_tenant.com</tt>. For more information, refer [[Documentation:PSAAS:Administrator:Backup#Creating_a_user|Creating a user]].
* The password for your Platform Administration tenant administrator account – (this is for the <tt>GWS_PASSWORD</tt> environment variable).
+
* The password for your Platform Administration tenant administrator account – (this is for the <tt>GWS_PASSWORD</tt> [[Documentation:PSAAS:Administrator:Backup#Environment_Variables|environment variable]]). For more information, refer [[Documentation:PSAAS:Administrator:Backup#Creating_a_user|Creating a user]].
* The path to your Java installation directory (for example, <tt>/usr/java/jre1.7.0_79</tt>) (this is for the <tt>JAVA_HOME</tt> environment variable). Java 7 is the current supported version.
+
* Java 8 is the current supported version.
  
 
==Security==
 
==Security==
The recording files are encrypted throughout the media lifecycle. After the recording files are created, they are encrypted and stored in Amazon S3. RCBS securely transfers the encrypted recordings from S3 to your local machine by using the HTTPS internet protocol. The recordings can be decrypted only on your local machine.
+
The recording files are encrypted throughout the media lifecycle. After the recording files are created, they are encrypted and stored in Amazon S3. RCBS securely transfers the encrypted recordings from S3 to a machine by using the HTTPS internet protocol. The recordings can be [[Documentation:PSAAS:Administrator:Backup#Decrypting_the_downloaded_files|decrypted]] only on that machine.
 
==Getting Started==
 
==Getting Started==
 
The following sections explain how to request RCBS functionality and install the software on Windows and Linux environments.
 
The following sections explain how to request RCBS functionality and install the software on Windows and Linux environments.
Line 31: Line 39:
  
 
* The public IP ranges for the network where the RCBS client software will be installed and from where access to recordings will be established.
 
* The public IP ranges for the network where the RCBS client software will be installed and from where access to recordings will be established.
 +
** If a proxy is used, then the public IP range of the proxy will be requested instead.
 +
* If RCBS is planned to be deployed on an AWS EC2 Instance, then additional information will be requested:
 +
** The AWS Region where RCBS is planned to be deployed.
 +
** Whether or not you wish to use a VPC Endpoint to connect to Genesys S3 Storage.
 +
*** If you choose to use a VPC Endpoint, Customer Care will provide more information.
 
* A public PGP key so the Genesys Operations team can securely transfer the S3 storage access credentials to you, which are needed by the RCBS to access the recording storage location.
 
* A public PGP key so the Genesys Operations team can securely transfer the S3 storage access credentials to you, which are needed by the RCBS to access the recording storage location.
  
 
Once the software has been delivered, Genesys will provide you with the following information:
 
Once the software has been delivered, Genesys will provide you with the following information:
* The Interaction Recording Web Services URL to access the recording metadata—for example, <tt><nowiki>https://example.com/api/v2</nowiki></tt> (this is for the '''gwsUriPrefix''' parameter).
+
* The Interaction Recording Web Services URL to access the recording [[Documentation:PSAAS:Administrator:Backup#Recording_metadata|metadata]]—for example, <tt><nowiki>https://example.com/api/v2</nowiki></tt> (this is for the '''gwsUriPrefix''' parameter).
* The access ID for the S3 storage, used to gain access to the recordings – (this is for the <tt>AWS_ACCESS_KEY_ID</tt> environment variable).
+
* The access ID for the S3 storage, used to gain access to the recordings – (this is for the <tt>AWS_ACCESS_KEY_ID</tt> [[Documentation:PSAAS:Administrator:Backup#Environment_Variables|environment variable]]).
* The secret access key for the S3 storage, used to gain access to the recordings – (this is for the <tt>AWS_SECRET_ACCESS_KEY</tt> environment variable).
+
* The secret access key for the S3 storage, used to gain access to the recordings – (this is for the <tt>AWS_SECRET_ACCESS_KEY</tt> [[Documentation:PSAAS:Administrator:Backup#Environment_Variables|environment variable]]).
 +
 
 +
===Creating a user===
 +
 
 +
Refer to [[UserAccounts#NewUser|Creating a new user from scratch]] to create a user for RCBS. Perform steps 1 and 2, clear the Agent check box, skip the remaining steps, and save to create a user for RCBS. The user that is created is <tt>GWS_USERNAME</tt> [[Backup#Environment_Variables|environment variable]] and the password for this user is <tt>GWS_PASSWORD</tt> [[Backup#Environment_Variables|environment variable]].
 +
{{NoteFormat| If you plan to run RCBS in verification mode, an extra provisioning step is required for your user. Please contact Genesys to get the required provisioning.}}
  
 
{{CloudStep_Stack
 
{{CloudStep_Stack
Line 45: Line 63:
 
Follow through the wizard until finished making sure that you make note of the installation directory.
 
Follow through the wizard until finished making sure that you make note of the installation directory.
  
Check the installation directory and verify that the '''config.properties''' files is available.
+
Check the installation directory and verify that the '''config.properties''' file is available.
  
[[file:Gir-backupservicewindowsverify.png]]
+
[[File:Gir-backupservicewindowsverify.png]]
  
 
|media1=Gir-backupservicewindows.png
 
|media1=Gir-backupservicewindows.png
Line 55: Line 73:
 
|title=Installing on Linux
 
|title=Installing on Linux
 
|text=
 
|text=
 +
The '''glibc.i686''' package is required to install RCBS. To install '''glibc.i686''', run the following command: <tt>yum install glibc.i686</tt>
 +
 
In the installation directory, at the prompt, type <tt>./install.sh</tt>.  
 
In the installation directory, at the prompt, type <tt>./install.sh</tt>.  
  
 
Let the script install your software.
 
Let the script install your software.
  
Check the installation directory and verify that the '''config.properties''' files is available.
+
Check the installation directory and verify that the '''config.properties''' file is available.
  
 
|media1=Gir-linuxinstall.png
 
|media1=Gir-linuxinstall.png
 
}}
 
}}
  
==Configuration and Setup==
+
==Configuration and setup==
 
The following sections explain the configuration properties and environment variables to set for proper functioning of RCBS.
 
The following sections explain the configuration properties and environment variables to set for proper functioning of RCBS.
  
===Configuration Properties===
+
===Configuration properties===
The following properties must be modified to successfully retrieve recording files from Amazon S3. Locate your '''config.properties''' file, usually found in the Recording Cloud Backup Service installation directory, edit the file with a text editor, and set the following parameters:
+
The following properties must be modified to successfully retrieve recording files from Amazon S3. Locate your '''config.properties''' file, usually found in the installation directory, edit the file with a text editor, and set the following parameters:
  
 
{|
 
{|
! '''Parameter Name'''
+
! width= "10%"|'''Parameter Name'''
! '''Description'''
+
! width= "70%"|'''Description'''
! '''Example Value'''
+
! width= "20%"|'''Example Value'''
 
|-
 
|-
 
| gwsUriPrefix
 
| gwsUriPrefix
| The URL prefix of Interaction Recording Web Services where the metadata for the recording files are retrieved from. This is a mandatory parameter and will be provided by Genesys.
+
| The URL prefix of Interaction Recording Web Services where the metadata for the recording files is retrieved from. This is a mandatory parameter and will be provided by Genesys.
 
|<tt><nowiki>https://example.com/api/v2</nowiki></tt>
 
|<tt><nowiki>https://example.com/api/v2</nowiki></tt>
 
|-
 
|-
 
| maxAge
 
| maxAge
| All recordings newer than the specified '''maxAge''' value, in days, are downloaded. You can specify any integer greater than or equal to 0 (0 is any age). Defaults is 2 which means that you retrieve all recordings from the last 2 days. If recordings have already been downloaded, they will not be downloaded again.<br>
+
| All recordings newer than the specified '''maxAge''' value, in days, are downloaded. You can specify any integer greater than or equal to 0 (0 is any age). The default value is 2, which means that all recordings from the last 2 days will be retrieved. If recordings have already been downloaded, they will not be downloaded again.<br>
'''Note:'''  
+
'''Note:''' If recordings are moved from their downloaded folder ('''targetDir'''), they will be downloaded again when RCBS is run. To ensure recordings are not downloaded more than once, only move recordings from this folder once '''maxAge''' days have passed since RCBS was last run.  
* If recordings are moved from their downloaded folder ('''targetDir'''), they will be downloaded again when RCBS is run. To ensure recordings are not downloaded more than once, only move recordings from this folder once '''maxAge''' days have passed since RCBS was last run.
 
* RCBS allows a one-time download of past recordings given a specific time range. Refer to the '''minDate''' parameter for details on how to use the one-time download.  
 
 
| <tt>2</tt>
 
| <tt>2</tt>
 
|-
 
|-
 
| targetDir
 
| targetDir
| The directory where the recordings are downloaded to. This folder can be anywhere on the system as long as the account running the software has permission to write to the folder.
+
| The directory where the recordings are downloaded to. This directory can be anywhere on the system as long as the account running the software has permission to write to the directory. Ensure that the required space is available to download the desired number of recordings.
 
'''Note:'''
 
'''Note:'''
* On both Windows and Linux, you must use the directory separator "/" (forward-slash) instead of "\" (back-slash).
+
* On both Windows and Linux, you must use the directory separator "/" (forward slash) instead of "\" (backslash).
* RCBS supports the use of the UNC path for the targetDIR. For example, targetDir = //server_name/path.
+
* RCBS supports the use of a UNC path for targetDir. For example, targetDir = //server_name/path.
 
| <tt><Installation Directory>/target</tt>
 
| <tt><Installation Directory>/target</tt>
 
|}
 
|}
Line 96: Line 114:
 
Specify the following parameters only if the machine running RCBS cannot connect directly to Amazon S3 or the Interaction Recording Web Services address.
 
Specify the following parameters only if the machine running RCBS cannot connect directly to Amazon S3 or the Interaction Recording Web Services address.
 
{|
 
{|
! '''Parameter Name'''
+
! width= "10%"|'''Parameter Name'''
! '''Description'''
+
! width= "75%"|'''Description'''
! '''Example Value'''
+
! width= "15%"|'''Example Value'''
 
|-
 
|-
 
| awsProxyHost
 
| awsProxyHost
Line 116: Line 134:
 
| <tt>8080</tt>
 
| <tt>8080</tt>
 
|}
 
|}
===Environment Variables===
+
 
Once configured, before running the Recording Cloud Backup Service from the command line, the following environment variables must be set based on those provided earlier:
+
===Environment variables===
 +
Once configured, before running the Recording Cloud Backup Service from the command line, the following environment variables must be set based on those provided [[Documentation:PSAAS:Administrator:Backup#Prerequisites|earlier]]:
 
* GWS_USERNAME
 
* GWS_USERNAME
 
* GWS_PASSWORD
 
* GWS_PASSWORD
 
* AWS_ACCESS_KEY_ID
 
* AWS_ACCESS_KEY_ID
 
* AWS_SECRET_ACCESS_KEY
 
* AWS_SECRET_ACCESS_KEY
 +
 +
'''On Windows'''
 +
 +
To set environment variables, select '''System''' from the '''Control Panel''' (change category view ('''View by''') to '''Small icons'''), click '''Advanced system settings''', and then click '''Environment Variables'''. Under User variables for <<tt>your_user</tt>> or System variables, add as the following:
 +
 +
{| border="1"
 +
|-
 +
! Variable
 +
! Value
 +
|-
 +
| GWS_USERNAME
 +
| <nowiki>username@customer_tenant.com</nowiki>
 +
|-
 +
| GWS_PASSWORD
 +
| <tt>your_password</tt>
 +
|-
 +
| AWS_ACCESS_KEY_ID
 +
| <tt>your_aws_access_key_id</tt>
 +
|-
 +
| AWS_SECRET_ACCESS_KEY
 +
| <tt>your_aws_secret_access_key</tt>
 +
|}
 +
 +
'''On Linux'''
 +
 +
Create the '''rcbs.sh''' file under the <tt>/etc/profile.d/</tt> directory. The file should contain the following:
 +
<pre>#!/bin/bash
 +
export GWS_USERNAME=username@customer_tenant.com
 +
export GWS_PASSWORD=your_password
 +
export AWS_ACCESS_KEY_ID=your_aws_access_key_id
 +
export AWS_SECRET_ACCESS_KEY=your_aws_secret_access_key</pre>
 +
 +
Provide execute permission and using the '''source''' command this file will be used for setting the environment variable as follows:
 +
<pre>[root@rcbsmachine ~]# cd /etc/profile.d/
 +
[root@rcbsmachine profile.d]# chmod +x rcbs.sh
 +
[root@rcbsmachine profile.d]# source rcbs.sh</pre>
  
 
==Launching the Recording Cloud Backup Service==
 
==Launching the Recording Cloud Backup Service==
  
After the '''config.properties''' file has been modified and the environment variables are set, access the RCBS installation directory CD (<tt><installationfolder></tt>) and type the following command line to start RCBS:
+
After the [[Documentation:PSAAS:Administrator:Backup#Configuration_Properties|config.properties]] file has been modified and the [[Documentation:PSAAS:Administrator:Backup#Environment_Variables|environment variables]] are set, access the RCBS installation directory and type the following command line to start RCBS:
  
 
<tt>java –jar rp_clouddownload.jar –config config.properties</tt>
 
<tt>java –jar rp_clouddownload.jar –config config.properties</tt>
Line 131: Line 186:
 
{{NoteFormat| Do not copy and paste the command from this document. Instead, manually type the command.}}
 
{{NoteFormat| Do not copy and paste the command from this document. Instead, manually type the command.}}
  
Once RCBS is complete, the status of the downloaded files is displayed as shown in the following image.
+
You can view the progress of the download process in percentage in console window. Download process will be completed once the progress reaches 100% with the message as shown in the following image.
  
[[File:gir_rcbsinstallation.png|800px]]
+
[[File:gir_rcbsinstallation_updated.png|800px]]
  
 
The tool exits when the backup is complete. Check your '''targetDir''' to ensure that the expected recordings have been downloaded.  
 
The tool exits when the backup is complete. Check your '''targetDir''' to ensure that the expected recordings have been downloaded.  
  
The recording files are organized by date. In the below example, the target_download_folder/Tenant_21-86_GIR_Team/2015/09/ is followed by folders of variety of dates.
+
In the below example, 2018 is the year, 02 is the month, 12 is the date, 19 is the hour, and 01F62DGIBGD8369P7GC362LAES00000G is the recording folder. Recordings are grouped at the hour as the lowest level. Each recording folder has encrypted voice and screen recording files (if applicable) along with a [[Documentation:PSAAS:Administrator:Backup#Recording_metadata|metadata]] file in JSON format.
  
[[File:gir_rcbsinstallation2.png|800px]]
+
[[File:gir_rcbsinstallation2_updated.png]]
 +
 
 +
===Running RCBS in verification mode===
 +
After the [[Documentation:PSAAS:Administrator:Backup#Configuration_Properties|config.properties]] file has been modified and the [[Documentation:PSAAS:Administrator:Backup#Environment_Variables|environment variables]] are set, access the RCBS installation directory and type the following command line to start RCBS to verify your connection to download recordings from AWS S3:
 +
 
 +
<tt>java –jar rp_clouddownload.jar –config config.properties -verify s3</tt>
 +
 
 +
{{NoteFormat|
 +
*This function is only available in RCBS 8.5.298.58 and later versions.
 +
*If you plan to run RCBS in verification mode, an extra provisioning step is required for your user. Please contact Genesys to get the required provisioning.}}
 +
 
 +
You can find out whether the connection is successful or not via the console window.
 +
[[File:Gir_rcbsinstallation_verificationmode.png]]
  
 
==Scheduling backup==
 
==Scheduling backup==
The following sections explain how to scheduled backup.
+
The following sections explain how to schedule a backup.
  
 
===How to schedule a Windows task===
 
===How to schedule a Windows task===
  
For information on how to schedule or manage your tasks in Windows, see the  {{#Widget:ExtLink|link=https://technet.microsoft.com/en-ca/library/cc725745.aspx|displaytext=Windows}} document. Do not forget to set your environment variables.
+
For information on how to schedule or manage your tasks in Windows, see the  {{#Widget:ExtLink|link=https://technet.microsoft.com/en-ca/library/cc725745.aspx|displaytext=Windows}} documentation. Do not forget to set your [[Documentation:PSAAS:Administrator:Backup#Environment_Variables|environment variables]].
  
 
===How to create a Linux cronjob===
 
===How to create a Linux cronjob===
You can set up a recurring backup by using cronjob (crontab -e). The following example illustrates how to configure the  “crontab –e” for setting up the cronjob on Linux:
+
You can set up a recurring backup by using cronjob (crontab -e). The following example illustrates how to use "crontab -e" to configure an appropriate cronjob on Linux:
  
 
<pre>AWS_ACCESS_KEY_ID=<access_id>
 
<pre>AWS_ACCESS_KEY_ID=<access_id>
Line 157: Line 224:
 
30 4,10,16,22 * * * (cd <installation_folder>; java -jar rp_clouddownload.jar -config config.properties)</pre>
 
30 4,10,16,22 * * * (cd <installation_folder>; java -jar rp_clouddownload.jar -config config.properties)</pre>
  
Replace the above <access_id>, <access_key>, <gws_password>,  <gws_username>, <installation_folder> with the actual values, and the job would be executed 4 times daily at 4:30, 10:30, 16:30 and 22:30.
+
Replace the above <access_id>, <access_key>, <gws_password>,  <gws_username>, <installation_folder> with the actual values, and the job will be executed 4 times daily at 4:30, 10:30, 16:30 and 22:30.
  
 
{{NoteFormat|
 
{{NoteFormat|
* Genesys strongly recommends you to create backup copies several weeks prior to the expected deletion date.
+
* Genesys strongly recommends that you create backup copies several weeks prior to the expected deletion date.
* Ensure your local machine has enough space for the scheduled backup.}}
+
* Ensure your local machine has enough [[Documentation:PSAAS:Administrator:Backup#Storage|space]] for the scheduled backup.}}
  
 +
{{AnchorDiv|decrypt}}
 
==Decrypting the downloaded files==
 
==Decrypting the downloaded files==
  
You will use OpenSSL to decrypt your recording files. You can download the software and following the instructions {{#Widget:ExtLink|link=https://www.openssl.org/|displaytext=here}}.
+
You will use OpenSSL to decrypt your recording files. You can download the software by following the instructions {{#Widget:ExtLink|link=https://www.openssl.org/|displaytext=here}}.
 +
 
 +
When working with Windows, the OpenSSL binaries can be downloaded from: {{#Widget:ExtLink|link=https://wiki.openssl.org/index.php/Binaries|displaytext=OpenSSL Binaries Distribution}}.
  
When working with Windows, the OpenSSL binaries can be downloaded from: {{#Widget:ExtLink|link=https://wiki.openssl.org/index.php/Binaries|displaytext=OpenSSL Binaries Distribution}} or {{#Widget:ExtLink|link=http://gnuwin32.sourceforge.net/packages/openssl.htm|displaytext=Gnuwin32 OpenSSL}}.
+
Each recording folder contains the encrypted recording files and the respective recording metadata files (in json format).
  
 
To decrypt the downloaded files that are in encrypted format, use the following OpenSSL commands:
 
To decrypt the downloaded files that are in encrypted format, use the following OpenSSL commands:
  
 
'''Windows:'''
 
'''Windows:'''
<pre>openssl smime -decrypt –inform DER -in <encrypted.file.der> -inkey <private_key_file> –out <outputfile></pre>
+
<pre>openssl smime -decrypt –inform DER -in <encrypted.file.bin> -inkey <private_key_file> –out <outputfile></pre>
  
 
'''Linux:'''
 
'''Linux:'''
Line 179: Line 249:
 
where:<br>
 
where:<br>
 
<tt><encrypted.file.bin></tt> is the file to be decrypted<br>
 
<tt><encrypted.file.bin></tt> is the file to be decrypted<br>
<tt><private_key_file></tt> is the private key file<br>
+
<tt><private_key_file></tt> is the private key you used to initially configure recording file encryption, so that the recording files can be decrypted<br>
 
<tt><outputfile></tt> is the file that would be written after decryption
 
<tt><outputfile></tt> is the file that would be written after decryption
  
Each recording folder contains the encrypted recording files (in mp3 format) and the respective recording metadata files (in json format).
+
===Storage===
 
+
Ensure that the required space is available to download the desired number of recordings.  Genesys recommends that you decrypt the recording files to a different destination than the encrypted files so that the original encrypted source file is not modified or overwritten by the decrypted file.
==Storage==
 
Audio files are stored in mp3 format, 32 kbps and this setting cannot be changed. Ensure that the required space is available to download the desired number of recordings.  Genesys recommends you to decrypt the recording files to a different destination than the encrypted files. That is, <tt><outputfile></tt> is different than your previously used '''targetDir''', so that the original encrypted source file is not modified or overwritten by the decrypted file.
 
  
 
==Advanced configuration==
 
==Advanced configuration==
 
 
If you are an advanced user, you can change the behavior of the Recording Cloud Backup Service by changing the values of the parameters in the '''config.properties''' file.
 
If you are an advanced user, you can change the behavior of the Recording Cloud Backup Service by changing the values of the parameters in the '''config.properties''' file.
<toggledisplay linkstyle font-size:larger showtext="[+] Show advanced parameters." hidetext="[-] Hide advanced parameters.">
+
===Configuring download period===
{|
+
Use the following parameters to set the download period.
! '''Parameter Name'''
+
{| class="genesystable"| width="100%"
! '''Description'''
+
! width= "15%"|'''Parameter Name'''
! '''Example Value'''
+
! width= "70%"|'''Description'''
 +
! width= "15%"|'''Example Value'''
 
|-
 
|-
| downloadMode
+
| minAge
| Determines if RCBS is run in multithreaded mode and indicates whether recordings are downloaded in a serial or parallel manner. The default value is <tt>multithread</tt> (that is, enabled). This parameter is optional.  If this parameter is set to <tt>single</tt>, RCBS will run in single-threaded mode.
+
| All recordings older than the specified '''minAge''' value, in days, are included in the download period. You can specify any integer greater than or equal to 0. The default is 0, which means that the download period includes recordings older than the current time. The '''minAge''' value must be less than the '''maxAge''' value.
| <tt>multithread</tt>
+
ISO 8601 format can also be used with respect to current time. Refer to [[Backup#ISO_8601_format|ISO 8601 format]] for more information. If you specify a minimum age of PT30M, all recordings that are older than half an hour ago are included in processing. If you specify a minimum age of P30D, all recordings older than 30 days are included in processing.  
 +
| <tt>0</tt>
 
|-
 
|-
| encryptionFormat
+
| maxAge
| The cipher to use if the encryption is performed by the download tool. The supported values are <tt>AES-128</tt> or <tt>AES-256</tt>. The default value is <tt>AES-128</tt>.  
+
| All recordings newer than the specified '''maxAge''' value, in days, are included in download period. You can specify any integer greater than or equal to 0 (0 is any age). The default value is 2, which means that the period includes recordings from the last 2 days. The '''maxAge''' value must be greater than the '''minAge''' value.  
  
'''Note:''' If <tt>AES-256</tt> is used, the JCE unlimited Strength Jurisdiction Policy File  must be installed. Configure this parameter if the '''certificate''' parameter is set.
+
ISO 8601 format can also be used with respect to current time. Refer to [[Backup#ISO_8601_format|ISO 8601 format]] for more information. If you specify a maximum age of PT30M, all recordings that are newer than half an hour are included in processing. If you specify a maximum age of P30D, all recordings newer than 30 days are included in processing.
| <tt>AES-128</tt>
+
| <tt>2</tt>
 
|-
 
|-
| gwsRecordingsUri
+
| minDate
| The path to the recording API. Do not change the path from the default setting unless instructed to by Genesys This parameter is optional.
+
| The absolute date, in the YYYY-MM-DD format (in GMT), to include recordings older than the specified date. When specified, this value would be used as the '''minAge'''. Alternatively, the epoch time value can be specified instead of the YYYY-MM-DD format. Refer to [[Backup#UNIX_Epoch_time_format|UNIX Epoch time format]] for more information. This parameter is optional.
| <tt>/recordings</tt>
+
| <tt>2015-07-31</tt> Or <tt>1438300800000</tt>
 
|-
 
|-
| gwsSettingsUri
+
| maxDate
| The path to the settings API. Do not change the path from the default setting unless instructed to by Genesys. This parameter is optional.
+
| The absolute date, in the YYYY-MM-DD format (in GMT), to include recordings newer than the specified date. When specified, this value would be used as the '''maxAge''', and override the local storage's last recording endtime's value (last_recording_endtime.txt). Alternatively, the epoch time value can be specified instead of the YYYY-MM-DD format. Refer to [[Backup#UNIX_Epoch_time_format|UNIX Epoch time format]] for more information. This parameter is optional.
| <tt>/me/settings/rcbs</tt>
+
| <tt>2015-07-31</tt> Or <tt>1438300800000</tt>
 +
|}
 +
 
 +
For repetitive scheduled download of recordings, use the '''minAge''' and '''maxAge''' parameters. RCBS will download recordings for the configured duration with respect to current time. For example, if the current date is January 09, 2018 and if you want to download recordings of three days with respect to current time, then set '''minAge=0''' and '''maxAge=3''' as shown in the following image. Recordings between 06 January and 09 January will be downloaded.
 +
 
 +
For one-time download of recordings between two dates (GMT), use the '''minDate''' and '''maxDate''' parameters. RCBS will download recordings within the configured period. To perform a one-time download, Genesys recommends that you create a copy of the '''config.properties''' file, delete or rename the '''last_recording_endtime.txt''' file and make changes to the '''minDate''' and '''maxDate''' parameters. When you execute RCBS, use the following command with the name of the copy of the configuration file (for example, new_config.properties): <tt>java -jar rp_clouddownload.jar -config new_config.properties</tt>. To download recordings between a date range,  for example, between 02 January to 04 January, set the parameters such as the following: '''minDate=2018-01-04''' and '''maxDate=2018-01-02'''.
 +
 
 +
[[File:RCBS_timeline.png]]<br/>
 +
Download period always includes the recordings newer than the last download period as specified in the '''last_recording_endtime.txt''' file. <br/>
 +
The '''last_recording_endtime.txt''' file is updated after download of recordings for configured period has completed successfully. The next time when the download tool starts, it checks to see if the '''last_recording_endtime.txt''' file is older than the specified '''maxAge''' parameter. If it is, the tool uses the value from the '''last_recording_endtime.txt''' instead of the configured '''maxAge''' value.
 +
For example, the download tool is scheduled to run daily with '''maxAge''' set to 2 days. If the server was offline for three days, it is replaced with the '''last_recording_endtime.txt''' file check, and the tool downloads all the recordings that were missed.
 +
====UNIX Epoch time format====
 +
RCBS supports UNIX Epoch time format in milliseconds for certain parameters. It is a 13 digit integer value. You can convert the date and time to 13 digit integer value by using tools such as {{#Widget:ExtLink|link=https://www.epochconverter.com|displaytext= Epoch Converter}}.
 +
 
 +
====ISO 8601 format====
 +
RCBS supports ISO 8601 format <tt>P[n]Y[n]M[n]DT[n]H[n]M[n]S</tt> for certain parameters. The description of the format is as follows:
 +
* <tt>P</tt> - Mandatory prefix to identify that the configuration is in ISO format.
 +
* <tt>[n]</tt> - Integer value which is specific for the suffix followed by it
 +
* <tt>[n]Y</tt> - Number of Years. Example - 2Y means 2 years
 +
* <tt>[n]M</tt> - Number of Months
 +
* <tt>[n]D</tt> - Number of Days
 +
* <tt>T</tt> - Mandatory prefix to identify the following content is time
 +
* <tt>[n]H</tt> - Number of Hours
 +
* <tt>[n]M</tt> - Number of Minutes
 +
* <tt>[n]S</tt> - Number of Seconds
 +
 
 +
Examples of valid values:
 +
* P1Y2DT4H30M - Indicates 1 Year + 2 Days + 4 Hours + 30 Minutes
 +
* P6MT12H - Indicates 6 Months + 12 Hours
 +
 
 +
===Configuring media===
 +
Use the following parameters to set the media configurations.
 +
{|
 +
! width= "10%"|'''Parameter Name'''
 +
! width= "70%"|'''Description'''
 +
! width= "20%"|'''Example Value'''
 
|-
 
|-
 
| mediaTypePattern
 
| mediaTypePattern
| Indicates the file types that will be downloaded by RCBS in a regular expression. To only download MP3, set this value to <tt>audio\/mp3</tt>. This parameter is optional. The default value is <tt>audio\/mp3&#124;video\/mp4</tt>. This value will download both audio and video files.
+
| Indicates the file types that will be downloaded by RCBS in a regular expression. The default value is <tt>audio\/mp3&#124;video\/mp4</tt>. This value will download both audio and video files.
 +
To download only MP3, set this value to audio\/mp3. To download only MP4, set this value to video\/mp4.
 +
This parameter is optional.
 
| <tt>audio\/mp3&#124;video\/mp4</tt>
 
| <tt>audio\/mp3&#124;video\/mp4</tt>
 +
|-
 +
| recordingFolderFormat
 +
| The directory structure for storing the recordings. Default value is in the <tt>yyyy/MM/dd/HH</tt> format which means the top level folder is year, subfolder is month, then date, then hour.
 +
 +
Note the directory separator "/" (forward slash) must be used instead of "\" (backslash) on both Windows and Linux.
 +
| <tt>yyyy/MM/dd/HH</tt>
 +
|-
 +
| encryptionFormat
 +
| The cipher to use if the encryption is performed by the download tool. The supported values are <tt>AES-128</tt> or <tt>AES-256</tt>. The default value is <tt>AES-128</tt>.
 +
 +
'''Note:''' If <tt>AES-256</tt> is used, the JCE unlimited Strength Jurisdiction Policy File  must be installed.
 +
| <tt>AES-128</tt>
 
|-
 
|-
 
| metadataOnly
 
| metadataOnly
| Indicates whether to download the metadata with the recording files. If set to<tt> true</tt>, the metadata is downloaded without the recordings. You do not need S3 credentials when using this option. Default value is <tt>false</tt>.
+
| Indicates whether to download the recording files along with the metadata. If set to<tt> true</tt>, the metadata is downloaded without the recordings. You do not need S3 credentials when using this option. Default value is <tt>false</tt>.
 
| <tt>false</tt>
 
| <tt>false</tt>
 
|-
 
|-
| minAge
+
| usePayloadSigning
| All recordings older than the specified '''minAge''' value, in days, are downloaded. You can specify any integer greater than or equal to 0 (0 is any age). Defaults is 0 which means that all of the latest recordings are retrieved.
+
| Configures whether payload signing is used during the file transfer from Amazon S3. Disabling payload signing improves performance. Default value is <tt>false</tt>. To enable, set to <tt>true</tt>.  
If the value starts with P, the ISO 8601 format is used&mdash;for example, <tt>P[n]Y[n]M[n]DT[n]H[n]M[n]S</tt> can be used to specify the number of days/hours/minutes/etc.  If you specify a minimum age of <tt>PT30M</tt>, all recordings that are older than a half hour ago are included in processing. If you specify a minimum age of <tt>P30D</tt>, all recordings older than 30 days are included in processing. The '''minAge''' value must be less than the '''maxAge''' value.
+
| <tt>false</tt>
 +
|}
  
'''Note:''' This parameter is not required, and if you set it to <tt>0</tt>, you will always get the latest up-to-date recordings. Use this parameter with caution to avoid missing recording files.
+
===Configuring multiple instances===
| <tt>0</tt>
+
Multiple instances of RCBS can be used to increase the download rate of the recordings for the configured download period. Multiple instances can be used in the same machine or different machines based on network bandwidth. Each instance will process the same download period and split the download process based on hashing of the recording ID. A particular recording will be downloaded by only one instance and all other instances will skip that recording. All instances should be running properly to download all the recordings in the configured download period.
|-
 
| minDate
 
| The absolute date, in the YYYY-MM-DD format (in GMT), to retrieve the recordings from. When specified, this value would be used as the '''minAge'''. Alternatively, the epoch time value can be specified instead of the YYYY-MM-DD format. This parameter is optional.
 
  
 +
The '''minAge''' and '''maxAge''' of the separate instances must be the same. The point of multiple instances is that each instance is assigned a different subset of recordings to download to spread the load. Changing the '''minAge''' and '''maxAge''' means each instance will download a separate chunk of a different time period.
  
'''Note:'''For a one-time download of past recordings, you need to express the combination of '''minAge''' and '''maxAge''' parameters as a date range relative to now. For example,<br>
+
'''Note:''' If running multiple instances of RCBS on the same machine, each RCBS must be started from a different installation directory, and '''targetDir''' for each instance must point to a different output folder. RBCS has a built-in protection mechanism to prevent multiple instances from writing to the same directory; the second instance will terminate immediately if they share the same path.
'''minAge''' = <tt>P7DT1H</tt><br>
+
{| border="1"
'''maxAge''' = <tt>P7DT3H</tt><br>
 
As a result, you will receive recordings from within a range of 7 days from 1 hour ago up to 7 days 3 hours ago.
 
The format of this string is an ISO8601 time duration string that can be set to the exact minute. To do a one-time download, we recommend that you create a copy of the '''config.properties''' file to make the changes to '''minAge''' and '''maxAge'''. When you execute RCBS, the copy of the configuration (for example, '''new_config.properties'''), will use the following command: <tt>java -jar rp_clouddownload.jar -config new_config.properties</tt>.
 
| <tt>2015-07-31</tt> Or <tt>1438300800000</tt>
 
|-
 
| maxDate
 
| The absolute date, in the YYYY-MM-DD format (in GMT), to retrieve the recordings from. When specified, this value would be used as the '''maxAge''', and override the local storage's last recording endtime's value (last_recording_endtime.txt). Alternatively, the epoch time value can be specified instead of the YYYY-MM-DD format. This parameter is optional.
 
| <tt>2015-07-31</tt> Or <tt>1438300800000</tt>
 
 
|-
 
|-
| numThreads
+
! Parameter Name
| Indicates the number of threads in RCBS that handle the post-processing of media files. This parameter is optional.
+
! Description
<tt>numThreads</tt> is only used when <tt>downloadMode</tt> is set to <tt>multithread</tt>.
+
! Example Value
| 4
 
 
|-
 
|-
| overlap
+
| totalRcbsInstances
| The amount of time, in hours, before the '''maxAge''' value to be re-scanned on subsequent batch downloads. This is used to help catch delayed media files that are added to interaction records after the previous run of the RCBS. The default value is <tt>6</tt>.
+
| The total number of RCBS instances deployed.This parameter must be used with the '''rcbsInstanceId''' configuration parameter. This parameter is optional.
If the value starts with P, the ISO 8601 format is used&mdash;for example, <tt>P[n]Y[n]M[n]DT[n]H[n]M[n]S</tt> can be used to specify the number of days/hours/minutes/etc. If you specify an overlap of P6D, all recordings from the last six days are re-scanned.
+
| <tt>4</tt>
| <tt>6</tt>
 
 
|-
 
|-
 
| rcbsInstanceId
 
| rcbsInstanceId
| When multiple instances of RCBS are deployed, '''rcbsInstanceId''' represents the current RCBS instance ID that shares the overall load. '''rcbsInstanceId''' starts at 0, up to '''totalRcbsInstances''' - 1. For example, if the download load was distributed across 4 instances of a running RCBS process, then '''totalRcbsInstances''' should be set to <tt>4</tt>. For each RCBS's configuration, assign '''rcbsInstanceId''' <tt>0</tt> for the first RCBS instance, '''rcbsInstanceId''' <tt>1</tt> for the second RCBS instance, '''rcbsInstanceId''' <tt>2</tt> for the third RCBS instance, and '''rcbsInstanceId''' <tt>3</tt> for the fourth RCBS instance. All RCBS instances should have the same '''minAge''' and '''maxAge''' configuration. This parameter is optional.
+
| Indicates the current RCBS instance ID that shares the overall load. '''rcbsInstanceId''' starts at '''0''', up to '''totalRcbsInstances''' minus '''1'''.
| 0
+
For example, if the download load was distributed across four instances of a running RCBS process, then '''totalRcbsInstances''' should be set to 4. For each RCBS configuration, assign '''rcbsInstanceId''' to '''0''' for the first RCBS instance, '''rcbsInstanceId''' to '''1''' for the second RCBS instance, '''rcbsInstanceId''' to '''2''' for the third RCBS instance, and '''rcbsInstanceId''' to '''3''' for the fourth RCBS instance. All RCBS instances should have the same '''minAge''' and '''maxAge''' configuration values.
 +
| <tt>0</tt>
 +
|}
 +
 
 +
[[File:RCBS_Multi_instance.png]]
 +
 
 +
In the above image, eight instances of RCBS spread between two servers. Here, the value of '''totalRcbsInstances''' is 8 in all the instances.
 +
 
 +
===Configuring URIs (optional)===
 +
The following parameters are optional. Do not set the URI path for these parameters unless instructed by Genesys.
 +
{| border="1"
 
|-
 
|-
| totalRcbsInstances
+
! Parameter Name
|The total number of RCBS instances deployed; that is, the number of instances of RCBS that will be deployed to share the downloaded recordings in the same period. This parameter must be used with the '''rcbsInstanceId''' configuration parameter. This parameter is optional.<br>
+
! Description
'''Note:''' If running multiple instances of RCBS on the same machine, each RCBS must be started from a different installation directory, and '''targetDir''' for each instance must point to a different output folder. RBCS has a built-in protection mechanism to prevent multiple instances from writing to the same directory; the second instance will terminate immediately if they share the same path.
+
! Example Value
| 4
 
 
|-
 
|-
| recordingFolderFormat
+
| gwsRecordingsUri
| The directory structure for storing the recordings. Default value is in the <tt>yyyy/MM/dd/HH</tt> format which means the top level folder is year, subfolder is month, then date, then hour. Note the directory separator "/" (forward-slash) must be used instead of "\" (back-slash) on both Windows and Linux.
+
| The path to the recording API.
| <tt>yyyy/MM/dd/HH</tt>
+
| <tt>/recordings</tt>
 
|-
 
|-
| shardBy
+
| gwsSettingsUri
| Controls the length of time (in days), within which the RCBS delivers the query to GWS. The default value is <tt>1</tt> day. For example, if the '''minAge''' and '''maxAge''' is <tt>10</tt> days and the '''shardBy''' value is <tt>1</tt> day, RCBS will download the recording and metadata one day at a time.<br>
+
| The path to the settings API.  
If the  '''minAge''' and '''maxAge''' value is smaller than the '''shardBy''' value, the '''shardBy''' value will be ignored.<br>
+
| <tt>/me/settings/rcbs</tt>
'''Note:''' '''shardBy''' is only relevant to version 8.5.241.13 or later.
 
| 1
 
|-
 
| skipLastRecordingCheck
 
| Indicates whether to check for the last completed download time. If set to <tt>true</tt>, the '''last_recording_endtime.txt''' is not processed, and the '''maxAge''' takes effect. Default is <tt>false</tt>. By default, the '''last_recording_endtime.txt''' file is written after each download has completed successfully. The next time when the download tool starts, it checks to see if the '''last_recording_endtime.txt''' file is older than the specified '''maxAge''' parameter. If it is, the tool uses the value from the '''last_recording_endtime.txt''' instead of the configured '''maxAge''' value.<br>
 
For example, the download tool is scheduled to run daily with '''maxAge''' set to <tt>2</tt> days. If the server was offline for three days, it is replaced with the '''last_recording_endtime.txt''' file check, the tool downloads all the recordings that were missed.  This parameter is used to disable this recovery behavior.
 
| <tt>false</tt>
 
|-
 
| usePayloadSigning
 
| Configures whether payload signing is used during the file transfer from Amazon S3. Disabling payload signing improves performance. To enable, set to <tt>true</tt>. Set to <tt>false</tt> (the default) to disable.
 
| <tt>false</tt>
 
 
|}
 
|}
</toggledisplay>
 
  
 
==Recording metadata==
 
==Recording metadata==
  
Metadata is organized by records and can be used for finding specific calls from a larger downloaded group of recordings (for example, by searching for a particular string of text, perhaps the ‘callerPhoneNumber’). A record represents an single call interaction which may contain multiple calls and recording segments. A metadata record is uniquely identified (per switch) by a CallUUID (GUID).
+
Metadata is organized by records and can be used for finding specific calls from a larger downloaded group of recordings (for example, by searching for a particular string of text, perhaps the ‘callerPhoneNumber’). A record represents a single call interaction which may contain multiple calls and recording segments. A metadata record is uniquely identified (per switch) by a CallUUID (GUID).
  
 
The metadata record is stored in JSON format and contains three main sections within the top level object.
 
The metadata record is stored in JSON format and contains three main sections within the top level object.
Line 294: Line 398:
 
<toggledisplay linkstyle font-size:larger showtext="[+] Show the properties and examples" hidetext="[-] Hide the properties and examples">
 
<toggledisplay linkstyle font-size:larger showtext="[+] Show the properties and examples" hidetext="[-] Hide the properties and examples">
  
 +
{{AnchorDiv|metadata}}
 
===Metadata properties===
 
===Metadata properties===
  
Line 638: Line 743:
 
</toggledisplay>
 
</toggledisplay>
  
 +
==Disk usage estimation==
 +
RCBS downloads the voice and screen recording files from the Genesys Interaction Recording system and stores the files on the local machine, thereby occupying the disk space. This section explains how to estimate the amount of disk space that will be used.
 +
 +
===Estimating disk space required to store downloaded voice recordings===
 +
The disk space required to store voice recordings can be estimated as follows:
 +
* '''Estimated size of a metadata file''': The size of a metadata file for each voice recording has an upper bound of 1 MB. You can use that value to estimate how much space the metadata files will use.
 +
* '''Estimated size of a voice recording file''': The size of a voice recording file can be estimated by using the average call duration (in seconds) and the recording bitrate (in kbps, the default value is 32 kbps).
 +
 +
====Total disk usage for a day====
 +
The estimated disk usage per day (in MB) can be calculated in one of the following ways:
 +
* <tt><number of recordings per day> * (<estimated disk usage of a recording file> + <estimated disk usage of a metadata file>)</tt>
 +
* <tt><number of recordings per day> * [<average call duration> * ((<recording bitrate> / '''8''' / '''1024''') + '''1''')]</tt>
 +
 +
===Estimating disk space required to store downloaded screen recordings===
 +
The disk space required to store screen recordings can be estimated as follows:
 +
* '''Estimated size of a metadata file''': The size of a metadata file for each screen recording has an upper bound of 8 KB. You can use that value to estimate how much space the metadata files will use.
 +
* '''Estimated size of a screen recording file''': The size of a Screen Recording file can be estimated by using the average call duration (in seconds) and the screen recording bitrate (in kbps), which is the sum of the screen recording bitrate and voice recording bitrate because the RCBS downloads the muxed screen recording files. The default value for the total bitrate is 256 kbps.
  
 +
====Total disk usage for a day====
 +
The estimated disk usage per day (in MB) can be calculated in one of the following ways:
 +
* <tt><number of recordings per day> * (<estimated disk usage of a recording file> + <estimated disk usage of a metadata file>)</tt>
 +
* <tt><number of recordings per day> * [<average call duration> * ((<recording bitrate> / '''8''' / '''1024''') + '''1''')]</tt>
  
 
[[Category:V:PSAAS:Public]]
 
[[Category:V:PSAAS:Public]]

Latest revision as of 08:56, November 9, 2020

Recording Cloud Backup Service

Important
This content may not be the latest Genesys Engage cloud content. To find the latest content, go to Recording Cloud Backup Service.



The Recording Cloud Backup Service (RCBS) allows you to make a backup copy of your Genesys Interaction Recording voice and/or screen recording files prior to their automated deletion as per the Cloud retention policy. Once installed, you can securely download the encrypted voice and screen recording files from Amazon S3 and their respective metadata files from Genesys Engage and store them on your machines.

RCBS can be installed on local machines or on AWS EC2 instances. The recording file can then be decrypted and used as desired, for example, for compliance.

Important
  • Unless backed up, all recordings will be deleted when maximum retention date is reached.
  • RCBS will only work with encrypted recordings. Therefore, ensure encryption is enabled.
  • RCBS does not support MPLS.

Prerequisites

Before you can install and use the Recording Cloud Backup Service on a machine, verify that you have the following prerequisites. Your IT department or your Genesys professional can help you get this information.

  • Windows Server 2008/2012 64-bit or Red Hat Enterprise Linux AS 6 Operating System with admin privileges.
  • 4 GB RAM, minimum 20 GB hard drive (the amount of space required depends on the number of recordings to be downloaded).
  • The Recording Cloud Backup Service software (minimum version 8.5.2xx.xx).
  • The target directory or shared folder in your environment to download the recording files to—for example, C:/target_directory (this is for the targetDir parameter).
  • The private key you used to initially configure recording file encryption, so that the recording files can be decrypted (this is for decrypting the downloaded files).
  • The name of your Platform Administration tenant administrator account – (this is for the GWS_USERNAME environment variable). Usernames should be in the format username@customer_tenant.com. For more information, refer Creating a user.
  • The password for your Platform Administration tenant administrator account – (this is for the GWS_PASSWORD environment variable). For more information, refer Creating a user.
  • Java 8 is the current supported version.

Security

The recording files are encrypted throughout the media lifecycle. After the recording files are created, they are encrypted and stored in Amazon S3. RCBS securely transfers the encrypted recordings from S3 to a machine by using the HTTPS internet protocol. The recordings can be decrypted only on that machine.

Getting Started

The following sections explain how to request RCBS functionality and install the software on Windows and Linux environments.

Requesting RCBS functionality

To request RCBS functionality, create a Salesforce case to request delivery of the software. Customer Care will provide an FTP download link to the software, and they will be in touch to request:

  • The public IP ranges for the network where the RCBS client software will be installed and from where access to recordings will be established.
    • If a proxy is used, then the public IP range of the proxy will be requested instead.
  • If RCBS is planned to be deployed on an AWS EC2 Instance, then additional information will be requested:
    • The AWS Region where RCBS is planned to be deployed.
    • Whether or not you wish to use a VPC Endpoint to connect to Genesys S3 Storage.
      • If you choose to use a VPC Endpoint, Customer Care will provide more information.
  • A public PGP key so the Genesys Operations team can securely transfer the S3 storage access credentials to you, which are needed by the RCBS to access the recording storage location.

Once the software has been delivered, Genesys will provide you with the following information:

  • The Interaction Recording Web Services URL to access the recording metadata—for example, https://example.com/api/v2 (this is for the gwsUriPrefix parameter).
  • The access ID for the S3 storage, used to gain access to the recordings – (this is for the AWS_ACCESS_KEY_ID environment variable).
  • The secret access key for the S3 storage, used to gain access to the recordings – (this is for the AWS_SECRET_ACCESS_KEY environment variable).

Creating a user

Refer to Creating a new user from scratch to create a user for RCBS. Perform steps 1 and 2, clear the Agent check box, skip the remaining steps, and save to create a user for RCBS. The user that is created is GWS_USERNAME environment variable and the password for this user is GWS_PASSWORD environment variable.

Important
If you plan to run RCBS in verification mode, an extra provisioning step is required for your user. Please contact Genesys to get the required provisioning.

Installing on Windows

1

Locate your software in the installation directory, and click setup.exe to start the Genesys Installation Wizard.

Follow through the wizard until finished making sure that you make note of the installation directory.

Check the installation directory and verify that the config.properties file is available.

Gir-backupservicewindowsverify.png

Installing on Linux

1

The glibc.i686 package is required to install RCBS. To install glibc.i686, run the following command: yum install glibc.i686

In the installation directory, at the prompt, type ./install.sh.

Let the script install your software.

Check the installation directory and verify that the config.properties file is available.

Configuration and setup

The following sections explain the configuration properties and environment variables to set for proper functioning of RCBS.

Configuration properties

The following properties must be modified to successfully retrieve recording files from Amazon S3. Locate your config.properties file, usually found in the installation directory, edit the file with a text editor, and set the following parameters:

Parameter Name Description Example Value
gwsUriPrefix The URL prefix of Interaction Recording Web Services where the metadata for the recording files is retrieved from. This is a mandatory parameter and will be provided by Genesys. https://example.com/api/v2
maxAge All recordings newer than the specified maxAge value, in days, are downloaded. You can specify any integer greater than or equal to 0 (0 is any age). The default value is 2, which means that all recordings from the last 2 days will be retrieved. If recordings have already been downloaded, they will not be downloaded again.

Note: If recordings are moved from their downloaded folder (targetDir), they will be downloaded again when RCBS is run. To ensure recordings are not downloaded more than once, only move recordings from this folder once maxAge days have passed since RCBS was last run.

2
targetDir The directory where the recordings are downloaded to. This directory can be anywhere on the system as long as the account running the software has permission to write to the directory. Ensure that the required space is available to download the desired number of recordings.

Note:

  • On both Windows and Linux, you must use the directory separator "/" (forward slash) instead of "\" (backslash).
  • RCBS supports the use of a UNC path for targetDir. For example, targetDir = //server_name/path.
<Installation Directory>/target

Specify the following parameters only if the machine running RCBS cannot connect directly to Amazon S3 or the Interaction Recording Web Services address.

Parameter Name Description Example Value
awsProxyHost Indicates the proxy host address to be used for Amazon Web Services. Specify only the host name or IP address. 10.0.1.31
awsProxyPort Indicates the proxy port to be used for the corresponding awsProxyHost parameter to connect to Amazon Web Services. 8080
gwsProxyHost Indicates the proxy host address to be used for Interaction Recording Web Services. The format is http://proxyaddress. http://10.0.1.31
gwsProxyPort Indicates the proxy port to be used for the corresponding gwsProxyHost parameter to connect to Interaction Recording Web Services. 8080

Environment variables

Once configured, before running the Recording Cloud Backup Service from the command line, the following environment variables must be set based on those provided earlier:

  • GWS_USERNAME
  • GWS_PASSWORD
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

On Windows

To set environment variables, select System from the Control Panel (change category view (View by) to Small icons), click Advanced system settings, and then click Environment Variables. Under User variables for <your_user> or System variables, add as the following:

Variable Value
GWS_USERNAME username@customer_tenant.com
GWS_PASSWORD your_password
AWS_ACCESS_KEY_ID your_aws_access_key_id
AWS_SECRET_ACCESS_KEY your_aws_secret_access_key

On Linux

Create the rcbs.sh file under the /etc/profile.d/ directory. The file should contain the following:

#!/bin/bash
export GWS_USERNAME=username@customer_tenant.com
export GWS_PASSWORD=your_password
export AWS_ACCESS_KEY_ID=your_aws_access_key_id
export AWS_SECRET_ACCESS_KEY=your_aws_secret_access_key

Provide execute permission and using the source command this file will be used for setting the environment variable as follows:

[root@rcbsmachine ~]# cd /etc/profile.d/
[root@rcbsmachine profile.d]# chmod +x rcbs.sh
[root@rcbsmachine profile.d]# source rcbs.sh

Launching the Recording Cloud Backup Service

After the config.properties file has been modified and the environment variables are set, access the RCBS installation directory and type the following command line to start RCBS:

java –jar rp_clouddownload.jar –config config.properties

Important
Do not copy and paste the command from this document. Instead, manually type the command.

You can view the progress of the download process in percentage in console window. Download process will be completed once the progress reaches 100% with the message as shown in the following image.

Gir rcbsinstallation updated.png

The tool exits when the backup is complete. Check your targetDir to ensure that the expected recordings have been downloaded.

In the below example, 2018 is the year, 02 is the month, 12 is the date, 19 is the hour, and 01F62DGIBGD8369P7GC362LAES00000G is the recording folder. Recordings are grouped at the hour as the lowest level. Each recording folder has encrypted voice and screen recording files (if applicable) along with a metadata file in JSON format.

Gir rcbsinstallation2 updated.png

Running RCBS in verification mode

After the config.properties file has been modified and the environment variables are set, access the RCBS installation directory and type the following command line to start RCBS to verify your connection to download recordings from AWS S3:

java –jar rp_clouddownload.jar –config config.properties -verify s3

Important
  • This function is only available in RCBS 8.5.298.58 and later versions.
  • If you plan to run RCBS in verification mode, an extra provisioning step is required for your user. Please contact Genesys to get the required provisioning.

You can find out whether the connection is successful or not via the console window. Gir rcbsinstallation verificationmode.png

Scheduling backup

The following sections explain how to schedule a backup.

How to schedule a Windows task

For information on how to schedule or manage your tasks in Windows, see the Windows documentation. Do not forget to set your environment variables.

How to create a Linux cronjob

You can set up a recurring backup by using cronjob (crontab -e). The following example illustrates how to use "crontab -e" to configure an appropriate cronjob on Linux:

AWS_ACCESS_KEY_ID=<access_id>
AWS_SECRET_ACCESS_KEY=<access_key>
GWS_PASSWORD=<gws_password>
GWS_USERNAME=<gws_username>
30 4,10,16,22 * * * (cd <installation_folder>; java -jar rp_clouddownload.jar -config config.properties)

Replace the above <access_id>, <access_key>, <gws_password>, <gws_username>, <installation_folder> with the actual values, and the job will be executed 4 times daily at 4:30, 10:30, 16:30 and 22:30.

Important
  • Genesys strongly recommends that you create backup copies several weeks prior to the expected deletion date.
  • Ensure your local machine has enough space for the scheduled backup.

Decrypting the downloaded files

You will use OpenSSL to decrypt your recording files. You can download the software by following the instructions here.

When working with Windows, the OpenSSL binaries can be downloaded from: OpenSSL Binaries Distribution.

Each recording folder contains the encrypted recording files and the respective recording metadata files (in json format).

To decrypt the downloaded files that are in encrypted format, use the following OpenSSL commands:

Windows:

openssl smime -decrypt –inform DER -in <encrypted.file.bin> -inkey <private_key_file> –out <outputfile>

Linux:

openssl cms –decrypt –inform DER -in <encrypted.file.bin> -binary -inkey <private_key_file> –out <outputfile>

where:
<encrypted.file.bin> is the file to be decrypted
<private_key_file> is the private key you used to initially configure recording file encryption, so that the recording files can be decrypted
<outputfile> is the file that would be written after decryption

Storage

Ensure that the required space is available to download the desired number of recordings. Genesys recommends that you decrypt the recording files to a different destination than the encrypted files so that the original encrypted source file is not modified or overwritten by the decrypted file.

Advanced configuration

If you are an advanced user, you can change the behavior of the Recording Cloud Backup Service by changing the values of the parameters in the config.properties file.

Configuring download period

Use the following parameters to set the download period.

Parameter Name Description Example Value
minAge All recordings older than the specified minAge value, in days, are included in the download period. You can specify any integer greater than or equal to 0. The default is 0, which means that the download period includes recordings older than the current time. The minAge value must be less than the maxAge value.

ISO 8601 format can also be used with respect to current time. Refer to ISO 8601 format for more information. If you specify a minimum age of PT30M, all recordings that are older than half an hour ago are included in processing. If you specify a minimum age of P30D, all recordings older than 30 days are included in processing.

0
maxAge All recordings newer than the specified maxAge value, in days, are included in download period. You can specify any integer greater than or equal to 0 (0 is any age). The default value is 2, which means that the period includes recordings from the last 2 days. The maxAge value must be greater than the minAge value.

ISO 8601 format can also be used with respect to current time. Refer to ISO 8601 format for more information. If you specify a maximum age of PT30M, all recordings that are newer than half an hour are included in processing. If you specify a maximum age of P30D, all recordings newer than 30 days are included in processing.

2
minDate The absolute date, in the YYYY-MM-DD format (in GMT), to include recordings older than the specified date. When specified, this value would be used as the minAge. Alternatively, the epoch time value can be specified instead of the YYYY-MM-DD format. Refer to UNIX Epoch time format for more information. This parameter is optional. 2015-07-31 Or 1438300800000
maxDate The absolute date, in the YYYY-MM-DD format (in GMT), to include recordings newer than the specified date. When specified, this value would be used as the maxAge, and override the local storage's last recording endtime's value (last_recording_endtime.txt). Alternatively, the epoch time value can be specified instead of the YYYY-MM-DD format. Refer to UNIX Epoch time format for more information. This parameter is optional. 2015-07-31 Or 1438300800000

For repetitive scheduled download of recordings, use the minAge and maxAge parameters. RCBS will download recordings for the configured duration with respect to current time. For example, if the current date is January 09, 2018 and if you want to download recordings of three days with respect to current time, then set minAge=0 and maxAge=3 as shown in the following image. Recordings between 06 January and 09 January will be downloaded.

For one-time download of recordings between two dates (GMT), use the minDate and maxDate parameters. RCBS will download recordings within the configured period. To perform a one-time download, Genesys recommends that you create a copy of the config.properties file, delete or rename the last_recording_endtime.txt file and make changes to the minDate and maxDate parameters. When you execute RCBS, use the following command with the name of the copy of the configuration file (for example, new_config.properties): java -jar rp_clouddownload.jar -config new_config.properties. To download recordings between a date range, for example, between 02 January to 04 January, set the parameters such as the following: minDate=2018-01-04 and maxDate=2018-01-02.

RCBS timeline.png
Download period always includes the recordings newer than the last download period as specified in the last_recording_endtime.txt file.
The last_recording_endtime.txt file is updated after download of recordings for configured period has completed successfully. The next time when the download tool starts, it checks to see if the last_recording_endtime.txt file is older than the specified maxAge parameter. If it is, the tool uses the value from the last_recording_endtime.txt instead of the configured maxAge value. For example, the download tool is scheduled to run daily with maxAge set to 2 days. If the server was offline for three days, it is replaced with the last_recording_endtime.txt file check, and the tool downloads all the recordings that were missed.

UNIX Epoch time format

RCBS supports UNIX Epoch time format in milliseconds for certain parameters. It is a 13 digit integer value. You can convert the date and time to 13 digit integer value by using tools such as Epoch Converter.

ISO 8601 format

RCBS supports ISO 8601 format P[n]Y[n]M[n]DT[n]H[n]M[n]S for certain parameters. The description of the format is as follows:

  • P - Mandatory prefix to identify that the configuration is in ISO format.
  • [n] - Integer value which is specific for the suffix followed by it
  • [n]Y - Number of Years. Example - 2Y means 2 years
  • [n]M - Number of Months
  • [n]D - Number of Days
  • T - Mandatory prefix to identify the following content is time
  • [n]H - Number of Hours
  • [n]M - Number of Minutes
  • [n]S - Number of Seconds

Examples of valid values:

  • P1Y2DT4H30M - Indicates 1 Year + 2 Days + 4 Hours + 30 Minutes
  • P6MT12H - Indicates 6 Months + 12 Hours

Configuring media

Use the following parameters to set the media configurations.

Parameter Name Description Example Value
mediaTypePattern Indicates the file types that will be downloaded by RCBS in a regular expression. The default value is audio\/mp3|video\/mp4. This value will download both audio and video files.

To download only MP3, set this value to audio\/mp3. To download only MP4, set this value to video\/mp4. This parameter is optional.

audio\/mp3|video\/mp4
recordingFolderFormat The directory structure for storing the recordings. Default value is in the yyyy/MM/dd/HH format which means the top level folder is year, subfolder is month, then date, then hour.

Note the directory separator "/" (forward slash) must be used instead of "\" (backslash) on both Windows and Linux.

yyyy/MM/dd/HH
encryptionFormat The cipher to use if the encryption is performed by the download tool. The supported values are AES-128 or AES-256. The default value is AES-128.

Note: If AES-256 is used, the JCE unlimited Strength Jurisdiction Policy File must be installed.

AES-128
metadataOnly Indicates whether to download the recording files along with the metadata. If set to true, the metadata is downloaded without the recordings. You do not need S3 credentials when using this option. Default value is false. false
usePayloadSigning Configures whether payload signing is used during the file transfer from Amazon S3. Disabling payload signing improves performance. Default value is false. To enable, set to true. false

Configuring multiple instances

Multiple instances of RCBS can be used to increase the download rate of the recordings for the configured download period. Multiple instances can be used in the same machine or different machines based on network bandwidth. Each instance will process the same download period and split the download process based on hashing of the recording ID. A particular recording will be downloaded by only one instance and all other instances will skip that recording. All instances should be running properly to download all the recordings in the configured download period.

The minAge and maxAge of the separate instances must be the same. The point of multiple instances is that each instance is assigned a different subset of recordings to download to spread the load. Changing the minAge and maxAge means each instance will download a separate chunk of a different time period.

Note: If running multiple instances of RCBS on the same machine, each RCBS must be started from a different installation directory, and targetDir for each instance must point to a different output folder. RBCS has a built-in protection mechanism to prevent multiple instances from writing to the same directory; the second instance will terminate immediately if they share the same path.

Parameter Name Description Example Value
totalRcbsInstances The total number of RCBS instances deployed.This parameter must be used with the rcbsInstanceId configuration parameter. This parameter is optional. 4
rcbsInstanceId Indicates the current RCBS instance ID that shares the overall load. rcbsInstanceId starts at 0, up to totalRcbsInstances minus 1.

For example, if the download load was distributed across four instances of a running RCBS process, then totalRcbsInstances should be set to 4. For each RCBS configuration, assign rcbsInstanceId to 0 for the first RCBS instance, rcbsInstanceId to 1 for the second RCBS instance, rcbsInstanceId to 2 for the third RCBS instance, and rcbsInstanceId to 3 for the fourth RCBS instance. All RCBS instances should have the same minAge and maxAge configuration values.

0

RCBS Multi instance.png

In the above image, eight instances of RCBS spread between two servers. Here, the value of totalRcbsInstances is 8 in all the instances.

Configuring URIs (optional)

The following parameters are optional. Do not set the URI path for these parameters unless instructed by Genesys.

Parameter Name Description Example Value
gwsRecordingsUri The path to the recording API. /recordings
gwsSettingsUri The path to the settings API. /me/settings/rcbs

Recording metadata

Metadata is organized by records and can be used for finding specific calls from a larger downloaded group of recordings (for example, by searching for a particular string of text, perhaps the ‘callerPhoneNumber’). A record represents a single call interaction which may contain multiple calls and recording segments. A metadata record is uniquely identified (per switch) by a CallUUID (GUID).

The metadata record is stored in JSON format and contains three main sections within the top level object.

  • The interaction level attributes (the top level object's attributes)
  • The mediaFiles list—A list of media files connected to the call interaction
  • The eventHistory list—A list of call events including attached data events and agent left and join events.

[+] Show the properties and examples

Disk usage estimation

RCBS downloads the voice and screen recording files from the Genesys Interaction Recording system and stores the files on the local machine, thereby occupying the disk space. This section explains how to estimate the amount of disk space that will be used.

Estimating disk space required to store downloaded voice recordings

The disk space required to store voice recordings can be estimated as follows:

  • Estimated size of a metadata file: The size of a metadata file for each voice recording has an upper bound of 1 MB. You can use that value to estimate how much space the metadata files will use.
  • Estimated size of a voice recording file: The size of a voice recording file can be estimated by using the average call duration (in seconds) and the recording bitrate (in kbps, the default value is 32 kbps).

Total disk usage for a day

The estimated disk usage per day (in MB) can be calculated in one of the following ways:

  • <number of recordings per day> * (<estimated disk usage of a recording file> + <estimated disk usage of a metadata file>)
  • <number of recordings per day> * [<average call duration> * ((<recording bitrate> / 8 / 1024) + 1)]

Estimating disk space required to store downloaded screen recordings

The disk space required to store screen recordings can be estimated as follows:

  • Estimated size of a metadata file: The size of a metadata file for each screen recording has an upper bound of 8 KB. You can use that value to estimate how much space the metadata files will use.
  • Estimated size of a screen recording file: The size of a Screen Recording file can be estimated by using the average call duration (in seconds) and the screen recording bitrate (in kbps), which is the sum of the screen recording bitrate and voice recording bitrate because the RCBS downloads the muxed screen recording files. The default value for the total bitrate is 256 kbps.

Total disk usage for a day

The estimated disk usage per day (in MB) can be calculated in one of the following ways:

  • <number of recordings per day> * (<estimated disk usage of a recording file> + <estimated disk usage of a metadata file>)
  • <number of recordings per day> * [<average call duration> * ((<recording bitrate> / 8 / 1024) + 1)]
This page was last edited on November 9, 2020, at 08:56.
Comments or questions about this documentation? Contact us for support!