Rate this page:

Programmable Wireless: Make and Receive Phone Calls

From December 1, 2021, Programmable Voice will no longer be supported on Programmable Wireless SIMs.

From that date, you will no longer be able to use the native calling functionality of devices containing Programmable Wireless SIMs. There is no replacement for this functionality. You will still be able to use applications on the device that use data to send voice or video, provided that they do not rely on forwarding calls to a phone number.

Please see the Known Limitations section, below, for further information.

A device connected by a Twilio SIM can make and receive Programmable Voice calls provided it supports PSTN voice calling. PSTN is short for Public Switched Telephone Network, the traditional circuit-switched telephone network.

Before you set up your device for voice, the Programmable Wireless SIM used in the device needs to have a Rate Plan that has, at least, Voice selected as an Enabled Service. If not, you need to create one. See Understanding Rate Plans to learn how to create a Voice-enabled Rate Plan. Please note that from December 1, 2021, Programmable Voice will no longer be supported on Programmable Wireless SIMs.

  1. Once you have your SIM voice-enabled, you first need to purchase a voice-enabled Twilio phone number.
  2. You then create a TwiML bin for making phone calls. You use this new TwiML to associate your Twilio SIM with your new phone number.
  3. Next you create a TwiML bin for receiving incoming calls. Again, you associate this TwiML with the Twilio SIM and your new phone number.

Your Programmable Wireless SIM-connected device can now make and receive phone calls through Twilio.

Your device must be located within the United States on the T-Mobile network to use voice. Voice will not work when roaming on T-Mobile partner networks within the United States, or internationally.

How to make a call from a phone that contains a Programmable Wireless SIM

Purchase a voice-enabled Twilio phone number

You first to use the Console to purchase a voice-enabled Twilio phone number.

In the Console, you want to make sure the Internet of Things icon is visible in the side menu. If not, click All Products and Services, locate it under Super Network, and pin it to the dock.

  1. Point your browser to the Buy a Number section of the Console.
  2. In the page that appears, select a country.
  3. Optionally, enter an area code in the Number field to narrow the search.
  4. Select at least a Voice capability. Additional options (including the type of number, any address requirements, and beta numbers) are available by clicking Show Advanced Search.
  5. Click Search to generate a list of available Twilio numbers that you can purchase.
  6. Choose a number and click its Buy button.

You can see an example below, which is the result of searching for a number in the United States:


You now have a Twilio phone number that you can associate with your Programmable Wireless SIM.

Set the voice TwiML URL for calls originating from your device

  1. From Programmable Wireless click SIMs.
  2. Select the SIM that is in your device.
  3. Click the Programmable Voice & SMS tab.
  4. In the Programmable Voice section, select TwiML from the VOICE URL popup.
  5. Click the blue + button to the right of the Select... field — it will appear when you selected TwiML in the previous step.
  6. You’ll now see an Add a TwiML Bin panel appear with a TwiML template for routing calls.
  7. Give the TwiML bin a FRIENDLY NAME.
  8. In the Dial element, replace YOUR_NUMBER_HERE with the phone number you bought in the previous section.
  9. Click Add TwiML Bin.
  10. Click Save.


You need to enter phone numbes in E.164 format. What does that mean? Look here

You’re done — you can now make a phone call from your phone. The outbound Caller ID seen by the recipient will be the Twilio phone Number you purchased earlier. Feeling creative? Use functions or set up your own TwiML server to dynamically set the Caller ID.

How to receive a call on a phone that contains a Programmable Wireless SIM

You can now make phone calls from your cellphone with a Programmable Wireless SIM but you can’t yet receive them. Let’s set this up now. Once again we’ll use TwiML to tell the Twilio cloud how to handle incoming calls.

Create TwiML for incoming calls

In the Console, you want to make sure the TwiML Bins icon is visible in the side menu. If not, click All Products and Services, look under Runtime and pin TwiML Bins to the dock.

  1. Open TwiML Bins.
  2. Click the Red + Button to create a new TwiML Bin.
  3. Enter a name in the FRIENDLY NAME input field.
  4. For the TwiML, you can use the example shown below: copy and paste it into the TWIML field.
  5. In the Sim element, enter the SIM SID in place of YOUR_SIM_SID_HERE. You can find your SIM SID in the SIMs section under Programmable Wireless in the Console. It begins with the prefix DE.
  6. Click Create.
<?xml version="1.0" encoding="UTF-8"?>

Here’s a completed example:


Associate the TwiML with a voice-enabled Twilio phone number

  1. Open the Phone Numbers section of the Console.
    (See Purchase an SMS-enabled Twilio Phone Number above if you don’t have a number yet)
  2. Select the phone number you wish to associate with your SIM.
  3. Scroll down to Voice & Fax and make sure that Webhooks, TwiML Bins, Functions, Studio or Proxy is selected for CONFIGURE WITH.
  4. Under A CALL COMES IN, select TwiML Bin.
  5. Select the TwiML bin you created in the previous section using its Friendly Name.
  6. Click Save.

Try it out!

Call the phone number and you should receive the call on your SIM-connected device.

Logs and billing


You can view Call Logs for Wireless calls by selecting an Active Number in the Console and then clicking the Calls Log tab.


Most call flows that involve a SIM will include two independent call legs: one call between Twilio and the non-SIM party, and the other between Twilio and the SIM-connected device.

The call leg from Twilio to the non-SIM party (PSTN, SIP, Client, etc.) is billed at standard Twilio voice rates, depending on the connectivity method used. The other call leg between Twilio and the SIM is billed at Programmable Wireless voice rates.

Known limitations

Programmable Voice support on Programmable Wireless SIMs will end December 1, 2021

Twilio is ending support for voice and video calls with Programmable Wireless SIMs on December 1, 2021.

From this date, you will no longer be able to make voice or videos from a device connected with a Programmable Wireless SIM to any phone number unless you make use of an application which handles calls solely over a data connection and does not rely on forwarding calls to a phone number.

Non-programmable calls and messages to the device

A phone number is provided on the SIM known as the MSISDN which is not used by Programmable Voice or Programmable SMS. The presence of the MSISDN means that some (potentially unwanted) calls may arrive straight to your SIM without routing via Twilio. If this occurs, Twilio cannot yet offer programmatic control over the calls and you won't see them in your Twilio call logs. However, 100% of calls and messages originating from the SIM are programmatically routed by Twilio.

United States on the T-Mobile network only

Programmable Voice is currently only offered when connected to the T-Mobile network in the USA. Voice will not work when roaming on T-Mobile partner networks within the United States.

Trial accounts

Currently, Wireless Programmable Voice requires an upgraded Twilio account.

TwiML only — no access from the Calls REST API

Wireless Programmable Voice calls can be processed using TwiML, as shown in these examples. However, it is not possible to directly address a SIM resource in the To field of the Calls REST API.

No Emergency and Toll Free Calling

Calls to emergency services (e.g. 911) and non-Twilio toll-free numbers are not supported.

Rate this page:

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 Community Forums or browsing the Twilio tag on Stack Overflow.

Thank you for your feedback!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Sending your feedback...
🎉 Thank you for your feedback!
Something went wrong. Please try again.

Thanks for your feedback!

Refer us and get $10 in 3 simple steps!

Step 1

Get link

Get a free personal referral link here

Step 2

Give $10

Your user signs up and upgrade using link

Step 3

Get $10

1,250 free SMSes
OR 1,000 free voice mins
OR 12,000 chats
OR more