Before you begin

From Genesys Documentation
Jump to: navigation, search
This topic is part of the manual Genesys Voice Platform Private Edition Guide for version Current of Genesys Voice Platform.

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

Third-party services
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
Retrieved from "https://all.docs.genesys.com/GVP/Current/GVPPEGuide/Planning (2024-05-11 02:14:52)"
Comments or questions about this documentation? Contact us for support!