Does Twilio have any plan to implement simultaneous calling with machine filter correctly?

StackOverflow https://stackoverflow.com/questions/22874902

  •  28-06-2023
  •  | 
  •  

Question

In Twilio - simultaneous ring is broken with airplane mode.

Since first call that connects will cancel all the other attempts, if there is a line that is on airplane mode, it will pick up immediately and take user to voicemail.

The fix would be to cancel all other attempts only when the call is successfully CONNECTED instead of PICKED-UP. In this example if 111-111-1111 picks up but doesn't press 1, the call to 222-222-2222 shouldn't be cancelled:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Dial>
        <Number url="/screen">
            111-111-1111
        </Number>
        <Number url="/screen">
            222-222-2222
        </Number>
    </Dial>
</Response>

--- /screen
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Gather action="/complete_call">
        <Say>Press any key to accept this call</Say>
    </Gather>
    <Hangup/>
</Response>

Any plan to fix this?

In your document it seems that you are aware of this issue. Here is except from Twilio document:

Simultaneous dialing is useful when you have several phones (or several people) that you want to ring when you receive an incoming call. Keep in mind that the first call that connects will cancel all the other attempts. If you dial an office phone system or a cellphone in airplane mode, it may pick up after a single ring, preventing the other phone numbers from ringing long enough for a human to ever answer.

Hence you should take care to use simultaneous dialing in situations where you know the behavior of the called parties.

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

Was it helpful?

Solution

I ran into a similar problem recently.

Devin's solution, if I'm understanding it correctly, is to present a prompt to whomever picks up first and, if they don't respond within the timeout, to then redial the remaining numbers in the group.

That creates a bad experience for the caller -- they end up waiting longer to connect to a human -- and for the call targets -- who may have their phones ring briefly multiple times.

Being able to present a prompt to everyone dialed and connect whomever responds to the prompt first would solve this problem, but it doesn't appear to be possible to do with the API as it stands, currently.

OTHER TIPS

Twilio evangelist here.

So today you are right that in a simul-dial situation if one of the callers voicemail picks up immediately we don't distinguish between that and an a real person answering. The reality is that answering machine detection is pretty unreliable anyway which is why our existing AMD functionality is considered experimental and not done in this scenario.

One way I've seen this done is by placing a human check right at the beginning of a connected call. By using the <Gather> verb you basically prompt the caller to enter a value ("Press 1 if you are a human"), and if nothing happens you assume its not a human who answered. Once you know that you can remove then from the call group you are simul-dialing and then retry the others in the group.

Hope that helps.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top