Upgrading Voice Gateway from Version 5.1 Version 5.3

An instance administrator can upgrade Voice Gateway from Version 5.1 to Version 5.3.

Who needs to complete this task?

Instance administrator To upgrade Voice Gateway, you must be an instance administrator. An instance administrator has permission to manage software in the following projects:

The operators project for the instance

The operators for this instance of Voice Gateway are installed in the operators project. In the upgrade commands, the ${PROJECT_CPD_INST_OPERATORS} environment variable refers to the operators project.

The operands project for the instance

The custom resources for the control plane and Voice Gateway are installed in the operands project. In the upgrade commands, the ${PROJECT_CPD_INST_OPERANDS} environment variable refers to the operands project.

When do you need to complete this task?

Review the following options to determine whether you need to complete this task:

  • If you want to upgrade the IBM Software Hub control plane and one or more services at the same time, follow the process in Upgrading an instance of IBM Software Hub instead.
  • If you didn't upgrade Voice Gateway when you upgraded the IBM Software Hub control plane, complete this task to upgrade Voice Gateway.

    Repeat as needed If you are responsible for multiple instances of IBM Software Hub, you can repeat this task to upgrade more instances of Voice Gateway on the cluster.

Information you need to complete this task

Review the following information before you upgrade Voice Gateway:

Version requirements

All the components that are associated with an instance of IBM Software Hub must be installed at the same release. For example, if the IBM Software Hub control plane is at Version 5.3.1, you must upgrade Voice Gateway to Version 5.3.1.

Environment variables
The commands in this task use environment variables so that you can run the commands exactly as written.
  • If you don't have the script that defines the environment variables, see Setting up installation environment variables.
  • To use the environment variables from the script, you must source the environment variables before you run the commands in this task. For example, run:
    source ./cpd_vars.sh

Before you begin

This task assumes that the following prerequisites are met:

System requirements
This task assumes that the cluster meets the minimum requirements for Voice Gateway.
Where to find more information
If this task is not complete, see System requirements.
Workstation
This task assumes that the workstation from which you will run the upgrade is set up as a client workstation and has the following command-line interfaces:
  • IBM Software Hub CLI: cpd-cli
  • OpenShift® CLI: oc
  • Helm CLI: oc
Where to find more information
If this task is not complete, see Updating client workstations.
Control plane
This task assumes that the IBM Software Hub control plane is upgraded.
Where to find more information
If this task is not complete, see Upgrading an instance of IBM Software Hub.
Private container registry
If your environment uses a private container registry (for example, your cluster is air-gapped), this task assumes that the following tasks are complete:
  1. The Voice Gateway software images are mirrored to the private container registry.
    Where to find more information
    If this task is not complete, see Mirroring images to a private container registry.
  2. The cpd-cli is configured to pull the olm-utils-v4 image from the private container registry.
    Where to find more information
    If this task is not complete, see Pulling the olm-utils-v4 image from the private container registry.

Prerequisite services

Before you upgrade Voice Gateway, ensure that the following services are upgraded and running:

Procedure

Complete the following tasks to upgrade Voice Gateway:

  1. Specifying installation options
  2. Upgrading the service
  3. Validating the upgrade
  4. What to do next

Specifying installation options

When you upgrade Voice Gateway, specify the following options in the install-options.yml file in the work directory.

