From e4f6ef985efdf60a05a86b50ed8dfdc7ef787b8d Mon Sep 17 00:00:00 2001 From: Josh Roberson Date: Fri, 14 Jan 2005 04:25:35 +0000 Subject: [PATCH] Add meetme option to kick last user (bug #2491 with slight modification) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4785 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_meetme.c | 28 +++++++++++++++++++++++++--- sounds.txt | 2 +- sounds/conf-adminmenu.gsm | Bin 11187 -> 15642 bytes 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/apps/app_meetme.c b/apps/app_meetme.c index b4eec30381..887ac4ce1f 100755 --- a/apps/app_meetme.c +++ b/apps/app_meetme.c @@ -91,6 +91,7 @@ static char *descrip3 = " MeetMeAdmin(confno,command[,user]): Run admin command for conference\n" " 'K' -- Kick all users out of conference\n" " 'k' -- Kick one user out of conference\n" +" 'e' -- Eject last user that joined\n" " 'L' -- Lock conference\n" " 'l' -- Unlock conference\n" " 'M' -- Mute conference\n" @@ -500,6 +501,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c { struct ast_conference *prev=NULL, *cur; struct ast_conf_user *user = malloc(sizeof(struct ast_conf_user)); + struct ast_conf_user *usr = NULL; int fd; struct zt_confinfo ztc; struct ast_frame *f; @@ -873,9 +875,9 @@ zapretry: if (!menu_active) { menu_active = 1; /* Record this sound! */ - if (!ast_streamfile(chan, "conf-adminmenu", chan->language)) + if (!ast_streamfile(chan, "conf-adminmenu", chan->language)) dtmf = ast_waitstream(chan, AST_DIGIT_ANY); - else + else dtmf = 0; } else dtmf = f->subclass; @@ -915,6 +917,16 @@ zapretry: ast_waitstream(chan, ""); } break; + case '6': /* Eject last user */ + menu_active = 0; + usr = conf->lastuser; + if ((usr->chan->name == chan->name)||(usr->userflags & CONFFLAG_ADMIN)) { + if(!ast_streamfile(chan, "conf-errormenu", chan->language)) + ast_waitstream(chan, ""); + } else + usr->adminflags |= ADMINFLAG_KICKME; + ast_stopstream(chan); + break; default: menu_active = 0; /* Play an error message! */ @@ -1538,11 +1550,21 @@ static int admin_exec(struct ast_channel *chan, void *data) { } } break; + case 101: /* e: Eject last user*/ + user = cnf->lastuser; + if (!(user->userflags & CONFFLAG_ADMIN)) { + user->adminflags |= ADMINFLAG_KICKME; + break; + } else + ast_log(LOG_NOTICE, "Not kicking last user, is an Admin!\n"); + } + break; + case 77: /* M: Mute */ if (user) { user->adminflags |= ADMINFLAG_MUTED; } else { - ast_log(LOG_NOTICE, "Specified User not found!"); + ast_log(LOG_NOTICE, "Specified User not found!\n"); } break; case 78: /* N: Mute all users */ diff --git a/sounds.txt b/sounds.txt index 7f73742141..5c5c1ea05c 100755 --- a/sounds.txt +++ b/sounds.txt @@ -647,7 +647,7 @@ %conf-kicked.gsm%You have been kicked from this conference -%conf-adminmenu.gsm%Please press 1 to mute or unmute yourself, or press 2 to lock or unlock the conference +%conf-adminmenu.gsm%Please press 1 to mute or unmute yourself, or press 2 to lock or unlock the conference, or press 6 to kick the last user %conf-usermenu.gsm%Please press 1 to mute or unmute yourself diff --git a/sounds/conf-adminmenu.gsm b/sounds/conf-adminmenu.gsm index ba5301717ecca001edee8ce1a29364af036ddb09..3222995b5e0b99099b73afddf2d46477f4c7677a 100755 GIT binary patch delta 4498 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 Ws3WG#5f!_a7p!?~>;k4cK>iP~pYGWJ delta 7 OcmbPLwK;slW^Diul>@B+