> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cognigy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Config

> This verb is used to update speech settings, configure barge-in, and collect DTMF or speech input during an active call.

The `config` verb allows developers to change the default speech settings during a session or to collect speech or DTMF input in the background while other verbs run. This verb is non-blocking, so the specified settings are changed immediately and the application proceeds with the next verb.

```json expandable theme={null}
{
  "verb": "config",
  "synthesizer": {
    "vendor": "microsoft",
    "language": "de-DE",
    "voice": "de-DE-KillianNeural"
  },
  "recognizer": {
    "vendor": "google",
    "language": "de-DE"
  },
  "bargeIn": {
    "enable": true,
    "sticky": true,
    "input": ["speech", "digits"],
    "actionHook": "/userInput",
    "partialResultHook": "/partialInput",
    "finishOnKey": "#",
    "numDigits": 5,
    "minDigits": 1,
    "maxDigits": 5,
    "interDigitTimeout": 3000,
    "dtmfBargein": true,
    "minBargeinWordCount": 2
  },
  "fillerNoise": {
    "enable": true,
    "url": "https://example.com/filler.wav",
    "startDelaySecs": 2
  },
  "vad": {
    "enable": true,
    "voiceMs": 250,
    "silenceMs": 500,
    "strategy": "adaptive",
    "mode": 3
  },
  "speechFallback": {
    "type": "dial",
    "reason": "recognizerFailure",
    "dial": {
      "number": "+49123456789"
    },
    "refer": {
      "uri": "sip:user@example.com"
    }
  },
  "actionHookDelayAction": {
    "enabled": true,
    "noResponseTimeout": 5000,
    "noResponseGiveUpTimeout": 15000,
    "retries": 2,
    "actions": [
      {
        "verb": "say",
        "text": "Waiting for response..."
      }
    ],
    "giveUpActions": [
      {
        "verb": "say",
        "text": "No response received. Moving on."
      }
    ]
  },
  "boostAudioSignal": "+3dB",
  "listen": {
    "startTimeout": 5000,
    "stopTimeout": 2000
  },
  "notifyEvents": true,
  "onHoldMusic": "https://example.com/hold.mp3",
  "referHook": "/sipRefer",
  "reset": ["recognizer", "synthesizer"],
  "record": {
    "action": "startCallRecording",
    "siprecServerURL": "sip:recording@example.com",
    "recordingID": "call12345",
    "headers": {
      "X-Custom-Header": "value"
    }
  },
  "sipRequestWithinDialogHook": "/sipRequest",
  "amd": true
}
```

## Configuration

The following table lists the available parameters:

