diff options
-rw-r--r-- | cdr.c | 6 | ||||
-rw-r--r-- | include/asterisk/cdr.h | 4 |
2 files changed, 6 insertions, 4 deletions
@@ -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) |