Setting up call enqueueing and forwarding using Twilio Studio - twilio

I was recently trying to use the Twilio Studio to set up an IVR system to route the calls to the correct numbers based on the selected user input. I was able to create the following workflow and it works fine.
Here I am able to split the call based on user's input via keypad or voice and direct the call to the corresponding number. I am also able to track the number of times a user has pressed an invalid input and disconnect the call after a specific number of invalid inputs. It's all working fine.
Now I am trying to enqueue the calls so that users will stay in a queue while the agent is busy. I also want to forward the calls to a specif number and if that number does not pick or reject, call another number. This helps me to make sure that the calls are not missed. I also added a call forwarding option with recording enabled. But when I try to play the recording, it says an application error occurred.
I have been trying to contact support regarding the documentation or examples fo the above requirements, but it's very hard to get a reply as I don't have paid support enabled. Can anyone suggest good documentation with an example to handle my requirements.

Twilio developer evangelist here.
For queueing calls and then having more than one number called you should take a look at TaskRouter. It turns calls into tasks that can be assigned to workers via a workflow and can definitely handle your need to dial more than one person. You can then send your call into the workflow from Studio using the enqueue widget.
As for your recording issue, can you provide more detail? How did you add the call forwarding with recording option? How did you try to play the recording? Was there any more detail in the Twilio Debugger?

Related

Associating a Twilio number with a specific Frontline user

I'm trying to figure out how to associate a specific user with a Twilio number, so that when a call/text comes to that number it only goes to that user's Frontline app/account.
I'm writing the callbacks in Node.js, and I guess that I'm a bit confused to as to how to identify the target number (as the quickstart I'm using is more focused on the customerNumber and relationship with a specific worker).
Thank you.
I believe you should set up Custom Routing for this and, instead of using the customer number (the MessageBinding.Address from the webhook parameters) to do the routing as in the quick start, you can use the number the customer sent the message to, which I think is the MessageBinding.ProxyAddress.
Check out all the parameters that are sent to the onConversationRoute webhook URL. You might also want to test and just log out all the available parameters in order to match to the target number.
The best and the only option I see the Call Forwarding for that purpose and using Twilio's inbuilt TwiML Bins.
Complete info:
https://support.twilio.com/hc/en-us/articles/223179908-Setting-Up-Call-Forwarding

For voice tasks in Twilio Flex, how do I get the current conference ConferenceSid?

I can see that for all the voice interactions, behind the scenes flex is using its voice API to create a conference between caller and worker. How do I obtain the created ConferenceSid after the task has been selected and reserved?
What I would like to do is simply Get the value upon connecting.
I can see a very long and not so pretty way of getting it, which is by running a twilio function that iterates over every conference, making additional requests to see the participants. But that seems way to complex to me.
I can see in the logs that the conference friendly is being printed
ConferencesState handleConferenceUpdate WT5d0800a3ce8724fd55cf89841c48XXX
Is there anyone who can help here?
UPDATE:
#philnash below answered the question exactly.
Twilio developer evangelist here.
There seems like a couple of ways to get hold of the Conference SID in a Flex interaction.
First, the task that your worker accepts has a number of attributes that are set by Flex and relevant for the type of task it is. For a voice call, you will find a conference key, which has an object including the sid as well as entries for the participants.
Secondly, I found that the <TaskCanvas> component in the UI is passed a context that includes a conference object. That object then has a source property which expands to an object with a conferenceSid property, as well as other properties, including a participants list.
Does that point you in the right direction?

Manipulate call in progress with only keypress with Twilio

Is there a way to manipulate (play menu, put on hold, transfer etc) call in progress by having the caller or called party press a special key such as #.
For example, I would like to allow a called party to be able to transfer a call from their cell phone by just pressing the # key.
When the pound key is pressed, I could play a menu such as "What do you want to do with this call?" "Press 1 to place on hold, 2 to transfer, 3 to send to voicemail" etc.
I know I can do this all day long if the user has a web interface or possibly even having the user text something but.. I don't want the user to be required to send a text message or have a web interface handy.
Thanks in advance for any assistance here.
Twilio developer evangelist here.
You can do that yes. There is a simplified version of your request explained in these two blog posts handling transferring calls, depending on your language of choice:
Warm Phone Call Transfers with Python, Flask and Twilio Voice
How to Warm Transfer a Call with Java and Twilio Voice
Essentially, the idea is that you use a conference call that allows one party to hang up on the call using the * key. You do this by setting the hangupOnStar property on the <Dial> verb to true.
When hanging up with the * you can then give the call admin a list of options, such as transfer, using the <Gather> verb which can then be applied to the call.
I recommend reading through one of those posts for all the details.

Support twilio multiple incoming calls at the same time?

It's simple, I would like to use Twilio to connect calls with a different departments by a menu. This is simple.
But I would like to confirm if it's possible to receive more than one call at the same time and redirect to the correct number via Menu (if someone press 1 --> will be redirect to a XXX number, without hang out the first call, if the next person press 2 --> will be redirect to other number)
I am using OpenVBX to manage the numbers and the workflows.
Thanks
Twilio developer evangelist here.
If you get two calls on a Twilio number at the same time, you have nothing to worry about, they will be handled as two separate calls. So, if you build up a menu, then each call will go through it independently and be directed on to the number they choose from the menu.
I hope this helps, please let me know if you have any other questions!

Twilio Application to call another person if one call fails

I am studying twilio's auto calling functionality for the one of our client.
Requirements:
We are handling software system of our client. And when ever there is error in
the system I need to call specific persons.
I could do above function easily on testing environment using php. But In actual scenario,
I want call on multiple number like if one person is not receiving call I must get call
on second number, third number and so on until one person receives call and understands error.
For the above functionality I have studied "Call Screening " example from site and also
communicate to support person but I didn't get exactly from the conversation.
When I call attempt_call.php from my browser I am getting xml output on browser only not any call.
Please guide me if any ready example is there that can solve my problem.
Thanks and best regards.
Piyush Merja
CallScreening didnt work for me..
I have called to one person and checked for its status if its completed then process terminated or continued to another person

Resources