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

How to use Twilio Proxy in Node.js

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

我看过 live coding example 完全没用。

  1. 我已经使用 `gem install twilio-ruby -v 5.25.0'
  2. 安装了 gem
  3. 输入 REPL
  4. 并开始关注视频:

$ IRB

require 'twilio-ruby' client = Twilio::REST::Client('...', '...') client.service.create(friendly_name: 'Test 1') NoMethodError: undefined method `service' for #

好吧好吧,2年前的视频了,SDK改了也正常。所以我遵循了网站上提供的交互式教程,这一个。

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

这显然是 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.

没用...我试过拨打代理标识符号码,但没用。

我不知道该怎么办了,我试图联系他们,但没有人回复...

我查看了 "node.js tutorial",我可以看出它是多么令人困惑。

您可以通过以下方式使它正常工作并更好地了解它的工作原理:


先决条件:

  • 您有一个 Twilio 帐户和一个 Twilio 购买的 phone 号码。这个 Twilio phone 号码将成为 "proxy" 号码。
  • 您还有另外两个 phone 号码可以拨打或接听电话(或发短信),它们是 您的 phone 号码。


步骤 1.


第 2 步

  • 仍然在 Twilio,转到 "Proxy Dashboard" (https://www.twilio.com/console/proxy) 和这里 "Add New Proxy Service"(有一个加号红色圆形标志)。给它起个名字,点击 "Create" 然后在下一页,你不需要填写任何东西,只需向下滚动并点击 "Save"
  • 现在您有一项服务显示在 "Services" 页面 (https://www.twilio.com/console/proxy/services)
  • 记下服务 SID (KSxxxxx...)

步骤 3.

  • 同时还在"Services"页面(https://www.twilio.com/console/proxy/services),在右边可以看到"PROXY NUMBERS",是一个link,点击它告诉为您刚刚创建的 "Proxy Service" 使用您的 Twilio 号码的服务。
  • 在下一页上,您会看到 "This Service has no Proxy Numbers" 和一个按钮 "Add Numbers",单击它并 "Assign" 您的 Twilio 号码。
  • 看到号码分配成功的消息后,点击"Close"。

第 4 步

  • 现在您需要为此服务创建一个会话,返回 "Proxy Dashboard" (https://www.twilio.com/console/proxy),您会看到您的服务已列出
  • 再往右,"SESSIONS"有一个link,点击
  • 您会看到消息 "You have no Sessions" 和一个指向 "Create new Session" 的按钮,单击它并输入名称,您可以 select 也可以 "MODE" (文本、语音或两者)
  • 点击 "Create" 然后向下滚动并点击 "Save"
  • 记下会话 SID (KCxxxxx...)
  • 现在你有一个服务和一个会话

第 5 步

这是您添加参与者的步骤,这与您的两个 phone 号码有关。据我所知,这部分不能在 Twilio 的控制台上完成。我做到了运行宁Node.js代码。

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

  • 新建文件夹
  • 在终端中,在新文件夹上更改目录
  • 运行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 // 你的第一个 phone 号码

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

最后一件事是添加第二个参与者,在上面的代码中将 Alice 更改为 Bob,并将 your first phone number 替换为您的第二个 phone 号码, 然后 运行 node index.js 再次。


添加第二个参与者后,就可以了。现在您可以尝试从您的任何号码 (phones) 和另一个号码 (phones) 拨打或发短信给您的 Twilio phone 号码(充当代理)将收到短信或铃声。


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

祝你好运!