From 6cda4c3b8b07ea1b7908e618aa985da4e42e3506 Mon Sep 17 00:00:00 2001
From: Joshua Colp <jcolp@digium.com>
Date: Wed, 22 Mar 2006 21:43:38 +0000
Subject: [PATCH] Merged revisions 14234 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r14234 | file | 2006-03-22 17:38:32 -0400 (Wed, 22 Mar 2006) | 2 lines

Issue #5918 - Disposition showing FAILED even though call is answered successfully (Reported by tracinet)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@14235 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 cdr.c                  | 6 ++++--
 include/asterisk/cdr.h | 4 ++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/cdr.c b/cdr.c
index 19c73dce48..323c8ade2a 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 e6685509a3..b08f0fd7bf 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)
-- 
GitLab