twilio - Twilio:TwiML动词不结束通话
问题描述
我最近遇到了 TwiML<Hangup>
动词的问题。我有一个简单的设置,如下所示:
我有一个 Twilio 号码设置来接收来电,并配置为使用如下 TwiML bin:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Record timeout="5" transcribe="false" trim="trim-silence" maxLength="10"/>
<Hangup/>
</Response>
目标是让号码接听来电,最多录制 10 秒的音频,修剪静音,然后挂断。它正确地完成了所有这些,除了挂断。
此时,不是挂断,而是在录音结束到maxLength
10 秒后开始新的录音。这一直持续到通话结束,并且通常会导致每次通话 2-5 次录音。就好像<Hangup>
动词被完全忽略了一样。这是我的意思的一个例子:
Twilio Call Details Screen
我想知道是否有人以前遇到过这种情况(以及您为解决它做了什么),或者我可以做些什么来让我的通话在录音后正确挂断。我目前的解决方案是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<!-- This is a hacky solution. I found by accident that passing an invalid action argument causes the call to forcibly hangup (after the recording is completed) - hence the action "breakcall" below. = -->
<Record timeout="5" transcribe="false" trim="trim-silence"
action="breakcall" maxLength="10"/>
</Response>
然而,这是hacky,我宁愿找出正确的方法来做到这一点。
谢谢!
解决方案
你遇到这个问题是因为
出现在 a 之后的任何 TwiML 动词
<Record>
都是不可访问的。
这记录在这里:(https://www.twilio.com/docs/voice/twiml/record)。
关于您的第一个代码段,没有action
如果未提供“操作”,则默认请求当前文档的 URL。
结果,你进入了一个循环,这就解释了为什么你最终会得到多个录音。
怎么修:
创建另一个响应<Hangup/>
并指向action
第一个 bin 的 bin。
第一个垃圾箱
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Record
action="[hangup_bin_url]"
timeout="5"
transcribe="false"
trim="trim-silence"
maxLength="10"
/>
</Response>
第二个垃圾箱
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Hangup />
</Response>
我希望这有帮助。
推荐阅读
- ios - 使用“弹出式”VC 时,背景模糊效果无明显原因
- php - 在没有数据库的情况下保存和编辑文本数据的最佳方法
- python - 我如何为字符串的最终出现制作正则表达式
- java - 如何在循环中使最接近的数字为零
- c# - 如何在 c# 中将图像保存为具有透明度的 gif?
- android - 如果 VPN 应用程序被杀死,它会发生什么?
- java - 应用程序关闭时如何每小时触发一次警报
- c++ - 从传递给新线程 C++ 的向量中擦除项目
- typescript - 将 stellar-sdk 导入 Angular 8 项目时出错
- powershell - 为什么 AllowNull() 什么都不做?