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. - IBM Software
Hub CLI:
- 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:
- 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. - The
cpd-cliis configured to pull theolm-utils-v4image 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.
- The Voice
Gateway software images are mirrored to 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:
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 replicasSpecify 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 nodeSelectorIf you want Voice Gateway pods to run on specific nodes, you can add one or more node selectors to the nodeSelectorblock.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
nodeSelectorline and any key-value pairs that you want to include. For example:nodeSelector: <key-name1>: <value1> <key-name2>: <value2>
- Taint toleration parameters
-
Parameter Description tolerationsIf you use taints to prevent pods from being scheduled on specific nodes, you can add one or more taint tolerations to the tolerationsblock.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
tolerationsline 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 disableSslCertValidationSpecify 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: falseif 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: trueif 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_OPERANDSproject:- A secret that contains the CA certificate file. Specify the name of the secret in the
sslClientCACertSecretparameter.
- A secret that contains the CA certificate file. Specify the name of the secret in the
- Including this parameter
- Ensure that you uncomment the following lines and specify the appropriate value for the
sslClientCACertSecretparameter: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 enableSslis set totrue.To create the secret that contains the CA certificate file, run the following commands:- Set the
RELAY_CA_FILEenvironment variable to the name of the CA certificate PEM file:RELAY_CA_FILE=<fully-qualified-pem-file-name> - 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-secretIf you don't specify the
sslClientCACertSecretparameter, 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
sslClientCACertSecretparameter: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_OPERANDSproject:- A secret that contains the SSL keystore. Specify the name of the secret in the
sslClientPkcs12FileSecretparameter. - A secret that contains the SSL passphrase. Specify the name of the secret in the
sslClientPassphraseSecretparameter.
- A secret that contains the SSL keystore. Specify the name of the secret in the
- 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:- Set the
RELAY_KEYSTORE_FILEenvironment variable to the name of the SSL keystore file:RELAY_KEYSTORE_FILE=<fully-qualified-file-name> - 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-secretIf you don't specify the
sslClientPkcs12FileSecretparameter, 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:- Set the
RELAY_SSL_PASSPHRASEenvironment variable to the SSL passphraseRELAY_SSL_PASSPHRASE=<passphrase> - 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-secretIf you don't specify the
sslClientPassphraseSecretparameter, 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_OPERANDSproject:- A secret that contains the SSL keystore. Specify the name of the secret in the
sslKeyTrustStoreSecretparameter. - A secret that contains the SSL passphrase. Specify the name of the secret in the
sslPassphraseSecretparameter.
- A secret that contains the SSL keystore. Specify the name of the secret in the
- 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:- Set the
SIP_KEYSTORE_FILEenvironment variable to the name of the SSL keystore file:SIP_KEYSTORE_FILE=<fully-qualified-file-name> - 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-secretIf you don't specify the
sslKeyTrustStoreSecretparameter, 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
JKSIf you don't specify the
sslFileTypeparameter, 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:- Set the
SIP_SSL_PASSPHRASEenvironment variable to the SSL passphraseSIP_SSL_PASSPHRASE=<passphrase> - 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-secretIf you don't specify the
sslPassphraseSecretparameter, 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 sipSignalingPortUdpOverride 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>
sipSignalingPortTcpOverride 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>
sipSignalingPortTlsOverride 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>
sipOrchestratorHttpPortOverride 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>
sipOrchestratorHttpsPortOverride 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>
mediaRelayWsPortOverride 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>
rtpUdpPortRangeAdjust 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 sipOrchestratorenvironment variablesSpecify 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>"
mediaRelayenvironment variablesSpecify 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
storageClassNameparameter.
- 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
storageClassNameparameter:storage: recordings: enablePersistentRecordings: true storageClassName: "<storage-class-name>"
size(Recordings)Specify the size of the persistent volume. - Default value
15GiAssuming 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
storageClassNameparameter.
- 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
storageClassNameparameter:storage: recordings: enablePersistentLogs: true storageClassName: "<storage-class-name>"
size(Logs)Specify the size of the persistent volume. - Default value
10GiAssuming 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 sipOrchestratorSpecify 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")
- Requests: 1 vCPU (
- Memory
-
- Requests: 1 Gi RAM (
1Gi) - Limits: 2 Gi RAM (
2Gi)
- Requests: 1 Gi RAM (
- 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
mediaRelaySpecify 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")
- Requests: 1 vCPU (
- Memory
-
- Requests: 1 Gi RAM (
1Gi) - Limits: 4 Gi RAM (
4Gi)
- Requests: 1 Gi RAM (
- 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
g729CodecSpecify 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")
- Requests: 0.5 vCPU (
- Memory
-
- Requests: 0.5 Gi RAM (
0.5Gi) - Limits: 1 Gi RAM (
1Gi)
- Requests: 0.5 Gi RAM (
- 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 enabledSpecify 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
logLevelSpecify 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>"
webSocketServerPortOverride 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 enableMrcpSpecify 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_OPERANDSproject:- A secret that contains the unimrcpclient.xml file. Specify the name of the
secret in the
unimrcpConfigSecretNameparameter.
- A secret that contains the unimrcpclient.xml file. Specify the name of the
secret in the
- Including this parameter
- Ensure that you uncomment the following
lines:
mrcp: enableMrcp: true
unimrcpConfigSecretNameSpecify 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:- Set the
MRCP_FILEenvironment variable to the fully qualified name of the unimrcpclient.xml file:MRCP_FILE=<fully-qualified-file-name> - 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-secretIf you don't specify the
unimrcpConfigSecretNameparameter, 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>
mrcpv2SipPortOverride 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:
-
Log the
cpd-cliin to the Red Hat OpenShift Container Platform cluster:${CPDM_OC_LOGIN}Remember:CPDM_OC_LOGINis an alias for thecpd-cli manage login-to-ocpcommand. - 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
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