GitHubContribute in GitHub: Edit online

copyright: years: 2017, 2023 lastupdated: "2023-07-17"


Release notes Voice Gateway

Learn about the latest updates and enhancements to IBM® Voice Gateway.

Images

Version 1.0.8.0

  • Version 1.0.8.9

    • Registry migration: Voice Gateway images must be pulled from the public IBM Cloud Container Registry from April 24, 2023. See Accessing images for more information.
  • Version 1.0.8.8

    • Installed iFixes for CVEs.
  • Version 1.0.8.7

    • Updated artifactory references to new Docker hostnames.
  • Version 1.0.8.6

    • Updated Liberty and Java.
  • Version 1.0.8.1

    • Updated dockerfile to use latest Watson Liberty base image.
  • Version 1.0.8.0

    • Set ubi-minimal base image.

Version 1.0.7.0

  • Version 1.0.7.12

    • Updated base image tag to use Liberty 22003.
  • Version 1.0.7.11

    • Updated to Liberty 22002.
  • Version 1.0.7.9

    • Updated dev MR image in Jenkinsfile.
  • Version 1.0.7.6

    • Addressed CVEs for cacache, WS, and i18next.
    • Bug fix for image signing.

Voice Gateway

Version 1.0.8.0

  • Version 1.0.8.10

    • Bug fix for vulnerabilities.
  • Version 1.0.8.9

    • Registry migration: Voice Gateway images must be pulled from the public IBM Cloud Container Registry from April 24, 2023. See Accessing images for more information.
    • Updated error codes.
  • Version 1.0.8.8

    • Updated access token in npmrc file.
    • Updated netty-codec, netty-handler, snakeyaml to fix vulnerabilities.
    • Bug fix to verify token is generated successfully before trying to generate session ID.
    • Installed iFixes for CVEs.
  • Version 1.0.8.7

    • Updated artifactory references to new Docker hostnames.
    • Updated vulnerable packages.
  • Version 1.0.8.6

    • Updated Liberty and Java.
  • Version 1.0.8.5

    • Bug fix for a build failure.
  • Version 1.0.8.4

    • Bug fix for unstable functional tests and to handle exception release.
    • Installed PH48810.
    • Updated snakeyaml package.
  • Version 1.0.8.3

    • Bug fix to CI after moving to TaaS and STT edge-case handling for errors during stopping the recognize session.
  • Version 1.0.8.2

    • Bug fix for uncaught exceptions of edge cases.
    • Temporarily disabled Redis tests.
    • Updated credentials in Jenkinsfile.
  • Version 1.0.8.1

    • Bug fix for energy detector breaking on variable chunk lengths and package dependency errors, to text played twice when call is transferred, and for transfer to not be interupted when a CMR failure occurs.
    • Updated dockerfile to use latest Watson Liberty base image.
    • Added metrics for active calls.
    • Removed unused metric tags.
  • Version 1.0.8.0

    • Added support for the new Watson Assistant phone response types: https://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-response-types-reference. Examples using the Watson Assistant phone response types can be found in https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-voice-actions

    • Added support for the Watson Assistant phone context variables: https://cloud.ibm.com/docs/assistant?topic=assistant-phone-context

    • Added support to disable low_latency by setting to false.

    • Added support to send channel type 'phone voice' when VGW runs as a phone integration.

    • Added phone gateway tests.

    • Added support for transfer target option when using the hangup method.

    • Added support for connect_to_agent API.

    • Added billing access token to speech configs.

    • Added support for comparison to be case-insensitive.

    • Added support for channel_transfer in phone.

    • Added support for skip_user_input and turn_settings.timeout_count.

    • Added metadata and WA-related error messages to CDR reports.

    • Added support to use UUID for anonymous users.

    • Added health reports.

    • Added defaults for undocumented variables.

    • Added support to verify region for speech token.

    • Added change message to send to Cade for search response type.

    • Added transfer message to not play when setting caller on hold is disabled.

    • Added support to use SMS integration number when sender number is unspecified.

    • Hybrid voice gateway plugin initial checkin.

    • Renamed phone integration gateway env variables.

    • Set ubi-minimal base image.

    • Addressed HTTPS_PORT2 missing warning error.

    • Addressed billingAccessToken getting removed from speech configs.

    • Removed support for TLS v1.1.

    • Vulnerability and security fixes.

