---
title: "Answer call"
method: POST
path: "/calls/{call_control_id}/actions/answer"
tags: ["Call Commands"]
---

# Answer call

`POST /calls/{call_control_id}/actions/answer`

Answer an incoming call. You must issue this command before executing subsequent commands on an incoming call.

**Expected Webhooks:**

- `call.answered`
- `call.hold` and `call.unhold` if the call is held/unheld
- `call.deepfake_detection.result` if `deepfake_detection` was enabled
- `call.deepfake_detection.error` if `deepfake_detection` was enabled and an error occurred
- `streaming.started`, `streaming.stopped` or `streaming.failed` if `stream_url` was set

When the `record` parameter is set to `record-from-answer`, the response will include a `recording_id` field.

## Path parameters

- `call_control_id` string, required

## Request body

- AnswerRequest
  - `assistant` CallAssistantRequest — AI Assistant configuration. All fields except `id` are optional — the assistant's stored configuration will be used as fallback for any omitted fields.
    - `dynamic_variables` object — Map of dynamic variables and their default values. Dynamic variables can be referenced in instructions, greeting, and tool definitions using the `{{variable_name}}` syntax. Call-control-agent automatically merges in `telnyx_call_*` variables (telnyx_call_to, telnyx_call_from, telnyx_conversation_channel, telnyx_agent_target, telnyx_end_user_target, telnyx_call_caller_id_name) and custom header variables.
    - `external_llm` object — External LLM configuration for bringing your own LLM endpoint.
      - `authentication_method` 'token' | 'certificate' — Authentication method used when connecting to the external LLM endpoint.
      - `base_url` string — Base URL for the external LLM endpoint.
      - `certificate_ref` string — Integration secret identifier for the client certificate used with certificate authentication.
      - `forward_metadata` boolean — When enabled, Telnyx forwards the assistant's dynamic variables to the external LLM endpoint. Defaults to false. The chat completion request includes a top-level `extra_metadata` object when dynamic variables are available. For example: `{"extra_metadata":{"customer_name":"Jane","account_id":"acct_789","telnyx_agent_target":"+13125550100","telnyx_end_user_target":"+13125550123"}}`.
      - `llm_api_key_ref` string — Integration secret identifier for the external LLM API key.
      - `model` string — Model identifier to use with the external LLM endpoint.
      - `token_retrieval_url` string — URL used to retrieve an access token when certificate authentication is enabled.
    - `fallback_config` object — Fallback LLM configuration used when the primary LLM provider is unavailable.
      - `external_llm` object — External LLM fallback configuration.
        - `authentication_method` 'token' | 'certificate' — Authentication method used when connecting to the external LLM endpoint.
        - `base_url` string — Base URL for the external LLM endpoint.
        - `certificate_ref` string — Integration secret identifier for the client certificate used with certificate authentication.
        - `forward_metadata` boolean — When enabled, Telnyx forwards the assistant's dynamic variables to the external LLM endpoint. Defaults to false. The chat completion request includes a top-level `extra_metadata` object when dynamic variables are available. For example: `{"extra_metadata":{"customer_name":"Jane","account_id":"acct_789","telnyx_agent_target":"+13125550100","telnyx_end_user_target":"+13125550123"}}`.
        - `llm_api_key_ref` string — Integration secret identifier for the external LLM API key.
        - `model` string — Model identifier to use with the external LLM endpoint.
        - `token_retrieval_url` string — URL used to retrieve an access token when certificate authentication is enabled.
      - `llm_api_key_ref` string — Integration secret identifier for the fallback model API key.
      - `model` string — Fallback Telnyx-hosted model to use when the primary LLM provider is unavailable.
    - `greeting` string — Initial greeting text spoken when the assistant starts. Can be plain text for any voice or SSML for `AWS.Polly.<voice_id>` voices. There is a 3,000 character limit.
    - `id` string, required — The identifier of the AI assistant to use.
    - `instructions` string — System instructions for the voice assistant. Can be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables). This will overwrite the instructions set in the assistant configuration.
    - `llm_api_key_ref` string — Integration secret identifier for the LLM provider API key. Use this field to reference an [integration secret](https://developers.telnyx.com/api/secrets-manager/integration-secrets/create-integration-secret) containing your LLM provider API key. Supports any LLM provider (OpenAI, Anthropic, etc.).
    - `mcp_servers` object[] — MCP (Model Context Protocol) server configurations for extending the assistant's capabilities with external tools and data sources.
    - `model` string — LLM model override for this call. If omitted, the assistant's configured model is used.
    - `name` string — Assistant name override for this call.
    - `observability_settings` object — Observability configuration for the assistant session, including Langfuse integration for tracing and monitoring.
    - `openai_api_key_ref` string — Deprecated — use `llm_api_key_ref` instead. Integration secret identifier for the OpenAI API key. This field is maintained for backward compatibility; `llm_api_key_ref` is the canonical field name and supports all LLM providers.
    - `tools` union[] — Inline tool definitions available to the assistant (webhook, retrieval, transfer, hangup, etc.). Overrides the assistant's stored tools if provided.
      - union
        - BookAppointmentTool
          - `book_appointment` BookAppointmentToolParams, required
            - `api_key_ref` string, required — Reference to an integration secret that contains your Cal.com API key. You would pass the `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api/secrets-manager/integration-secrets/create-integration-secret) that refers to your Cal.com API key.
            - `attendee_name` string — The name of the attendee [cal.com](https://cal.com/docs/api-reference/v2/bookings/create-a-booking#body-attendee-name). If not provided, the assistant will ask for the attendee's name.
            - `attendee_timezone` string — The timezone of the attendee [cal.com](https://cal.com/docs/api-reference/v2/bookings/create-a-booking#body-attendee-timezone). If not provided, the assistant will ask for the attendee's timezone.
            - `event_type_id` integer, required — Event Type ID for which slots are being fetched. [cal.com](https://cal.com/docs/api-reference/v2/bookings/create-a-booking#body-event-type-id)
          - `type` 'book_appointment', required
        - CheckAvailabilityTool
          - `check_availability` CheckAvailabilityToolParams, required
            - `api_key_ref` string, required — Reference to an integration secret that contains your Cal.com API key. You would pass the `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api/secrets-manager/integration-secrets/create-integration-secret) that refers to your Cal.com API key.
            - `event_type_id` integer, required — Event Type ID for which slots are being fetched. [cal.com](https://cal.com/docs/api-reference/v2/slots/get-available-slots#parameter-event-type-id)
          - `type` 'check_availability', required
        - WebhookTool
          - `type` 'webhook', required
          - `webhook` CallControlWebhookToolParams, required
            - `body_parameters` object — The body parameters the webhook tool accepts, described as a JSON Schema object. These parameters will be passed to the webhook as the body of the request. See the [JSON Schema reference](https://json-schema.org/understanding-json-schema) for documentation about the format
              - …
            - `description` string, required — The description of the tool.
            - `headers` object[] — The headers to be sent to the external tool.
              - …
            - `method` 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' — The HTTP method to be used when calling the external tool.
            - `name` string, required — The name of the tool.
            - `path_parameters` object — The path parameters the webhook tool accepts, described as a JSON Schema object. These parameters will be passed to the webhook as the path of the request if the URL contains a placeholder for a value. See the [JSON Schema reference](https://json-schema.org/understanding-json-schema) for documentation about the format
              - …
            - `query_parameters` object — The query parameters the webhook tool accepts, described as a JSON Schema object. These parameters will be passed to the webhook as the query of the request. See the [JSON Schema reference](https://json-schema.org/understanding-json-schema) for documentation about the format
              - …
            - `url` string, required — The URL of the external tool to be called. This URL is going to be used by the assistant. The URL can be templated like: `https://example.com/api/v1/{id}`, where `{id}` is a placeholder for a value that will be provided by the assistant if `path_parameters` are provided with the `id` attribute.
        - HangupTool
          - `hangup` HangupToolParams, required
            - `description` string — The description of the function that will be passed to the assistant.
          - `type` 'hangup', required
        - TransferTool
          - `transfer` CallControlTransferToolParams, required
            - `from` string, required — Number or SIP URI placing the call.
            - `targets` union, required — The different possible targets of the transfer. The assistant will be able to choose one of the targets to transfer the call to. This can also be a dynamic variable string like `{{ targets }}` where `targets` is returned by the dynamic variables webhook and resolves to an array of target objects at runtime.
              - …
          - `type` 'transfer', required
        - CallControlRetrievalTool
          - `retrieval` CallControlBucketIds, required
            - `bucket_ids` string[], required
            - `max_num_results` integer — The maximum number of results to retrieve as context for the language model.
          - `type` 'retrieval', required
    - `voice_settings` VoiceSettings
      - `api_key_ref` string — The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) that refers to your ElevenLabs API key. Warning: Free plans are unlikely to work with this integration.
      - `background_audio` union — Optional background audio to play on the call. Use a predefined media bed, or supply a looped MP3 URL. If a media URL is chosen in the portal, customers can preview it before saving.
        - object
          - `type` 'predefined_media', required — Select from predefined media options.
          - `value` 'silence' | 'office', required — The predefined media to use. `silence` disables background audio.
          - `volume` number — Volume level for the predefined background audio. Supports values from 0.1 to 1.0 in 0.1 increments.
        - object
          - `type` 'media_url', required — Provide a direct URL to an MP3 file. The audio will loop during the call.
          - `value` string, uri, required — HTTPS URL to an MP3 file.
        - object
          - `type` 'media_name', required — Reference a previously uploaded media by its name from Telnyx Media Storage.
          - `value` string, required — The `name` of a media asset created via [Media Storage API](https://developers.telnyx.com/api/media-storage/create-media-storage). The audio will loop during the call.
      - `expressive_mode` boolean — Enables emotionally expressive speech using SSML emotion tags. When enabled, the assistant uses audio tags like angry, excited, content, and sad to add emotional nuance. Only supported for Telnyx Ultra voices.
      - `language_boost` 'null' | 'auto' | 'Chinese' | 'Chinese,Yue' | 'English' | 'Arabic' | 'Russian' | 'Spanish' | 'French' | 'Portuguese' | 'German' | 'Turkish' | 'Dutch' | 'Ukrainian' | 'Vietnamese' | 'Indonesian' | 'Japanese' | 'Italian' | 'Korean' | 'Thai' | 'Polish' | 'Romanian' | 'Greek' | 'Czech' | 'Finnish' | 'Hindi' | 'Bulgarian' | 'Danish' | 'Hebrew' | 'Malay' | 'Persian' | 'Slovak' | 'Swedish' | 'Croatian' | 'Filipino' | 'Hungarian' | 'Norwegian' | 'Slovenian' | 'Catalan' | 'Nynorsk' | 'Tamil' | 'Afrikaans', nullable — Enhances recognition for specific languages and dialects during MiniMax TTS synthesis. Default is null (no boost). Set to 'auto' for automatic language detection. Only applicable when using MiniMax voices.
      - `similarity_boost` number — Determines how closely the AI should adhere to the original voice when attempting to replicate it. Only applicable when using ElevenLabs.
      - `speed` number — Adjusts speech velocity. 1.0 is default speed; values less than 1.0 slow speech; values greater than 1.0 accelerate it. Only applicable when using ElevenLabs.
      - `style` number — Determines the style exaggeration of the voice. Amplifies speaker style but consumes additional resources when set above 0. Only applicable when using ElevenLabs.
      - `temperature` number — Determines how stable the voice is and the randomness between each generation. Lower values create a broader emotional range; higher values produce more consistent, monotonous output. Only applicable when using ElevenLabs.
      - `use_speaker_boost` boolean — Amplifies similarity to the original speaker voice. Increases computational load and latency slightly. Only applicable when using ElevenLabs.
      - `voice` string, required — The voice to be used by the voice assistant. Check the full list of [available voices](https://developers.telnyx.com/docs/tts-stt/tts-available-voices) via our voices API. To use ElevenLabs, you must reference your ElevenLabs API key as an integration secret under the `api_key_ref` field. See [integration secrets documentation](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) for details. For Telnyx voices, use `Telnyx.<model_id>.<voice_id>` (e.g. Telnyx.KokoroTTS.af_heart). The voice portion of the identifier supports [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables) using mustache syntax (e.g. `Telnyx.Ultra.{{voice_id}}`). The variable is resolved at call time from your dynamic variables webhook, allowing you to select the voice dynamically per call.
      - `voice_speed` number — The speed of the voice in the range [0.25, 2.0]. 1.0 is deafult speed. Larger numbers make the voice faster, smaller numbers make it slower. This is only applicable for Telnyx Natural voices.
  - `billing_group_id` string, uuid — Use this field to set the Billing Group ID for the call. Must be a valid and existing Billing Group ID.
  - `client_state` string — Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string.
  - `command_id` string — Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same `call_control_id`.
  - `conversation_relay_config` ConversationRelayEmbeddedConfig — Starts a Conversation Relay session automatically when the answered/dialed call is answered. This embedded shape is supported on `answer` and `dial`. It uses public field names (`url`, `dtmf_detection`, `greeting`, `voice`, `language`, etc.) and maps them to the underlying Conversation Relay action. `client_state`, `tts_language`, and `transcription_language` inside this object are ignored; use the parent command's `client_state` and `command_id` fields instead.
    - `custom_parameters` object — Custom key-value parameters forwarded to the relay session as assistant dynamic variables.
    - `dtmf_detection` boolean — Enable DTMF detection for the relay session.
    - `greeting` string — Text played when the relay session starts.
    - `interruptible` 'none' | 'any' | 'speech' | 'dtmf' — Controls when caller input can interrupt assistant speech. `any` allows speech or DTMF interruptions; `none` disables interruptions; `speech` allows speech only; `dtmf` allows DTMF only.
    - `interruptible_greeting` 'none' | 'any' | 'speech' | 'dtmf' — Controls when caller input can interrupt assistant speech. `any` allows speech or DTMF interruptions; `none` disables interruptions; `speech` allows speech only; `dtmf` allows DTMF only.
    - `interruption_settings` ConversationRelayInterruptionSettings — Settings for handling caller interruptions during Conversation Relay speech.
      - `enable` boolean — Legacy boolean form. `true` is equivalent to `interruptible=any`; `false` is equivalent to `interruptible=none`.
      - `interruptible` 'none' | 'any' | 'speech' | 'dtmf' — Controls when caller input can interrupt assistant speech. `any` allows speech or DTMF interruptions; `none` disables interruptions; `speech` allows speech only; `dtmf` allows DTMF only.
      - `interruptible_greeting` 'none' | 'any' | 'speech' | 'dtmf' — Controls when caller input can interrupt assistant speech. `any` allows speech or DTMF interruptions; `none` disables interruptions; `speech` allows speech only; `dtmf` allows DTMF only.
      - `welcome_greeting_interruptible` 'none' | 'any' | 'speech' | 'dtmf' — Controls when caller input can interrupt assistant speech. `any` allows speech or DTMF interruptions; `none` disables interruptions; `speech` allows speech only; `dtmf` allows DTMF only.
    - `language` string — Default language for both text-to-speech and speech recognition.
    - `languages` ConversationRelayLanguage[] — Per-language TTS and transcription settings.
      - `language` string, required — BCP 47 language tag for this language configuration.
      - `speech_model` string — Conversation Relay speech model. Prefer `transcription_engine_config.transcription_model` when configuring speech-to-text.
      - `transcription_engine` 'Google' | 'Telnyx' | 'Deepgram' | 'Azure' | 'xAI' | 'AssemblyAI' | 'Speechmatics' | 'Soniox' | 'A' | 'B' — Engine to use for speech recognition. Legacy values `A` - `Google`, `B` - `Telnyx` are supported for backward compatibility. When provided in a Conversation Relay language entry, Telnyx derives `transcription_provider` and `speech_model` for that language.
      - `transcription_engine_config` ConversationRelayTranscriptionEngineConfig — Engine-specific transcription settings for Conversation Relay. This accepts the same provider-specific options used by the Call Transcription Start command, such as `transcription_model`, without requiring the engine discriminator to be repeated inside this object.
      - `transcription_provider` string — Conversation Relay transcription provider name. Prefer `transcription_engine` when configuring speech-to-text.
      - `tts_provider` string — Text-to-speech provider for this language. If omitted and `voice` is provided, Telnyx derives the provider from the voice identifier.
      - `voice` string — Voice identifier for this language.
      - `voice_settings` union — The settings associated with the voice selected
        - ElevenLabsVoiceSettings
          - `api_key_ref` string — The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api/secrets-manager/integration-secrets/create-integration-secret) that refers to your ElevenLabs API key. Warning: Free plans are unlikely to work with this integration.
          - `type` 'elevenlabs', required — Voice settings provider type
        - TelnyxVoiceSettings
          - `type` 'telnyx', required — Voice settings provider type
          - `voice_speed` number, float — The voice speed to be used for the voice. The voice speed must be between 0.1 and 2.0. Default value is 1.0. Not supported for `Telnyx.Bayan.*` or `Telnyx.Sukhan.*` voices.
        - AWSVoiceSettings
          - `type` 'aws', required — Voice settings provider type
        - MinimaxVoiceSettings
          - `language_boost` 'null' | 'auto' | 'Chinese' | 'Chinese,Yue' | 'English' | 'Arabic' | 'Russian' | 'Spanish' | 'French' | 'Portuguese' | 'German' | 'Turkish' | 'Dutch' | 'Ukrainian' | 'Vietnamese' | 'Indonesian' | 'Japanese' | 'Italian' | 'Korean' | 'Thai' | 'Polish' | 'Romanian' | 'Greek' | 'Czech' | 'Finnish' | 'Hindi' | 'Bulgarian' | 'Danish' | 'Hebrew' | 'Malay' | 'Persian' | 'Slovak' | 'Swedish' | 'Croatian' | 'Filipino' | 'Hungarian' | 'Norwegian' | 'Slovenian' | 'Catalan' | 'Nynorsk' | 'Tamil' | 'Afrikaans', nullable — Enhances recognition for specific languages and dialects during MiniMax TTS synthesis. Default is null (no boost). Set to 'auto' for automatic language detection.
          - `pitch` integer — Voice pitch adjustment. Default is 0.
          - `speed` number, float — Speech speed multiplier. Default is 1.0.
          - `type` 'minimax', required — Voice settings provider type
          - `vol` number, float — Speech volume multiplier. Default is 1.0.
        - AzureVoiceSettings
          - `api_key_ref` string — The `identifier` for an integration secret that refers to your Azure Speech API key.
          - `deployment_id` string — The deployment ID for a custom Azure neural voice.
          - `effect` 'eq_car' | 'eq_telecomhp8k' — Audio effect to apply.
          - `gender` 'Male' | 'Female' — Voice gender filter.
          - `region` string — The Azure region for the Speech service (e.g., `eastus`, `westeurope`). Required when using a custom API key.
          - `type` 'azure', required — Voice settings provider type
        - RimeVoiceSettings
          - `type` 'rime', required — Voice settings provider type
          - `voice_speed` number, float — Speech speed multiplier. Default is 1.0.
        - ResembleVoiceSettings
          - `format` 'wav' | 'mp3' — Output audio format.
          - `precision` 'PCM_16' | 'PCM_24' | 'PCM_32' | 'MULAW' — Audio precision format.
          - `sample_rate` '8000' | '16000' | '22050' | '32000' | '44100' | '48000' — Audio sample rate in Hz.
          - `type` 'resemble', required — Voice settings provider type
        - InworldVoiceSettings
          - `delivery_mode` 'STABLE' | 'BALANCED' | 'CREATIVE' — Controls the expressiveness and consistency of the Inworld `TTS2` model's speech synthesis. `STABLE` favors consistent, predictable output, `CREATIVE` allows more expressive variation, and `BALANCED` sits in between. Optional and only supported by `TTS2`; when omitted, the provider default applies.
          - `type` 'inworld', required — Voice settings provider type
        - XAIVoiceSettings
          - `language` string — Language code, or `auto` to detect automatically.
          - `type` 'xai', required — Voice settings provider type
    - `provider` string — Structured voice provider. Must be supplied together with `structured_provider`.
    - `structured_provider` ConversationRelayStructuredProvider — Provider-specific structured voice settings. Must be supplied together with `provider`; Telnyx sends the value as the nested provider configuration for Conversation Relay.
    - `transcription_engine` 'Google' | 'Telnyx' | 'Deepgram' | 'Azure' | 'xAI' | 'AssemblyAI' | 'Speechmatics' | 'Soniox' | 'A' | 'B' — Engine to use for speech recognition. Legacy values `A` - `Google`, `B` - `Telnyx` are supported for backward compatibility. For Conversation Relay, use this field with `transcription_engine_config`; the `transcription` object is not supported.
    - `transcription_engine_config` ConversationRelayTranscriptionEngineConfig — Engine-specific transcription settings for Conversation Relay. This accepts the same provider-specific options used by the Call Transcription Start command, such as `transcription_model`, without requiring the engine discriminator to be repeated inside this object.
    - `tts_provider` string — Text-to-speech provider. If omitted, Telnyx derives it from `voice` or `provider`.
    - `url` string, required — WebSocket URL for your Conversation Relay server. Must start with `ws://` or `wss://`.
    - `voice` string — The voice to be used by the voice assistant. Currently we support ElevenLabs, Telnyx and AWS voices. **Supported Providers:** - **AWS:** Use `AWS.Polly.<VoiceId>` (e.g., `AWS.Polly.Joanna`). For neural voices, which provide more realistic, human-like speech, append `-Neural` to the `VoiceId` (e.g., `AWS.Polly.Joanna-Neural`). Check the [available voices](https://docs.aws.amazon.com/polly/latest/dg/available-voices.html) for compatibility. - **Azure:** Use `Azure.<VoiceId>. (e.g. Azure.en-CA-ClaraNeural, Azure.en-CA-LiamNeural, Azure.en-US-BrianMultilingualNeural, Azure.en-US-Ava:DragonHDLatestNeural. For a complete list of voices, go to [Azure Voice Gallery](https://speech.microsoft.com/portal/voicegallery).) - **ElevenLabs:** Use `ElevenLabs.<ModelId>.<VoiceId>` (e.g., `ElevenLabs.BaseModel.John`). The `ModelId` part is optional. To use ElevenLabs, you must provide your ElevenLabs API key as an integration secret under `"voice_settings": {"api_key_ref": "<secret_id>"}`. See [integration secrets documentation](https://developers.telnyx.com/api/secrets-manager/integration-secrets/create-integration-secret) for details. Check [available voices](https://elevenlabs.io/docs/api-reference/get-voices). - **Telnyx:** Use `Telnyx.<model_id>.<voice_id>` - **Inworld:** Use `Inworld.<ModelId>.<VoiceId>` (e.g., `Inworld.Mini.Loretta`, `Inworld.Max.Oliver`, `Inworld.TTS2.Loretta`). Supported models: `Mini`, `Max`, `TTS2`. - **Fish Audio:** Use `FishAudio.<ModelId>.<VoiceId>` (e.g., `FishAudio.s2.1-pro.<reference_id>`). Supported models: `s2.1-pro`, `s2-pro`, `s1`. `VoiceId` is a Fish Voice-Library reference ID. - **xAI:** Use `xAI.<VoiceId>` (e.g., `xAI.eve`). Available voices: `eve`, `ara`, `rex`, `sal`, `leo`. - **Humain:** Use `Humain.<VoiceId>` (e.g., `Humain.sara-ar`). Available voices: `sara-en`, `abdulaziz-en`, `sara-ar`, `abdulaziz-ar`, `nourah-ar`, `abdullah-ar`. Native Arabic (Saudi dialect) and English voices only — no `ModelId` segment.
    - `voice_settings` union — The settings associated with the voice selected
      - ElevenLabsVoiceSettings
        - `api_key_ref` string — The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api/secrets-manager/integration-secrets/create-integration-secret) that refers to your ElevenLabs API key. Warning: Free plans are unlikely to work with this integration.
        - `type` 'elevenlabs', required — Voice settings provider type
      - TelnyxVoiceSettings
        - `type` 'telnyx', required — Voice settings provider type
        - `voice_speed` number, float — The voice speed to be used for the voice. The voice speed must be between 0.1 and 2.0. Default value is 1.0. Not supported for `Telnyx.Bayan.*` or `Telnyx.Sukhan.*` voices.
      - AWSVoiceSettings
        - `type` 'aws', required — Voice settings provider type
      - MinimaxVoiceSettings
        - `language_boost` 'null' | 'auto' | 'Chinese' | 'Chinese,Yue' | 'English' | 'Arabic' | 'Russian' | 'Spanish' | 'French' | 'Portuguese' | 'German' | 'Turkish' | 'Dutch' | 'Ukrainian' | 'Vietnamese' | 'Indonesian' | 'Japanese' | 'Italian' | 'Korean' | 'Thai' | 'Polish' | 'Romanian' | 'Greek' | 'Czech' | 'Finnish' | 'Hindi' | 'Bulgarian' | 'Danish' | 'Hebrew' | 'Malay' | 'Persian' | 'Slovak' | 'Swedish' | 'Croatian' | 'Filipino' | 'Hungarian' | 'Norwegian' | 'Slovenian' | 'Catalan' | 'Nynorsk' | 'Tamil' | 'Afrikaans', nullable — Enhances recognition for specific languages and dialects during MiniMax TTS synthesis. Default is null (no boost). Set to 'auto' for automatic language detection.
        - `pitch` integer — Voice pitch adjustment. Default is 0.
        - `speed` number, float — Speech speed multiplier. Default is 1.0.
        - `type` 'minimax', required — Voice settings provider type
        - `vol` number, float — Speech volume multiplier. Default is 1.0.
      - AzureVoiceSettings
        - `api_key_ref` string — The `identifier` for an integration secret that refers to your Azure Speech API key.
        - `deployment_id` string — The deployment ID for a custom Azure neural voice.
        - `effect` 'eq_car' | 'eq_telecomhp8k' — Audio effect to apply.
        - `gender` 'Male' | 'Female' — Voice gender filter.
        - `region` string — The Azure region for the Speech service (e.g., `eastus`, `westeurope`). Required when using a custom API key.
        - `type` 'azure', required — Voice settings provider type
      - RimeVoiceSettings
        - `type` 'rime', required — Voice settings provider type
        - `voice_speed` number, float — Speech speed multiplier. Default is 1.0.
      - ResembleVoiceSettings
        - `format` 'wav' | 'mp3' — Output audio format.
        - `precision` 'PCM_16' | 'PCM_24' | 'PCM_32' | 'MULAW' — Audio precision format.
        - `sample_rate` '8000' | '16000' | '22050' | '32000' | '44100' | '48000' — Audio sample rate in Hz.
        - `type` 'resemble', required — Voice settings provider type
      - InworldVoiceSettings
        - `delivery_mode` 'STABLE' | 'BALANCED' | 'CREATIVE' — Controls the expressiveness and consistency of the Inworld `TTS2` model's speech synthesis. `STABLE` favors consistent, predictable output, `CREATIVE` allows more expressive variation, and `BALANCED` sits in between. Optional and only supported by `TTS2`; when omitted, the provider default applies.
        - `type` 'inworld', required — Voice settings provider type
      - XAIVoiceSettings
        - `language` string — Language code, or `auto` to detect automatically.
        - `type` 'xai', required — Voice settings provider type
  - `custom_headers` CustomSipHeader[] — Custom headers to be added to the SIP INVITE response.
    - `name` string, required — The name of the header to add.
    - `value` string, required — The value of the header.
  - `deepfake_detection` object — Enables deepfake detection on the call. When enabled, audio from the remote party is streamed to a detection service that analyzes whether the voice is AI-generated. Results are delivered via the `call.deepfake_detection.result` webhook.
    - `enabled` boolean, required — Whether deepfake detection is enabled.
    - `rtp_timeout` integer — Maximum time in seconds to wait for RTP audio before timing out. If no audio is received within this window, detection stops with an error.
    - `timeout` integer — Maximum time in seconds to wait for a detection result before timing out.
  - `preferred_codecs` 'G722,PCMU,PCMA,G729,OPUS,VP8,H264' — The list of comma-separated codecs in a preferred order for the forked media to be received.
  - `record` 'record-from-answer' — Start recording automatically after an event. Disabled by default.
  - `record_channels` 'single' | 'dual' — Defines which channel should be recorded ('single' or 'dual') when `record` is specified.
  - `record_custom_file_name` string — The custom recording file name to be used instead of the default `call_leg_id`. Telnyx will still add a Unix timestamp suffix.
  - `record_format` 'wav' | 'mp3' — Defines the format of the recording ('wav' or 'mp3') when `record` is specified.
  - `record_max_length` integer — Defines the maximum length for the recording in seconds when `record` is specified. The minimum value is 0. The maximum value is 43200. The default value is 0 (infinite).
  - `record_timeout_secs` integer — The number of seconds that Telnyx will wait for the recording to be stopped if silence is detected when `record` is specified. The timer only starts when the speech is detected. Please note that call transcription is used to detect silence and the related charge will be applied. The minimum value is 0. The default value is 0 (infinite).
  - `record_track` 'both' | 'inbound' | 'outbound' — The audio track to be recorded. Can be either `both`, `inbound` or `outbound`. If only single track is specified (`inbound`, `outbound`), `channels` configuration is ignored and it will be recorded as mono (single channel).
  - `record_trim` 'trim-silence' — When set to `trim-silence`, silence will be removed from the beginning and end of the recording.
  - `send_silence_when_idle` boolean — Generate silence RTP packets when no transmission available.
  - `sip_headers` SipHeader[] — SIP headers to be added to the SIP INVITE response. Currently only User-to-User header is supported.
    - `name` 'User-to-User', required — The name of the header to add.
    - `value` string, required — The value of the header.
  - `sound_modifications` SoundModifications — Use this field to modify sound effects, for example adjust the pitch.
    - `octaves` number, float — Adjust the pitch in octaves, values should be between -1 and 1, default 0
    - `pitch` number, float — Set the pitch directly, value should be > 0, default 1 (lower = lower tone)
    - `semitone` number, float — Adjust the pitch in semitones, values should be between -14 and 14, default 0
    - `track` string — The track to which the sound modifications will be applied. Accepted values are `inbound` or `outbound`
  - `stream_bidirectional_codec` 'PCMU' | 'PCMA' | 'G722' | 'OPUS' | 'AMR-WB' | 'L16' — Indicates codec for bidirectional streaming RTP payloads. Used only with stream_bidirectional_mode=rtp. Case sensitive.
  - `stream_bidirectional_mode` 'mp3' | 'rtp' — Configures method of bidirectional streaming (mp3, rtp).
  - `stream_bidirectional_target_legs` 'both' | 'self' | 'opposite' — Specifies which call legs should receive the bidirectional stream audio.
  - `stream_codec` 'PCMU' | 'PCMA' | 'G722' | 'OPUS' | 'AMR-WB' | 'L16' | 'default' — Specifies the codec to be used for the streamed audio. When set to 'default' or when transcoding is not possible, the codec from the call will be used.
  - `stream_track` 'inbound_track' | 'outbound_track' | 'both_tracks' — Specifies which track should be streamed.
  - `stream_url` string — The destination WebSocket address where the stream is going to be delivered.
  - `transcription` boolean — Enable transcription upon call answer. The default value is false.
  - `transcription_config` TranscriptionStartRequest
    - `client_state` string — Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string.
    - `command_id` string — Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same `call_control_id`.
    - `transcription_engine` 'Google' | 'Telnyx' | 'Deepgram' | 'Azure' | 'xAI' | 'AssemblyAI' | 'Speechmatics' | 'Soniox' | 'Parakeet' | 'Humain' | 'Reson8' | 'A' | 'B' — Engine to use for speech recognition. Legacy values `A` - `Google`, `B` - `Telnyx` are supported for backward compatibility.
    - `transcription_engine_config` union
      - TranscriptionEngineGoogleConfig
        - `enable_speaker_diarization` boolean — Enables speaker diarization.
        - `hints` string[] — Hints to improve transcription accuracy.
        - `interim_results` boolean — Whether to send also interim results. If set to false, only final results will be sent.
        - `language` 'af' | 'sq' | 'am' | 'ar' | 'hy' | 'az' | 'eu' | 'bn' | 'bs' | 'bg' | 'my' | 'ca' | 'yue' | 'zh' | 'hr' | 'cs' | 'da' | 'nl' | 'en' | 'et' | 'fil' | 'fi' | 'fr' | 'gl' | 'ka' | 'de' | 'el' | 'gu' | 'iw' | 'hi' | 'hu' | 'is' | 'id' | 'it' | 'ja' | 'jv' | 'kn' | 'kk' | 'km' | 'ko' | 'lo' | 'lv' | 'lt' | 'mk' | 'ms' | 'ml' | 'mr' | 'mn' | 'ne' | 'no' | 'fa' | 'pl' | 'pt' | 'pa' | 'ro' | 'ru' | 'rw' | 'sr' | 'si' | 'sk' | 'sl' | 'ss' | 'st' | 'es' | 'su' | 'sw' | 'sv' | 'ta' | 'te' | 'th' | 'tn' | 'tr' | 'ts' | 'uk' | 'ur' | 'uz' | 've' | 'vi' | 'xh' | 'zu' — Language to use for speech recognition
        - `max_speaker_count` integer — Defines maximum number of speakers in the conversation.
        - `min_speaker_count` integer — Defines minimum number of speakers in the conversation.
        - `model` 'latest_long' | 'latest_short' | 'command_and_search' | 'phone_call' | 'video' | 'default' | 'medical_conversation' | 'medical_dictation' — The model to use for transcription.
        - `profanity_filter` boolean — Enables profanity_filter.
        - `speech_context` object[] — Speech context to improve transcription accuracy.
          - `boost` number — Boost factor for the speech context.
          - `phrases` string[]
        - `transcription_engine` 'Google' — Engine identifier for Google transcription service
        - `use_enhanced` boolean — Enables enhanced transcription, this works for models `phone_call` and `video`.
      - TranscriptionEngineTelnyxConfig
        - `language` 'en' | 'zh' | 'de' | 'es' | 'ru' | 'ko' | 'fr' | 'ja' | 'pt' | 'tr' | 'pl' | 'ca' | 'nl' | 'ar' | 'sv' | 'it' | 'id' | 'hi' | 'fi' | 'vi' | 'he' | 'uk' | 'el' | 'ms' | 'cs' | 'ro' | 'da' | 'hu' | 'ta' | 'no' | 'th' | 'ur' | 'hr' | 'bg' | 'lt' | 'la' | 'mi' | 'ml' | 'cy' | 'sk' | 'te' | 'fa' | 'lv' | 'bn' | 'sr' | 'az' | 'sl' | 'kn' | 'et' | 'mk' | 'br' | 'eu' | 'is' | 'hy' | 'ne' | 'mn' | 'bs' | 'kk' | 'sq' | 'sw' | 'gl' | 'mr' | 'pa' | 'si' | 'km' | 'sn' | 'yo' | 'so' | 'af' | 'oc' | 'ka' | 'be' | 'tg' | 'sd' | 'gu' | 'am' | 'yi' | 'lo' | 'uz' | 'fo' | 'ht' | 'ps' | 'tk' | 'nn' | 'mt' | 'sa' | 'lb' | 'my' | 'bo' | 'tl' | 'mg' | 'as' | 'tt' | 'haw' | 'ln' | 'ha' | 'ba' | 'jw' | 'su' | 'auto_detect' — Language to use for speech recognition
        - `transcription_engine` 'Telnyx' — Engine identifier for Telnyx transcription service
        - `transcription_model` 'openai/whisper-tiny' | 'openai/whisper-large-v3-turbo' — The model to use for transcription.
      - union
        - DeepgramNova2Config
          - `hints` string[] — Nova-2 keyword biasing without intensifiers. Up to 100 terms to bias recognition toward. For weighted biasing, use `keywords_boosting` instead. Nova-2-only; use `keyterms` on Nova-3.
          - `interim_results` boolean — Whether to send also interim results. If set to false, only final results will be sent.
          - `keywords_boosting` object — Keywords and their respective intensifiers (boosting values) to improve transcription accuracy for specific words or phrases. The intensifier should be a numeric value. Example: `{"snuffleupagus": 5, "systrom": 2, "krieger": 1}`.
          - `language` 'bg' | 'ca' | 'zh' | 'zh-CN' | 'zh-Hans' | 'zh-TW' | 'zh-Hant' | 'zh-HK' | 'cs' | 'da' | 'da-DK' | 'nl' | 'en' | 'en-US' | 'en-AU' | 'en-GB' | 'en-NZ' | 'en-IN' | 'et' | 'fi' | 'nl-BE' | 'fr' | 'fr-CA' | 'de' | 'de-CH' | 'el' | 'hi' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'ko-KR' | 'lv' | 'lt' | 'ms' | 'no' | 'pl' | 'pt' | 'pt-BR' | 'pt-PT' | 'ro' | 'ru' | 'sk' | 'es' | 'es-419' | 'sv' | 'sv-SE' | 'th' | 'th-TH' | 'tr' | 'uk' | 'vi' | 'auto_detect' — Language to use for speech recognition with nova-2 model
          - `smart_format` boolean — Enable Deepgram's smart formatting (capitalization, punctuation, and digit normalization). Note: Telnyx defaults this to `true`, overriding Deepgram's underlying default of `false` — omit the field to get a smart-formatted transcript, or set it to `false` to receive the raw lowercase transcript without punctuation.
          - `transcription_engine` 'Deepgram', required
          - `transcription_model` 'deepgram/nova-2', required
          - `utterance_end_ms` integer — Number of milliseconds of silence to consider an utterance ended. Ranges from 0 to 5000 ms.
        - DeepgramNova3Config
          - `interim_results` boolean — Whether to send also interim results. If set to false, only final results will be sent.
          - `keyterms` string[] — Nova-3 keyterm prompting. Up to 100 domain-specific terms or brand names to bias recognition toward. Nova-3-only; use `hints` on Nova-2.
          - `keywords_boosting` object — Keywords and their respective intensifiers (boosting values) to improve transcription accuracy for specific words or phrases. The intensifier should be a numeric value. Example: `{"snuffleupagus": 5, "systrom": 2, "krieger": 1}`.
          - `language` 'en' | 'en-US' | 'en-AU' | 'en-GB' | 'en-IN' | 'en-NZ' | 'de' | 'nl' | 'sv' | 'sv-SE' | 'da' | 'da-DK' | 'es' | 'es-419' | 'fr' | 'fr-CA' | 'pt' | 'pt-BR' | 'pt-PT' | 'auto_detect' — Language to use for speech recognition with nova-3 model
          - `smart_format` boolean — Enable Deepgram's smart formatting (capitalization, punctuation, and digit normalization). Note: Telnyx defaults this to `true`, overriding Deepgram's underlying default of `false` — omit the field to get a smart-formatted transcript, or set it to `false` to receive the raw lowercase transcript without punctuation.
          - `transcription_engine` 'Deepgram', required
          - `transcription_model` 'deepgram/nova-3', required
          - `utterance_end_ms` integer — Number of milliseconds of silence to consider an utterance ended. Ranges from 0 to 5000 ms.
      - TranscriptionEngineAzureConfig
        - `api_key_ref` string — Reference to the API key for authentication. See [integration secrets documentation](https://developers.telnyx.com/api/secrets-manager/integration-secrets/create-integration-secret) for details. The parameter is optional as defaults are available for some regions.
        - `language` 'af' | 'am' | 'ar' | 'bg' | 'bn' | 'bs' | 'ca' | 'cs' | 'cy' | 'da' | 'de' | 'el' | 'en' | 'es' | 'et' | 'eu' | 'fa' | 'fi' | 'fr' | 'ga' | 'gl' | 'gu' | 'he' | 'hi' | 'hr' | 'hu' | 'hy' | 'id' | 'is' | 'it' | 'ja' | 'ka' | 'kk' | 'km' | 'kn' | 'ko' | 'lo' | 'lt' | 'lv' | 'mk' | 'ml' | 'mn' | 'mr' | 'ms' | 'mt' | 'my' | 'nb' | 'ne' | 'nl' | 'pl' | 'ps' | 'pt' | 'ro' | 'ru' | 'si' | 'sk' | 'sl' | 'so' | 'sq' | 'sr' | 'sv' | 'sw' | 'ta' | 'te' | 'th' | 'tr' | 'uk' | 'ur' | 'uz' | 'vi' | 'wuu' | 'yue' | 'zh' | 'zu' | 'auto' — Language to use for speech recognition
        - `region` 'australiaeast' | 'centralindia' | 'eastus' | 'northcentralus' | 'westeurope' | 'westus2', required — Azure region to use for speech recognition
        - `transcription_engine` 'Azure', required — Engine identifier for Azure transcription service
      - TranscriptionEngineXaiConfig
        - `interim_results` boolean — Whether to send also interim results. If set to false, only final results will be sent.
        - `language` 'ar' | 'cs' | 'da' | 'de' | 'en' | 'es' | 'fa' | 'fil' | 'fr' | 'hi' | 'id' | 'it' | 'ja' | 'ko' | 'mk' | 'ms' | 'nl' | 'pl' | 'pt' | 'ro' | 'ru' | 'sv' | 'th' | 'tr' | 'vi' — Language to use for speech recognition
        - `transcription_engine` 'xAI' — Engine identifier for xAI transcription service
        - `transcription_model` 'xai/grok-stt' — The model to use for transcription.
      - TranscriptionEngineAssemblyaiConfig
        - `interim_results` boolean — Whether to send also interim results. If set to false, only final results will be sent.
        - `transcription_engine` 'AssemblyAI' — Engine identifier for AssemblyAI transcription service
        - `transcription_model` 'assemblyai/universal-streaming' — The model to use for transcription.
      - TranscriptionEngineSpeechmaticsConfig
        - `interim_results` boolean — Whether to send also interim results. If set to false, only final results will be sent.
        - `language` 'en' | 'ba' | 'eu' | 'gl' | 'ga' | 'mt' | 'mn' | 'sw' | 'ug' | 'cy' | 'ar_en' | 'cmn_en' | 'en_ms' | 'en_ta' | 'tl' | 'es-bilingual-en' | 'cmn_en_ms_ta' — Language to use for speech recognition
        - `transcription_engine` 'Speechmatics' — Engine identifier for Speechmatics transcription service
        - `transcription_model` 'speechmatics/standard' — The model to use for transcription.
      - TranscriptionEngineSonioxConfig
        - `enable_endpoint_detection` boolean — When true, Soniox emits end-of-utterance events at the cadence configured by `max_endpoint_delay_ms`.
        - `interim_results` boolean — Whether to send also interim results. If set to false, only final results will be sent.
        - `language` string — ISO 639-1 language hint (e.g. `en`, `es`), or `auto` to omit the hint and let Soniox auto-detect supported languages multilingually.
        - `max_endpoint_delay_ms` integer — Maximum silence (in milliseconds) before Soniox emits an end-of-utterance event. Only honored when `enable_endpoint_detection` is true. Range: 500-3000 ms.
        - `transcription_engine` 'Soniox', required — Engine identifier for Soniox transcription service
        - `transcription_model` 'soniox/stt-rt-v4' — The model to use for transcription.
      - TranscriptionEngineParakeetConfig
        - `interim_results` boolean — Whether to send also interim results. If set to false, only final results will be sent.
        - `transcription_engine` 'Parakeet' — Engine identifier for Parakeet transcription service
        - `transcription_model` 'nvidia/parakeet-v3' — The model to use for transcription.
      - TranscriptionEngineHumainConfig
        - `language` 'ar' | 'en' | 'codeswitch' | 'auto' — The language of the audio to be transcribed. `codeswitch` enables Arabic/English code-switching. `auto` resolves server-side to code-switching.
        - `transcription_engine` 'Humain' — Engine identifier for Humain transcription service
        - `transcription_model` 'humain/realtime' — The model to use for transcription.
      - TranscriptionEngineReson8Config
        - `language` 'auto' | 'nl' | 'en' | 'fr' | 'fy' | 'de' | 'it' | 'pl' | 'pt' | 'es' | 'sv' — The language of the audio to be transcribed. `auto` (the default, also applied when `language` is omitted) enables automatic language detection.
        - `transcription_engine` 'Reson8' — Engine identifier for Reson8 transcription service
        - `transcription_model` 'reson8/turns' — The model to use for transcription.
      - TranscriptionEngineAConfig
        - `enable_speaker_diarization` boolean — Enables speaker diarization.
        - `hints` string[] — Hints to improve transcription accuracy.
        - `interim_results` boolean — Whether to send also interim results. If set to false, only final results will be sent.
        - `language` 'af' | 'sq' | 'am' | 'ar' | 'hy' | 'az' | 'eu' | 'bn' | 'bs' | 'bg' | 'my' | 'ca' | 'yue' | 'zh' | 'hr' | 'cs' | 'da' | 'nl' | 'en' | 'et' | 'fil' | 'fi' | 'fr' | 'gl' | 'ka' | 'de' | 'el' | 'gu' | 'iw' | 'hi' | 'hu' | 'is' | 'id' | 'it' | 'ja' | 'jv' | 'kn' | 'kk' | 'km' | 'ko' | 'lo' | 'lv' | 'lt' | 'mk' | 'ms' | 'ml' | 'mr' | 'mn' | 'ne' | 'no' | 'fa' | 'pl' | 'pt' | 'pa' | 'ro' | 'ru' | 'rw' | 'sr' | 'si' | 'sk' | 'sl' | 'ss' | 'st' | 'es' | 'su' | 'sw' | 'sv' | 'ta' | 'te' | 'th' | 'tn' | 'tr' | 'ts' | 'uk' | 'ur' | 'uz' | 've' | 'vi' | 'xh' | 'zu' — Language to use for speech recognition
        - `max_speaker_count` integer — Defines maximum number of speakers in the conversation.
        - `min_speaker_count` integer — Defines minimum number of speakers in the conversation.
        - `model` 'latest_long' | 'latest_short' | 'command_and_search' | 'phone_call' | 'video' | 'default' | 'medical_conversation' | 'medical_dictation' — The model to use for transcription.
        - `profanity_filter` boolean — Enables profanity_filter.
        - `speech_context` object[] — Speech context to improve transcription accuracy.
          - `boost` number — Boost factor for the speech context.
          - `phrases` string[]
        - `transcription_engine` 'A' — Engine identifier for Google transcription service
        - `use_enhanced` boolean — Enables enhanced transcription, this works for models `phone_call` and `video`.
      - TranscriptionEngineBConfig
        - `language` 'en' | 'zh' | 'de' | 'es' | 'ru' | 'ko' | 'fr' | 'ja' | 'pt' | 'tr' | 'pl' | 'ca' | 'nl' | 'ar' | 'sv' | 'it' | 'id' | 'hi' | 'fi' | 'vi' | 'he' | 'uk' | 'el' | 'ms' | 'cs' | 'ro' | 'da' | 'hu' | 'ta' | 'no' | 'th' | 'ur' | 'hr' | 'bg' | 'lt' | 'la' | 'mi' | 'ml' | 'cy' | 'sk' | 'te' | 'fa' | 'lv' | 'bn' | 'sr' | 'az' | 'sl' | 'kn' | 'et' | 'mk' | 'br' | 'eu' | 'is' | 'hy' | 'ne' | 'mn' | 'bs' | 'kk' | 'sq' | 'sw' | 'gl' | 'mr' | 'pa' | 'si' | 'km' | 'sn' | 'yo' | 'so' | 'af' | 'oc' | 'ka' | 'be' | 'tg' | 'sd' | 'gu' | 'am' | 'yi' | 'lo' | 'uz' | 'fo' | 'ht' | 'ps' | 'tk' | 'nn' | 'mt' | 'sa' | 'lb' | 'my' | 'bo' | 'tl' | 'mg' | 'as' | 'tt' | 'haw' | 'ln' | 'ha' | 'ba' | 'jw' | 'su' | 'auto_detect' — Language to use for speech recognition
        - `transcription_engine` 'B' — Engine identifier for Telnyx transcription service
        - `transcription_model` 'openai/whisper-tiny' | 'openai/whisper-large-v3-turbo' — The model to use for transcription.
    - `transcription_tracks` string — Indicates which leg of the call will be transcribed. Use `inbound` for the leg that requested the transcription, `outbound` for the other leg, and `both` for both legs of the call. Will default to `inbound`.
  - `webhook_retries_policies` object — A map of event types to retry policies. Each retry policy contains an array of `retries_ms` specifying the delays between retry attempts in milliseconds. Maximum 5 retries, total delay cannot exceed 60 seconds.
  - `webhook_url` string — Use this field to override the URL for which Telnyx will send subsequent webhooks to for this call.
  - `webhook_url_method` 'POST' | 'GET' — HTTP request type used for `webhook_url`.
  - `webhook_urls` object — A map of event types to arrays of webhook URLs. When an event of the specified type occurs, the webhook URLs associated with that event type will be called instead of `webhook_url`. Events not mapped here will use the default `webhook_url`.
  - `webhook_urls_method` 'POST' | 'GET' — HTTP request method to invoke `webhook_urls`.

## Response `200`

Successful response upon making a call control command that includes recording_id.

- object
  - `data` CallControlCommandResultWithRecordingId
    - `recording_id` string, uuid — The ID of the recording. Only present when the record parameter is set to record-from-answer.
    - `result` string

## Other responses

- `422` — Unprocessable entity. The request was well-formed but could not be processed due to semantic errors. This includes validation errors, invalid parameter values, call state errors, conference errors, queue errors, recording/transcription errors, and business logic violations.
- `default` — Unexpected error

---

[API](https://skmtc.net/team-telnyx/apis/telnyx-api-2.md) · [All operations](https://skmtc.net/team-telnyx/apis/telnyx-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/team-telnyx/telnyx-api-2/revisions/ec31f78cf002/schema)
