diff options
author | Joshua Colp <jcolp@digium.com> | 2017-07-26 08:31:13 -0500 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2017-07-26 08:31:13 -0500 |
commit | b610295b62abfdcac068b2fe1406ba74df8a00b5 (patch) | |
tree | b9e3101f829ba692d9bac4376e8a4d523c6c9410 /apps | |
parent | 7ea6c66968146a79869ca6813818be1c6728183d (diff) | |
parent | 680c491a6238274132bff3608ae17b1371c2af2a (diff) |
Merge "bridge_softmix / res_rtp_asterisk: Fix packet loss and renegotiation issues."
Diffstat (limited to 'apps')
-rw-r--r-- | apps/app_confbridge.c | 1 | ||||
-rw-r--r-- | apps/confbridge/conf_config_parser.c | 13 | ||||
-rw-r--r-- | apps/confbridge/include/confbridge.h | 1 |
3 files changed, 15 insertions, 0 deletions
diff --git a/apps/app_confbridge.c b/apps/app_confbridge.c index c6372fa2f..b2d612df3 100644 --- a/apps/app_confbridge.c +++ b/apps/app_confbridge.c @@ -1485,6 +1485,7 @@ static struct confbridge_conference *join_conference_bridge(const char *conferen ast_bridge_set_talker_src_video_mode(conference->bridge); } else if (ast_test_flag(&conference->b_profile, BRIDGE_OPT_VIDEO_SRC_SFU)) { ast_bridge_set_sfu_video_mode(conference->bridge); + ast_bridge_set_video_update_discard(conference->bridge, conference->b_profile.video_update_discard); } /* Link it into the conference bridges container */ diff --git a/apps/confbridge/conf_config_parser.c b/apps/confbridge/conf_config_parser.c index cc8fcfe5d..bfd9f4f56 100644 --- a/apps/confbridge/conf_config_parser.c +++ b/apps/confbridge/conf_config_parser.c @@ -450,6 +450,16 @@ </enumlist> </description> </configOption> + <configOption name="video_update_discard" default="2000"> + <synopsis>Sets the amount of time in milliseconds after sending a video update to discard subsequent video updates</synopsis> + <description><para> + Sets the amount of time in milliseconds after sending a video update request + that subsequent video updates should be discarded. This means that if we + send a video update we will discard any other video update requests until + after the configured amount of time has elapsed. This prevents flooding of + video update requests from clients. + </para></description> + </configOption> <configOption name="template"> <synopsis>When using the CONFBRIDGE dialplan function, use a bridge profile as a template for creating a new temporary profile</synopsis> </configOption> @@ -1652,6 +1662,8 @@ static char *handle_cli_confbridge_show_bridge_profile(struct ast_cli_entry *e, break; } + ast_cli(a->fd,"Video Update Discard: %u\n", b_profile.video_update_discard); + ast_cli(a->fd,"sound_only_person: %s\n", conf_get_sound(CONF_SOUND_ONLY_PERSON, b_profile.sounds)); ast_cli(a->fd,"sound_only_one: %s\n", conf_get_sound(CONF_SOUND_ONLY_ONE, b_profile.sounds)); ast_cli(a->fd,"sound_has_joined: %s\n", conf_get_sound(CONF_SOUND_HAS_JOINED, b_profile.sounds)); @@ -2220,6 +2232,7 @@ int conf_load_config(void) aco_option_register(&cfg_info, "regcontext", ACO_EXACT, bridge_types, NULL, OPT_CHAR_ARRAY_T, 0, CHARFLDSET(struct bridge_profile, regcontext)); aco_option_register(&cfg_info, "language", ACO_EXACT, bridge_types, "en", OPT_CHAR_ARRAY_T, 0, CHARFLDSET(struct bridge_profile, language)); aco_option_register_custom(&cfg_info, "^sound_", ACO_REGEX, bridge_types, NULL, sound_option_handler, 0); + aco_option_register(&cfg_info, "video_update_discard", ACO_EXACT, bridge_types, "2000", OPT_UINT_T, 0, FLDSET(struct bridge_profile, video_update_discard)); /* This option should only be used with the CONFBRIDGE dialplan function */ aco_option_register_custom(&cfg_info, "template", ACO_EXACT, bridge_types, NULL, bridge_template_handler, 0); diff --git a/apps/confbridge/include/confbridge.h b/apps/confbridge/include/confbridge.h index cf30d5c62..adf9b867d 100644 --- a/apps/confbridge/include/confbridge.h +++ b/apps/confbridge/include/confbridge.h @@ -218,6 +218,7 @@ struct bridge_profile { unsigned int mix_interval; /*!< The internal mixing interval used by the bridge. When set to 0 the bridgewill use a default interval. */ struct bridge_profile_sounds *sounds; char regcontext[AST_MAX_CONTEXT]; + unsigned int video_update_discard; /*!< Amount of time after sending a video update request that subsequent requests should be discarded */ }; /*! \brief The structure that represents a conference bridge */ |