# Update Outbound Trunk

Updates an outbound trunk.

In version `2026-04-16`, customers can update outbound trunks through the API even if the Outbound feature is not
enabled on the account.

## Request

HTTP Method: `PATCH`

URI Path: `/v3/voice_out_trunks/{id}`

### URI Query Parameters

| Name | Type | Is Required? | Description |
| --- | --- | --- | --- |
| id | `string` | Yes | Unique identifier of the outbound trunk. |

### Data Attributes

| Name | Type | Nullable | Is Required? | Description |
| --- | --- | --- | --- | --- |
| name | `string` | No | No | The outbound trunk name. |
| external\_reference\_id | `string` | Yes | No | Optional identifier for the outbound trunk in the customer's external system. Maximum length is 100 characters. |
| allowed\_rtp\_ips | Array of `strings` | Yes | No | Allowed RTP IP addresses for media traffic. Required when changing `authentication_method.type` to `credentials_and_ip`. |
| authentication\_method | `object` | No | No | Authentication method object. Supported PATCH target types are `credentials_and_ip` and `twilio`. `ip_only` may be returned by `GET` endpoints but cannot be set through `PATCH`. |
| on\_cli\_mismatch\_action | `string` | No | No | Possible values:   `send_original_cli` - pass the original `From` header value from your system to the destination without modification.   `reject_call` - reject the call if the `From` header value does not match any DID allowed on the trunk.   `replace_cli` - replace the CLI with one of the DIDs allowed on the trunk. |
| capacity\_limit | `integer` | Yes | No | The capacity limit of the outbound trunk. Allowed values from 0 to 32767. |
| allow\_any\_did\_as\_cli | `boolean` | No | No | When set to `true`, all eligible DIDs can be used as CLI and the `dids` relationship must not contain explicit DIDs. |
| status | `string` | No | No | Possible values:   `active` - the trunk can be used for outbound traffic.   `blocked` - outbound traffic on the trunk is blocked. |
| threshold\_amount | `string` | Yes | No | The outbound trunk 24-hour threshold limit. Can be from 50 to 100000. |
| default\_dst\_action | `string` | No | No | Possible values:   `allow_all` - allow calls to all destinations except the prefixes listed in `dst_prefixes`.   `reject_all` - s to all destinations except the prefixes listed in `dst_prefixes`. |
| dst\_prefixes | Array of `strings` | Yes | No | The destination prefixes allowed or rejected based on `default_dst_action`. |
| emergency\_enable\_all | `boolean` | No | No | Allows all eligible DIDs to be used for emergency calling on the trunk. |
| media\_encryption\_mode | `string` | No | No | Media encryption mode. Possible values:   `disabled` - media encryption is turned off.   `srtp_sdes` - use SRTP encryption with SDES key exchange.   `srtp_dtls` - use SRTP encryption with DTLS key exchange.   `zrtp` - use SRTP encryption with ZRTP key exchange. |
| callback\_url | `string` | Yes | No | Can be `null` or a valid HTTP(S) URL. |
| force\_symmetric\_rtp | `boolean` | No | No | Enables symmetric RTP / COMEDIA mode. |
| rtp\_ping | `boolean` | No | No | Enables RTP ping after the call is connected. |
| rtp\_timeout | `integer` | Yes | No | Disconnects the call if RTP packets do not arrive within the specified time. Supported values are from 30 to 600 seconds. |

See [Outbound Trunk callback details](../../callbacks-details.html#callbacks-voice-out-trunk-v34) for
information about `callback_url` and the JSON callback payload.

### Request Body Object Relationships

| Title | Type | Description |
| --- | --- | --- |
| dids | [DIDs](../did/index.html#dids-v34) | The DID numbers explicitly allowed as CLI when `allow_any_did_as_cli` is `false`. |
| emergency\_dids | [DIDs](../did/index.html#dids-v34) | The DID numbers explicitly enabled for emergency calling when `emergency_enable_all` is `false`. |

### Authentication Method

Supported authentication method types:

- `credentials_and_ip` - uses SIP credentials together with allowed IP addresses.
- `twilio` - uses a Twilio Account SID for authentication.
- `ip_only` - may be returned by `GET` endpoints, but `PATCH` does not allow changing `authentication_method.type` to `ip_only`.

Note

After changing the authentication type, the previous authentication attributes are cleared.

#### Authentication Method Attributes by Type

credentials\_and\_iptwilio

| Name | Type | Nullable | Is Required? | Description |
| --- | --- | --- | --- | --- |
| allowed\_sip\_ips | Array of `strings` | No | Yes | The allowed originating SIP IPs. |
| tech\_prefix | `string` | Yes | No | An optional technical prefix added before the destination number. The maximum length is 8 characters and only digits and `#` are supported. |

| Name | Type | Nullable | Is Required? | Description |
| --- | --- | --- | --- | --- |
| twilio\_account\_sid | `string` | No | Yes | The Twilio Account SID. It is a 34-character identifier of the Twilio account. |

## Examples

Switch ip\_only to twilioSwitch twilio to credentials\_and\_ipSwitch credentials\_and\_ip to twilioSwitch ip\_only to
credentials\_and\_ipUpdate selected emergency DIDsInvalid change to ip\_only

[[DIDWW-API-EXAMPLE-START]]

http

```
PATCH /v3/voice_out_trunks/cf2e6377-fcaa-4416-8c8e-acd5f31a427f HTTP/1.1
Host: api.didww.com
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
Api-Key: [API token]

{
  "data": {
    "id": "cf2e6377-fcaa-4416-8c8e-acd5f31a427f",
    "type": "voice_out_trunks",
    "attributes": {
      "authentication_method": {
        "type": "twilio",
        "attributes": {
          "twilio_account_sid": "AC39347AF064AF97E1682C3B7332DAAEE6"
        }
      },
      "allowed_rtp_ips": null
    }
  }
}
```

curl

```
curl -i -X PATCH https://api.didww.com/v3/voice_out_trunks/cf2e6377-fcaa-4416-8c8e-acd5f31a427f -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]" -H "Content-Type: application/vnd.api+json" --data-raw '{"data": {"attributes": {"allowed_rtp_ips": null, "authentication_method": {"attributes": {"twilio_account_sid": "AC39347AF064AF97E1682C3B7332DAAEE6"}, "type": "twilio"}}, "id": "cf2e6377-fcaa-4416-8c8e-acd5f31a427f", "type": "voice_out_trunks"}}'
```

response

```
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json

{
  "data": {
    "id": "cf2e6377-fcaa-4416-8c8e-acd5f31a427f",
    "type": "voice_out_trunks",
    "attributes": {
      "name": "Outbound trunk Name",
      "allowed_rtp_ips": null,
      "authentication_method": {
        "type": "twilio",
        "attributes": {
          "twilio_account_sid": "AC39347AF064AF97E1682C3B7332DAAEE6"
        }
      },
      "on_cli_mismatch_action": "send_original_cli",
      "capacity_limit": 300,
      "allow_any_did_as_cli": false,
      "status": "blocked",
      "threshold_reached": false,
      "threshold_amount": "1000.0",
      "default_dst_action": "allow_all",
      "dst_prefixes": ["23", "45"],
      "emergency_enable_all": false,
      "media_encryption_mode": "disabled",
      "force_symmetric_rtp": true,
      "rtp_ping": true,
      "rtp_timeout": 30,
      "callback_url": null,
      "created_at": "2025-04-02T10:00:00.000Z",
      "external_reference_id": null
    },
    "relationships": {
      "dids": {
        "links": {
          "self": "https://api.didww.com/v3/voice_out_trunks/cf2e6377-fcaa-4416-8c8e-acd5f31a427f/relationships/dids",
          "related": "https://api.didww.com/v3/voice_out_trunks/cf2e6377-fcaa-4416-8c8e-acd5f31a427f/dids"
        }
      },
      "emergency_dids": {
        "links": {
          "self": "https://api.didww.com/v3/voice_out_trunks/cf2e6377-fcaa-4416-8c8e-acd5f31a427f/relationships/emergency_dids",
          "related": "https://api.didww.com/v3/voice_out_trunks/cf2e6377-fcaa-4416-8c8e-acd5f31a427f/emergency_dids"
        }
      }
    }
  },
  "meta": {
    "api_version": "2026-04-16"
  }
}
```

[[DIDWW-API-EXAMPLE-END]]

[[DIDWW-API-EXAMPLE-START]]

http

```
PATCH /v3/voice_out_trunks/14a0b7fb-845a-44d9-a7dc-ac1620f21e42 HTTP/1.1
Host: api.didww.com
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
Api-Key: [API token]

{
  "data": {
    "id": "14a0b7fb-845a-44d9-a7dc-ac1620f21e42",
    "type": "voice_out_trunks",
    "attributes": {
      "allowed_rtp_ips": [
        "0.0.0.0/0"
      ],
      "authentication_method": {
        "type": "credentials_and_ip",
        "attributes": {
          "allowed_sip_ips": [
            "0.0.0.0/0"
          ],
          "tech_prefix": null
        }
      }
    }
  }
}
```

curl

```
curl -i -X PATCH https://api.didww.com/v3/voice_out_trunks/14a0b7fb-845a-44d9-a7dc-ac1620f21e42 -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]" -H "Content-Type: application/vnd.api+json" --data-raw '{"data": {"attributes": {"allowed_rtp_ips": ["0.0.0.0/0"], "authentication_method": {"attributes": {"allowed_sip_ips": ["0.0.0.0/0"], "tech_prefix": null}, "type": "credentials_and_ip"}}, "id": "14a0b7fb-845a-44d9-a7dc-ac1620f21e42", "type": "voice_out_trunks"}}'
```

response

```
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json

{
  "data": {
    "id": "14a0b7fb-845a-44d9-a7dc-ac1620f21e42",
    "type": "voice_out_trunks",
    "attributes": {
      "name": "Outbound trunk Name",
      "allowed_rtp_ips": [
        "0.0.0.0/0"
      ],
      "authentication_method": {
        "type": "credentials_and_ip",
        "attributes": {
          "allowed_sip_ips": [
            "0.0.0.0/0"
          ],
          "tech_prefix": null,
          "username": "554******",
          "password": "fqe******"
        }
      },
      "on_cli_mismatch_action": "send_original_cli",
      "capacity_limit": 100,
      "allow_any_did_as_cli": true,
      "status": "active",
      "threshold_reached": false,
      "threshold_amount": "10000.0",
      "default_dst_action": "allow_all",
      "dst_prefixes": [],
      "emergency_enable_all": false,
      "media_encryption_mode": "disabled",
      "force_symmetric_rtp": false,
      "rtp_ping": false,
      "rtp_timeout": 30,
      "callback_url": null,
      "created_at": "2025-04-02T10:00:00.000Z",
      "external_reference_id": null
    },
    "relationships": {
      "dids": {
        "links": {
          "self": "https://api.didww.com/v3/voice_out_trunks/14a0b7fb-845a-44d9-a7dc-ac1620f21e42/relationships/dids",
          "related": "https://api.didww.com/v3/voice_out_trunks/14a0b7fb-845a-44d9-a7dc-ac1620f21e42/dids"
        }
      },
      "emergency_dids": {
        "links": {
          "self": "https://api.didww.com/v3/voice_out_trunks/14a0b7fb-845a-44d9-a7dc-ac1620f21e42/relationships/emergency_dids",
          "related": "https://api.didww.com/v3/voice_out_trunks/14a0b7fb-845a-44d9-a7dc-ac1620f21e42/emergency_dids"
        }
      }
    }
  },
  "meta": {
    "api_version": "2026-04-16"
  }
}
```

[[DIDWW-API-EXAMPLE-END]]

[[DIDWW-API-EXAMPLE-START]]

http

```
PATCH /v3/voice_out_trunks/03813615-da15-4e3b-8e0a-3ea64b2585de HTTP/1.1
Host: api.didww.com
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
Api-Key: [API token]

{
  "data": {
    "id": "03813615-da15-4e3b-8e0a-3ea64b2585de",
    "type": "voice_out_trunks",
    "attributes": {
      "authentication_method": {
        "type": "twilio",
        "attributes": {
          "twilio_account_sid": "AC39347AF064AF97E1682C3B7332DAAEE6"
        }
      },
      "allowed_rtp_ips": null
    }
  }
}
```

curl

```
curl -i -X PATCH https://api.didww.com/v3/voice_out_trunks/03813615-da15-4e3b-8e0a-3ea64b2585de -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]" -H "Content-Type: application/vnd.api+json" --data-raw '{"data": {"attributes": {"allowed_rtp_ips": null, "authentication_method": {"attributes": {"twilio_account_sid": "AC39347AF064AF97E1682C3B7332DAAEE6"}, "type": "twilio"}}, "id": "03813615-da15-4e3b-8e0a-3ea64b2585de", "type": "voice_out_trunks"}}'
```

response

```
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json

{
  "data": {
    "id": "03813615-da15-4e3b-8e0a-3ea64b2585de",
    "type": "voice_out_trunks",
    "attributes": {
      "name": "Outbound trunk Name",
      "allowed_rtp_ips": null,
      "authentication_method": {
        "type": "twilio",
        "attributes": {
          "twilio_account_sid": "AC39347AF064AF97E1682C3B7332DAAEE6"
        }
      },
      "on_cli_mismatch_action": "send_original_cli",
      "capacity_limit": 100,
      "allow_any_did_as_cli": true,
      "status": "active",
      "threshold_reached": false,
      "threshold_amount": "10000.0",
      "default_dst_action": "allow_all",
      "dst_prefixes": [],
      "emergency_enable_all": false,
      "media_encryption_mode": "disabled",
      "force_symmetric_rtp": false,
      "rtp_ping": false,
      "rtp_timeout": 30,
      "callback_url": null,
      "created_at": "2025-04-02T10:00:00.000Z",
      "external_reference_id": null
    },
    "relationships": {
      "dids": {
        "links": {
          "self": "https://api.didww.com/v3/voice_out_trunks/03813615-da15-4e3b-8e0a-3ea64b2585de/relationships/dids",
          "related": "https://api.didww.com/v3/voice_out_trunks/03813615-da15-4e3b-8e0a-3ea64b2585de/dids"
        }
      },
      "emergency_dids": {
        "links": {
          "self": "https://api.didww.com/v3/voice_out_trunks/03813615-da15-4e3b-8e0a-3ea64b2585de/relationships/emergency_dids",
          "related": "https://api.didww.com/v3/voice_out_trunks/03813615-da15-4e3b-8e0a-3ea64b2585de/emergency_dids"
        }
      }
    }
  },
  "meta": {
    "api_version": "2026-04-16"
  }
}
```

[[DIDWW-API-EXAMPLE-END]]

[[DIDWW-API-EXAMPLE-START]]

http

```
PATCH /v3/voice_out_trunks/cf2e6377-fcaa-4416-8c8e-acd5f31a427f HTTP/1.1
Host: api.didww.com
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
Api-Key: [API token]

{
  "data": {
    "id": "cf2e6377-fcaa-4416-8c8e-acd5f31a427f",
    "type": "voice_out_trunks",
    "attributes": {
      "allowed_rtp_ips": [
        "0.0.0.0/0"
      ],
      "authentication_method": {
        "type": "credentials_and_ip",
        "attributes": {
          "allowed_sip_ips": [
            "0.0.0.0/0"
          ],
          "tech_prefix": null
        }
      }
    }
  }
}
```

curl

```
curl -i -X PATCH https://api.didww.com/v3/voice_out_trunks/cf2e6377-fcaa-4416-8c8e-acd5f31a427f -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]" -H "Content-Type: application/vnd.api+json" --data-raw '{"data": {"attributes": {"allowed_rtp_ips": ["0.0.0.0/0"], "authentication_method": {"attributes": {"allowed_sip_ips": ["0.0.0.0/0"], "tech_prefix": null}, "type": "credentials_and_ip"}}, "id": "cf2e6377-fcaa-4416-8c8e-acd5f31a427f", "type": "voice_out_trunks"}}'
```

response

```
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json

{
  "data": {
    "id": "cf2e6377-fcaa-4416-8c8e-acd5f31a427f",
    "type": "voice_out_trunks",
    "attributes": {
      "name": "Outbound trunk Name",
      "allowed_rtp_ips": [
        "0.0.0.0/0"
      ],
      "authentication_method": {
        "type": "credentials_and_ip",
        "attributes": {
          "allowed_sip_ips": [
            "0.0.0.0/0"
          ],
          "tech_prefix": null,
          "username": "554******",
          "password": "fqe******"
        }
      },
      "on_cli_mismatch_action": "send_original_cli",
      "capacity_limit": 100,
      "allow_any_did_as_cli": true,
      "status": "active",
      "threshold_reached": false,
      "threshold_amount": "10000.0",
      "default_dst_action": "allow_all",
      "dst_prefixes": [],
      "emergency_enable_all": true,
      "media_encryption_mode": "disabled",
      "force_symmetric_rtp": false,
      "rtp_ping": false,
      "rtp_timeout": 30,
      "callback_url": null,
      "created_at": "2025-04-02T10:00:00.000Z",
      "external_reference_id": null
    },
    "relationships": {
      "dids": {
        "links": {
          "self": "https://api.didww.com/v3/voice_out_trunks/cf2e6377-fcaa-4416-8c8e-acd5f31a427f/relationships/dids",
          "related": "https://api.didww.com/v3/voice_out_trunks/cf2e6377-fcaa-4416-8c8e-acd5f31a427f/dids"
        }
      },
      "emergency_dids": {
        "links": {
          "self": "https://api.didww.com/v3/voice_out_trunks/cf2e6377-fcaa-4416-8c8e-acd5f31a427f/relationships/emergency_dids",
          "related": "https://api.didww.com/v3/voice_out_trunks/cf2e6377-fcaa-4416-8c8e-acd5f31a427f/emergency_dids"
        }
      }
    }
  },
  "meta": {
    "api_version": "2026-04-16"
  }
}
```

[[DIDWW-API-EXAMPLE-END]]

[[DIDWW-API-EXAMPLE-START]]

http

```
PATCH /v3/voice_out_trunks/9c91f03e-8796-4e6a-8c12-00e4f334f9b2 HTTP/1.1
Host: api.didww.com
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
Api-Key: [API token]

{
  "data": {
    "id": "9c91f03e-8796-4e6a-8c12-00e4f334f9b2",
    "type": "voice_out_trunks",
    "attributes": {
      "emergency_enable_all": false
    },
    "relationships": {
      "emergency_dids": {
        "data": [
          {
            "id": "7158ac26-392f-47d1-89ab-c8b3f5ec05d9",
            "type": "dids"
          },
          {
            "id": "67a90c09-1bff-4bc3-a35e-116fda2b0d22",
            "type": "dids"
          }
        ]
      }
    }
  }
}
```

curl

```
curl -i -X PATCH https://api.didww.com/v3/voice_out_trunks/9c91f03e-8796-4e6a-8c12-00e4f334f9b2 -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]" -H "Content-Type: application/vnd.api+json" --data-raw '{"data": {"attributes": {"emergency_enable_all": false}, "id": "9c91f03e-8796-4e6a-8c12-00e4f334f9b2", "relationships": {"emergency_dids": {"data": [{"id": "7158ac26-392f-47d1-89ab-c8b3f5ec05d9", "type": "dids"}, {"id": "67a90c09-1bff-4bc3-a35e-116fda2b0d22", "type": "dids"}]}}, "type": "voice_out_trunks"}}'
```

response

```
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json

{
  "data": {
    "id": "9c91f03e-8796-4e6a-8c12-00e4f334f9b2",
    "type": "voice_out_trunks",
    "attributes": {
      "name": "Outbound trunk for emergency DIDs",
      "allowed_rtp_ips": [
        "0.0.0.0/0"
      ],
      "authentication_method": {
        "type": "credentials_and_ip",
        "attributes": {
          "allowed_sip_ips": [
            "0.0.0.0/0"
          ],
          "tech_prefix": null,
          "username": "554******",
          "password": "fqe******"
        }
      },
      "on_cli_mismatch_action": "send_original_cli",
      "capacity_limit": 100,
      "allow_any_did_as_cli": true,
      "status": "active",
      "threshold_reached": false,
      "threshold_amount": "10000.0",
      "default_dst_action": "allow_calls",
      "dst_prefixes": [],
      "emergency_enable_all": false,
      "media_encryption_mode": "disable",
      "force_symmetric_rtp": false,
      "rtp_ping": false,
      "rtp_timeout": 30,
      "callback_url": null,
      "created_at": "2025-04-02T10:00:00.000Z",
      "external_reference_id": null
    },
    "relationships": {
      "dids": {
        "links": {
          "self": "https://api.didww.com/v3/voice_out_trunks/9c91f03e-8796-4e6a-8c12-00e4f334f9b2/relationships/dids",
          "related": "https://api.didww.com/v3/voice_out_trunks/9c91f03e-8796-4e6a-8c12-00e4f334f9b2/dids"
        }
      },
      "emergency_dids": {
        "links": {
          "self": "https://api.didww.com/v3/voice_out_trunks/9c91f03e-8796-4e6a-8c12-00e4f334f9b2/relationships/emergency_dids",
          "related": "https://api.didww.com/v3/voice_out_trunks/9c91f03e-8796-4e6a-8c12-00e4f334f9b2/emergency_dids"
        }
      }
    }
  },
  "meta": {
    "api_version": "2026-04-16"
  }
}
```

[[DIDWW-API-EXAMPLE-END]]

[[DIDWW-API-EXAMPLE-START]]

http

```
PATCH /v3/voice_out_trunks/14a0b7fb-845a-44d9-a7dc-ac1620f21e42 HTTP/1.1
Host: api.didww.com
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
Api-Key: [API token]

{
  "data": {
    "id": "14a0b7fb-845a-44d9-a7dc-ac1620f21e42",
    "type": "voice_out_trunks",
    "attributes": {
      "authentication_method": {
        "type": "ip_only",
        "attributes": {
          "allowed_sip_ips": [
            "198.51.100.1/32"
          ],
          "tech_prefix": null
        }
      },
      "allowed_rtp_ips": [
        "198.51.100.1/32"
      ]
    }
  }
}
```

curl

```
curl -i -X PATCH https://api.didww.com/v3/voice_out_trunks/14a0b7fb-845a-44d9-a7dc-ac1620f21e42 -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]" -H "Content-Type: application/vnd.api+json" --data-raw '{"data": {"attributes": {"allowed_rtp_ips": ["198.51.100.1/32"], "authentication_method": {"attributes": {"allowed_sip_ips": ["198.51.100.1/32"], "tech_prefix": null}, "type": "ip_only"}}, "id": "14a0b7fb-845a-44d9-a7dc-ac1620f21e42", "type": "voice_out_trunks"}}'
```

response

```
HTTP/1.1 422 Unprocessable Content
Content-Type: application/vnd.api+json

{
  "errors": [
    {
      "title": "is not allowed for update",
      "detail": "type - is not allowed for update",
      "code": "100",
      "source": {
        "pointer": "/data/attributes/authentication_method/type"
      },
      "status": "422"
    }
  ]
}
```

[[DIDWW-API-EXAMPLE-END]]

## Other Responses

| Code | Success | Description |
| --- | --- | --- |
| 404 | No | [Not Found](../../../specification/errors/index.html#api-not-found) |
| 422 | No | [Validation Error Object](../../../specification/errors/index.html#api-validation-error-object) |
| 400 | No | [Bad Request](../../../specification/errors/index.html#api-bad-request) |
| 401 | No | [Unauthorized](../../../configuration.html#api-key) |

On this page
