From 932eae69abeb30e1ba3df152c393530aee19eac0 Mon Sep 17 00:00:00 2001
From: Sean Bright <sean.bright@gmail.com>
Date: Thu, 25 Feb 2021 14:55:22 -0500
Subject: [PATCH] app_page.c: Don't fail to Page if beep sound file is missing

ASTERISK-16799 #close

Change-Id: I40367b0d6dbf66a39721bde060c8b2d734a61cf4
---
 apps/app_page.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/apps/app_page.c b/apps/app_page.c
index df601e77c0..7f498ee570 100644
--- a/apps/app_page.c
+++ b/apps/app_page.c
@@ -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) {
-- 
GitLab