Come usare Twilio per le funzionalità voce ed SMS in PHPHow to Use Twilio for Voice and SMS Capabilities in PHP

In questa guida viene illustrato come eseguire attività di programmazione comuni con il servizio API Twilio in Azure.This guide demonstrates how to perform common programming tasks with the Twilio API service on Azure. Gli scenari presentati includono la composizione di una chiamata telefonica e l'invio di un messaggio SMS (Short Message Service).The scenarios covered include making a phone call and sending a Short Message Service (SMS) message. Per altre informazioni su Twilio e sull'utilizzo delle funzionalità voce ed SMS nelle applicazioni, vedere la sezione Passaggi successivi .For more information on Twilio and using voice and SMS in your applications, see the Next Steps section.

Informazioni su TwilioWhat is Twilio?

Twilio è una tecnologia all'avanguardia per le comunicazioni aziendali che consente agli sviluppatori di incorporare funzionalità voce, VoIP e di messaggistica nelle applicazioni.Twilio is powering the future of business communications, enabling developers to embed voice, VoIP, and messaging into applications. Consente di virtualizzare tutta l'infrastruttura necessaria in un ambiente globale basato su cloud, esponendolo attraverso la piattaforma API per le comunicazioni Twilio.They virtualize all infrastructure needed in a cloud-based, global environment, exposing it through the Twilio communications API platform. Le applicazioni sono scalabili e facili da compilare.Applications are simple to build and scalable. Offre flessibilità, grazie a un modello di prezzi con pagamento al consumo, e l'affidabilità del cloud.Enjoy flexibility with pay-as-you go pricing, and benefit from cloud reliability.

Twilio Voice consente alle applicazioni di effettuare e ricevere chiamate telefoniche.Twilio Voice allows your applications to make and receive phone calls. Twilio SMS consente alle applicazioni di inviare e ricevere messaggi di testo.Twilio SMS enables your application to send and receive text messages. Twilio Client consente di effettuare chiamate VoIP da qualsiasi telefono, tablet o browser e supporta WebRTC.Twilio Client allows you to make VoIP calls from any phone, tablet, or browser and supports WebRTC.

Prezzi e offerte speciali di TwilioTwilio Pricing and Special Offers

I clienti di Azure riceveranno un' offerta speciale: $ 10 di credito Twilio all'aggiornamento dell'account Twilio.Azure customers receive a special offer: complimentary $10 of Twilio Credit when you upgrade your Twilio Account. Il credito Twilio può essere applicato a qualsiasi utilizzo di Twilio ($ 10 di credito equivalgono all'invio di 1.000 SMS o a 1.000 minuti voce per le chiamate in entrata, a seconda della località del numero di telefono, del messaggio o della destinazione della chiamata).This Twilio Credit can be applied to any Twilio usage ($10 credit equivalent to sending as many as 1,000 SMS messages or receiving up to 1000 inbound Voice minutes, depending on the location of your phone number and message or call destination). Per riscattare il credito Twilio e iniziare a utilizzare il servizio, visitare la pagina http://ahoy.twilio.com/azure.Redeem this Twilio credit and get started at: http://ahoy.twilio.com/azure.

Twilio è un servizio con pagamento in base al consumo.Twilio is a pay-as-you-go service. Non prevede spese iniziali ed è possibile chiudere l'account in qualsiasi momento.There are no set-up fees and you can close your account at any time. Per altre informazioni, vedere la pagina Twilio Pricing (Prezzi di Twilio).You can find more details at Twilio Pricing.

ConcettiConcepts

