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

如何在Node.js中使用Twilio同时拨打多个号码播放预录语音

Node.js环境下Twilio批量拨打语音电话实现方案

Twilio原生没有提供批量外呼的接口,我们可以通过并行发起多个单呼请求的方式实现同时拨打多个号码,不需要修改原有单呼的核心配置,只需要做一层循环包装即可。

实现代码

const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = require('twilio')(accountSid, authToken);

// 填写所有需要拨打的目标号码数组
const targetNumbers = ['+14155551212', '+14155551213', '+14155551214'];
// 替换为你自己的Twilio可外呼号码
const twilioCallerNumber = '+15017122661';
// 这里可以替换为你预录语音对应的TwiML,播放音频可改用<Response><Play>音频公网地址</Play></Response>
const callContent = '<Response><Say>Ahoy, World!</Say></Response>';

// 为每个目标号码生成呼叫请求Promise
const callTaskList = targetNumbers.map(target => {
  return client.calls.create({
    twiml: callContent,
    to: target,
    from: twilioCallerNumber
  })
})

// 并行执行所有呼叫请求,用allSettled保证单个号码呼叫失败不影响其他结果返回
Promise.allSettled(callTaskList)
  .then(callResults => {
    callResults.forEach((result, idx) => {
      const currentNumber = targetNumbers[idx]
      if(result.status === 'fulfilled') {
        console.log(`号码${currentNumber}呼叫成功,呼叫SID:${result.value.sid}`)
      } else {
        console.log(`号码${currentNumber}呼叫失败,错误信息:${result.reason.message}`)
      }
    })
  })

注意事项

  • 若使用Twilio免费试用账户,所有外呼的目标号码需要先在Twilio后台完成验证,否则会触发呼叫拦截
  • Twilio账户默认有并发呼叫数限制,免费版默认仅支持1路并发呼叫,正式版可根据使用需求在后台申请上调并发额度,超出额度的呼叫会自动进入队列延迟触发
  • 如果使用预录语音,标签引用的音频需要是公网可直接访问的MP3/WAV格式资源,不能设置访问鉴权

内容的提问来源于stack exchange,提问作者Darvin Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:39:03