【问题标题】:Using Twilio with Python to make a person-to-person call使用 Twilio 和 Python 进行人对人通话
【发布时间】:2020-03-16 13:58:04
【问题描述】:

我已经使用 Twilio 设置了试用的可编程语音帐户。我正在使用 Zoiper 软件电话端点。我试图让我的客户的服务器通过 Twilio 向一个活生生的人发起呼叫。我需要真正与被叫者交谈。

但是,在使用教程代码时,Twilio 的“url”参数会使用它自己的语音消息拦截呼叫:

from twilio.rest import Client

account_sid = 'Axxxx'
auth_token = 'xxxxx'
client = Client(account_sid, auth_token)

call = client.calls.create(
    url='http://demo.twilio.com/docs/classic.mp3',
    to='+15553334929',
    from_='+18334447682'
    )

print(call.sid)

呼叫接收者听到消息,但我们不能一起说话。

Twilio 自己的教程材料介绍了如何使用 TwilML 或“url”参数让计算机自动处理调用。但是,我不需要那个。一旦服务器通过 Twilio 发起呼叫,我需要让两个现场人员相互交谈。现在,“url”/TwilML 只是站在活生生的人之间。

【问题讨论】:

  • 所以您希望您的客户端的服务器启动与两个人的连接,或者一个人正在呼叫而您只是希望您的服务器连接到另一个人?
  • 我需要我的客户的服务器来发起对两个人的呼叫。我客户的呼叫中心正在联系客户。所以,我需要服务器让代表的 Twilio 电话#拨打客户的电话#。

标签: python twilio voice


【解决方案1】:

This 博客显示了一个示例,该示例进行拨出呼叫,然后将呼叫者加入呼叫。请参阅“从您的应用程序启动两个用户通话”部分。

您可能还想查看this 答案,该答案显示了使用 JS API 执行此操作的另一种方法(主体应该可以轻松转移到 python API)。基本上,它会拨打两个电话并将他们加入会议。

免责声明:我不是律师,这不是法律建议,但我假设您熟悉 TCPA 并查看过与此相关的法规/要求。您的代码以自动方式启动拨出呼叫(而不是代理手动单击按钮来启动呼叫)可能会改变您的监管风险级别。

【讨论】:

  • 感谢您的反馈。如果呼叫者手动向被呼叫者发起呼叫,这看起来会起作用,此时他们都将被置于会议中。但是,在我们的例子中,我需要让我的客户的服务器发起调用。
  • 感谢您的“非法律”建议。幸运的是,我客户的客户的客户提供了他们的电话号码和电子邮件地址,他们知道他们可能会通过电话、电子邮件或 SMS 联系到他们。
【解决方案2】:

这称为呼叫转移。下面的文章提供了完成此任务的所有不同方法

Setting Up Call Forwarding

【讨论】:

  • 我可能应该更清楚一点:我需要我的客户服务器发起一个呼叫,该呼叫从我的客户代表使用 Twilio# 到客户。因此,这是从 Twilio# 到客户# 的出站呼叫。这仍然是呼叫转移吗?
  • 是呼叫转移的一种。 outbound-api 调用(或在 Studio 中称为 Make Outgoing Call Widget)将启动呼叫转移,而不是 TwiML Dial 或 Studio Incoming Call Trigger Widget。您示例中的 url 将指向 Call Forwarding TwiML。当被叫方应答时,将访问 URL,该 URL 告诉 Twilio 通过 Dial 动词连接到另一方,并且两者可以交谈。 TwiML 示例出现在这里 - twilio.com/docs/voice/twiml/dial
  • 感谢您的指点。我能够通过使用呼叫转移来实现这一点。
  • 现在,我需要看看如何降低成本!当我的客户端的服务器与 Twilio 服务器对话时,该服务器与被呼叫者交谈,被呼叫者回拨到 Twilio 服务器,而 Twilio 服务器拨到端点时,我们同时使用四个中继被收费.不便宜!
【解决方案3】:

这里是 Twilio 开发者宣传员。

欢迎来到 StackOverflow!

您可以使用Twilio Studio 执行此操作。在您的仪表板中,单击+ 按钮以创建一个新流程并随意命名。

它带有触发器小部件,当触发器(在本例中为来电)被触发时,它将启动您的流程。

您只需要一个小部件:Connect Call To 小部件。将它拖到画布上,并将初始 Incoming Call 触发器中的点连接到新的 Connect Call 小部件左上角的点。在右侧边栏下拉菜单中选择单个号码,然后输入您要将呼叫转接到的任何号码。

最后,您需要一个 Twilio 电话号码。在控制台的 Twilio 电话号码部分购买一个。

向下滚动到语音和传真部分,然后从初始下拉列表中选择 Webhooks, TwiML Bins, Functions, Studio, or Proxy。在“来电”旁边,选择 Studio Flow 并选择您刚刚创建的流程以将其与号码关联/关联。最后点击保存和tada!如果有人拨打您刚购买的 Twilio 号码,他们会将您转至您在 Twilio Studio 流程中指定的号码。

让我知道这是否有帮助! :D

【讨论】:

  • 我可能应该更清楚一点:我需要我的客户服务器发起一个呼叫,该呼叫从我的客户代表使用 Twilio# 到客户。因此,这是从 Twilio# 到客户# 的出站呼叫。这仍然是呼叫转移吗?
  • 那不是呼叫转移!我会查看上面 Totalhack 的回复,其中提到了我的队友 Phil 对类似问题的回复:stackoverflow.com/questions/43919831/…
猜你喜欢
  • 2020-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 2014-02-20
  • 1970-01-01
  • 2017-07-08
  • 2014-06-28
相关资源
最近更新 更多