mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-25 06:50:55 +01:00
e96c363eef
Summary: Provides a working SMS implementation with support for Twilio. This version doesn't really retry if we get any gruff at all. Future versions should retry. Test Plan: used bin/sms to send messages and look at them. Reviewers: chad, epriestley Reviewed By: epriestley Subscribers: aurelijus, epriestley, Korvin Maniphest Tasks: T920 Differential Revision: https://secure.phabricator.com/D8930
64 lines
2.7 KiB
ReStructuredText
Executable file
64 lines
2.7 KiB
ReStructuredText
Executable file
===========================
|
|
Generate Capability Tokens
|
|
===========================
|
|
|
|
`Twilio Client <http://www.twilio.com/api/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 <http:/www.twilio.com/docs/quickstart/client>`_ to get up and running with Twilio Client.
|
|
|
|
Capability tokens are used by `Twilio Client <http://www.twilio.com/api/client>`_ to provide connection security and authorization. The `Capability Token documentation <http://www.twilio.con/docs/tokens>`_ explains indepth the purpose and features of these tokens.
|
|
|
|
:php:class:`Services_Twilio_Capability` is responsible for the creation of these capability tokens. You'll need your Twilio AccountSid and AuthToken.
|
|
|
|
.. code-block:: php
|
|
|
|
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 <http://www.twilio.com/api/client>`_ can recieve incoming connections, the instance must first register a name (such as "Alice" or "Bob"). The :php:meth:`allowCclientIncoming` method adds the client name to the capability token.
|
|
|
|
.. code-block:: php
|
|
|
|
$capability->allowClientIncoming("Alice");
|
|
|
|
|
|
Allow Outgoing Connections
|
|
==============================
|
|
|
|
To make an outgoing connection from a `Twilio Client <http://www.twilio.com/api/client>`_ device, you'll need to choose a `Twilio Application <http://www.twilio.com/docs/api/rest/applications>`_ to handle TwiML URLs. A Twilio Application is a collection of URLs responsible for outputing valid TwiML to control phone calls and SMS.
|
|
|
|
.. code-block:: php
|
|
|
|
$applicationSid = "AP123123"; // Twilio Application Sid
|
|
$capability->allowClientOutgoing($applicationSid);
|
|
|
|
:php:meth:`allowClientOutgoing` accepts an optional array of parameters. These parameters will be passed along when Twilio requests TwiML from the application.
|
|
|
|
.. code-block:: php
|
|
|
|
$applicationSid = "AP123123"; // Twilio Application Sid
|
|
$params = array("Foo" => "Bar"); // Parameters to be passed
|
|
$capability->allowClientOutgoing($applicationSid, $params);
|
|
|
|
|
|
Generate a Token
|
|
==================
|
|
|
|
.. code-block:: php
|
|
|
|
$token = $capability->generateToken();
|
|
|
|
By default, this token will expire in one hour. If you'd like to change the token expiration time, :php:meth:`generateToken` takes an optional argument which specifies `time to live` in seconds.
|
|
|
|
.. code-block:: php
|
|
|
|
$token = $capability->generateToken(600);
|
|
|
|
This token will now expire in 10 minutes.
|
|
|