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

Node.js中使用Twilio发起直拨电话遇异常问题求助

问题原因

你的代码逻辑重复触发了两次呼叫:

  1. 调用client.calls.create时,to参数指定了目标号码,Twilio会先从from号码向该目标号码发起第一次呼叫。
  2. 对方接听后,Twilio执行你传入的twiml内容,而你在Twiml中使用<Dial>指令再次呼叫同一个目标号码,这会触发第二次呼叫——这次Twilio会分配一个随机可用号码(即你看到的陌生号码)。
解决方案

根据直拨需求,选择以下两种正确写法之一:

写法一:直接建立两端通话(无需自定义Twiml)

去掉twiml参数,仅保留to、from和一个基础url(用于返回简单语音响应,确保通话正常建立):

client.calls
  .create({
    to: '+122*********',
    from: '+144444*******',
    url: 'https://example.com/basic-twiml' // 该地址需返回类似 <Response><Say>Connected</Say></Response> 的Twiml
  })

写法二:用Twiml控制通话逻辑

如果需要通过Twiml自定义通话行为,不要同时将to参数设为目标号码,而是让Twilio先呼叫一个中间端点(比如你的from号码),再通过<Dial>连接目标号码:

client.calls
  .create({
    twiml: '<Response><Dial>+122*********</Dial></Response>',
    from: '+144444*******',
    to: '+144444*******' // 填写发起呼叫的端点,接听后会自动Dial目标号码
  })

如果你的需求只是简单从+144444*******直拨+122*********,写法一最直接,可彻底避免重复呼叫问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:33:08