使用Ruby,Sinatra和Twilio REST API,我正在为我的公司编写客户服务热线。收到来电时,客户将以< Conference >
动词暂停,同时应用程序向座席拨打电话。如果他接受了电话,那么他们就是桥接电话。
我目前有3个会议室(技术支持,销售和移动支持)由我相当线性的程序创建。但是如果会议室很忙,而另一个电话请求已经占用的房间,他们就无法联系到代理,这是有问题的。
我的理由是:每次调用都有自己的线程,然后我就可以创建一个名为“部门名称”+“@ process.id”的房间。
@random = Random.rand(10_000_000 - 1_000_000) + 1_000_000
puts @random
< Dial >
< Conference > 'Tech Supp' + PROCESS_ID \ + @random
&lt; /会议&gt;
< /Dial >
答案 0 :(得分:0)
Twilio福音传教士在这里。
这里有两个想法。而不是进入线程,这可能会非常麻烦,真的很快,为什么不使用入站呼叫者CallSid创建一个不同的会议室。我使用该技术创建了与您描述的系统类似的系统。系统只会在每个CallSid到达时对其进行编目,以便您稍后返回并连接并代理该会议。
另一种选择可能是使用队列。当新呼叫拨入时,您可以将它们放入队列(如果需要,可以放入不同的队列),并且可以在那里等待,直到代理准备就绪。然后,代理可以从队列中挑出下一个呼叫者来与之通话。
使用<Queue>
的方法可能会有所帮助:
http://www.twilio.com/docs/howto/callqueue
希望有所帮助。