]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
app_page.c: Don't fail to Page if beep sound file is missing
authorSean Bright <sean.bright@gmail.com>
Thu, 25 Feb 2021 19:55:22 +0000 (14:55 -0500)
committerGeorge Joseph <gjoseph@digium.com>
Fri, 26 Feb 2021 15:36:07 +0000 (09:36 -0600)
ASTERISK-16799 #close

Change-Id: I40367b0d6dbf66a39721bde060c8b2d734a61cf4

apps/app_page.c

index df601e77c08ef0358c9e7db4e39e4b80fa539818..7f498ee5706eabe1c183e7e8a697138de59d1f4a 100644 (file)
@@ -160,6 +160,8 @@ AST_APP_OPTIONS(page_opts, {
        AST_APP_OPTION('n', PAGE_NOCALLERANNOUNCE),
 });
 
+#define PAGE_BEEP "beep"
+
 /* We use this structure as a way to pass this to all dialed channels */
 struct page_options {
        char *opts[OPT_ARG_ARRAY_SIZE];
@@ -402,9 +404,14 @@ static int page_exec(struct ast_channel *chan, const char *data)
        ast_free(predial_callee);
 
        if (!ast_test_flag(&options.flags, PAGE_QUIET)) {
-               res = ast_streamfile(chan, "beep", ast_channel_language(chan));
-               if (!res)
-                       res = ast_waitstream(chan, "");
+               if (!ast_fileexists(PAGE_BEEP, NULL, NULL)) {
+                       ast_log(LOG_WARNING, "Missing required sound file: '" PAGE_BEEP "'\n");
+               } else {
+                       res = ast_streamfile(chan, PAGE_BEEP, ast_channel_language(chan));
+                       if (!res) {
+                               res = ast_waitstream(chan, "");
+                       }
+               }
        }
 
        if (!res) {