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

Twilio Device注册连接TWiML应用正常,但无法接听来电和拨打自定义号码

Twilio浏览器软电话问题解决方案

问题1:Device已注册但收不到来电通知、无法接听来电

原因

你当前绑定Twilio号码的TwiML应用,来电响应逻辑为固定呼出到+11111111111,未将来电路由到你注册的软电话客户端。

解决步骤

  • 修改TwiML应用的来电处理接口逻辑,收到来电请求时返回如下格式TwiML:
<Response>
  <Dial>
    <Client>SG</Client>
  </Dial>
</Response>

其中SG必须和你生成token时填写的identity参数完全一致,Twilio才会将来电推送给对应身份的已注册Device。

  • 补充客户端接听逻辑,你当前代码仅打印来电日志,未执行接听操作,修改后示例:
device.on("incoming", call => {
  echo('Incoming call to device')
  // 可根据需求加用户确认逻辑,确认后调用accept即可接听
  call.accept()
})

问题2:调用device.connect传自定义号码无法呼出

原因

你当前的TwiML应用返回固定拨打+11111111111的内容,未读取客户端传递的To参数动态生成拨号规则。

解决步骤

  • 你通过device.connect传递的参数,会被Twilio以表单参数形式发送到TwiML应用的服务端接口,你需要在该接口读取To参数,动态生成TwiML,nodejs示例如下:
// TwiML生成接口示例(express框架)
app.post('/你的TwiML接口路径', (req, res) => {
  // 读取客户端传的To参数,无参数时默认拨原来的+11111111111
  const targetNumber = req.body.To || '+11111111111'
  const twiml = new Twilio.twiml.VoiceResponse()
  const dial = twiml.dial()
  dial.number(targetNumber)
  // 返回xml格式的TwiML
  res.type('text/xml')
  res.send(twiml.toString())
})
  • 额外检查两项配置:
    1. 确认Twilio账号开启了目标号码所属地区的呼出权限
    2. 确认传递的号码为E.164标准格式(带+前缀加国家码)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:27:00