L'API Twilio è un'API RESTful che fornisce funzionalità voce ed SMS per le applicazioni.The Twilio API is a RESTful API that provides voice and SMS functionality for applications. Le librerie client sono disponibili in più lingue. Per un elenco, vedere Twilio API Libraries (Librerie dell'API Twilio).Client libraries are available in multiple languages; for a list, see Twilio API Libraries.

I concetti principali dell'API Twilio sono costituiti dai verbi Twilio e dal linguaggio di markup Twilio (Twilio Markup Language, TwiML).Key aspects of the Twilio API are Twilio verbs and Twilio Markup Language (TwiML).

Verbi TwilioTwilio Verbs

Nell'API vengono usati i verbi di Twilio: il verbo <Say>, ad esempio, indica a Twilio di recapitare un messaggio acustico in una chiamata.The API makes use of Twilio verbs; for example, the <Say> verb instructs Twilio to audibly deliver a message on a call.

Di seguito è riportato un elenco dei verbi Twilio.The following is a list of Twilio verbs. Per altre informazioni su altri verbi e funzionalità, vedere la documentazione relativa a Twilio Markup Language.Learn about the other verbs and capabilities via Twilio Markup Language documentation.

  • <Dial>: connette il chiamante a un altro telefono.<Dial>: Connects the caller to another phone.
  • <Gather>: raccoglie i numeri digitati sulla tastiera del telefono.<Gather>: Collects numeric digits entered on the telephone keypad.
  • <Hangup>: termina una chiamata.<Hangup>: Ends a call.
  • <Play>: riproduce un file audio.<Play>: Plays an audio file.
  • <Pause>: attende in modo silenzioso per un numero di secondi specificato.<Pause>: Waits silently for a specified number of seconds.
  • <Record>: registra la voce del chiamante e restituisce l'URL del file contenente la registrazione.<Record>: Records the caller's voice and returns a URL of a file that contains the recording.
  • <Redirect>: trasferisce il controllo di una chiamata o di un SMS al codice TwiML presso un URL diverso.<Redirect>: Transfers control of a call or SMS to the TwiML at a different URL.
  • <Reject>: rifiuta una chiamata in arrivo al numero Twilio senza alcun addebito.<Reject>: Rejects an incoming call to your Twilio number without billing you
  • <Say>: effettua la sintesi vocale del testo durante una chiamata.<Say>: Converts text to speech that is made on a call.
  • <Sms>: invia un SMS.<Sms>: Sends an SMS message.

TwiMLTwiML

TwiML è un set di istruzioni basate su XML e sui verbi Twilio che indicano a Twilio come elaborare una chiamata o un SMS.TwiML is a set of XML-based instructions based on the Twilio verbs that inform Twilio of how to process a call or SMS.

Ad esempio, il codice TwiML seguente effettua la sintesi vocale del testo Hello World .As an example, the following TwiML would convert the text Hello World to speech.

<?xml version="1.0" encoding="UTF-8" ?>
<Response>
   <Say>Hello World</Say>
</Response>

Quando l'applicazione chiama l'API Twilio, uno dei parametri dell'API è l'URL che restituisce la risposta TwiML.When your application calls the Twilio API, one of the API parameters is the URL that returns the TwiML response. Ai fini dello sviluppo, è possibile utilizzare gli URL offerti da Twilio per fornire le risposte TwiML utilizzate dalle applicazioni.For development purposes, you can use Twilio-provided URLs to provide the TwiML responses used by your applications. È inoltre possibile ospitare gli URL per produrre le risposte TwiML oppure utilizzare l'oggetto TwiMLResponse .You could also host your own URLs to produce the TwiML responses, and another option is to use the TwiMLResponse object.

Per altre informazioni sui verbi Twilio, i relativi attributi e il codice TwiML, vedere TwiML.For more information about Twilio verbs, their attributes, and TwiML, see TwiML. Per altre informazioni sull'API Twilio, vedere Twilio API (API Twilio).For additional information about the Twilio API, see Twilio API.

Creare un account TwilioCreate a Twilio Account

Se si desidera creare un account Twilio, iscriversi nella pagina Try Twilio (Provare Twilio).When you're ready to get a Twilio account, sign up at Try Twilio. È possibile iniziare con un account gratuito ed eseguire l'aggiornamento in un secondo momento.You can start with a free account, and upgrade your account later.

Quando si effettua l'iscrizione a un account Twilio, si riceverà un ID account e un token di autenticazione.When you sign up for a Twilio account, you'll receive an account ID and an authentication token. Entrambe queste informazioni sono necessarie per effettuare chiamate all'API Twilio.Both will be needed to make Twilio API calls. Per prevenire accessi autorizzati all'account, conservare il token di autenticazione in un luogo sicuro.To prevent unauthorized access to your account, keep your authentication token secure. L'ID account e il token di autorizzazione sono visualizzabili nella pagina dell'account Twilio, rispettivamente nei campi ACCOUNT SID (SID ACCOUNT) e AUTH TOKEN (TOKEN AUTORIZZAZIONE).Your account ID and authentication token are viewable at the Twilio account page, in the fields labeled ACCOUNT SID and AUTH TOKEN, respectively.

Creare un'applicazione PHPCreate a PHP Application

Un'applicazione PHP che usa il servizio Twilio e viene eseguita in Azure non è diversa da qualsiasi altra applicazione PHP che usa il servizio Twilio.A PHP application that uses the Twilio service and is running in Azure is no different than any other PHP application that uses the Twilio service. I servizi Twilio sono basati su REST e possono essere chiamati da PHP in diversi modi. Questo articolo, tuttavia, illustra solo come usare i servizi Twilio con la libreria Twilio per PHP da GitHub.While Twilio services are REST-based and can be called from PHP in several ways, this article will focus on how to use Twilio services with Twilio library for PHP from GitHub. Per altre informazioni sull'uso della libreria Twilio per PHP, vedere http://readthedocs.org/docs/twilio-php/en/latest/index.html.For more information about using the Twilio library for PHP, see http://readthedocs.org/docs/twilio-php/en/latest/index.html.

Per istruzioni dettagliate sulla creazione e sulla distribuzione di un'applicazione Twilio/PHP in Azure, vedere Come effettuare una chiamata tramite Twilio in un'applicazione PHP in Azure.Detailed instructions for building and deploying a Twilio/PHP application to Azure are available at How to Make a Phone Call Using Twilio in a PHP Application on Azure.

Configurare l'applicazione per l'uso delle librerie TwilioConfigure Your Application to Use Twilio Libraries

È possibile configurare l'applicazione in modo che usi la libreria Twilio per PHP in due modi:You can configure your application to use the Twilio library for PHP in two ways:

  1. Scaricare la libreria Twilio per PHP da GitHub (https://github.com/twilio/twilio-php) e aggiungere la directory Services all'applicazione.Download the Twilio library for PHP from GitHub (https://github.com/twilio/twilio-php) and add the Services directory to your application.

    -OPPURE--OR-

  2. Installare la libreria Twilio per PHP come pacchetto PEAR.Install the Twilio library for PHP as a PEAR package. È possibile eseguire l'installazione tramite i comandi seguenti:It can be installed with the following commands:

     $ pear channel-discover twilio.github.com/pear
     $ pear install twilio/Services_Twilio
    

Dopo avere installato la libreria Twilio per PHP, sarà possibile aggiungere un'istruzione require_once nella parte superiore del file PHP, in modo che faccia riferimento alla libreria:Once you have installed the Twilio library for PHP, you can then add a require_once statement at the top of your PHP files to reference the library:

    require_once 'Services/Twilio.php';

Per altre informazioni, vedere https://github.com/twilio/twilio-php/blob/master/README.md.For more information, see https://github.com/twilio/twilio-php/blob/master/README.md.

Procedura: Effettuare una chiamata in uscitaHow to: Make an outgoing call

Di seguito è illustrato come effettuare una chiamata in uscita tramite la classe Services_Twilio.The following shows how to make an outgoing call using the Services_Twilio class. Questo codice utilizza inoltre un sito fornito da Twilio per restituire la risposta TwiML (Twilio Markup Language).This code also uses a Twilio-provided site to return the Twilio Markup Language (TwiML) response. Sostituire i valori per i numeri di telefono From e To e assicurarsi di verificare il numero di telefono in From per l'account Twilio prima di eseguire il codice.Substitute your values for the From and To phone numbers, and ensure that you verify the From phone number for your Twilio account prior to running the code.

// Include the Twilio PHP library.
require_once 'Services/Twilio.php';

// Library version.
$version = "2010-04-01";

// Set your account ID and authentication token.
$sid = "your_twilio_account_sid";
$token = "your_twilio_authentication_token";

// The number of the phone initiating the the call.
$from_number = "NNNNNNNNNNN";

// The number of the phone receiving call.
$to_number = "NNNNNNNNNNN";

// Use the Twilio-provided site for the TwiML response.
$url = "http://twimlets.com/message";

// The phone message text.
$message = "Hello world.";

// Create the call client.
$client = new Services_Twilio($sid, $token, $version);

//Make the call.
try
{
    $call = $client->account->calls->create(
        $from_number, 
        $to_number,
          $url.'?Message='.urlencode($message)
    );
}
catch (Exception $e) 
{
    echo 'Error: ' . $e->getMessage();
}

Come indicato in precedenza, questo codice utilizza un sito fornito da Twilio per restituire la risposta TwiML.As mentioned, this code uses a Twilio-provided site to return the TwiML response. Per fornire la risposta TwiML è inoltre possibile usare il proprio sito. Per altre informazioni, vedere Come fornire risposte TwiML dal proprio sito Web.You could instead use your own site to provide the TwiML response; for more information, see How to Provide TwiML Responses from Your Own Web Site.

Procedura: Inviare un messaggio SMSHow to: Send an SMS message

Nella schermata seguente è illustrato come inviare un SMS tramite la classe Services_Twilio.The following shows how to send an SMS message using the Services_Twilio class. Il numero in From per l'invio di messaggi SMS con gli account di valutazione è fornito da Twilio.The From number is provided by Twilio for trial accounts to send SMS messages. Il numero in To deve essere verificato per l'account Twilio prima di eseguire il codice.The To number must be verified for your Twilio account prior to running the code.

// Include the Twilio PHP library.
require_once 'Services/Twilio.php';

// Library version.
$version = "2010-04-01";

// Set your account ID and authentication token.
$sid = "your_twilio_account_sid";
$token = "your_twilio_authentication_token";


$from_number = "NNNNNNNNNNN"; // With trial account, texts can only be sent from your Twilio number.
$to_number = "NNNNNNNNNNN";
$message = "Hello world.";

// Create the call client.
$client = new Services_Twilio($sid, $token, $version);

// Send the SMS message.
try
{
    $client->$client->account->messages->sendMessage($from_number, $to_number, $message);
}
catch (Exception $e) 
{
    echo 'Error: ' . $e->getMessage();
}

Procedura: Fornire risposte TwiML dal proprio sito WebHow to: Provide TwiML Responses from your own Website

Quando l'applicazione avvia una chiamata all'API Twilio, Twilio invia la richiesta a un URL che deve restituire una risposta TwiML.When your application initiates a call to the Twilio API, Twilio will send your request to a URL that is expected to return a TwiML response. Nell'esempio precedente viene usato l'URL fornito da Twilio http://twimlets.com/message.The example above uses the Twilio-provided URL http://twimlets.com/message. Poiché TwiML è progettato per essere usato da Twilio, è possibile visualizzarlo nel browser.(While TwiML is designed for use by Twilio, you can view the it in your browser. Ad esempio, fare clic su http://twimlets.com/message per visualizzare un elemento <Response> vuoto oppure fare clic su http://twimlets.com/message?Message%5B0%5D=Hello%20World per visualizzare un elemento <Response> contenente un elemento <Say>.For example, click http://twimlets.com/message to see an empty <Response> element; as another example, click http://twimlets.com/message?Message%5B0%5D=Hello%20World to see a <Response> element that contains a <Say> element.)

Anziché utilizzare l'URL fornito da Twilio, è possibile creare un sito personalizzato che restituisce risposte HTTP.Instead of relying on the Twilio-provided URL, you can create your own site that returns HTTP responses. È possibile creare il sito in qualsiasi linguaggio che restituisca risposte XML. In questo argomento si presuppone che si userà PHP per creare TwiML.You can create the site in any language that returns XML responses; this topic assumes you'll be using PHP to create the TwiML.

La pagina PHP seguente crea una risposta TwiML che pronuncia Hello World nella chiamata.The following PHP page results in a TwiML response that says Hello World on the call.

<?php    
    header("content-type: text/xml");    
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>
<Response>    
    <Say>Hello world.</Say>
</Response>

Come si evince dal codice riportato sopra, la risposta TwiML è semplicemente un documento XML.As you can see from the example above, the TwiML response is simply an XML document. La libreria Twilio per PHP contiene le classi che consentono di generare automaticamente le istruzioni TwiML.The Twilio library for PHP contains classes that will generate TwiML for you. Nell'esempio seguente viene creata la stessa risposta descritta sopra, ma usando la classe Services_Twilio_Twiml nella libreria Twilio per PHP:The example below produces the equivalent response as shown above, but uses the Services_Twilio_Twiml class in the Twilio library for PHP:

require_once('Services/Twilio.php');

$response = new Services_Twilio_Twiml();
$response->say("Hello world.");
print $response;

Per altre informazioni su TwiML, vedere https://www.twilio.com/docs/api/twiml.For more information about TwiML, see https://www.twilio.com/docs/api/twiml.

Dopo aver configurato la pagina PHP in modo da fornire risposte TwiML, usare l'URL della pagina PHP come URL trasmesso nel metodo Services_Twilio->account->calls->create.Once you have your PHP page set up to provide TwiML responses, use the URL of the PHP page as the URL passed into the Services_Twilio->account->calls->create method. Se, ad esempio, si dispone di un'applicazione Web chiamata MyTwiML distribuita in un servizio ospitato in Azure e il nome della pagina PHP è mytwiml.php, è possibile trasmettere l'URL a Services_Twilio->account->calls->create, come mostrato nell'esempio seguente:For example, if you have a Web application named MyTwiML deployed to an Azure hosted service, and the name of the PHP page is mytwiml.php, the URL can be passed to Services_Twilio->account->calls->create as shown in the following example:

require_once 'Services/Twilio.php';

$sid = "your_twilio_account_sid";
$token = "your_twilio_authentication_token";
$from_number = "NNNNNNNNNNN";
$to_number = "NNNNNNNNNNN";
$url = "http://<your_hosted_service>.cloudapp.net/MyTwiML/mytwiml.php";

// The phone message text.
$message = "Hello world.";

$client = new Services_Twilio($sid, $token, "2010-04-01");

try
{
    $call = $client->account->calls->create(
        $from_number, 
        $to_number,
          $url.'?Message='.urlencode($message)
    );
}
catch (Exception $e) 
{
    echo 'Error: ' . $e->getMessage();
}

Per altre informazioni sull'uso di Twilio in Azure con PHP, vedere Come effettuare una chiamata tramite Twilio in un'applicazione PHP in Azure.For additional information about using Twilio in Azure with PHP, see How to Make a Phone Call Using Twilio in a PHP Application on Azure.

Procedura: Utilizzare servizi Twilio aggiuntiviHow to: Use Additional Twilio Services

Oltre agli esempi illustrati in questa pagina, Twilio offre API basate su Web che è possibile utilizzare per sfruttare altre funzionalità di Twilio dall'applicazione Azure.In addition to the examples shown here, Twilio offers web-based APIs that you can use to leverage additional Twilio functionality from your Azure application. Per informazioni dettagliate, vedere la documentazione sull'API Twilio.For full details, see the Twilio API documentation.

Passaggi successiviNext Steps

Dopo aver appreso le nozioni di base sul servizio Twilio, utilizzare i collegamenti seguenti per ulteriori informazioni:Now that you've learned the basics of the Twilio service, follow these links to learn more: