diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-09-15 22:06:30 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-09-15 22:06:30 +0000 |
commit | cac82edb73d961c454796be1febcdaaac83fe6e3 (patch) | |
tree | 8349861c76a0dfc466e6d2f7e7c8351f5e71e119 /apps/app_disa.c | |
parent | a3325e5bbe398b592a301a94e235635bd42330f4 (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
Diffstat (limited to 'apps/app_disa.c')
-rwxr-xr-x | apps/app_disa.c | 13 |
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; |