mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-07-22 11:53:16 +00:00
add some events
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3652 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
ba6fb352a4
commit
809284e703
@ -880,42 +880,71 @@ static void conference_loop(conference_member_t *member)
|
|||||||
for (digit = dtmf; *digit; digit++) {
|
for (digit = dtmf; *digit; digit++) {
|
||||||
switch(*digit) {
|
switch(*digit) {
|
||||||
case '0':
|
case '0':
|
||||||
if (switch_test_flag(member, MFLAG_CAN_SPEAK)) {
|
{
|
||||||
switch_clear_flag_locked(member, MFLAG_CAN_SPEAK | MFLAG_CAN_HEAR);
|
char *action = "mute-member";
|
||||||
if (member->conference->muted_sound) {
|
|
||||||
conference_member_play_file(member, member->conference->muted_sound, 0);
|
if (switch_test_flag(member, MFLAG_CAN_SPEAK)) {
|
||||||
} else {
|
switch_clear_flag_locked(member, MFLAG_CAN_SPEAK | MFLAG_CAN_HEAR);
|
||||||
snprintf(msg, sizeof(msg), "Muted");
|
if (member->conference->muted_sound) {
|
||||||
conference_member_say(member->conference, member, msg, 0);
|
conference_member_play_file(member, member->conference->muted_sound, 0);
|
||||||
}
|
} else {
|
||||||
} else {
|
snprintf(msg, sizeof(msg), "Muted");
|
||||||
switch_set_flag_locked(member, MFLAG_CAN_SPEAK);
|
conference_member_say(member->conference, member, msg, 0);
|
||||||
if (member->conference->unmuted_sound) {
|
}
|
||||||
conference_member_play_file(member, member->conference->unmuted_sound, 0);
|
} else {
|
||||||
} else {
|
switch_set_flag_locked(member, MFLAG_CAN_SPEAK);
|
||||||
snprintf(msg, sizeof(msg), "Un-Muted");
|
if (member->conference->unmuted_sound) {
|
||||||
conference_member_say(member->conference, member, msg, 0);
|
conference_member_play_file(member, member->conference->unmuted_sound, 0);
|
||||||
}
|
} else {
|
||||||
}
|
snprintf(msg, sizeof(msg), "Un-Muted");
|
||||||
break;
|
conference_member_say(member->conference, member, msg, 0);
|
||||||
|
action = "unmute-member";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
|
||||||
|
switch_channel_t *channel = switch_core_session_get_channel(member->session);
|
||||||
|
switch_channel_event_set_data(channel, event);
|
||||||
|
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Conference-Name", member->conference->name);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Member-ID", "%u", member->id);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Action", action);
|
||||||
|
switch_event_fire(&event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
case '*':
|
case '*':
|
||||||
if (switch_test_flag(member, MFLAG_CAN_SPEAK)) {
|
{
|
||||||
switch_clear_flag_locked(member, MFLAG_CAN_SPEAK|MFLAG_CAN_HEAR);
|
char *action = "mute-deaf-member";
|
||||||
if (member->conference->muted_sound) {
|
if (switch_test_flag(member, MFLAG_CAN_SPEAK)) {
|
||||||
conference_member_play_file(member, member->conference->muted_sound, 0);
|
switch_clear_flag_locked(member, MFLAG_CAN_SPEAK|MFLAG_CAN_HEAR);
|
||||||
} else {
|
if (member->conference->muted_sound) {
|
||||||
snprintf(msg, sizeof(msg), "Muted");
|
conference_member_play_file(member, member->conference->muted_sound, 0);
|
||||||
conference_member_say(member->conference, member, msg, 0);
|
} else {
|
||||||
}
|
snprintf(msg, sizeof(msg), "Muted");
|
||||||
} else {
|
conference_member_say(member->conference, member, msg, 0);
|
||||||
switch_set_flag_locked(member, MFLAG_CAN_SPEAK|MFLAG_CAN_HEAR);
|
}
|
||||||
if (member->conference->unmuted_sound) {
|
} else {
|
||||||
conference_member_play_file(member, member->conference->unmuted_sound, 0);
|
switch_set_flag_locked(member, MFLAG_CAN_SPEAK|MFLAG_CAN_HEAR);
|
||||||
} else {
|
if (member->conference->unmuted_sound) {
|
||||||
snprintf(msg, sizeof(msg), "UN-Muted");
|
conference_member_play_file(member, member->conference->unmuted_sound, 0);
|
||||||
conference_member_say(member->conference, member, msg, 0);
|
} else {
|
||||||
}
|
snprintf(msg, sizeof(msg), "UN-Muted");
|
||||||
}
|
conference_member_say(member->conference, member, msg, 0);
|
||||||
|
action = "unmute-deaf-member";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
|
||||||
|
switch_channel_t *channel = switch_core_session_get_channel(member->session);
|
||||||
|
switch_channel_event_set_data(channel, event);
|
||||||
|
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Conference-Name", member->conference->name);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Member-ID", "%u", member->id);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Action", action);
|
||||||
|
switch_event_fire(&event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case '9':
|
case '9':
|
||||||
switch_mutex_lock(member->flag_mutex);
|
switch_mutex_lock(member->flag_mutex);
|
||||||
@ -926,6 +955,17 @@ static void conference_loop(conference_member_t *member)
|
|||||||
switch_mutex_unlock(member->flag_mutex);
|
switch_mutex_unlock(member->flag_mutex);
|
||||||
snprintf(msg, sizeof(msg), "Energy level %d", member->energy_level);
|
snprintf(msg, sizeof(msg), "Energy level %d", member->energy_level);
|
||||||
conference_member_say(member->conference, member, msg, 0);
|
conference_member_say(member->conference, member, msg, 0);
|
||||||
|
|
||||||
|
if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
|
||||||
|
switch_channel_t *channel = switch_core_session_get_channel(member->session);
|
||||||
|
switch_channel_event_set_data(channel, event);
|
||||||
|
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Conference-Name", member->conference->name);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Member-ID", "%u", member->id);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%u", member->energy_level);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Action", "energy-level");
|
||||||
|
switch_event_fire(&event);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case '8':
|
case '8':
|
||||||
switch_mutex_lock(member->flag_mutex);
|
switch_mutex_lock(member->flag_mutex);
|
||||||
@ -933,6 +973,16 @@ static void conference_loop(conference_member_t *member)
|
|||||||
switch_mutex_unlock(member->flag_mutex);
|
switch_mutex_unlock(member->flag_mutex);
|
||||||
snprintf(msg, sizeof(msg), "Energy level %d", member->energy_level);
|
snprintf(msg, sizeof(msg), "Energy level %d", member->energy_level);
|
||||||
conference_member_say(member->conference, member, msg, 0);
|
conference_member_say(member->conference, member, msg, 0);
|
||||||
|
if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
|
||||||
|
switch_channel_t *channel = switch_core_session_get_channel(member->session);
|
||||||
|
switch_channel_event_set_data(channel, event);
|
||||||
|
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Conference-Name", member->conference->name);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Member-ID", "%u", member->id);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%u", member->energy_level);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Action", "energy-level");
|
||||||
|
switch_event_fire(&event);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case '7':
|
case '7':
|
||||||
switch_mutex_lock(member->flag_mutex);
|
switch_mutex_lock(member->flag_mutex);
|
||||||
@ -943,6 +993,16 @@ static void conference_loop(conference_member_t *member)
|
|||||||
switch_mutex_unlock(member->flag_mutex);
|
switch_mutex_unlock(member->flag_mutex);
|
||||||
snprintf(msg, sizeof(msg), "Energy level %d", member->energy_level);
|
snprintf(msg, sizeof(msg), "Energy level %d", member->energy_level);
|
||||||
conference_member_say(member->conference, member, msg, 0);
|
conference_member_say(member->conference, member, msg, 0);
|
||||||
|
if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
|
||||||
|
switch_channel_t *channel = switch_core_session_get_channel(member->session);
|
||||||
|
switch_channel_event_set_data(channel, event);
|
||||||
|
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Conference-Name", member->conference->name);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Member-ID", "%u", member->id);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%u", member->energy_level);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Action", "energy-level");
|
||||||
|
switch_event_fire(&event);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case '3':
|
case '3':
|
||||||
switch_mutex_lock(member->flag_mutex);
|
switch_mutex_lock(member->flag_mutex);
|
||||||
@ -951,6 +1011,16 @@ static void conference_loop(conference_member_t *member)
|
|||||||
switch_mutex_unlock(member->flag_mutex);
|
switch_mutex_unlock(member->flag_mutex);
|
||||||
snprintf(msg, sizeof(msg), "Volume level %d", member->volume_out_level);
|
snprintf(msg, sizeof(msg), "Volume level %d", member->volume_out_level);
|
||||||
conference_member_say(member->conference, member, msg, 0);
|
conference_member_say(member->conference, member, msg, 0);
|
||||||
|
if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
|
||||||
|
switch_channel_t *channel = switch_core_session_get_channel(member->session);
|
||||||
|
switch_channel_event_set_data(channel, event);
|
||||||
|
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Conference-Name", member->conference->name);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Member-ID", "%u", member->id);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%u", member->volume_out_level);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Action", "volume-level");
|
||||||
|
switch_event_fire(&event);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case '2':
|
case '2':
|
||||||
switch_mutex_lock(member->flag_mutex);
|
switch_mutex_lock(member->flag_mutex);
|
||||||
@ -958,6 +1028,16 @@ static void conference_loop(conference_member_t *member)
|
|||||||
switch_mutex_unlock(member->flag_mutex);
|
switch_mutex_unlock(member->flag_mutex);
|
||||||
snprintf(msg, sizeof(msg), "Volume level %d", member->volume_out_level);
|
snprintf(msg, sizeof(msg), "Volume level %d", member->volume_out_level);
|
||||||
conference_member_say(member->conference, member, msg, 0);
|
conference_member_say(member->conference, member, msg, 0);
|
||||||
|
if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
|
||||||
|
switch_channel_t *channel = switch_core_session_get_channel(member->session);
|
||||||
|
switch_channel_event_set_data(channel, event);
|
||||||
|
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Conference-Name", member->conference->name);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Member-ID", "%u", member->id);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%u", member->volume_out_level);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Action", "volume-level");
|
||||||
|
switch_event_fire(&event);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case '1':
|
case '1':
|
||||||
switch_mutex_lock(member->flag_mutex);
|
switch_mutex_lock(member->flag_mutex);
|
||||||
@ -966,6 +1046,16 @@ static void conference_loop(conference_member_t *member)
|
|||||||
switch_mutex_unlock(member->flag_mutex);
|
switch_mutex_unlock(member->flag_mutex);
|
||||||
snprintf(msg, sizeof(msg), "Volume level %d", member->volume_out_level);
|
snprintf(msg, sizeof(msg), "Volume level %d", member->volume_out_level);
|
||||||
conference_member_say(member->conference, member, msg, 0);
|
conference_member_say(member->conference, member, msg, 0);
|
||||||
|
if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
|
||||||
|
switch_channel_t *channel = switch_core_session_get_channel(member->session);
|
||||||
|
switch_channel_event_set_data(channel, event);
|
||||||
|
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Conference-Name", member->conference->name);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Member-ID", "%u", member->id);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%u", member->volume_out_level);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Action", "volume-level");
|
||||||
|
switch_event_fire(&event);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case '6':
|
case '6':
|
||||||
switch_mutex_lock(member->flag_mutex);
|
switch_mutex_lock(member->flag_mutex);
|
||||||
@ -974,6 +1064,16 @@ static void conference_loop(conference_member_t *member)
|
|||||||
switch_mutex_unlock(member->flag_mutex);
|
switch_mutex_unlock(member->flag_mutex);
|
||||||
snprintf(msg, sizeof(msg), "Gain level %d", member->volume_in_level);
|
snprintf(msg, sizeof(msg), "Gain level %d", member->volume_in_level);
|
||||||
conference_member_say(member->conference, member, msg, 0);
|
conference_member_say(member->conference, member, msg, 0);
|
||||||
|
if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
|
||||||
|
switch_channel_t *channel = switch_core_session_get_channel(member->session);
|
||||||
|
switch_channel_event_set_data(channel, event);
|
||||||
|
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Conference-Name", member->conference->name);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Member-ID", "%u", member->id);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%u", member->volume_in_level);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Action", "gain-level");
|
||||||
|
switch_event_fire(&event);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case '5':
|
case '5':
|
||||||
switch_mutex_lock(member->flag_mutex);
|
switch_mutex_lock(member->flag_mutex);
|
||||||
@ -981,6 +1081,16 @@ static void conference_loop(conference_member_t *member)
|
|||||||
switch_mutex_unlock(member->flag_mutex);
|
switch_mutex_unlock(member->flag_mutex);
|
||||||
snprintf(msg, sizeof(msg), "Gain level %d", member->volume_in_level);
|
snprintf(msg, sizeof(msg), "Gain level %d", member->volume_in_level);
|
||||||
conference_member_say(member->conference, member, msg, 0);
|
conference_member_say(member->conference, member, msg, 0);
|
||||||
|
if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
|
||||||
|
switch_channel_t *channel = switch_core_session_get_channel(member->session);
|
||||||
|
switch_channel_event_set_data(channel, event);
|
||||||
|
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Conference-Name", member->conference->name);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Member-ID", "%u", member->id);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%u", member->volume_in_level);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Action", "gain-level");
|
||||||
|
switch_event_fire(&event);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case '4':
|
case '4':
|
||||||
switch_mutex_lock(member->flag_mutex);
|
switch_mutex_lock(member->flag_mutex);
|
||||||
@ -989,6 +1099,16 @@ static void conference_loop(conference_member_t *member)
|
|||||||
switch_mutex_unlock(member->flag_mutex);
|
switch_mutex_unlock(member->flag_mutex);
|
||||||
snprintf(msg, sizeof(msg), "Gain level %d", member->volume_in_level);
|
snprintf(msg, sizeof(msg), "Gain level %d", member->volume_in_level);
|
||||||
conference_member_say(member->conference, member, msg, 0);
|
conference_member_say(member->conference, member, msg, 0);
|
||||||
|
if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT) == SWITCH_STATUS_SUCCESS) {
|
||||||
|
switch_channel_t *channel = switch_core_session_get_channel(member->session);
|
||||||
|
switch_channel_event_set_data(channel, event);
|
||||||
|
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Conference-Name", member->conference->name);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Member-ID", "%u", member->id);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "New-Level", "%u", member->volume_in_level);
|
||||||
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Action", "gain-level");
|
||||||
|
switch_event_fire(&event);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case '#':
|
case '#':
|
||||||
switch_clear_flag_locked(member, MFLAG_RUNNING);
|
switch_clear_flag_locked(member, MFLAG_RUNNING);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user