In this guide we'll show you how to manipulate live phone calls using C#. We'll also cover how to retrieve information about in progress and completed calls from your Twilio account.
The code snippets in this guide are written using modern C# language features and require the .NET Framework version 4.5 or higher. They also make use of the Twilio C# SDK.
Modifying Twilio phone calls in progress with C#
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 update the Call to tell Twilio to immediately change the TwiML it's using in a phone call.
Update an in progress Call with new TwiML instructions
C#
_23
// Install the C# / .NET helper library from twilio.com/docs/csharp/install
_23
_23
using System;
_23
using Twilio;
_23
using Twilio.Rest.Api.V2010.Account;
_23
using System.Threading.Tasks;
_23
_23
class Program {
_23
public static async Task Main(string[] args) {
_23
// Find your Account SID and Auth Token at twilio.com/console
_23
// and set the environment variables. See http://twil.io/secure
In order to update the call you will need to use the CallSid. Twilio returns this when you initiate an outgoing call, and also includes the CallSid in its request to your application for an incoming call's initial TwiML.
As an alternative to updating your call with TwiML directly, you may also redirect a Call to a new URL that responds with your requested TwiML.
Redirect an in progress Call to a new URL
C#
_24
// Install the C# / .NET helper library from twilio.com/docs/csharp/install
_24
_24
using System;
_24
using Twilio;
_24
using Twilio.Rest.Api.V2010.Account;
_24
using System.Threading.Tasks;
_24
_24
class Program {
_24
public static async Task Main(string[] args) {
_24
// Find your Account SID and Auth Token at twilio.com/console
_24
// and set the environment variables. See http://twil.io/secure
Twilio will end phone calls for you when it encounters a <Hangup> verb or when it runs out of TwiML to process. But you can also end phone calls whenever you like by passing a "completed" status to a CallSid in progress.
Terminate a Running Call
C#
_23
// Install the C# / .NET helper library from twilio.com/docs/csharp/install
_23
_23
using System;
_23
using Twilio;
_23
using Twilio.Rest.Api.V2010.Account;
_23
using System.Threading.Tasks;
_23
_23
class Program {
_23
public static async Task Main(string[] args) {
_23
// Find your Account SID and Auth Token at twilio.com/console
_23
// and set the environment variables. See http://twil.io/secure