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

Twilio函数仅播放等待音乐不拨号问题求助

问题分析与解决方案

你的代码核心问题在于使用了enqueue指令——这个指令会把当前呼叫直接放入指定队列,后续的dial指令根本不会被执行,导致拨号操作完全触发不了,只会停留在队列里播放等待音乐。

要实现先播放指定语音消息,再在拨号等待时播放音乐的需求,调整逻辑即可:

  1. 先执行play播放预设的语音消息
  2. 创建dial指令时,通过waitUrl参数指定等待音乐资源,主叫方在等待被叫接听的过程中会自动播放该音乐
  3. 删掉多余的enqueue和dial.queue代码,你不需要把呼叫放进队列,直接发起拨号就行

修改后的代码如下:

exports.handler = function (context, event, callback) {
    const twiml = new Twilio.twiml.VoiceResponse();

    // 先播放指定语音消息
    twiml.play('https://cornsilk-porpoise-7226.twil.io/assets/speech_20231208002827353.mp3');

    // 创建dial并设置waitUrl,拨号等待时播放音乐
    const dial = twiml.dial({
        waitUrl: 'http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient'
    });
    // 添加要拨打的号码
    dial.number('+16468600135');
    dial.number('+923405998592');

    callback(null, twiml);
};

关键说明

  • dial的waitUrl参数:当拨打多个号码时,主叫方会在等待第一个接听的过程中持续播放waitUrl中的音乐
  • 移除enqueue是核心:这个指令会终止后续Twiml的执行逻辑,也是之前拨号失败的根本原因

内容的提问来源于stack exchange,提问作者MK Solutions J

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 19:42:32