Before you begin
Contents
Find out what to do before deploying Genesys Voice Platform.
Limitations and assumptions
- Resource Manager does not use gateway LRG configurations. Instead, it uses the contact center ID coming from SIP Server as gvp-tenant-id in the INVITE message to identify the tenant and pick the IVR Profiles.
- Only single MCP LRG is supported per GVP deployment.
- Only the specific component configuration options documented in Helm values.yaml overrides can be modified. Other configuration options can't be changed.
- DID/DID groups are managed as part of Designer applications (Applications)
- SIP TLS / SRTP are currently not supported.
Download the Helm charts
You will have to download the GVP related Docker containers and Helm charts from the JFrog repository. For docker container and helm chart versions, refer to Helm charts and containers for Genesys Voice Platform.
For more information on JFrog, refer to the Downloading your Genesys Multicloud CX containers topic in the Setting up Genesys Multicloud CX private edition document.
Third-party prerequisites
Name | Version | Purpose | Notes |
---|---|---|---|
A container image registry and Helm chart repository | Used for downloading Genesys containers and Helm charts into the customer's repository to support a CI/CD pipeline. You can use any Docker OCI compliant registry. | ||
PostgreSQL | 11.x | Relational database. | The GVP Configuration Server is separate from the Tenant Configuration Server and requires its own database. |
Consul | 1.8 | Service discovery, service mesh, and key/value store. | The following features must be enabled in Consul: Service Discovery – to register MCP service for auto discovery of MCP pods by RM |
MS SQL Server | 2016 or later | Relational database. Required only for GVP. |
Storage requirements
Media Control Platform
Storage requirement for production (min)
Persistent Volume | Size | Type | IOPS | Functionality | Container | Critical | Backup needed |
recordings-volume | 100Gi | RWO | high | Storing recordings, dual AZ, | gvp-mcp, rup | Y | Y |
rup-volume | 40Gi | RWO | high | Storing recordings temporarily, dual AZ, | rup | Y | Y |
log-pvc | 50Gi | RWO | medium | storing log files | gvp-mcp | Y | Y |
Storage requirements for Sandbox
Persistent Volume | Size | Type | IOPS | Functionality | Container | Critical | Backup needed |
recordings-volume | 50Gi | RWO | high | Storing recordings, dual AZ, | gvp-mcp, rup | Y | Y |
rup-volume | 20Gi | RWO | high | Storing recordings temporarily, dual AZ, | rup | Y | Y |
log-pvc | 25Gi | RWO | medium | storing log files | gvp-mcp | Y | Y |
Resource Manager
Storage requirement for production (min)
Persistent Volume | Min Size | Type | IOPS | Functionality | Container | Critical | Backup needed |
---|---|---|---|---|---|---|---|
billingpvc | 20Gi | RWO | high | billing | gvp-rm | Y | Y |
log-pvc | 50Gi | RWO | medium | storing log files | gvp-rm | Y | Y |
Storage requirements for Sandbox
Persistent Volume | Min Size | Type | IOPS | Functionality | Container | Critical | Backup needed |
---|---|---|---|---|---|---|---|
billingpvc | 20Gi | RWO | high | billing | gvp-rm | Y | Y |
log-pvc | 10Gi | RWO | medium | storing log files | gvp-rm | Y | Y |
Service Discovery
Not applicable
Reporting Server
Storage requirement for production (min)
Persistent Volume | Min Size | Type | IOPS | Functionality | Container | Critical | Backup needed |
---|---|---|---|---|---|---|---|
billing-pvc | 20Gi | RWO | High | Stores ActiveMQ data and config information | gvp-rs | Y | Y |
Storage requirement for Sandbox
Persistent Volume | Min Size | Type | IOPS | Functionality | Container | Critical | Backup needed |
---|---|---|---|---|---|---|---|
billing-pvc | 10Gi | RWO | High | Stores ActiveMQ data and config information | gvp-rs | Y | Y |
GVP Configuration Server
Not applicable
Network requirements
Media Control Platform
Ingress
Not applicable
HA/DR
MCP is deployed with autoscaling in all regions. For more details, see the section Auto-scaling.
Calls are routed to active MCPs from GVP Resource Manager (RM) and in case of a MCP instance terminating, the calls are then routed to a different MCP instance.
Cross-region bandwidth
MCPs are not expected to be doing cross-region requests in normal mode of operation.
External connections
Not applicable
Pod Security Policy
All containers running as genesys user (500) and non-root user.
podSecurityContext:
fsGroup: 500
runAsUser: 500
runAsGroup: 500
runAsNonRoot: true
SMTP Settings
Not applicable
TLS/SSL Certificates configurations
Not applicable
Resource Manager
Ingress
Not applicable
HA/DR
Resource Manager is deployed as the Active and Active pair.
Cross-region bandwidth
Resource Manager is deployed per region. There is no cross region deployment.
External connections
Not applicable
Pod Security Policy
All containers running as genesys user (500) and non-root user.
podSecurityContext:
fsGroup: 500
runAsUser: 500
runAsGroup: 500
runAsNonRoot: true
SMTP Settings
Not applicable
TLS/SSL Certificates configurations
Not applicable
Service Discovery
Ingress
Not applicable
HA/DR
Service Discovery is a singleton service which will be restarted if it shuts down unexpectedly or becomes unavailable.
Cross-region bandwidth
Service Discovery is not expected to be doing cross-region requests in normal mode of operation.
External connections
Not applicable
Pod Security Policy
All containers running as genesys user (500) and non-root user.
podSecurityContext:
fsGroup: 500
runAsUser: 500
runAsGroup: 500
runAsNonRoot: true
SMTP Settings
Not applicable
TLS/SSL Certificates configurations
Not applicable
Reporting Server
Ingress
Not applicable
HA/DR
Reporting Server is deployed as a single pod service.
Cross-region bandwidth
Reporting Server is deployed per region. There is no cross region deployment.
External connections
Not applicable
Pod Security Policy
All containers running as genesys user (500) and non-root user.
podSecurityContext:
fsGroup: 500
runAsUser: 500
runAsGroup: 500
runAsNonRoot: true
SMTP Setting
Not applicable
TLS/SSL Certificates configurations
Not applicable
GVP Configuration Server
Ingress
Not applicable
HA/DR
GVP Configuration Server is deployed as a singleton. If the GVP Configuration Server crashes, a new pod will be created. The GVP services will continue to service calls if the GVP Configuration Server is unavailable and only new configuration changes, such as new MCP pods, will not be available.
Cross-region bandwidth
GVP Configuration Server is not expected to be doing cross-region requests in normal mode of operation.
External connections
External service | Functionality |
---|---|
PostGresSQL | database |
Pod Security Policy
All containers running as genesys user (500) and non-root user.
podSecurityContext:
fsGroup: 500
runAsUser: 500
runAsGroup: 500
runAsNonRoot: true
SMTP Settings
Not applicable
TLS/SSL Certificates configurations
Not applicable
Browser requirements
N/A
Genesys dependencies
Media Control Platform
Service | Functionality |
---|---|
Consul | Consul service must be deployed before deploying MCP for proper service registration in GVP Configuration Server and RM. |
Resource Manager
Service | Functionality |
GVP Configuration Server | GVP Configuration Server must be deployed before deploying RM for proper working. |
Service Discovery
Service | Functionality |
---|---|
Consul | Consul service must be deployed before deploying Service Discovery for proper service registration in GVP Configuration Server and Resource Manager. |
Reporting Server
Service | Functionality |
GVP Configuration Server | GVP Configuration Server must be deployed before deploying RS for proper working. |
GVP Configuration Server
N/A
GDPR support
This section describes product-specific aspects of Genesys Voice Platform support for the European Union's General Data Protection Regulation (GDPR) in premise deployments. For general information about Genesys support for GDPR compliance, see General Data Protection Regulation.
Warning
Disclaimer: The information contained here is not considered final. This document will be updated with additional technical information.
Data Retention Policies
GVP has configurable retention policies that allow expiration of data. GVP allows aggregating data for items like peak and call volume reporting. The aggregated data is anonymous. Detailed call detail records include DNIS and ANI data. The Voice Application Reporter (VAR) data could potentially have personal data, and would have to be deleted when requested. The log data files would have sensitive information (possibly masked), but requires the data to be rotated/expired frequently to meet the needs of GDPR.
Configuration Settings
Media Server
Media Server is capable of storing data and sending alarms which can potentially contain sensitive information, but by default, the data will typically be automatically cleansed (by the log rollover process) within 40 days.
The location of these files can be configured in the GVP Media Control Platform Configuration [default paths are shown below]:
- vxmli:recordutterance-path = $InstallationRoot$/utterance/
- vxmli:recording-basepath = $InstallationRoot$/record/
- Netann:record-basepath = $InstallationRoot$/record
- msml:cpd-record-basepath = $InstallationRoot$/record/
- msml:record-basepath = $InstallationRoot$
- msml:record-irrecoverablerecordpostdir = $InstallationRoot$/cache/record/failed
- mpc:recordcachedir = $InstallationRoot$/cache/record
- calllog:directory = $InstallationRoot$/callrec/Log files and temporary files can be saved.
The location of these files can be configured in the GVP Media Control Platform Configuration [default paths are shown below]:
- vxmli:logdir = $InstallationRoot$/logs/
- vxmli:tmpdir = $InstallationRoot$/tmp/
- vxmli:directories-save_tempfiles = $InstallationRoot$/tmp/
Note: Changing default values is not really supported in the initial Private Edition release for any of the above MCP options.
Also, additional sinks are available where alarms and potentially sensitive information can be captured. See Table 6 and Appendix H of the Genesys Voice Platform User’s Guide for more information. The metrics can be configured in the GVP Media Control Platform configuration:
- ems.log_sinks = MFSINK I DATAC I TRAPSINK
- ems:metricsconfig-DATAC = *
- ems:dc-default-metricsfilter = 0-16,18,25,35,36,41,52-55,74,128,136-141
- ems.metricsconfig.MFSINK = 0-16,18-41,43,52-56,72-74,76-81,127-129,130,132-141,146-152
GVP Resource Manager
Resource Manager is capable of storing data and sending alarms and potentially sensitive information, but by default, the data will typically be automatically cleansed (by the log rollover process) within 40 days.
Customers are advised to understand the GVP logging (for all components) and understand the sinks (destinations) for information which the platform can potentially capture. See Table 6 and Appendix H of the Genesys Voice Platform User’s Guide for more information.
GVP Reporting Server
The Reporting Server is capable of storing/sending alarms and potentially sensitive information, but by default, these components process but do not store consumer PII. Customers are advised to understand the GVP logging (for all components) and understand the sinks (destinations) for information which the platform can potentially capture. See Table 6 and Appendix H of the Genesys Voice Platform User’s Guide for more information.
By default, Reporting Server is designed to collect statistics and other user information. Retention period of this information is configurable, with most data stored for less than 40 days. Customers should work with their application designers to understand what information is captured as part of the application, and, whether or not the data could be considered sensitive.
These settings could be changed by the customer as per their need by using a Helm chart override values.yaml.
Data Retention Specific Settings
- rs.db.retention.operations.daily.default: "40"
- rs.db.retention.operations.monthly.default: "40"
- rs.db.retention.operations.weekly.default: "40"
- rs.db.retention.var.daily.default: "40"
- rs.db.retention.var.monthly.default: "40"
- rs.db.retention.var.weekly.default: "40"
- rs.db.retention.cdr.default: "40"
Identifying Sensitive Information for Processing
The following example demonstrates how to find this information in the Reporting Server database – for the example where ‘Session_ID’ is considered sensitive:
- select * from dbo.CUSTOM_VARS where session_ID = '018401A9-100052D6';
- select * from dbo.VAR_CDRS where session_ID = '018401A9-100052D6';
- select * from dbo.EVENT_LOGS where session_ID = '018401A9-100052D6';
- select * from dbo.MCP_CDR where session_ID = '018401A9-100052D6';
- select * from dbo.MCP_CDR_EXT where session_ID = '018401A9-100052D6';
An example of a SQL query which might be used to understand if specific information is sensitive:
USE [ems-rs]
DECLARE @SearchStr nvarchar(100) = '018401A9-100052D6'
DECLARE @Results TABLE (ColumnName nvarchar(370), ColumnValue nvarchar(3630))
SET NOCOUNT ON
DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')
WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = ''
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped'
) = 0
)
WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
AND TABLE_NAME = PARSENAME(@TableName, 1)
AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar', 'int', 'decimal')
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)
IF @ColumnName IS NOT NULL
BEGIN
INSERT INTO @Results
EXEC
(
'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630)
FROM ' + @TableName + ' (NOLOCK) ' +
' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
)
END
END
END
SELECT ColumnName, ColumnValue FROM @Results