]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Don't hang up on a queue caller if the file we attempt to play does not exist.
authorMark Michelson <mmichelson@digium.com>
Fri, 21 May 2010 20:59:14 +0000 (20:59 +0000)
committerMark Michelson <mmichelson@digium.com>
Fri, 21 May 2010 20:59:14 +0000 (20:59 +0000)
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/branches/1.4@265089 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_queue.c
include/asterisk/file.h

index 4497e125fd199adcd10aad5461c20582ba96ce14..1fc6201f3f77d1b5ca209e2c909fa7d7ef1430ac 100644 (file)
@@ -1532,6 +1532,10 @@ static int play_file(struct ast_channel *chan, char *filename)
                return 0;
        }
 
+       if (!ast_fileexists(filename, NULL, chan->language)) {
+               return 0;
+       }
+
        ast_stopstream(chan);
 
        res = ast_streamfile(chan, filename, chan->language);
index 4b8c8fad95e62b87f6602b536e517eaedbcdf627..1518d209d98cbc69c5266328801113824d917172 100644 (file)
@@ -199,7 +199,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.
- * Returns -1 if file does not exist, non-zero positive otherwise.
+ * Returns 0 if file does not exist, non-zero positive otherwise.
  */
 int ast_fileexists(const char *filename, const char *fmt, const char *preflang);