ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – 挂断Twilio时提交POST数据

2019-07-23 22:29:01  阅读:298  来源: 互联网

标签: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 -->
<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,也可以通过出站呼叫的可选参数设置此URL.

当呼叫完成时,Twilio将在正常请求期间将所有same variables传递给URL(或GET). CallStatus变量将设置为completed.

如果在从用户(到`/process_gather.php’脚本)获得输入之前调用了该URL,那么它们就会挂断.

注意:您可以使用cookie来管理呼叫中的会话状态:Twilio在同一个呼叫期间发出的所有请求(以及StatusCallback请求)将包含您发送的任何cookie.这允许您使用会话变量来跟踪呼叫进度.

/proces_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.
 ?> 

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.
}
?>

标签:php,twilio,voip,phone-call,twilio-api
来源: https://codeday.me/bug/20190723/1517481.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有