我在SO上已经阅读了几篇类似的帖子,但是回复没有解释如何,他们只是解释说Twilio是可能的。如果Twilio Evangelist可以给我一些具体的指示,我将不胜感激。
想法是(来电者A)来电(Twilio号码)。 Twilio存储来电者A的号码,直到第二个来电达到。
一旦(来电者B)拨打相同的(Twilio号码),他就会与来电者A相连。
这是随机的,同时处理许多请求。一旦呼叫者A和呼叫者B连接,他们的号码将从存储中删除,因此没有其他人将与他们连接。
重复冲洗。
答案 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拨打队列中的人。
让我知道这是否有帮助。