# ............................................................................
# Voice Gateway parameters
# ............................................................................
  voice_gateway:
    # ------------------------------------------------------------------------------
    # Number of replicas
    # ------------------------------------------------------------------------------
    replicas: 1
    # ------------------------------------------------------------------------------
    # Node selector parameters
    # ------------------------------------------------------------------------------
    nodeSelector:
      key1: value
      key2: value
    # ------------------------------------------------------------------------------
    # Toleration parameters
    # ------------------------------------------------------------------------------
    tolerations:
    - key: "key-name" 
      operator: "operator" 
      value: "value" 
      effect: "effect" 
    # ------------------------------------------------------------------------------
    # SSL configuration parameters
    # ------------------------------------------------------------------------------
    sslConfig:
      disableSslCertValidation: true
      mediaRelay:
        enableSsl: false
        sslClientCACertSecret: client-ca-cert-secret
        enableMutualAuth: false
        sslClientPkcs12FileSecret: ssl-client-pkcs12-file-secret
        sslClientPassphraseSecret: ssl-client-passphrase-secret
      sipOrchestrator:
        enableSslorMutualAuth: false
        sslKeyTrustStoreSecret: trust-store-file-secret
        sslFileType: "JKS"
        sslPassphraseSecret: ssl-passphrase-secret
    # ------------------------------------------------------------------------------
    # Port parameters
    # ------------------------------------------------------------------------------
    ports:
      sipSignalingPortUdp: 5060
      sipSignalingPortTcp: 5060
      sipSignalingPortTls: 5061
      sipOrchestratorHttpPort: 9086
      sipOrchestratorHttpsPort: 9446
      mediaRelayWsPort: 8080
      rtpUdpPortRange: "16384-16394"
    # ------------------------------------------------------------------------------
    # Environment variable parameters
    # ------------------------------------------------------------------------------
    env:
      sipOrchestrator:
        - name: variable-name
          value: "value"
      mediaRelay:
        - name: variable-name
          value: "value"
    # ------------------------------------------------------------------------------
    # Storage parameters
    # ------------------------------------------------------------------------------
    storage:
      recordings:
        enablePersistentRecordings: false
        storageClassName: ""
        size: 15Gi
      logs:
        enablePersistentLogs: false
        storageClassName: ""
        size: 10Gi
    # ------------------------------------------------------------------------------
    # Container resource parameters
    # ------------------------------------------------------------------------------
    resources:
      sipOrchestrator:
        requests:
          cpu: "1.0"
          memory: 1Gi
        limits:
          cpu: "2.0"
          memory: 2Gi
      mediaRelay:
        requests:
          cpu: "1"
          memory: 1Gi
        limits:
          cpu: "4"
          memory: 4Gi
      g729Codec:
        requests:
          cpu: "0.5"
          memory: 0.5Gi
        limits:
          cpu: "1"
          memory: 1Gi
    # ------------------------------------------------------------------------------
    # G729 Codec Service parameters
    # ------------------------------------------------------------------------------
    g729Codec:
      enabled: false
      logLevel: "INFO"
      webSocketServerPort: 9001
    # ------------------------------------------------------------------------------
    # Media Resource Control Protocol parameters
    # ------------------------------------------------------------------------------
    mrcp:
      enableMrcp: false
      unimrcpConfigSecretName: unimrcp-config-secret
      mrcpv2SipPort: 5555
Replicas
Parameter Description
replicas Specify the number of replicas to deploy.

You can increase the number of replicas to support additional concurrent calls.

Default value
1
Valid values
An integer greater than 0.
Node selector parameters
Parameter Description
nodeSelector If you want Voice Gateway pods to run on specific nodes, you can add one or more node selectors to the nodeSelector block.

To use this feature, the nodes on your cluster must be labeled. For more information on node labels, see the Red Hat® OpenShift Container Platform documentation.

Default value
No default value. Node selectors are optional and are user-defined.
Valid values
Specify one or more node labels using key-value pairs with the format key: value.

Enter each key-value pair on a new line. The sample YAML file includes a formatting example.

Including this parameter
Ensure that you uncomment the nodeSelector line and any key-value pairs that you want to include. For example:
  nodeSelector:
    <key-name1>: <value1>
    <key-name2>: <value2>
Taint toleration parameters
Parameter Description
tolerations If you use taints to prevent pods from being scheduled on specific nodes, you can add one or more taint tolerations to the tolerations block.

To use this feature, the nodes on your cluster must be tainted. For more information on taints and taint tolerations, see the Red Hat OpenShift Container Platform documentation.

Default value
No default value. Taint tolerations are optional and are user-defined.
Valid values
Specify one ore more taint tolerations in list format. The sample YAML file includes a formatting example.

Enter each taint toleration as a new list item.

A toleration typically includes a key, an operator, a value, and an effect. The sample YAML file includes a formatting example.

Including this parameter
Ensure that you uncomment the tolerations line and any list items that you want to include. For example:
  tolerations:
  - key: "<key-name>" 
    operator: "<operator>" 
    value: "<value>" 
    effect: "<effect>"
SSL configuration parameters
Parameter Description
disableSslCertValidation Specify whether Voice Gateway should disable SSL certificate validation.
Default value
false
Valid values
false
Do not disable SSL certificate validation. The service will validate SSL certificates.

