For our VoIP-application (customer care) I'm using the Twilio Voice API. Im using conference calls in order to implement features such as warm-transfer, (on/off) hold, queues etc.. However, we get some complains that there is a delay when an agent is speaking to a customer. This delay is noticeable and a bit annoying. The strange is that all the online / hardware tests etc are saying that the connection is just fine.
As a test I used Client calling instead of a conference call, and the quality was much better and the delay was barely noticeable. Also the voice quality was much better. How is this possible? I think the quality of conference are calls less then client calls?
I am willing to drop conference calling and stick with client calls only. Is it, using client calls, still possible to hold / un hold a customer during a call? And how can I implement warm-transfers without using conference calling?
Regards,
Marcel
Related
I'm using Twilio to forward calls to "local" freephone numbers across the world to an IVR system local to us.
The problem is that this doesn't work, because you need to be able to press numbers to navigate the IVR system, but if you dial via a Twilio number, it seems to filter DTMF tones going through it, so they don't get passed to the end system.
Is there a way to turn off this filtering?
I tried writing a little app to deal with it by moving the basics of the IVR into this app/Twilio, and then it works - except it has to Dial the "real" IVR system and then sendDigits to press the right buttons based onwhat the user inputted, however these tones are ignored by our IVR system. Grrr. Not sure why, I'm guessing it doesn't play the tones for long enough?
Any ideas for getting it sorted? It's an IVR for emergency medical assistance, so it's critical it's working (and it's in production now!!).
<Response><Dial timeout="180" record="record-from-ringing"><Number sendDigits="wwww1">+<my number></Number></Dial></Response>
Should work, but doesn't. And it wouldn't matter anyway if I could press a button on my phone and it go through!!
You can see here for the types of DTMF tones we support.
It is likely that you're experiencing filtering from the carrier end. And this is absolutely something best handled on the support level where you can share Call Sids that display the undesired behavior.
There doesn't appear to be anything out of place in your IVR setup as you describe it. If others need to set one up from scratch, I'd recommend the following tutorial (C#, Java, Node.js, PHP, Ruby):
https://www.twilio.com/docs/tutorials/walkthrough/ivr-screening/ruby/rails#0.
I do hope this helps your Emergency Medical Assistance to be up and running soon! 🚑 🚨
I believe the answer is no, but does Twilio provide ability to pause/resume a recording? Use case is recording a call, but pausing recording when collecting sensitive information. From the REST documentation, it doesn't appear to be a supported capability. Thought someone might have found some options for this requirement.
This is possible, though it's not wholly obvious how from the documentation.
You can modify call state using the REST API, as per https://www.twilio.com/docs/api/rest/change-call-state , and we basically use it to tell the call to re-dial to the same agent (presumably this is a call centre?) but with no-record, and then again with record re-activated once we're done.
You end up with two separate recordings for the call, which in our case we download, stitch together, and store back to our storage platform.
Edit:
Having discussed this issue with Twilio support, there's another possibility which allows you to just have a single recording.
Instead of dialling the two ends of the call together, you instead put them both into a conference that's recorded when you initially connect the call. When you want to pause it, using the REST API, you add a new "hold" leg into the conference, then move the two real ends of the call onto a new conference that isn't recorded. When you're done, you move them back again and it's "unpaused". You then only have one recording from the original conference.
None of these is ideal, and apparently they are working on a proper support setup for this (fairly obvious!) requirement, but this should solve it for now.
The Recording Pause & Resume feature is now supported in the Twilio API. Here's a link that gets you started:
https://support.twilio.com/hc/en-us/articles/360010199074-Getting-Started-with-Call-Recording-Controls#pause_resume
Would like to maintain a local record of the price of all the phone calls that my application makes.
Am not sure what a good pattern for this would be. It looks like the price is not available in the arguments provided during the status call back when the call is closed. I assume this means I'll need to query Twilio's servers to find the price of the call. Can I do this immediately or do I need to wait a certain amount of time for the price to populate?
Is there another pattern that would be simpler, require fewer steps, or be less error prone that I am not seeing here?
Thanks!
Twilio evangelist here.
I'd recommend checking out the Usage Records API. These handy API's give you an easy way to get rollup data for your account, like how much your account spent yesterday, or how many outbound calls it made.
You can also set up Usage Triggers to proactively notify you when threshholds are met.
Hope that helps.
Working on a fun element for a big company event.
I would like to find a way to call 200 UK cell/mobile numbers as simultaneously as possible and deliver the same recorded message to each of them. All of the target devices belong to people attending the event.
Anybody managed to do something similar?
I think I could do this with Twilio's APIs, but a more packaged solution is preferred.
Any risk of overwhelming the local cells by trying to start a call with so many devices in the same area at once?
Twilio Evangelist here.
This is totally possible with Twilio and some simple programming logic. With the numbers you have, you can loop through them and create phone calls like so (in Python):
for num in number:
# Create a phone call
client.calls.create(
to=num,
from_='MY_TWILIO_NUMBER',
url='http://mywebsite.com/instructions.xml'
)
The url here (final line) will provide some basic TwiML to play an MP3 file.
There are solutions for this available, but it is likely you'll be able to build this in software faster than you will be able to get the solution running, especially if this is for a one-time event and you have some software people handy.
If you need any help, let me know!
Our call center deals with businesses and we use Twilio to make our calls. However, many businesses have a menu to navigate before we get to talk to someone. How can I create a 10-key pad on our end and use it to send menu selections to the call we are connected with?
I know about the senddigits attribute on Dialing numbers with Twilio, but this sends preprogrammed tones. We have no way of knowing what the tones need to be until we are connected and in the menu, so this won't work.
I've been through the API pretty thoroughly and can't seem to find anything relating to this.
If there is nothing, is there another software that anyone can recommend that allows for making calls out, generating recordings of calls and allows me to send keytones manually after the call has been started?
Check out the digits attribute of the 'Play' tag.
https://www.twilio.com/docs/api/twiml/play#attributes-digits
Each 'w' character tells Twilio to wait 0.5 seconds instead of playing a digit.
Assuming I am understanding your problem, could you not us MP3s of DTMF tones (http://jetcityorange.com/dtmf/) and PLAY to send the tones after the call has started?