Php 挂断Twilio时提交帖子数据
我有一个运行Twilio的应用程序。这个想法是,你将拨打一个电话号码,twilio将接听并为你提供菜单选项。一旦你按下一个数字,它将提交帖子数据,然后挂断(这部分都正常工作)我的问题是,如果用户在twilio回答后立即挂断,是否有办法提交帖子数据。。。我在他们的文档中发现了以下代码Php 挂断Twilio时提交帖子数据,php,twilio,voip,phone-call,twilio-api,Php,Twilio,Voip,Phone Call,Twilio Api,我有一个运行Twilio的应用程序。这个想法是,你将拨打一个电话号码,twilio将接听并为你提供菜单选项。一旦你按下一个数字,它将提交帖子数据,然后挂断(这部分都正常工作)我的问题是,如果用户在twilio回答后立即挂断,是否有办法提交帖子数据。。。我在他们的文档中发现了以下代码 <?xml version="1.0" encoding="UTF-8"?> <!-- page located at http://example.com/gather_hints.xml --&
<?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>
然后在那一页我可以说如果(!empty($Completed))做点什么
(我必须将其纳入我的逻辑中,但我只想确保我了解总体思路)解决这一问题的最佳方法是使用StatusCallback URL。您可以在帐户的号码配置中为入站呼叫设置此URL,也可以通过出站呼叫的可选参数设置此URL 当调用完成时,Twilio将在正常请求期间发布(或获取)到URL及其传递的所有信息。
CallStatus
变量将设置为completed
如果在您从用户(到您的“/process\u gather.php”脚本)获得输入之前调用了该URL,那么他们就会挂断
注意:您可以使用Cookie来管理通话中的会话状态:Twilio在同一通话中发出的所有请求(以及StatusCallback请求)都将包含您发送的任何Cookie。这允许您使用会话变量跟踪呼叫进度
/proces\u gather.PHP
的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.
?>
这里是来自Twilio的John…这是正确的答案。谢谢你,山姆!谢谢你的帮助。我编辑我的文章只是为了确保我的文章是正确的。我想是的,但我不太确定。嗯,好吧,这是有道理的。。。我会试试看。重要的不是完成状态。这是因为CallStatus回调发生了。您需要一个新的.php脚本(类似于
/call\u ended.php
),用于检查/process\u gather.php
是否已运行。如何查看process\u 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
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.
}
?>