aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/app_dial.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/apps/app_dial.c b/apps/app_dial.c
index 91e7325f2..fdf24cc71 100644
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
@@ -696,6 +696,7 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in, struct dial_l
if (!f || ((f->frametype == AST_FRAME_CONTROL) && (f->subclass == AST_CONTROL_HANGUP))) {
/* Got hung up */
*to = -1;
+ ast_cdr_noanswer(in->cdr);
strcpy(status, "CANCEL");
if (f)
ast_frfree(f);
@@ -709,6 +710,7 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in, struct dial_l
if (option_verbose > 2)
ast_verbose(VERBOSE_PREFIX_3 "User hit %c to disconnect call.\n", f->subclass);
*to=0;
+ ast_cdr_noanswer(in->cdr);
*result = f->subclass;
strcpy(status, "CANCEL");
ast_frfree(f);
@@ -721,6 +723,7 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in, struct dial_l
if (option_verbose > 2)
ast_verbose(VERBOSE_PREFIX_3 "User hit %c to disconnect call.\n", f->subclass);
*to=0;
+ ast_cdr_noanswer(in->cdr);
strcpy(status, "CANCEL");
ast_frfree(f);
return NULL;
@@ -749,6 +752,10 @@ static struct ast_channel *wait_for_answer(struct ast_channel *in, struct dial_l
}
if (!*to && (option_verbose > 2))
ast_verbose(VERBOSE_PREFIX_3 "Nobody picked up in %d ms\n", orig);
+ if (!*to || ast_check_hangup(in)) {
+ ast_cdr_noanswer(in->cdr);
+ }
+
}
return peer;