Deploying Voice Gateway in IBM Cloud Private

Important: Starting with IBM Voice Gateway 1.0.6, IBM Cloud Private is no longer supported. If you want to deploy the service on premises, deploy it in IBM Cloud Pak for Data instead.

You can run IBM® Voice Gateway in a private cloud by deploying it in IBM® Cloud Private. IBM Cloud Private is an integrated environment for managing containers that includes the container orchestrator Kubernetes, a private image repository, a management console, and monitoring frameworks.

IBM Cloud Private uses Helm charts to manage product deployments to Kubernetes. For more information, see Managing charts and apps. The Helm charts that you use to deploy Voice Gateway are hosted along with other products in the IBM / charts GitHub repository. The readme file in the repository contains additional information about using the charts.

You can deploy applications into IBM Cloud Private through the Catalog user interface or by using the Helm command-line interface.

Before you begin

(Required) Configure watson services:

  1. Sign up for an IBMid and IBM Cloud account, and create the following Watson services:

    1. Speech to Text
    2. Text to Speech (self-service only)
    3. Watson Assistant (self-service only)

    Important: For Watson Assistant, you'll need to add a workspace with a dialog. You can quickly get started by importing the conversation/sample-conversation-en.json file from the sample.voice.gateway GitHub repository. To learn more about importing JSON files, see Creating workspaces in the Watson Assistant documentation. If you build your own dialog instead of using the sample, ensure that your dialog includes a node with the conversation_start condition and node with a default response.

  2. Install and configure the kubectl CLI so that you can access your Kubernetes cluster in IBM Cloud Private from the command line.

(Required if not using the default namespace) Configure namespace and PodSecurityPolicy:

Custom PodSecurityPolicy

Configuration scripts for custom PodSecurityPolicy:

(Required) Configure tenant configuration secret:

  1. Create a tenantConfig.json with the tenant credentials and any additional parameters. A sample tenantConfig.json can be found in the tenantConfig.json file.

    Visit Advanced JSON configuration for more information.

  2. Create a secret vgw-tenantconfig-secret from the tenantConfig.json file using the following command:
    kubectl create secret generic vgw-tenantconfig-secret --from-file=tenantConfig=tenantConfig.json -n <namespace>
    

    Make sure to use the namespace you want to deploy this chart in.

(Required) Create metering API Key Secret:

  1. Complete the steps mentioned on IBM® Cloud Private metering service page to create the Metering API Key.

    Make sure to create the API Key in the namespace you're going to deploy the helm chart.

  2. Retrieve the Metering API Key:
    • After you have created the API Key, return to the IBM Cloud Private Management Console, open the menu and click Platform > Metering.
    • On the Metering dashboard, select Manage API Keys. Use this form to retrieve the metering API key that you created.
  3. Add the generated API Key in a text file metering-api-key.txt (Make sure there are no extra spaces or new lines in the text file)
  4. Create secret for the metering API Key:
    kubectl create secret generic metering-api-key-secret --from-file=meteringApiKey=metering-api-key.txt -n <namespace>
    

(Optional) Load Voice Gateway Production Helm Chart from IBM Passport Advantage

  1. To load and install the IBM Voice Gateway (Production) Helm chart from IBM Passport Advantage, download the package from IBM Passport Advantage and follow the step in Installing bundled products.
  2. Navigate through the list of Helm charts to the IBM Voice Gateway (Production) (ibm-voice-gateway-prod) Helm chart. The Helm chart description contains information about configuring and deploying Voice Gateway.

Optional Configurations

MRCPv2 configuration

SSL configuration

Adding trusted certificates for the SIP Orchestrator (For enabling SSL or Mutual Authentication):
Adding trusted certificates for the Media Relay (For enabling SSL):
Adding certificates for the Media Relay (For Mutual Authentication):

Configuring secrets for proxy password for the Sip Orchestrator and the Media Relay:

