I have a setup where an application (run using ARI) connects to external UAs using a set of local channels and bridges - each application “dial” looks like this:
- Set up local channel.
- Set up a mixing bridge.
- Put local channel in mixing bridge.
- Create a new channel and originate to the destination.
- Put outgoing channel in mixing bridge.
Then I can do various things to the local channel - play audio, capture DTMF, etc. One of the main reason for the mixing bridge is that I often want to record this session and bridge recording offers recording of all sides - unlike channel recording.
This works well, until I want to put the local channel into another mixing bridge to create a conference (these kinds of use cases are ad-hoc - I first setup the local+bridge+originate then I do other stuff and at some point I might decide to conference this setup with other setups of a similar nature.
Whenever I put the local channel into such a conference mixing bridge, Asterisk appears to move the originating channel into the conference bridge, leaving the original mixing bridge. If I have a recording running on the original mixing bridge, it gets everything up until when I join the local channel to the conference bridge, and then nothing.
This is how it looks in the Asterisk console:
-- Channel Local/application-outbound@default-00000002;1 joined 'simple_bridge' stasis-bridge <1fdbcbc0-2336-4322-a25c-0e54c1304778>
== Using SIP RTP CoS mark 5
-- Channel SIP/remote-entity-00000001 joined 'simple_bridge' stasis-bridge <1fdbcbc0-2336-4322-a25c-0e54c1304778>
-- Channel Recorder/ARI-00000003;2 joined 'simple_bridge' stasis-bridge <1fdbcbc0-2336-4322-a25c-0e54c1304778>
-- x=0, open writing: /var/spool/asterisk/recording/5c07c7d9-ef5b-45d1-8a44-df9619b5a5d9 format: sln, 0x7f144c003780
-- Channel SIP/remote-entity-00000001 left 'softmix' stasis-bridge <1fdbcbc0-2336-4322-a25c-0e54c1304778>
-- Channel SIP/remote-entity-00000001 joined 'simple_bridge' stasis-bridge <1_myconf-call-1-94200919-d2aa-4091-8400-c9f9fae70ffa>
Is this the expected behavior? I read about Local Channel Modifiers and tried to add the “No Release” modifier but that doesn’t seem to do anything to change this behavior.
Any idea what I should do?