Twilio call routing/management for small customer service teamTwilio - How to move an existing call to a conferenceTwilio - how to tell if incoming call while on another call in Client BrowserTwilio - how to tell if incoming call while on another call in Client Browsersimultaneous calling to multiple client in twilioMultiple Clients on Twilio Calltwilio outbound voice call from client - not phoneTwilio Receiving multiple incoming calls from TwilioWhen my managers call to US phone number, client see incoming call as “Unknown name” from twilio appTwilio custom call routingTwilio voice call answering and talkingTwilio skipping first incoming call in favor of next incoming call

Why do fuses burn at a specific current?

Would someone mind just getting me started with my Russian homework?

What are the electrical characteristics of a PC gameport?

Can a system of three stars exist?

Break down the phrase "shitsurei shinakereba naranaindesu"

Single vs Multiple Try Catch

Sum and average calculator

meaning of "educating the ice"?

Why are CEOs generally fired rather being demoted?

How is the casino term "a high roller" commonly expressed in German?

Divide Numbers by 0

How can I portray a character with no fear of death, without them sounding utterly bored?

Quick Slitherlink Puzzles: KPK and 123

How to load files as a quickfix window at start-up

Why iterative method: AMG preconditioned PCG is slower than Matlab direct method 'Ab'?

Problem with giving inputs to a function programmatically

Missing $ inserted. Extra }, or forgotten $. Missing } inserted

Why do presidential pardons exist in a country having a clear separation of powers?

Using font to highlight a god's speech in dialogue

How are the cards determined in an incomplete deck of many things?

'spazieren' - walking in a silly and affected manner?

Am I required to correct my opponent's assumptions about my morph creatures?

How does the search space affect the speed of an ILP solver?

German equivalent to "going down the rabbit hole"



Twilio call routing/management for small customer service team


Twilio - How to move an existing call to a conferenceTwilio - how to tell if incoming call while on another call in Client BrowserTwilio - how to tell if incoming call while on another call in Client Browsersimultaneous calling to multiple client in twilioMultiple Clients on Twilio Calltwilio outbound voice call from client - not phoneTwilio Receiving multiple incoming calls from TwilioWhen my managers call to US phone number, client see incoming call as “Unknown name” from twilio appTwilio custom call routingTwilio voice call answering and talkingTwilio skipping first incoming call in favor of next incoming call






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















I am trying to create a phone system with Twilio Javascript client SDK for a small customer service team with the following criteria:



  1. each Client can see if multiple calls are coming in at the same time and choose which one to answer

  2. each Client can transfer a call to another Client

From what I can tell there is no way to see multiple incoming calls



Which means, when transferring a call, if the phone is also ringing at the same time, the Client who is to be receiving the transferred call cannot see/accept the incoming call.



We have a small team (between 2-4 Clients online at any one time) working from the same office. It seems like TaskRouter is the only viable option but feels like overkill considering the size of our team and the simplicity of the problem I am trying to solve.



Any help would be much appreciated.










