Skip to content
Snippets Groups Projects
Commit 463c49e3 authored by Joshua Colp's avatar Joshua Colp
Browse files

DISA only needs to know about the end of DTMF, not the beginning/duration.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83114 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent d816e735
Branches
Tags
No related merge requests found
...@@ -179,6 +179,8 @@ static int disa_exec(struct ast_channel *chan, void *data) ...@@ -179,6 +179,8 @@ static int disa_exec(struct ast_channel *chan, void *data)
play_dialtone(chan, args.mailbox); play_dialtone(chan, args.mailbox);
ast_set_flag(chan, AST_FLAG_END_DTMF_ONLY);
for (;;) { for (;;) {
/* if outa time, give em reorder */ /* if outa time, give em reorder */
if (ast_tvdiff_ms(ast_tvnow(), lastdigittime) > ((k&2) ? digittimeout : firstdigittimeout)) { if (ast_tvdiff_ms(ast_tvnow(), lastdigittime) > ((k&2) ? digittimeout : firstdigittimeout)) {
...@@ -192,11 +194,14 @@ static int disa_exec(struct ast_channel *chan, void *data) ...@@ -192,11 +194,14 @@ static int disa_exec(struct ast_channel *chan, void *data)
continue; continue;
} }
if (!(f = ast_read(chan))) if (!(f = ast_read(chan))) {
ast_clear_flag(chan, AST_FLAG_END_DTMF_ONLY);
return -1; return -1;
}
if ((f->frametype == AST_FRAME_CONTROL) && (f->subclass == AST_CONTROL_HANGUP)) { if ((f->frametype == AST_FRAME_CONTROL) && (f->subclass == AST_CONTROL_HANGUP)) {
ast_frfree(f); ast_frfree(f);
ast_clear_flag(chan, AST_FLAG_END_DTMF_ONLY);
return -1; return -1;
} }
...@@ -225,6 +230,7 @@ static int disa_exec(struct ast_channel *chan, void *data) ...@@ -225,6 +230,7 @@ static int disa_exec(struct ast_channel *chan, void *data)
fp = fopen(args.passcode,"r"); fp = fopen(args.passcode,"r");
if (!fp) { if (!fp) {
ast_log(LOG_WARNING,"DISA password file %s not found on chan %s\n",args.passcode,chan->name); ast_log(LOG_WARNING,"DISA password file %s not found on chan %s\n",args.passcode,chan->name);
ast_clear_flag(chan, AST_FLAG_END_DTMF_ONLY);
return -1; return -1;
} }
pwline[0] = 0; pwline[0] = 0;
...@@ -307,6 +313,8 @@ static int disa_exec(struct ast_channel *chan, void *data) ...@@ -307,6 +313,8 @@ static int disa_exec(struct ast_channel *chan, void *data)
} }
} }
ast_clear_flag(chan, AST_FLAG_END_DTMF_ONLY);
if (k == 3) { if (k == 3) {
int recheck = 0; int recheck = 0;
struct ast_flags flags = { AST_CDR_FLAG_POSTED }; struct ast_flags flags = { AST_CDR_FLAG_POSTED };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment