Generate Capability Tokens

Twilio Client allows you to make and recieve connections in the browser. You can place a call to a phone on the PSTN network, all without leaving your browser. See the Twilio Client Quickstart to get up and running with Twilio Client.

Capability tokens are used by Twilio Client to provide connection security and authorization. The Capability Token documentation explains indepth the purpose and features of these tokens.

Services_Twilio_Capability is responsible for the creation of these capability tokens. You’ll need your Twilio AccountSid and AuthToken.

require('/path/to/twilio-php/Services/Twilio/Capability.php');

$accountSid = "AC123123";
$authToken = "secret";

$capability = new Services_Twilio_Capability($accountSid, $authToken);

Allow Incoming Connections

Before a device running Twilio Client can recieve incoming connections, the instance must first register a name (such as “Alice” or “Bob”). The allowCclientIncoming method adds the client name to the capability token.

$capability->allowClientIncoming("Alice");

Allow Outgoing Connections

To make an outgoing connection from a Twilio Client device, you’ll need to choose a Twilio Application to handle TwiML URLs. A Twilio Application is a collection of URLs responsible for outputing valid TwiML to control phone calls and SMS.

$applicationSid = "AP123123"; // Twilio Application Sid
$capability->allowClientOutgoing($applicationSid);

allowClientOutgoing accepts an optional array of parameters. These parameters will be passed along when Twilio requests TwiML from the application.

$applicationSid = "AP123123";    // Twilio Application Sid
$params = array("Foo" => "Bar"); // Parameters to be passed
$capability->allowClientOutgoing($applicationSid, $params);

Generate a Token

$token = $capability->generateToken();

By default, this token will expire in one hour. If you’d like to change the token expiration time, generateToken takes an optional argument which specifies time to live in seconds.

$token = $capability->generateToken(600);

This token will now expire in 10 minutes.