Fix CLI "bridge kick <bridge> <channel>" to check if the bridge needs dissolving.
authorRichard Mudgett <rmudgett@digium.com>
Fri, 16 Aug 2013 20:48:13 +0000 (20:48 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Fri, 16 Aug 2013 20:48:13 +0000 (20:48 +0000)
commit35b9c6a660236e23e6b9102cc641ab11e967a25a
treeaa2856e4d3e9b1352296d4bfdff2af8a005e4835
parent6399836f9b14ce180d2c15985cf59b23fdceb07b
Fix CLI "bridge kick <bridge> <channel>" to check if the bridge needs dissolving.

SIP/foo -- Local;1==Local;2 -- .... -- Local;1==Local;2 -- SIP/bar
Kick a ;1 channel and the chain toward SIP/foo goes away.
Kick a ;2 channel and the chain toward SIP/bar goes away.

This can leave a local channel chain between the kicked ;1 and ;2 channels
that are orphaned until you manually request one of those channels to
hangup or request the bridge to dissolve.

* Added ast_bridge_kick() as a companion to ast_bridge_remove().  The
functional difference is that ast_bridge_kick() may dissolve the bridge as
a result of the channel leaving the bridge.

* Made CLI "bridge kick <bridge> <channel>" use ast_bridge_kick() instead
of ast_bridge_remove() so the bridge can dissolve if needed.

* Renamed bridge_channel_handle_hangup() to ast_bridge_channel_kick() and
made it accessible to other files.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396877 65c4cc65-6c06-0410-ace0-fbb531ad65f3
include/asterisk/bridge.h
include/asterisk/bridge_channel.h
main/bridge.c
main/bridge_channel.c