Want to use Whisper in Twilio Studio - twilio

I want to use the Whisper in Twilio Studio,
is this possible??
Now I using only Twilio Studio and TwiML Bin
my goal is...
User calls to my Twilio number
Connect call to the support team phone.
After starting the calls between the User(client) & the support team, I want to [Say] a message to the support team then start the calls.
How can I do this??

Twilio developer evangelist here.
Currently you cannot do a whisper with Studio. You could achieve this flow with just TwiML Bins though.
You would need two bins. One to read the message that you want in the whisper and the other two forward the call and point to the whisper.
So, the whisper bin would include TwiML using either <Say> or <Play> for the message, like this:
<Response>
<Say voice="alice">You are getting a call on the support line, the next voice you will hear is the customer.</Say>
</Response>
Then, the bin that responds to the incoming call needs to use <Dial> with a <Number>. The <Number> url attribute should point at the TwiML above for the whisper. Like:
<Response>
<Dial>
<Number url="TWIML_BIN_URL">+123456789</Number>
</Dial>
</Response>

Related

Twilio Stream only when the call has been received

I am using twiml bin attached to one of my twilio numbers.
When a person calls that number it should be able to dial multiple numbers. I want to stream the call only when the call has been picked up. There can be multiple ongoing streams associated with a twilio number.
<Response>
<Start>
<Stream track="both_tracks" url="wss://XXXX.ngrok.io /twilio-stream">
</Stream>
</Start>
<Dial answerOnBridge="true" >
<Number>+91XXXXXXXXX</Number>
<Number>+91XXXXXXXXX</Number>
</Dial>
</Response>
The above twiml starts the stream as soon as the number is dialed. I want it to start the stream only when the call is received at the other end.
Unfortunately, there isn't a way to do this today, without REST API endpoint control.
You can use the REST API Calls resource to initiate calls intead. The approach you are taking doesn't work very well when the dialed parties are mobile end-points in poor coverage areas and/or devices with voicemail enabled.

Forwarding to multiple destinations with Twilio functions

I am new to twilio. I am trying to setup a phone number that rings multiple destinations.
I followed this blog and set up a twiML script like so.
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial>
<Number>+1-777-777-7777</Number>
<Sip>sip:1777xxxxxxxxxx#in.callcentric.com;region=us2</Sip>
<Sip>sip:1777xxxxxxxxxx#in.callcentric.com;region=us2</Sip>
</Dial>
</Response>
However as reported by other users in the comments this does not seem to work for scenarios where the destinations are a mix of sip and numbers. In my case only the phone number rings. The sip destinations don't receive the call at all.
Is there a way to make this work? either with bins or the new twilio functions?
Twilio developer evangelist here.
It is not possible to use multiple <Sip> nouns in a <Dial>. From the documentation:
Currently, only one <Sip> noun may be specified per <Dial>, and the INVITE message may be sent to only one SIP endpoint. Also, you cannot add any other nouns (eg <Number>, <Client>) in the same <Dial> as the SIP. If you want to use another noun, set up a callback on the <Dial> to use alternate methods.
You could, instead, add the incoming caller to a queue with <Enqueue> and dial each of the numbers/SIP addresses using the REST API. Then, when one connects, connect it to the call in the queue and disconnect the other calls. You'd need to keep a reference to the original call SID so that could connect directly to it and to each of the generated call SIDs so that you can terminate them with the REST API too.
Let me know if that helps at all.

twilio conference - get dialedin participants phone input

All the participants to my twilio conference are muted except the presenter.
I need to implement a feature where the dialed in participant wants to ask a question by dialing a key on his phone.
Essentially a 'raise hand' feature. He can then be unmuted by the moderator and allowed to ask his question.
I already have a build in dashboard to mute/unmute the participants.
is there a way that the caller can hit *1 or some combination of keys that I can then use in my callback.
I've tried using * with hanguponstar functionality but it basically exits the caller from the conference.
Thanks,
Amit
Twilio developer evangelist here.
If you use hangupOnStar and add further TwiML after the <Dial> then the call will continue for the user. So, you could do something like:
<Response>
<Dial hangupOnStar="true">
<Conference>MyConferenceRoom</Conference>
</Dial>
<Redirect>/handUp</Redirect>
</Response>
You would redirect the caller through a /handup action. In this action you could register the caller's question and respond with TwiML to dial them back into the <Conference>.
Note, if you have an action attribute for your <Dial> then the call will follow that rather than carry on with the TwiML in the original action.
Let me know if that helps at all.

TWIML Whisper Announce

I'm using a simple twiml to to forward and record a call. What I would like to do is say a message to the callee to say this is a potential sales call, and it may be recorded. I don't want the caller to hear it.
Here's my current twiml.
<Response>
<Dial record="true">18885551212</Dial>
</Response>
Twilio evangelist here.
You'll need to use the <Number> noun within the <Dial> verb. Number has a parameter named url that lets you give Twilio a URL that returns TwiML to play to the dialed party before they are connected.
There is a How To that walks you through creating a Whisper:
https://www.twilio.com/docs/howto/ivrs-call-screening-and-recording
Hope that helps.

Forward a call in Twilio with a greeting to the called party

I have a Twilio app that receives calls from a Caller and forwards them to a Recipient based on attributes of the incoming call. When calling the recipient, I would like to play a greeting message before making the calls - is there a way to do this?
My TwiML response currently looks something like this:
<Response>
<Dial number="+18005551212"/>
</Response>
I would like to do something like this, but don't know how:
<Response>
<Dial>
<Number>+18005551212</Number>
<SayToRecipient>This is AwesomeApp. I am forwarding a call from 301-555-1212. BEEP.</SayToRecipient>
<NowConnectTheCalls/>
</Dial>
</Response>
Is there away to do this?
Twilio evangelist here.
Yup. What you want to do is called a whisper and we have a How To that shows you how to build this:
https://www.twilio.com/docs/howto/ivrs-call-screening-and-recording
The short version is that the <Number> noun has a URL attribute that allows you to pass TwiML to Twilio that we will execute when the dialed party answers but before the two calls are connected.
Hope that helps.

Resources