Problem with ConfBridge

I’ve been on Asterisk 1.8 for many years and I’m now forcing myself to move all my stuff to 14 Distro. I have 90% of my stuff working in the new system, but there is one thing that has me completely stumped. I want to move my MeetMe stuff to ConfBridge, because this mission is to get up to the latest technology after 11 years or so on a customized Trixbox build.

So, I have a simple Application Feature *5 Quick Conference. It takes both ends of a call and transfers them into meeting 1000. We use it all the time at home to quickly share a call with family members. It works perfectly with MeetMe, but it just hangs-up when I try to use ConfBridge. (Yes, I changed the default conference tech in advanced settings).
When I use ConfBridge, the log shows “joined” and then “left” the conference, immediately, and the call terminates. Any thoughts?
I’ve tried many variations of ConfBridge, including moving the call out to AGI, but the results are exactly the same each time. I can direct-dial conference 1000 and it works. I just cannot transfer endpoints to it from my dialplan.

I have simplified the code down to the bare minimum to demonstrate my problem.

This is the config:
globals_custom.conf
DYNAMIC_FEATURES = qconf

features_applicationmap_custom.conf
qconf => *5,self,Macro,qconf

extensions_custom.conf
[macro-qconf]
exten => s,1,Noop(Quick Conference)
same => n,ChannelRedirect(${BRIDGEPEER},qconf-user,s,1)
;;;same => n,ConfBridge(1000) ; THIS FAILS
same => n,MeetMe(1000,A1M) ; THIS WORKS
same => n,MacroExit()

[qconf-user]
exten => s,1,Macro(user-callerid)
;;;same => n,ConfBridge(1000) ; THIS FAILS
same => n,MeetMe(1000,xw1M) ; THIS WORKS
same => n,MacroExit()

A very elegant block of dialplan, if only it worked. I not had much luck in doing the above since before Asterisk 11. It seems that the first ChannelRedirect away from the existing bridge, causes the second channel to drop. I have a need for this to work, so my plan in the next little while is to create an AGI file that uses the AMI ChannelRedirect instead of the dialplan application. The AMi version is capable of directing two channels at once.

I will update if I have any success.

Actually, the ChannelRedirect does work (I am on Asterisk 14). It works flawlessly with MeetMe. It is the ConfBridge that fails.

I have been trying to use BlindTransfer from AGI, but no success. I have not found a single example online.
How does one call an AMI function from AGI? Exec?

I have the same problem using confbridge with channel redirects, even more without redirect with just sending channel to confbridge application. My dial plan allows user to enter feature code during existing call to send both channels to confbridge and create conference from this call. This perfectly works on Asterisk 11, however on 13 and 14 it doesn’t work and main channel (caller) leaves conference right after joining it. I tested it with AGI script, Sysytem and dialplan sequence but result is the same.
Interesting thing is that if i launch my AGI script (this is python script connecting to AMI and making dual channel redirect) from linux console setting up correct channels - it works, but as soon as it is launched from dialplan, e.g. bound to a specific channel, it drops it.
Have you found a solution to this problem?

I have had no success with this in Asterisk 13+ with either dialplan, AGI or AMi.

I abandoned confbridge and went back to using MeetMe. MeetMe works flawlessly.

I was able to setup basic 3-way calling using in-built features designed for asterisk 12+. I did this simply by adding the following to /etc/asterisk/features_featuremap_custom.conf:

[general]
atxferthreeway = *42
atxferabort = #42

You initiate by starting a transfer via *2. The callee is placed on hold and you are presented with a dial tone. Dial the new number to bring into the 3-way call. Then once you are ready to bridge dial *42 (or whatever you defined above for atxferthreeway). To cancel the 3-way call and go back to the original call dial #42 (or whatever you defined above for atxferabort).

This uses features already defined as part of atxfer via asterisk. You can see other features defined by checking the features.conf.sample via asterisk/configs/samples/features.conf.sample at master · asterisk/asterisk · GitHub