dect
/
asterisk
Archived
13
0
Fork 0

Make menu interruptible (bug #2377), Also fix PBX "add extension" CLI (bug #2289)

git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3732 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
markster 2004-09-07 01:22:57 +00:00
parent 2184e52764
commit 53a61fb2b7
3 changed files with 32 additions and 15 deletions

View File

@ -5,7 +5,7 @@
*
* Copyright (C) 1999-2004, Digium, Inc.
*
* Mark Spencer <markster@linux-support.net>
* Mark Spencer <markster@digium.com>
*
* This program is free software, distributed under the terms of
* the GNU General Public License
@ -511,6 +511,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c
char *agifiledefault = "conf-background.agi";
char meetmesecs[30] = "";
char exitcontext[AST_MAX_EXTENSION] = "";
int dtmf;
ZT_BUFFERINFO bi;
char __buf[CONF_SIZE + AST_FRIENDLY_OFFSET];
@ -840,10 +841,14 @@ zapretry:
menu_active = 1;
/* Record this sound! */
if (!ast_streamfile(chan, "conf-adminmenu", chan->language))
ast_waitstream(chan, "");
} else {
switch(f->subclass - 48) {
case 1: /* Un/Mute */
dtmf = ast_waitstream(chan, AST_DIGIT_ANY);
else
dtmf = 0;
} else
dtmf = f->subclass;
if (dtmf) {
switch(dtmf) {
case '1': /* Un/Mute */
menu_active = 0;
if (ztc.confmode & ZT_CONF_TALKER) {
ztc.confmode = ZT_CONF_CONF | ZT_CONF_LISTENER;
@ -865,7 +870,7 @@ zapretry:
ast_waitstream(chan, "");
}
break;
case 2: /* Un/Lock the Conference */
case '2': /* Un/Lock the Conference */
menu_active = 0;
if (conf->locked) {
conf->locked = 0;
@ -891,10 +896,14 @@ zapretry:
menu_active = 1;
/* Record this sound! */
if (!ast_streamfile(chan, "conf-usermenu", chan->language))
ast_waitstream(chan, "");
} else {
switch(f->subclass - 48) {
case 1: /* Un/Mute */
dtmf = ast_waitstream(chan, AST_DIGIT_ANY);
else
dtmf = 0;
} else
dtmf = f->subclass;
if (dtmf) {
switch(dtmf) {
case '1': /* Un/Mute */
menu_active = 0;
if (ztc.confmode & ZT_CONF_TALKER) {
ztc.confmode = ZT_CONF_CONF | ZT_CONF_LISTENER;

View File

@ -1195,13 +1195,21 @@ static int handle_context_add_extension(int fd, int argc, char *argv[])
}
}
}
app = strsep(&whole_exten, ",");
app = whole_exten;
if (app && (start = strchr(app, '(')) && (end = strrchr(app, ')'))) {
*start = *end = '\0';
app_data = start + 1;
process_quotes_and_slashes(app_data, ',', '|');
} else
app_data = whole_exten;
} else {
if (app) {
app_data = strchr(app, ',');
if (app_data) {
*app_data = '\0';
app_data++;
}
} else
app_data = NULL;
}
if (!exten || !prior || !app || (!app_data && iprior != PRIORITY_HINT)) return RESULT_SHOWUSAGE;

View File

@ -3,9 +3,9 @@
*
* Routines implementing music on hold
*
* Copyright (C) 1999, Mark Spencer
* Copyright (C) 1999-2004, Digium, Inc.
*
* Mark Spencer <markster@linux-support.net>
* Mark Spencer <markster@digium.com>
*
* This program is free software, distributed under the terms of
* the GNU General Public License