TeXML Translator already covers a suite of commands so you can switch your programmable voice solution from the Twilio API with ease. Now, we’ve added conferencing to that list. And, by using the Telnyx voice API to execute your TwiML code — you’ll experience better call quality at significantly lower costs.
Why switch from Twilio?
We’ve made switching easy for a reason. You’re probably paying too much for voice and receiving subpar service. Compare Telnyx and Twilio side by side:
Telnyx manages a private network environment with complete control over call routing for faster troubleshooting and resolutions.
Twilio relies on the public internet for connectivity and middlemen for call routing and core communications functionality.
|Billing Per 6 Seconds|
Telnyx bills in 6-second increments (i.e., 1-second call billed at 6 seconds), saving customers around 40% when they switch.
|Billing Per 60 Seconds|
Twilio charges in per-minute increments (i.e., 1-second call billed at 60 seconds), resulting in significantly higher bills.
|Direct Number Inventory|
As an interconnected VoIP carrier, Telnyx has direct access to a large database of phone numbers.
|Indirect Number Inventory|
Twilio relies on middlemen to supply numbers, resulting in higher markups and less flexibility.
|24/7 Phone & Email Support Included At No Extra Cost|
Every Telnyx customer gets support around the clock from our team of expert in-house engineers.
|Paid Support or Email-Only Support During Business Hours|
Twilio charges $1,500 per month (minimum cost) to get 24/7 phone and email support.
How to Use Twilio TwiML Conferencing on Telnyx With Your Python App
In this tutorial, we’ll show you how to use the Telnyx Call Control voice API to create and manage conference calls with your Python web application. Take a look at our Developer Center for step by step tutorials for C#, Node, PHP, Java and Ruby.
A simple conference call
Buy a phone number and configure your connection
In the Telnyx Mission Control Portal you can search for and buy phone numbers in countries around the world. Numbers that have voice capability can make and receive voice phone calls from just about anywhere.
Once you purchase a number, you'll need to configure that number to send a request to your web application. This callback mechanism is called a webhook. You'll need to create a connection and point that to your web application so that Telnyx can make a HTTP request when you receive a call. Configure the connection for Call Control and select XML as the implementation to configure Telnyx to execute your TwiML code. For the URL enter in your current TwiML application URL. If you don't have an application URL yet, we'll create one at a later step using ngrok.
Set up your web application
Telnyx makes answering a phone call as easy as responding to an HTTP request. When a phone number you've bought through Telnyx receives an incoming call, Telnyx will send an HTTP request to your web application asking for instructions on how to handle the call.
Your server will respond with an XML document containing TwiML that instructs Telnyx on what to do with the call. Those instructions can direct Telnyx to read out a message, play an MP3 file, make a recording and much more.
To start answering phone calls, you must:
- Buy and configure a Telnyx-powered phone number capable of making and receiving phone calls, link it to a connection and point it at your web application.
- Write a web application to tell Telnyx how to handle the incoming call using TwiML.
- Make your web application accessible on the internet so Telnyx can make an HTTP request when you receive a call.
Create a moderated conference call
Now comes the fun part - writing code that will handle an incoming HTTP request from Telnyx!
In this example we'll use Python to respond to Telnyx's request and we'll use the existing Twilio (not Telnyx!) Python SDK to generate our TwiML.
Use the Conference TwiML (TeXML) noun to create a conference that begins only when a moderator joins In this example we use a couple advanced Conference features to allow one participant, our "moderator", to better control the call:
- startConferenceOnEnter will keep a other callers on hold until the moderator joins.
- endConferenceOnExit will cause Telnyx to end the call for everyone as soon as the moderator leaves. We use the "From" agrument on Telnyx's webhook request to identify whether the current caller should be the moderator or just a regular participant.
In order for the webhooks in this code sample to work, Telnyx must be able to send your web application an HTTP request over the Internet. Of course, that means your application needs to have a URL or IP address that Telnyx can reach.
In production you probably have a public URL, but you probably don't during development. That's where ngrok comes in. ngrok gives you a public URL for a local port on your development machine, which you can use to configure your Telnyx webhooks as described above.
Once ngrok is installed, you can use it at the command line to create a tunnel to whatever port your web application is running on. For example, this will create a public URL for a web application listening on port 3000.
After executing that command, you will see that ngrok has given your application a public URL that you can use in your webhook connection configuration in the Telnyx Mission Control Portal.
Grab your ngrok public URL and head back to the connection number you configured earlier. Now let's set it to use your new ngrok URL. Don't forget to append the URL path to your actual TwiML logic ("http://.ngrok.io/voice" for example).
You're now ready to host dynamic conference calls with your Python app. Grab some friends and give it a try!
Ready to start building?
Share on Social
Worth checking out