]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix mute
authorAnthony Minessale <anthony.minessale@gmail.com>
Sat, 27 Jan 2007 16:37:10 +0000 (16:37 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Sat, 27 Jan 2007 16:37:10 +0000 (16:37 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4067 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/applications/mod_conference/mod_conference.c

index bbf5b23d524a983b3ef89a388608719c273914e2..cd491b1fa0f47f793fe221db91c9adf3c0d3bd78 100644 (file)
@@ -911,6 +911,9 @@ static void conference_loop_fn_mute_toggle(conference_member_t *member, void *da
                        conf_api_sub_mute(member, NULL, NULL);
                } else {
                        conf_api_sub_unmute(member, NULL, NULL);
+            if (!switch_test_flag(member, MFLAG_CAN_HEAR)) {
+                conf_api_sub_undeaf(member, NULL, NULL);
+            }
                }
        }
 }
@@ -920,10 +923,14 @@ static void conference_loop_fn_deafmute_toggle(conference_member_t *member, void
        if (member != NULL) {
                if (switch_test_flag(member, MFLAG_CAN_SPEAK)) {
                        conf_api_sub_mute(member, NULL, NULL);
-                       conf_api_sub_deaf(member, NULL, NULL);
+            if (switch_test_flag(member, MFLAG_CAN_HEAR)) {
+                conf_api_sub_deaf(member, NULL, NULL);
+            }
                } else {
                        conf_api_sub_unmute(member, NULL, NULL);
-                       conf_api_sub_undeaf(member, NULL, NULL);
+            if (!switch_test_flag(member, MFLAG_CAN_HEAR)) {
+                conf_api_sub_undeaf(member, NULL, NULL);
+            }
                }
        }
 }