Skip to content

Trunks

Trunks section allows you to configure SIP Trunks, your connections with carriers, PSTN, other servers, or soft switches.

Create/Edit Trunk

When creating a new Trunk, Configuration Manager will prefill the form with values specified in Default Values.

The Create/Edit Trunk form is organized into tabs: General Settings, Advanced Settings, Trunk Dialing, Call Limits, Caller ID, and STIR/SHAKEN. The tabs below follow that order.

General Settings

Name. Unique alphanumeric name for the Trunk (no spaces or special characters are allowed). In some cases the name of IP Trunks will be provided to you by your service provider.

Status. Controls whether this Trunk is used or skipped when making outbound calls. This setting is referenced by the default Thirdlane-supplied Outbound Route scripts, so it only affects outbound routing - disabling a Trunk does not block inbound calls arriving on it. Use it to take a Trunk out of the outbound rotation temporarily without deleting it.

Description. Description of the Trunk, optional.

Tag. Optional free-form label used to group and filter Trunks in the list. Tags are for organization only and have no effect on call handling.

Available to tenants. Only available in Thirdlane Multi Tenant systems. Trunks can be created for use by all Tenants or only a particular tenant. If a Trunk is set up for a particular Tenant it won’t be available for use by other Tenants and will not appear as an option in Outbound Routes for other Tenants.

Host. IP address (or hostname) of your VoIP service provider’s gateway or proxy. For a registration-based Trunk whose far end has a changing address, you can enter dynamic in this field. The Manager validates that the host resolves; a non-resolving hostname is rejected.

Outbound Proxy. Specify a SIP proxy to send outbound signaling to, instead of sending it directly to the “Host”. Useful when your carrier requires signaling through a session border controller.

Context. Specifies the dialplan context for calls arriving on this Trunk. For external inbound providers it should be set to the default from-outside context so that inbound calls are matched against your Inbound Routes.

User Name. User name associated with the Trunk, if required and provided by your VoIP service provider. In cases where traffic from the host is authorized purely by IP address, you can omit both the user name and password and instead specify insecure=port,invite in Other Options (on the Advanced Settings tab).

Password. Password associated with the Trunk, usually provided by your VoIP service provider.

Enabled codecs. The codecs offered on this Trunk, in preference order. This should match the codec preferences specified by the Trunk provider.

Disabled codecs. Codecs to be excluded on this Trunk.

Advanced Settings

Advanced SIP/IAX settings for fine-tuning trunk behavior. Most deployments can leave these at their defaults unless the carrier documents otherwise.

DTMF mode. How touch-tone (DTMF) digits are signaled. Must match the mode specified by your VoIP service provider. Options: Default, Inband, RFC2833 (the usual choice), SIP Info, and Auto.

Packetization time. The audio packetization time (ptime), in milliseconds. Leave blank to use the codec default; set only if the carrier requires a specific value.

Encryption. Specify options for encrypting calls via this Trunk.

Available options are:

  • Enforce. Make all outbound calls via this Trunk encrypted and accept only encrypted inbound calls.
  • Reject. Make all outbound calls unencrypted and accept only unencrypted inbound calls.
  • Negotiate, trying encrypted first. Try encrypted outbound calls first, falling back to unencrypted; accept both on inbound.
  • Negotiate, trying unencrypted first. Try unencrypted outbound calls first, falling back to encrypted; accept both on inbound.

No transfer (IAX Trunks only). Disables native call transfer on the IAX Trunk.

Qualify (ms). Enable and specify how long the server waits for keepalive (OPTIONS) responses from the endpoint before marking it unreachable. A value of yes corresponds to 2000 ms. Set to no for carriers that do not answer qualify probes.

Bypass Local Proxy. Bypass the local SIP proxy for this Trunk. This may be required for interoperability with some carriers.

Other Options. Additional options that don’t have dedicated GUI fields, entered as key=value pairs (one per line). Common examples include insecure=port,invite for IP-authenticated Trunks. The available keys depend on the Trunk protocol (SIP or IAX).

Registration. Required if your provider expects the Trunk to register. Providers usually supply the exact registration string.

General format:

[peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]

Example:

Trunk Dialing

This tab controls how the dialed number is manipulated before the call is sent to the carrier.

Number of digits to strip. How many digits are stripped from the front of the dialed number.

String to prepend. String prepended to the dialed number (applied after stripping).

Digits can also be prepended or stripped when defining Outbound Routes; Trunk-level manipulation applies to every route that uses the Trunk.

