From 31f0d78d7b73dfe0e5a59a115bc17aae0c5416e7 Mon Sep 17 00:00:00 2001
From: George Joseph <george.joseph@fairview5.com>
Date: Wed, 20 May 2015 18:05:20 -0600
Subject: [PATCH] app_playback: Suppress warnings on playback if channel hung
 up

If a channel hangs up while an audio file is playing, there's
no need to clutter up the logs with a warning so suppress it
if ast_check_hangup returns true.

Also, change warning to debug/2 in file.c if writing a frame
fails.  Same reasoning.

Change-Id: I2e66191af3c5b6e951c98e8f1c3fe3cf2cf7ed89
Reported-by: George Joseph <george.joseph@fairview5.com>
Tested-by: George Joseph <george.joseph@fairview5.com>
---
 apps/app_playback.c | 4 +++-
 main/file.c         | 4 ++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/apps/app_playback.c b/apps/app_playback.c
index feb7b633dd..2875ec2b49 100644
--- a/apps/app_playback.c
+++ b/apps/app_playback.c
@@ -490,7 +490,9 @@ static int playback_exec(struct ast_channel *chan, const char *data)
 				ast_stopstream(chan);
 			}
 			if (res) {
-				ast_log(LOG_WARNING, "Playback failed on %s for %s\n", ast_channel_name(chan), (char *)data);
+				if (!ast_check_hangup(chan)) {
+					ast_log(LOG_WARNING, "Playback failed on %s for %s\n", ast_channel_name(chan), (char *)data);
+				}
 				res = 0;
 				mres = 1;
 			}
diff --git a/main/file.c b/main/file.c
index acd2cc6bca..bfad6e025f 100644
--- a/main/file.c
+++ b/main/file.c
@@ -897,7 +897,7 @@ static enum fsread_res ast_readaudio_callback(struct ast_filestream *s)
 
 		if (!fr /* stream complete */ || ast_write(s->owner, fr) /* error writing */) {
 			if (fr) {
-				ast_log(LOG_WARNING, "Failed to write frame\n");
+				ast_debug(2, "Failed to write frame\n");
 				ast_frfree(fr);
 			}
 			goto return_failure;
@@ -954,7 +954,7 @@ static enum fsread_res ast_readvideo_callback(struct ast_filestream *s)
 
 		if (!fr /* stream complete */ || ast_write(s->owner, fr) /* error writing */) {
 			if (fr) {
-				ast_log(LOG_WARNING, "Failed to write frame\n");
+				ast_debug(2, "Failed to write frame\n");
 				ast_frfree(fr);
 			}
 			ast_channel_vstreamid_set(s->owner, -1);
-- 
GitLab