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;
}
}
#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)