我有一个与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'

然后在该页面中,我可以基本上说是否(!

有帮助吗?

解决方案

解决此问题的最佳方法是使用STATUSCALLBACK URL。您可以在帐户中的数字配置中设置此URL,或通过可选的出站呼叫的参数来设置此URL。

呼叫完成后,Twilio将使用所有内容发布(或获取) 相同的变量 它在正常请求期间通过。这 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.
 ?> 

PHP示例 /status_callback.php, ,应将其配置为Twilio帐户屏幕中电话号码的状态验证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