The patch attached to this email adds the option to kick all members
of a conference, by using the "NConference kick _conf_ all" command.
This patch also applies to the trunk version, but I have only used it
with the 1.2 branch.
Index: conference.c
===================================================================
--- conference.c (revision 4731)
+++ conference.c (working copy)
@@ -138,6 +138,19 @@
member = member->next ;
}
break;
+ case CONF_ACTION_KICK_ALL:
+ member = conf->memberlist;
+ while (member != NULL)
+ {
+ cw_mutex_lock( &member->lock ) ;
+ queue_incoming_silent_frame(member,2);
+ /* We don't play a sound, since all will leave. */
+ member->force_remove_flag = 1;
+ cw_log(CW_CONF_DEBUG,"(CQ) Conf %s Member Kicked: %s\n",conf->name, member->chan->name);
+ cw_mutex_unlock( &member->lock ) ;
+ member = member->next;
+ }
+ break;
case CONF_ACTION_ENABLE_SOUNDS:
// get list of conference members
member = conf->memberlist ;
Index: cli.c
===================================================================
--- cli.c (revision 4731)
+++ cli.c (working copy)
@@ -272,14 +272,15 @@
}
else if ( !strcmp(argv[1], "kick") ) {
- if ( member == NULL ) {
- cw_cli(fd, "Conference: %s - Member is not correct.\n", conf->name);
- }
+ if ( member == NULL )
+ add_command_to_queue( conf, NULL, CONF_ACTION_KICK_ALL, 0, "" );
else
{
+ cw_mutex_lock(&member->lock);
queue_incoming_silent_frame(member,5);
conference_queue_sound( member, "conf-kicked" );
member->force_remove_flag = 1;
+ cw_mutex_unlock(&member->lock);
cw_cli(fd, "Conference: %s - Member %s has been kicked.\n", conf->name, member->chan->name);
}
}
Index: conference.h
===================================================================
--- conference.h (revision 4731)
+++ conference.h (working copy)
@@ -26,7 +26,8 @@
CONF_ACTION_MUTE_ALL,
CONF_ACTION_QUEUE_SOUND,
CONF_ACTION_QUEUE_NUMBER,
- CONF_ACTION_PLAYMOH
+ CONF_ACTION_PLAYMOH,
+ CONF_ACTION_KICK_ALL
};
struct cw_conf_command_queue
_______________________________________________
Callweaver-dev mailing list
[email protected]
http://lists.callweaver.org/mailman/listinfo/callweaver-dev