From 1225ee831cda3ee6906c0c79787d71b1e6a1e20e Mon Sep 17 00:00:00 2001
From: Mark Michelson <mmichelson@digium.com>
Date: Fri, 21 May 2010 21:08:51 +0000
Subject: [PATCH] Merged revisions 265089 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r265089 | mmichelson | 2010-05-21 15:59:14 -0500 (Fri, 21 May 2010) | 8 lines

  Don't hang up on a queue caller if the file we attempt to play does not exist.

  This also fixes a documentation mistake in file.h that made my original attempt
  to correct this problem not work correctly.

  (closes issue #17061)
  Reported by: RoadKill
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@265090 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 apps/app_queue.c        | 4 ++++
 include/asterisk/file.h | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/apps/app_queue.c b/apps/app_queue.c
index 366edf5c27..5692890ac2 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -2346,6 +2346,10 @@ static int play_file(struct ast_channel *chan, const char *filename)
 		return 0;
 	}
 
+	if (!ast_fileexists(filename, NULL, chan->language)) {
+		return 0;
+	}
+
 	ast_stopstream(chan);
 
 	res = ast_streamfile(chan, filename, chan->language);
diff --git a/include/asterisk/file.h b/include/asterisk/file.h
index 8def42ae5d..69de811652 100644
--- a/include/asterisk/file.h
+++ b/include/asterisk/file.h
@@ -90,7 +90,7 @@ int ast_stopstream(struct ast_channel *c);
  * \param fmt the format you wish to check (the extension)
  * \param preflang (the preferred language you wisht to find the file in)
  * See if a given file exists in a given format.  If fmt is NULL,  any format is accepted.
- * \return -1 if file does not exist, non-zero positive otherwise.
+ * \return 0 if file does not exist, non-zero positive otherwise.
  */
 int ast_fileexists(const char *filename, const char *fmt, const char *preflang);
 
-- 
GitLab