未使用 Twilio 节点服务器发起来电不发送 VoIP 通知 - 已修复

问题描述

我正在尝试通过我的节点服务器在我的移动应用程序上发起呼叫(入站呼叫)。我已经在 env 文件中设置了所有凭据并多次交叉检查它们。我正在使用 Twiml 这样做。 我将下面的 Twiml 响应发送给 Twilio,但调用只是不断路由回 Webhook URL。如果这不是正确的方法,我该如何在设备上路由呼叫。

Twiml 响应:

  <Response>
    <Dial>
      <Number>+12528881526</Number>
    </Dial>
  </Response>

我的 Node.js 代码

  let twimlResponse = new VoiceResponse()
  const dial = twimlResponse.dial()
  dial.number({},"+1234567891")
  console.log(twimlResponse.toString())
  return response.send(twimlResponse.toString())

解决办法: 我们需要使用该身份发起呼叫,Twilio 将开始发送 VoIP 通知

  let twimlResponse = new VoiceResponse()
  const dial = twimlResponse.dial()
  dial.client({},"alice")
  console.log(twimlResponse.toString())
  return response.send(twimlResponse.toString())

解决方法

在 Twilio 上,您可以创建一个新项目,选择您要进行调用,他们将为您提供正确的代码,只需复制它并在您的应用程序中使用 node index.js。此外,如果您有试用版,则只能您验证的电话号码。

,

我相信您使用的过程是将收到的呼叫重定向到另一个号码“new VoiceResponse()”,我相信您应该使用下面的代码发起呼叫。请让我知道这是否有效。

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

client.calls
      .create({
         twiml: '<Response><Say>Ahoy there!</Say></Response>',to: '+15558675310',from: '+15552223214'
       })
      .then(call => console.log(call.sid));

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...