summaryrefslogtreecommitdiff
path: root/net/asterisk22/files
diff options
context:
space:
mode:
Diffstat (limited to 'net/asterisk22/files')
-rw-r--r--net/asterisk22/files/asterisk.in86
-rw-r--r--net/asterisk22/files/patch-Makefile135
-rw-r--r--net/asterisk22/files/patch-Makefile.rules27
-rw-r--r--net/asterisk22/files/patch-agi_Makefile13
-rw-r--r--net/asterisk22/files/patch-build__tools_make__xml__documentation11
-rw-r--r--net/asterisk22/files/patch-channels_chan__dahdi.c33
-rw-r--r--net/asterisk22/files/patch-configure88
-rw-r--r--net/asterisk22/files/patch-contrib_Makefile23
-rw-r--r--net/asterisk22/files/patch-main_Makefile14
-rw-r--r--net/asterisk22/files/patch-main_lock.c12
-rw-r--r--net/asterisk22/files/patch-main_term.c10
-rw-r--r--net/asterisk22/files/patch-menuselect_configure11
-rw-r--r--net/asterisk22/files/patch-third-party_pjproject_Makefile30
-rw-r--r--net/asterisk22/files/patch-third-party_pjproject_Makefile.rules20
14 files changed, 513 insertions, 0 deletions
diff --git a/net/asterisk22/files/asterisk.in b/net/asterisk22/files/asterisk.in
new file mode 100644
index 000000000000..5fab82c5700e
--- /dev/null
+++ b/net/asterisk22/files/asterisk.in
@@ -0,0 +1,86 @@
+#!/bin/sh
+
+# PROVIDE: asterisk
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf to enable asterisk:
+#
+# asterisk_enable (bool): Set it to "YES" to enable asterisk
+# Default is "NO"
+# asterisk_user (string): User asterisk runs as
+# Default is %%ASTERISK_USER%%
+# asterisk_group (string): Group asterisk runs as
+# Default is %%ASTERISK_GROUP%%
+# asterisk_args (string): Extra argumeents to pass to asterisk at startup
+# Default is "-n"
+# asterisk_pidfile (string): Location of the asterisk pid file
+# Default is /var/run/asterisk/asterisk.pid
+# asterisk_stopsleep (int): Number of seconds to sleep before sending stop command
+# Default is 0, which disables it
+# asterisk_umask (string): File creation mode mask to run asterisk with
+#
+
+. /etc/rc.subr
+
+name=asterisk
+rcvar=asterisk_enable
+desc="Asterisk PBX server"
+
+load_rc_config $name
+
+: ${asterisk_enable:=NO}
+: ${asterisk_user:=%%ASTERISK_USER%%}
+: ${asterisk_group:=%%ASTERISK_GROUP%%}
+: ${asterisk_args=-n}
+: ${asterisk_pidfile:=/var/run/asterisk/asterisk.pid}
+: ${asterisk_stopsleep:=0}
+
+extra_commands=reload
+
+start_precmd=asterisk_precmd
+stop_cmd=asterisk_stop
+reload_cmd=asterisk_reload
+
+pidfile="${asterisk_pidfile}"
+
+command="%%PREFIX%%/sbin/asterisk"
+command_args="${asterisk_args} -F -U ${asterisk_user}"
+
+asterisk_precmd()
+{
+ local rundir=${asterisk_pidfile%/*}
+ if [ ! -d $rundir ] ; then
+ install -d -m 0750 -o "${asterisk_user}" -g "${asterisk_group}" "$rundir"
+ fi
+ if [ -n "${asterisk_umask}" ]; then
+ umask ${asterisk_umask}
+ fi
+}
+
+asterisk_stop()
+{
+ if [ -z "$rc_pid" ]; then
+ [ -n "$rc_fast" ] && return 0
+ _run_rc_notrunning
+ return 1
+ fi
+ echo 'Stopping asterisk.'
+ if [ ${asterisk_stopsleep} -gt 0 ]; then
+ sleep ${asterisk_stopsleep}
+ fi
+ $command -rx 'core stop now'
+ wait_for_pids $rc_pid
+}
+
+asterisk_reload()
+{
+ if [ -z "$rc_pid" ]; then
+ _run_rc_notrunning
+ return 1
+ fi
+ echo 'Reloading asterisk.'
+ $command -rx 'reload'
+}
+
+run_rc_command "$1"
diff --git a/net/asterisk22/files/patch-Makefile b/net/asterisk22/files/patch-Makefile
new file mode 100644
index 000000000000..30def8923871
--- /dev/null
+++ b/net/asterisk22/files/patch-Makefile
@@ -0,0 +1,135 @@
+--- Makefile.orig 2022-08-18 15:18:29 UTC
++++ Makefile
+@@ -144,7 +144,7 @@ ASTTOPDIR:=$(subst $(space),\$(space),$(CURDIR))
+ OVERWRITE=y
+
+ # Include debug and macro symbols in the executables (-g) and profiling info (-pg)
+-DEBUG=-g3
++#DEBUG=-g3
+
+ # Asterisk.conf is located in ASTETCDIR or by using the -C flag
+ # when starting Asterisk
+@@ -168,7 +168,7 @@ LINKER_SYMBOL_PREFIX=
+ #_ASTCFLAGS+=-DOLD_DSP_ROUTINES
+
+ # Default install directory for DAHDI hooks.
+-DAHDI_UDEV_HOOK_DIR = /usr/share/dahdi/span_config.d
++#DAHDI_UDEV_HOOK_DIR = /usr/share/dahdi/span_config.d
+
+ # If the file .asterisk.makeopts is present in your home directory, you can
+ # include all of your favorite menuselect options so that every time you download
+@@ -226,12 +226,6 @@ else ifneq ($(findstring BSD,$(OSARCH)),)
+ _ASTCFLAGS+=-isystem /usr/local/include
+ endif
+
+-ifeq ($(OSARCH),FreeBSD)
+- # -V is understood by BSD Make, not by GNU make.
+- BSDVERSION=$(shell make -V OSVERSION -f /usr/share/mk/bsd.port.subdir.mk)
+- _ASTCFLAGS+=$(shell if test $(BSDVERSION) -lt 500016 ; then echo "-D_THREAD_SAFE"; fi)
+-endif
+-
+ ifeq ($(OSARCH),NetBSD)
+ _ASTCFLAGS+=-pthread -D__LIBPTHREAD_SOURCE__ -I/usr/pkg/include
+ endif
+@@ -475,8 +469,12 @@ endif
+ $(INSTALL) -m 644 $$n "$(DESTDIR)$(ASTDATADIR)/static-http/docs" ; \
+ done \
+ fi
++ if [ ! -d $(DESTDIR)$(DOCSDIR)/images ]; then \
++ $(MKDIR) $(DESTDIR)$(DOCSDIR)/images; \
++ fi
++
+ for x in images/*.jpg; do \
+- $(INSTALL) -m 644 $$x "$(DESTDIR)$(ASTDATADIR)/images" ; \
++ $(INSTALL) -m 644 $$x "$(DESTDIR)$(DOCSDIR)/images" ; \
+ done
+ $(MAKE) -C sounds install
+ find rest-api -name "*.json" | while read x; do \
+@@ -545,7 +543,7 @@ INSTALLDIRS="$(ASTLIBDIR)" "$(ASTMODDIR)" "$(ASTSBINDI
+ "$(ASTDATADIR)/firmware/iax" "$(ASTDATADIR)/images" "$(ASTDATADIR)/keys" \
+ "$(ASTDATADIR)/phoneprov" "$(ASTDATADIR)/rest-api" "$(ASTDATADIR)/static-http" \
+ "$(ASTDATADIR)/sounds" "$(ASTDATADIR)/moh" "$(ASTMANDIR)/man8" "$(AGI_DIR)" "$(ASTDBDIR)" \
+- "$(ASTDATADIR)/third-party" "${ASTDATADIR}/keys/stir_shaken" "${ASTDATADIR}/keys/stir_shaken/cache"
++ "$(ASTDATADIR)/third-party" "${ASTDATADIR}/keys/stir_shaken" "$(ASTSPOOLDIR)/outgoing"
+
+ installdirs:
+ @for i in $(INSTALLDIRS); do \
+@@ -557,7 +555,7 @@ installdirs:
+ main-bininstall:
+ +@DESTDIR="$(DESTDIR)" ASTSBINDIR="$(ASTSBINDIR)" ASTLIBDIR="$(ASTLIBDIR)" $(SUBMAKE) -C main bininstall
+
+-bininstall: _all installdirs $(SUBDIRS_INSTALL) main-bininstall
++bininstall: _all installdirs $(SUBDIRS_INSTALL) main-bininstall install-headers
+ $(INSTALL) -m 755 contrib/scripts/astversion "$(DESTDIR)$(ASTSBINDIR)/"
+ $(INSTALL) -m 755 contrib/scripts/astgenkey "$(DESTDIR)$(ASTSBINDIR)/"
+ $(INSTALL) -m 755 contrib/scripts/autosupport "$(DESTDIR)$(ASTSBINDIR)/"
+@@ -578,10 +576,10 @@ endif
+ if [ -f contrib/firmware/iax/iaxy.bin ] ; then \
+ $(INSTALL) -m 644 contrib/firmware/iax/iaxy.bin "$(DESTDIR)$(ASTDATADIR)/firmware/iax/iaxy.bin"; \
+ fi
+-ifeq ($(HAVE_DAHDI),1)
+- $(INSTALL) -d $(DESTDIR)/$(DAHDI_UDEV_HOOK_DIR)
+- $(INSTALL) -m 644 contrib/scripts/dahdi_span_config_hook $(DESTDIR)$(DAHDI_UDEV_HOOK_DIR)/40-asterisk
+-endif
++#ifeq ($(HAVE_DAHDI),1)
++# $(INSTALL) -d $(DESTDIR)/$(DAHDI_UDEV_HOOK_DIR)
++# $(INSTALL) -m 644 contrib/scripts/dahdi_span_config_hook $(DESTDIR)$(DAHDI_UDEV_HOOK_DIR)/40-asterisk
++#endif
+
+ $(SUBDIRS_INSTALL):
+ +@DESTDIR="$(DESTDIR)" ASTSBINDIR="$(ASTSBINDIR)" ASTDATADIR="$(ASTDATADIR)" $(SUBMAKE) -C $(@:-install=) install
+@@ -706,7 +704,7 @@ ifeq ($(ASTERISKVERSION),UNKNOWN__git_check_fail)
+ endif
+
+
+-install: badshell versioncheck bininstall datafiles
++install: badshell versioncheck bininstall datafiles samples
+ @if [ -x /usr/sbin/asterisk-post-install ]; then \
+ /usr/sbin/asterisk-post-install "$(DESTDIR)" . ; \
+ fi
+@@ -751,23 +749,10 @@ upgrade: bininstall
+ # (2) the extension to strip off
+ define INSTALL_CONFIGS
+ @for x in $(1)/*$(2); do \
+- dst="$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x $(2)`"; \
+- if [ -f "$${dst}" ]; then \
+- if [ "$(OVERWRITE)" = "y" ]; then \
+- if cmp -s "$${dst}" "$$x" ; then \
+- echo "Config file $$x is unchanged"; \
+- continue; \
+- fi ; \
+- mv -f "$${dst}" "$${dst}.old" ; \
+- else \
+- echo "Skipping config file $$x"; \
+- continue; \
+- fi ;\
+- fi ; \
+ echo "Installing file $$x"; \
+- $(INSTALL) -m 644 "$$x" "$${dst}" ;\
++ $(INSTALL) -m 644 $$x $(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x .sample`.sample ; \
+ done ; \
+- if [ "$(OVERWRITE)" = "y" ]; then \
++ if true; then \
+ echo "Updating asterisk.conf" ; \
+ sed -e 's|^astcachedir.*$$|astcachedir => $(ASTCACHEDIR)|' \
+ -e 's|^astetcdir.*$$|astetcdir => $(ASTETCDIR)|' \
+@@ -781,8 +766,8 @@ define INSTALL_CONFIGS
+ -e 's|^astrundir.*$$|astrundir => $(ASTVARRUNDIR)|' \
+ -e 's|^astlogdir.*$$|astlogdir => $(ASTLOGDIR)|' \
+ -e 's|^astsbindir.*$$|astsbindir => $(ASTSBINDIR)|' \
+- "$(DESTDIR)$(ASTCONFPATH)" > "$(DESTDIR)$(ASTCONFPATH).tmp" ; \
+- $(INSTALL) -m 644 "$(DESTDIR)$(ASTCONFPATH).tmp" "$(DESTDIR)$(ASTCONFPATH)" ; \
++ "$(DESTDIR)$(ASTCONFPATH).sample" > "$(DESTDIR)$(ASTCONFPATH).tmp" ; \
++ $(INSTALL) -m 644 "$(DESTDIR)$(ASTCONFPATH).tmp" "$(DESTDIR)$(ASTCONFPATH).sample" ; \
+ rm -f "$(DESTDIR)$(ASTCONFPATH).tmp" ; \
+ fi
+ endef
+@@ -816,7 +801,7 @@ adsi:
+ else \
+ echo "Installing $$x" ; \
+ fi ; \
+- $(INSTALL) -m 644 "$$x" "$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x`" ; \
++ $(INSTALL) -m 644 "$$x" "$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x`.sample" ; \
+ done
+
+ samples: adsi
diff --git a/net/asterisk22/files/patch-Makefile.rules b/net/asterisk22/files/patch-Makefile.rules
new file mode 100644
index 000000000000..4c4adf5b830a
--- /dev/null
+++ b/net/asterisk22/files/patch-Makefile.rules
@@ -0,0 +1,27 @@
+--- Makefile.rules.orig 2023-01-12 11:42:40 UTC
++++ Makefile.rules
+@@ -107,6 +107,11 @@ ifeq ($(C_COMPILER_FAMILY),clang)
+ # Clang -Werror warning suppressions
+ ifeq ($(C_COMPILER_FAMILY),clang)
+ CC_CFLAGS+=-Wno-unused-value -Wno-parentheses-equality
++ BINARY_LLD_FLAGS= -z noexecstack
++ LLD_EMULATION=%%LLD_EMULATION%%
++else
++ BINARY_LLD_FLAGS=
++ LLD_EMULATION=
+ endif
+
+ ifeq ($(GNU_LD),1)
+@@ -213,10 +218,10 @@ endif
+ # extern const size_t _binary_abc_def_xml_size;
+ %.o: %.xml
+ $(ECHO_PREFIX) echo " [LD] $^ -> $@"
+- $(CMD_PREFIX) $(CC) -g -Wl,-znoexecstack -nostartfiles -nodefaultlibs -nostdlib -r -Wl,-b,binary -o $@ $^
++ $(CMD_PREFIX) $(CC) -g -Wl,-znoexecstack -nostartfiles -nodefaultlibs -nostdlib $(BINARY_LLD_FLAGS) -r -Wl,-b,binary,-m,$(LLD_EMULATION) -o $@ $^
+
+ %.o: %.xslt
+ $(ECHO_PREFIX) echo " [LD] $^ -> $@"
+- $(CMD_PREFIX) $(CC) -g -Wl,-znoexecstack -nostartfiles -nodefaultlibs -nostdlib -r -Wl,-b,binary -o $@ $^
++ $(CMD_PREFIX) $(CC) -g -Wl,-znoexecstack -nostartfiles -nodefaultlibs -nostdlib $(BINARY_LLD_FLAGS) -r -Wl,-b,binary,-m,$(LLD_EMULATION) -o $@ $^
+
+ dist-clean:: clean
diff --git a/net/asterisk22/files/patch-agi_Makefile b/net/asterisk22/files/patch-agi_Makefile
new file mode 100644
index 000000000000..019ad10e1ef9
--- /dev/null
+++ b/net/asterisk22/files/patch-agi_Makefile
@@ -0,0 +1,13 @@
+--- agi/Makefile.orig 2020-07-09 15:39:17 UTC
++++ agi/Makefile
+@@ -16,7 +16,9 @@ ASTTOPDIR?=..
+
+ .PHONY: clean all uninstall
+
+-AGIS=$(MENUSELECT_AGIS)
++AGIS_BIN=eagi-test eagi-sphinx-test
++AGIS_SCR=agi-test.agi jukebox.agi
++AGIS=$(AGIS_SCR) $(AGIS_BIN)
+
+ ifeq ($(OSARCH),SunOS)
+ LIBS+=-lsocket -lnsl
diff --git a/net/asterisk22/files/patch-build__tools_make__xml__documentation b/net/asterisk22/files/patch-build__tools_make__xml__documentation
new file mode 100644
index 000000000000..af57b9e6dc2c
--- /dev/null
+++ b/net/asterisk22/files/patch-build__tools_make__xml__documentation
@@ -0,0 +1,11 @@
+--- build_tools/make_xml_documentation.orig 2024-10-17 16:00:41 UTC
++++ build_tools/make_xml_documentation
+@@ -220,7 +220,7 @@ for subdir in ${mod_subdirs} ; do
+ ${XMLSTARLET} val -e -d "${source_tree}/doc/appdocsxml.dtd" "${i}" || { echo "" ; exit 1 ; }
+ fi
+ fi
+- ${SED} -r "/^\s*(<[?]xml|<.DOCTYPE|<.?docs)/d" "${i}" >> "${output_file}"
++ ${SED} -r "/^[[:space:]]*(<[?]xml|<.DOCTYPE|<.?docs)/d" "${i}" >> "${output_file}"
+ done
+ done
+ echo "</docs>" >> "${output_file}"
diff --git a/net/asterisk22/files/patch-channels_chan__dahdi.c b/net/asterisk22/files/patch-channels_chan__dahdi.c
new file mode 100644
index 000000000000..e062d643f2fd
--- /dev/null
+++ b/net/asterisk22/files/patch-channels_chan__dahdi.c
@@ -0,0 +1,33 @@
+--- channels/chan_dahdi.c.orig 2024-10-17 16:00:41 UTC
++++ channels/chan_dahdi.c
+@@ -4909,6 +4909,8 @@ void dahdi_ec_enable(struct dahdi_pvt *p)
+ return;
+ }
+ if (p->echocancel.head.tap_length) {
++ struct dahdi_echocanparams *pecp;
++
+ #if defined(HAVE_PRI) || defined(HAVE_SS7)
+ switch (p->sig) {
+ #if defined(HAVE_PRI)
+@@ -4939,7 +4941,9 @@ void dahdi_ec_enable(struct dahdi_pvt *p)
+ break;
+ }
+ #endif /* defined(HAVE_PRI) || defined(HAVE_SS7) */
+- res = ioctl(p->subs[SUB_REAL].dfd, DAHDI_ECHOCANCEL_PARAMS, &p->echocancel);
++
++ pecp = &p->echocancel.head;
++ res = ioctl(p->subs[SUB_REAL].dfd, DAHDI_ECHOCANCEL_PARAMS, &pecp);
+ if (res) {
+ ast_log(LOG_WARNING, "Unable to enable echo cancellation on channel %d (%s)\n", p->channel, strerror(errno));
+ } else {
+@@ -4973,8 +4977,9 @@ void dahdi_ec_disable(struct dahdi_pvt *p)
+
+ if (p->echocanon) {
+ struct dahdi_echocanparams ecp = { .tap_length = 0 };
++ struct dahdi_echocanparams *pecp = &ecp;
+
+- res = ioctl(p->subs[SUB_REAL].dfd, DAHDI_ECHOCANCEL_PARAMS, &ecp);
++ res = ioctl(p->subs[SUB_REAL].dfd, DAHDI_ECHOCANCEL_PARAMS, &pecp);
+
+ if (res)
+ ast_log(LOG_WARNING, "Unable to disable echo cancellation on channel %d: %s\n", p->channel, strerror(errno));
diff --git a/net/asterisk22/files/patch-configure b/net/asterisk22/files/patch-configure
new file mode 100644
index 000000000000..2a0a4e4648eb
--- /dev/null
+++ b/net/asterisk22/files/patch-configure
@@ -0,0 +1,88 @@
+--- configure.orig 2024-07-25 15:24:13 UTC
++++ configure
+@@ -5101,8 +5101,6 @@ case "${host_os}" in
+ ;;
+ dragonfly*|freebsd*)
+ ac_default_prefix=/usr/local
+- CPPFLAGS=-I/usr/local/include
+- LDFLAGS=-L/usr/local/lib
+ ;;
+ openbsd*)
+ ac_default_prefix=/usr/local
+@@ -21439,8 +21437,6 @@ printf "%s\n" "yes" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ printf "%s\n" "yes" >&6; }
+
+-printf "%s\n" "#define HAVE_SYSINFO 1" >>confdefs.h
+-
+ else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ printf "%s\n" "no" >&6; }
+@@ -23085,6 +23081,8 @@ printf %s "checking for getifaddrs() support... " >&6;
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
++ #include <sys/types.h>
++ #include <sys/socket.h>
+ #include <ifaddrs.h>
+ int
+ main (void)
+@@ -31990,6 +31988,8 @@ for ver in ${LUA_VERSIONS:-5.4 5.3 5.2 5.1}; do
+
+ for ver in ${LUA_VERSIONS:-5.4 5.3 5.2 5.1}; do
+
++vernodot=`echo ${ver} | sed 's/\.//'`
++
+ if test "x${PBX_LUA}" != "x1" -a "${USE_LUA}" != "no"; then
+ pbxlibdir=""
+ # if --with-LUA=DIR has been specified, use it.
+@@ -32004,14 +32004,14 @@ if test "x${PBX_LUA}" != "x1" -a "${USE_LUA}" != "no";
+ ast_ext_lib_check_save_CFLAGS="${CFLAGS}"
+ CFLAGS="${CFLAGS} "
+ as_ac_Lib=`printf "%s\n" "ac_cv_lib_lua${ver}""_luaL_newstate" | $as_tr_sh`
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for luaL_newstate in -llua${ver}" >&5
+-printf %s "checking for luaL_newstate in -llua${ver}... " >&6; }
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for luaL_newstate in -llua-${ver}" >&5
++printf %s "checking for luaL_newstate in -llua-${ver}... " >&6; }
+ if eval test \${$as_ac_Lib+y}
+ then :
+ printf %s "(cached) " >&6
+ else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-llua${ver} ${pbxlibdir} -lm $LIBS"
++LIBS="-llua-${ver} ${pbxlibdir} -lm $LIBS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+@@ -32052,7 +32052,7 @@ fi
+
+ # now check for the header.
+ if test "${AST_LUA_FOUND}" = "yes"; then
+- LUA_LIB="${pbxlibdir} -llua${ver} -lm"
++ LUA_LIB="${pbxlibdir} -llua-${ver} -lm"
+ # if --with-LUA=DIR has been specified, use it.
+ if test "x${LUA_DIR}" != "x"; then
+ LUA_INCLUDE="-I${LUA_DIR}/include"
+@@ -32062,8 +32062,8 @@ fi
+ # check for the header
+ ast_ext_lib_check_saved_CPPFLAGS="${CPPFLAGS}"
+ CPPFLAGS="${CPPFLAGS} ${LUA_INCLUDE}"
+- as_ac_Header=`printf "%s\n" "ac_cv_header_lua${ver}/lua.h" | $as_tr_sh`
+-ac_fn_c_check_header_compile "$LINENO" "lua${ver}/lua.h" "$as_ac_Header" "$ac_includes_default"
++ as_ac_Header=`printf "%s\n" "ac_cv_header_lua${vernodot}/lua.h" | $as_tr_sh`
++ac_fn_c_check_header_compile "$LINENO" "lua${vernodot}/lua.h" "$as_ac_Header" "$ac_includes_default"
+ if eval test \"x\$"$as_ac_Header"\" = x"yes"
+ then :
+ LUA_HEADER_FOUND=1
+@@ -32090,9 +32090,9 @@ fi
+
+ if test "x${PBX_LUA}" = "x1" ; then
+ if test x"${LUA_DIR}" = x; then
+- LUA_INCLUDE="${LUA_INCLUDE} -I/usr/include/lua${ver}"
++ LUA_INCLUDE="${LUA_INCLUDE} -I/usr/include/lua${vernodot}"
+ else
+- LUA_INCLUDE="${LUA_INCLUDE} -I${LUA_DIR}/lua${ver}"
++ LUA_INCLUDE="${LUA_INCLUDE} -I${LUA_DIR}/lua${vernodot}"
+ fi
+ break;
+ fi
diff --git a/net/asterisk22/files/patch-contrib_Makefile b/net/asterisk22/files/patch-contrib_Makefile
new file mode 100644
index 000000000000..dc38a639baad
--- /dev/null
+++ b/net/asterisk22/files/patch-contrib_Makefile
@@ -0,0 +1,23 @@
+--- contrib/Makefile.orig 2020-07-09 15:39:17 UTC
++++ contrib/Makefile
+@@ -24,14 +24,14 @@ install:
+ $(INSTALL) -m 755 scripts/ast_logescalator "$(DESTDIR)$(ASTDATADIR)/scripts/ast_logescalator"
+ $(INSTALL) -m 755 scripts/ast_loggrabber "$(DESTDIR)$(ASTDATADIR)/scripts/ast_loggrabber"
+ $(INSTALL) -m 755 scripts/ast_coredumper "$(DESTDIR)$(ASTDATADIR)/scripts/ast_coredumper"
+- $(INSTALL) -m 755 scripts/refcounter.py "$(DESTDIR)$(ASTDATADIR)/scripts/refcounter.py"
+- $(INSTALL) -m 755 scripts/refstats.py "$(DESTDIR)$(ASTDATADIR)/scripts/refstats.py"
+- $(INSTALL) -m 755 scripts/reflocks.py "$(DESTDIR)$(ASTDATADIR)/scripts/reflocks.py"
++# $(INSTALL) -m 755 scripts/refcounter.py "$(DESTDIR)$(ASTDATADIR)/scripts/refcounter.py"
++# $(INSTALL) -m 755 scripts/refstats.py "$(DESTDIR)$(ASTDATADIR)/scripts/refstats.py"
++# $(INSTALL) -m 755 scripts/reflocks.py "$(DESTDIR)$(ASTDATADIR)/scripts/reflocks.py"
+
+ uninstall:
+ -rm -f "$(DESTDIR)$(ASTDATADIR)/scripts/ast_logescalator"
+ -rm -f "$(DESTDIR)$(ASTDATADIR)/scripts/ast_loggrabber"
+ -rm -f "$(DESTDIR)$(ASTDATADIR)/scripts/ast_coredumper"
+- -rm -f "$(DESTDIR)$(ASTDATADIR)/scripts/refcounter.py"
+- -rm -f "$(DESTDIR)$(ASTDATADIR)/scripts/refstats.py"
+- -rm -f "$(DESTDIR)$(ASTDATADIR)/scripts/reflocks.py"
++# -rm -f "$(DESTDIR)$(ASTDATADIR)/scripts/refcounter.py"
++# -rm -f "$(DESTDIR)$(ASTDATADIR)/scripts/refstats.py"
++# -rm -f "$(DESTDIR)$(ASTDATADIR)/scripts/reflocks.py"
diff --git a/net/asterisk22/files/patch-main_Makefile b/net/asterisk22/files/patch-main_Makefile
new file mode 100644
index 000000000000..62f7a4504a4e
--- /dev/null
+++ b/net/asterisk22/files/patch-main_Makefile
@@ -0,0 +1,14 @@
+--- main/Makefile.orig 2022-08-18 15:18:29 UTC
++++ main/Makefile
+@@ -79,9 +79,8 @@ else
+ endif
+
+ ifeq ($(OSARCH),FreeBSD)
+- # -V is understood by BSD Make, not by GNU make.
+- BSDVERSION=$(shell make -V OSVERSION -f /usr/share/mk/bsd.port.subdir.mk)
+- AST_LIBS+=$(shell if test $(BSDVERSION) -lt 502102 ; then echo "-lc_r"; else echo "-pthread"; fi)
++ AST_LIBS+=-pthread
++ CRYPT_LIB=-lcrypt
+ AST_LIBS+=-lcrypto
+ endif
+
diff --git a/net/asterisk22/files/patch-main_lock.c b/net/asterisk22/files/patch-main_lock.c
new file mode 100644
index 000000000000..5292db43b5a1
--- /dev/null
+++ b/net/asterisk22/files/patch-main_lock.c
@@ -0,0 +1,12 @@
+--- main/lock.c.orig 2024-10-17 16:00:41 UTC
++++ main/lock.c
+@@ -718,9 +718,6 @@ int __ast_rwlock_init(int tracking, const char *filena
+ #endif /* DEBUG_THREADS */
+
+ pthread_rwlockattr_init(&attr);
+-#ifdef HAVE_PTHREAD_RWLOCK_PREFER_WRITER_NP
+- pthread_rwlockattr_setkind_np(&attr, PTHREAD_RWLOCK_PREFER_WRITER_NP);
+-#endif
+ res = pthread_rwlock_init(&t->lock, &attr);
+ pthread_rwlockattr_destroy(&attr);
+
diff --git a/net/asterisk22/files/patch-main_term.c b/net/asterisk22/files/patch-main_term.c
new file mode 100644
index 000000000000..01eafa9e2633
--- /dev/null
+++ b/net/asterisk22/files/patch-main_term.c
@@ -0,0 +1,10 @@
+--- main/term.c.orig 2024-10-17 16:00:41 UTC
++++ main/term.c
+@@ -46,6 +46,7 @@ static const char * const termpath[] = {
+ static char quitdata[80] = "";
+
+ static const char * const termpath[] = {
++ "%%LOCALBASE%%/share/terminfo",
+ "/usr/share/terminfo",
+ "/usr/local/share/misc/terminfo",
+ "/usr/lib/terminfo",
diff --git a/net/asterisk22/files/patch-menuselect_configure b/net/asterisk22/files/patch-menuselect_configure
new file mode 100644
index 000000000000..0bba133d6749
--- /dev/null
+++ b/net/asterisk22/files/patch-menuselect_configure
@@ -0,0 +1,11 @@
+--- menuselect/configure.orig 2022-06-23 15:26:13 UTC
++++ menuselect/configure
+@@ -5099,7 +5099,7 @@ else
+ printf "%s\n" "yes" >&6; }
+
+ PBX_LIBXML2=1
+- LIBXML2_INCLUDE=$(echo ${LIBXML2_CFLAGS} | $SED -e "s|-std=c99||g")
++ LIBXML2_INCLUDE=$(echo ${LIBXML2_CFLAGS} | sed -e "s|-std=c99||g")
+ LIBXML2_LIB="$LIBXML2_LIBS"
+
+ printf "%s\n" "#define HAVE_LIBXML2 1" >>confdefs.h
diff --git a/net/asterisk22/files/patch-third-party_pjproject_Makefile b/net/asterisk22/files/patch-third-party_pjproject_Makefile
new file mode 100644
index 000000000000..dcfd4d618e80
--- /dev/null
+++ b/net/asterisk22/files/patch-third-party_pjproject_Makefile
@@ -0,0 +1,30 @@
+--- third-party/pjproject/Makefile.orig 2022-02-03 12:25:09 UTC
++++ third-party/pjproject/Makefile
+@@ -98,15 +98,11 @@ SHELL_ECHO_PREFIX := echo '[pjproject] '
+
+ _all: $(TARGETS)
+
+-$(DOWNLOAD_DIR)/$(TARBALL_FILE): ../versions.mak
+- $(CMD_PREFIX) ($(TARBALL_EXISTS) && $(TARBALL_VERIFY) && touch $@) || (rm -rf $@ ;\
+- $(TARBALL_DOWNLOAD)) || (rm -rf $@ ;\
+- $(SHELL_ECHO_PREFIX) Retrying download ; $(TARBALL_DOWNLOAD))
++$(DOWNLOAD_DIR)/$(TARBALL_FILE):
++ @true
+
+ source/.unpacked: $(DOWNLOAD_DIR)/$(TARBALL_FILE)
+- $(CMD_PREFIX) \
+- $(TARBALL_VERIFY) || (rm -rf $@ ; $(SHELL_ECHO_PREFIX) Retrying download ; $(TARBALL_DOWNLOAD)) ;\
+- $(SHELL_ECHO_PREFIX) Unpacking $< ;\
++ $(SHELL_ECHO_PREFIX) Unpacking $< ;\
+ rm -rf source pjproject-*/ $(REALLY_QUIET) || : ;\
+ $(TAR) -xjf $< ;\
+ mv pjproject-$(PJPROJECT_VERSION) source
+@@ -212,7 +208,7 @@ $(ALL_LIB_FILES): source/build.mak source/pjlib/includ
+
+ pjproject.symbols: $(ALL_LIB_FILES)
+ $(ECHO_PREFIX) Generating symbols
+- $(CMD_PREFIX) $(NM) -Pog $(ALL_LIB_FILES) | $(SED) -n -E -e "s/.+: ([_]?[pP][jJ][^ ]+) .+/\1/gp" | sort -u > pjproject.symbols
++ $(CMD_PREFIX) $(NM) -Pog $(ALL_LIB_FILES) | $(SED) -n -r -e "s/^([pP][jJ][^ ]+) .+/\1/gp" | sort -u > pjproject.symbols
+
+ source/pjsip-apps/src/asterisk_malloc_debug.c: patches/asterisk_malloc_debug.c
+ $(ECHO_PREFIX) Copying $< to $@
diff --git a/net/asterisk22/files/patch-third-party_pjproject_Makefile.rules b/net/asterisk22/files/patch-third-party_pjproject_Makefile.rules
new file mode 100644
index 000000000000..e908a08b6511
--- /dev/null
+++ b/net/asterisk22/files/patch-third-party_pjproject_Makefile.rules
@@ -0,0 +1,20 @@
+--- third-party/pjproject/Makefile.rules.orig 2024-10-17 16:00:41 UTC
++++ third-party/pjproject/Makefile.rules
+@@ -7,7 +7,7 @@ PACKAGE_URL ?= https://raw.githubusercontent.com/aster
+ # PACKAGE_URL ?= http://www.pjsip.org/release/$(PJPROJECT_VERSION)
+
+ PACKAGE_URL ?= https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/$(PJPROJECT_VERSION)
+-TARBALL_FILE = pjproject-$(PJPROJECT_VERSION).tar.bz2
++TARBALL_FILE = pjsip-pjproject-$(PJPROJECT_VERSION)_GH0.tar.gz
+
+ # PJPROJECT_CONFIGURE_OPTS could come from the command line or could be
+ # set/modified by configure.m4 if the build or host tuples aren't the same
+@@ -38,7 +38,7 @@ PJPROJECT_CONFIG_OPTS = $(PJPROJECT_CONFIGURE_OPTS) --
+ --disable-libwebrtc \
+ --disable-upnp \
+ --without-external-pa \
+- --without-external-srtp
++ --with-external-srtp
+
+ ifneq ($(AST_DEVMODE),yes)
+ PJPROJECT_CONFIG_OPTS += --disable-resample --disable-g711-codec