Set disableSslCertValidation: false if you plan to replace the default, self-signed TLS certificate that is shipped with Cloud Pak for Data with a certificate that is signed by a certificate authority.

true
Disable SSL certificate validation. The service will not validate SSL certificates.

Set disableSslCertValidation: true if you plan to use a self-signed TLS certificate.

Including this parameter
Ensure that you uncomment the following lines:
  sslConfig:
    disableSslCertValidation: true
enableSsl (Media Relay) Specify whether you want the Media Relay microservice to establish SSL connections to, Watson Speech to Text and Watson Text to Speech.
Default value
false
Valid values
false
Do not enable SSL connections to the servers.
true
Enable SSL connections to the servers.
If you want to use this option, you must create the following secrets in the PROJECT_CPD_INST_OPERANDS project:
  • A secret that contains the CA certificate file. Specify the name of the secret in the sslClientCACertSecret parameter.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate value for the sslClientCACertSecret parameter:
  sslConfig:
    mediaRelay:
      enableSsl: true
      sslClientCACertSecret: <my-secret-name>
sslClientCACertSecret (Media Relay) Specify the name of the secret that contains the CA certificate file that is used when enableSsl is set to true.
To create the secret that contains the CA certificate file, run the following commands:
  1. Set the RELAY_CA_FILE environment variable to the name of the CA certificate PEM file:
    RELAY_CA_FILE=<fully-qualified-pem-file-name>
  2. Create the secret. The following command uses the recommended name, client-ca-cert-secret. You can change the name if it will conflict with another secret in your environment.
    oc create secret generic client-ca-cert-secret \
    --from-file=clientCaCertFile=${RELAY_CA_FILE} \
    --namespace=${PROJECT_CPD_INST_OPERANDS}
Default value
client-ca-cert-secret

If you don't specify the sslClientCACertSecret parameter, the default secret name is used.

Valid values
The name of the secret that contains the CA certificate file.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate value for the sslClientCACertSecret parameter:
  sslConfig:
    mediaRelay:
      enableSsl: true
      sslClientCACertSecret: <my-secret-name>
enableMutualAuth (Media Relay) Specify whether to enable mutual authentication between the client server and the Media Relay microservice.
Default value
false
Valid values
false
Do not enable mutual authentication.
true
Enable mutual authentication.
If you want to use this option, you must create the following secrets in the PROJECT_CPD_INST_OPERANDS project:
  • A secret that contains the SSL keystore. Specify the name of the secret in the sslClientPkcs12FileSecret parameter.
  • A secret that contains the SSL passphrase. Specify the name of the secret in the sslClientPassphraseSecret parameter.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the parameters:
  sslConfig:
    mediaRelay:
      enableMutualAuth: true
      sslClientPkcs12FileSecret: <my-secret-name>
      sslClientPassphraseSecret: <my-secret-name>
sslClientPkcs12FileSecret (Media Relay) Specify the name of the secret that contains the SSL keystore for mutual authentication.

The keystore can be a PKCS12 file, a JKS file, or a JCEKS file.

To create the secret that contains the SSL keystore file, run the following commands:
  1. Set the RELAY_KEYSTORE_FILE environment variable to the name of the SSL keystore file:
    RELAY_KEYSTORE_FILE=<fully-qualified-file-name>
  2. Create the secret. The following command uses the recommended name, ssl-client-pkcs12-file-secret. You can change the name if it will conflict with another secret in your environment.
    oc create secret generic ssl-client-pkcs12-file-secret \
    --from-file=clientPkcs12File=${RELAY_KEYSTORE_FILE} \
    --namespace=${PROJECT_CPD_INST_OPERANDS}
Default value
ssl-client-pkcs12-file-secret

If you don't specify the sslClientPkcs12FileSecret parameter, the default secret name is used.

Valid values
The name of the secret that contains the SSL keystore file.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the parameters:
  sslConfig:
    mediaRelay:
      enableMutualAuth: true
      sslClientPkcs12FileSecret: <my-secret-name>
      sslClientPassphraseSecret: <my-secret-name>
