ARI: allow other operations to happen while bridged
authorDavid M. Lee <dlee@digium.com>
Tue, 13 Aug 2013 15:27:32 +0000 (15:27 +0000)
committerDavid M. Lee <dlee@digium.com>
Tue, 13 Aug 2013 15:27:32 +0000 (15:27 +0000)
commit987fdfb444aef3eb60041887db60b54e4e382293
tree944be36f63794903977a210f530845d230a23f05
parent94ee8f2e33f6d6e80c3fc6d64d04883fec9496f1
ARI: allow other operations to happen while bridged

This patch changes ARI bridging to allow other channel operations to
happen while the channel is bridged.

ARI channel operations are designed to queue up and execute
sequentially. This meant, though, that while a channel was bridged,
any other channel operations would queue up and execute only after the
channel left the bridge.

This patch changes ARI bridging so that channel commands can execute
while the channel is bridged. For most operations, things simply work
as expected. The one thing that ended up being a bit odd is recording.

The current recording implementation will fail when one attempts to
record a channel that's in a bridge. Note that the bridge itself may
be recording; it's recording a specific channel in the bridge that
fails. While this is an annoying limitation, channel recording is
still very useful for use cases such as voice mail, and bridge
recording makes up much of the difference for other use cases.

(closes issue ASTERISK-22084)
Review: https://reviewboard.asterisk.org/r/2726/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396568 65c4cc65-6c06-0410-ace0-fbb531ad65f3
12 files changed:
include/asterisk/bridge_features.h
include/asterisk/bridge_internal.h
include/asterisk/stasis_app.h
include/asterisk/stasis_app_impl.h
res/ari/resource_bridges.c
res/res_stasis.c
res/res_stasis_bridge_add.c [deleted file]
res/res_stasis_bridge_add.exports.in [deleted file]
res/res_stasis_playback.c
res/res_stasis_recording.c
res/stasis/control.c
res/stasis/control.h