| Parameter | Type | Description | Required |
| - | - | - | - |
| actionHookDelayAction.enabled | boolean | Enables or disables the delayed action hook behavior. When enabled, the system waits for the configured action hook to respond before executing any delay or give-up actions. | No |
| actionHookDelayAction.noResponseTimeout | number | The timeout in milliseconds to wait for a response from the action hook before executing the delay actions, such as prompting the user with a `say` verb. | No |
| actionHookDelayAction.noResponseGiveUpTimeout | number | The timeout in milliseconds to wait before executing the give-up actions if the action hook never responds. | No |
| actionHookDelayAction.retries | number | The number of retry attempts to call the action hook before giving up. | No |
| actionHookDelayAction.actions | array | An array of verbs to execute while waiting for the action hook response, such as a `say` verb to provide feedback to the user. | No |
| actionHookDelayAction.giveUpActions | array | An array of verbs to execute if the action hook never responds, for example, a `say` verb to inform the user and continue the application. | No |
| amd | boolean | Enables Answering Machine Detection (AMD) to distinguish whether the call is answered by a human or a machine. | No |
| bargeIn.enable | boolean | Enables background listening for speech or DTMF input while other verbs execute. If disabled, stops any background listening tasks currently running. | No |
| bargeIn.sticky | boolean | If both `bargeIn.enable` and `bargeIn.sticky` are true, another background gather automatically starts after detecting speech or DTMF input, allowing continuous input collection. | No |
| bargeIn.actionHook | string | A webhook URL to invoke when user input is collected by the background gather. The default is `voice`. | No |
| bargeIn.partialResultHook | string | A webhook URL to receive interim transcription results during background gathering. Useful for providing real-time feedback or logging partial input. | No |
| bargeIn.input | array | Specifies allowed input types: `['digits']`, `['speech']`, or `['digits', 'speech']`. | Yes |
| bargeIn.finishOnKey | string | The DTMF key that signals the end of input in the background gather. | No |
| bargeIn.numDigits | number | The exact number of DTMF digits expected to gather. | No |
| bargeIn.minDigits | number | The minimum number of DTMF digits expected to gather. The default is 1. | No |
| bargeIn.maxDigits | number | The maximum number of DTMF digits expected to gather. | No |
| bargeIn.interDigitTimeout | number | The time in milliseconds to wait between DTMF digits after reaching the minimum number of digits. | No |
| bargeIn.dtmfBargein | boolean | Enables DTMF barge-in so that entering a DTMF tone can interrupt audio playback during background gathering. | No |
| bargeIn.minBargeinWordCount | number | The minimum number of words the user must speak before triggering barge-in. Helps prevent accidental interruptions during speech prompts. | No |
| boostAudioSignal | string \| number | Specifies the number of decibels to increase or decrease the outgoing audio signal level (for example, `-6 dB` or `+3 dB`). Default is `0 dB`. | No |
| fillerNoise.enable | boolean | Enables or disables filler noise played while waiting for user input or during processing. | Yes (if used) |
| fillerNoise.url | string | The URL to the MP3 or WAV audio file to play as filler noise. | No |
| fillerNoise.startDelaySecs | number | The delay in seconds before starting filler noise playback. | No |
| listen | object | A nested `listen` verb that streams session audio to a remote server via WebSocket. | No |
| notifyEvents | boolean | Enables event notifications over WebSocket connections. Verbs must include an `id` property to use this feature. | No |
| onHoldMusic | string | The URL to an audio file to play when the session is placed on hold. | No |
| recognizer | object | Contains configuration options for the speech recognition engine. This includes language selection, hints, diarization, and other advanced settings. | No |
| recognizer.vendor | string | The speech recognition provider to use, for example, Google, Amazon, or Azure. The vendor determines transcription quality, supported languages, and feature availability. | Yes |
| recognizer.label | string | A custom label to identify this recognizer instance in logs or dashboards. Helpful when multiple recognizers are configured. | No |
| recognizer.language | string | The primary language code for transcription, for example, `en-US` for English, `fr-FR` for French. Determines how speech is interpreted. | No |
| recognizer.hints | array | An array of words or phrases that may appear in the audio and should be recognized more accurately. Useful for domain-specific terms, names, or technical vocabulary. | No |
| recognizer.hintsBoost | number | A numeric value specifying how strongly the recognizer should prioritize the hint words. Higher numbers give stronger emphasis, improving accuracy for key terms. | No |
| recognizer.altLanguages | array | An array of additional language codes that the recognizer can use for multilingual audio. Allows recognition of mixed-language content. | No |
| recognizer.profanityFilter | boolean | If `true`, the recognizer will automatically remove or mask profanity from the transcription output. | No |
| recognizer.interim | boolean | If `true`, returns partial transcription results as the audio is being processed. Useful for live captions or real-time feedback. | No |
| recognizer.punctuation | boolean | If `true`, punctuation marks, for example, periods or commas, are included in the transcription to improve readability. | No |
| recognizer.diarization | boolean | If `true`, enables speaker diarization, which assigns segments of the transcript to individual speakers. | No |
| recognizer.diarizationMinSpeakers | number | The minimum number of speakers expected in the audio. Helps the diarization algorithm distinguish between speakers accurately. | No |
| recognizer.diarizationMaxSpeakers | number | The maximum number of speakers expected in the audio. Prevents the algorithm from splitting speech unnecessarily. | No |
| recognizer.vad | object | Voice Activity Detection settings. Determines how the system detects when someone is speaking vs. silence, improving transcription timing and accuracy. | No |
| recognizer.fallbackVendor | string | Specifies an alternative transcription vendor to use if the primary vendor fails. Ensures reliability in critical workflows. | No |
| recognizer.fallbackLanguage | string | Language code to use for the fallback vendor. Must match a language supported by the fallback provider. | No |
| referHook | string | A webhook URL to invoke when a SIP REFER is received in the session. | No |
| reset | string \| array | Resets either the `recognizer` or `synthesizer` to default application settings. | No |
| record.action | string | The call recording action: `startCallRecording`, `stopCallRecording`, `pauseCallRecording`, or `resumeCallRecording`. | Yes |
| record.siprecServerURL | string \| array | The SIP URI(s) for the SIPREC server. Required if `record.action` is `startCallRecording`. | Conditional |
| record.recordingID | string | A user-defined identifier for the recording. | No |
| record.headers | object | SIP headers to include in the SIPREC request. | No |
| sipRequestWithinDialogHook | string | A webhook to invoke when a SIP request (such as INFO, NOTIFY, REFER) is received within a dialog. | No |
| speechFallback.type | string | The type of fallback action (for example, `dial` or `refer`). | Yes (if used) |
| speechFallback.reason | string | The reason for executing the fallback (for example, `recognizerFailure`). | No |
| speechFallback.dial | object | A `dial` verb to execute as fallback if speech recognition fails. | No |
| speechFallback.refer | object | A `sip:refer` verb to execute as fallback if speech recognition fails. | No |
| synthesizer | object | Session-level text-to-speech settings. See [Synthesizer Properties](#synthesizer-properties) for details. | No |
| synthesizer.vendor | string | The TTS provider to use, for example, `google`, `aws`, `microsoft`, `deepgram`, `elevenlabs`, `nuance`, or `custom:<provider-name>`. The vendor determines the available voices, languages, and engine options. See [supported speech vendors](/voice-gateway/references/tts-and-stt-vendors). | Yes |
| synthesizer.label | string | A custom label to identify this synthesizer instance. Useful when multiple TTS configurations from the same vendor are configured. Must match a label defined in the Voice Gateway [Application](/voice-gateway/webapp/applications#add-additional-tts-and-stt-vendor). | No |
| synthesizer.language | string | The language code for the speech output, for example, `en-US` or `de-DE`. Required if a vendor is defined. | No |
| synthesizer.voice | string \| object | The specific voice to use. Can be a string representing the vendor-specific voice name (for example, `en-US-Wavenet-F` for Google TTS) or an object with advanced properties. Defaults to the Application-level TTS voice if not provided. | No |
| synthesizer.engine | string | The TTS engine type. Options are: <ul><li>**standard** — the default engine</li><li>**neural** — a high-quality natural voice</li><li>**generative** — an experimental AI voice</li><li>**long-form** — optimized for long text</li></ul> | No |
| synthesizer.gender | string | The desired voice gender: `MALE`, `FEMALE`, or `NEUTRAL`. Used for vendors that support gender selection. | No |
| synthesizer.options | object | A vendor-specific TTS options object. Common options include `speakingRate` (0.25–4.0), `pitch` (-20–20), and `volumeGainDb` (-96–16). These control the speech speed, pitch, and volume. | No |
| synthesizer.fallbackVendor | string | An alternative TTS vendor to use if the primary vendor fails or returns an error. | No |
| synthesizer.fallbackLabel | string | A label for the fallback TTS instance. Must match a label defined in the Voice Gateway [Application](/voice-gateway/webapp/applications#add-additional-tts-and-stt-vendor). | No |
| synthesizer.fallbackLanguage | string | The language code for the fallback synthesizer. Defaults to the primary language if not provided. | No |
| synthesizer.fallbackVoice | string \| object | The voice for the fallback synthesizer. Can be a string or object. | No |
| transcribe | object | A nested `transcribe` verb for background transcription of audio. | No |
| vad.enable | boolean | Enables or disables Voice Activity Detection (VAD). | Yes (if used) |
| vad.voiceMs | number | Duration in milliseconds of voice required to trigger detection. | No |
| vad.silenceMs | number | Duration in milliseconds of silence required to end detection. | No |
| vad.strategy | string | The VAD detection strategy (for example, `adaptive` or `fixed`). | No |
| vad.mode | number | Numeric value representing VAD sensitivity mode. | No |

## More Information

* [Listen](/voice-gateway/references/verbs/listen)
* [Gather](/voice-gateway/references/verbs/gather)
