copyright: years: 2017, 2023 lastupdated: "2023-01-08"
Advanced JSON configuration properties
You can use a JSON configuration file to define certain properties for individual tenants, rather than configuring environment variables that apply across the entire deployment.
Important: The multi-tenant configuration properties are related to Docker environment variables in the Voice Gateway configuration. If a value isn't defined in the JSON configuration file, some values of the related Docker environment variables are used as noted in the following sections.
Configuring multitenancy is supported in Version 1.0.0.2 and later.
- Example JSON configuration file
- Required tenant properties
- Optional tenant properties
- Properties for the
conversation
object - Properties for the
wva
object - Properties for the
stt
object - Properties for the
tts
object - Properties for the
reporting
object - Properties for the
sipAuth
object - Properties for the
smsPipe
object - Properties for the
outboundCalls
object - Properties of the
mediaEncryption
object
Example JSON configuration file
For example, the following JSON file configures a tenant at the number 234-555-6789 as a self-service agent that publishes reporting events, plus another tenant at 234-555-7890 on the myhost.com
host whose details are not shown.
To deploy this configuration, you must set the file path to your JSON configuration file as the MULTI_TENANT_CONFIG_FILE
environment variable in your Voice Gateway deployment configuration file.
{
"tenants": [{
"tenantURI": "2345556789",
"description": "Voice Gateway Demo US",
"whitelistFromUri": "8765554321",
"putCallerOnHoldOnTransfer": "false",
"conversation": {
"url": "https://api.us-south.assistant.watson.cloud.ibm.com/instances/{instance_id}",
"workspaceID": "a23de67h-e527-40d5-a867-5c0ce9e72d0d",
"apikey": "{apikey}",
"tokenServiceProviderUrl": "https://iam.cloud.ibm.com/identity/token"
},
"stt": {
"credentials": {
"url": "https://api.us-south.speech-to-text.watson.cloud.ibm.com/instances/{instance_id}",
"apikey": "{apikey}",
"tokenServiceProviderUrl": "https://iam.cloud.ibm.com/identity/token"
},
"config": {
"model": "en-US_NarrowbandModel",
"profanity_filter": true,
"smart_formatting": true
},
"broadbandConfig": {
"model": "en-US_BroadbandModel",
"profanity_filter": true,
"smart_formatting": true
},
"bandPreference": "broadband",
"confidenceScoreThreshold": 0.2,
"echoSuppression": true,
"bargeInResume": true,
"trackLatency": false
},
"tts": {
"cacheTimeToLive": 336,
"credentials": {
"url": "https://api.us-south.text-to-speech.watson.cloud.ibm.com/instances/{instance_id}",
"apikey": "{apikey}",
"tokenServiceProviderUrl": "https://iam.cloud.ibm.com/identity/token"
},
"config": {
"voice": "en-US_MichaelVoice"
}
},
"reporting": {
"url": "http://10.10.10.10:8080",
"username": "john.smith",
"password": "HcmzFp1kec1P",
"cdrEventInd": "cdr",
"convEventInd": "conv",
"transcriptionEventInd": "transcription"
},
"smsPipe": {
"url": "http://host:port/sms.gateway/smsPipe",
"username": "tR3qNZ12-u53qmz93",
"password": "Qz34x05e",
"tenantPhoneNumber": "+18765554321"
},
"enableOutboundCalls": true,
"outboundCalls": {
"statusWebhook": "http://need.example.webhook.url.com/",
"tenantURI": "same as tenant URI above?",
"connectTimeout": 3,
"readTimeout": 5,
"maxRetyNo": 2
},
"restAPI": {
"username": "exampleusername",
"password": "examplepassword"
},
"mediaEncryption": {
"encryptionType": "srtp",
"forceMediaEncryption": true
}
},
{
"tenantURI": "2345557890@example.com"
}
]
}
- Add your tenant configuration to the Voice Gateway configuration, and deploy your environment. For more information, see Deploying a multi-tenant JSON configuration.
Important: The multi-tenant configuration properties are related to Docker environment variables in the Voice Gateway configuration. If a value isn't defined in the configuration JSON file, some values of the related Docker environment variables are used as noted in the following sections.
Required tenant properties
JSON property | Description | Related environment variable |
---|---|---|
tenantURI |
A unique tenant identifier, such as a phone number. Must match the SIP To URI in the SIP INVITE request that starts the call. Each tenant must include a tenantURI . |
Optional tenant properties
You can define the following configuration properties for each tenant individually. The properties are optional, but if you do want to define them, they must be defined as JSON properties. The values of the related Docker environment variables are not used.
JSON property | Description | Related environment variable |
---|---|---|
acceptTransferRejectCodes |
A comma-separated list of the error response codes that are treated as successful responses when processing a NOTIFY request during a call transfer. By default all codes in [200-299] are successful responses. If a response code in a NOTIFY request isn't in this range, the transfer process fails. You can extend the list of successful responses by adding this attribute. Version 1.0.0.6 and later. | ACCEPT_TRANSFER_REJECT_CODES |
conversationFailedReplyMessage |
Message streamed to the caller when a call is being transferred / disconnected due to a failure of one of the Watson services. Change the default message if no default target is configured. | CONVERSATION_FAILED_REPLY_MESSAGE |
conversationFailedReplyAudioURL |
A URL to an audio file that is played if the Text to Speech service can't be contacted when the Voice Gateway attempts to play back the conversationFailedReplyMessage message. |
CONVERSATION_FAILED_REPLY_AUDIO_URL |
customSIPInviteHeader |
A SIP header field to extract from incoming SIP INVITE requests. When set, the value of the specified SIP header is passed to Watson Assistant in the vgwSIPCustomInviteHeader state variable. |
CUSTOM_SIP_INVITE_HEADER |
customSIPInviteHeaders |
A comma separated list of SIP header fields to extract from incoming SIP INVITE requests. When set, the values of the specified SIP headers are passed to Watson Assistant in the vgwSIPCustomInviteHeaders state variable. |
CUSTOM_SIP_INVITE_HEADERS |
customSIPRECSessionField |
A SIPREC metadata field whose value is used as the global session ID. The value of the specified SIPREC metadata field is used in all audit messages and is passed to Watson Assistant in the vgwSessionID state variable. If
the configured field can't be found in the metadata, then the customSIPSessionHeader JSON property is used to determine the global session identifier. Possible values for the custom SIPREC session field include gcid ,
callid , and session_id . Version 1.0.0.6a and later. |
CUSTOM_SIPREC_SESSION_FIELD |
customSIPSessionHeader | A custom session ID header pulled from the SIP INVITE request. The value represents the global session ID that is used in all Voice Gateway audit logs related to the session. | CUSTOM_SIP_SESSION_HEADER |
description |
A description of the tenant, such as how it's used. Optional, but recommended. | None |
disconnectCallOnTransferFailure |
Determines whether to disconnect the call when the call transfer fails. When set to false , Voice Gateway initiates a conversation turn by sending "vgwCallTransferFailed" text to Watson Assistant. Then,
Watson Assistant can either disconnect the call or transfer it to a different destination as configured in the dialog. Set to true by default. Version 1.0.0.2 and later. |
DISCONNECT_CALL_ON_TRANSFER_FAILURE |
finalUtteranceTimeout |
Time in milliseconds that Voice Gateway waits to receive a final utterance from the Speech to Text service. The timeout occurs if Voice Gateway does not receive a final utterance within specified time limit, even if hypotheses continue to be generated. When the timeout occurs, Voice Gateway sends Watson Assistant a text update with the word "vgwFinalUtteranceTimeout" to indicate that no final utterance was received. Version 1.0.0.4c and later. | FINAL_UTTERANCE_TIMEOUT |
notifyConversationOnFilteredUtterances |
When the property is set to true, Voice Gateway initiates a new turn to Watson Assistant with the word "vgwSTTResultFiltered" to indicate that the utterance has been filtered due to low confidence level. Version 1.0.2 and later. | NOTIFY_CONVERSATION_ON_FILTERED_UTTERANCES |
notifyConversationOnNetworkEvents |
When set to true and a network error is detected, Voice Gateway initiates a turn to the Watson Assistant service with the text "vgwNetworkWarningMessage". The vgwNetworkWarnings state variable contains
a list of the network events that happened during the current turn. If the flag is set to false , a list of the network events that happened during the current turn is sent in the next turn event in the vgwNetworkWarnings state variable. Version 1.0.0.5 and later. |
NOTIFY_CONVERSATION_ON_NETWORK_EVENTS |
notifyConversationOnMediaChange |
Media capabilities can change in the middle of a call when a caller sends re-INVITE or UPDATE requests. When the property is set to true, Voice Gateway initiates a new turn to Watson Assistant with the word vgwMediaCapsChanged to indicate that media capabilities were successfully updated. |
NOTIFY_CONVERSATION_ON_MEDIA_CHANGE |
postResponseTimeout |
Time in milliseconds to wait for a new utterance after the response is played back to the caller. If this value is exceeded, Watson Assistant receives a text update with the word "vgwPostResponseTimeout" to indicate that a timeout occurred. Set to 7000 ms by default. | POST_RESPONSE_TIMEOUT |
putCallerOnHoldOnTransfer |
Set to false if you don't want to place the caller on hold while the call is transferred. Version 1.0.0.3 and later. |
PUT_CALLER_ON_HOLD_ON_TRANSFER |
sendOnFirstTurn |
Contains a comma-separated list of the settings to send to the Watson Assistant service in the first turn request. All settings in this list must be configured in the general section. Version 1.0.0.6 and later. | SEND_ON_FIRST_TURN_TO_CONVERSATION |
sendProvisionalResponse |
Set to false for the tenant to not send a 180 Ringing response while it processes an incoming call. Version 1.0.0.3 and later. |
SEND_PROVISIONAL_RESPONSE |
sendSIPCallIDToConversation |
When true, the SIP call ID is passed to Watson Assistant in the vgwSIPCallID state variable. Set to false by default. |
SEND_SIP_CALL_ID_TO_CONVERSATION |
sendSIPRequestURIToConversation |
When true, the SIP request URI is passed to Watson Assistant in the vgwSIPRequestURI state variable. Set to false by default. |
SEND_SIP_REQUEST_URI_TO_CONVERSATION |
sendSIPToUriToConversation |
When true, the SIP To URI is passed to Watson Assistant in the vgwSIPToURI state variable. Set to false by default. |
SEND_SIP_TO_URI_TO_CONVERSATION |
sendSIPFromUriToConversation |
When true, the SIP From URI is passed to Watson Assistant in the vgwSIPFromURI state variable. Set to false by default. |
SEND_SIP_FROM_URI_TO_CONVERSATION |
sendSiprecMetadataToSTT |
When true, the SIPREC metadata will be sent to STT when a session is established. Set to false by default. Version 1.0.3.0 and later. |
SEND_SIPREC_METADATA_TO_STT |
transferDefaultTarget |
Identifies the target transfer to endpoint. Must be valid SIP or tel URI (e.g. sip:10.10.10.10). This default transfer target is used only when a failure occurs and the call transfer target can't be obtained from the Watson Assistant API. | TRANSFER_DEFAULT_TARGET |
transferDefaultCustomHeaders |
A list of custom SIP headers that will be sent outbound with a REFER or BYE if an internal error occurs. Version 1.0.4 and later. Example: { "transferDefaultCustomHeaders": { "Custom-Header1": "123", "Custom-Header2": "456" } } |
None |
transferFailedReplyMessage |
If disconnectCallOnTransferFailure is set to True , the message streamed to the caller if the call transfer fails. |
TRANSFER_FAILED_REPLY_MESSAGE |
transferFailedReplyAudioURL |
A URL to an audio file that is played if the Text to Speech service can't be contacted when the Voice Gateway attempts to play back the transferFailedReplyMessage message. | TRANSFER_FAILED_REPLY_AUDIO_URL |
useOptimalConfiguration |
Specifies whether to use the optimal configuration for the release. When set to true , the optimal configuration settings are used for the Voice Gateway version that is defined in the OPTIMAL_CONFIGURATION_VERSION environment variable or optimalConfigurationVersion JSON property. Set to false by default. Versions 1.0.0.6c and later. |
USE_OPTIMAL_CONFIGURATION |
optimalConfigurationVersion |
Specifies the Voice Gateway version of the optimal configuration settings to be used. For example, 1.0.0.6c . Set to the most recent version by default. Versions 1.0.0.6.c and later. |
OPTIMAL_CONFIGURATION_VERSION |
whitelistFromUri |
When defined, Voice Gateway accepts only calls that contain the specified string (such as a phone number) within the SIP From URI. |
WHITELIST_FROM_URI |
type |
Possible values include agentAssist , selfService , and continuousRecognition . agentAssist is the default value for agent assist and SIPREC sessions. selfService is the default
value for self service sessions. When the tenant type is set to agentAssist or continuousRecognition , speech recognition is open for the life of the call, rather than on a per conversational turn basis. Transcriptions
from speech recognition are queued up whenever there is an existing outgoing request to the Watson Assistant or SOE. |
TENANT_TYPE |
URIs |
A list of Tel / SIP URIs that are associated with that tenant. When an incoming call can't be mapped to the configured tenant URI, Voice Gateway looks for a match in this list. Example: "URIs ": [{ "name": "dc-office", "uri": "111111111" }, { "name": "nyc-office", "uri": "222222222" } ] |
N/A |
whitelistSiprecAttrName |
When defined, Voice Gateway accepts only calls that contain the specified attribute in the SIPREC metadata. This attribute value must match the value specified in the whitelistSiprecAttrValue attribute. |
WHITELIST_SIPREC_ATTR_NAME |
whitelistSiprecAttrValue |
The attribute is mandatory when whitelistSiprecAttrName is configured. When defined, Voice Gateway accepts only calls that contain the attribute specified in whitelistSiprecAttrName with the value that matches
the value specified in this attribute in the SIPREC metadata. |
WHITELIST_SIPREC_ATTR_VALUE |
disconnectCallOnNoUserInputTurnCount |
Informs the Voice Gateway whether to disconnect the call on consecutive post response timeouts. Determines the number of consecutive post response timeouts to allow before the call is disconnected. Version 1.0.6 or later. | DISCONNECT_CALL_ON_NO_USER_INPUT_TURN_COUNT |
Properties for the conversation
object
The IBM Watson™ Assistant service that you want to use for each tenant must be defined as JSON properties. The values of the related Docker environment variables are not used.
As with other configuration methods, both the conversation
object and the wva
object can't be defined within a single tenant.
JSON property | Description | Related environment variable |
---|---|---|
url |
The url credential for Watson Assistant. |
WATSON_CONVERSATION_URL |
workspaceID |
The Workspace ID for the Watson Assistant API. | WATSON_CONVERSATION_WORKSPACE_ID |
username |
The username credential for Watson Assistant. |
WATSON_CONVERSATION_USERNAME |
password |
The password credential for Watson Assistant. |
WATSON_CONVERSATION_PASSWORD |
apikey |
The API key, apikey , credential for your Watson Assistant service. You can configure connections with Watson services either by using apikey and setting tokenServiceProviderUrl to https://iam.cloud.ibm.com/identity/token ,
or by using both username and password Only available for the Sydney region. Version 1.0.0.6a and later. |
WATSON_CONVERSATION_APIKEY |
apiVersion |
The version of the Watson Assistant API to use. Possible values include v1 and v2 . v2 is supported in Version 1.0.1 and later. |
WATSON_CONVERSATION_API_VERSION |
bearerToken |
The authentication token that will be used when making requests to the Watson Assistant service. Version 1.0.3.0 and later. | N/A |
connectTimeout |
Time in seconds that Voice Gateway waits to establish a socket connection with Watson Assistant. If the time is exceeded, Voice Gateway reattempts to connect with Watson Assistant. If the service still can't be reached, the call fails. Set to 5 seconds by default. Version 1.0.0.3 and later. | WATSON_CONVERSATION_CONNECT_TIMEOUT |
connectionKeepAliveEnabled |
true or false . Set to true by default. Specifies whether a connection to Watson Assistant service is kept open or closed after each request or response. Note: Connection reuse isn't supported. A connection is closed after each request or response. When keep-alive is enabled, it might cause issues with some REST servers that expect a connection to remain open. You can turn off keep-alive by setting this to false . 1.0.0.7a and later. |
WATSON_CONVERSATION_CONNECTION_KA_ENABLED |
readTimeout |
Time in seconds that Voice Gateway waits for a response from Watson Assistant. If the time is exceeded, Voice Gateway reattempts to contact Watson Assistant. If the service still can't be reached, the call fails. Set to 5 seconds by default. | WATSON_CONVERSATION_READ_TIMEOUT |
tokenAuthEnabled |
Enables token authentication for Watson Assistant. Disabled by default. Version 1.0.0.5a and later. | WATSON_CONVERSATION_TOKEN_AUTH_ENABLED |
tokenServiceProviderUrl |
This is the actual URL of the token authentication service for the Watson Assistant service. You might need to map this URL to a different one for routing purposes. Version 1.0.0.5a and later. | WATSON_CONVERSATION_TOKEN_SERVICE_PROVIDER_URL |
tokenServiceUrl |
This is the service URL that is embedded in the token request. Version 1.0.0.5a and later. | WATSON_CONVERSATION_TOKEN_SERVICE_URL |
providers |
Configurations for multiple service providers, which supports root level service configuration. Version 1.0.0.6 and later.
|
N/A |
providerSelectionPolicy |
In the event of service failure, the process by which Voice Gateway changes active Watson Assistant service instances when the tenant has multiple providers configured. Voice Gateway switches to the next provider in the list only when
a conversation error occurs on the first turn to the Watson Assistant service. Once a call is established, Voice Gateway does not switch to another conversation provider in the middle of a call. Set to sequential by default. |
N/A |
httpHeaders |
A JSON map that includes the name and value of HTTP headers. These HTTP header fields are added in the outbound REST requests to Watson Assistant. | N/A |
assistantID |
Watson Assistant ID for the Watson Assistant version 2 API. The assistant ID is used only by the Watson Assistant version 2 API. Voice Gateway version 1.0.1 and later. | WATSON_ASSISTANT_ID |
useStatelessAPI |
true or false . Specifies whether Voice Gateway uses the Watson Assistant stateless message method when calling the Assistant v2 API. By default, the stateful message method is used. For
more information about the difference between the stateful and stateless message methods, see the Watson Assistant documentation.
Version 1.0.7.0 and later. |
WATSON_CONVERSATION_USE_STATELESS_API |
To configure the tenant to connect to Watson Assistant through a service orchestration engine (SOE), configure the SOE on the properties instead. If the SOE is configured to require authentication, specify the user name and password for HTTP basic authentication.
JSON property | Description | Related environment variable |
---|---|---|
url |
The exact URL to the service orchestration engine. | WATSON_CONVERSATION_URL |
username |
The plain-text user name for the service orchestration engine. Required only if authentication is enabled in the SOE. | WATSON_CONVERSATION_USERNAME |
password |
The plain-text password for the service orchestration engine. Required only if authentication is enabled in the SOE. | WATSON_CONVERSATION_PASSWORD |
Properties for the wva
object
Note: You can't create new instances of Watson Virtual Agent after June 19, 2018. This service was removed from the IBM Cloud Catalog on March 19, 2019.
The Watson Virtual Agent chatbot that you want to use for each tenant must be defined as JSON properties. The values of the related Docker environment variables are not used. To connect to Virtual Agent through a service orchestration engine
(SOE), configure the SOE on the conversation
object.
As with other configuration methods, both the conversation
object and the wva
object can't be defined within a single tenant.
JSON property | Description | Related environment variable |
---|---|---|
wvaURL |
The url credential for the Watson Virtual Agent API. |
WATSON_VA_URL |
wvaBotID |
The bot_id credential for the Watson Virtual Agent API. |
WATSON_VA_BOT_ID |
wvaClientId |
The authentication key for the X-IBM-Client-Id header field for API calls to Watson Virtual Agent. |
WATSON_VA_CLIENT_ID |
wvaClientSecret |
The authentication key for the X-IBM-Client-Secret header field for API calls to Watson Virtual Agent. |
WATSON_VA_CLIENT_SECRET |
Properties for the stt
object
The stt
object contains configuration for either the Speech to Text service or the speech recognition services enabled by the Speech to Text Adapter. If a JSON property isn't defined, the value of the related Docker environment
variable is used.
You can define the following properties to configure the Speech to Text service.
JSON property | Description | Related environment variable |
---|---|---|
credentials |
Credentials for the Speech to Text service. See The credentials property for the stt object |
|
config |
Parameters for the Speech to Text service. See the WebSockets API reference for the Speech to Text Service. | See Speech to Text (WATSON_STT ) variables in the Media Relay configuration |
broadbandConfig |
Parameters for the Speech To Text service when broadband audio is enabled. Required only when bandPreference is set to broadband . At minimum, the language model must be defined on the model property.
For a full list of properties, see the WebSockets API reference for the Speech to Text Service. Version 1.0.0.4 and later. |
See broadband environment variables in Enabling broadband support |
bandPreference |
Defines which audio band to prefer when negotiating audio codecs in the session. Set to broadband to use broadband audio when possible. The default value is narrowband . Version 1.0.0.4 and later. |
WATSON_STT_BAND_PREFERENCE |
disableFirstTurnBargeIn |
Set this value to true to disable speech barge-in on the first conversation turn. Version 1.0.2.0 and later. |
WATSON_STT_DISABLE_FIRST_TURN_BARGE_IN |
bargeInResume |
Set to true to resume playing back audio after barge-in if the confidence score of the final utterance is lower than the threshold specified by the confidenceScoreThreshold property. Version 1.0.0.5 and later. |
BARGE_IN_RESUME |
confidenceScoreThreshold |
Confidence threshold of messages from the Speech to Text service. Messages with a confidence score that are under the threshold are not forwarded to Watson Assistant. The default value of 0 means that all responses will be used. The recommended values are between 0 and 1. | WATSON_STT_CONFIDENCE_SCORE_THRESHOLD |
connectionTimeout |
Time in seconds that Voice Gateway waits to establish a socket connection with the Watson Speech to Text service. If the time is exceeded, Voice Gateway reattempts to connect with the Watson Speech to Text service. If the service still can't be reached, the call fails. Version 1.0.0.5 and later. | WATSON_STT_CONNECTION_TIMEOUT |
requestTimeout |
Time in seconds that Voice Gateway waits to establish a speech recognition session with the Watson Speech to Text service. If the time is exceeded, Voice Gateway reattempts to connect with the Watson Speech to Text service. If the service still can't be reached, the call fails. Version 1.0.0.5 and later. | WATSON_STT_REQUEST_TIMEOUT |
echoSuppression |
Indicates whether to suppress results from Speech to Text that might occur from an echo of Text to Speech synthesis. Version 1.0.0.4c and later. | ECHO_SUPPRESSION |
providers |
Configurations for multiple service providers, which supports root level service configuration. Version 1.0.0.6 and later.
|
N/A |
providerSelectionPolicy |
In the event of service failure, the process by which Voice Gateway changes active Speech to Text service instances when the tenant has multiple providers configured. Voice Gateway switches to the next provider in the list only when an
error occurs on the first turn to the service. Once a call is established, Voice Gateway does not switch to another speech to text provider in the middle of a call. Set to sequential by default. |
N/A |
trackLatency |
When set to true , the Media Relay tracks the response latency with energy detection. The latency is the amount of elapsed time in milliseconds between when the Media Relay detects silence in caller speech to when the Media
Relay receives a final result from Speech to Text. Version 1.0.0.8 and later. |
STT_TRACK_LATENCY |
The credentials
property for the stt
object
Attribute | Description | Related environment variable |
---|---|---|
url |
The url credential for the Speech to Text service API |
WATSON_STT_URL |
username |
The username credential for the Speech to Text service |
WATSON_STT_USERNAME |
password |
The password credential for the Speech to Text service |
WATSON_STT_PASSWORD |
apikey |
The API key, apikey , credential for your Speech to Text service. You can configure connections with Watson services either by using the apikey and setting tokenServiceProviderUrl to https://iam.cloud.ibm.com/identity/token ,
or by using both username and password . Version 1.0.0.6a and later. |
WATSON_STT_APIKEY |
bearerToken |
The authentication token that will be used when making requests to the Speech To Text service. Version 1.0.3.0 and later. | N/A |
tokenAuthEnabled |
You can enable token authentication by changing the tokenAuthEnabled to true . See Enabling user name and password based token authentication for Watson services. Version 1.0.0.5a
and later. |
WATSON_STT_TOKEN_AUTH_ENABLED |
tokenServiceProviderUrl |
The value of this credential is the URL of the token authentication service for Speech to Text.Version 1.0.0.5a and later. | WATSON_STT_TOKEN_SERVICE_PROVIDER_URL |
tokenServiceUrl |
The service URL embedded in the token request. Version 1.0.0.5a and later. | WATSON_STT_TOKEN_SERVICE_URL |
Properties for the Speech to Text adapter
If you deployed Voice Gateway with the Speech to Text Adapter, define the following properties instead:
JSON property | Description | Related environment variable |
---|---|---|
config |
Parameters for the Google Cloud Speech API RecognitionConfig request. For a full list of parameters, see the RecognitionConfig API documentation. |
See Google Cloud Speech (GOOGLE_SPEECH ) variables in the Speech to Text Adapter configuration |
thirdPartyCredentials |
Contents of a Google Cloud project service account JSON file. | GOOGLE_APPLICATION_CREDENTIALS |
Properties for the tts
object
If a JSON property isn't defined, the value of the related Docker environment variable is used.
JSON property | Description | Related environment variable |
---|---|---|
credentials |
Credentials for the IBM® Text to Speech service. See The credentials property for the tts object |
|
config |
Parameters for the IBM® Text to Speech service. See WebSockets API reference for Watson Text to Speech Service. | See Text to Speech (WATSON_TTS ) variables in the Media Relay configuration |
jitterBufferDelay |
The amount of time in milliseconds to buffer before playing back audio from the Text to Speech service. This buffer accounts for any jitter in the streaming audio. | WATSON_TTS_JITTER_BUFFER_DELAY |
connectionTimeout |
Time in seconds that Voice Gateway waits to establish a socket connection with the Watson Text to Speech service. If the time is exceeded, Voice Gateway reattempts to connect with the Watson Text to Speech service. If the service still can't be reached, the call fails. Version 1.0.0.5 and later. | WATSON_TTS_CONNECTION_TIMEOUT |
requestTimeout |
Time in seconds that Voice Gateway waits to establish a speech synthesis session with the Watson Text to Speech service. If the time is exceeded, Voice Gateway reattempts to connect with the Watson Text to Speech service. If the service still can't be reached, the call fails. Version 1.0.0.5 and later. | WATSON_TTS_REQUEST_TIMEOUT |
cacheTimeToLive |
The time in hours to cache responses from the Text to Speech service to improve playback response time. When enabled, all Text to Speech responses are cached unless they are excluded in the Watson Assistant dialog. | TTS_CACHE_TIME_TO_LIVE |
providers |
Configurations for multiple service providers, which supports root level service configuration. Version 1.0.0.6 and later.
|
N/A |
providerSelectionPolicy |
In the event of service failure, the process by which Voice Gateway changes active Text to Speech service instances when the tenant has multiple providers configured. Voice Gateway switches to the next provider in the list only when a
conversation error occurs on the first turn to the Text to Speech service. Once a call is established, Voice Gateway does not switch to another provider in the middle of a call. Set to sequential by default. |
N/A |
Properties for the Text to Speech adapter
If you deployed Voice Gateway with the Text to Speech Adapter, define the following properties:
JSON property | Description | Related environment variable |
---|---|---|
config |
Parameters for the Google Cloud Text-To-Speech API SynthesizeSpeechRequest message. For a full list of parameters, see the SynthesizeSpeechRequest API documentation. |
See Google Cloud Text-To-Speech (GOOGLE_TTS ) variables in the Text to Speech Adapter configuration. |
thirdPartyCredentials |
Contents of a Google Cloud project service account JSON file. | GOOGLE_APPLICATION_CREDENTIALS |
The credentials
property for the tts
object
Attribute | Description | Related environment variable |
---|---|---|
url |
The url credential for the Text to Speech service API |
WATSON_TTS_URL |
username |
The username credential for the Text to Speech service |
WATSON_TTS_USERNAME |
password |
The password credential for the Text to Speech service |
WATSON_TTS_PASSWORD |
apikey |
The API key, apikey , credential for your Text to Speech service. You can configure connections with Watson services either by using apikey and setting tokenServiceProviderUrl to https://iam.cloud.ibm.com/identity/token ,
or by using both username and password . Version 1.0.0.6a and later. |
WATSON_TTS_APIKEY |
bearerToken |
The authentication token that will be used when making requests to the Text To Speech service. Version 1.0.3.0 and later. | N/A |
tokenAuthEnabled |
You can enable token authentication by changing the tokenAuthEnabled to true . See Enabling user name and password based token authentication for Watson services. Version 1.0.0.5a
and later. |
WATSON_TTS_TOKEN_AUTH_ENABLED |
tokenServiceProviderUrl |
The value of this credential is the URL of the token authentication service for Text to Speech.Version 1.0.0.5a and later. | WATSON_TTS_TOKEN_SERVICE_PROVIDER_URL |
tokenServiceUrl |
The service URL embedded in the token request. Version 1.0.0.5a and later. | WATSON_TTS_TOKEN_SERVICE_URL |
Properties for the reporting
object
To enable reporting in a tenant, the reporting server and event type must be defined as JSON properties. The values of the related Docker environment variables are not used.
JSON property | Description | Related environment variable |
---|---|---|
url |
Host name of the Splunk HEC server or REST server that receives the events. | REPORTING_URL |
username |
Authorization name used for basic authentication. For Splunk HEC, this value can be any string. | REPORTING_USERNAME |
password |
Authorization password used for basic authentication. For Splunk HEC, set this value to the Splunk generated token. | REPORTING_PASSWORD |
cdrEventInd |
To generate call detail record (CDR) events, define a string that identifies the event as a CDR, such as cdr. The specified value is included in the index field of all CDR events. If a value isn't defined, CDR events are not generated. | REPORTING_CDR_EVENT_INDEX |
convEventInd |
To generate Watson Assistant turn events, define a string that identifies the event as a Watson Assistant turn event, such as conv. The specified value is included in the index field of all Watson Assistant turn events. If a value isn't defined, Watson Assistant turn events are not generated. | REPORTING_CONVERSATION_EVENT_INDEX |
convRequestEventInd |
A string that identifies the event as a Watson Assistant turn event, such as convRequest. When configured, an event is generated prior to sending a turn request to Watson Assistant. The specified value is included in the index field of all Watson Assistant turn events that are generated prior to a turn request. This variable must be defined to generate Watson Assistant turn events prior to sending a request to Watson Assistant. | REPORTING_CONVERSATION_REQUEST_EVENT_INDEX |
transcriptionEventInd |
To generate transcription events, define a string that identifies the event as a transcription event, such as transcription. The specified value is included in the index field of all transcription events. If a value isn't defined, transcription events are not generated. | REPORTING_TRANSCRIPTION_EVENT_INDEX |
cdrEventSourceType |
Determines which value to use for the source field in CDR events. The options are conversationID and vgwSessionID . If not specified, it is defined as e164 for a telephone number or sipURI for a SIP URI. Version 1.0.6 and later. |
REPORTING_CDR_EVENT_SOURCE_TYPE |
convEventSourceType |
Determines which value to use for the source field in Watson Assistant response events. The options are conversationID and vgwSessionID . By default, set to conversationID . Version 1.0.6
and later. |
REPORTING_CONVERSATION_EVENT_SOURCE_TYPE |
convRequestEventSourceType |
Determines which value to use for the source field in Watson Assistant request events. The options are conversationID and vgwSessionID . If not specified, it is defined as e164 for a telephone
number or sipURI for a SIP URI. Version 1.0.6 and later. |
REPORTING_CONVERSATION_REQUEST_EVENT_SOURCE_TYPE |
transcriptionEventSourceType |
Determines which value to use for the source field in transcription events. The options are conversationID and vgwSessionID . If not specified, it is defined as e164 for a telephone number,
conversationID for a Watson Assistant workspace, sipURI for a SIP URI, or sms for SMS messages. Version 1.0.6 and later. |
REPORTING_TRANSCRIPTION_EVENT_SOURCE_TYPE |
cdrCloudant |
To publish CDR events in an IBM Cloudant noSQL database, provide the authorization information and host information. Version 1.0.0.5d and later. See The cdrCloudant property of the reporting object. |
N/A |
convCloudant |
To publish Watson Assistant turn events in an IBM Cloudant noSQL database, provide the authorization information and host information. Version 1.0.0.6 and later. See The convCloudant property of the reporting object. |
N/A |
trancriptionCloudant |
To publish transcription events in an IBM Cloudant noSQL database, provide the authorization information and host information. Version 1.0.0.6 and later. See The transcriptionCloudant property of the reporting object. |
N/A |
maskCallerID |
Indicates whether ro mask the called ID from the CDR and transcription reports The default value is false . |
REPORTING_MASK_CALLER_ID |
The cdrCloudant
property of the reporting
object
Use the cdrCloudant
property to configure publishing Call Detail Record (CDR) turn events to an IBM Cloudant database.
Attribute | Description | Related environment variable |
---|---|---|
account |
The name of the IBM Cloudant account, if it's different from the user name | REPORTING_CDR_CLOUDANT_ACCOUNT |
url |
The URL where your IBM Cloudant instance for storing CDR events is hosted. Version 1.0.0.5d and later. | REPORTING_CDR_URL |
username |
If you use IBM Cloudant, the user name associated with your account service credentials | REPORTING_CDR_CLOUDANT_USERNAME |
password |
If you use IBM Cloudant, the password for your account service credentials | REPORTING_CDR_CLOUDANT_PASSWORD |
apikey |
The API key, apikey , credential for your IBM Cloudant service. When you create your IBM Cloudant instance, you can allow access by using either the IAM only option or the Combination of user name/password OR API Key option. You can configure connections with IBM Cloud services either by using apikey and setting url to your IBM Cloudant service URL, such as https://3a14b-15g9-67aa-bluemix.cloudant.com . Or,
by using both username and password . Version 1.0.0.7 and later. |
REPORTING_CDR_CLOUDANT_APIKEY |
dbName |
IBM Cloudant database name | REPORTING_CDR_CLOUDANT_DB_NAME |
eventInd |
To generate call detail record (CDR) events for your IBM Cloudant database, define a string that identifies the event as a CDR, such as cdr. The specified value is included in the index field of all CDR events in your database. If a value isn't defined, CDR events are not generated | REPORTING_CDR_CLOUDANT_EVENT_INDEX |
The convCloudant
property of the reporting
object
Use the convCloudant
property to configure publishing Watson Assistant turn events to an IBM Cloudant database.
Attribute | Description | Related environment variable |
---|---|---|
account |
The name of the IBM Cloudant account, if it's different from the user name | REPORTING_CONVERSATION_CLOUDANT_ACCOUNT |
url |
The URL where your IBM Cloudant instance for storing turn events is hosted. Version 1.0.0.5d and later. | REPORTING_CONVERSATION_URL |
username |
If you use IBM Cloudant, the user name associated with your account service credentials | REPORTING_CONVERSATION_CLOUDANT_USERNAME |
password |
If you use IBM Cloudant, the password for your account service credentials | REPORTING_CONVERSATION_CLOUDANT_PASSWORD |
apikey |
The API key, apikey , credential for your IBM Cloudant service. When you create your IBM Cloudant instance, you can allow access by using either the IAM only option or the Combination of user name/password OR API Key option. You can configure connections with IBM Cloud services either by using apikey and setting url to your IBM Cloudant service URL, such as https://3a14b-15g9-67aa-bluemix.cloudant.com . Or,
by using both username and password . Version 1.0.0.7 and later. |
REPORTING_CONVERSATION_CLOUDANT_APIKEY |
dbName |
IBM Cloudant database name | REPORTING_CONVESATION_CLOUDANT_DB_NAME |
eventInd |
To generate Watson Assistant turn events for your IBM Cloudant database, define a string that identifies the event as a Watson Assistant turn, such as conversation. The specified value is included in the index field of all Watson Assistant turn events in your IBM Cloudant database. If a value isn't defined, Watson Assistant turn events are not generated. | REPORTING_CONVERSATION_CLOUDANT_EVENT_INDEX |
The transcriptionCloudant
property of the reporting
object
Use the transcriptionCloudant
property to configure publishing transcription events to an IBM Cloudant database.
Attribute | Description | Related environment variable |
---|---|---|
account |
The name of the IBM Cloudant account, if it's different from the user name. | REPORTING_TRANSCRIPTION_CLOUDANT_ACCOUNT |
url |
The URL where your IBM Cloudant instance for storing transcription events is hosted. Version 1.0.0.5d and later. | REPORTING_TRANSCRIPTION_URL |
username |
If you use IBM Cloudant, the user name associated with your account service credentials. | REPORTING_TRANSCRIPTION_CLOUDANT_USERNAME |
password |
If you use IBM Cloudant, the password for your account service credentials. | REPORTING_TRANSCRIPTION_CLOUDANT_PASSWORD |
apikey |
The API key, apikey , credential for your IBM Cloudant service. When you create your IBM Cloudant instance, you can allow access by using either the IAM only option or the Combination of user name/password OR API Key option. You can configure connections with IBM Cloud services either by using apikey and setting url to your IBM Cloudant service URL, such as https://3a14b-15g9-67aa-bluemix.cloudant.com . Or,
by using both username and password . Version 1.0.0.7 and later. |
REPORTING_TRANSCRIPTION_CLOUDANT_APIKEY |
dbName |
IBM Cloudant database name | REPORTING_TRANSCRIPTION_CLOUDANT_DB_NAME |
eventInd |
To generate transcription events for your IBM Cloudant database, define a string that identifies the event as a transcription event, such as transcription. The specified value is included in the index field of all transcription events in your database. If a value isn't defined, transcription events are not generated. | REPORTING_TRANSCRIPTION_CLOUDANT_EVENT_INDEX |
Properties for the sipAuth
object
To enable SIP authentication for inbound calls in a tenant, the SIP authentication JSON properties must be defined.
JSON property | Description | Related environment variable |
---|---|---|
username |
A username to be used for SIP Digest authentication. Version 1.0.4 and later. | SIP_AUTH_USERNAME |
password |
A password to be used for SIP Digest authentication. Version 1.0.4 and later. | SIP_AUTH_PASSWORD |
realm |
A realm to be used for SIP Digest authentication. Version 1.0.4 and later. | SIP_AUTH_REALM |
useAuthInt |
Optional. true/false. Specifies the authentication integrity auth-int quality of protection (QOP) for digest authentication. Digest authentication defines two types of QOP: auth and auth-int . By default,
auth is used. If the value is set to true , the auth-int QOP is used, which is the highest level of protection. Version 1.0.4 and later. |
SIP_AUTH_USE_AUTH_INT |
Properties for the smsPipe
object
To enable SMS messaging integration during a call, you can configure a tenant with information about your SMS Gateway instance. See Integrating SMS Gateway with Voice Gateway.
JSON property | Description | Related environment variable |
---|---|---|
connectTimeout |
Time in seconds that Voice Gateway waits to establish a socket connection with SMS Gateway. If the time is exceeded, Voice Gateway reattempts to connect with SMS Gateway. If the service still can't be reached, Voice Gateway notifies the conversation service that an SMS message can't be sent. Set to 5 seconds by default Version 1.0.0.6 and later. | SMS_GW_CONNECT_TIMEOUT |
enableInboundSMS |
Determines whether an inbound SMS message is expected from a caller. Set to True or False . When set to True , an SMS pipe is created. Otherwise, only outbound SMS messages to a caller are supported.
Optional. Version 1.0.0.6 and later. |
ENABLE_INBOUND_SMS |
password |
SMS Gateway server password for authentication. This needs to be same value as set in password in the SMS Gateway tenant controlCredentials object configuration. See Properties for the controlCredentials object.
Version 1.0.0.6 and later. |
SMS_GW_PASSWORD |
username |
SMS Gateway server username for authentication. This must be set to the same value as the username in the SMS Gateway tenant controlCredentials object configuration. See Properties for the controlCredentials object.
Version 1.0.0.6 and later. |
SMS_GW_USERNAME |
expirationInterval |
Interval in seconds after which an SMS pipe expires. Set to 1200 seconds (20 minutes) by default. Version 1.0.0.6 and later. | SMS_PIPE_EXPIRATION_INTERVAL |
readTimeout |
Time in seconds that Voice Gateway waits for a response from SMS Gateway. If the time is exceeded, Voice Gateway reattempts to contact SMS Gateway. If the service still can't be reached, Voice Gateway notifies the conversation service that an SMS message can't be sent. Set to 5 seconds by default. Version 1.0.0.6 and later. | SMS_GW_READ_TIMEOUT |
tenantPhoneNumber |
Optional. The tenant phone number, such as "+12222222222". Version 1.0.0.6 and later. | TENANT_PHONE_NUMBER |
url |
SMS Gateway server URL to send requests to. For example, http://host:port/sms.gateway/smsPipe , with host and port defined. Version 1.0.0.6 and later. |
SMS_GW_URL |
Properties for the outboundCalls
object
To enable outbound calling in a tenant, the outbound calling JSON properties must be defined.
JSON property | Description | Related environment variable |
---|---|---|
enableOutboundCalls |
Optional. true/false. Enables or disables the outbound call feature. Set to false by default. Version 1.0.2 and later. | ENABLE_OUTBOUND_CALLS |
statusWebhook |
Optional. HTTP/HTTPS URL to be used for asynchronous notifications. Version 1.0.2 and later. | OUTBOUND_CALLS_STATUS_WEBHOOK |
statusWebhookUsername |
Optional. An username to be used for authentication when sending notifications to a webhook. Version 1.0.2 and later. | OUTBOUND_CALLS_STATUS_WEBHOOK_USERNAME |
statusWebhookPassword |
Optional. A password to be used for authentication when sending notifications to a webhook. Version 1.0.2 and later. | OUTBOUND_CALLS_STATUS_WEBHOOK_PASSWORD |
tenantURI |
Optional. Tenant SIP/Telephone URI. This value will be used in the From header of an outbound call if no provisioned as part of the REST API call. Version 1.0.2 and later. | OUTBOUND_CALLS_TENANT_URI |
fromImmutable |
When the property is set to true, Voice Gateway uses the value configured in the tenantURI JSON property when constructing a From header field for outbound calls instead of the from attribute provided through the REST API. When the property is set to true, the tenantURI property or OUTBOUND_CALLS_TENANT_URI environment variable has to be configured. Version 1.0.4 and later. | OUTBOUND_CALLS_FROM_IMMUTABLE |
connectTimeout |
Optional. Time in seconds that Voice Gateway waits to establish a socket connection with the WEB hook. If this value is exceeded, Voice Gateway attempts to reconnect. Set to 5 seconds by default. Version 1.0.2 and later. | OUTBOUND_CALLS_STATUS_WEBHOOK_CONNECT_TIMEOUT |
readTimeout |
Optional. Time in seconds that Voice Gateway waits for a response from the WEB hook. If this value is exceeded, Voice Gateway attempts to reconnect. Set to 5 seconds by default. Version 1.0.2 and later. | OUTBOUND_CALLS_STATUS_WEBHOOK_READ_TIMEOUT |
maxRetryNo |
Optional. The maximum number of times that Voice Gateway attempts to connect with the WEB hook due to connection failure. Set to 2 by default. Version 1.0.2 and later. | OUTBOUND_CALLS_STATUS_WEBHOOK_MAX_RETRY_NUM |
username |
Optional. The user name for the REST API calls authentication. Version 1.0.2 and later. | REST_API_USERNAME |
password |
Optional. The password for the REST API call authentication. Version 1.0.2 and later. | REST_API_PASSWORD |
sipAuth |
Optional. A JSON object for SIP Digest authentication credentials to be used for outbound calls. Version 1.0.4 and later. See the table below. | None |
JSON property | Description | Related environment variable |
---|---|---|
username |
A username to be used for SIP Digest authentication in outbound calls. Version 1.0.4 and later. | SIP_AUTH_OUTBOUND_USERNAME |
password |
A password to be used for SIP Digest authentication in outbound calls. Version 1.0.4 and later. | SIP_AUTH_OUTBOUND_PASSWORD |
{: caption="Table 18a. Properties for the sipAuth JSON object for outbound calls" caption-side="top"} |
Properties of the mediaEncryption
object
The mediaEncryption object contains configuration properties for the securing media streams. If a JSON property is not defined, the value of the related Docker environment variable is used. Version 1.0.3.0 and later.
Property | Description | Related environment variable |
---|---|---|
enableSrtpInbound |
Optional. true or false. Applies to inbound calls. Boolean that enables or disables the use of media encryption for inbound calls for the tenant. If false then it will reject inbound calls requesting encryption. Set to false by default. Version 1.0.4 and later. | ENABLE_SRTP_INBOUND |
encryptionType |
Optional. String that determines the type of media encryption to be used. Only SRTP through SDP is supported. The environment variable applies to outbound calls. To disable encryption, set the environment variable to none. The default value is srtp. Version 1.0.3 and later. | MEDIA_ENCRYPTION_TYPE |
forceMediaEncryption |
Optional. true or false. Determines whether media encryption MUST be used for inbound and outbound calls. The default value is false. Version 1.0.3 and later. | FORCE_MEDIA_ENCRYPTION |