挂断twilio时提交帖子数据
-
29-09-2019 - |
题
我有一个与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.
}
?>
不隶属于 StackOverflow