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;
I am trying to create a phone system with Twilio Javascript client SDK for a small customer service team with the following criteria:
- each Client can see if multiple calls are coming in at the same time and choose which one to answer
- 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
add a comment |
I am trying to create a phone system with Twilio Javascript client SDK for a small customer service team with the following criteria:
- each Client can see if multiple calls are coming in at the same time and choose which one to answer
- 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
add a comment |
I am trying to create a phone system with Twilio Javascript client SDK for a small customer service team with the following criteria:
- each Client can see if multiple calls are coming in at the same time and choose which one to answer
- 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
I am trying to create a phone system with Twilio Javascript client SDK for a small customer service team with the following criteria:
- each Client can see if multiple calls are coming in at the same time and choose which one to answer
- 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
twilio
asked Mar 28 at 0:39
JamesJames
867 bronze badges
867 bronze badges
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
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.
Cool, thanks Phil. I'll give that a shot.
– James
Mar 28 at 2:03
add a comment |
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
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
Cool, thanks Phil. I'll give that a shot.
– James
Mar 28 at 2:03
add a comment |
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.
Cool, thanks Phil. I'll give that a shot.
– James
Mar 28 at 2:03
add a comment |
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.
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.
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
add a comment |
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
add a comment |
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
add a comment |
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
add a comment |
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
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
answered Apr 10 at 23:09
JamesJames
867 bronze badges
867 bronze badges
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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