From 0f3eaaf703f33956ee603fd96d842e4e661e974e Mon Sep 17 00:00:00 2001
From: Joshua Colp <jcolp@digium.com>
Date: Sat, 9 Sep 2006 20:25:45 +0000
Subject: [PATCH] Merged revisions 42600 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r42600 | file | 2006-09-09 16:24:19 -0400 (Sat, 09 Sep 2006) | 2 lines

Only truly consider the channel in the same format if the format matches the raw format OR if a translation path already exists to translate between them. (issue #7887 reported by softins & issue #7803 reported by alvaro_palma_aste). Thanks goes to stubert for giving me access to a box and showing me a scenario where this occured.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@42601 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 main/channel.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/main/channel.c b/main/channel.c
index 908e8c08c2..24fe88a25f 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -2614,7 +2614,7 @@ static int set_format(struct ast_channel *chan, int fmt, int *rawformat, int *fo
 	/* Now we have a good choice for both. */
 	ast_channel_lock(chan);
 
-	if ((*rawformat == native) && (*format == fmt)) {
+	if ((*rawformat == native) && (*format == fmt) && ((*rawformat == *format) || (*trans))) {
 		/* the channel is already in these formats, so nothing to do */
 		ast_channel_unlock(chan);
 		return 0;
-- 
GitLab