Deploy Voice Gateway from the IBM Cloud Private Catalog

  1. From the IBM Cloud Private dashboard, click Catalog.
  2. Search/select the Voice Gateway Helm Chart.

    From the list of Helm Charts in the IBM Cloud Private Catalog

    1. Navigate through the list of Helm charts to the IBM Voice Gateway (Developer Trial) (ibm-voice-gateway-dev) Helm chart or IBM Voice Gateway (Production) (ibm-voice-gateway-prod) Helm chart. The Helm chart description contains information about configuring and deploying Voice Gateway. Select the Helm chart, and click Configure.
  1. Enter a release name and select a namespace, which can be either the default namespace or a custom one. Also accept the license agreement for Voice Gateway.
  2. The default number of replicas is set to 1. Deploying additional pods requires that you use a SIP load balancer. See Deploying additional pods.

  3. If you need to edit any other parameters, click on the All parameters section. Tip: You can also change the Metering Server URL and IBM Cloud Private Master Node Domain/IP in this section.

  4. Click Install to deploy Voice Gateway.

After Voice Gateway is deployed, you can view your deployment by going to the IBM Cloud Private navigation menu, select Workloads > Helm Releases.

Deploy Voice Gateway in IBM Cloud Private using the Helm CLI

  1. Install and configure the kubectl CLI so that you can access your Kubernetes cluster in IBM Cloud Private from the command line.

  2. Set up the Helm CLI, including all prerequisites. The CLI sets up the Helm client on your local machine to connect to the Tiller server in IBM Cloud Private. Important: You only need to install and initialize the Helm CLI. If you receive the expected output when you run the helm version --tls command to verify that the installation has initialized, you don't need to continue through the remaining steps.

  3. Add the ibm-charts Helm repository by running the following command:

    helm repo add ibm-charts https://raw.githubusercontent.com/IBM/charts/master/repo/stable/
    
  4. To install the chart with the release name my-release:

    helm install ibm-charts/ibm-voice-gateway-dev --name my-release --namespace <namespace>
    

    Replace ibm-voice-gateway-dev with ibm-voice-gateway-prod in the above command if using Production Helm Chart.

  5. To specify any extra parameters you can use the --set option or create a yaml file with the parameters and specify it using the -f option on the command line.

    • For a complete list of supported parameters, please take a look at the table in Configuration section in the Helm README.

What to do next

After you deploy Voice Gateway, test your deployment as described in Getting started with Voice Gateway. To find the IP address of your deployment, on the IBM Cloud Private dashboard:

If you're not familiar with using kubectl to interact with Kubernetes clusters, learn more in the Kubernetes documentation, which includes a kubectl cheatsheet.

Protecting sensitive information: Both the Text to Speech caching and audio recording collection are disabled by default. If you enable these features, take appropriate measures to protect and mitigate sensitive data. It's recommended that you encrypt the disk where you deploy Voice Gateway. Hard disk encryption can protect any recordings or text to speech responses that are cached in the file system, because they might contain sensitive information. Encrypting the hard disk only encrypts data stored in Voice Gateway. You must take additional steps to secure data in services that are integrated with Voice Gateway.

Viewing information about your pods

After you start your Voice Gateway pods, you can view information about your pods through the IBM Cloud Private dashboard or from the command line.

Changing the configuration

You can change the configuration from within the IBM Cloud Private Catalog or from the command line. For a list of configuration parameters that you can change, see the Helm chart readme. Whenever you change the configuration, you must redeploy Voice Gateway for the change to take effect.

Important: Enabling features that require outside files, such as recording calls , require additional configuration changes to mount the files on a volume when you redeploy. For more information, see the documentation under Advanced configuration.

Deploying additional Voice Gateway pods

If you want to deploy additional Voice Gateway pods, you'll need to add more nodes to your cluster and deploy a SIP load balancer. To learn more about configuring Voice Gateway high availability, see Setting up high availability.