Come effettuare una chiamata tramite Twilio in un'applicazione Java in AzureHow to Make a Phone Call Using Twilio in a Java Application on Azure

Nell'esempio seguente viene illustrato come è possibile usare Twilio per effettuare una chiamata da una pagina Web ospitata in Azure.The following example shows you how you can use Twilio to make a call from a web page hosted in Azure. L'applicazione risultante chiederà all'utente di inserire i valori relativi alla chiamata telefonica, come illustrato nella schermata seguente.The resulting application will prompt the user for phone call values, as shown in the following screen shot.

Modulo di chiamata di Azure con Twilio e Java

Per usare il codice in questo argomento è necessario eseguire le operazioni seguenti:You'll need to do the following to use the code in this topic:

  1. Ottenere un account e un token di autenticazione Twilio.Acquire a Twilio account and authentication token. Per informazioni sui prezzi di Twilio, vedere la pagina http://www.twilio.com/pricing.To get started with Twilio, evaluate pricing at http://www.twilio.com/pricing. È possibile registrarsi all'indirizzo https://www.twilio.com/try-twilio.You can sign up at https://www.twilio.com/try-twilio. Per informazioni sull'API fornita da Twilio, vedere http://www.twilio.com/api.For information about the API provided by Twilio, see http://www.twilio.com/api.
  2. Ottenere il file JAR di Twilio.Obtain the Twilio JAR. Dall'indirizzo https://github.com/twilio/twilio-java è possibile scaricare i file di origine disponibili in GitHub e creare un file JAR personalizzato o scaricarne uno precompilato, con o senza dipendenze.At https://github.com/twilio/twilio-java, you can download the GitHub sources and create your own JAR, or download a pre-built JAR (with or without dependencies). Il codice in questo argomento è stato scritto utilizzando il JAR precompilato TwilioJava-3.3.8-with-dependencies.The code in this topic was written using the pre-built TwilioJava-3.3.8-with-dependencies JAR.
  3. Aggiungere il file JAR al percorso di compilazione Java.Add the JAR to your Java build path.
  4. Se si usa Eclipse per creare l'applicazione Java, includere il JAR di Twilio nel file WAR per la distribuzione dell'applicazione usando l'assembly di distribuzione di Eclipse.If you are using Eclipse to create this Java application, include the Twilio JAR in your application deployment file (WAR) using Eclipse's deployment assembly feature. Se non si utilizza Eclipse per creare l'applicazione Java, verificare che il JAR di Twilio sia incluso nello stesso ruolo di Azure dell'applicazione Java e che sia stato aggiunto al percorso della classe dell'applicazione.If you are not using Eclipse to create this Java application, ensure the Twilio JAR is included within the same Azure role as your Java application, and added to the class path of your application.
  5. Verificare che l'archivio chiavi cacerts del JDK contenga il certificato Equifax Secure Certificate Authority con ID digitale MD5 67:CB:9D:C0:13:24:8A:82:9B:B2:17:1E:D1:1B:EC:D4 (il numero di serie è 35:DE:F4:CF e l'ID digitale SHA1 è D2:32:09:AD:23:D3:14:23:21:74:E4:0D:7F:9D:62:13:97:86:63:3A).Ensure your cacerts keystore contains the Equifax Secure Certificate Authority certificate with MD5 fingerprint 67:CB:9D:C0:13:24:8A:82:9B:B2:17:1E:D1:1B:EC:D4 (the serial number is 35:DE:F4:CF and the SHA1 fingerprint is D2:32:09:AD:23:D3:14:23:21:74:E4:0D:7F:9D:62:13:97:86:63:3A). Si tratta del certificato dell'Autorità di certificazione (CA) per il servizio https://api.twilio.com, che viene chiamato quando si usano le API Twilio.This is the certificate authority (CA) certificate for the https://api.twilio.com service, which is called when you use Twilio APIs. Per informazioni sull'aggiunta del certificato della CA all'archivio cacert del JDK, vedere Aggiunta di un certificato all'archivio certificati CA Java.For information about adding this CA certificate to your JDK's cacert store, see Adding a Certificate to the Java CA Certificate Store.

