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

使用Twiml发起Twilio外呼:如何等待语音信箱应答?

解决Twilio呼叫转语音信箱时消息开头被截断的问题

你遇到的问题是因为语音信箱会先播放一段提示音(比如“请在哔声后留言”),默认的短暂停不足以等提示音结束,导致消息提前播放被截断。以下是两种可行的解决方法:

方法一:延长初始暂停时长

直接调整TwiML里的<Pause>标签时长,给语音信箱足够的时间完成提示音播放。建议设置为6-8秒(不同运营商的语音信箱提示音长度有差异,可根据实际测试调整):

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Pause length="7"/>
    <Say voice="Polly.Salli-Neural">Hello world</Say>
    <Pause length="2"/>
</Response>

同时注意移除<Say>标签内容里多余的引号(原代码里的&quot;),避免播放时出现不必要的标点。

方法二:启用Twilio机器检测功能

利用Twilio内置的机器检测能力,自动识别语音信箱并等待其准备就绪后再播放消息。只需在发起呼叫的API请求中添加两个参数:

  • MachineDetection=Enable:开启机器应答检测
  • MachineDetectionTimeout=5:设置检测超时时间(单位:秒,可按需调整)

修改后的curl命令如下:

curl --location --request POST 'https://api.twilio.com/2010-04-01/Accounts/AC05917c014691f7d218d20XXXXXXX/Calls' \
--header 'Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXZjExZDIwM2IzOTYwMjUzYQ==' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'To=1484xxxxxxx' \
--data-urlencode 'From=1610xxxxxxx' \
--data-urlencode 'MachineDetection=Enable' \
--data-urlencode 'MachineDetectionTimeout=5' \
--data-urlencode 'Twiml=<?xml version="1.0" encoding="UTF-8"?> <Response> <Say voice="Polly.Salli-Neural">Hello world</Say> <Pause length="2"/> </Response>'

启用该功能后,Twilio会自动判断呼叫是否被语音信箱接收,等语音信箱的提示音结束后再执行你的TwiML内容,从根源上避免消息开头被截断。

内容的提问来源于stack exchange,提问作者Kevin Rehak

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:15:57