Come effettuare una chiamata tramite Twilio in un'applicazione PHP in Azure

Nell'esempio seguente viene illustrato come è possibile utilizzare Twilio per effettuare una chiamata da una pagina Web PHP ospitata in Azure. L'applicazione risultante chiederà all'utente di inserire i valori relativi alla chiamata telefonica, come illustrato nella schermata seguente.

Modulo di chiamata di Azure con Twilio e PHP

Per usare il codice in questo argomento è necessario eseguire le operazioni seguenti:

  1. Ottenere un account Twilio e un token di autenticazione dalla console di Twilio. Per informazioni sui prezzi di Twilio, vedere la pagina http://www.twilio.com/pricing. Per effettuare l'iscrizione e ottenere un account di valutazione gratuito, vedere la pagina https://www.twilio.com/try-twilio.
  2. Ottenere la libreria Twilio per PHP o installarla come pacchetto PEAR. Per altre informazioni, vedere il file leggimi.
  3. Installare Azure SDK per PHP. Per informazioni generali sull'SDK e istruzioni per installarlo, vedere Set up the Azure SDK for PHP (Configurare Azure SDK per PHP).

Creare un modulo Web per effettuare una chiamata

Il codice HTML seguente mostra come creare una pagina Web (callform.html) che consente di recuperare i dati utente per l'effettuazione di una chiamata:

<!DOCTYPE html>
<html>
<head>
  <title>Automated call form</title>
</head>
<body>
  <h1>Automated Call Form</h1>
  <p>Fill in all fields and click <b>Make this call</b>.</p>
  <form action="makecall.php" method="post">
    <table>
      <tr>
        <td>To:</td>
        <td><input name="callTo" size="50" type="text" value=""></td>
      </tr>
      <tr>
        <td>From:</td>
        <td><input name="callFrom" size="50" type="text" value=""></td>
      </tr>
      <tr>
        <td>Call message:</td>
        <td><input name="callText" size="100" type="text" 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 chiamata

Il codice seguente illustra come compilare makecall.php, una pagina Web chiamata quando l'utente invia il modulo visualizzato da callform.html. Il codice seguente crea il messaggio di chiamata e genera la chiamata. Accertarsi inoltre di usare l'account e il token di autenticazione Twilio ottenuti dalla console di Twilio anziché i valori segnaposto assegnati a $sid e $token nel codice seguente.

<html>
<head><title>Making call...</title></head>
<body>
<p>Your call is being made.</p>

<?php
require_once 'path/to/vendor/autoload.php';

$sid   = "your_account_sid";
$token = "your_authentication_token";

$from_number = $_POST['callFrom']; // Calls must be made from a registered Twilio number.
$to_number   = $_POST['callTo'];
$message     = $_POST['callText'];

$client = new Twilio\Rest\Client($sid, $token);

$call = $client->calls->create(
            $to_number,
            $from_number,
            array('url' => http://twimlets.com/message?Message=' . urlencode($message))
        );

echo "Call status: " . $call->status . "<br />";
echo "URI resource: " . $call->uri . "<br />";
?>
</body>
</html>

Oltre a eseguire la chiamata, makecall.php visualizza alcuni metadati della chiamata, come mostrato nell'immagine seguente. Per altre informazioni sui metadati della chiamata, vedere https://www.twilio.com/docs/api/rest/call#instance-properties.

Risposta a chiamata di Azure tramite Twilio e PHP

Eseguire l'applicazione

Il passaggio successivo consiste nel distribuire l'applicazione in Siti Web di Azure. Gli articoli seguenti contengono informazioni sulla creazione di un sito Web e sulla distribuzione del codice con Git, FTP o WebMatrix, sebbene non tutte le informazioni incluse in ogni articolo siano rilevanti:

Passaggi successivi

Questo codice ha lo scopo di illustrare le funzionalità di base dell'utilizzo di Twilio con PHP in 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. Ad esempio:

Per altre informazioni su Twilio, vedere https://www.twilio.com/docs.

Vedere anche