Se non si usa Eclipse, è anche consigliabile acquisire familiarità con le informazioni in Creazione di un'applicazione Hello World per Azure in Eclipse o con altre tecniche per l'hosting di applicazioni Java in Azure.Additionally, familiarity with the information at Creating a Hello World Application Using the Azure Toolkit for Eclipse, or with other techniques for hosting Java applications in Azure if you are not using Eclipse, is highly recommended.

Creare un modulo Web per effettuare una chiamataCreate a web form for making a call

Nel codice seguente viene illustrato come creare un modulo Web per recuperare i dati utente per l'esecuzione di una chiamata.The following code shows how to create a web form to retrieve user data for making a call. Ai fini di questo esempio, è stato creato un nuovo progetto Web dinamico denominato TwilioCloud ed è stato aggiunto il file JSP callform.jsp.For purposes of this example, a new dynamic web project, named TwilioCloud, was created, and callform.jsp was added as a JSP file.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Automated call form</title>
</head>
<body>
 <p>Fill in all fields and click <b>Make this call</b>.</p>
 <br/>
  <form action="makecall.jsp" method="post">
   <table>
     <tr>
       <td>To:</td>
       <td><input type="text" size=50 name="callTo" value="" />
       </td>
     </tr>
     <tr>
       <td>From:</td>
       <td><input type="text" size=50 name="callFrom" value="" />
       </td>
     </tr>
     <tr>
       <td>Call message:</td>
       <td><input type="text" size=400 name="callText" value="Hello. This is the call text. Good bye." />
       </td>
     </tr>
     <tr>
       <td colspan=2><input type="submit" value="Make this call" />
       </td>
     </tr>
   </table>
 </form>
 <br/>
</body>
</html>

Creare il codice per l'esecuzione della chiamataCreate the code to make the call

Il codice seguente, chiamato quando l'utente completa il modulo visualizzato da callform.jsp, crea il messaggio di chiamata e genera la chiamata.The following code, which is called when the user completes the form displayed by callform.jsp, creates the call message and generates the call. Ai fini di questo esempio, il file JSP è denominato makecall.jsp ed è stato aggiunto al progetto TwilioCloud.For purposes of this example, the JSP file is named makecall.jsp and was added to the TwilioCloud project. Nel codice seguente sostituire i valori segnaposto assegnati a accountSID e authToken con il proprio account e il token di autenticazione Twilio.(Use your Twilio account and authentication token instead of the placeholder values assigned to accountSID and authToken in the code below.)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
import="java.util.*"
import="com.twilio.*"
import="com.twilio.sdk.*"
import="com.twilio.sdk.resource.factory.*"
import="com.twilio.sdk.resource.instance.*"
pageEncoding="ISO-8859-1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Call processing happens here</title>
</head>
<body>
    <b>This is my make call page.</b><p/>
 <%
