Ring multiple phones but with individual processing

I am trying to accomplish the following thing. I have a single incoming phone line that I wish to ring a SIP extension, plus also ring a cell phone at the same time. I know I can put them both in the Dial() command and that works but what I am trying to do is the following:

  1. Ring the SIP/ext21 and a cell phone number at the same time.
  2. If the SIP extension picks up, take the call (this works of course)
  3. If the cell phone answers the call, ask the user for a #1 keypress to validate it is a person instead of VM on the cell phone (optionally present using TTS or number playback the phone number or name of the calling party)

I have tried to use findme/followme, but by the time it rings the numbers not at the same time the calling party usually hangs up.

My second thing I wish to do is the following:

I have four extensions. Two of them go to a two-line cordless phone system, and the other two are single phones in different places. They all use the PAP2T SIP boxes to give me analog POTS lines.

I wish to do the following thing:

  1. Ring ext21, ext23, ext24 if ext21 is not busy
  2. ring ext22, ext23, ext24 if ext21 is busy, but ext22 is free
  3. ring ext23,ext24 if both ext21 and ext22 and busy.

The issue is that the dial command does not return if any of the extensions are ringing, so if I put a dial(sip/ext21&sip/ext23&sip/ext24) in, even if 21 is busy it will never return back because 23 and or 24 are available.

I guess that this second issue is almost the same as the first issue. Is there a way to “split” the call processing so that I can take a single incoming call and route it through two different exten => groups? If I could do this, then it would work perfectly.

Please help me, I have been trying to do this for a very long time now, and I have compensated for #2 by ringing all four extensions which makes it difficult to determine if a single or two calls are ringing.

Thank you for your help


I’m not sure whether Dial sets the calling channel up before or after running the callee subroutine, but if it is after, you should be able to use a local channel to isolate your special processing.