diff options
author | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-10-18 22:19:57 +0000 |
---|---|---|
committer | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-10-18 22:19:57 +0000 |
commit | 776e8e675ac90050fe393fcc096587b15ab520ea (patch) | |
tree | bd57d4a9a6f7d8d00077f6d387241dfd682e715f | |
parent | fb300e06120797c11db424325706c58885e2bb14 (diff) |
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: http://svn.digium.com/svn/asterisk/trunk@45610 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | CHANGES | 2 | ||||
-rw-r--r-- | apps/app_meetme.c | 17 |
2 files changed, 15 insertions, 4 deletions
@@ -40,3 +40,5 @@ Changes since Asterisk 1.4-beta was branched: * Extend CALLERID() function with "pres" and "ton" parameters to fetch string representation of calling number presentation indicator and numeric representation of type of calling number value. + * Added 'C' option to Meetme which causes a caller to continue in the dialplan + when kicked out. diff --git a/apps/app_meetme.c b/apps/app_meetme.c index 58c5f6e81..d25ab54ea 100644 --- a/apps/app_meetme.c +++ b/apps/app_meetme.c @@ -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; } |