try 
{
     // Use your account SID and authentication token instead
     // of the placeholders shown here.
     String accountSID = "your_twilio_account";
     String authToken = "your_twilio_authentication_token";

     // Instantiate an instance of the Twilio client.     
     TwilioRestClient client;
     client = new TwilioRestClient(accountSID, authToken);

     // Retrieve the account, used later to retrieve the CallFactory.
     Account account = client.getAccount();

     // Display the client endpoint. 
     out.println("<p>Using Twilio endpoint " + client.getEndpoint() + ".</p>");

     // Display the API version.
     String APIVERSION = TwilioRestClient.DEFAULT_VERSION;
     out.println("<p>Twilio client API version is " + APIVERSION + ".</p>");

     // Retrieve the values entered by the user.
     String callTo = request.getParameter("callTo");  
     // The Outgoing Caller ID, used for the From parameter,
     // must have previously been verified with Twilio.
     String callFrom = request.getParameter("callFrom");
     String userText = request.getParameter("callText");

     // Replace spaces in the user's text with '%20', 
     // to make the text suitable for a URL.
     userText = userText.replace(" ", "%20");

     // Create a URL using the Twilio message and the user-entered text.
     String Url="http://twimlets.com/message";
     Url = Url + "?Message%5B0%5D=" + userText;

     // Display the message URL.
     out.println("<p>");
     out.println("The URL is " + Url);
     out.println("</p>");

     // Place the call From, To and URL values into a hash map. 
     HashMap<String, String> params = new HashMap<String, String>();
     params.put("From", callFrom);
     params.put("To", callTo);
     params.put("Url", Url);

     CallFactory callFactory = account.getCallFactory();
     Call call = callFactory.create(params);
     out.println("<p>Call status: " + call.getStatus()  + "</p>"); 
} 
catch (TwilioRestException e) 
{
    out.println("<p>TwilioRestException encountered: " + e.getMessage() + "</p>");
    out.println("<p>StackTrace: " + e.getStackTrace().toString() + "</p>");
}
catch (Exception e) 
{
    out.println("<p>Exception encountered: " + e.getMessage() + "");
    out.println("<p>StackTrace: " + e.getStackTrace().toString() + "</p>");
}
%>
</body>
</html>

Oltre ad eseguire la chiamata, makecall.jsp visualizza l'endpoint Twilio, la versione dell'API e lo stato della chiamata.In addition to making the call, makecall.jsp displays the Twilio endpoint, API version, and the call status. Nella schermata di seguito viene visualizzato un esempio:An example is the following screen shot:

Risposta a chiamata di Azure tramite Twilio e Java

Eseguire l'applicazioneRun the application

Di seguito è riportata la procedura generica per eseguire l'applicazione. Per istruzioni dettagliate, vedere Creazione di un'applicazione Hello World tramite Azure Toolkit for Eclipse.Following are the high-level steps to run your application; details for these steps can be found at Creating a Hello World Application Using the Azure Toolkit for Eclipse.

  1. Esportare il file WAR TwilioCloud nella cartella approot di Azure.Export your TwilioCloud WAR to the Azure approot folder.
  2. Modificare startup.cmd per decomprimere il file WAR TwilioCloud.Modify startup.cmd to unzip your TwilioCloud WAR.
  3. Compilare l'applicazione per l'emulatore di calcolo.Compile your application for the compute emulator.
  4. Avviare la distribuzione nell'emulatore di calcolo.Start your deployment in the compute emulator.
  5. Aprire un browser ed eseguire http://localhost:8080/TwilioCloud/callform.jsp.Open a browser, and run http://localhost:8080/TwilioCloud/callform.jsp.
  6. Immettere i valori nel modulo, fare clic su Make this calle quindi visualizzare i risultati in makecall.jsp.Enter values in the form, click Make this call, and then see the results in makecall.jsp.

Quando si è pronti a distribuire l'applicazione in Azure, ricompilare per la distribuzione nel cloud, distribuire in Azure ed eseguire http://your_hosted_name.cloudapp.net/TwilioCloud/callform.jsp nel browser, sostituendo your_hosted_name con il proprio valore.When you are ready to deploy to Azure, recompile for deployment to the cloud, deploy to Azure, and run http://your_hosted_name.cloudapp.net/TwilioCloud/callform.jsp in the browser (substitute your value for your_hosted_name).

Passaggi successiviNext steps

Questo codice ha lo scopo di illustrare le funzionalità di base dell'utilizzo di Twilio con Java in Azure.This code was provided to show you basic functionality using Twilio in Java on Azure. Prima di eseguire la distribuzione in Azure in produzione, può essere necessario aggiungere ulteriori funzionalità per la gestione degli errori o per altri scopi.Before deploying to Azure in production, you may want to add more error handling or other features. Ad esempio:For example:

Per altre informazioni su Twilio, vedere https://www.twilio.com/docs.For additional information about Twilio, see https://www.twilio.com/docs.

Vedere ancheSee Also