]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add tmute command
authorAnthony Minessale <anthm@freeswitch.org>
Mon, 27 Aug 2012 22:51:02 +0000 (17:51 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Mon, 27 Aug 2012 22:51:07 +0000 (17:51 -0500)
src/mod/applications/mod_conference/mod_conference.c

index cd6ca741e2a4e28acb561191bad4b8c79904f997..cd3a7d0504edb72a60c387d9c495555763daf528 100644 (file)
@@ -518,6 +518,7 @@ typedef switch_status_t (*conf_api_text_cmd_t) (conference_obj_t *, switch_strea
 
 static void conference_member_itterator(conference_obj_t *conference, switch_stream_handle_t *stream, uint8_t non_mod, conf_api_member_cmd_t pfncallback, void *data);
 static switch_status_t conf_api_sub_mute(conference_member_t *member, switch_stream_handle_t *stream, void *data);
+static switch_status_t conf_api_sub_tmute(conference_member_t *member, switch_stream_handle_t *stream, void *data);
 static switch_status_t conf_api_sub_unmute(conference_member_t *member, switch_stream_handle_t *stream, void *data);
 static switch_status_t conf_api_sub_deaf(conference_member_t *member, switch_stream_handle_t *stream, void *data);
 static switch_status_t conf_api_sub_undeaf(conference_member_t *member, switch_stream_handle_t *stream, void *data);
@@ -4636,6 +4637,20 @@ static switch_status_t conf_api_sub_mute(conference_member_t *member, switch_str
        return SWITCH_STATUS_SUCCESS;
 }
 
+
+static switch_status_t conf_api_sub_tmute(conference_member_t *member, switch_stream_handle_t *stream, void *data)
+{
+
+       if (member == NULL)
+               return SWITCH_STATUS_GENERR;
+
+       if (switch_test_flag(member, MFLAG_CAN_SPEAK)) {
+               return conf_api_sub_mute(member, stream, data);
+       }
+
+       return conf_api_sub_unmute(member, stream, data);
+}
+
 static switch_status_t conf_api_sub_agc(conference_obj_t *conference, switch_stream_handle_t *stream, int argc, char **argv)
 {
        int level;
@@ -6253,6 +6268,7 @@ static api_command_t conf_api_sub_commands[] = {
        {"kick", (void_fn_t) & conf_api_sub_kick, CONF_API_SUB_MEMBER_TARGET, "kick", "<[member_id|all|last|non_moderator]> [<optional sound file>]"},
        {"hup", (void_fn_t) & conf_api_sub_hup, CONF_API_SUB_MEMBER_TARGET, "hup", "<[member_id|all|last|non_moderator]>"},
        {"mute", (void_fn_t) & conf_api_sub_mute, CONF_API_SUB_MEMBER_TARGET, "mute", "<[member_id|all]|last|non_moderator>"},
+       {"tmute", (void_fn_t) & conf_api_sub_tmute, CONF_API_SUB_MEMBER_TARGET, "tmute", "<[member_id|all]|last|non_moderator>"},
        {"unmute", (void_fn_t) & conf_api_sub_unmute, CONF_API_SUB_MEMBER_TARGET, "unmute", "<[member_id|all]|last|non_moderator>"},
        {"deaf", (void_fn_t) & conf_api_sub_deaf, CONF_API_SUB_MEMBER_TARGET, "deaf", "<[member_id|all]|last|non_moderator>"},
        {"undeaf", (void_fn_t) & conf_api_sub_undeaf, CONF_API_SUB_MEMBER_TARGET, "undeaf", "<[member_id|all]|last|non_moderator>"},