Domanda

Sono nuovo nell'API Twilio. In un'applicazione Web sto lavorando, devo controllare la chiamata completata o no e sto inviando un file WAV a TWIML. Se completato, devo detrarre il credito dell'utente .. Sto usando il seguente codice ...

callmeaction

        $AccountSid = "**********************";
        $AuthToken = "***************";

        /* Your Twilio Number or an Outgoing Caller ID you have previously validated
          with Twilio */
        $from = '**************';

        /* Number you wish to call */
        $to = $_POST['contactno'];

        /* Directory location for callback.php file (for use in REST URL) */
        $url = 'http://'.$_SERVER['HTTP_HOST'].'/public/';

        /* Instantiate a new Twilio Rest Client */
        $client = new Services_Twilio($AccountSid, $AuthToken);



        /* make Twilio REST request to initiate outgoing call */
        $call = $client->account->calls->create($from, $to, $url . 'callback.php?number=' . $_POST['contactno'] . '&wav=' . $_POST['wav']);

        /* redirect back to the main page with CallSid */
        $msg = urlencode("Connecting... " . $call->sid);
        //header("Location: index.php?msg=$msg");

         $this->view->msg = $msg;

        if($call->status == 'COMPLETED'){

            /*
             *  Deduct credit if call completed
             */


          $this->view->msg = $msg;
        }

callback.php

<?php
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>



<?php if($_REQUEST['wav']){ ?>
<Response>
    <Say>A customer at the number <?php echo $_REQUEST['number']?> is calling</Say>
    <Dial><?php echo $_REQUEST['number']?></Dial>
    <Play><?php echo $_REQUEST['wav'] ;?></Play>
</Response>
<?php } ?>

Per favore aiutami ... grazie in anticipo. :)

È stato utile?

Soluzione

Imposta un URL per il StatusCallback (docs a metà della pagina), e metti la logica di carica in quello script.

Passando l'URL di statusCallback durante la creazione della chiamata, dovresti essere in grado di passare una serie di parametri opzionali come quarto argomento a: $client->account->calls->create().

Per le chiamate in arrivo, l'URL è (facoltativamente) definito per ciascun numero (o applicazione, se si utilizza quel metodo).

Altri suggerimenti

Se stai effettuando una chiamata in uscita tramite l'interfaccia di riposo, è necessario specificare il callback di stato nei parametri di richiesta.

Inoltre, quel callback sarà asincrono, quindi non puoi aspettare i risultati nella funzione di chiamata come stai facendo nel tuo esempio. Dovrai fare la gestione del credito nel callback.

Dovresti impostare URL StatoCallback nel tuo codice dopo essere stato in grado di ottenere la risposta di chiamata nella pagina o nella funzione di stato.

Questo URL di callback non funzionerà in localhost. Per i test è necessario distribuire il tuo progetto in 00WebHost dopo che puoi verificarlo funzionerà per te.

Per ulteriori dettagli, leggi la documentazione di Twilio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top