Robocall-Resistant Voicemail with Add-ons and Functions
Twilio Add-ons are designed to enhance existing messaging and voice systems and APIs. In this tutorial, you will learn how to set up a voicemail using Twilio Functions, and then integrate it with Add-ons designed to filter out robocalls.
Set Up Your Voicemail
This tutorial assumes that you are completely new to Twilio, and have just created an account for Twilio Console. Additionally, this tutorial utilizes Twilio Functions for serverless operation, which helps with hosting, scalability, and maintenance of your voicemail. For more information about the service, we recommend taking a look at their landing page.
Twilio Functions only support Node.js.
Step 1: Within the Twilio Console, on the left navigation bar, click Functions and Assets, and select Services from the dropdown menu. Create a new Service, and give it a relevant name. In this example, the Service is named “Test-Voicemail”
Step 2: Name your Service and click Next. You will be moved to the Development panel for your new Service. Here, we can create a Function that will be executed automatically when a call comes in. Click the Add+ button, select Add Function, and name the path to your Function in the resulting text field. For this example, the path is named “VoicemailHandling”
Step 3: Once you see this screen, it’s time to replace the template code in your Function with some code that will record a voicemail. To do so, you want to first accept a call, prompt the user to leave a message, and then capture the recording. The code below serves this purpose, and is annotated for a more in-depth explanation of each section:
Step 4: Click Save to save your code, and then click Deploy All to deploy your Service. The last step is to set up the Webhook to your application. To do that, you will need an active Twilio phone number.
Obtain a Twilio Phone Number
In order to set up a voicemail that will record calls for you, you’ll need an active phone number from Twilio, which can then trigger your application Webhook to obtain voicemails and the Add-ons data associated with them.
Step 1: To get a Twilio Phone Number from the Twilio Console, select Phone Numbers from the navigation menu on the left side of the screen. From the dropdown menu, select Buy a Number
Step 2: Once you’ve found a number that you like, buy it, go to the Active Numbers tab, and click on the number you just bought. For consistency, we recommend selecting a number with an area code similar to numbers within your area or region.
Step 3: Within the Configure tab scroll down to the Voice and Fax section. There’s an option to set up a programmatic response to calling your number, which we can do now. Under A Call Comes In, change the default webhook to Function, and you should see additional boxes pop up in place of a URL input box. Select the service you just created, the environment you’re running it on (the default is ui), and select the function path you created.
Step 4: Once you’re finished, click Save, and the equivalent webhook will be created for you. You now have a serverless line that accepts voicemail messages from your clients. To test your application, call your number, and you should hear the message you input, along with a beep that signals that recording has begun.
To get your recording, go to the call log for your number and select View All My Call Logs. Select your call, and you should see the recording data. Documentation for programmatic retrieval of voicemails and other relevant data can be found within Twilio Programmable Voice’s API Reference
Install and Configure an Add-on Service
Now that you have an active Twilio number and a voicemail, it’s time to enhance it with Add-ons to improve the quality of the recordings in your mailbox. This tutorial will walk through the steps to make use of the Ekata Phone Validation Add-on, which filters robocalls so they are unable to leave voicemail messages.
Step 1: Add-ons can be found in the Twilio Marketplace. To get there, select Explore Products on the bottom of the navigation bar, and scroll to the bottom.
Step 2: Select the Add-ons panel, and select Ekata Phone Validation, which should be one of the first add-ons available to you.
Step 3: After you install and agree to the terms and conditions, you should now see a Configure tab for the Add-on. Since we need data on incoming voice calls, select that option and hit Save.
Integrate your Twilio Function with Add-ons
The final step is to integrate the Add-ons data into the Twilio Function that you’ve set up. In order to do so, the voicemail code needs to be modified to take in the Add-ons data, which is served in the HTTP request being sent to your Function. You want to take the information and either accept the call if it’s a legitimate caller or block if it’s a robocall. Here is the code:
Save your code and click Deploy All. Your voicemail is now integrated with Add-ons, making it resistant to robocalls.
Next Steps
Once you have your voicemail set-up, there’s a lot more functionality that can be added onto it. Take a look at these resources to see how to further extend your voicemail:
- Implementing Voicemail with Twilio Flex, TaskRouter, and Insights
- How to use Recording Add-ons in Node.js
Check out the full Add-Ons API Reference documentation if you want to learn more about how add-ons work, or even how to publish your own.
Need some help?
We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.