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

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 è un'API per servizi Web di telefonia che consente di usare le competenze e i linguaggi Web esistenti per sviluppare applicazioni SMS e vocali.Twilio is a telephony web-service API that lets you use your existing web languages and skills to build voice and SMS applications. Twilio è un servizio di terze parti. Non si tratta di una funzionalità di Azure, né di un prodotto Microsoft.Twilio is a third-party service (not an Azure feature and not a Microsoft product).

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 SMS.Twilio SMS allows your applications to make and receive SMS messages. Twilio Client consente alle applicazioni di abilitare le comunicazioni vocali utilizzando le connessioni Internet esistenti, comprese le connessioni mobili.Twilio Client allows your applications to enable voice communication using existing Internet connections, including mobile connections.

Prezzi e offerte speciali di TwilioTwilio Pricing and Special Offers

Per altre informazioni, vedere la pagina Twilio Pricing (Prezzi di Twilio).Information about Twilio pricing is available at Twilio Pricing. Per i clienti di Azure è disponibile un'offerta speciale: un credito gratuito per 1000 SMS o 1000 minuti di connessioni in entrata.Azure customers receive a special offer: a free credit of 1000 texts or 1000 inbound minutes. Per avvalersi dell'offerta o per altre informazioni, visitare il sito Web all'indirizzo http://ahoy.twilio.com/azure.To sign up for this offer or get more information, please visit http://ahoy.twilio.com/azure.

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.

TwiMLTwiML

TwiML è un set di istruzioni basate su XML che indicano a Twilio come elaborare una chiamata o un SMS.TwiML is a set of XML-based instructions 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>

Tutti i documenti TwiML dispongono di un elemento radice <Response>,All TwiML documents have <Response> as their root element. da cui è possibile utilizzare i verbi Twilio per definire il comportamento dell'applicazione.From there, you use Twilio Verbs to define the behavior of your application.

Verbi TwiMLTwiML Verbs

I verbi Twilio sono tag XML che indicano a Twilio le azioni da eseguire.Twilio Verbs are XML tags that tell Twilio what to do. Il verbo <Say>, ad esempio, indica a Twilio di recapitare un messaggio acustico in una chiamata.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.

  • <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.

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 Twilio si riceve un numero di telefono gratuito per l'applicazione.When you sign up for a Twilio account, you'll get a free phone number for your application. Si ricevono inoltre il SID dell'account e un token di autorizzazione.You'll also receive an account SID and an auth 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. Il SID 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 SID and auth token are viewable at the Twilio account page, in the fields labeled ACCOUNT SID and AUTH TOKEN, respectively.

Verificare i numeri di telefonoVerify Phone Numbers

Oltre al numero assegnato da Twilio, è possibile verificare altri numeri di cui si abbia il controllo, ad esempio quello del cellulare o quello dell'abitazione, per usarli nelle applicazioni.In addition to the number you are given by Twilio, you can also verify numbers that you control (i.e. your cell phone or home phone number) for use in your applications.

Per informazioni su come verificare un numero di telefono, vedere Manage Numbers (Gestire i numeri).For information on how to verify a phone number, see Manage Numbers.

Creare un'applicazione RubyCreate a Ruby Application

Un'applicazione Ruby che usa il servizio Twilio e viene eseguita in Azure non è diversa da qualsiasi altra applicazione Ruby che usa il servizio Twilio.A Ruby application that uses the Twilio service and is running in Azure is no different than any other Ruby application that uses the Twilio service. Anche se i servizi Twilio sono di tipo RESTful e possono essere chiamati da Ruby in molti modi, in questo articolo verrà illustrato solo come usare i servizi Twilio con la libreria helper Twilio per Ruby.While Twilio services are RESTful and can be called from Ruby in several ways, this article will focus on how to use Twilio services with Twilio helper library for Ruby.

Prima di tutto, configurare una nuova VM Linux in Azure che funga da host per la nuova applicazione Web Ruby.First, set-up a new Azure Linux VM to act as a host for your new Ruby web application. Ignorare i passaggi relativi alla creazione di un'app Rails e configurare semplicemente la VM.Ignore the steps involving the creation of a Rails app, just set-up the VM. Assicurarsi di creare un endpoint con porta esterna 80 e porta interna 5000.Make sure you create an Endpoint with an external port of 80 and an internal port of 5000.

Negli esempi che seguono verrà usato Sinatra, un framework Web molto semplice per Ruby.In the examples below, we will be using Sinatra, a very simple web framework for Ruby. È comunque possibile utilizzare la libreria helper Twilio per Ruby con qualsiasi altro web framework, compreso Ruby on Rails.But you can certainly use the Twilio helper library for Ruby with any other web framework, including Ruby on Rails.

Connettersi tramite SSH alla nuova macchina virtuale e creare una directory per la nuova app.SSH into your new VM and create a directory for your new app. All'interno di tale directory creare un file denominato Gemfile e copiare al suo interno il codice seguente:Inside that directory, create a file called Gemfile and copy the following code into it:

source 'https://rubygems.org'
gem 'sinatra'
gem 'thin'

Nella riga di comando eseguire bundle install.On the command line run bundle install. Le dipendenze precedenti verranno installate.This will install the dependencies above. Quindi, creare un file denominato web.rb.Next create a file called web.rb. in cui risiederà il codice per l'app Web.This will be where the code for your web app lives. Copiare nel file il codice seguente:Paste the following code into it:

require 'sinatra'

get '/' do
    "Hello Monkey!"
end

