Multiple Calls, Only Connect when Press 1

I have a working Dialplan where:

  1. A Call Comes In
  2. Another call is made using Dial() and the M() (macro) parameter
  3. They answer and can press 1 to accept the call or press 2 (or nothing) and the call is “declined” and the Incoming Call is sent to Voicemail.

I now want to do the same but call two or more people at the same time with the same result.

  1. A Call Comes In
  2. Two+ calls are made using Dial()
  3. If Outbound Call A never answers, cool, keep trying Call B
  4. If Call A answers but declines, cool, keep trying Call B
  5. If Call B eventually answers OR does not after X seconds, finally send the call to Voicemail

Currently I’m attempting a Dial(123@channel&456@channel) and when Call A answers, but has not pressed 1 or 2 or timed out, the call is already 100% reliant on that Call, and the Call to B is hung up on.

This does not do what I want, as Call A might reject, and I want Call B to have an opportunity to answer and accept.

This is an issue because Call A might have just been a mobile user out of range and the call went straight to their Voicemail, while Call B would have reached a human if given a few more seconds to answer.

Any ideas?

The ‘page()’ application may be of interest, except for the ‘press 1/2’ thingy.

Maybe something with local channels would allow for the 1/2 before you dump the caller into a conference.