Skip to main content

Direct SIP Connection: Setup Guide

Thank you for setting up a direct SIP connection to Volie. This guide will walk your phone system administrator through everything needed to route calls directly to the Volie platform without a PSTN forwarding leg.

Written by Katie Miller

What You’ll Need

  • Before starting, your Volie Customer Success representative will provide you with:

    • SIP Host: volie-incoming.sip.us1.twilio.com

    • Username: Your unique SIP credential username

    • Password: Your unique SIP credential password

    • Campaign UUID(s): One UUID per campaign you're routing via SIP

  • Keep these credentials secure. If you believe they have been compromised, contact Volie Support immediately.

Technical Requirements

  • Transport: TLS

  • Port: 5061

  • Media Encryption: SRTP required

  • Customer SIP Header: X-Volie-Campaign (required - see below)

The Campaign Header - Important

  • Volie uses a custom SIP header to identify which campaign an inbound call belongs to. This header is required. Calls arriving without it will fail.

  • For every outbound SIP route that sends calls to Volie, your PBX must inject the following header:

    • Header Name: X-Volie-Campaign

    • Header Value: <campaign-uuid provided by Volie>

  • If you are routing calls for multiple campaigns, you will have a separate SIP route per campaign, each injecting its own UUID.

Configuration by Phone System

  • FreePBX (PJSIP - FreePBX 14 and newer)

  • FreePBX 14 and later use PJSIP by default. If you are unsure which channel driver you are using, check under Admin → Module Admin → chan_pjsip.

  • Step 1 - Create a PJSIP Trunk

    • Navigate to Connectivity → Trunks → Add Trunk → Add SIP (PJSIP) Trunk

    • Under the pjsip Settings → General tab:

      • Username: <provided by Volie>

      • Password: <provided by Volie>

      • SIP Server: volie-incoming.sip.us1.twilio.com

      • SIP Server Port: 5061

      • Transport: TLS

    • Under the pjsip Settings → Advanced tab:

      • Media Encryption: SDES or DTLS (enable SRTP)

      • Media Encryption Strict: Yes

  • Step 2 - Inject the Campaign Header via Custom Dialplan

    • In Admin → Config Edit, open extensions_custom.conf and add:

      • [volie-campaign-route] exten => s,1,Set(PJSIP_HEADER(add,X-Volie-Campaign)=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) same => n,Dial(PJSIP/volie_trunk_name) same => n,Hangup()

      • Replace xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx with the Campaign UUID provided by Volie, and volie_trunk_name with the trunk name you created in Step 1.

  • Step 3 - Create an Outbound Route

    • Navigate to Connectivity → Outbound Routes → Add Outbound Route

    • Set the trunk sequence to the Volie trunk you created

    • Configure the dial pattern to match the calls you want routed to Volie

    • Set the route to use the custom dialplan context volie-campaign-route

FreePBX (Legacy chan_sip — FreePBX 13 and older)

  • Note: If you are running FreePBX 13 or older we strongly recommend upgrading. Legacy chan_sip does not support TLS/SRTP as reliably as PJSIP.

  • Step 1 - Create a SIP Trunk

(continued below)

  • Step 2 - Inject the Campaign Header

    • In extensions_custom.conf :

      • [volie-campaign-route]

      • exten => s,1,SIPAddHeader(X-Volie-Campaign: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

      • same => n,Dial(SIP/volie_trunk_name)

      • same => n,Hangup()

Other Phone Systems

  • If you are using a different phone system (Cisco CUCM, 3CX, Avaya, etc.), please contact your Volie Customer Success representative. The requirements are the same — TLS transport, SRTP media, and the X-VolieCampaign header — but configuration steps vary by platform. We're happy to work through it with your phone system vendor.

Testing Your Connection

  • Once configured, place a test call through the new SIP route and confirm with your Volie CS representative that the call appeared in the correct campaign.

  • Common issues to check if the call doesn't arrive:

    • Header not injecting - confirm you're using the PJSIP header command ( PJSIP_HEADER ) not the legacy one ( SIPAddHeader ) if on PJSIP

    • TLS handshake failing - confirm your FreePBX has a valid TLS certificate (Let's Encrypt via the FreePBX Certificate Manager is recommended)

    • Wrong campaign UUID - double-check the UUID against what Volie provided; UUIDs are case-sensitive

    • Port blocked - confirm outbound port 5061 (TLS) is open on your firewall

Support

  • For assistance with this configuration, contact Volie Customer Support:

  • Please have your Account ID and the name of your phone system/vendor ready when you call.

Did this answer your question?