sslClientPassphraseSecret (Media Relay) Specify the name of the secret that contains the SSL passphrase for mutual authentication.
To create the secret that contains the SSL passphrase, run the following commands:
  1. Set the RELAY_SSL_PASSPHRASE environment variable to the SSL passphrase
    RELAY_SSL_PASSPHRASE=<passphrase>
  2. Create the secret. The following command uses the recommended name, ssl-client-passphrase-secret. You can change the name if it will conflict with another secret in your environment.
    oc create secret generic ssl-client-passphrase-secret \
    --from-literal=sslClientPassphrase=${REPLAY_SSL_PASSPHRASE} \
    --namespace=${PROJECT_CPD_INST_OPERANDS}
Default value
ssl-client-passphrase-secret

If you don't specify the sslClientPassphraseSecret parameter, the default secret name is used.

Valid values
The name of the secret that contains the SSL passphrase.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the parameters:
  sslConfig:
    mediaRelay:
      enableMutualAuth: true
      sslClientPkcs12FileSecret: <my-secret-name>
      sslClientPassphraseSecret: <my-secret-name>
enableSslorMutualAuth (SIP Orchestrator) Specify whether to enable SSL for the SIP Orchestrator microservice.

Depending on the certificate that you provide, this enables either:

  • SSL connections to watsonx Assistant
  • SSL connections to watsonx Assistant and mutual authentication between the client server and the SIP Orchestrator microservice
Default value
false
Valid values
false
Do not enable SSL.
true
Enable SSL.
If you want to use this option, you must create the following secrets in the PROJECT_CPD_INST_OPERANDS project:
  • A secret that contains the SSL keystore. Specify the name of the secret in the sslKeyTrustStoreSecret parameter.
  • A secret that contains the SSL passphrase. Specify the name of the secret in the sslPassphraseSecret parameter.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the parameters:
  sslConfig:
    sipOrchestrator:
      enableSslorMutualAuth: true
      sslKeyTrustStoreSecret: <my-secret-name>
      sslFileType: "<file-type>"
      sslPassphraseSecret: <my-secret-name>
sslKeyTrustStoreSecret (SIP Orchestrator) Specify the name of the secret that contains the SSL keystore.

The keystore can be a PKCS12 file, a JKS file, or a JCEKS file.

To create the secret that contains the SSL keystore file, run the following commands:
  1. Set the SIP_KEYSTORE_FILE environment variable to the name of the SSL keystore file:
    SIP_KEYSTORE_FILE=<fully-qualified-file-name>
  2. Create the secret. The following command uses the recommended name, trust-store-file-secret. You can change the name if it will conflict with another secret in your environment.
    oc create secret generic trust-store-file-secret \
    --from-file==trustStoreFile=${SIP_KEYSTORE_FILE} \
    --namespace=${PROJECT_CPD_INST_OPERANDS}
Default value
trust-store-file-secret

If you don't specify the sslKeyTrustStoreSecret parameter, the default secret name is used.

Valid values
The name of the secret that contains the SSL keystore file.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the parameters:
  sslConfig:
    sipOrchestrator:
      enableSslorMutualAuth: true
      sslKeyTrustStoreSecret: <my-secret-name>
      sslFileType: "<file-type>"
      sslPassphraseSecret: <my-secret-name>
sslFileType (SIP Orchestrator) Specify the format of the SSL keystore file.

The keystore can be a file, a file, or a file.

Default value
JKS

If you don't specify the sslFileType parameter, the default file type is used.

Valid values
  • JCEKS
  • JKS
  • PKCS12
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the parameters:
  sslConfig:
    sipOrchestrator:
      enableSslorMutualAuth: true
      sslKeyTrustStoreSecret: <my-secret-name>
      sslFileType: "<file-type>"
      sslPassphraseSecret: <my-secret-name>
sslPassphraseSecret (SIP Orchestrator) Specify the name of the secret that contains the SSL passphrase.
To create the secret that contains the SSL passphrase, run the following commands:
  1. Set the SIP_SSL_PASSPHRASE environment variable to the SSL passphrase
    SIP_SSL_PASSPHRASE=<passphrase>
  2. Create the secret. The following command uses the recommended name, ssl-passphrase-secret. You can change the name if it will conflict with another secret in your environment.
    oc create secret generic ssl-passphrase-secret \
    --from-literal=sslPassphrase=${SIP_SSL_PASSPHRASE} \
    --namespace=${PROJECT_CPD_INST_OPERANDS}
