aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cdr.c6
-rw-r--r--include/asterisk/cdr.h4
2 files changed, 6 insertions, 4 deletions
diff --git a/cdr.c b/cdr.c
index 9d3eb68bd..272ce0f69 100644
--- a/cdr.c
+++ b/cdr.c
@@ -520,8 +520,10 @@ void ast_cdr_failed(struct ast_cdr *cdr)
chan = !ast_strlen_zero(cdr->channel) ? cdr->channel : "<unknown>";
if (ast_test_flag(cdr, AST_CDR_FLAG_POSTED))
ast_log(LOG_WARNING, "CDR on channel '%s' already posted\n", chan);
- if (!ast_test_flag(cdr, AST_CDR_FLAG_LOCKED))
- cdr->disposition = AST_CDR_FAILED;
+ if (!ast_test_flag(cdr, AST_CDR_FLAG_LOCKED)) {
+ if (cdr->disposition < AST_CDR_FAILED)
+ cdr->disposition = AST_CDR_FAILED;
+ }
cdr = cdr->next;
}
}
diff --git a/include/asterisk/cdr.h b/include/asterisk/cdr.h
index c43882946..ae10ac13a 100644
--- a/include/asterisk/cdr.h
+++ b/include/asterisk/cdr.h
@@ -32,8 +32,8 @@
#define AST_CDR_NOANSWER (1 << 0)
#define AST_CDR_BUSY (1 << 1)
-#define AST_CDR_ANSWERED (1 << 2)
-#define AST_CDR_FAILED (1 << 3)
+#define AST_CDR_FAILED (1 << 2)
+#define AST_CDR_ANSWERED (1 << 3)
/*! AMA Flags */
#define AST_CDR_OMIT (1)