Search code examples
twiliotwilio-api

Twilio simultaneous dialing without rate limit


I have one incoming phone call which I need to forward to many numbers, and connect them to the first human that answers. This is to ensure minimal wait time for the caller.

I've run into many problems with ensuring they're connected to a human and I'm looking for suggestions. Here's what I've tried so far:

  1. Multiple <Number>s within one <Dial>, except this gets cancelled as soon as someone's voicemail picks up, even if it's followed by a "press 1 to connect" <Gather> component. Early voicemail effectively cancels the call.[0]
  2. Use the REST API to create multiple calls simultaneously. This suffers a rate limit of 1 call per second which defeats the purpose of connecting to someone ASAP.[1]

I've started looking into the Conference API but this seems like overkill since I only actually want 2 people talking anyway. What approach would you recommend for this problem?

Thanks!!


Some related StackOverflow questions that led me to this point:

[0] Twilio: call multiple phone numbers at once and get connected to the first one which answers

[1] How would I call and leave multiple people voicemail with Twilio?

And the main Twilio docs I've been focused on:

https://www.twilio.com/docs/voice/make-calls

https://www.twilio.com/docs/voice/twiml/dial

https://www.twilio.com/docs/voice/twiml/number

https://www.twilio.com/docs/voice/twiml/conference


Solution

  • With option 2, the Calls Per Second limitation is configurable, albeit only through the console and not over the API:

    https://www.twilio.com/blog/high-volume-voice-considerations#:~:text=CPS%20stands%20for%20Calls%20Per,CPS%20per%20trunk%20per%20region.

    Every Twilio account (including subaccounts) has 1 CPS by default ... You can self service your CPS in the Twilio console up to 30 CPS for Programmable Voice and 15 for SIP Trunks. There is no API for CPS.

    This answers the original question but just leads to more problems as we have a couple thousand subaccounts to configure this through. Would still prefer a better alternative.