From 427bee9beb5e26d45442ab8555e86f42b71a9042 Mon Sep 17 00:00:00 2001
From: Mark Petersen <bugs.digium.com@zombie.dk>
Date: Fri, 21 Jan 2022 14:52:23 +0100
Subject: [PATCH] res_prometheus.c: missing module dependency

added res_pjsip_outbound_registration to .requires in AST_MODULE_INFO
which fixes issue with module crashes on load "FRACK!, Failed assertion"

ASTERISK-29871

Change-Id: Ia0f49d048427a40e1b763296b834a52a03610096
---
 configs/samples/prometheus.conf.sample | 4 ++++
 res/res_prometheus.c                   | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/configs/samples/prometheus.conf.sample b/configs/samples/prometheus.conf.sample
index 3ee9290db9..ee4a1965ee 100644
--- a/configs/samples/prometheus.conf.sample
+++ b/configs/samples/prometheus.conf.sample
@@ -10,6 +10,10 @@
 ; Because Prometheus scrapes statistics from HTTP servers, this module requires
 ; Asterisk's built-in HTTP server to be enabled and configured properly.
 ;
+; Module Dependencies:
+; only if Asterisk is build with pjproject bundled (default)
+; * res_pjsip.so
+; * res_pjsip_outbound_registration.so
 
 ; Settings that affect all statistic generation
 [general]
diff --git a/res/res_prometheus.c b/res/res_prometheus.c
index 11b8f0279e..4aacf6e85c 100644
--- a/res/res_prometheus.c
+++ b/res/res_prometheus.c
@@ -27,6 +27,7 @@
 /*** MODULEINFO
 	<use>pjproject</use>
 	<use type="module">res_pjsip</use>
+	<use type="module">res_pjsip_outbound_registration</use>
 	<support_level>extended</support_level>
  ***/
 
@@ -1002,6 +1003,7 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_
 	.reload = reload_module,
 	.load_pri = AST_MODPRI_DEFAULT,
 #ifdef HAVE_PJPROJECT
-	.requires = "res_pjsip",
+	/* This module explicitly calls into res_pjsip if Asterisk is built with PJSIP support, so they are required. */
+	.requires = "res_pjsip,res_pjsip_outbound_registration",
 #endif
 );
-- 
GitLab