share|improve this question






























    1















    I am trying to create a phone system with Twilio Javascript client SDK for a small customer service team with the following criteria:



    1. each Client can see if multiple calls are coming in at the same time and choose which one to answer

    2. each Client can transfer a call to another Client

    From what I can tell there is no way to see multiple incoming calls



    Which means, when transferring a call, if the phone is also ringing at the same time, the Client who is to be receiving the transferred call cannot see/accept the incoming call.



    We have a small team (between 2-4 Clients online at any one time) working from the same office. It seems like TaskRouter is the only viable option but feels like overkill considering the size of our team and the simplicity of the problem I am trying to solve.



    Any help would be much appreciated.










    share|improve this question


























      1












      1








      1








      I am trying to create a phone system with Twilio Javascript client SDK for a small customer service team with the following criteria:



      1. each Client can see if multiple calls are coming in at the same time and choose which one to answer

      2. each Client can transfer a call to another Client

      From what I can tell there is no way to see multiple incoming calls



      Which means, when transferring a call, if the phone is also ringing at the same time, the Client who is to be receiving the transferred call cannot see/accept the incoming call.



      We have a small team (between 2-4 Clients online at any one time) working from the same office. It seems like TaskRouter is the only viable option but feels like overkill considering the size of our team and the simplicity of the problem I am trying to solve.



      Any help would be much appreciated.










      share|improve this question














      I am trying to create a phone system with Twilio Javascript client SDK for a small customer service team with the following criteria:



      1. each Client can see if multiple calls are coming in at the same time and choose which one to answer

      2. each Client can transfer a call to another Client

      From what I can tell there is no way to see multiple incoming calls



      Which means, when transferring a call, if the phone is also ringing at the same time, the Client who is to be receiving the transferred call cannot see/accept the incoming call.



      We have a small team (between 2-4 Clients online at any one time) working from the same office. It seems like TaskRouter is the only viable option but feels like overkill considering the size of our team and the simplicity of the problem I am trying to solve.



      Any help would be much appreciated.







      twilio






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 28 at 0:39









      JamesJames

      867 bronze badges




      867 bronze badges

























          2 Answers
          2






          active

          oldest

          votes


















          2















          Twilio developer evangelist here.



          This is what TaskRouter was designed for, though I understand that it may be overkill for the size of the team.



          You could place all incoming calls into a queue using <Enqueue> (without a workflow ID) and then query the Queue resource to display all the current incoming calls. Then when you choose to answer or redirect the call, you can eject it from the queue using the REST API too, then directing it on to <Dial> the <Client> of choice.



          Let me know if that points you in the right direction.






          share|improve this answer

























          • Cool, thanks Phil. I'll give that a shot.

            – James
            Mar 28 at 2:03


















          0















          I thought I'd answer my own question as I have solved this problem for myself.



          Nowhere in any of the docs or stack overflow questions I read did I see any mention that handling multiple incoming calls is possible within the browser with the JavaScript SDK. However, I have been able to do so. It seems that each Twilio.Device() can have multiple Connections. So by creating a new phone container as outlined bellow, you can manage each separately.



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


          );


          In regards to transferring calls, I have used conference rooms to manage this. Similar to Devin Rader's answer to this question: Twilio - How to move an existing call to a conference






          share|improve this answer



























            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55388536%2ftwilio-call-routing-management-for-small-customer-service-team%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            2















            Twilio developer evangelist here.



            This is what TaskRouter was designed for, though I understand that it may be overkill for the size of the team.



            You could place all incoming calls into a queue using <Enqueue> (without a workflow ID) and then query the Queue resource to display all the current incoming calls. Then when you choose to answer or redirect the call, you can eject it from the queue using the REST API too, then directing it on to <Dial> the <Client> of choice.



            Let me know if that points you in the right direction.






            share|improve this answer

























            • Cool, thanks Phil. I'll give that a shot.

              – James
              Mar 28 at 2:03















            2















            Twilio developer evangelist here.



            This is what TaskRouter was designed for, though I understand that it may be overkill for the size of the team.



            You could place all incoming calls into a queue using <Enqueue> (without a workflow ID) and then query the Queue resource to display all the current incoming calls. Then when you choose to answer or redirect the call, you can eject it from the queue using the REST API too, then directing it on to <Dial> the <Client> of choice.



            Let me know if that points you in the right direction.






            share|improve this answer

























            • Cool, thanks Phil. I'll give that a shot.

              – James
              Mar 28 at 2:03













            2














            2










            2









            Twilio developer evangelist here.



            This is what TaskRouter was designed for, though I understand that it may be overkill for the size of the team.



            You could place all incoming calls into a queue using <Enqueue> (without a workflow ID) and then query the Queue resource to display all the current incoming calls. Then when you choose to answer or redirect the call, you can eject it from the queue using the REST API too, then directing it on to <Dial> the <Client> of choice.



            Let me know if that points you in the right direction.






            share|improve this answer













            Twilio developer evangelist here.



            This is what TaskRouter was designed for, though I understand that it may be overkill for the size of the team.



            You could place all incoming calls into a queue using <Enqueue> (without a workflow ID) and then query the Queue resource to display all the current incoming calls. Then when you choose to answer or redirect the call, you can eject it from the queue using the REST API too, then directing it on to <Dial> the <Client> of choice.



            Let me know if that points you in the right direction.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Mar 28 at 1:49









            philnashphilnash

            42.7k9 gold badges38 silver badges59 bronze badges




            42.7k9 gold badges38 silver badges59 bronze badges















            • Cool, thanks Phil. I'll give that a shot.

              – James
              Mar 28 at 2:03

















            • Cool, thanks Phil. I'll give that a shot.

              – James
              Mar 28 at 2:03
















            Cool, thanks Phil. I'll give that a shot.

            – James
            Mar 28 at 2:03





            Cool, thanks Phil. I'll give that a shot.

            – James
            Mar 28 at 2:03













            0















            I thought I'd answer my own question as I have solved this problem for myself.



            Nowhere in any of the docs or stack overflow questions I read did I see any mention that handling multiple incoming calls is possible within the browser with the JavaScript SDK. However, I have been able to do so. It seems that each Twilio.Device() can have multiple Connections. So by creating a new phone container as outlined bellow, you can manage each separately.



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


            );


            In regards to transferring calls, I have used conference rooms to manage this. Similar to Devin Rader's answer to this question: Twilio - How to move an existing call to a conference






            share|improve this answer





























              0















              I thought I'd answer my own question as I have solved this problem for myself.



              Nowhere in any of the docs or stack overflow questions I read did I see any mention that handling multiple incoming calls is possible within the browser with the JavaScript SDK. However, I have been able to do so. It seems that each Twilio.Device() can have multiple Connections. So by creating a new phone container as outlined bellow, you can manage each separately.



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


              );


              In regards to transferring calls, I have used conference rooms to manage this. Similar to Devin Rader's answer to this question: Twilio - How to move an existing call to a conference






              share|improve this answer



























                0














                0










                0









                I thought I'd answer my own question as I have solved this problem for myself.



                Nowhere in any of the docs or stack overflow questions I read did I see any mention that handling multiple incoming calls is possible within the browser with the JavaScript SDK. However, I have been able to do so. It seems that each Twilio.Device() can have multiple Connections. So by creating a new phone container as outlined bellow, you can manage each separately.



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


                );


                In regards to transferring calls, I have used conference rooms to manage this. Similar to Devin Rader's answer to this question: Twilio - How to move an existing call to a conference






                share|improve this answer













                I thought I'd answer my own question as I have solved this problem for myself.



                Nowhere in any of the docs or stack overflow questions I read did I see any mention that handling multiple incoming calls is possible within the browser with the JavaScript SDK. However, I have been able to do so. It seems that each Twilio.Device() can have multiple Connections. So by creating a new phone container as outlined bellow, you can manage each separately.



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


                );


                In regards to transferring calls, I have used conference rooms to manage this. Similar to Devin Rader's answer to this question: Twilio - How to move an existing call to a conference







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Apr 10 at 23:09









                JamesJames

                867 bronze badges




                867 bronze badges






























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55388536%2ftwilio-call-routing-management-for-small-customer-service-team%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

                    용인 삼성생명 블루밍스 목차 통계 역대 감독 선수단 응원단 경기장 같이 보기 외부 링크 둘러보기 메뉴samsungblueminx.comeh선수 명단용인 삼성생명 블루밍스용인 삼성생명 블루밍스ehsamsungblueminx.comeheheheh

                    155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해