Bil*_*ill 3 php voip phone-call twilio twilio-api
我有一个与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>
Run Code Online (Sandbox Code Playgroud)
这个问题是你需要等到消息结束才能收集到超时.有没有办法让它尽快启动,如果用户挂断它会做类似去重定向标记?
谢谢!
编辑:那么在process_gather.php页面上,我可以将已完成的状态保存为变量吗?
$Completed = $_POST["completed"]; //which would set $Completed == 'completed'
Run Code Online (Sandbox Code Playgroud)
然后在那个页面我基本上可以说是否(!空($ Completed))做某事(我必须把它用到我的逻辑中,但我只是想确保我得到一般的想法)
解决此问题的最佳方法是使用StatusCallback URL.您可以在帐户的"数字"配置中为入站呼叫设置此URL,也可以通过出站呼叫的可选参数设置此URL.
当调用完成时,Twilio将POST(或GET)到URL,并在正常请求期间传递所有相同的变量.该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.
?>
Run Code Online (Sandbox Code Playgroud)
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.
}
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2416 次 |
| 最近记录: |