如何在Node.js中使用Twilio代理

时间:2019-07-05 02:58:29

标签: node.js twilio twilio-api

在Twilio的帮助下,我已经尝试了3天,以正确设置一个后端,该后端将匿名连接两部电话以进行语音通话。这就是我想要做的:

1

我看过live coding example,但根本不起作用。

  1. 我已经使用`gem install twilio-ruby -v 5.25.0'安装了gem。
  2. 进入REPL
  3. 并开始观看视频:

$ irb

  

需要“ twilio-ruby”   客户端= Twilio :: REST :: Client('...','...')   client.service.create(friendly_name:'测试1')   NoMethodError:#

的未定义方法“ service”

好吧,该视频来自2年前,可以肯定的是,SDK发生了变化。因此,我遵循了该网站上提供的交互式教程。

在继续之前...关于新的代理功能,有一个dedicated page,并且在其中一部分中,有以下图像:

enter image description here

这显然是Python,所以在这里...我已经安装了Python SDK,启动了REPL并尝试遵循代码...这是行不通的。该死的Twilio,更新你的东西! (还是我在这里很蠢?)...

无论如何...让我们跳到node.js tutorial,我敢肯定,至少该交互式教程是有效的(所以我认为)。

因此,我进入控制台并在其中创建服务,然后编写了代码:

import twilio from 'twilio'

const client = twilio('accountSid', 'authToken')

async function test() {
  // create session
  const session = await client.proxy.services('<MY_SERVICE>')
            .sessions
            .create({uniqueName: 'MyFirstSession'})

  // add participant 1 to session
  client.proxy.services('<MY_SERVICE>')
            .sessions(session.sid)
            .participants
            .create({ friendlyName: 'Me', identifier: '<my_number>'})

  // add participant 2 to session
  client.proxy.services('<MY_SERVICE>')
            .sessions(session.sid)
            .participants
            .create({ friendlyName: 'Me 2', identifier: '<my_number_2>'})
}

test()

那又是什么?

文档说:

If your Twilio Phone Numbers are voice capable, you're now ready for a proxied voice conversation. Following the names from the previous steps, get Alice to make a call to her Proxy Identifier number. Twilio's Proxy service will then make a call from Bob's Proxy Number to his real number and connect the two calls.

它不起作用...我尝试调用代理标识符号码,但它不起作用。

我不确定该怎么办了,我已经尝试联系他们,没有人回信...

1 个答案:

答案 0 :(得分:2)

我看了“ node.js教程”,我看到了它怎么会造成混淆。

您可以采取以下措施使它正常工作,并更好地了解其工作原理:


先决条件:

  • 您有一个Twilio帐户和一个Twilio购买的电话号码。该Twilio电话号码将成为“代理”号码。
  • 您还有另外两个电话号码,可以在其中拨打或接听电话(或短信),它们是您的电话号码。


步骤1.

  • 登录到您的Twilio帐户,并记下您的“ ACCOUNT SID”和“ AUTH TOKEN”,它们位于“仪表盘”上。 (https://www.twilio.com/console
  • 转到电话号码页面(https://www.twilio.com/console/phone-numbers/incoming)并确认您那里有电话号码。只需记下数字就可以了,因为在本指南中,我将告诉您如何通过控制台而不是通过Node.js代码配置主要内容。

第2步。

  • 仍在Twilio,转到“代理仪表板”(https://www.twilio.com/console/proxy),然后在此处“添加新代理服务”(有一个加号的红色圆形标志)。给它起一个名字,单击“创建”,然后在下一页上,您无需填写任何内容,只需向下滚动并单击“保存”即可。
  • 现在您有一项服务显示在“服务”页面(https://www.twilio.com/console/proxy/services
  • 记录服务SID(KSxxxxx ...)

第3步。

  • 仍然在“服务”页面(https://www.twilio.com/console/proxy/services)上,您会在右侧看到“代理号码”,它是一个链接,单击它可以告诉服务使用您的Twilio号码进行此“您刚刚创建的代理服务。
  • 在下一页上,您将看到“此服务没有代理号码”和一个“添加号码”按钮,单击它并“分配”您的Twilio号码。
  • 看到该号码已成功分配的消息后,单击“关闭”。

第4步。

  • 现在您需要为此服务创建一个会话,返回到“代理仪表板”(https://www.twilio.com/console/proxy),您会看到列出的服务
  • 再次在右侧,有一个“ SESSIONS”的链接,单击它
  • 您将看到消息“您没有会话”和一个“创建新会话”按钮,单击它并输入名称,您还可以选择“模式”(文本,语音或同时选择两者)< / li>
  • 单击“创建”,然后向下滚动并单击“保存”
  • 记下会话SID(KCxxxxx ...)
  • 现在您有一个服务和一个会话

第5步。

这是添加参与者的步骤,与您的两个电话号码有关。据我所知,这部分内容无法在Twilio的控制台上完成。我是在运行Node.js代码的。

您需要在计算机(https://nodejs.org/en/)上安装Node.js,然后:

  • 创建一个新文件夹
  • 在终端中,更改新文件夹中的目录
  • 运行npm init --yes
  • 运行npm install twilio
  • 创建一个新文件index.js

这是index.js的代码

const accountSid = 'ACxxxxx...';
const authToken = 'xxxxx...';
const client = require('twilio')(accountSid, authToken);

client.proxy.services('KSxxxxx...')
    .sessions('KCxxxxx...')
    .participants
    .create({ friendlyName: 'Alice', identifier: '+19997775555' })
    .then(participant => console.log(participant.proxyIdentifier));  

在上面的代码中,替换

的值
  • accountSid //您的Twilio帐户sid
  • authToken //您的Twilio身份验证令牌
  • KSxxxxx... //服务ID
  • KCxxxxx... //会话ID
  • +19997775555 //您的第一个电话号码

接下来运行此代码以添加第一个参与者,在终端运行node index.js

最后是添加第二个参与者,在上面的代码中,将Alice更改为Bob,并用您的第二个电话号码替换your first phone number,然后运行{{1 }}。


添加第二位参与者后,就可以了。现在,您可以尝试从您的任意一个号码(电话)拨打或发短信给您的Twilio电话号码(充当代理),而您的其他号码(电话)将收到短信或响铃。


注意:您可以使用Node.js代码完成在Twilio控制台上所做的事情,再次阅读本教程并尝试了解步骤和代码的工作方式。如果您需要更多帮助,可以随时在此处提出另一个更具体的问题。

祝你好运!