]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
clear talk flag when you mute
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 3 Mar 2011 23:59:59 +0000 (17:59 -0600)
committerAnthony Minessale <anthm@freeswitch.org>
Thu, 3 Mar 2011 23:59:59 +0000 (17:59 -0600)
src/mod/applications/mod_conference/mod_conference.c

index 7ab57b2dd57dd92cbf4e9356a018c19d7212782f..838d1cbb9b014f4d57d2c1531d402b64953bd8fc 100644 (file)
@@ -3549,6 +3549,9 @@ static switch_status_t conf_api_sub_mute(conference_member_t *member, switch_str
                return SWITCH_STATUS_GENERR;
 
        switch_clear_flag_locked(member, MFLAG_CAN_SPEAK);
+       switch_clear_flag_locked(member, MFLAG_TALKING);
+
+
        if (!zstr(member->conference->muted_sound)) {
                conference_member_play_file(member, member->conference->muted_sound, 0);
        } else {
@@ -4344,6 +4347,7 @@ static switch_status_t conf_api_sub_relate(conference_obj_t *conference, switch_
                                switch_set_flag(rel, RFLAG_CAN_SPEAK | RFLAG_CAN_HEAR);
                                if (nospeak) {
                                        switch_clear_flag(rel, RFLAG_CAN_SPEAK);
+                                       switch_clear_flag_locked(member, MFLAG_TALKING);
                                }
                                if (nohear) {
                                        switch_clear_flag(rel, RFLAG_CAN_HEAR);
@@ -5279,6 +5283,7 @@ static void set_mflags(const char *flags, member_flag_t *f)
                for (i = 0; i < argc && argv[i]; i++) {
                        if (!strcasecmp(argv[i], "mute")) {
                                *f &= ~MFLAG_CAN_SPEAK;
+                               *f &= ~MFLAG_TALKING;
                        } else if (!strcasecmp(argv[i], "deaf")) {
                                *f &= ~MFLAG_CAN_HEAR;
                        } else if (!strcasecmp(argv[i], "waste")) {