@ -1285,6 +1285,7 @@ int control_swap_channel_in_bridge(struct stasis_app_control *control, struct as
{
{
int res ;
int res ;
struct ast_bridge_features * features ;
struct ast_bridge_features * features ;
int flags = AST_BRIDGE_IMPART_CHAN_DEPARTABLE ;
if ( ! control | | ! bridge ) {
if ( ! control | | ! bridge ) {
return - 1 ;
return - 1 ;
@ -1332,6 +1333,9 @@ int control_swap_channel_in_bridge(struct stasis_app_control *control, struct as
/* Pull bridge features from the control */
/* Pull bridge features from the control */
features = control - > bridge_features ;
features = control - > bridge_features ;
control - > bridge_features = NULL ;
control - > bridge_features = NULL ;
if ( features & & features - > inhibit_colp ) {
flags | = AST_BRIDGE_IMPART_INHIBIT_JOIN_COLP ;
}
ast_assert ( stasis_app_get_bridge ( control ) = = NULL ) ;
ast_assert ( stasis_app_get_bridge ( control ) = = NULL ) ;
/* We need to set control->bridge here since bridge_after_cb may be run
/* We need to set control->bridge here since bridge_after_cb may be run
@ -1349,7 +1353,7 @@ int control_swap_channel_in_bridge(struct stasis_app_control *control, struct as
chan ,
chan ,
swap ,
swap ,
features , /* features */
features , /* features */
AST_BRIDGE_IMPART_CHAN_DEPARTABLE ) ;
flags ) ;
if ( res ! = 0 ) {
if ( res ! = 0 ) {
/* ast_bridge_impart failed before it could spawn the depart
/* ast_bridge_impart failed before it could spawn the depart
* thread . The callbacks aren ' t called in this case .
* thread . The callbacks aren ' t called in this case .
@ -1469,6 +1473,12 @@ void stasis_app_control_mute_in_bridge(
control - > bridge_features - > mute = mute ;
control - > bridge_features - > mute = mute ;
}
}
void stasis_app_control_inhibit_colp_in_bridge (
struct stasis_app_control * control , int inhibit_colp )
{
control - > bridge_features - > inhibit_colp = inhibit_colp ;
}
void control_flush_queue ( struct stasis_app_control * control )
void control_flush_queue ( struct stasis_app_control * control )
{
{
struct ao2_iterator iter ;
struct ao2_iterator iter ;