I have a twilio app that provides an on-call list of phone numbers that our customer's can call and speak to one of our on-support developers.
I need to find a solution that will allow the caller to press a key to bypass the voicemail of a the calling party and be redirected to the next person in the on-call list. Right now, if I call my twilio app using my number and I get the calling party voicemail, I don't have an option to move onto the next person in the call list.
Is there a way to mimic the hangupOnStar feature when a caller gets a person voicemail in twilio?
Thanks,
I had a look into this and unfortunately it does not look like you can nest <Dial> within <Gather> otherwise this might be possible.
What I would recommend is when you receive an inbound call, play a message along the lines of "Please wait a moment while we connect an available developer", then <Enqueue> the call.
At this point your application can start calling the developers and when the line connects ask them to press #, when this happens you can <Dial> the developers call into the queue ID Twilio proved in the last call to you app, and the calls will be bridged. If the developer did not press # then you can assume that it went to voicemail, at which point <Hangup> and initiate a call to the next dev on call.
Hope that helps.
Related
We have a code that connects two target numbers in a conference to talk to each other.
We make two outbound calls, directing both to a unique conference via twiml.
Our logic is perfect when both of them answers or when one of the outbound calls gives up on ringing returning a webhook in a 'no-answer' status.
The problem is when the person rejects the call. In that case, the voicemail triggers the conference start, like if it was answered. It connects the voicemail with a person.
We need a way to stop this from happening or to identify a true human answer from an voicemail one. It is generating empty recordings, confusing the callers and in a not answered call we are sending an SMS, explaining who was trying to communicate. We need to identify all unsuccessful calls for that.
Anybody has a hint?
Twilio developer evangelist here.
You are looking for answering machine detection. Or, alternatively, you can use call screening as described on this page.
I'm new to using the Twilio API and I essentially want someone to be able to send text and have it be read out in the phone call, but then keep the line open so that more text can be sent at a later time.
It seems like I should be using the Programmable Voice API along with TwilML, but the problem I am having is that once the TwilML instructions are completed the call ends. Is there anyway I can stop this from happening and have the call wait for a Rest API update to be sent to the phone call to have it say new text?
Twilio developer evangelist here.
There are a few ways you could deal with this, but I believe the best would be to use <Enqueue>. Once your TwiML is played out, you can <Enqueue> the call and then provide a waitUrl that points to an endpoint that returns more TwiML to play to the user while they wait. This will automatically loop while the user remains in the queue. You could use this to simply <Pause> indefinitely or <Play> background music. Then, once you have more text to read to the user you can redirect the call by updating it.
Let me know if that helps at all.
The answer to this my be out there, but I'm having trouble locating it do to I don't know what the feature would be called.
I have a phone system setup where people call in with an option to press zero to be transferred to a live person. The person it goes to also receives calls from other places and I would like to notify them with an audio file and possibly a action with a little more info about the call before it's connected.
Example of what I would like to happen:
A call is placed to our system and they press zero, they hear on-hold music while a action is started.The phone rings in our office and the receptionist picks it up. After answering they hear something like 'incoming call from some company, connecting now', and then the call connects to the other person.
I have everything working in the system right now minus the piece of audio the receptionist would hear before the call is connected.
Is there a feature like this built into Twilio?
Twilio evangelist here.
What you're describing is called a 'whisper' and its pretty easy to set up with Twilio. I'd start by reading through the Call Screening and Recording How to which includes an example of a whisper.
Specifically, check out examples 4 and 5 which shows how to include the url attribute on the <Number> noun. The url you provide there will be requested when the second call is answered and allows you to return TwiML that Twilio will execute to that call before we bridge the two calls together.
Hope that helps.
I have an app that creates outbound calls to set up simple conferences.
I am having difficulty dealing with dialing out to Google Voice numbers as I use IfMachine to be able to determine if the call goes to voicemail for one or more participants so that I can "fail" the conference call attempt.
Here's the issue that I am having...
Google Voice answers the call attempt and asks you to say your name before forwarding your call onto the configured endpoint for that user.
I can use IfMachine to detect this and I can automate this portion and get Google Voice to forward the call, but then I can no longer detect if the call ultimately goes to voicemail or if an actual person picks up on the other end.
any ideas?
Twilio Evangelist here,
I think given that there are 2 points you need machine detection, you may want to use a <Gather> as secondary call screening before connecting the person to a conference.
When you make the outbound call to a number, you're using IfMachine to find out if you get to Google Voice. So that's great. But because you're passed that hurdle, it won't be triggered again.
What you could do is to use call screening, to manually detect a human with some TwiML like this:
<Response>
<Gather numDigits="1" timeout="15" action="/some-conference-path">
<Say>Press any key to be connected to the Something Something Conference</Say>
</Gather>
</Response>
Then, if the call is answered by a human, they can press any key on their keypad and be redirect to the actual conference call, or if the Gather times out, you most likely got their voicemail.
You're basically combining automatic and manual machine detection as you need to do it twice at different points of the same call.
Hope this helps!
I'm wondering if the following is possible:
Caller rings Twilio number which gets answered and then automated message is played.
Caller is placed in a queue
In parallel to this, our system dials a number (using the rest API) showing the caller id of the incoming call, plays a gather to verify the user wants to pick up, and then connects the call.
I know that the easiest way to achieve something similar to this is to redirect the incoming call with a Dial verb, but for reasons that aren't really relevant to the question that isn't possible.
Twilio evangelist here.
Yes, this is possible, with the caveat that the initial callers phone number must be previously verified with Twilio. See this topic in the help center:
http://www.twilio.com/help/faq/voice/can-i-use-a-non-twilio-number-as-the-caller-id-for-outgoing-calls
Hope that helps.
Devin