Jean Aunis
2017-Jul-05 16:45 UTC
[asterisk-users] Options for bridging channels in a smart bridge
Hello, 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 ? Regards Jean -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20170705/6a2403ca/attachment.html>
Joshua Colp
2017-Jul-05 16:51 UTC
[asterisk-users] Options for bridging channels in a smart bridge
On Wed, Jul 5, 2017, at 01:45 PM, Jean Aunis wrote:> Hello, > > 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 ?Not really, there's no cookie cutter application that behaves as you need using the bridging API. -- Joshua Colp Digium, Inc. | Senior Software Developer 445 Jan Davis Drive NW - Huntsville, AL 35806 - US Check us out at: www.digium.com & www.asterisk.org
Jean AUNIS
2017-Jul-05 19:04 UTC
[asterisk-users] Options for bridging channels in a smart bridge
Le 2017-07-05 18:51, Joshua Colp a ?crit :> On Wed, Jul 5, 2017,at 01:45 PM, Jean Aunis wrote:> >> Hello, I am struggling with aproblem 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 ?> > Notreally, there's no cookie cutter application that behaves as you> needusing the bridging API. Thank you for your quick answer. Do you think it could make sense to add an option to the ConfBridge application for this ? Personally I would say "not really", because many ConfBridge features may become unusable when the bridge is in native_rtp technology. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20170705/7e604b45/attachment.html>