3

Twilio で実行するアプリケーションがあります。アイデアは、電話番号に電話をかけると、twilio が応答し、メニュー オプションが表示されるというものです。数字を押すと、投稿データが送信され、電話が切れます (その部分はすべて正常に動作します) 私が抱えている問題は、ユーザーが twilio の直後に電話を切った場合に投稿データを送信する方法があるかどうかを調べることです回答...ドキュメントで次のコードを見つけました。

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

これに関する問題は、メッセージの最後まで収集がタイムアウトするまで待つ必要があることです。ユーザーが電話を切った場合、リダイレクトタグに移動するようなことを行うようにする方法はありますか?

ありがとう!

編集: process_gather.php ページで、完了ステータスを変数として保存できますか?

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

そして、そのページでは、基本的に if(!empty($Completed)) が何かを行うと言うことができます (ロジックに組み込む必要がありますが、一般的なアイデアを確実に把握したいだけです)

4

1 に答える 1

9

これを解決する最善の方法は、StatusCallback URL を使用することです。この URL は、アカウントの番号設定で着信通話に設定するか、発信通話のオプションの引数を使用して設定できます。

呼び出しが完了すると、Twilio は、通常のリクエストで渡したものと同じすべての変数を使用して URL に POST (または GET) します。CallStatus変数は に設定されますcompleted

ユーザーから (`/process_gather.php' スクリプトへの) 入力を受け取る前にその URL が呼び出された場合、ユーザーは電話を切りました。

注: Cookie を使用して通話内のセッション状態を管理できます。同じ通話中に Twilio によって行われたすべての要求 (および StatusCallback 要求) には、送信した Cookie が含まれます。これにより、セッション変数を使用して通話の進行状況を追跡できます。

PHP の例/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.
 ?> 

/status_callback.phpTwilio アカウント画面で電話番号の StatusCallback URL として構成する必要があるの PHP の例:

<?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.
}
?>
于 2010-11-29T22:31:05.990 に答える