Extension calls into conference and two extensions invited - but how?

I am looking to build a Asterisks / FreePBX system to use as a prop phone system. I did a show last year where we modified phones with practical microphones/transducers and used our mixers auxs to do the duplex connectivity. Thinking there must be a better way I have been playing with a raspberry pi 4 and a grandstream ATA.
What I want to do is use a dial plan to allow two FXS extensions to practically call each other via a conference with a third FXS port as a listen port. I was going to use a paging adaptor to auto answer and output audio on that port.
So the idea is phone1 picks up and hotline dials to a conference, that conference will dial out to phone2 and the phone3 (paging adaptor), phone2 rings and they pick up and has a conversation with phone1. The audio of phone1 and phone2 is outputted to phone3 with the output going to broadcast audio. Phone1 and phone2 hang up and the connection to phone3 is closed. The connectivity would have to happen when phone1 or phone2 hotline dials each other.
The question is how would i accomplish this via dialplan? I am a it overgoogled in on this…

You could do that with


No dialplan needed.

I was thinking the PBX would allow a bit more flexibility. Depending on the show we could add extensions for different gags.

then you can just use a multi FXS ATA, they all allow direct dial, the telco to audio needs a similar ‘hybrid’

You are saying use just the ATA to direct dial the FXS ports? It would mean I couldn’t do ring groups or anything like that right? It also would mean I couldn’t get a single port with both callers audio out. The advantage of that is the delay for both callers would be identical. It makes dealing with lipsync a lot easier if the signal flow is the same

Then I suggest as many ATS’s as you need and a Rasberry Pi as a simple Asterisk server , configure it’s chan_console to your mixer, FreePBX is probably overkill and doesn’t have a way to configure the console port.

This can be done with some custom dialplan. Phone one dials into a feature code that ORIGINATEs calls to each of the other extensions and then all end up in the same conference. I set something like this once, and even wrote an AGI that flushes the conference first in case it’s already in use. confkick.php · GitHub

I have been trying to research how to go about this via a dial plan. But i am a bit lost on where to start.

In its absolute simplest form it looks like this:

exten => 4499,1,NooP(Entering user defined context from-internal-custom in extensions_custom.conf)
exten => 4499,n,Originate(local/[email protected],exten,from-internal,8001,1,,a)   ; set up call between local ext 6006 and conf room 8001
exten => 4499,n,Goto(from-internal,8001,1)   ; send caller to conf room 8001
exten => 4499,n,Hangup

The above creates a feature code 4499 you can dial from a local extension. It will set up a call between local extension 6006 and conf room 8001 and then send the dialing party to that same 8001 conference. You could continue to add additional parties to the conf by adding more ORIGINATE lines.

From there, it’s all about edge cases like what happens if the conf room is already occupied? What happens if nobody answers 6008 and the call goes to vm? Do you play a recording to 6008 and ask them to press 1 to accept the conf call? etc…etc…

I suddenly remember some discussion in the forum here going back a while about abc, ‘always be conferencing’ which was advanced as a way of dealing with emergency calls. The dialplan was complex, but it might give you a better starting point than the barebones above.

Thanks, amazing, that has been really helpful. I was playing around with that to test functionality and that is exactly what I hoped for. As you said I added another ‘origanate’ to the extension with a paging adaptor. That auto answers before the second phone allowing the audio to be outputted when the both users are on the line. I set the conference to quiet mode and turned off the announce so there would be no beeps or announcements.
I have two further questions.
Could using the leader leave function disconnect the paging adaptor by ending the conference? I am playing with the vox delay logic on the paging adaptor (where it disconnects after a set time of no audio). But is there a function to promote the initiating extension to leader? So in your example once the first caller hangs up 6006 is kicked from conference 8001?
The second question is could a ringing sound effect play until one of the extensions picks up?

Thanks again for your help!

With effort all that is possible. You will need to examine the dialplan generated for a conference and note where in the dialplan the PINs are prompted and what happens then.

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.