---
title: "Update Telephony Configuration"
method: PUT
path: "/api/v1/organizations/telephony-configs/{config_id}"
tags: ["main", "organizations"]
---

# Update Telephony Configuration

`PUT /api/v1/organizations/telephony-configs/{config_id}`

## Request

- Base URL: `https://app.dograh.com`
- URL: `https://app.dograh.com/api/v1/organizations/telephony-configs/{config_id}`
- Auth: none declared

## Path parameters

- `config_id` integer, required

## Headers

- `authorization` string, nullable
- `X-API-Key` string, nullable

## Request body

- TelephonyConfigurationUpdateRequest: Body for ``PUT /telephony-configs/{id}``. Partial update.
  - `name` string, nullable
  - `config` union
    - ARIConfigurationRequest: Request schema for Asterisk ARI configuration.
      - `provider` 'ari'
      - `ari_endpoint` string, required: ARI base URL (e.g., http://asterisk.example.com:8088)
      - `app_name` string, required: ARI username, matching the ari.conf section name
      - `app_password` string, required: ARI user password
      - `ws_client_name` string: websocket_client.conf connection name for externalMedia (e.g., dograh_staging)
      - `dial_string_template` string: How a plain number becomes an Asterisk dial string. ``{number}`` is substituted; anything already carrying a channel technology (``PJSIP/...``, ``Local/...``) is dialled as written.
      - `external_pbx` VicidialExternalPBXConfiguration: External-PBX configuration used by the VICIdial strategy adapter.
        - `type` 'vicidial'
        - `agent_api` VicidialAgentAPIConfiguration, required: VICIdial remote-agent call-control API configuration.
          - `url` string, required: Full URL to agc/api.php
          - `username` string, required: VICIdial agent API user
          - `password` string, required: VICIdial agent API password
          - `source` string: VICIdial API source tag
        - `non_agent_api` VicidialNonAgentAPIConfiguration: Optional VICIdial non-agent API configuration for lead updates.
          - `url` string, nullable: Full non_agent_api.php URL
          - `username` string, nullable: Non-agent API user
          - `password` string, nullable: Non-agent API password
          - `source` string: Non-agent API source tag
        - `timeout_seconds` integer
    - CloudonixConfigurationRequest: Request schema for Cloudonix configuration.
      - `provider` 'cloudonix'
      - `bearer_token` string, required: Cloudonix API Bearer Token
      - `domain_id` string, required: Cloudonix domain name
      - `application_name` string, nullable: Cloudonix Voice Application name. The application's url is updated when inbound workflows are attached to numbers on this domain. If omitted, an application is auto-created on save and its name is stored on the configuration.
    - ExotelConfigurationRequest
      - `provider` 'exotel'
      - `account_sid` string, required: Exotel Account SID
      - `api_key` string, required: Exotel API Key
      - `api_token` string, required: Exotel API Token
      - `api_base_url` string: Exotel API base URL. Use https://api.in.exotel.com for India or https://api.exotel.com for other regions.
      - `from_numbers` string[]
    - PlivoConfigurationRequest: Request schema for Plivo configuration.
      - `provider` 'plivo'
      - `auth_id` string, required: Plivo Auth ID
      - `auth_token` string, required: Plivo Auth Token
      - `application_id` string, nullable: Plivo Application ID. The application's answer_url is updated when inbound workflows are attached to numbers on this account. If omitted, an application is auto-created on save and its id is stored on the configuration.
    - TelnyxConfigurationRequest: Request schema for Telnyx configuration.
      - `provider` 'telnyx'
      - `api_key` string, required: Telnyx API Key
      - `connection_id` string, nullable: Telnyx Call Control Application ID (connection_id). If omitted, a Call Control Application is auto-created on save and its id is stored on the configuration.
      - `webhook_public_key` string, nullable: Webhook public key from Mission Control Portal → Keys & Credentials → Public Key. Used to verify Telnyx webhook signatures.
    - TwilioConfigurationRequest: Request schema for Twilio configuration.
      - `provider` 'twilio'
      - `account_sid` string, required: Twilio Account SID
      - `auth_token` string, required: Twilio Auth Token
    - VobizConfigurationRequest: Request schema for Vobiz configuration.
      - `provider` 'vobiz'
      - `auth_id` string, required: Vobiz Account ID (e.g., MA_SYQRLN1K)
      - `auth_token` string, required: Vobiz Auth Token
      - `application_id` string, nullable: Vobiz Application ID. The application's answer_url is updated when inbound workflows are attached to numbers on this account. If omitted, an application is auto-created on save and its id is stored on the configuration.
    - VonageConfigurationRequest: Request schema for Vonage configuration.
      - `provider` 'vonage'
      - `api_key` string, required: Vonage API Key
      - `api_secret` string, required: Vonage API Secret
      - `application_id` string, required: Vonage Application ID
      - `private_key` string, required: Private key for JWT generation
      - `signature_secret` string, nullable: Vonage signature secret used to verify signed webhooks
    - WhatsAppConfigurationRequest: Credentials for one WhatsApp Business Account on the Cloud API. The account, not a single number, is the unit of configuration: its numbers are imported from Meta rather than typed in. The webhook verify token is deliberately not declared here: it is minted by the provider's save hook and carried forward on update, never read from a request (see ``_preprocess_credentials_on_save`` in the package).
      - `provider` 'whatsapp'
      - `access_token` string, required: System user access token from Meta
      - `waba_id` string, required: WhatsApp Business Account ID from the app's API Setup page
      - `app_secret` string, required: App secret used to verify webhook signatures

## Response `200`

Successful Response

- TelephonyConfigurationDetail: Body of ``GET /telephony-configs/{id}`` — credentials are masked.
  - `id` integer, required
  - `name` string, required
  - `provider` string, required
  - `connectivity` 'api' | 'sip'
  - `is_default_outbound` boolean, required
  - `inactive` boolean
  - `inactive_since` string, date-time, nullable
  - `inactive_reason` string, nullable
  - `credentials` object, required
  - `sip_connectivity` SIPConnectivityDetails: Provider-supplied SIP connection details displayed to customers.
    - `provider_display_name` string, required
    - `regions` SIPRegionDetails[], required
      - `region` string, required
      - `inbound_transports` SIPTransportDetails[], required
        - `transport` string, required
        - `hostname` string, required
        - `port` integer, required
        - `uri` string, required
      - `outbound_origin_ip` string, required
  - `supports_outbound` boolean
  - `setup_checklist` ProviderSetupChecklist: A configuration's setup progress, as computed by its provider. ``ready_for_outbound`` is derived rather than reported independently so a provider cannot claim readiness while leaving a blocking step incomplete.
    - `ready_for_outbound` boolean, required
    - `outbound_blocked_reason` string, nullable, required
    - `steps` SetupStep[], required
      - `key` string, required
      - `title` string, required
      - `description` string, required
      - `complete` boolean, required
      - `blocks_outbound` boolean
    - `docs_url` string, nullable
  - `supports_trunks` boolean
  - `trunks` TrunkResponse[]
    - `id` integer, required
    - `name` string, required
    - `enabled` boolean, required
    - `settings` object, required
    - `phone_number_count` integer
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `supports_phone_number_sync` boolean
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `404`: Not found
- `422`: Validation Error

## Changes

- **2026-11-03** `faa00cf76fcb`: 8 warning, 13 info
  - removed the request property `config/anyOf[subschema #1]/oneOf[subschema #1: ARIConfigurationRequest]/from_numbers`
  - removed the request property `config/anyOf[subschema #1]/oneOf[subschema #2: CloudonixConfigurationRequest]/from_numbers`
  - removed the request property `config/anyOf[subschema #1]/oneOf[subschema #3: PlivoConfigurationRequest -> subschema #4: PlivoConfigurationRequest]/from_numbers`
  - removed the request property `config/anyOf[subschema #1]/oneOf[subschema #4: TelnyxConfigurationRequest -> subschema #5: TelnyxConfigurationRequest]/from_numbers`
  - …17 more

[Operation history](https://skmtc.dev/dograh/apis/dograh-api/changes/api/v1/organizations/telephony-configs/:config_id/put.md)

---

[API](https://skmtc.dev/dograh/apis/dograh-api.md) - [All operations](https://skmtc.dev/dograh/apis/dograh-api/llms.txt) - [OpenAPI document](https://skmtc.dev/dograh/apis/dograh-api/revisions/faa00cf76fcb?raw)