A questo punto dovrebbe essere possibile eseguire il comando ruby web.rb -p 5000.At this point you should be able the run the command ruby web.rb -p 5000. Verrà avviato un server Web di dimensioni ridotte sulla porta 5000.This will spin-up a small web server on port 5000. Dovrebbe essere possibile passare all'app nel browser visitando l'URL configurato per la macchina virtuale di Azure.You should be able to browse to this app in your browser by visiting the URL you set-up for your Azure VM. Non appena è possibile raggiungere l'app Web nel browser, è possibile iniziare a creare un'app Twilio.Once you can reach your web app in the browser, you're ready to start building a Twilio app.

Configurare l'applicazione per utilizzare TwilioConfigure Your Application to Use Twilio

È possibile configurare l'app Web per utilizzare la libreria Twilio aggiornando il Gemfile includendo la seguente riga:You can configure your web app to use the Twilio library by updating your Gemfile to include this line:

gem 'twilio-ruby'

Nella riga di comando, eseguire bundle install.On the command line, run bundle install. A questo punto, aprire web.rb e includere la riga nella parte superiore:Now open web.rb and including this line at the top:

require 'twilio-ruby'

È ora possibile usare la libreria helper Twilio per Ruby nell'app Web.You're now all set to use the Twilio helper library for Ruby in your web app.

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

Di seguito è illustrato come effettuare una chiamata in uscita.The following shows how to make an outgoing call. I principali concetti illustrati includono l'utilizzo della libreria helper Twilio per Ruby per effettuare chiamate API REST e per il rendering di TwiML.Key concepts include using the Twilio helper library for Ruby to make REST API calls and rendering TwiML. 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.

Aggiungere a web.mdla funzione seguente:Add this function to web.md:

# 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.
# This should either be a Twilio number or a number that you've verified
from = "NNNNNNNNNNN";

# The number of the phone receiving call.
to = "NNNNNNNNNNN";

# Use the Twilio-provided site for the TwiML response.
url = "http://yourdomain.cloudapp.net/voice_url";

get '/make_call' do
  # Create the call client.
  client = Twilio::REST::Client.new(sid, token);

  # Make the call
  client.account.calls.create(to: to, from: from, url: url)
end

post '/voice_url' do
  "<Response>
     <Say>Hello Monkey!</Say>
   </Response>"
end

Aprendo http://yourdomain.cloudapp.net/make_call in un browser verrà attivata la chiamata all'API Twilio per l'esecuzione della chiamata telefonica.If you open-up http://yourdomain.cloudapp.net/make_call in a browser, that will trigger the call to the Twilio API to make the phone call. I primi due parametri in client.account.calls.create sono facilmente comprensibili: il numero da cui proviene la chiamata è from e il numero a cui è diretta è to.The first two parameters in client.account.calls.create are fairly self-explanatory: the number the call is from and the number the call is to.

Il terzo parametro (url) è l'URL utilizzato da Twilio per richiedere istruzioni sulle operazioni da eseguire dopo la connessione della chiamata.The third parameter (url) is the URL that Twilio requests to get instructions on what to do once the call is connected. In questo caso verrà configurato un URL (http://yourdomain.cloudapp.net) che restituisce un documento TwiML molto semplice e utilizza il verbo <Say> per effettuare la sintesi vocale del testo e pronunciare la frase "Hello Monkey" per il destinatario della chiamata.In this case we set-up a URL (http://yourdomain.cloudapp.net) that returns a simple TwiML document and uses the <Say> verb to do some text-to-speech and say "Hello Monkey" to the person recieving the call.

Procedura: Ricevere un messaggio SMSHow to: Recieve an SMS message

Nell'esempio precedente è stata avviata una chiamata telefonica in uscita .In the previous example we initiated an outgoing phone call. Questa volta verrà utilizzato il numero ricevuto da Twilio dopo l'iscrizione per elaborare un SMS in arrivo .This time, let's use the phone number that Twilio gave us during sign-up to process an incoming SMS message.

Prima di tutto, accedere al dashboard Twilio.First, log-in to your Twilio dashboard. Fare clic su "Numbers" sulla barra di spostamento superiore e quindi fare clic sul numero ricevuto da Twilio.Click on "Numbers" in the top nav and then click on the Twilio number you were provided. Verranno visualizzati due URL che è possibile configurare,You'll see two URLs that you can configure. uno per le richieste vocali e uno per le richieste SMS.A Voice Request URL and an SMS Request URL. Si tratta degli URL chiamati da Twilio ogni volta che viene inviato un SMS o viene effettuata una chiamata telefonica verso il proprio numero.These are the URLs that Twilio calls whenever a phone call is made or an SMS is sent to your number. Gli URL sono noti anche come "hook Web".The URLs are also known as "web hooks".

Per elaborare gli SMS in arrivo è necessario aggiornare l'URL in http://yourdomain.cloudapp.net/sms_url.We would like to process incoming SMS messages, so let's update the URL to http://yourdomain.cloudapp.net/sms_url. Effettuare la modifica e fare clic su Save Changes nella parte inferiore della pagina.Go ahead and click Save Changes at the bottom of the page. Tornare a web.rb e programmare l'applicazione per la gestione dell'operazione seguente:Now, back in web.rb let's program our application to handle this:

post '/sms_url' do
  "<Response>
     <Message>Hey, thanks for the ping! Twilio and Azure rock!</Message>
   </Response>"
end

Dopo aver apportato la modifica, riavviare l'app Web.After making the change, make sure to re-start your web app. Prendere il telefono e inviare un SMS al proprio numero Twilio.Now, take out your phone and send an SMS to your Twilio number. Si dovrebbe ricevere un SMS di risposta con il testo "Hey, thanks for the ping!You should promptly get an SMS response that says "Hey, thanks for the ping! Twilio and Azure rock!".Twilio and Azure rock!".

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: