mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-23 05:40:52 +00:00
Just for Nicholson - here's an option, C, to Meetme that will allow it to continue in the dialplan if the person is kicked out. (issue #7994 reported by mnicholson with mods by myself)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45610 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -153,7 +153,9 @@ enum {
|
||||
/*! If set, the user is a shared line appearance trunk */
|
||||
CONFFLAG_SLA_TRUNK = (1 << 26),
|
||||
/*! If set, the user has put us on hold */
|
||||
CONFFLAG_HOLD = (1 << 27)
|
||||
CONFFLAG_HOLD = (1 << 27),
|
||||
/*! If set, the user should continue in the dialplan if kicked out */
|
||||
CONFFLAG_KICK_CONTINUE = (1 << 28)
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -166,6 +168,7 @@ AST_APP_OPTIONS(meetme_opts, {
|
||||
AST_APP_OPTION('a', CONFFLAG_ADMIN ),
|
||||
AST_APP_OPTION('b', CONFFLAG_AGI ),
|
||||
AST_APP_OPTION('c', CONFFLAG_ANNOUNCEUSERCOUNT ),
|
||||
AST_APP_OPTION('C', CONFFLAG_KICK_CONTINUE),
|
||||
AST_APP_OPTION('D', CONFFLAG_DYNAMICPIN ),
|
||||
AST_APP_OPTION('d', CONFFLAG_DYNAMIC ),
|
||||
AST_APP_OPTION('E', CONFFLAG_EMPTYNOPIN ),
|
||||
@@ -219,6 +222,7 @@ static const char *descrip =
|
||||
" Default: conf-background.agi (Note: This does not work with\n"
|
||||
" non-Zap channels in the same conference)\n"
|
||||
" 'c' -- announce user(s) count on joining a conference\n"
|
||||
" 'C' -- continue in dialplan when kicked out of conference\n"
|
||||
" 'd' -- dynamically add conference\n"
|
||||
" 'D' -- dynamically add conference, prompting for a PIN\n"
|
||||
" 'e' -- select an empty conference\n"
|
||||
@@ -1406,9 +1410,11 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c
|
||||
if (!(confflags & CONFFLAG_QUIET))
|
||||
if (!ast_streamfile(chan, "conf-leaderhasleft", chan->language))
|
||||
ast_waitstream(chan, "");
|
||||
if(confflags & CONFFLAG_MARKEDEXIT)
|
||||
if (confflags & CONFFLAG_MARKEDEXIT) {
|
||||
if (confflags & CONFFLAG_KICK_CONTINUE)
|
||||
ret = 0;
|
||||
break;
|
||||
else {
|
||||
} else {
|
||||
ztc.confmode = ZT_CONF_CONF;
|
||||
if (ioctl(fd, ZT_SETCONF, &ztc)) {
|
||||
ast_log(LOG_WARNING, "Error setting conference\n");
|
||||
@@ -1471,7 +1477,10 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c
|
||||
|
||||
/* Leave if the last marked user left */
|
||||
if (currentmarked == 0 && lastmarked != 0 && (confflags & CONFFLAG_MARKEDEXIT)) {
|
||||
ret = -1;
|
||||
if (confflags & CONFFLAG_KICK_CONTINUE)
|
||||
ret = 0;
|
||||
else
|
||||
ret = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user