Change a trunk's configuration
Send null to clear a field; omit the key to leave it alone. Changes reach the gateway within seconds. Status is not settable here — approval is ours, and disabling is a support action.
Requires the write scope. A key with less gets 403 insufficient_scope.
Authorization: Bearer tone_live_… or tone_test_…. The prefix IS the environment: a test key reaches only the sandbox, and no request field bridges the two.
In: header
Path Parameters
The SIP trunk's id.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/v1/sip-trunks/string" \ -H "Content-Type: application/json" \ -d '{ "callerIdPolicy": "did", "codecs": [ "PCMA", "PCMU" ], "customHeaders": { "X-Account-Code": "acme-sales" }, "inboundAuth": "digest", "ipAcl": [ "49.207.12.0/24", "103.21.58.4" ], "maxConcurrent": 10, "name": "Airtel SIP — Mumbai office", "outboundAuthPassword": "K7x2QpL9vR4nT1cW", "outboundAuthUsername": "acme-out", "outboundHost": "sbc.acme-telecom.example", "outboundNumberFormat": "e164", "outboundPort": 5061, "outboundTransport": "tls", "register": false }'{ "data": { "allowOrigination": false, "approvedAt": "2026-09-09T11:00:00Z", "callerIdPolicy": "did", "codecs": [ "PCMA", "PCMU" ], "connection": { "host": "sip.usetone.ai", "ips": [ "13.233.10.20" ], "port": 5061, "transport": "tls" }, "createdAt": "2026-09-09T10:14:22Z", "customHeaders": {}, "digestUsername": "t_9f2c4a7b1d3e5f60", "disabledReason": null, "hasOutboundPassword": true, "id": "4b7c1a02-9de5-4f31-bb07-2c1a5e9f0d43", "inboundAuth": "digest", "ipAcl": [ "49.207.12.0/24" ], "lastInboundAt": "2026-09-10T08:12:44Z", "lastOutboundAt": null, "lastProbe": { "at": "2026-09-10T08:12:44Z", "error": null, "latencyMs": 41, "method": "options", "ok": true, "sipStatus": 200 }, "maxConcurrent": 10, "name": "Airtel SIP — Mumbai office", "outboundAuthUsername": "acme-out", "outboundHost": "sbc.acme-telecom.example", "outboundNumberFormat": "e164", "outboundPort": 5061, "outboundTransport": "tls", "realm": "sip.usetone.ai", "register": false, "status": "active", "updatedAt": "2026-09-10T08:12:44Z" }}Test connectivity to your carrier
The gateway sends a SIP OPTIONS (or a REGISTER, for registering trunks) to outboundHost and reports what came back. Stored as lastProbe on the trunk. 503 provider_unavailable if the gateway itself cannot be reached.
Place an outbound call (runs the compliance gate)
Runs the full pre-dial compliance gate inside the same transaction, so a refusal is a 403 with the audit rows already written and no carrier contacted. Requires agentId on a number that routes to a Tone agent and forbids it on a BYO number. Over your concurrent-call quota this returns 429 BEFORE the gate runs, so no verdict is recorded. Send an Idempotency-Key — a timeout is otherwise indistinguishable from a call you did not place.