質問

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'

そして、そのページで、基本的に(!empty($ completed))何かをしている場合に言うことができます(私はそれを自分の論理に取り入れなければなりませんが、一般的なアイデアを得ることを確認したいだけです)

役に立ちましたか?

解決

これを解決する最良の方法は、StatusCallback URLを使用することです。このURLは、アカウントの数値構成のインバウンドコールのために、またはアウトバウンドコールのオプションの引数を使用して設定できます。

コールが完了すると、Twilioはすべての場合にURLに投稿(または取得)します 同じ変数 通常のリクエスト中に通過します。 CallStatus 変数が設定されます completed.

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

注: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.
 ?> 

PHPの例 /status_callback.php, 、Twilioアカウント画面の電話番号のStatusCallback URLとして構成する必要があります。

<?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.
}
?>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top