2011-12-06 8 views
5

Sono nuovo in twilio api. In un'applicazione web su cui sto lavorando, devo controllare la chiamata completata o meno e sto inviando file wav a twiml. Se completato devo dedurre credito di utenza .. io sto usando il seguente codice ...Come conoscere lo stato di chiamata di twilio (completato o meno)

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 } ?> 

ti prego, aiutami. .. Grazie in anticipo. :)

risposta

4

Impostare un URL per StatusCallback (docs halfway down this page) e inserire la logica di addebito in tale script.

Si passa l'URL StatusCallback durante la creazione della chiamata, si dovrebbe essere in grado di passare una serie di parametri facoltativi come il quarto argomento a: $client->account->calls->create().

Per le chiamate in entrata, l'URL è (facoltativamente) definito per ogni numero (o applicazione, se si utilizza tale metodo).

+0

Grazie per la risposta. Ho questo codice ma non funziona. ; http : // myUrl POST Manoj

+3

non è un verbo TwiML valido. La richiamata è specificata nei parametri di configurazione del rispettivo numero di telefono (nella dashboard dello sviluppatore su twilio.com). Leggi il link del documento Tim inviato. – Greg

+0

Aggiornato con speranza un po 'più di chiarezza. –

3

Se si sta effettuando una chiamata in uscita tramite l'interfaccia REST, è necessario specificare lo status callback in the request parameters.

Inoltre, tale callback sarà asincrono, quindi non è possibile attendere i risultati nella funzione di chiamata come si fa nel proprio esempio. Avrai bisogno di fare la gestione del credito nel callback.

0

È necessario impostare l'url statuallback nel codice dopo aver ottenuto la risposta di chiamata nella propria pagina o funzione statuscallback.

Questo url di richiamata non funzionerà in localhost. Per il test dovresti implementare il tuo progetto in 00webhost dopo averlo verificato funzionerà per te.

Per maggiori dettagli Leggere la documentazione di twilio.

Problemi correlati