Default value
ssl-passphrase-secret

If you don't specify the sslPassphraseSecret parameter, the default secret name is used.

Valid values
The name of the secret that contains the SSL passphrase.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the parameters:
  sslConfig:
    sipOrchestrator:
      enableSslorMutualAuth: true
      sslKeyTrustStoreSecret: <my-secret-name>
      sslFileType: "<file-type>"
      sslPassphraseSecret: <my-secret-name>
Port parameters
Parameter Description
sipSignalingPortUdp Override the default UDP port for the SIP signaling protocol if the default port number will conflict with an existing port.
Default value
5060
Valid values
An available port on the server.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate value for the <port-number>:
  ports:
    sipSignalingPortUdp: <port-number>
sipSignalingPortTcp Override the default TCP port for the SIP signaling protocol if the default port number will conflict with an existing port.
Default value
5060
Valid values
An available port on the server.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate value for the <port-number>:
  ports:
    sipSignalingPortTcp: <port-number>
sipSignalingPortTls Override the default TLS port for the SIP signaling protocol if the default port number will conflict with an existing port.
Default value
5061
Valid values
An available port on the server.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate value for the <port-number>:
  ports:
    sipSignalingPortTls: <port-number>
sipOrchestratorHttpPort Override the default HTTP port for the SIP Orchestrator microservice if the default port number will conflict with an existing port.
Default value
9446
Valid values
An available port on the server.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate value for the <port-number>:
  ports:
    sipOrchestratorHttpPort: <port-number>
sipOrchestratorHttpsPort Override the default HTTPS port for the SIP Orchestrator microservice if the default port number will conflict with an existing port.
Default value
5060
Valid values
An available port on the server.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate value for the <port-number>:
  ports:
    sipOrchestratorHttpsPort: <port-number>
mediaRelayWsPort Override the default web socket port for the Media Relay microservice if the default port number will conflict with an existing port.
Default value
8080
Valid values
An available port on the server.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate value for the <port-number>:
  ports:
    mediaRelayWsPort: <port-number>
rtpUdpPortRange Adjust the number of RTP ports based on the number of concurrent calls that you want to support.
Default value
"16384-16394"

By default, Voice Gateway supports 10 concurrent calls.

Valid values
A range of available ports on the server.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate value for each instance of <port-number>:
  ports:
    rtpUdpPortRange: "<port-number>-<port-number>"
Environment variable parameters
Parameter Description
sipOrchestrator environment variables Specify any SIP Orchestrator environment variables that you want to use to configure the SIP Orchestrator microservice.
Default value
No default. Environment variables are optional.
Valid values
Specify one ore more SIP Orchestrator environment variables in list format. The sample YAML file includes a formatting example.

Enter each environment variable as a new list item.

An environment variable includes the variable name and the value to use.

Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the parameters:
  env:
    sipOrchestrator:
      - name: <variable-name>
        value: "<value>"
mediaRelay environment variables Specify any Media Relay environment variables that you want to use to configure the Media Relay microservice.
Default value
No default. Environment variables are optional.
Valid values
Specify one ore more Media Relay environment variables in list format. The sample YAML file includes a formatting example.

Enter each environment variable as a new list item.

An environment variable includes the variable name and the value to use.

Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the parameters:
  env:
    mediaRelay:
      - name: <variable-name>
        value: "<value>"
Storage parameters
Parameter Description
enablePersistentRecordings (Recordings) Specify whether to save recordings to persistent storage.
Default value
false
Valid values
false
Do not store recordings.
true
Save recordings to persistent storage.

If you want to use this option, you must specify the name of the file storage class to use in the storageClassName parameter.

Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the parameters:
  storage:
    recordings:
      enablePersistentRecordings: true
      storageClassName: "<storage-class-name>"
storageClassName (Recordings) Specify the name of the storage class that points to file storage.
Default value
No default. The name depends on the storage classes that are defined on your cluster.
Valid values
The name of a file storage class on your cluster.

If you sourced the installation environment variables script, run the following command to determine the file storage class that is used by other Cloud Pak for Data services:

echo $STG_CLASS_FILE
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the storageClassName parameter:
  storage:
    recordings:
      enablePersistentRecordings: true
      storageClassName: "<storage-class-name>"
