---
title: "Sip Outbound Call"
method: POST
path: "/conversations/sip/outbound_call"
tags: ["conversations"]
---

# Sip Outbound Call

`POST /conversations/sip/outbound_call`

Initiates a SIP outbound call using user-supplied SIP credentials in headers.

## Headers

- `Authorization` string, required
- `X-Sip-Address` string, required
- `X-Sip-Auth-Username` string
- `X-Sip-Auth-Password` string

## Request body

- object
  - `from_phone_number` string, required — Caller ID phone number in E.164 format.
  - `to_phone_number` string, required — Destination phone number in E.164 format.
  - `config` OutboundCallConfig — When an `agent` is provided, these `config` options override the agent settings.
    - `agent` string — The name of the agent to use for the call.
    - `project` string — The name of the project to use for the call.
    - `generate_welcome_message` boolean — When `true`, the welcome message will be automatically generated and the `welcome_message` field will be ignored.
    - `is_welcome_message_interruptible` boolean — When `false`, the welcome message will not be interruptible by the user.
    - `welcome_message` string, nullable — Message to play when the conversation starts. Can contain template variables like `{{customer_name}}`. Ignored when `generate_welcome_message` is `true`.
    - `system_prompt` string — Instructions for the conversation. Can contain template variables like `{{subject}}`.
    - `template_variables` object — Variables that can be used in the welcome message and the system prompt.
    - `voice_id` string — The voice ID to use for the agent.
    - `generate_no_input_poke_text` boolean — Whether to have the no-input poke text be generated by AI.
    - `no_input_poke_sec` integer, nullable — Number of seconds of silence before sending a poke message. `null` disables the poke message.
    - `no_input_poke_text` string — The message to send after the specified silence. Ignored when generate_no_input_poke_text is true.
    - `no_input_end_conversation_sec` integer — Seconds of silence before ending the conversation.
    - `default_language` 'ar' | 'az' | 'bg' | 'bn' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'es' | 'fa' | 'fi' | 'fil' | 'fr' | 'gu' | 'he' | 'hi' | 'hu' | 'id' | 'it' | 'ja' | 'ka' | 'km' | 'kn' | 'ko' | 'lt' | 'lv' | 'ml' | 'mr' | 'ms' | 'ne' | 'nl' | 'no' | 'pa' | 'pl' | 'pt' | 'ro' | 'ru' | 'si' | 'sk' | 'sq' | 'sv' | 'sw' | 'ta' | 'te' | 'th' | 'tr' | 'uk' | 'ur' | 'vi' | 'yue' | 'zh' — ISO 639-1 language codes supported by the agent
    - `additional_languages` LanguageCode[] — Array of additional ISO 639-1 language codes that the agent should be able to recognize and speak. Should not include `default_language`. When `multilingual_mode` is `"auto"`, a maximum of 2 additional languages is allowed.
    - `languages` LanguageCode[] — Array of ISO 639-1 language codes that the agent should be able to recognize. This field is deprecated. Use `default_language` and `additional_languages` instead.
    - `multilingual_mode` 'auto' | 'request' | 'initial' — If `"auto"`, each user audio is automatically identified for the language to respond in. If `"request"`, user must request to change language (recommended). If `"initial"` the first turn user audio determines the language for the rest of the conversation.
    - `push_to_talk` boolean — Push to talk mode. User must send mute/unmute messages to turn on/off listening to audio. Defaults to false.
    - `intelligence_level` 'standard' | 'high' — The intelligence level of the agent. `high` uses a more capable model for more complex reasoning, while `standard` is optimized for lower latency.
    - `boosted_keywords` string[] — These words, or short phrases, will be more accurately recognized by the agent.
    - `pronunciation_dictionary` OutboundCallConfigPronunciationDictionaryItems[] — Array of `{ word, pronunciation }` entries. Words must be unique.
      - `word` string, required
      - `pronunciation` string, required
    - `min_words_to_interrupt` integer — Minimum number of words required to interrupt the assistant.
    - `tools` OutboundCallConfigToolsItems[] — Array of built-in or custom tool names to use.
      - union
        - 'keypad_input' | 'natural_conversation_ending' | 'choose_not_to_respond' — Built-in tool
        - string
    - `enable_redaction` boolean — When `true`, PII and PHI are redacted from text transcripts (e.g. replaced with tags like `[PHONE]`) and bleeped from audio recordings after the conversation ends.
    - `model` 'merritt' — The speech-to-speech model to use.
    - `audio_speed` number, double — The audio speed of the agent.
    - `background_noise` 'office' | 'call-center' | 'coffee-shop' — The background noise type. Can be "office", "call-center", "coffee-shop", or null.
    - `background_noise_level` number, double — The background noise level of the agent.
    - `mcp_servers` string[] — Array of MCP server names to use.
    - `tasks` Task[] — Array of task objects with `name` and `description` fields.
      - `name` string, required — The name of the task.
      - `description` string, required — The description of the task.
    - `outbound_number_pool` OutboundNumberPool — Pool of phone numbers used for outbound calls.
      - `active` string[], required — E.164 formatted phone numbers available for outbound calls.
      - `blocked` string[], required — E.164 formatted phone numbers that are blocked from being used.
    - `enable_assistant_backchannel` boolean — When `true`, the assistant will produce backchannel responses (e.g. "mm-hmm") while the user is speaking.
    - `assistant_backchannel_aggressiveness` number, double — How aggressively the assistant produces backchannel responses. Only relevant when `enable_assistant_backchannel` is `true`.
    - `configuration_endpoint` OutboundCallConfigConfigurationEndpoint — When not `null`, at the beginning of the conversation the agent will make a POST request to this endpoint to get configuration options.
      - `url` string, required — URL to call. Must be a publicly routable HTTPS URL without embedded credentials.
      - `headers` object — Object of key-value pairs.
      - `timeout_ms` integer — Timeout in milliseconds for the endpoint call.
    - `additional_params` object — Additional runtime parameters.
    - `data_retention_policy` union — Controls how long transcripts and audio recordings are retained before deletion. When `zero_data_retention` is `true`, nothing is retained and `transcripts`/`audio_recordings` are omitted.
      - DataRetentionPolicy0 — Zero data retention mode. No transcripts or audio recordings are retained.
        - `zero_data_retention` boolean, required — When `true`, no transcripts or audio recordings are retained.
      - DataRetentionPolicy1 — Standard data retention with configurable deletion windows.
        - `zero_data_retention` boolean, required — Must be `false` for standard data retention.
        - `transcripts` DataRetentionPolicyOneOf1Transcripts, required
          - `delete_after_hours` integer, nullable, required — Number of hours after which transcripts are deleted. Null means transcripts are retained indefinitely.
        - `audio_recordings` DataRetentionPolicyOneOf1AudioRecordings, required
          - `delete_after_hours` integer, nullable, required — Number of hours after which audio recordings are deleted. Null means audio recordings are retained indefinitely.
  - `dry_run` boolean — If true, validates the outbound call setup without placing a call. Returns HTTP 200 with `conversation_id` and `twilio_call_sid` set to null.

## Response `200`

Success response

- union
  - SipOutboundDryRunResponse
    - `conversation_id` unknown, required
    - `twilio_call_sid` unknown, required
    - `dry_run` boolean, required — Always true for this response.
  - SipOutboundCallInitiatedResponse
    - `conversation_id` string, required — The ID of the created conversation.
    - `twilio_call_sid` string, required — The Twilio Call SID.
    - `dry_run` boolean, required — Always false when a call was placed.

## Other responses

- `400` — Invalid query parameters or body, or missing required headers
- `401` — Unauthorized
- `409` — The SIP call could not be completed. The `sip_status_code` and `sip_status` fields contain the carrier's SIP response details.
- `500` — Internal server error

---

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