针对小型客户服务团队的Twilio呼叫路由/管理

针对小型客户服务团队的Twilio呼叫路由/管理,twilio,Twilio,我正在尝试使用Twilio Javascript客户端SDK为一个小型客户服务团队创建一个电话系统,标准如下: 每个客户端都可以查看是否同时有多个来电,并选择接听哪一个 每个客户端都可以将呼叫转接到另一个客户端 据我所知,没有办法看到多个来电 这意味着,在转接电话时,如果电话同时也在响,则接收转接电话的客户机无法看到/接受来电 我们有一个小团队(在同一时间有2-4名客户在线)在同一办公室工作。TaskRouter似乎是唯一可行的选择,但考虑到我们团队的规模和我试图解决的问题的简单性,这似乎有些过

我正在尝试使用Twilio Javascript客户端SDK为一个小型客户服务团队创建一个电话系统,标准如下:

  • 每个客户端都可以查看是否同时有多个来电,并选择接听哪一个
  • 每个客户端都可以将呼叫转接到另一个客户端
  • 据我所知,没有办法看到多个来电

    这意味着,在转接电话时,如果电话同时也在响,则接收转接电话的客户机无法看到/接受来电

    我们有一个小团队(在同一时间有2-4名客户在线)在同一办公室工作。TaskRouter似乎是唯一可行的选择,但考虑到我们团队的规模和我试图解决的问题的简单性,这似乎有些过分


    任何帮助都将不胜感激。

    这里是Twilio开发者福音传道者

    这就是TaskRouter的设计目的,尽管我知道这对于团队的规模来说可能有点过头了

    您可以使用(无工作流ID)将所有传入呼叫放入队列,然后查询以显示所有当前传入呼叫。然后,当您选择接听或重定向呼叫时,您也可以,然后将其引导到所选的位置


    让我知道这是否为您指明了正确的方向。

    我想我应该回答我自己的问题,因为我已经为自己解决了这个问题

    在我读到的任何文档或堆栈溢出问题中,我都没有看到任何地方提到可以使用JavaScript SDK在浏览器中处理多个传入调用。然而,我已经能够做到这一点。似乎每个Twilio.Device()都可以有多个连接。因此,通过如下所述创建一个新的电话容器,您可以分别管理每个容器

    HTML

    关于转接电话,我使用会议室来管理。与Devin Rader对此问题的回答类似:

    <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>
    
    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'))
        }
    
    });