如何将2个匿名入站呼叫者与Twilio连接

时间:2016-09-28 03:48:39

标签: twilio twilio-api

我在SO上已经阅读了几篇类似的帖子,但是回复没有解释如何,他们只是解释说Twilio是可能的。如果Twilio Evangelist可以给我一些具体的指示,我将不胜感激。

想法是(来电者A)来电(Twilio号码)。 Twilio存储来电者A的号码,直到第二个来电达到。

一旦(来电者B)拨打相同的(Twilio号码),他就会与来电者A相连。

这是随机的,同时处理许多请求。一旦呼叫者A和呼叫者B连接,他们的号码将从存储中删除,因此没有其他人将与他们连接。

重复冲洗。

1 个答案:

答案 0 :(得分:1)

Twilio开发者传道者在这里。

您可以使用Enqueue<Queue>执行此操作。首先,您需要create your queue using the REST API。这可以提前完成。

我将在这里使用Ruby作为示例,但是您可以在我们的文档中看到其他语言的外观。

require "twilio-ruby"
client = Twilio::REST::Client.new(ENV["TWILIO_ACCOUNT_SID"], ENV["TWILIO_AUTH_TOKEN"])
queue = client.queues.create(:friendly_name => "call_roulette")
puts queue.sid

您需要保存队列Sid和友好名称,稍后您将使用它们连接到队列。

然后,当一个人打电话给你时,你需要检查队列中是否有人在等待。如果有则连接两个呼叫者,如果没有,则将该呼叫者放入队列并等待另一个呼叫。

当进行通话时,Twilio会向您在Twilio console中提供的网址发送HTTP请求。您需要根据上述条件使用正确的 回复。

此示例使用Sinatra作为Web框架。

require "twilio-ruby"
require "sinatra"

client = Twilio::REST::Client.new(ENV["TWILIO_ACCOUNT_SID"], ENV["TWILIO_AUTH_TOKEN"])

post "/call" do
  queue = client.queues.get(QUEUE_SID)
  if queue.current_size == 0
    twiml = "<Response><Enqueue>#{QUEUE_FRIENDLY_NAME}</Enqueue></Response>"
  else
    twiml = "<Response><Dial><Queue>#{QUEUE_FRIENDLY_NAME}</Queue></Dial></Response>"
  end
  return twiml
end

当队列为空时,我们使用Enqueue将调用者放入队列,当队列中有人时,我们使用Dial和Queue拨打队列中的人。

让我知道这是否有帮助。