每次通话的Twilio多个踏板都有1个过程

时间:2013-07-18 17:15:45

标签: ruby twilio

使用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&lt; /会议&gt;

     

< /Dial >

1 个答案:

答案 0 :(得分:0)

Twilio福音传教士在这里。

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

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

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

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

希望有所帮助。