FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software implementation that runs on any commodity hardware. From a Raspberry PI to a multi-core server, FreeSWITCH can unlock the telecommunications potential of any device. FreeSWITCH can interconnect with the outside world and scale to any size.

You'll need to have created an IP connection on your Telnyx Mission Control Portal account, assigned this connection to a DID and outbound profile in order to make and receive calls.

Instructions For Configuring a FreeSWITCH IP Trunk


FreeSWITCH is available to download from here.


You can view the installation guide here.

Video Walkthrough

Coming soon! This walkthrough will demonstrate setting up an IP based connection with FreeSWITCH. We'll also show you how to assign this connection to a newly purchased DID which will allow you to receive inbound calls. Then we'll walk you through how to assign the connection to an outbound profile such that you can make outbound calls!


For step by step instructions on each of the requirements on the Telnyx Mission Control Portal, please follow this guide.

Once you've configured your Telnyx account, you can now proceed to setup FreePBX V13 following the guide below.


You are now all set on the Mission Control Portal side and are ready to configure your Telnyx trunk within your FreeSWITCH system.

Extension configuration for registering a SIP phone

You may register to one of the existing extensions; however it is recommended that you change the default password

File to edit: directory/default/1000.xml

<param name="password" value="abcd1234"/>
<!-- Replace abcd1234 with a strong password -->

SIP Trunk

Create a file under directory: sip_profiles/external

ie. sip_profiles/external/telnyx.xml - telnyx.xml should contain the following:

   <gateway name="telnyx">
       <param name="proxy" value=""/>
       <param name="register" value="false"/>
       <param name="username" value="not-used"/>
       <param name="password" value="not-used"/>


File to edit: dialplan/default.xml - add the following to default.xml

<extension name="dial">
    <condition field="destination_number" expression="^(1{0,1}\d{10})$">
        <action application="set" data="effective_caller_id_number=13125489677"/>      
        <!-- Replace 3125489677 with the DID you want as CID -->
        <action application="bridge" data="sofia/gateway/telnyx/$1"/>

Inbound Trunk - DID

Create a file under directory: dialplan/public/

ie. dialplan/public/3125489677.xml - 3125489677.xml is the DID you purchased at Telnyx Mission Control Portal and should contain the following:

    <extension name="public_did">
        <condition field="destination_number" expression="^(13125489677)$">    
        <!-- Replace 13125489677 with the DID you purchased at the Telnyx Portal -->
           <action application="set" data="domain_name=$${domain}"/>
           <action application="transfer" data="1000 XML default"/>

Network configuration

Note: In case FreeSWITCH fails to recognize your public IP you may "force" it to use a static Public IP as follows 

File to edit: sip_profiles/external.xml

<param name="ext-rtp-ip" value=""/>
<param name="ext-sip-ip" value=""/>
<!-- Replace with your public IP -->

Additional Resources

Review our getting started with guide to make sure your Telnyx Mission Control Portal account is setup correctly!

Get in touch with FreeSWITCH here or check out their help section for community or paid support.

Can't find what you're looking for?

Our knowledge base is currently undergoing a makeover which will include more up to date videos to match our ever growing platform!

Can't find what you're looking for? Click the chat bubble at your lower right hand corner and start a chat!

Did this answer your question?