Version 1.0.7.0

  • Version 1.0.7.12

    • Updated base image tag to use Liberty 22003.
    • Updated Axios, minimatch, and Mocha; and jackson-jaxrs-json-provider.
  • Version 1.0.7.11

    • Added low_latency parameter to on-prem.
    • Updated to Liberty 22002.
  • Version 1.0.7.10

    • Bug fixes for recorder, including 16-bit overflow on mixing and issues when writing to a full disk.
    • Updated netty-codec to 4.1.68.
  • Version 1.0.7.9

    • Updated cacache to address a vulnerability.
    • Updated dev MR image in Jenkinsfile.
  • Version 1.0.7.8

    • Bug fixes.
  • Version 1.0.7.7

    • Added support for Cisco-Guid in SIPREC metadata.
    • Bug fix to prevent destruction of channel on update failures.
  • Version 1.0.7.6

    • Addressed CVEs for cacache, WS, and i18next.
    • Bug fix for image signing.
    • Bug fix to allow call transfer when MR fails to process an ACK SDP.
  • Version 1.0.7.5

    • Added code signing to release branches.
    • Bug fix for actions not being processed using stateless API. Caused by system-wide config defaults set to WA v1, so SOE responses were treated as v1 message response objects regardless of version.
  • Version 1.0.7.4

    • Bug fixes for provider switching between Watson/MRCPv2, and port in script.
    • Bug fixes for missing conversation events and loading of media encryption config from JSON.
  • Version 1.0.7.3

    • Added support to allow setting STT 503 retries.
    • Bug fix when testing cases for new STT config param. Corrected typo in WATSON_STT_MAX_RECONNECTION_ATTEMPTS.
    • Bug fix to not restart speech if there is a forceNoInputTurn.
  • Version 1.0.7.2

    • Switched out watsonplatform.net URL.
    • Updated default token and assistant API URLs.
    • Bug fix for test that had a hard-codec path.
  • Version 1.0.7.1

    • Added flag to negotiate a single codec.
    • Removed HTTPS2 port to prevent warnings.
    • Bug fix for garbage collection issues.
  • Version 1.0.7.0

    • Changed the default value of the CLUSTER_WORKERS Docker environment variable from 1 to 0. With this variable set to 0, a number of workers equal to one less than the number of CPUs is spawned.

    • Names of the metrics used by the monitoring feature for the Prometheus text format have changed to use the prefix application_ instead of application:. For example, application:vg_max_calls_per_second becomes application_vg_max_calls_per_second.

    • Added support for the Watson Assistant search response type. For more information, see Voice Gateway: Handling Watson Assistant response types and SMS Gateway: Handling Watson Assistant response types.

    • Added support for assign_watsonintegration flag.

    • Added tags for integration metrics.

    • Added unique message for SOE vs. conversation failure.

    • Removed IAM code and pepclient library; integration check for setting the channel type; and activeCalls() method from VGWMetrics.

    • Updated base image to Liberty 200011.

    • Added git commit linting.

    • Added support to use wav library instead of WavReader to read .wav files.

    • Changed to use phone number instead of tenant ID.

    • Bug fixes for npm vulnerabilities, deprecation warning for Buffer, log transaction ID errors, proxy test failure, memory retention and leak, uncaught exceptions in STT, disabled TTS disk caching, STT silence buffering, speech timeouts on RTP discontinuous transmission, removing creds when playFile (WAV) logs, stopping cache task when caching is disabled, and added 1transation-id for iam token requests.

    • Bug fixes to remove extra logging and try catch block, handle multiple fail notifications, add lazy retry if Redisson fails on startup, set StatelessAPI to true for soe and integrations property in context; and for start_conversation, logSourceCRN from crn_id integration.

Version 1.0.6.0

  • Version 1.0.6.0

    • Added support for other Watson Assistant response types besides text, such as image, options, and suggestions (disambiguation list options). For more information, see Voice Gateway: Handling Watson Assistant response types and SMS Gateway: Handling Watson Assistant response types.

    • Added support for selecting a SMS Provider Type. Types supported now include Twilio and IntelePeer.

    • The WebSphere eXtreme Scale Liberty Deployment (XSLD) caching server is now deprecated and will be withdrawn from Docker Hub after the next release. If you need to use an SMS cache, you can use the Redis caching server, which was introduced with Version 1.0.4.0.

    • Support was removed for deploying in IBM Cloud Private. If you want to run Voice Gateway in a private cloud, deploy on IBM Cloud Pak for Data.

    • Added the ability to configure whether to disconnect calls on consecutive post response timeouts. Configure the behavior by setting the DISCONNECT_CALL_ON_NO_USER_INPUT_TURN_COUNT environment variable and vgwDisconnectCallOnNoUserInputTurnCount API state variable.

    • Added the ability to configure the value of the sourcetype field in reporting events by setting the REPORTING_CDR_EVENT_SOURCE_TYPE, REPORTING_CONVERSATION_EVENT_SOURCE_TYPE, REPORTING_CONVERSATION_REQUEST_EVENT_SOURCE_TYPE, REPORTING_TRANSCRIPTION_EVENT_INDEX environment variables.

    • The WATSON_STT_MODEL_VERSION environment variable was replaced by WATSON_STT_BASE_MODEL_VERSION and WATSON_STT_BROADBAND_MODEL_VERSION was replaced by the WATSON_STT_BROADBAND_BASE_MODEL_VERSION. For more information, see Configuration environment variables.

Version 1.0.5.0

  • Version 1.0.5.0

    • An update to the latest JREs to fix security issues.
    • Bug fixes, including a fix to enable Voice Gateway on IBM Kubernetes Service.

Version 1.0.4.0

Version 1.0.3.0

Version 1.0.2.1

  • Version 1.0.2.1
    • Some SBCs might use the same Call-ID in different calls. In such environments, a Call-ID header field cannot be used as a unique identifier. Starting in Version 1.0.2.1, by default, Voice Gateway uses UUID as a unique session identifier. In previous releases, if no CUSTOM_SIP_SESSION_HEADER was configured, the Call-ID header field from the incoming INVITE request was used as a unique identifier.