E.164 Output. Normalizes the dialed number into E.164 before sending it to the carrier:

  • None (no normalization). Send the number as dialed.
  • +E.164 (+CC followed by number). Prefix with + and the country code (for example +14155551234).
  • E.164 (CC followed by number, no +). Country code and number without the leading + (for example 14155551234).

Normalize Inbound CID. When enabled, incoming caller IDs on this Trunk are normalized to E.164 using the dialing profile of the tenant being called - useful for consistent CRM matching and call history.

Dial command options. Options prepended to the Dial command option string used for calls on this Trunk.

SIP Header. Add up to 4 custom SIP headers to outbound INVITEs on this Trunk.

Example:

X-Custom-Header:VALUE

Call Limits

Limit how many concurrent calls this Trunk carries. Choose how limits are counted with How to set limits:

  • Active Channels. A single cap on total simultaneous channels (inbound + outbound). Set the limit in Active Channels.
  • Inbound and Outbound Calls. Separate caps - set Inbound calls and Outbound calls independently.

A value of No limit removes the corresponding cap. When a limit is reached, additional calls in that direction are rejected until a channel frees up.

Caller ID

This tab controls how the Caller ID is presented on outbound calls (including forwarded inbound calls) that use this Trunk.

Number of digits to strip. How many digits are stripped from the front of the Caller ID number.

String to prepend. String prepended to the Caller ID number (applied after stripping).

Forwarded Caller ID

When an inbound call is forwarded back out to an external number - for example through the Forward to External Number inbound action - the person being called ideally sees the original caller’s number rather than your system’s number. However, the original caller’s number is not a number you own, so carriers treat it differently: some pass it through, some reject the call, and with STIR/SHAKEN many carriers will refuse to attest to (or will overwrite) a From number that isn’t yours. The Forwarded Caller ID setting lets you pick the presentation method your carrier expects.

  • Original caller ID (From only). Send the original caller’s number in the From header only. This is the default and matches the behavior of earlier releases.
  • Original caller ID + Diversion header. Keep the original caller in From and add a Diversion header pointing at your own number. This is the most widely accepted convention for redirected/forwarded calls and is a good first choice.
  • Original caller ID + P-Asserted-Identity. Keep the original caller in From and assert your own number in a P-Asserted-Identity (PAI) header. Many carriers use PAI for billing and STIR/SHAKEN attestation.
  • Original caller ID + Remote-Party-ID. The same idea as PAI but using the older Remote-Party-ID (RPID) header, for carriers that still rely on it.
  • Our DID only. Do not attempt to pass the original caller through at all - present your own number as the Caller ID. Use this when a carrier rejects any forwarded caller ID.

Identity number. The number you own that is placed in the Diversion / P-Asserted-Identity / Remote-Party-ID header (or shown as the Caller ID in Our DID only mode). Leave it blank to automatically use the DID that was originally called. This field appears only when the selected method needs it (that is, for every method except From only).

Per-route override. The Trunk setting is the default for all forwarded calls on the Trunk. The Forward to External Number inbound action also exposes a Caller ID method option so an individual route can override the Trunk’s policy (for example, force Our DID only on one high-risk route while the Trunk default stays Diversion). Leave the route option unset to inherit the Trunk setting.

The correct method is provider-specific. If a carrier rejects forwarded calls or overwrites the Caller ID, try a different method or ask the carrier which identity headers they require. For unusual header formats the custom SIP Header fields on the Trunk Dialing tab remain available. This setting only affects calls that are forwarded back out; it does not change the Caller ID on ordinary outbound calls placed by your users.

STIR/SHAKEN

Per-Trunk STIR/SHAKEN settings for verifying and signing SIP Identity headers (STIR/SHAKEN overview). These take effect only when STIR/SHAKEN support is also enabled system-wide under Platform → Communications Settings → STIR/SHAKEN.

Check Identity of Inbound Calls. When enabled, the SIP Identity header on inbound calls is validated. Paste the carrier-provided validation key into Key for validating Identity Header.

Create Identity for Outbound Calls. When enabled, the server signs outbound calls with a SIP Identity header. This reveals:

  • Attestation Level. The attestation you assert for the calling number - A (full), B (partial), or C (gateway).
  • Public Key URL. The publicly reachable URL where your certificate/public key is published so the far end can verify your signature.
  • Private Key. The private key used to sign the Identity header. Paste the key contents.

Deleting a Trunk

Deleting a Trunk that is used by Outbound Routes will make these routes invalid.