Skip to main content
Glama

Update SIP Voice IN Trunk

update_sip_trunk
Destructive

Update one of the authenticated customer's SIP Voice IN Trunks (inbound voice trunks). Pass the trunk id and ONLY the fields to change — never invent values for fields the user did not ask about; untouched fields keep their current values. Fields have the same semantics as in create_sip_trunk. For PSTN trunks use update_pstn_trunk; for phone.systems™ trunks use update_phone_systems_trunk. Returns the updated trunk attributes (passwords masked) or a readable error.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesUUID of the SIP Voice IN Trunk to update.
popNoDIDWW Point of Presence the trunk is served from. Null unpins the trunk and lets DIDWW pick.
hostNoNew host part of R-URI (SIP host/IP).
nameNoNew trunk name.
portNoNew port part of R-URI. Null resolves the SRV/A record instead.
codecsNoNew codec list, in order of preference. Replaces the whole list, so keep "telephone-event" in it unless the user asked otherwise — it carries RFC 2833 DTMF, and dropping it stops DTMF from reaching the customer equipment.
weightNoLoad-balancing weight among trunk-group members of the same priority; higher is preferred (default 65535).
priorityNoPriority of this trunk; DIDWW contacts the lowest-numbered priority first. Range 0-65535.
rtp_pingNoEnable/disable RTP keep-alive packets.
usernameNoNew user part of R-URI ("{DID}" pattern supported). Null removes it.
auth_userNoNew username for outgoing SIP authentication.
cli_formatNoFormat of the caller ID sent to the customer equipment (default e164).
cli_prefixNoPrefix prepended to the caller ID. Letters, digits, "+" and "#" only, up to 7 characters. Null removes the prefix.
cnam_lookupNoEnable/disable CNAM lookup on the trunk.
descriptionNoDescription of the Voice IN Trunk. Null clears it.
rtp_timeoutNoNew number of seconds without inbound RTP before the call is dropped.
sip_timer_bNoNew INVITE transaction timeout in MILLISECONDS.
sst_enabledNoEnable/disable SIP Session Timers. Enabling requires sst_min_timer and sst_max_timer.
auth_enabledNoEnable/disable outgoing SIP digest authentication (enabling requires auth_user and auth_password).
resolve_ruriNoResolve the R-URI host to an IP before sending the INVITE.
auth_passwordNoNew password for outgoing SIP authentication.
max_transfersNoNew maximum number of SIP transfers (REFER) to follow.
sst_max_timerNoNew maximum session timer in seconds; must be >= sst_min_timer.
sst_min_timerNoNew minimum session timer in seconds.
auth_from_userNoNew From-header user part. Null removes it.
capacity_limitNoMaximum number of simultaneous calls for the Voice IN Trunk. Null lifts the limit.
rx_dtmf_formatNoNew format for DTMF received from the DIDWW network.
sst_accept_501NoTreat a 501 answer to the session refresh as success.
trunk_group_idNoVoice IN Trunk Group UUID to assign the trunk to (or null to detach).
tx_dtmf_formatNoNew format for DTMF sent to the customer equipment.
allowed_rtp_ipsNoNew RTP source restriction (CIDR notation, e.g. "203.0.113.0/24"). Replaces the whole list; up to 10 entries, and 0.0.0.0/0 and ::/0 are rejected. Pass null to remove the restriction and accept RTP from any address.
ringing_timeoutNoSeconds to wait for a 200 OK after a 18x ringing response before ending the routing attempt with the "Ringing timeout" disconnect code. Null restores the platform default.
use_did_in_ruriNoOnly with enabled_sip_registration: put the called DID in the R-URI user part.
auth_from_domainNoNew From-header domain part. Null removes it.
stir_shaken_modeNoNew STIR/SHAKEN attestation passing mode.
max_30x_redirectsNoNew maximum number of 3xx redirects to follow.
src_number_list_idNoVoice IN Number List UUID to apply as the caller-ID filter (or null to detach).
sst_refresh_methodNoNew SIP method used to refresh the session.
transport_protocolNoNew SIP transport protocol.
force_symmetric_rtpNoSend RTP back to the source address of the received stream instead of the SDP address.
sst_session_expiresNoNew Session-Expires value in seconds; must be between sst_min_timer and sst_max_timer. Null clears it.
diversion_relay_modeNoNew Diversion header relay mode.
diversion_inject_modeNoNew Diversion header inject mode.
media_encryption_modeNoNew SRTP media encryption mode.
dns_srv_failover_timerNoNew DNS SRV failover time in milliseconds; must not exceed sip_timer_b.
enabled_sip_registrationNoSwitch the trunk to/from SIP-registration mode. When enabling, host/port are cleared and registration credentials are generated server-side; when disabling, set a host.
network_protocol_priorityNoNew IP version preference when resolving the host.
symmetric_rtp_ignore_rtcpNoWith force_symmetric_rtp, ignore RTCP when learning the source address.
rerouting_disconnect_codesNoNew list of SIP response codes that trigger rerouting ("486" Busy Here, "503" Service Unavailable, ...), plus "Ringing timeout" — the no-answer disconnect reason, which has no SIP code and is not a timeout setting. Replaces the whole list; omit the argument to leave it untouched, or pass null to go back to the platform default set.

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the mutation profile is covered. The description adds useful non-structural context: untouched fields retain current values, semantics mirror create_sip_trunk, and the response returns updated attributes with passwords masked or a readable error. This is above the annotation baseline, though it does not detail auth/permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tightly packed sentences, each earning its place: purpose, invocation contract, sibling routing, and return behavior. The most decision-relevant information (which sibling to use) is front-loaded and unambiguous.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 49-parameter mutation tool with no output schema, the description is unusually complete: it clarifies the partial-update contract, delegates field semantics to create_sip_trunk, and describes the return value including password masking. Remaining gap is minor – no mention of permissions or error conditions in detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with rich per-field documentation, so the schema does the heavy lifting and the baseline of 3 applies. The description reinforces the partial-update semantics (only send changed fields) and points to create_sip_trunk for field meaning, but adds no syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Update) and resource (SIP Voice IN Trunks) with the defining scope 'inbound voice trunks'. It explicitly distinguishes this tool from its two closest siblings, update_pstn_trunk and update_phone_systems_trunk, so an agent can unambiguously select it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing rules: PSTN trunks go to update_pstn_trunk, phone.systems™ trunks to update_phone_systems_trunk. It also states the update contract ('pass ONLY the fields to change, never invent values'), which tells the agent how to invoke it rather than just when.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources