Twilio stop recording of a call - twilio

We are currently developing an autodialler using twilio - we are using conferences. The call center operator will be sitting in a conference room and then calls are initiated via twilios rest api and then moved into the conference. We are not wanting to record the entire conference but just the calls within the conference. We will be transferring calls as part of this but when we transfer to a third party we want to ensure this isn't recorded. Is there a way to stop recording with Twilio.

Twilio developer evangelist here.
There isn't an API native way to stop the recording of a conference part way through. What I'd recommend here is that, when you want to initiate the call to the third party to bring them into the conference, also initiate a couple of requests the use the Twilio API to redirect the current calls into a new, non-recording conference and direct the third party into that conference instead.
Let me know if that helps at all.

Related

Twilio Flex: Is there a way of looking up conference/recording by phone #?

We are using Twilio Flex. We have call recording enabled. Recordings can be found via the Twilio Console and Flex insights reporting.
We have agents who want to be able to look up old call recordings via phone #. Adding a view to the Flex UI to do this is simple enough.
However, I am not sure how to obtain the recordings via Twilio's APIs. I am able to locate call resources via searching for calls to/from the desired phone #, but the call resources seem to be lacking recording info.
It seems the call recordings are linked to conferences created by Flex, but there are no APIs (as far as I can tell) for obtaining a conference by a participating call SID so that I can obtain the conference recording.
EDIT
Flex calls are a conference which contains two call resources: the inbound call from the customer and a call to the connected agent. The CallSid for the customer inbound call part has 0 recordings associated with it. The recording is linked directly to the conference and the CallSid that connects the agent.
Example:
Caller 555-555-2222 calls into a twilio flex # 555-222-1111 and gets CallSid CA123. Once they are sent to Flex via a flow widget, a conference is created (sid CF456) containing CallSid CA123. Once an agent connects, there is a call resource created, CA789 that is added to the conference. This call shows as being from the flex # 555-222-1111 and connected to the agent name, client:agent_40companyname_2Ecom. Only Conference Sid CF456 and call CA789 have a linked recording (the same recording). The inbound call (CA123) has no recording.
So if I search for calls from the client's # (555-555-2222), I see the call info for CA123, but have no means of obtaining the recording as there seems to be no means of obtaining the conference this Call participated in.
Twilio developer evangelist here.
It seems like the call recording is via Programmable Voice and there you can retrieve the calls with specific numbers.
I would use these docs which let you find where you can Retrieve Calls to Specific Numbers and then collect the Call SID and then use that to retrieve the call recording.

Twillio call whispers and recordings

I want to do the following in Twilio Studio:
I want an incoming call to be recorded and I want the person answering the call to hear a voice whisper - not the person calling. How do I set this up in Studio?
I'm not a coder and don't have a technical background. That's why I want to keep to the drag and drop features.
Twilio Studio doesn’t currently support the capability to handle whisper (playing a text to speech message or mp3 to the dialed party before connecting the calls together. You should be able
to do this with the Studio TwiML Redirect Widget and a TwiML Bin or Twilio Function providing the necessary TwiML.
The TwiML Number noun has a URL attribute which provides this whisper functionality.

Making a call from a Twilio client to another Twilio client directly

what I am trying to achieve is to make a VoIP call from an iPhone to an iPhone using Twilio.
To do that I'm using the iOS SDK, the Twilio Voice to be more specific as the iOS SDK is superseded.
I have a server that generates an access token and when I create a call the Twilio API would make a request to my server and I would return a <Dial /> keyword with the client name and the connection would be established.
The problem is, this counts as two calls(iOS app to Twilio is the first one and when I return a TwML <Dial /> response is the second one) so the price is practically doubled.
Is there a way to make it as a single iOS app to an iOS app call? All my server does is to generate the TWiML using the parameters that are sent from the client anyway.
Oh and also in the documentation there are some talks about capability tokens but all the current documentation is using Access Tokens.
Are capability tokens relics of the past for the older API?
Thanks
Twilio developer evangelist here.
Twilio calls are always priced per leg, so in a call between two people you do always pay for the outgoing leg and the incoming leg. They may also have different lengths, if the outgoing call goes through some other TwiML before making the <Dial> for example.
However, if all you want to do is make calls between applications and you don't need to be able to make calls to the phone network then can I recommend you take a look at the Twilio Video project. While it is called "Video" you can use the SDK to make audio calls between apps too. And if you choose to create peer-to-peer rooms, then the audio stream is sent directly between the two devices and not charged as a call leg at all. The only extra thing you need to do is to generate the call notifications yourself.
As for capability tokens, they are indeed a left over bit of documentation. Capability tokens have mostly been renamed as access tokens so you can use them interchangeably. If you investigate the Video SDK, then everything will be Access Tokens too.

Twilio - Is there a way to bypass voicemail

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.

Twilio Dynamic Text-To-Speech Conversation

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.

Resources