diff --git a/funcs/func_periodic_hook.c b/funcs/func_periodic_hook.c
index 39dfab396773cee55c633405fc793676e76fe127..4ee98f3ffdb3fa9a30d9fa8144b40ea4f071e52e 100644
--- a/funcs/func_periodic_hook.c
+++ b/funcs/func_periodic_hook.c
@@ -520,4 +520,7 @@ int AST_OPTIONAL_API_NAME(ast_beep_stop)(struct ast_channel *chan, const char *b
 	return hook_write(chan, NULL, (char *) beep_id, "off");
 }
 
-AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Periodic dialplan hooks.");
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Periodic dialplan hooks.",
+		.load = load_module,
+		.unload = unload_module,
+		);
diff --git a/funcs/func_periodic_hook.exports.in b/funcs/func_periodic_hook.exports.in
new file mode 100644
index 0000000000000000000000000000000000000000..0ca2f0bee798094171d665fe028eced3d6aca761
--- /dev/null
+++ b/funcs/func_periodic_hook.exports.in
@@ -0,0 +1,7 @@
+{
+	global:
+		LINKER_SYMBOL_PREFIX*ast_beep_start;
+		LINKER_SYMBOL_PREFIX*ast_beep_stop;
+	local:
+		*;
+};
diff --git a/main/asterisk.dynamics b/main/asterisk.dynamics
index 28f801b1e101dd11475b3d19efa0dec9bf799395..1c4b1b1ee506fe3f5e3f47d20cbcb329927a009e 100644
--- a/main/asterisk.dynamics
+++ b/main/asterisk.dynamics
@@ -1,6 +1,7 @@
 {
 	*ast_adsi_*;
 	*ast_agi_*;
+	*ast_beep_*;
 	*ast_pktccops_*;
 	*ast_smdi_*;
 	*ast_monitor_*;
diff --git a/res/res_monitor.c b/res/res_monitor.c
index f815072850e016bb12a8e69058019958e9b13b96..8181b867f431ac2f9c62470d20cef6fa2d987a1c 100644
--- a/res/res_monitor.c
+++ b/res/res_monitor.c
@@ -46,6 +46,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/stasis_channels.h"
 #define AST_API_MODULE
 #include "asterisk/monitor.h"
+#undef AST_API_MODULE
 #include "asterisk/app.h"
 #include "asterisk/utils.h"
 #include "asterisk/config.h"