Help / Getting started

Trunk management

Add SIP carriers, allocate dialplan prefixes, and build failover routes.

Every outbound and inbound SIP carrier you use is a trunk in VICIfast. The platform writes two managed files on your box:

  • /etc/asterisk/vicifast-trunks.conf — every PJSIP endpoint

  • /etc/asterisk/vicifast-trunks-dialplan.conf — every routing pattern

Both are included from your pjsip.conf and extensions.conf with a single #include line each. We never edit your VICIdial-installed configs beyond appending those two lines on first provision. You never edit the managed files by hand — they're rewritten end-to-end on every trunk operation.

Adding a trunk

  1. Dashboard → your server → Manage Trunks.

  2. Pick a partner (Twilio, Bandwidth, Telnyx, Skyetel) or Generic.

  3. Pick the direction: Outbound, Inbound, or Bidirectional.

  4. Fill the trunk name, the carrier host, and credentials if using user/pass auth.

  5. Save. The platform renders both managed files, allocates a 4-digit dialplan prefix on first install, and reloads Asterisk in ~50ms.

Linking a campaign

VICIdial campaigns use a Dial Prefix field to pick which carrier handles outbound calls. The dashboard surfaces the auto-allocated prefix; copy it into the campaign's Dial Prefix in VICIdial admin, or use the dashboard's Link campaigns button to do it via the platform.

Failover routes

A failover route wraps 2–8 outbound trunks in priority order with a per-leg timeout. The route gets its own 4-digit prefix (9500–9999); campaigns bind to that prefix. If the primary trunk fails or times out, the dialplan moves to the next.

TCPA per-trunk

Each trunk has a TCPA mode: Inherit (use the server-wide TcpaConfig), Custom (use this trunk's own BLA API key), or Disabled. See the TCPA compliance article for the lookup contract.

Diagnostics + SIP trace

Every trunk row has a Diagnose button. It runs four parallel SSH probes in a few seconds:

  • Endpoint status — is the PJSIP endpoint loaded, registered (or IP-auth ready), what codecs, what auth.

  • SIP OPTIONS ping — sends a SIP OPTIONS to the carrier; surfaces the final response code (200/401/403/408/488/503/603 etc.) with a carrier-specific hint. Twilio 403 deep-links to your Twilio IP ACL page; Telnyx, Bandwidth, Skyetel get their own translated hints.

  • Carrier IP reachability — TCP/5060 probe to every published carrier IP. Catches stale carrier IP lists + regional outages.

  • Last 50 calls — pulls the last week of vicidial_log rows matching this trunk's dial-prefix so you can see real dial activity (or the absence of it).

A verdict card aggregates the four checks into HEALTHY / WARNING / FAILURE with actionable next steps. Both owner and sub-users can run diagnostics — they're read-only.

For deeper debugging, the Live SIP trace tab toggles Asterisk's PJSIP logger for 10/30/60 seconds, captures every SIP frame touching the trunk, and gives you a copy-shareable monospace block. Paste it into a carrier support ticket — it's the exact wire format they need. Both diagnostic runs + SIP traces auto-purge after 7 days.

VICIdial admin → Carriers is empty

That's by design. See the "Where are my trunks in VICIdial admin?" article for why and what to use instead.

Tags: trunks, sip, carriers, vicidial