0

使用 Ruby、Sinatra 和 Twilio REST API,我正在为我的公司编写一条客户服务线。当接到来电时,客户在动词中被搁置 < Conference >,而应用程序向座席发出去电。如果他接受呼叫,则呼叫被桥接。

目前有 3 个会议室(技术支持、销售和移动支持),由我相当线性的程序创建。但是如果一个会议室很忙,而另一个电话进来请求已经占用的房间,他们就无法联系到座席,这是有问题的。

我的问题是:我/如何在 Ruby 中为每个来电创建一个线程,以便它有自己的独立进程?

我的理由是:一旦每个呼叫都有其线程,那么我可以创建一个名为“部门名称”+“@process.id”的房间。

例如:(还添加一个随机生成的 7 位数字,使每个会议名称 100% 唯一。

@random = Random.rand(10_000_000 - 1_000_000) + 1_000_000

puts @random

< Dial >

< Conference > 'Tech Supp' + PROCESS_ID \ + @random</会议>

< /Dial >

4

1 回答 1

0

Twilio 布道者在这里。

这里有两个想法。与其进入线程,这会变得非常混乱,非常快,为什么不使用入站呼叫者 CallSid 创建一个不同的会议室。在使用该技术之前,我已经创建了类似于您所描述的系统。您的系统只是在每个 CallSid 到达时对其进行编目,以便您稍后返回并连接并代理到该会议。

另一种选择可能是使用队列。当有新呼叫拨入时,您可以将它们放入队列(如果需要,也可以放入不同的队列),他们可以在那里等待,直到座席准备好。然后,座席可以从队列中挑选下一个呼叫者与之通话。

这个使用方法<Queue>可能会有所帮助:

http://www.twilio.com/docs/howto/callqueue

希望有帮助。

于 2013-07-18T22:40:23.163 回答