aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-09-15 22:06:30 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-09-15 22:06:30 +0000
commitcac82edb73d961c454796be1febcdaaac83fe6e3 (patch)
tree8349861c76a0dfc466e6d2f7e7c8351f5e71e119
parenta3325e5bbe398b592a301a94e235635bd42330f4 (diff)
Fix app_disa to not ignore ignorepat :) (bug #2451)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3789 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-xapps/app_disa.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/apps/app_disa.c b/apps/app_disa.c
index 4d9167350..03f13c67c 100755
--- a/apps/app_disa.c
+++ b/apps/app_disa.c
@@ -104,7 +104,7 @@ static void play_dialtone(struct ast_channel *chan)
static int disa_exec(struct ast_channel *chan, void *data)
{
- int i,j,k,x;
+ int i,j,k,x,did_ignore;
struct localuser *u;
char tmp[256],arg2[256]="",exten[AST_MAX_EXTENSION],acctcode[20]="";
char *ourcontext,*ourcallerid;
@@ -152,6 +152,7 @@ static int disa_exec(struct ast_channel *chan, void *data)
ast_answer(chan);
}
i = k = x = 0; /* k is 0 for pswd entry, 1 for ext entry */
+ did_ignore = 0;
exten[0] = 0;
acctcode[0] = 0;
/* can we access DISA without password? */
@@ -276,11 +277,21 @@ static int disa_exec(struct ast_channel *chan, void *data)
continue;
}
}
+
exten[i++] = j; /* save digit */
exten[i] = 0;
if (!k) continue; /* if getting password, continue doing it */
/* if this exists */
+ if (ast_ignore_pattern(ourcontext, exten)) {
+ play_dialtone(chan);
+ did_ignore = 1;
+ } else
+ if (did_ignore) {
+ ast_playtones_stop(chan);
+ did_ignore = 0;
+ }
+
/* if can do some more, do it */
if (!ast_matchmore_extension(chan,ourcontext,exten,1, chan->callerid)) {
break;