via: d8ef36edca14b9f4ac11195be10a6583389dc05a (commit)
from: e3eec389b0cabd2e89f4d306c86ca1d27b1100e0 (commit)
= COMMIT LOG ===========================================================
committer: Anthony Minessale
comments:
fire auto gain level events
diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c
index a1dd740..0eb8f3c 100644
--- a/src/mod/applications/mod_conference/mod_conference.c
+++ b/src/mod/applications/mod_conference/mod_conference.c
@@ -195,7 +195,8 @@ typedef enum {
EFLAG_BGDIAL_RESULT = (1 << 24),
EFLAG_FLOOR_CHANGE = (1 << 25),
EFLAG_MUTE_DETECT = (1 << 26),
- EFLAG_RECORD = (1 << 27)
+ EFLAG_RECORD = (1 << 27),
+ EFLAG_AUTO_GAIN_LEVEL = (1 << 28)
} event_type_t;
typedef struct conference_file_node {
@@ -2049,7 +2050,7 @@ static void clear_avg(conference_member_t *member)
static void check_agc_levels(conference_member_t *member)
{
- int x = 0;
+ int x = 0, y = member->agc_volume_in_level;
if (!member->avg_score) return;
@@ -2064,6 +2065,8 @@ static void check_agc_levels(conference_member_t *member)
}
if (x) {
+ switch_event_t *event;
+
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG7,
"AGC %s:%d diff:%d level:%d cur:%d avg:%d vol:%d %s\n",
member->conference->name,
@@ -2071,6 +2074,17 @@ static void check_agc_levels(conference_member_t *member)
member->score, member->avg_score, member->agc_volume_in_level, x > 0 ? "+++" : "---");
clear_avg(member);
+
+
+ if (test_eflag(member->conference, EFLAG_AUTO_GAIN_LEVEL) &&
+ switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
+ conference_add_event_member_data(member, event);
+ switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "auto-gain-level");
+ switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Old-Level", "%d", y);
+ switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%d", member->agc_volume_in_level);
+ switch_event_fire(&event);
+ }
+
}
}
Summary of changes: .../applications/mod_conference/mod_conference.c | 18 ++++++++++++++++-- 1 files changed, 16 insertions(+), 2 deletions(-)
this email was generated because of /git/your-repo.git/hooks/post-receive by the file /git-core/contrib/hooks/post-receive-email
For more info, see http://blog.chomperstomp.com/?p=630
--
FreeSWITCH Source