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 19c73dce4..323c8ade2 100644
--- a/cdr.c
+++ b/cdr.c
@@ -515,8 +515,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 e6685509a..b08f0fd7b 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)