Skip to main content
Glama

Create SIP Voice IN Trunk

create_sip_trunk

Create a SIP Voice IN Trunk (inbound voice trunk) for the authenticated customer. A minimal trunk only needs name and host (the host part of R-URI in the INVITE request). Set ONLY the parameters the user explicitly asked for and never invent values — every omitted field keeps the same default the customer panel applies. To register a SIP endpoint instead of pointing at a host, set enabled_sip_registration to true and omit host/port — registration credentials are generated server-side and returned in the configuration (password masked). For a PSTN call-forwarding trunk use create_pstn_trunk; for a phone.systems™ trunk use create_phone_systems_trunk. Returns the created trunk id and its configuration, or a readable error if the configuration is invalid.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
popNoDIDWW Point of Presence the trunk is served from. Omit to let DIDWW pick.
hostNoHost part of R-URI in the INVITE request (SIP host/IP). Required unless enabled_sip_registration is true.
nameYesFriendly name of the Voice IN Trunk (must be unique for the customer).
portNoOptional. Port part of R-URI in the INVITE request (default 5060; if omitted, the SRV/A record is resolved).
codecsNoOptional. Codecs which will be sent with the SDP Offer, 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_pingNoOptional. Send RTP keep-alive packets to the customer equipment (default false).
usernameNoOptional. User part of R-URI in the INVITE request. You may use the "{DID}" pattern, which is replaced by the called DID number in E.164 format.
auth_userNoOptional. Username for outgoing SIP authentication. Only with auth_enabled true.
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.
cnam_lookupNoOptional. Enable CNAM lookup on the trunk (default false/disabled).
descriptionNoDescription of the Voice IN Trunk.
rtp_timeoutNoOptional. Drop the call after this many seconds without inbound RTP (default 30).
sip_timer_bNoOptional. INVITE transaction timeout in MILLISECONDS (default 8000).
sst_enabledNoOptional. Enable SIP Session Timers (default false). Requires sst_min_timer and sst_max_timer.
auth_enabledNoOptional. Enable outgoing SIP digest authentication (requires auth_user and auth_password).
resolve_ruriNoOptional. Resolve the R-URI host to an IP before sending the INVITE (default false).
auth_passwordNoOptional. Password for outgoing SIP authentication. Only with auth_enabled true.
max_transfersNoOptional. Maximum number of SIP transfers (REFER) to follow (default 0).
sst_max_timerNoOptional. Maximum session timer in seconds (default 900); must be >= sst_min_timer.
sst_min_timerNoOptional. Minimum session timer in seconds (default 600). Only with sst_enabled.
auth_from_userNoOptional. Custom From-header user part used with outgoing authentication.
capacity_limitNoMaximum number of simultaneous calls for the Voice IN Trunk.
rx_dtmf_formatNoOptional. How DTMF is RECEIVED from the DIDWW network.
sst_accept_501NoOptional. Treat a 501 answer to the session refresh as success (default true).
trunk_group_idNoOptional Voice IN Trunk Group UUID to assign the trunk to.
tx_dtmf_formatNoOptional. How DTMF is SENT to the customer equipment.
allowed_rtp_ipsNoOptional. Restrict the RTP source to these IPs/subnets (CIDR notation, e.g. "203.0.113.0/24"). Up to 10 entries; 0.0.0.0/0 and ::/0 are rejected. Omit to 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. Omit to use the platform default.
use_did_in_ruriNoOptional. Only with enabled_sip_registration: put the called DID (instead of the registered username) in the R-URI user part.
auth_from_domainNoOptional. Custom From-header domain part used with outgoing authentication.
stir_shaken_modeNoOptional. How STIR/SHAKEN attestation is passed to the customer equipment.
max_30x_redirectsNoOptional. Maximum number of 3xx redirects to follow (default 0).
src_number_list_idNoOptional Voice IN Number List UUID (from list_voice_in_number_lists) to apply as the caller-ID (source number) filter on this trunk.
sst_refresh_methodNoOptional. SIP method used to refresh the session (default Invite).
transport_protocolNoOptional. SIP transport protocol (default UDP).
force_symmetric_rtpNoOptional. Send RTP back to the source address of the received stream instead of the SDP address (default false).
sst_session_expiresNoOptional. Session-Expires value in seconds; must be between sst_min_timer and sst_max_timer.
diversion_relay_modeNoOptional. How the Diversion header is relayed to the customer equipment.
diversion_inject_modeNoOptional. Whether to add a Diversion header with the called DID number.
media_encryption_modeNoOptional. SRTP media encryption mode (default Disable).
dns_srv_failover_timerNoOptional. Milliseconds before failing over to the next DNS SRV record (default 2000). Must not exceed sip_timer_b.
enabled_sip_registrationNoOptional. When true the trunk accepts a SIP registration instead of forwarding to a fixed host: incoming registration credentials are generated server-side and host/port must be omitted.
network_protocol_priorityNoOptional. IP version preference when resolving the host (default "force IPv4").
symmetric_rtp_ignore_rtcpNoOptional. With force_symmetric_rtp, ignore RTCP when learning the source address (default false).
rerouting_disconnect_codesNoOptional. SIP response codes that trigger rerouting to the next trunk-group member ("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 keep the platform defaults.

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare it is a non-readOnly, non-destructive, non-idempotent mutation. The description adds context beyond that: registration credentials are generated server-side and returned masked, omitted fields keep panel defaults, and an invalid configuration yields a readable error. It does not mention auth scopes or rate limits, keeping it just short of a 5.

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

Conciseness4/5

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

Front-loaded with the core purpose, then scope guidance, the registration variant, sibling alternatives, and return behavior. Four sentences, each doing work, though the sibling-routing and registration details make it slightly dense for a single paragraph.

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 48-parameter creation tool with no output schema, the description covers the essential edges: minimal viable call, registration-mode constraint, defaults behavior, sibling alternatives, and return/error format. The schema handles the exhaustive parameter detail, so the description is appropriately complete without being redundant.

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% across all 48 parameters, so the schema already carries full parameter semantics. The description reinforces a few key meanings (host as R-URI host, minimal required fields, registration mode) but adds little beyond what the schema documents, so the baseline of 3 applies.

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 ('Create') and resource ('SIP Voice IN Trunk (inbound voice trunk)') for the authenticated customer. It explicitly distinguishes itself from sibling creators by naming create_pstn_trunk and create_phone_systems_trunk, so an agent can route correctly without opening schemas.

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?

Provides clear when-to-use guidance ('minimal trunk only needs name and host'), an explicit guardrail ('Set ONLY the parameters the user explicitly asked for and never invent values'), and names the alternative tools for PSTN forwarding and phone.systems trunks. It also explains the registration-mode branch (set enabled_sip_registration true and omit host/port).

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