Before you begin

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

Find out what to do before deploying the Voicemail Service.

Related documentation:

Limitations and assumptions

Voice Voicemail Service integration with Workspace Web Edition and Web Services and Applications is in progress. The integration brings an appearance of actionable voice mailbox information in the Workspace Web Edition UI, presenting users with Message Waiting Indicator(s) for each voice mailbox assigned to them either directly as a personal mailbox or as a group mailbox via membership in a group(s) having a mailbox provisioned. Users still have access to voicemail from Workspace Web Edition by dialing directly to a voicemail access number, which is 5555.

Download the Helm charts

For information about how to download the Helm charts, see Downloading your Genesys Multicloud CX containers.

The following table identifies the Helm chart version associated with the Voicemail service.

Service name Helm chart version
voice-voicemail voice-voicemail-9.0.xx.tgz

Third-party prerequisites

See the Third-party prerequisites for the Voice Services.

Storage requirements

Choosing Voicemail storage

To store mailbox metadata and messages, consider the following supported options for storage in the Private Edition deployment:

  1. Persistent Volumes & Persistent Volume Claims
  2. Azure Blob Storage

See the following sections to learn how to use these storage options and to find information about their limitations.

Persistent Volume & Claim

  • Persistent Volume (PV) is a piece of storage that can be mounted to a Voicemail Service deployment inside the Kubernetes cluster.
  • PVs in OpenShift can be created with different plugins
  • Voicemail Service requires a separate storage class and PV to be created for a Voicemail storage.
  • If the customer wants to extend the deployment to more than one Kubernetes cluster, Voicemail Service requires to mount the same PV for all the Kubernetes cluster for that customer.
  • Create the Persistent Volume Claim (PVC) from the Voicemail PV.
  • The access mode for the PVC must be ReadWriteMany, since the Voicemail Service will edit the existing data while updating the mailbox settings or the message state.
  • Use the sizing doc, which you can find on the (Genesys SIP Feature Server landing page, to calculate the required storage space.
Here is the sample Kubernetes YAML file for creating PVCs for a Voicemail Service. The PVC creation is controlled by the Voicemail Service Helm chart by overriding the values.yaml.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: voice-voicemail-pvc
  namespace: voice
  labels:
    servicename: voice-voicemail
spec:
  storageClassName: voice-voicemail
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 20Gi
Limitations
  1. Replication strategies are not available for the data.
  2. Retention limit: Admins can't configure the auto-expiration for a Voicemail message.
  3. When a customer has more than one Kubernetes cluster deployed, the PV for all the Kubernetes clusters must be created from a single storage drive, so that the data from one Kubernetes cluster is shared among other Kubernetes clusters.

Azure blob

  • Unlike PV, the Azure Blob Storage provides options to replicate and configure Time to live for the files and can be accessed from any Kubernetes cluster by using the storage access keys.
  • Create the Azure Storage with the blob storage.
  • The access keys for the blob storage must be securely mounted to the Voicemail pod. You can do one of the following:
    • Store access keys in Azure Key Vault and mount it via a Container Storage Interface (CSI) driver.
    • Create access keys as a Kubernetes secret and volume mount the Kubernetes secret. (This option is considered less secured than the CSI driver approach.)
  • The values.yaml file can be overridden for configuring either a Kubernetes secret or CSI driver, which is explained in Override Helm chart values.

Network requirements

Content coming soon

Browser requirements

Not applicable

Genesys dependencies

For detailed information about the correct order of services deployment, see Order of services deployment.

GDPR support

Customer data that is likely to identify an individual, or a combination of other held data to identify an individual is considered as Personally Identifiable Information (PII). Customer name, phone number, email address, bank details, and IP address are some examples of PII.

Multi-Tenant Inbound Voice: Voicemail Service

According to EU GDPR:

  • When a customer requests to access personal data that is available with the contact center, the PII associated with the client is exported from the database in client-understandable format. You use the Export Me request to do this.
  • When a customer requests to delete personal data, the PII associated with that client is deleted from the database within 30 days. However, the Voicemail service is designed in a way that the Customer PII data is deleted in one day using the Forget Me request.

Both Export Me and Forget Me requests depend only on Caller ID/ANI input from the customer. The following PII data is deleted or exported during the Forget Me or Export Me request process, respectively:

  • Voicemail Message
  • Caller ID/ANI

GDPR feature is supported only when StorageInterface' is configured as BlobStorage, and Voicemail service is configured with Azure storage account data store.

Adding caller_id tag during voicemail deposit

Index tag caller_id is included in voicemail messages and metadata blob files during voicemail deposit. Using the index tags, you can easily filter the Forget Me messages instead of searching every mailbox.

GDPR multi-region support

In voicemail service, all voicemail metadata files are stored in master region and voicemail messages are deposited/stored in the respective region. Therefore, it is required to connect all the regions of a tenant to perform Forget Me, Undo Forget Me, or Export Me processes for GDPR inputs.

To provide multi-region support for GDPR, follow these steps while performing GDPR operation:

  1. Get the list of regions of a tenant.
  2. Ensure all regions storage accounts are up. If any one of storage accounts is down, you cannot perform the GDPR operation.
  3. GDPR operates in the master region files, first.
  4. Then, GDPR operates in all the non-master region files.

APIs

Voicemail service provides APIs to Export Me and Forget Me requests of GDPR authenticated with GWS. APIs support any valid client ID. The API can process more than one user's data in a single API request. The API follows the same standard input format used in the current PEC (legacy component).

Forget Me and Export Me API Input.json Forget Me Undo Input.json
{
   "caseid":"123456789",
   "consumers":[
      {"consumer":
         [
            {"name":"John Doe"},
            {"name": "John Q. Doe"},
            {"phone":"555551212"}
         ]
      },
      {"consumer":
         [
            {"name":"Dan Archer"},
            {"phone":"555556161"},
            {"phone":"555556162"}, 
            {"email":"danny@hollywood.com"},
            {"email":"funnyguy@comedy.org"},
            {"fbid":"Dan Archer"}
         ]
      }],
   "gim-attached-data":{"kvlist":["AcctNum", "SSN"]}
 }
{
   "caseid":"123456789"
 }

Voicemail service stores only the caller ANI. Therefore, voicemail processes the records only with the "phone" parameter from the given input and does not include any other parameters.

Forget Me: API for Forget Me deletes the PII data related to the consumer after one day based on the API request. The files are deleted through the operations:

  • Message and metadata files are reuploaded with forgetme=true and case_id=[case_id_value] index tag during the Forget Me API call.
  • Deleting files using Azure lifecycle management rules. A rule named forgetme is created in Azure lifecycle management. The forgetme rule deletes the file if it meets the following conditions:
    • The file is not modified in a day
    • The file has forgetme=true index tag

The forgetme rule is executed automatically by Azure lifecycle management once a day. Therefore, there are limitations in deleting files and capturing them in the limitations section.

  • Undo Forget Me: The API to undo the Forget Me request with the same case id.
    If the admin/user has wrongly requested/entered the caller ANI, then the voicemail service provides an option to undo the Forget Me request using another API call with the same case ID, to avoid data loss.
  • Export Me: The API for Export Me returns the list of message IDs with message media URL to download the media.
    • The media URL is also authenticated and authorized with the GWS token.
  • The Voicemail Service is exposed via the Kubernetes service, and can be accessed by URL in any region: http://voice-voicemail-service.voice.svc.cluster.local:8081/fs (The FQDN remains same in all the regions wherever voicemail service is deployed).
  • Append the API URL with the above-mentioned base URL for accessing the APIs.
  • The Voicemail service authenticates and authorizes each request with GWS. The Voicemail service requires the OAuth token in the header for the following the API calls:
    • Authorization: Basic <token> (or) Bearer <token>
    • Contact center ID is taken from the authorization token
  • Here is the API definition:
    • messageId: Unique message ID for the message.
  • The API sample response is given based on the sample input mentioned above.
API API HTTP Method Sample Success Response
/api/messages/forget DELETE

Response Status: 200 OK

Response Body:

{
   "caseid":"123456789",
   "consumers":
{
"555551212": "Deleted x messages deposited from the caller",
"555556161": "No messages available for deletion from the caller",
"555556162": "Deleted y messages deposited from the caller"
}
}
/api/messages/forget/undo POST Response Status: 200 OK
{
   "caseid":"123456789"

}
/api/messages/export POST Response Status: 200 OK

Response Body:

{
   "caseid":"123456789",
   "consumers":
{
"555551212": ["/api/messages/export/:mailboxId/:messageId", "/api/messages/export/:mailboxId/:messageId"], //list of message URLs
"555556161": [],
"555556162": ["/api/messages/export/:mailboxId/:messageId"]
}
/api/messages/export/:messageId GET Response Status: 200 OK

Response Body:

Filestream of the message


Here is the API response if there is a failure:

Response Status: 500 Response Body:

{

reason: "<Reason for failure>"

}

Standalone Scripts

You can invoke the Forget Me and Export Me APIs from a standalone Node.js script. This script can be executed by a user or an automated scheduler. When a user executes the script:

  • The script authenticates with the user auth token.
  • The user must have the bearer or the basic token.

In the case of an automated scheduler, the script uses the client credential (also known as system account) and processes the request. In this scenario, the user has to configure the GWS URL as an environment variable. The script would generate the auth token for the client and access the GDPR APIs. The script can be integrated into the GitHub Actions pipeline and invoked from the GitHub pipeline.

Script Inputs

Parameter Value Is it mandatory Description
-i or --input file-path Yes Input.json is the same as the JSON input passed to the REST API.

The client credentials ccid (contact center id) must be included as key-value pair in the input.json file because ccid cannot be fetched from auth token of the client credentials.

Sample value "ccid" : "2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d"

-o or --output output-location Yes output.json

Forget Me Operation:

The output.json is the same as the response from the Forget Me API.

Export Me Operation:

{
   "caseid":"123456789",
   "consumers":
{

//The message media is exported in the output location and the filename is the same as the message IDs.
"555551212": ["filename of message1", "filename of message2"], 
"555556161": [],
"555556162": ["filename of message1"]
}
}

Undo Operation:

The output.json is the same as the response from Undo API.

execution.log

Execution logs are available in the execution.log file

-u or --user User token Either user token or client credentials User token is fetched from GWS
-c or --client Client credentials Either user token or client credentials Client credential is required when scheduling the script. Client credentials can be obtained by requesting the GWS team.
-p or --operation forgetme

exportme

undoforgot

Yes Type of operation to be done when the script is executed.

Limitations

MWI count is not updated automatically on deleting the files during Forgetme operation. It is updated during the next voicemail message deposit or voicemail message delete of a mailbox.

  • If the Forgetme rule is first executed at 10:00 UTC in the day, then the file X marked for Forgetme at 10.01 UTC same day, the Forgetme rule does not delete the file 'X' on the second day at 10:00 UTC since it does not meet the file has not been modified in one day condition. However, it gets deleted in next day.
  • If the message is deposited and not read by any agent, the Forget Me API is executed and marked for deletion. Before deleting the file, if the agent reads the message/forward, the message metadata and the last modified time are updated. In such cases, the file may not be deleted in one day because the last modified date condition is not met.