Version 1.0.2.0

  • Version 1.0.2.0

  • All images now use Red Hat UBI (Universal Base Image) as the container OS instead of Ubuntu. This image is needed to obtain Red Hat image certification.

  • Added support for initiating outbound calls from Voice Gateway by using a REST API. For more information about the new REST API that you can use for outbound dialing, see Making outbound calls by using REST API.

    • Added the Voice Agent tester, which runs automated voice tests against voice agents or any interactive voice response system. The voice agents can be running on IBM Voice Gateway or IBM Voice Agent with Watson. For more information, see Getting started with Voice Agent Tester.
  • Added support for sending and receiving Multimedia Messaging Service (MMS) messages in the context of a voice call by using the vgwActSendSMS action. For more information, see Adding the vgwActSendSMS action and configuring intents.

    • Added support for a monitoring metrics REST API. This support allows users to display metrics using tools like Grafana for administrators to access. For more information, see Monitoring.
  • The Voice Gateway now supports JSON logging, which enables the delineation of tenant ID and session ID in every log message. To enable this new feature, go to Configuring logging and tracing for Voice Gateway.

  • More metadata added to the reporting transcription events. For more information, see Reporting transcription events.

  • Changed granularity of Reporting Event time stamps from seconds to milliseconds. For more information, see Reporting event configuration.

  • Added multi-tenancy support for SIPREC sessions. For more information, see Programming agent assistants and SIPREC.

  • Added support for publishing turn events before the Conversation request is sent. This support allows users to capture reports on each conversation turn before the request is sent. For more information, see Reporting Watson Assistant turn events from Voice Gateway.

  • Added the vgwSTTProvider and vgwTTSProvider state variables to identify the providers that are used for the call. For more information, see Action tags and state variables in the API.

  • Added the SSL_KEY_STORE, SSL_KEY_PASSPHRASE, and SSL_KEY_FILE_TYPE environment variables for specifying the keystore for inbound TLS requests. The SSL_KEY_TRUST_STORE variable is no longer used for inbound TLS/SSL requests. For more information, see Security and proxy configuration.

    • IMPORTANT: Changes in Version 1.0.2.0 that can potentially break your environment

    • As a security enhancement, all images now run as a non-root user by default. This change might break your environment if you use volumes. Go to Setting host directory permissions for volumes for instructions on how to provide proper permissions to containers to access host directories.

    • Modified informational, warning, and error messages to remove references to "Watson Assistant" or "Watson Conversation". The messages now say "Conversation service" instead. For example, the following error message was changed:

      CWSGW0094E: The Watson Conversation service could not be initialized for the following reason
      
      

      The message was changed to the following wording:

      CWSGW0094E: The Conversation service could not be initialized for the following reason
      
      
    • Starting with Version 1.0.2, the audit LOG_LEVEL is no longer supported and was replaced by info. SIP Orchestrator audit messages now are printed as informational messages. Messages that were prefixed with an "A" in releases before Version 1.0.2 are prefixed with an "I" starting in Version 1.0.2. Message IDs for these messages remain the same. For example, the following informational message was changed:

      A CWSGW0011I: A call to the Voice Gateway is starting
      

      The message was changed to the following wording:

      I CWSGW0011I: A call to the Voice Gateway is starting
      

      The default for the LOG_LEVEL environment variable in the SIP Orchestrator is now info instead of audit. Setting the LOG_LEVEL environment variable to info or higher helps to ensure that the logs provide enough information to accurately debug potential issues.


