You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TwiML执行后循环回到开头,无法播放感谢语并挂断如何解决?

Twilio TwiML录音后重复流程的解决方法

你的问题出在<Record>标签的默认行为上:当录音完成(用户挂机或超时),Twilio会再次请求当前的TwiML URL,导致整个流程从头重复,所以会再次播放开场白并录音,产生重复的语音邮件,后续的<Say>和<Hangup>永远不会执行。

解决方法是给<Record>添加action属性,指定一个URL,让Twilio在录音完成后请求这个URL获取后续的处理逻辑:

步骤1:修改主TwiML代码

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Say voice="Polly.Joanna">Thank you for calling. Please leave a message after the tone.</Say>
  <!-- 添加action属性指向处理后续逻辑的端点 -->
  <Record 
    transcribe="true" 
    playBeep="true" 
    transcribeCallback="你的转录回调URL" 
    action="/post-record" 
    finishOnKey="#" <!-- 可选:让用户按#主动结束录音 -->
  />
</Response>

步骤2:创建/post-record端点的TwiML

这个端点需要返回包含感谢语和挂断指令的TwiML:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Say voice="Polly.Joanna">Thank you.</Say>
  <Hangup/>
</Response>

原理说明

action属性会覆盖Twilio的默认行为,录音完成后不再重复请求原TwiML,而是转向你指定的端点执行后续逻辑,这样就能正常播放感谢语并挂断电话,不会产生重复录音。

内容的提问来源于stack exchange,提问作者Be Kind To New Users

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 01:20:20