I am struggling with a problem which I thought would be an easy one :
bridging several channels together in a *smart* bridge. I emphasize
*smart* : I want my bridge to be a native_rtp one when only two channels are involved, and switch to softmix technology when a third channel comes in.
I thought I could use ConfBridge for that, but it creates a bridge that is not smart (it is of type softmix even if two channels only are involved).
I can do this with ARI of course, but handling transfers will become quite difficult : I will receive replace_channels events, and channel optimization will not be performed. I managed to have something working this way, but I had to write a lot of code and some situations are very tricky to debug.
The easiest way I found was to write a piece if dialplan mixing BridgeWait, Bridge and BridgeAdd. This works well, transfers are handled by the Asterisk core, and the bridge is smart. Still, it requires to maintain a list of bridged channels in order to call BridgeWait, Bridge and BridgeAdd in the right order and with the right parameters.
Can you think of any other way (hopefully easier) to achieve this ?