Twilio:TwiML <Hangup> 动词不结束通话

标签 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,我宁愿找出正确的方法来做到这一点。
谢谢!

最佳答案

你遇到这个问题是因为

Any TwiML verbs occurring after a <Record> are unreachable.



这在此处记录:( https://www.twilio.com/docs/voice/twiml/record )。

关于你的第一个代码片段,没有 action 的那个

If no 'action' is provided, will default to requesting the current document's URL.



结果,您进入了一个循环,这就解释了为什么您最终会得到多个录音。

如何修复:

创建另一个响应 <Hangup/> 的 bin并指向 action的第一个垃圾箱。

第一个垃圾箱
<?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>

我希望这有帮助。

关于Twilio:TwiML <Hangup> 动词不结束通话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51286449/

相关文章:

jquery - 如何使用jquery ajax从node.js文件中检索数据

twilio - 使用 Twilio 在通话中播放音乐

iOS 上的 Twilio/TwiML - 使用 Enqueue 和 Dial

java - TwiML 应用程序 - 当用户回复 Twilio Number 的 STOP/START 时调用 AWS Lambda

java - twilio 160 与 1600 个字符

javascript - Meteor Twilio SMS 功能问题和动画百分位数 JS 查询

javascript - 如何向数千人传输 Twilio 视频室?

javascript - Twilio.Sync map 经常无法获取 300 多个项目

asp.net-mvc - 当我在本地主机上开发时,我应该在 TwiML 应用程序设置中使用什么语音请求 URL?

twilio - 使用 Twilio.TwimlResponse() 发送彩信