提交 7aa97b76 authored 作者: Mike Jerris's avatar Mike Jerris

Merge pull request #958 in FS/freeswitch from ~LAZEDO/freeswitch:feature/FS-9518 to master

* commit '03e87faa':
  FS-9518 [mod_conference] allow deaf only command in caller-controls
......@@ -67,7 +67,10 @@ struct _mapping control_mappings[] = {
{"execute_application", conference_loop_exec_app},
{"floor", conference_loop_floor_toggle},
{"vid-floor", conference_loop_vid_floor_toggle},
{"vid-floor-force", conference_loop_vid_floor_force}
{"vid-floor-force", conference_loop_vid_floor_force},
{"deaf", conference_loop_deaf_toggle},
{"deaf on", conference_loop_deaf_on},
{"deaf off", conference_loop_deaf_off}
};
int conference_loop_mapping_len()
......@@ -228,6 +231,38 @@ void conference_loop_lock_toggle(conference_member_t *member, caller_control_act
}
void conference_loop_deaf_toggle(conference_member_t *member, caller_control_action_t *action)
{
if (member == NULL)
return;
if (conference_utils_member_test_flag(member, MFLAG_CAN_HEAR)) {
conference_api_sub_deaf(member, NULL, NULL);
} else {
conference_api_sub_undeaf(member, NULL, NULL);
}
}
void conference_loop_deaf_on(conference_member_t *member, caller_control_action_t *action)
{
if (member == NULL)
return;
if (conference_utils_member_test_flag(member, MFLAG_CAN_HEAR)) {
conference_api_sub_deaf(member, NULL, NULL);
}
}
void conference_loop_deaf_off(conference_member_t *member, caller_control_action_t *action)
{
if (member == NULL)
return;
if (!conference_utils_member_test_flag(member, MFLAG_CAN_HEAR)) {
conference_api_sub_undeaf(member, NULL, NULL);
}
}
void conference_loop_deafmute_toggle(conference_member_t *member, caller_control_action_t *action)
{
if (member == NULL)
......
......@@ -1151,6 +1151,9 @@ void conference_loop_mute_off(conference_member_t *member, caller_control_action
void conference_loop_event(conference_member_t *member, caller_control_action_t *action);
void conference_loop_transfer(conference_member_t *member, caller_control_action_t *action);
void conference_loop_exec_app(conference_member_t *member, caller_control_action_t *action);
void conference_loop_deaf_toggle(conference_member_t *member, caller_control_action_t *action);
void conference_loop_deaf_on(conference_member_t *member, caller_control_action_t *action);
void conference_loop_deaf_off(conference_member_t *member, caller_control_action_t *action);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论