]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
supress talk start/stop events during mute but still send mute-detect events
authorAnthony Minessale <anthony.minessale@gmail.com>
Thu, 30 Jul 2009 17:21:52 +0000 (17:21 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Thu, 30 Jul 2009 17:21:52 +0000 (17:21 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@14432 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/applications/mod_conference/mod_conference.c

index 256c523cd1db8ecaecabafeb51dde7c99455b719..4e61e78fa08857c4e337b3fc5eb25e395e72796a 100644 (file)
@@ -1825,7 +1825,7 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, v
                                                }
                                                switch_mutex_unlock(member->conference->member_mutex);
 
-                                               if (test_eflag(member->conference, EFLAG_START_TALKING) &&
+                                               if (test_eflag(member->conference, EFLAG_START_TALKING) && switch_test_flag(member, MFLAG_CAN_SPEAK) &&
                                                        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", "start-talking");
@@ -1853,7 +1853,7 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, v
                                if (hangunder_hits) {
                                        hangunder_hits--;
                                }
-                               if (switch_test_flag(member, MFLAG_TALKING)) {
+                               if (switch_test_flag(member, MFLAG_TALKING) && switch_test_flag(member, MFLAG_CAN_SPEAK) {
                                        switch_event_t *event;
                                        if (++hangover_hits >= hangover) {
                                                hangover_hits = hangunder_hits = 0;