Outsourcing voicemail to Twilio

gmarik 3 min
Table Of Contents ↓

After moving to Canada, part of initial culture shock was the fact how expensive cell phone services are. That motivated me to started thinking how to migrate off cell-provided services.

Another reason for migration was the fact that service providers have surprisingly poor service quality:

Voicemail was the perfect candidate to migrate and this post covers how to do it with Twilio.


Assuming you’re registered with Twilio and have a positive balance. All prices mentioned are in USD and are for Canada(your price may be different).

Get a Twlio phone number

Get a number

Number costs USD$1 per month

Receiving calls costs USD$0.0075/min and is ridiculously cheap comparing to what cell-providers offer.

Setup call forwarding

Voicemail is a “buffer” that captures the call while the receiver is not available to answer the phone. In order for the buffer to capture the call it’s required to instruct the provider to forward the call to it. The instructions are provider dependant; for my one it’s described here


Twilio runs little known service Twimlets for hosting TwiML(a markup instructing Twilio how to act in event of receiving a call). Which means there’s no need to host markup yourself.

We’ll create 1 simple twimlet using voicemail generator form, where:

Save the form for convenience once above fields are filled-in

saved form

Now copy the saved url; it’ll be further used to configure the number’s Voicemail.

Setting up the Voicemail for Twilio number

  1. Go to Manage numbers, select the number you had acquired.
  2. Expand Voice section, and paste the Voicemail twimlet url to the Request URL field

Like this:


Note: by default you’ll have a http url, make sure to change it to https.


At this point it should be possible to call the number and reach the created Voicemail.

If everything is configured well you should be able to see the call in the dashboard and hear the recording. If transcription is enabled you’ll also receive the email with transcribed message.


With minimal effort it’s possible to easily create Voicemail that’s quite cheap and convenient.

There are things to consider thought: I’m not aware of SLA of the twimlets service so if the service goes down the Voicemail may be unreachable. If you care about the availability it’s quite easy to host twimlets yourself for example in s3 or Dropbox.

Thank you!

Read More
IoT sensor metrics with Go - Part 2
Understanding Go's `nil` value
read or add one↓