mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
ARI: Ability to inhibit COLP frames when adding channels to a bridge
This patch adds a new flag "inhibitConnectedLineUpdates" to the 'addChannel' operation in the Bridges REST API. When set, this flag avoids generating COLP frames when the specified channels enter the bridge. ASTERISK-28629 Change-Id: Ib995d4f0c6106279aa448b34b042b68f0f2ca5dc
This commit is contained in:
committed by
Joshua C. Colp
parent
987e10c75f
commit
034ac357ad
@@ -1285,6 +1285,7 @@ int control_swap_channel_in_bridge(struct stasis_app_control *control, struct as
|
||||
{
|
||||
int res;
|
||||
struct ast_bridge_features *features;
|
||||
int flags = AST_BRIDGE_IMPART_CHAN_DEPARTABLE;
|
||||
|
||||
if (!control || !bridge) {
|
||||
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 */
|
||||
features = control->bridge_features;
|
||||
control->bridge_features = NULL;
|
||||
if (features && features->inhibit_colp) {
|
||||
flags |= AST_BRIDGE_IMPART_INHIBIT_JOIN_COLP;
|
||||
}
|
||||
|
||||
ast_assert(stasis_app_get_bridge(control) == NULL);
|
||||
/* 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,
|
||||
swap,
|
||||
features, /* features */
|
||||
AST_BRIDGE_IMPART_CHAN_DEPARTABLE);
|
||||
flags);
|
||||
if (res != 0) {
|
||||
/* ast_bridge_impart failed before it could spawn the depart
|
||||
* 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;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
struct ao2_iterator iter;
|
||||
|
Reference in New Issue
Block a user