Domanda

Ho un'applicazione che viene eseguito con Twilio. L'idea è che si chiamare un numero di telefono Twilio risponderà e vi darà le opzioni del menu. Una volta premuto una cifra che presenterà i dati post e poi riagganciare (Quella parte tutte le opere correttamente) Il problema che sto avendo è scoprire se c'è un modo per inviare dati post se l'utente si blocca appena non appena Twilio risposte ... ho trovato il seguente codice sul loro documentazione.

<?xml version="1.0" encoding="UTF-8"?>
<!-- page located at http://example.com/gather_hints.xml -->
<Response>
 <Gather action="/process_gather.php" method="GET">
     <Say>Enter something, or not</Say>
 </Gather>
 <Redirect method="GET">
     /process_gather.php?Digits=TIMEOUT
 </Redirect>
</Response>

Il problema di questo è che dovete aspettare fino alla fine del messaggio per riunirsi al time out. C'è un modo per fare in modo il più presto si avvia, se l'utente riaggancia lo faranno qualcosa come andare al tag di reindirizzamento?

Grazie!

Modifica: Così sulla pagina process_gather.php, posso salvare lo stato completato come una variabile?

$Completed = $_POST["completed"]; //which would set $Completed == 'completed'

e poi in quella pagina posso solo dire che in fondo se if (! Empty ($ completato)) fare qualcosa (Devo lavorare nella mia logica, ma voglio solo essere sicuro di ottenere l'idea generale)

È stato utile?

Soluzione

Il modo migliore per risolvere questo è quello di utilizzare l'URL StatusCallback. È possibile impostare questo URL per le chiamate in entrata nella configurazione numero nel tuo account, o tramite un argomento opzionale per le chiamate in uscita.

Quando il completamento del chiamata, Twilio pubblicheremo (o GET) per l'URL con tutta la stesse variabili passa durante una richiesta normale. La variabile CallStatus sarà impostata a completed.

Se l'URL viene chiamato prima di ottenere input da parte dell'utente (per lo script `/process_gather.php'), poi hanno riattaccato.

Nota: è possibile utilizzare i cookie per gestire lo stato della sessione all'interno di una chiamata: tutte le richieste formulate dal Twilio durante la stessa chiamata (e la richiesta StatusCallback) conterrà tutti i cookie inviati. Questo consente di utilizzare una variabile di sessione per monitorare i progressi di chiamata.

PHP Esempio per /proces_gather.php:

 <?php 
 session_start(); 
 // adds it to our session 
 $_SESSION['gather_result']=$_POST["Digits"]; 
 // then do whatever else you want your gather script to do.
 ?> 

Esempio per PHP /status_callback.php, che dovrebbe essere configurato come StatusCallback URL per il numero di telefono nella schermata Twilio account:

<?php
session_start();
//check for gather_result
if(isset($_SESSION['gather_result'])){
  //user did enter digits
} else {
  //do whatever you want to do if the user entered no digits.
}
?>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top