我正在尝试使用Twilio Javascript客户端SDK为小型客户服务团队创建电话系统,其标准如下:
据我所知,无法看到多个来电
这意味着,在转移呼叫时,如果电话也同时响铃,则要接收转移呼叫的客户将无法看到/接受来电。
我们有一个小组(同一时间在线有2-4个客户),在同一办公室工作。看来TaskRouter是唯一可行的选择,但考虑到我们团队的规模和我要解决的问题的简单性,这感觉有些过头。
任何帮助将不胜感激。
答案 0 :(得分:2)
这里是Twilio开发人员的传播者。
这是TaskRouter设计的目的,尽管我知道这对于团队规模来说可能是过大的。
您可以使用<Enqueue>
(没有工作流程ID)将所有来电放入队列中,然后查询Queue resource以显示所有当前来电。然后,当您选择接听或转接电话时,您也可以eject it from the queue using the REST API,然后将其转接到所选的<Dial>
<Client>
。
让我知道这是否指向正确的方向。
答案 1 :(得分:0)
我以为自己已经解决了这个问题,所以我会回答自己的问题。
在我阅读的任何文档或堆栈溢出问题中,没有发现任何提及使用JavaScript SDK可以在浏览器中处理多个传入呼叫的地方。但是,我已经能够这样做。似乎每个Twilio.Device()可以具有多个Connections。因此,通过按如下所示创建一个新的电话容器,可以分别管理每个电话容器。
HTML
<div id="main_container">
<div class="phone_container" call_sid="">
<div class="well well-sm call-status">
Connecting to Twilio...
</div>
<div class="phone_btn_container">
<button class="btn btn-md btn-success answer-button" disabled>Answer</button>
<button class="btn btn-md btn-danger hangup-button" disabled>End</button>
<button class="btn btn-md btn-default mute-button" disabled>Mute</button>
</div>
</div>
</div>
JavaScript
device.on('incoming', function(connection) {
// get call sid
var call_sid = connection.parameters.CallSid
// get phone container which holds the buttons and call status etc.
var phone_container = $('.phone_container')
// if there is only one container and it's empty, use this to handle call
if (phone_container.length == 1 && phone_container.attr('call_sid') == '') {
// set call sid to container
$('.phone_container').attr('call_sid', call_sid)
}
// else clone phone container for new call
else {
// clone , set call sid and append to main container
$('.phone_container').first().clone().attr('call_sid', call_sid).appendTo($('#main_container'))
}
});
关于转移呼叫,我已经使用会议室进行管理。类似于Devin Rader对这个问题的回答:Twilio - How to move an existing call to a conference