Search code examples
twilioplivo

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


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


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.