* **SMS Gateway:**
* Added support for sending and receiving Multimedia Messaging Service (MMS) messages. For more information, see [Setting up MMS messaging with SMS Gateway](https://www.ibm.com/docs/en/voice-gateway?topic=gateway-setting-up-mms-messaging-sms).
* Added the ability to connect by proxy to Cloudant for Reporting by adding the configuration variables `CLOUDANT_PROXY_USERNAME`, `CLOUDANT_PROXY_PASSWORD` and `CLOUDANT_PROXY_URL`. For more information, see [Configuration environment variables for SMS Gateway](https://www.ibm.com/docs/en/voice-gateway?topic=reference-configuration-environment-variables-sms-gateway).
* Added the ability to mask caller ID information in the log messages by setting the `MASK_CALLER_ID_FROM_MESSAGES` variable to `true`. For more information, see [Configuration environment variables for SMS Gateway](https://www.ibm.com/docs/en/voice-gateway?topic=reference-configuration-environment-variables-sms-gateway)
* The SOE can now choose whether to handle session expiration by setting the configuration variables `NOTIFY_ON_SESSION_TIMEOUT` or `notifyOnSessionTimeout` to `false`. For more information, see [Configuration environment variables for SMS Gateway](https://www.ibm.com/docs/en/voice-gateway?topic=reference-configuration-environment-variables-sms-gateway)
* When you send an action to change a Watson conversation or skill, SMS Gateway now concatenates responses from multiple skills before the SMS message is sent. For more information, see [Dynamically configuring the Watson Assistant service or service orchestration engine for SMS Gateway](https://www.ibm.com/docs/en/voice-gateway?topic=gateway-dynamically-configuring-watson-assistant-service-orchestration-engine).

* **IMPORTANT: Changes in Version 1.0.2.0 that can potentially break your environment**
  * As a security enhancement, all images now run as a non-root user by default. This change might break your environment if you use volumes. Go to [Setting host directory permissions for volumes](https://www.ibm.com/docs/en/voice-gateway?topic=gateway-securing-voice) for instructions on how to provide proper permissions to containers to access host directories.

Version 1.0.1.0

  • Version 1.0.1.0
  • Improved service error handling, see Call failure handling in Voice Gateway. Consequently, this enhancement adds new configuration items CONVERSATION_FAILED_REPLY_AUDIO_URL and vgwConversationFailedAudioURL.
  • Added the ability to opt out of logging for Watson Assistant by using the httpHeaders parameter to modify headers.
  • Added the ability to obscure caller ID in the CDR and in transcription events by using maskCallerID.
  • Added the TENANT_TYPE environment variable to enable changing the speech recognition behavior in self-service sessions.
  • Added ability to configure multiple custom SIP headers.
  • Added support for the Watson Assistant v2 API. Limitations include:
    • Failover is not supported in v2.
    • Switching between workspaces in the middle of a call is only supported when both workspaces are using the same API version. Both workspaces must be using either v1 or v2.
  • Added environment variables WATSON_STT_LANGUAGE_CUSTOMIZATION_ID and WATSON_STT_BROADBAND_LANGUAGE_CUSTOMIZATION_ID to support the language_customization_id parameter on requests to the IBM® Speech to Text service. Consequently, this change deprecates WATSON_STT_MODEL_CUSTOMIZATION_ID and WATSON_STT_BROADBAND_MODEL_CUSTOMIZATION_ID.

Version 1.0.0.8

  • Version 1.0.0.8e

  • Fixes an issue where IAM tokens were not expiring from the token cache correctly.

  • Version 1.0.0.8d

  • Updated operating system packages in the SIP Orchestrator and Media Relay Docker images to resolve security vulnerabilities.

  • Version 1.0.0.8c

  • Added the ability to switch to a backup server when a request to the SOE or Watson Assistant is rejected with a 5xx HTTP error response. Voice Gateway will switch to a backup server if a network issue is detected or a 5xx error response arrives from the SOE or Watson Assistant. A failover is supported in the middle of a call if the main server and backup have identical workspaces.

  • Version 1.0.0.8b

    • Fixes an issue for BARGE_IN_RESUME, where barge in after the first prompt behaves unresponsive or slow.
    • Fixes a timing issue for vgwActSetSTTConfig with a custom language model made recognition stop, thus causing a vgwPostResponseTimeout.
    • Fixes an issue with parsing URIs that contained brackets within the metadata of a SIPREC session.
  • Version 1.0.0.8a

    • Fixes an issue where warning messages related to token expiration in the Watson Text-To-Speech connection were not being printed by the Media Relay.
    • Fixes an issue where speech recognition hung when used with the following action sequence vgwActResumeSTT, vgwActForceNoInputTurn, vgwActSetSTTConfig and vgwActPlayText, thus causing vgwPostResponseTimeouts.
  • Version 1.0.0.8

Version 1.0.0.7

  • Version 1.0.0.7a

    • Added the ability for agent assistants to support publishing transcriptions to an SOE. See Programming agent assistants and SIPREC.
    • Improved the ability to sort total barge-ins and max conversation latency for CDR reporting events by adding numberOfBargeins, maxConvTransaction, and maxTTSTransaction. See Call detail record event format.
    • Added the ability to control connection keep-alive for conversation connections.
    • Fixed the following issues:
    • If a call failed due to receiving invalid packets on the RTP channel, recordings would grow over time, even after the call finished.
    • In Version 1.0.0.7, if echo suppression is enabled and echo was detected, subsequent speech input from the caller would not be recognized.
    • If an action to play text (vgwActPlayText) is used followed by an action update, the Speech To Text configuration (vgwActSetSTTConfig), or unpause Speech To Text (vgwActUnpauseSTT), without pausing Speech To Text first (vgwActPauseSTT), it caused the speech recognition to not process the caller's speech.
    • Added the following features, which were previously in beta:
    • Added the Voice Gateway Text to Speech adapter. You can configure your Voice Gateway deployments on IBM Cloud or Docker to integrate with the Google Text to Speech API. See Integrating third-party speech and text services.
  • SMS Gateway:

    • Added the ability to publish transcription and usage reporting events to the IBM Cloudant service or a server that accepts events in Splunk HTTP Event Collector (HEC) format. See Reporting events in SMS Gateway.
    • Provided reporting event backup to prevent data loss if the configured reporting server isn't available by saving reporting event data to a backup file for later upload. See Reporting event system backup.

Version 1.0.0.7 * Added the ability to configure Voice Gateway to integrate with third-party speech and text services by using Media Resource Control Protocol Version 2 (MRCPv2) connections. See Configuring services with MRCP. * Included the ability to customize DTMF collection by adding new parameters to the action tag, vgwActCollectDTMF, and the new state variable vgwDTMFCollectionSucceeded, which indicates the outcome of DTMF collection. Now, you can define the response timeout specific for DTMF collection with dtmfInterDigitTimeoutCount, create a range of possible inputs by using dtmfMinCount and dtmfMaxCount, and disable speech recognition during DTMF sessions with dtmfIgnoreSpeech. Also, even when DTMF collection does not meet the specified settings, all of DTMF digits that are collected are passed to the SOE or Watson Assistant. See Collecting dual-tone multi-frequency (DTMF) responses. * Added User-to-User Information (UUI) data support in a BYE request. See Sending User-to-User Information (UUI) data in call transfers. * Added token authentication for event reporting to IBM Cloudant. By using the new environment variables, REPORTING_CDR_CLOUDANT_APIKEY, REPORTING_TRANSCRIPTION_CLOUDANT_APIKEY, and REPORTING_CDR_CLOUDANT_APIKEY or configuring the url and apikey for your convCloudant, transcriptionCloudant, and cdrCloudant JSON properties, you can use an API key instead of a user name and password combination. See Using an API key for authentication for Call Detail Record (CDR) reporting events, transcription reporting events, and conversation turn events. * Changed the behavior for IBM® Speech to Text usage to use it only when it plays prompts to the caller. As a result, this change fixes the behavior for the following action commands. * vgwActDisableSpeechBargeIn: Before this change, even though playback was not interrupted, speech was still processed, and as a result this command caused the voice bot to barge-in on its own previous prompt. * vgwActDisableDTMFBargeIn: Before this change, even though playback was not interrupted, DTMF tones were still processed, and as a result this command caused the voice bot to barge-in on its own previous prompt.

**Voice Gateway on IBM Cloud Private**: Released the IBM Voice Gateway for IBM Cloud Private 3.1. In this release, support was added for JSON-based configuration and removed single-tenant support. You can use the JSON configuration to deploy a single-tenant or multi-tenant Voice Gateway. IBM Voice Gateway (Production) is available to download from Passport Advantage. See [Deploying to IBM Cloud Private](https://www.ibm.com/docs/en/voice-gateway?topic=SS4U29/deployicp.htm) to get started.

Version 1.0.0.6

  • Version 1.0.0.6c

    • Fixed an issue where if the confidenceScoreThreshold was set from an action in Watson Assistant, it was not taking effect.
    • Changes to the IBM® Voice Gateway API state variables:
    • The vgwSMSChannel state variable was removed and replaced by the vgwReceivedOnChannel state variable. See Variables set by Voice Gateway.
    • The vgwPreResponseTimeoutCount state variable is deprecated.
    • Added the USE_OPTIMAL_CONFIGURATION environment variable and useOptimalConfiguration JSON configuration property. By using these configuration options, you can automatically configure your Voice Gateway deployment to use the optimal default settings and features for a release. You can set which release to use for the optimal configuration by configuring the OPTIMAL_CONFIGURATION_VERSION environment variable or optimalConfigurationVersion JSON configuration property. See Using optimal configuration settings to enable optimal configuration and Optimal configuration settings to see the optimal configuration settings.
    • Documentation was corrected to include only IBM Cloudant options for reporting event forwarding.
    • Beta: Added the Voice Gateway Text to Speech adapter. You can configure your Voice Gateway deployments on IBM Cloud or Docker to integrate with the Google Text to Speech API. See Beta features for Voice Gateway.
  • Version 1.0.0.6b

    • Fixed an issue where reporting events that are published to IBM® Cloudant® for IBM Cloud and IBM® Cloudant® for IBM Cloud Data Layer Local Edition were not batched correctly.
  • Version 1.0.0.6a

    • Added the ability to notify the Watson Assistant service when media capabilities change in the middle of a call. Set either the NOTIFY_CONVERSATION_ON_MEDIA_CHANGE environment variable in single-tenant environments or the notifyConversationOnMediaChange JSON key in multi-tenant environments. For more information, see Configuration environment variables for Voice Gateway and Advanced JSON configuration properties.
    • Added the ability to extract a global session identifier from the SIP INVITE request during SIPREC sessions if the configured field can't be found in the SIPREC metadata. Voice Gateway extracts a global session identifier from the INVITE request by using the header that is defined in the new configuration properties of CUSTOM_SIP_SESSION_HEADER or customSIPSessionHeader. See SIP Session configuration.
    • Added the ability to extract a global session identifier from the SIPREC metadata during SIPREC sessions by using the metadata field that is defined in the new configuration properties of CUSTOM_SIPREC_SESSION_FIELD or customSIPRECSessionField. See SIP Session configuration.
    • Added the ability to configure connections to Watson services by using an API key from your Watson Service credentials with the new WATSON_CONVERSATION_APIKEY, WATSON_STT_APIKEY, and WATSON_TTS_APIKEY environment variables and apikey JSON configuration property. See Configuration environment variables for Voice Gateway and Advanced JSON configuration properties.
    • Added the ability to create a list of codecs that the Media Relay supports during a session with the environment variable, RTP_CODECS. See Media Relay environment variables.
    • Fixed an issue where SIPREC reinvite was not modifying the state of the RTP session from inactive to sendonly and vice versa.
    • SMS Gateway:
    • Added the new SMS_PROVIDER_RETRY_INTERVAL environment variable and smsProvideRetryInterval JSON configuration property that you can use to define the interval between retries with failure between SMS Gateway and an SMS provider.
    • Added the new WATSON_CONVERSATION_RETRY_INTERVAL environment variable and convRetryInterval JSON configuration property that you can use to define the interval between retries with failure between SMS Gateway and Watson Assistant.

    See Configuration environment variables for SMS Gateway and Advanced JSON configuration properties for SMS Gateway.

    • Documentation: Multi-tenant configuration is now referred to as Advanced JSON configuration.
  • Version 1.0.0.6

    • Added support for basic authentication in the Speech to Text adapter.
    • Added support for a-law pulse-code modulation standard (PCMA) at 64 kbps.
    • Added support for disaster recovery by adding the ability for configuring multiple Watson services in multi-tenant configurations and dynamic configuration. See Configuring multiple service providers and Dynamically configuring multiple Watson Assistant services.
    • Added the ability to publish call transcription events and Watson Assistant turn events to IBM Cloudant. You can now store events in both IBM Cloudant Local and IBM Cloudant by setting the new configuration variables. See Reporting transcription events from Voice Gateway and Reporting Watson Assistant turn events. These abilities allow for continued reporting capabilities after the service deprecation of Product Insights. See Service Deprecation: IBM Cloud Product Insights.
    • Added the ability to configure a list of error codes that Voice Gateway handles as successful responses by using the configuration attribute, ACCEPT_TRANSFER_REJECT_CODES, or by configuring the acceptTransferRejectCodes attribute of the vgwActTransfer action tag. See Configuring Voice Gateway to process error codes as successful responses.
    • Added a setting to support IBM Cloud Functions (OpenWhisk) in Watson Assistant with the new environment variable, SEND_ON_FIRST_TURN_TO_CONVERSATION, and new JSON configuration property, sendOnFirstTurn. These allow configured environment variables to be sent on the first turn of the conversation.
    • Fixed an issue for multi-tenant deployments where the SIP Orchestrator connection to the Watson Assistant service fails when token authentication was enabled, but tokenServiceUrl was not defined. If you don't define the tokenServiceUrl attribute in the conversation object, Voice Gateway automatically uses the url value for the Watson Assistant API. See Enabling user name and password-based token authentication for Watson services.
    • Fixed an issue where setting the time zone in the Media Relay container was not affecting the time stamp in the logs.
    • Fixed an issue where the Text to Speech cache was not correctly refreshing the items, causing them to be erased.
    • SMS Gateway: Added support for integrating SMS Gateway with Voice Gateway during ongoing voice calls by configuring the Voice Gateway action tag, vgwActSendSMS, and Voice Gateway deployment. This support enables Voice Gateway to interact with a caller by sending and receiving SMS messages, without interrupting conversation. See Integrating SMS Gateway with Voice Gateway and Using the REST API to control SMS sessions.

Version 1.0.0.5

  • Version 1.0.0.5d:

    • Added the ability to publish call detail record (CDR) events to a Cloudant noSQL database. You can now store events in both IBM Cloudant Local and Cloudant DBaaS instances by setting the new configuration variables: REPORTING_CDR_CLOUDANT_URL, REPORTING_CDR_CLOUDANT_USERNAME, REPORTING_CDR_CLOUDANT_PASSWORD, REPORTING_CDR_CLOUDANT_ACCOUNT, REPORTING_CDR_CLOUDANT_DB_NAME, and REPORTING_CDR_CLOUDANT_EVENT_INDEX. See Reporting call detail record events from Voice Gateway.
    • Fixed an issue where a response timer might fire in the middle of a conversation turn, causing unintended barge-in. A change was made so the response timer is canceled when a new conversation turn starts.
    • Fixed an issue to prevent calls from failing with authentication error when token authentication is used. When you configure Voice Gateway to use the Watson Assistant API, you must explicitly configure the token authentication service URL, WATSON_CONVERSATION_TOKEN_SERVICE_URL. A change was made so that the token authentication service URL is set based on the Watson Assistant service API URL.
    • Fixed a problem where empty results from Speech to Text were sent to the Watson Assistant instead of being discarded.
  • Version 1.0.0.5c: Fixed an issue with the RTP protocol, specifically the sequence number, that caused calls that took more than 20 minutes to sound garbled.

  • Version 1.0.0.5b:

    • Fixed an issue where requests to a service orchestration engine (SOE) are sent without an Authorization header field, which causes the request to fail with a 401 error. This issue is a regression that was introduced in Version 1.0.0.5a. With this fix, when the SOE is configured with credentials, an Authorization header field is added to all requests that Voice Gateway sends to the SOE.
    • Fixed an issue where a call might fail if multiple calls to the same tenant try to refresh an expired authentication token.
  • Version 1.0.0.5a:

    • Added the ability to reduce the response time for Watson services by Enabling user name and password-based token authentication for Watson services. This helps reduce delays during a conversation.
    • Added a method to gracefully shut down the server when installing updates or testing. This prevents active calls from failing when Voice Gateway is deployed as a Voice Gateway pod in Kubernetes. See Updating the voice gateway in high availability environments.
    • Added the ability to transfer a call by using a SIP BYE request, instead of using a SIP REFER request. You can enable Transferring upon hangup by configuring the transferMethod attribute in vgwActTransfer to use HANGUP, instead of REFER. The HANGUP setting causes Voice Gateway to refer calls using a SIP BYE request instead of the using the default REFER setting, which uses a SIP REFER request. You can set the new state variable, vgwTransferTargetHeader, or new vgwActTransfer attribute, transfertargetHeader, to specify in which SIP BYE request header to set the transfer target.
    • SMS Gateway: Added the ability to configure response timeout in Watson Assistant for SMS Gateway by setting the smsConversationResponseTimeout state variable.
  • Added the following features, which were previously in beta:

    • Voice Gateway Speech to Text adapter: The Voice Gateway Speech to Text Adapter enables you to use the Google Cloud Speech API in place of the IBM® Speech to Text service, which enables support for more languages. The Speech to Text Adapter is deployed as part of your Voice Gateway environment.
    • SMS Gateway: With SMS Gateway, you can set up a cognitive SMS agent that customers can interact with over SMS messages. SMS Gateway is deployed as an independent microservice from the Voice Gateway microservices.
  • Changed streaming from the Speech to Text service:

    • Added support for caching audio when reconnecting to the Speech to Text service.
    • Added the ability to configure the Speech to Text streaming frame size by setting the WATSON_STT_STREAMING_FRAME_SIZE environment variable.
    • Fixed a bug where data was written to an old socket in updates to the Speech to Text service, causing unexpected results and transcriptions.
  • Added support for the RTP Control Protocol (RTCP), which you can enable to report RTP network warnings and statistics for monitoring audio streaming. Data delivery statistics are reported on a rtpNetworkSummary object in call detail record events.

  • Added warning reporting for warnings that happen during a Watson Assistant turn. Voice Gateway sends network warnings for individual Watson Assistant turns in a vgwNetworkWarnings state variable. Warnings for the entire call are aggregated and reported in a warnings section in call detail record events.

  • Added the ability to specify API actions on the context property in the Watson Assistant dialog, which is required by some Watson Assistant service features. See Defining actions in the dialog context

  • Added the ability to resume playing back audio after barge-in if the confidence score of the final utterance is under the confidence score threshold. Resuming audio playback for low-confidence utterances reduces the impact of unintended barge-ins and improves the call flow.

  • Added the ability to configure the socket connection timeout for the Speech to Text service on the WATSON_STT_CONNECTION_TIMEOUT environment variable and for the Text to Speech service on the WATSON_TTS_CONNECTION_TIMEOUT environment variable.

  • Added the ability to configure the request timeout for the Speech to Text service on the WATSON_STT_REQUEST_TIMEOUT environment variable and for the Text to Speech service on the WATSON_TTS_REQUEST_TIMEOUT environment variable.

  • Added the customSIPInviteHeader field to transcription events to report the value of the header field that is set as the custom SIP INVITE header.

  • Added the initTime key to call detail record events to indicate when the initial SIP INVITE request was received to initiate the call.

  • Added the tzdata package to all container images so that you can set the time zone that appears in the logs.

  • Updated the default Watson Assistant API version to 2018-02-16.

  • Fixed an issue where connections to the Speech to Text and Text to Speech services didn't time out.

  • Fixed an issue where reconnecting to the Text to Speech service didn't reset an internal connection counter, which caused calls to fail upon subsequent reconnection attempts.

Version 1.0.0.4

  • Version 1.0.0.4d:
    • Added speech adapter samples to help you get started with creating a custom speech adapter, which enables you to use any third-party speech-to-text and text-to-speech service.
    • Updated the operating system packages in the SIP Orchestrator and Media Relay Docker images to resolve security vulnerabilities.
  • Version 1.0.0.4c:
    • Added a more robust capability to disable speech barge-in by completely disabling speech-to-text processing during audio playback. You can disable it by setting the DISABLE_STT_DURING_PLAYBACK environment variable or the disableSTTDuringPlayback property in the tenant configuration, or dynamically disable and enable it during a call with the vgwActDisableSTTDuringPlayback and vgwActEnableSTTDuringPlayback action tags.
    • Added echo suppression, which suppresses erroneous transcriptions that occur as a result of echoes from Text to Speech playback.
    • Added the ability to specify a particular language model version for the Speech To Text service, either with the WATSON_STT_MODEL_VERSION or WATSON_STT_BROADBAND_MODEL_VERSION environment variables or with the version parameter in multi-tenant and dynamic configuration.
    • Added the ability to specify a version of the Watson Assistant API on the WATSON_CONVERSATION_API_VERSION environment variable or on the apiVersion parameter for multi-tenant and dynamic configuration.
    • Added two keys to call detail record (CDR) reporting events: echoDetected, which indicates whether an echo was detected, and customSIPInviteHeader, which reports the value of the header field that is set as the custom SIP INVITE header.
    • Added API actions and state variables for sending User-to-User Information (UUI) data in Contact and Refer-To header fields in SIP REFER messages.
    • Added a final utterance timeout, which triggers Voice Gateway to notify Watson Assistant if no final utterance was received from the Speech to Text service, even if hypotheses continue to be generated. The final utterance timeout can help detect and prevent denial-of-service attacks from calls where the caller continuously speaks for long periods of time. You can configure the final utterance timeout on the FINAL_UTTERANCE_TIMEOUT environment variable, the finalUtteranceTimeout multi-tenant configuration property, or with the vgwFinalUtteranceTimeout state variable.
    • Updated the default Watson Assistant API version to 2017-05-26.
    • Fixed the customization_weight parameter, which was incorrectly used as a query parameter to the Speech to Text API. Use of this parameter in earlier versions had no effect on the results from the Speech to Text service.
  • Version 1.0.0.4b: Fixed an issue introduced in Version 1.0.0.4 where Voice Gateway fails if the Text to Speech jitter buffer delay is set. The issue affects both the WATSON_TTS_JITTER_BUFFER_DELAY environment variable and the jitterBufferDelay properties in multi-tenant configuration and the vgwActSetTTSConfig action. This release resolves the issue and should be used instead of Version 1.0.0.4.
  • Version 1.0.0.4a: No changes to the SIP Orchestrator and Media Relay images. See Beta for information about the new Speech to Text Adapter (beta) image.
  • Added the ability to connect to the IBM Cloud Product Insights service, so you can view product information and usage metrics from all of your registered Voice Gateway deployments from a single place.
  • Added support for broadband audio, which can improve the quality of the audio played to the caller and speech-to-text transcriptions.
  • Added call recording for agent assistants, so you can record audio from the caller and call center agent.
  • Added support for stereo recording, which records audio from the caller and audio from the Text to Speech service or call center agent into separate channels, so you can analyze each audio source independently.
  • Added the failureOccurred key to call detail record events to indicate whether any error, warning, or other failure occurred during the call.
  • Changed the configuration for service orchestration engines so that you don't need to specify a placeholder workspace ID.
  • Renamed the vgwActCollectDtmf action tag to vgwActCollectDTMF for consistency with other actions. The vgwActCollectDtmf tag can continue to be used but is deprecated.

Version 1.0.0.3

  • Version 1.0.0.3d: Includes the following additions and fixes.
    • Added the tcpdump packet analyzer to the SIP Orchestrator and Media Relay images to help debug networking issues.
    • Added the ability to reconnect to the Speech To Text service when the service encounters an unexpected error.
    • Added the ability to reconnect to the Text To Speech service on socket connectivity errors.
    • Fixed security issues from the Ubuntu packages in the SIP Orchestrator and Media Relay images.
    • Fixed an issue in the SIP Orchestrator where an error message was logged even when the connection to the Media Relay closed correctly.
    • Fixed an issue in the Media Relay where sending a vgwActSetSTTConfig action without a change in the config parameter causes it to reconnect to the Speech To Text service.
    • Fixed an issue in the Media Relay where in rare cases hung Text To Speech requests were not cleared when streaming audio from the cache.
  • Version 1.0.0.3c: Added support for setting acoustic_customization_id as a config parameter when you dynamically configure the Speech to Text service from within Watson Assistant.
  • Version 1.0.0.3b: Fixed an issue with the retry logic on the initial connection to the Speech to Text service.
  • Version 1.0.0.3a: Includes the following addition and fixes.
    • Added support for processing SIP UPDATE requests for established calls. After a call is established, you can send UPDATE requests to change the call session parameters. Voice Gateway can't process UPDATE requests for calls that are not established.
    • Fixed an issue where Voice Gateway rejected session descriptions that included RTP/AVPF as the protocol for the media.
    • Fixed an issue where the call detail record (CDR) was not distinguishing cached Text to Speech responses from new transactions.
    • Fixed an issue where the connection to the Speech to Text service timed out if Voice Gateway didn't receive media from the caller within 30 seconds.
  • Added the following enhancements to the Voice Gateway API:
    • Added the vgwActEnableSpeechBargeIn and vgwActDisableSpeechBargeIn actions so that you can set at certain points during the call whether callers can interrupt audio playback by speaking.
    • Added the vgwActEnableDTMFBargeIn and vgwActDisableDTMFBargeIn actions so that you can set whether callers can interrupt audio playback by pressing a key.
    • Added the vgwActPauseDTMF and vgwActUnPauseDTMF actions to enable and disable dual-tone multi-frequency (DTMF) input.
    • Changed the behavior of the vgwActPauseSTT and vgwActUnPauseSTT actions so that the states that they set persist during the call unless otherwise changed.
    • Added the vgwConversationResponseTimeout state variable so that during the call you can change how long Voice Gateway waits for a response from Watson Assistant. For example, you can increase the timeout when you anticipate a long Watson Assistant transaction, and then reduce it to conserve Voice Gateway resources.
    • Deprecated the vgwPauseSTT, vgwAllowBargeIn, and vgwAllowDTMF state variables, which were replaced by the related new actions.
  • Added the ability to configure whether callers are placed on hold while a call is transferred by setting either the PUT_CALLER_ON_HOLD_ON_TRANSFER environment variable in single-tenant environments or the putCallerOnHoldOnTransfer JSON key in multi-tenant JSON configurations.
  • Added the ability to disable sending a 180 Ringing provisional response while Voice Gateway processes an incoming call. To configure this behavior, set the SEND_PROVISIONAL_RESPONSE environment variable in single-tenant environments or the sendProvisionalResponse JSON key in multi-tenant JSON configurations.
  • Added the WATSON_CONVERSATION_CONNECT_TIMEOUT environment variable so that you can configure the amount of time that Voice Gateway waits to establish a socket connection with Watson Assistant.
  • Added the numberOfTTSTransactions and numberOfCachedTTSEntries keys to call detail record (CDR) reporting events to enable more analytics for Text to Speech transactions.
  • Added support in the SIP Orchestrator container for connecting to forward proxy servers that require authentication.
  • Enhanced the behavior of whitelisting based on the SIP To URI so that if the whitelisting string isn't found in the To URI, Voice Gateway next searches for the value in the Request-URI field.
  • Added tenant phone numbers to all logs so that you can filter log messages by tenant.
  • Changed Media Relay logging so that if the CLUSTER_WORKERS environment variable is enabled, the Media Relay no longer writes to separate directories for each worker within the /vgw-media-relay/log/ directory.

Version 1.0.0.2

  • Added support for configuring a multi-tenant Voice Gateway environment, so that you can host multiple phone numbers from a single Voice Gateway instance.
  • Added the following enhancements to the Voice Gateway API:
    • Added action tags, which you can use to trigger a single action or a sequence of actions in the Voice Gateway from Watson Assistant. With the addition of action tags, state variables that were previously used to accomplish actions are deprecated.
    • Added the vgwActCollectDtmf action, which you can set to collect multiple dual-tone multi-frequency signaling (DTMF) digits in a single Watson Assistant turn.
    • Added the vgwErrAudioURL state variable, which you can define to play an audio file if the Text to Speech service can't be contacted when the Voice Gateway attempts to play back a response.
    • Added the ability to define a custom header for SIP BYE messages from Watson Assistant to Voice Gateway on the vgwByeCustomHeader and vgwByeCustomHeaderVal state variables.
    • Added the vgwCallTransferred and vgwTransferReason state variables, which are sent from Voice Gateway to notify Watson Assistant that the call was transferred and the reason for the transfer
    • Added the vgwSTTResponse state variable, which Voice Gateway passes to send the final response, including the transcript, confidence score, and other fields, from the Speech to Text service to Watson Assistant. This state variable replaces the vgwTextAlternatives state variable, which is now deprecated.
  • Added integration with Watson Virtual Agent, which you can use instead of Watson Assistant when creating self-service agents to provide automated service to customers. You can dynamically configure and switch between chatbots by defining the settings on the vgwActSetWVAConfig action tag.
  • Added the ability to publish transcription reporting events to a REST server so that you can analyze utterances that Voice Gateway detects. With the addition of event-based transcription, MQTT message-based transcription is deprecated.
  • Added the ability to configure whether to disconnect calls when transfers fail or allow the Watson Assistant dialog to decide on next steps, such as routing them to a new destination, by setting the DISCONNECT_CALL_ON_TRANSFER_FAILURE environment variable and vgwCallTransferFailed and vgwDisconnectCallOnTransferFailure API state variables.
  • Changed the behavior of recording so that the caller isn't recorded while Speech to Text processing is paused by setting the vgwActPauseSTT action tag or vgwPauseSTT state variable.
  • Changed the JSON properties for dynamically configuring the Watson Assistant service to better reflect the Watson Assistant API.
    • Deprecated watsonConversationURL in favor of url
    • Deprecated watsonConvWorkspaceID in favor of workspaceID
    • Deprecated watsonConvUserName in favor of username
    • Deprecated watsonConvPassword in favor of password
  • Changed the default value of the following environment variables:
    • WATSON_STT_MAXALTERNATIVES and WATSON_STT_PROFANITY_FILTER are no longer explicitly set on the Media Relay and instead use the values from the Watson Speech To Text service by default
    • WATSON_STT_SMART_FORMATTING is now enabled by default
    • Changed WATSON_STT_OPTOUT and WATSON_TTS_OPTOUT to reflect the default values for each respective service

Version 1.0.0.1

  • Version 1.0.0.1d: Fixed an issue where audio skipped when the Watson Text To Speech stream could not keep up with the rate of audio that was streamed to the caller
  • Version 1.0.0.1c: Changed call detail record (CDR) reporting events to support reporting multiple conversations in a call under a new conversations JSON object, which replaces the conversationIDs key
  • Version 1.0.0.1b: Fixed an issue with the post-response timer on empty text
  • Version 1.0.0.1a: Added the ability to more granularly enable a configured proxy by setting the WATSON_STT_ENABLE_PROXY, WATSON_TTS_ENABLE_PROXY, and MUSIC_ON_HOLD_ENABLE_PROXY environment variables
  • Added response caching for the Text to Speech service to improve playback response time for self-service agents
  • Added the TRUSTED_IP_LIST SIP Orchestrator configuration environment variable, which you can use to whitelist certain IP addresses
  • Added the vgwConversationConfigSettings state variable to the API, which enables dynamic configuration of the Watson Assistant service so that you can switch to a different Watson Assistant workspace mid-call
  • Added the vgwIsDTMF state variable to the API to indicate whether the signal to the Watson Assistant service is DTMF
  • Added the RTP_PACKET_LOSS_REPORTING_THRESHOLD Media Relay configuration environment variable to define how many lost packets to detect before a warning message is logged
  • Minor bug fixes and improvements:
    • Voice Gateway removes third-party context variables between Watson Assistant turns if they were previously removed by the Watson Assistant dialog
    • The SIP Orchestrator and Media Relay images now include the traceroute and ping utilities
    • Music on hold (MOH) files that are played to the caller are now included in recorded calls
    • Fixed an issue where DTMF tones were detected twice
    • Fixed an issue where a worker process was not exiting correctly
    • Fixed an issue where the WATSON_TTS_OPTOUT environment variable didn't default to true