size (Recordings) Specify the size of the persistent volume.
Default value
15Gi

Assuming 1000 calls per day, you'd need 1.92 Gi worth of disk space to store recordings for that day. If you want to keep recordings for a week you'd need at least 15 Gi of disk space since recordings are not automatically cleaned up.

Valid values
Specify the amount of storage, in gibibyte (Gi) to allocate to the volume. Ensure that there is sufficient space on your storage device.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the parameters:
  storage:
    recordings:
      enablePersistentRecordings: true
      storageClassName: "<storage-class-name>"
      size: <integer>Gi
enablePersistentLogs (Logs) Specify whether to save logs to persistent storage.
Default value
false
Valid values
false
Do not store logs.
true
Save logs to persistent storage.

If you want to use this option, you must specify the name of the file storage class to use in the storageClassName parameter.

Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the parameters:
  storage:
    recordings:
      enablePersistentLogs: true
      storageClassName: "<storage-class-name>"
storageClassName (Logs) Specify the name of the storage class that points to file storage.
Default value
No default. The name depends on the storage classes that are defined on your cluster.
Valid values
The name of a file storage class on your cluster.

If you sourced the installation environment variables script, run the following command to determine the file storage class that is used by other Cloud Pak for Data services:

echo $STG_CLASS_FILE
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the storageClassName parameter:
  storage:
    recordings:
      enablePersistentLogs: true
      storageClassName: "<storage-class-name>"
size (Logs) Specify the size of the persistent volume.
Default value
10Gi

Assuming 1000 calls per day.

Valid values
Specify the amount of storage, in gibibyte (Gi) to allocate to the volume. Ensure that there is sufficient space on your storage device.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the parameters:
  storage:
    recordings:
      enablePersistentLogs: true
      storageClassName: "<storage-class-name>"
      size: <integer>Gi
Container resource parameters
Parameter Description
sipOrchestrator Specify the amount of vCPU and memory to allocate to the SIP Orchestrator microservice container.

It is recommended that you assign 20% of the resources to the SIP Orchestrator microservice container

Default value
vCPU
  • Requests: 1 vCPU ("1.0")
  • Limits: 2 vCPU ("2.0")
Memory
  • Requests: 1 Gi RAM (1Gi)
  • Limits: 2 Gi RAM (2Gi)
Valid values
Specify the amount of vCPU and memory to allocate to the microservice. Ensure that you have sufficient resources on the worker nodes in the cluster.
Including this parameter
Ensure that you uncomment the following lines:
  resources:
    sipOrchestrator:

Then uncomment the resource allocations that you want to override and specify the appropriate values:

#      requests:
#        cpu: "1.0"
#        memory: 2Gi
#      limits:
#        cpu: "1.0"
#        memory: 2Gi
mediaRelay Specify the amount of vCPU and memory to allocate to the Media Relay microservice container.

It is recommended that you assign 80% of the resources to the Media Relay microservice container.

Default value
vCPU
  • Requests: 1 vCPU ("1")
  • Limits: 4 vCPU ("4")
Memory
  • Requests: 1 Gi RAM (1Gi)
  • Limits: 4 Gi RAM (4Gi)
Valid values
Specify the amount of vCPU and memory to allocate to the microservice. Ensure that you have sufficient resources on the worker nodes in the cluster.
Including this parameter
Ensure that you uncomment the following lines:
  resources:
    mediaRelay:

Then uncomment the resource allocations that you want to override and specify the appropriate values:

#      requests:
#        cpu: "1"
#        memory: 1Gi
#      limits:
#        cpu: "4"
#        memory: 4Gi
g729Codec Specify the amount of vCPU and memory to allocate to the G729 Codec container, if the service is enabled.
Default value
vCPU
  • Requests: 0.5 vCPU ("0.5")
  • Limits: 1 vCPU ("1")
Memory
  • Requests: 0.5 Gi RAM (0.5Gi)
  • Limits: 1 Gi RAM (1Gi)
Valid values
Specify the amount of vCPU and memory to allocate to the microservice. Ensure that you have sufficient resources on the worker nodes in the cluster.
Including this parameter
Ensure that you uncomment the following lines:
  resources:
    g729Codec:

Then uncomment the resource allocations that you want to override and specify the appropriate values:

#      requests:
#        cpu: "0.5"
#        memory: 0.5Gi
#      limits:
#        cpu: "1"
#        memory: 1Gi
G729 Codec Service parameters
Parameter Description
enabled Specify whether you want to enable the G729 Codec service.
Default value
false
Valid values
false
Do not enable the G729 Codec service.
true
Enable the G729 Codec service
Including this parameter
Ensure that you uncomment the following lines:
  g729Codec:
    enabled: true
logLevel Specify the level of detail to include in the G729 Codec logs.
Default value
"INFO"
Valid values
  • "DEBUG"
  • "INFO"
  • "WARN"
  • "ERROR"
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the <log-level>:
  g729Codec:
    enabled: true
    logLevel: "<log-level>"
webSocketServerPort Override the default web socket port for the G729 Codec service if the default port number will conflict with an existing port.
Default value
9001
Valid values
An available port on the server.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate value for the <port-number>:
  g729Codec:
    enabled: true
    webSocketServerPort: 9001
Media Resource Control Protocol parameters
Parameter Description
enableMrcp Specify whether you want to enable Media Resource Control Protocol Version 2 (MRCPv2) connections to enable the service to integrate with third-party speech to text and text to speech services.
Default value
false
Valid values
false
Do not enable MRCPv2 connections
true
Enable MRCPv2 connections.
If you want to use this option, you must create the following secrets in the PROJECT_CPD_INST_OPERANDS project:
  • A secret that contains the unimrcpclient.xml file. Specify the name of the secret in the unimrcpConfigSecretName parameter.
Including this parameter
Ensure that you uncomment the following lines:
  mrcp:
    enableMrcp: true
unimrcpConfigSecretName Specify the name of the secret that includes the unimrcpclient.xml file.
To create the secret that contains the unimrcpclient.xml file, run the following commands:
  1. Set the MRCP_FILE environment variable to the fully qualified name of the unimrcpclient.xml file:
    MRCP_FILE=<fully-qualified-file-name>
  2. Create the secret. The following command uses the recommended name, unimrcp-config-secret. You can change the name if it will conflict with another secret in your environment.
    oc create secret generic unimrcp-config-secret \
    --from-file=unimrcpConfig=${MRCP_FILE} \
    --namespace=${PROJECT_CPD_INST_OPERANDS}
Default value
unimrcp-config-secret

If you don't specify the unimrcpConfigSecretName parameter, the default secret name is used.

Valid values
The name of the secret that contains the unimrcpclient.xml file.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate values for the <secret-name>:
  mrcp:
    enableMrcp: true
    unimrcpConfigSecretName: <secret-name>
mrcpv2SipPort Override the default SIP port for the MRCPv2 connection if the default port number will conflict with an existing port.
Default value
5555
Valid values
An available port on the server.
Including this parameter
Ensure that you uncomment the following lines and specify the appropriate value for the <port-number>:
  mrcp:
    enableMrcp: true
    mrcpv2SipPort: <port-number>

Upgrading the service

To upgrade Voice Gateway:

  1. Log the cpd-cli in to the Red Hat OpenShift Container Platform cluster:
    ${CPDM_OC_LOGIN}
    Remember: CPDM_OC_LOGIN is an alias for the cpd-cli manage login-to-ocp command.
  2. Update the operator and custom resource for Voice Gateway.
    cpd-cli manage install-components \
    --license_acceptance=true \
    --components=voice_gateway \
    --release=${VERSION} \
    --operator_ns=${PROJECT_CPD_INST_OPERATORS} \
    --instance_ns=${PROJECT_CPD_INST_OPERANDS} \
    --image_pull_prefix=${IMAGE_PULL_PREFIX} \
    --image_pull_secret=${IMAGE_PULL_SECRET} \
    --param-file=/tmp/work/install-options.yml \
    --upgrade=true

Validating the upgrade

Voice Gateway is upgraded when the install-components command returns:
[SUCCESS]... The install-components command ran successfully

If you want to confirm that the custom resource status is Ready, you can run the cpd-cli manage get-cr-status command:

cpd-cli manage get-cr-status \
--cpd_instance_ns=${PROJECT_CPD_INST_OPERANDS} \
--components=voice_gateway

What to do next

Voice Gateway is ready to use. To get started with Voice Gateway, see Getting started with Voice Gateway