In this guide we’ll show you how to manipulate live phone calls using Python. We’ll also cover how to retrieve information about in progress and completed calls from your Twilio account.
We’ll use Twilio’s Python SDK in these examples to interact with the Twilio REST API’s Calls endpoint.
The simplest way to control the flow of a Twilio phone call is with TwiML itself.
You can use the "action" parameters of verbs like <Gather> and <Record> to tell Twilio to get new instructions from your applications during a call. You can also use the <Redirect> verb to explicitly tell Twilio to fetch new TwiML.
But sometimes you need to change a live phone call outside of Twilio’s normal request-response cycle. For those cases you can use "client.calls.update()" to tell Twilio to immediately change the TwiML it’s using in a phone call.
To update a call in progress you must provide:
- CallSid - Twilio returns a CallSid when you initiate an outgoing call. Twilio also includes the CallSid in its request to your application for an incoming call’s initial TwiML.
- Url - The URL Twilio should use to request new TwiML from your application.
Check out Modifying Live Calls in the reference docs for more details.