head	1.22;
access;
symbols
	pkgsrc-2026Q1:1.19.0.2
	pkgsrc-2026Q1-base:1.19
	pkgsrc-2025Q4:1.16.0.2
	pkgsrc-2025Q4-base:1.16
	pkgsrc-2025Q3:1.13.0.2
	pkgsrc-2025Q3-base:1.13
	pkgsrc-2025Q2:1.11.0.2
	pkgsrc-2025Q2-base:1.11
	pkgsrc-2025Q1:1.5.0.2
	pkgsrc-2025Q1-base:1.5
	pkgsrc-2024Q4:1.4.0.2
	pkgsrc-2024Q4-base:1.4;
locks; strict;
comment	@# @;


1.22
date	2026.05.14.16.40.32;	author ryoon;	state Exp;
branches;
next	1.21;
commitid	tKipFjQKzke3NNFG;

1.21
date	2026.04.13.02.50.22;	author jnemeth;	state Exp;
branches;
next	1.20;
commitid	asWxYUR8LsKZbKBG;

1.20
date	2026.04.10.08.41.35;	author wiz;	state Exp;
branches;
next	1.19;
commitid	4LhvV4JecdcpeoBG;

1.19
date	2026.02.16.03.21.59;	author jnemeth;	state Exp;
branches;
next	1.18;
commitid	5Lea2Y7qQ7HqayuG;

1.18
date	2026.02.06.10.04.21;	author wiz;	state Exp;
branches;
next	1.17;
commitid	MwQEYCXeWSFvIitG;

1.17
date	2026.01.07.08.46.04;	author wiz;	state Exp;
branches;
next	1.16;
commitid	1wQ3ICD8eebefrpG;

1.16
date	2025.12.01.04.01.41;	author jnemeth;	state Exp;
branches;
next	1.15;
commitid	vrmejXqb8xlUQEkG;

1.15
date	2025.10.27.04.35.13;	author jnemeth;	state Exp;
branches;
next	1.14;
commitid	JJhSrU2fR36haagG;

1.14
date	2025.10.05.19.25.44;	author js;	state Exp;
branches;
next	1.13;
commitid	U70EDQkwOmfbOpdG;

1.13
date	2025.08.30.22.44.44;	author wiz;	state Exp;
branches;
next	1.12;
commitid	2izPxU30rhec4O8G;

1.12
date	2025.08.11.06.28.13;	author jnemeth;	state Exp;
branches;
next	1.11;
commitid	0bSVUmUbDZtihh6G;

1.11
date	2025.05.05.12.40.30;	author manu;	state Exp;
branches;
next	1.10;
commitid	U4Qy8TPlDsejuITF;

1.10
date	2025.04.24.14.13.23;	author wiz;	state Exp;
branches;
next	1.9;
commitid	A3VBjL8Zdd4LljSF;

1.9
date	2025.04.19.07.57.33;	author wiz;	state Exp;
branches;
next	1.8;
commitid	8J0gu7BGAw8XqDRF;

1.8
date	2025.04.18.06.51.09;	author kim;	state Exp;
branches;
next	1.7;
commitid	WHnizHmlxXrn6vRF;

1.7
date	2025.04.17.21.49.57;	author wiz;	state Exp;
branches;
next	1.6;
commitid	xcIXAVA292fk6sRF;

1.6
date	2025.04.15.15.35.01;	author manu;	state Exp;
branches;
next	1.5;
commitid	d2wIyb25I0ks5aRF;

1.5
date	2025.01.17.22.39.53;	author gavan;	state Exp;
branches;
next	1.4;
commitid	uVfHdGXfiKLWgTFF;

1.4
date	2024.11.14.22.18.55;	author wiz;	state Exp;
branches;
next	1.3;
commitid	JmuDYqwL4erbdFxF;

1.3
date	2024.11.01.12.51.40;	author wiz;	state Exp;
branches;
next	1.2;
commitid	QB4Wk02mZPuBuWvF;

1.2
date	2024.11.01.00.50.54;	author wiz;	state Exp;
branches;
next	1.1;
commitid	QT27BdVP362gvSvF;

1.1
date	2024.10.21.05.12.44;	author jnemeth;	state Exp;
branches;
next	;
commitid	cZ96k12iK0kpjuuF;


desc
@@


1.22
log
@*: Recursive revbump from security/nettle-4.0
@
text
@# $NetBSD: Makefile,v 1.21 2026/04/13 02:50:22 jnemeth Exp $
#
# NOTE: when updating this package, there are two places that sound
#       tarballs need to be checked; look in ${WRKSRC}/sounds/Makefile
#       to find out the current sound file versions
#       Also look in ${WRKSRC}/third-party/versions.mak for pjproject

DISTNAME=	asterisk-22.9.0
PKGREVISION=	1
CATEGORIES=	comms net audio
MASTER_SITES=	https://downloads.asterisk.org/pub/telephony/asterisk/
MASTER_SITES+=	https://downloads.asterisk.org/pub/telephony/asterisk/old-releases/
MASTER_SITES+=	https://downloads.asterisk.org/pub/telephony/sounds/releases/
DIST_SUBDIR=	${PKGNAME_NOREV}
DISTFILES=	${DEFAULT_DISTFILES}

COMMENT=	The Asterisk Software PBX
LICENSE=	gnu-gpl-v2

EXTRACT_ONLY=	${DISTNAME}.tar.gz
MAINTAINER=	jnemeth@@NetBSD.org
HOMEPAGE=	https://www.asterisk.org/

MAKE_JOBS_SAFE=	NO

# known to have issues on i386, block the package until the bug is fixed
BROKEN_ON_PLATFORM=	NetBSD-*-i386

CONFLICTS+=	asterisk-sounds-extra-[0-9]*

.include "../../mk/bsd.prefs.mk"

USE_TOOLS+=		bison gmake gsed perl:run pkg-config tar bash:run
USE_LANGUAGES=		c c++
REPLACE_BASH+=		contrib/scripts/astversion
REPLACE_BASH+=		contrib/scripts/ast_coredumper
REPLACE_BASH+=		contrib/scripts/ast_logescalator
REPLACE_BASH+=		contrib/scripts/ast_loggrabber
REPLACE_PERL+=		agi/DialAnMp3.agi agi/agi-test.agi
REPLACE_PERL+=		agi/fastagi-test agi/jukebox.agi agi/numeralize
REPLACE_PERL+=		contrib/scripts/vmail.cgi
REPLACE_PYTHON+=	contrib/scripts/reflocks.py contrib/scripts/refstats.py

CHECK_INTERPRETER_SKIP+=	libdata/asterisk/scripts/refcounter.py

GNU_CONFIGURE=		yes
CONFIGURE_ARGS+=	--datarootdir=${PREFIX}/libdata
CONFIGURE_ARGS+=	--sysconfdir=${PKG_SYSCONFDIR}
CONFIGURE_ARGS+=	--without-gtk2
# XXX remove when lang/lua gets builtin.mk
CONFIGURE_ARGS+=	--without-lua
CONFIGURE_ARGS+=	--without-unbound
CONFIGURE_ENV+=		ac_cv_path_XMLSTARLET=":"
# XXX uncomment below to debug build issues
#CONFIGURE_ENV+=		PJPROJECT_CONFIGURE_OPTS="NOISY_BUILD=yes"

.if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 069900
CONFIGURE_ARGS+=	--without-srtp
.else
CONFIGURE_ARGS+=	--with-srtp
PLIST.srtp=		YES
.include "../../comms/srtp/buildlink3.mk"
.endif

INSTALL_TARGET=		install samples
INSTALLATION_DIRS+=	lib/pkgconfig share/doc/${PKGBASE}
INSTALLATION_DIRS+=	share/examples/asterisk share/examples/rc.d
INSTALLATION_DIRS+=	${ASTDATADIR}/sounds/en ${ASTDATADIR}/moh

BUILD_DEFS+=		VARBASE

ASTERISK_USER?=			asterisk
ASTERISK_GROUP?=		asterisk
PKG_GROUPS=			${ASTERISK_GROUP}
PKG_USERS=			${ASTERISK_USER}:${ASTERISK_GROUP}
PKG_GECOS.${ASTERISK_USER}=	Asterisk PBX
PKG_GROUPS_VARS=		ASTERISK_GROUP
PKG_USERS_VARS=			ASTERISK_USER
FILES_SUBST+=			ASTERISK_USER=${ASTERISK_USER}
FILES_SUBST+=			ASTERISK_GROUP=${ASTERISK_GROUP}
MESSAGE_SUBST+=			ASTERISK_USER=${ASTERISK_USER}
MESSAGE_SUBST+=			ASTERISK_GROUP=${ASTERISK_GROUP}

# Various path settings for Asterisk
PKG_SYSCONFSUBDIR=	asterisk
PKG_SYSCONFDIR_PERMS=	${ASTERISK_USER} ${ASTERISK_GROUP} 0755
ASTETCDIR=		${PKG_SYSCONFDIR}
ASTEXAMPLEDIR=		${PREFIX}/share/examples/asterisk
ASTDBDIR=		${VARBASE}/db/asterisk
ASTSPOOLDIR=		${VARBASE}/spool/asterisk
ASTLOGDIR=		${VARBASE}/log/asterisk
MESSAGE_SUBST+=		ASTDBDIR=${ASTDBDIR}
MESSAGE_SUBST+=		ASTSPOOLDIR=${ASTSPOOLDIR}
MESSAGE_SUBST+=		ASTLOGDIR=${ASTLOGDIR}
ASTVARRUNDIR=		${VARBASE}/run/asterisk
FILES_SUBST+=		ASTVARRUNDIR=${ASTVARRUNDIR}
ASTDATADIR=		${PREFIX}/libdata/asterisk
MAKE_FLAGS+=		ASTLIBDIR=${PREFIX}/lib/asterisk
MAKE_FLAGS+=		ASTVARLIBDIR=${ASTDATADIR}
MAKE_FLAGS+=		ASTKEYDIR=${ASTDATADIR}
MAKE_FLAGS+=		ASTDATADIR=${ASTDATADIR}
MAKE_FLAGS+=		ASTSPOOLDIR=${ASTSPOOLDIR}
MAKE_FLAGS+=		ASTLOGDIR=${ASTLOGDIR}
MAKE_FLAGS+=		ASTHEADERDIR=${PREFIX}/include/asterisk
MAKE_FLAGS+=		ASTCONFPATH=${ASTETCDIR}/asterisk.conf
MAKE_FLAGS+=		ASTBINDIR=${PREFIX}/bin
MAKE_FLAGS+=		ASTSBINDIR=${PREFIX}/sbin
MAKE_FLAGS+=		ASTVARRUNDIR=${ASTVARRUNDIR}
MAKE_FLAGS+=		ASTMANDIR=${PREFIX}/${PKGMANDIR}
MAKE_FLAGS+=		ASTETCDIR=${ASTETCDIR}
MAKE_FLAGS+=		ASTDBDIR=${ASTDBDIR}
MAKE_FLAGS+=		AGI_DIR=${PREFIX}/libexec/agi-bin
MAKE_FLAGS+=		ASTEXAMPLEDIR=${ASTEXAMPLEDIR}
MAKE_FLAGS+=		WRKSRC=${WRKSRC}
MAKE_FLAGS+=		LDOPTS=${LDFLAGS:M*:Q}
MAKE_FLAGS+=		HTTP_DOCSDIR=${PREFIX}/share/httpd/htdocs
MAKE_FLAGS+=		HTTP_CGIDIR=${PREFIX}/libexec/cgi-bin
MAKE_FLAGS+=		OPTIMIZE=-O3
# uncomment the following to debug build problems
#MAKE_FLAGS+=		NOISY_BUILD=yes

.if ${MACHINE_PLATFORM:MSunOS-*-i386}
BUILDLINK_TRANSFORM+=	rm:-march=i386
.endif

PLIST_VARS+=	kqueue
.if defined(OPSYS_HAS_KQUEUE)
PLIST.kqueue=	yes
.endif

PLIST_VARS+=		timerfd
.if defined(OPSYS_HAS_TIMERFD)
PLIST.timerfd=		yes
.else
CONFIGURE_ARGS+=	--without-timerfd
.endif

.include "options.mk"

# check sounds/Makefile for current version when upgrading package
DISTFILES+=	asterisk-extra-sounds-en-gsm-1.5.2.tar.gz

# pjproject
PJPROJ_VERSION=	2.16
SITES.pjproject-${PJPROJ_VERSION}.tar.bz2= \
	-https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/${PJPROJ_VERSION}/pjproject-${PJPROJ_VERSION}.tar.bz2
SITES.pjproject-${PJPROJ_VERSION}.md5= \
	-https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/${PJPROJ_VERSION}/MD5SUM.TXT
DISTFILES+=	pjproject-${PJPROJ_VERSION}.tar.bz2 pjproject-${PJPROJ_VERSION}.md5
ALL_ENV+=	EXTERNALS_CACHE_DIR=${DISTDIR}/${DIST_SUBDIR}

# Override default paths in config files
SUBST_CLASSES+=		configs
SUBST_STAGE.configs=	pre-configure
SUBST_FILES.configs=	configs/samples/cli_aliases.conf.sample
SUBST_FILES.configs+=	configs/samples/festival.conf.sample
SUBST_FILES.configs+=	configs/samples/http.conf.sample
SUBST_FILES.configs+=	configs/samples/iax.conf.sample
SUBST_FILES.configs+=	configs/samples/musiconhold.conf.sample
SUBST_FILES.configs+=	configs/samples/phoneprov.conf.sample
SUBST_SED.configs+=	-e 's|doc/|${PREFIX}/share/doc/${PKGBASE}/|'
SUBST_SED.configs+=	-e 's|/etc/asterisk|${ASTETCDIR}|'
SUBST_SED.configs+=	-e 's|/var/lib/asterisk|${ASTVARLIBDIR}|'
SUBST_SED.configs+=	-e "s|/usr/local/man|${ASTMANDIR}|"
SUBST_SED.configs+=	-e "s|/usr/local|${PREFIX}|"
SUBST_SED.configs+=	-e "s|/var|${VARBASE}|"

# XXX gross hack, remove when item is fixed
SUBST_CLASSES.NetBSD+=	autoconfig
SUBST_STAGE.autoconfig=	post-configure
SUBST_FILES.autoconfig=	include/asterisk/autoconfig.h
SUBST_SED.autoconfig=	-e "s|^\#define HAVE_GCC_ATOMICS 1|\#undef HAVE_GCC_ATOMICS|"
SUBST_SED.autoconfig+=	-e "s|^\#define HAVE_GETHOSTBYNAME_R_6 1|\#undef HAVE_GETHOSTBYNAME_R_6|"

# XXX gross hack, IP_PKTINFO in NetBSD isn't compatible with anything else
SUBST_CLASSES.NetBSD+=	pktinfo
SUBST_STAGE.pktinfo=	post-configure
SUBST_FILES.pktinfo=	include/asterisk/autoconfig.h
SUBST_SED.pktinfo=	-e "s|^\#define HAVE_PKTINFO 1|\#undef HAVE_PKTINFO|"

RCD_SCRIPTS=		asterisk
OWN_DIRS_PERMS+=	${ASTDBDIR} ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTSPOOLDIR} ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTSPOOLDIR}/dictate ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTSPOOLDIR}/meetme ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTSPOOLDIR}/monitor ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTSPOOLDIR}/outgoing ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTSPOOLDIR}/system ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTSPOOLDIR}/tmp ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTSPOOLDIR}/voicemail ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTSPOOLDIR}/voicemail/default ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTSPOOLDIR}/voicemail/default/1234 ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTSPOOLDIR}/voicemail/default/1234/INBOX ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTSPOOLDIR}/voicemail/default/1234/en ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
SPECIAL_PERMS+=		${ASTSPOOLDIR}/voicemail/default/1234/en/busy.gsm ${ASTERISK_USER} ${ASTERISK_GROUP} 0644
SPECIAL_PERMS+=		${ASTSPOOLDIR}/voicemail/default/1234/en/unavail.gsm ${ASTERISK_USER} ${ASTERISK_GROUP} 0644
OWN_DIRS_PERMS+=	${ASTSPOOLDIR}/voicemail/default/INBOX ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTSPOOLDIR}/voicemail/default/en ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTLOGDIR} ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTLOGDIR}/cdr-csv ${ASTERISK_USER} ${ASTERISK_GROUP} 0755
OWN_DIRS_PERMS+=	${ASTLOGDIR}/cdr-custom ${ASTERISK_USER} ${ASTERISK_GROUP} 0755

CONF_FILES_PERMS=	# empty
.for f in asterisk.conf extensions.conf
CONF_FILES_PERMS+=	${ASTEXAMPLEDIR}/${f:Q} ${PKG_SYSCONFDIR}/${f:Q} ${ASTERISK_USER} ${ASTERISK_GROUP} 0644
.endfor

.if !empty(PKG_OPTIONS:Masterisk-config)
# if we put all the files in $CONF_FILES, the message is _way_ too long.
.  for f in acl.conf adsi.conf aeap.conf agents.conf alarmreceiver.conf	\
	amd.conf app_skel.conf ari.conf ast_debug_tools.conf		\
	asterisk.adsi calendar.conf ccss.conf cdr.conf			\
	cdr_adaptive_odbc.conf cdr_beanstalkd.conf cdr_custom.conf	\
	cdr_manager.conf cdr_odbc.conf cdr_pgsql.conf			\
	cdr_sqlite3_custom.conf cdr_tds.conf cel.conf			\
	cel_beanstalkd.conf cel_custom.conf cel_odbc.conf		\
	cel_pgsql.conf cel_sqlite3_custom.conf cel_tds.conf		\
	chan_dahdi.conf	chan_mobile.conf chan_websocket.conf cli.conf	\
	cli_aliases.conf cli_permissions.conf codecs.conf		\
	confbridge.conf config_test.conf console.conf dbsep.conf	\
	dnsmgr.conf dsp.conf dundi.conf enum.conf extconfig.conf	\
	extensions.ael	 extensions.conf extensions.lua			\
	extensions_minivm.conf	 features.conf festival.conf		\
	followme.conf func_odbc.conf geolocation.conf hep.conf		\
	http.conf iax.conf iaxprov.conf indications.conf logger.conf	\
	manager.conf meetme.conf minivm.conf modules.conf motif.conf	\
	musiconhold.conf ooh323.conf phoneprov.conf pjproject.conf	\
	pjsip.conf pjsip_notify.conf pjsip_wizard.conf prometheus.conf	\
	queuerules.conf queues.conf res_config_mysql.conf		\
	res_config_odbc.conf res_config_sqlite3.conf res_corosync.conf	\
	res_curl.conf res_fax.conf res_http_media_cache.conf		\
	res_ldap.conf res_odbc.conf res_parking.conf res_pgsql.conf	\
	res_snmp.conf res_stun_monitor.conf resolver_unbound.conf	\
	rtp.conf say.conf sla.conf smdi.conf sorcery.conf ss7.timers	\
	stasis.conf statsd.conf stir_shaken.conf telcordia-1.adsi	\
	test_sorcery.conf udptl.conf unistim.conf users.conf		\
	voicemail.conf websocket_client.conf xmpp.conf
CONF_FILES_PERMS+=		${ASTEXAMPLEDIR}/${f:Q} ${PKG_SYSCONFDIR}/${f:Q} ${ASTERISK_USER} ${ASTERISK_GROUP} 0644
.  endfor
.endif

PTHREAD_OPTS+=	require native

.if ${OPSYS} == "Darwin" && exists(/usr/include/sys/poll.h)
post-patch:
	${ECHO} "#include <sys/poll.h>" > ${WRKSRC}/include/asterisk/poll-compat.h
.endif

post-install:
# check sounds directory for current versions when upgrading package
	${TAR} xzf ${WRKSRC}/sounds/asterisk-core-sounds-en-gsm-1.6.1.tar.gz -C ${DESTDIR}${ASTDATADIR}/sounds/en
	${TAR} xzf ${WRKSRC}/sounds/asterisk-moh-opsound-wav-2.03.tar.gz -C ${DESTDIR}${ASTDATADIR}/moh
	${TAR} xzf ${DISTDIR}/${DIST_SUBDIR}/asterisk-extra-sounds-en-gsm-1.5.2.tar.gz -C ${DESTDIR}${ASTDATADIR}/sounds/en
	${INSTALL_DATA} ${WRKSRC}/BUGS ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/COPYING ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/CREDITS ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.0.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.1.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.1.1.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.2.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.3.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.4.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.5.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.5.1.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.5.2.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.6.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.7.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.8.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.8.1.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.8.2.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.9.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.3.0.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.4.0.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.5.0.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.5.1.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.5.2.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.6.0.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.7.0.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.8.0.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.8.1.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.8.2.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.9.0.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/LICENSE ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/README-SERIOUSLY.bestpractices.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/README.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/SECURITY.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/Zaptel-to-DAHDI.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/doc/IAX2-security.pdf ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/doc/IAX2-security.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/doc/README.txt ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}

.if ${OPSYS} != "Darwin" && ${PKGSRC_COMPILER:Mclang}
.include "../../lang/libBlocksRuntime/buildlink3.mk"
LDFLAGS+= -L${PREFIX}/lib
.endif

.include "../../databases/sqlite3/buildlink3.mk"
.include "../../devel/editline/buildlink3.mk"
.include "../../devel/libuuid/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../lang/python/application.mk"
.include "../../textproc/jansson/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../textproc/libxml2/buildlink3.mk"
.include "../../www/curl/buildlink3.mk"
.include "../../mk/curses.buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/termcap.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
@


1.21
log
@Update to Asterisk 22.9.0:


## Change Log for Release asterisk-22.9.0

### Links:

 - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.9.0.html)
 - [GitHub Diff](https://github.com/asterisk/asterisk/compare/22.8.2...22.9.0)

### Summary:

- Commits: 50
- Commit Authors: 21
- Issues Resolved: 34
- Security Advisories Resolved: 0

### User Notes:

- #### acl: Add ACL support to http and ari
  A new section, type=restriction has been added to http.conf
  to allow an uri prefix based acl to be configured. See
  http.conf.sample for examples and more information.
  The user section of ari.conf can now contain an acl configuration
  to restrict users access. See ari.conf.sample for examples and more
  information

- #### res_rtp_asterisk.c: Fix DTLS packet drop when TURN loopback re-injection occurs before ICE candidate check
  WebRTC calls using TURN configured in rtp.conf (turnaddr,
  turnusername, turnpassword) will now correctly complete DTLS/SRTP
  negotiation. Previously all DTLS packets were silently dropped due to
  the loopback re-injection address not being in the ICE active candidate
  list.

- #### docs: Add "Provided-by" to doc XML and CLI output.
  The CLI help for applications, functions, manager commands and
  manager events now shows the module that provides its functionality.

- #### CDR/CEL Custom Performance Improvements
  Significant performance improvements have been made to the
  cdr_custom, cdr_sqlite3_custom, cel_custom and cel_sqlite3_custom modules.
  See the new sample config files for those modules to see how to benefit
  from them.

- #### chan_websocket: Add media direction.
  WebSocket now supports media direction, allowing for
  unidirectional media. This is done from the perspective of the
  application and can be set via channel origination, external media, or
  commands sent from the application. Check out
  https://docs.asterisk.org/Configuration/Channel-Drivers/WebSocket/ for
  more.

- #### app_queue: Add 'prio' setting to the 'force_longest_waiting_caller' option
  The 'force_longest_waiting_caller' option now supports a 'prio' setting.
  When set to 'prio', calls are offered by priority first, then by wait time.

- #### Upgrade bundled pjproject to 2.16.
  Bundled pjproject has been upgraded to 2.16. For more
  information on what all is included in this change, check out the
  pjproject Github page: https://github.com/pjsip/pjproject/releases

- #### res_pjsip_header_funcs: Add new PJSIP_INHERITABLE_HEADER dialplan function
  A new PJSIP_HEADER option has been added that allows
  inheriting pjsip headers from the inbound to the outbound bridged
  channel.
  Example- same => n,Set(PJSIP_INHERITABLE_HEADER(add,X-custom-1)=alpha)
  will add X-custom-1: alpha to the outbound pjsip channel INVITE
  upon Dial.

- #### app_queue: Fix rN raise_penalty ignoring min_penalty in calc_metric
  Fixes an issue where QUEUE_RAISE_PENALTY=rN could raise a member’s penalty below QUEUE_MIN_PENALTY during member selection. This could allow members intended to be excluded to be selected. The queue now consistently respects the minimum penalty when raising penalties, aligning member selection behavior with queue empty checks and documented rN semantics.


## Issue and Commit Detail:

### Closed Issues:

  - 449: [bug]:  PJSIP confuses media address after INVITE requiring authentication
  - 566: [bug]: core: SIGSEGV on DTMF when no timing modules loaded
  - 1356: [bug]: MESSAGE requests should not contain a Contact header
  - 1524: [bug]: PJSIP if sdp_session is blank the initial INVITE doesn't attach an SDP offer, worked in chan_sip
  - 1611: [bug]: asterisk deadlocked on start sometimes
  - 1612: [improvement]: pjsip: Upgrade bundled version to pjproject 2.16
  - 1637: [improvement]: force_longest_waiting_caller should also consider caller priority
  - 1641: [bug]: res_pjsip_config_wizard: Endpoints fail to update when Named ACLs change after reload
  - 1651: [bug]: Asterisk crashes with munmap_chunk() when using sorcery realtime for PJSIP registration objects
  - 1657: [bug]: Wrong dtmf payload is used when inbound invite contains 8K and 16K, and outgoing leg is using G722 and SRTP
  - 1670: [new-feature]: Add new option to PJSIP_HEADER to pass headers from the inbound to outbound channel.
  - 1691: [bug]: force_longest_waiting_caller stops offering calls if a call joins at the first position
  - 1703: [bug]: res_pjsip_pubsub: ao2 reference leak of subscription tree in ast_sip_subscription
  - 1707: [bug]: chan_iax2: Crash when processing video frames with negative length
  - 1716: [bug]: Ghost call when UAC didn't respond with 487 for a cancel request from server even after original call hangup.
  - 1724: [improvement]: say.c - added language support for pashto and dari
  - 1730: [bug]: CPP channel storage get_by_name_prefix does not check prefix match
  - 1755: [bug]: app_dial, utils.h: Compilation failure with -Wold-style-declaration and -Wdiscarded-qualifiers
  - 1781: [bug]: More discarded-qualifiers errors with gcc 15.2.1
  - 1783: [bug]: Several unused-but-set-variable warnings with gcc 16
  - 1785: [bug]: chan_websocket doesn’t work with genericplc and transcoding
  - 1786: [bug]: chan_dahdi: A few more discarded-qualifiers errors not caught previously
  - 1795: [bug]: DTLS packets dropped when TURN configured in rtp.conf due to loopback re-injection occurring before ICE candidate source check
  - 1797: [bug]: Potential logic issue in translated frame write loop (main/file.c)
  - 1802: [improvement]: app_dial: Channel name should be included in warnings during wait_for_answer
  - 1804: [new-feature]: dsp.c: Add support for R2 signaling
  - 1814: [bug]: A pjsip transport with an invalid config can cause issues with other transports
  - 1816: [bug]: ARI: RTPAUDIO channel vars aren't set if call hung up by ARI.
  - 1819: [bug]: When a 302 is received from a UAS, the cause and tech_cause codes set on the channel are incorrect.
  - 1831: [bug]:raise_exception() and EXCEPTION() read use channel datastores without holding ast_channel_lock
  - 1833: [bug]: Address security vulnerabilities in pjproject
  - 1844: [bug]: cdrel_custom isn't respecting the default time format for CEL records
  - 1845: [bug]:res_cdrel_custom produces wrong float timestamps
  - 1852: [bug]: res_cdrel_custom: connection to the sqlite3 database closes from time to time

### Commit List:

-  res_cdrel_custom: do not free config when no new config was loaded
-  res_cdrel_custom: Resolve several formatting issues.
-  res_pjsip: Address pjproject security vulnerabilities
-  pbx: Hold channel lock for exception datastore access
-  xmldoc.c: Fix memory leaks in handling of provided_by.
-  SECURITY.md: Update with additional instructions.
-  res_audiosocket: Fix header read loop to use correct buffer offset
-  manager.c : Fix CLI event display
-  chan_pjsip: Set correct cause codes for non-2XX responses.
-  res_pjsip_config_wizard: Force reload on Named ACL change events
-  rtp: Set RTPAUDIOQOS variables when ast_softhangup is called.
-  channel: Prevent crash during DTMF emulation when no timing module is loaded
-  res_pjsip: Remove temp transport state when a transport fails to load.
-  res_pjsip_messaging: Remove Contact header from out-of-dialog MESSAGE as per RFC3428
-  acl: Add ACL support to http and ari
-  res_rtp_asterisk.c: Fix DTLS packet drop when TURN loopback re-injection occurs before ICE candidate check
-  dsp.c: Add support for detecting R2 signaling tones.
-  app_dial: Include channel name in warnings during wait_for_answer.
-  main/file: fix translated-frame write loop to use current frame
-  docs: Add "Provided-by" to doc XML and CLI output.
-  chan_websocket_doc.xml: Add d(media_direction) option.
-  resource_channels.c: Fix validation response for externalMedia with AudioSockets
-  CDR/CEL Custom Performance Improvements
-  chan_websocket: Remove silence generation and frame padding.
-  chan_websocket: Add media direction.
-  fix: Add macOS (Darwin) compatibility for building Asterisk
-  astconfigparser.py: Fix regex pattern error by properly escaping string
-  res_rtp_asterisk: use correct sample rate lookup to account for g722
-  res_pjsip_outbound_registration.c: Prevent crash if load_module() fails
-  pjsip_configuration: Ensure s= and o= lines in SDP are never empty
-  res_pjsip_session: Make sure NAT hook runs when packet is retransmitted for whatever reason.
-  chan_dahdi: Fix discarded-qualifiers errors.
-  build: Fix unused-but-set-variable warnings with gcc 16.
-  build: Fix another GCC discarded-qualifiers const error.
-  chan_iax2: Fix crash due to negative length frame lengths.
-  build: Fix GCC discarded-qualifiers const errors.
-  endpoints: Allow access to latest snapshot directly.
-  app_dial, utils.h: Avoid old style declaration and discarded qualifier.
-  app_queue: Add 'prio' setting to the 'force_longest_waiting_caller' option
-  Upgrade bundled pjproject to 2.16.
-  res_pjsip_header_funcs: Add new PJSIP_INHERITABLE_HEADER dialplan function
-  app_queue: Queue Timing Parity with Dial() and Accurate Wait Metrics
-  stasis.c: Fix deadlock in stasis_topic_pool_get_topic during module load
-  app_queue: Fix rN raise_penalty ignoring min_penalty in calc_metric
-  app_queue: Only compare calls at 1st position across queues when forcing longest waiting caller.
-  channelstorage_cpp_map_name_id: Fix get_by_name_prefix prefix match
-  app_amd: Remove errant space in documentation for totalAnalysisTime.
-  say.c: added language support for pashto and dari
-  res_pjsip_session.c: Prevent INVITE failover when session is cancelled
-  res_pjsip_pubsub: Fix ao2 reference leak of subscription tree in ast_sip_subscription
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.20 2026/04/10 08:41:35 wiz Exp $
d9 1
@


1.20
log
@*: remove OWNER definition

OWNER, when it was introduced, was to protect packages deep in the
infrastructure by emphasizing that they should not be touched by
non-MAINTAINERs.

No infrastructure package still sets OWNER.

Note: non-trivial change to packages should be passed by MAINTAINERs.

As discussed on tech-pkg.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.19 2026/02/16 03:21:59 jnemeth Exp $
d8 1
a8 1
DISTNAME=	asterisk-22.8.2
d143 1
a143 1
PJPROJ_VERSION=	2.15.1
d270 1
d281 1
@


1.19
log
@update to Asterisk 22.8.2:



## Change Log for Release asterisk-22.8.2

### Links:

 - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.8.2.html)
 - [GitHub Diff](https://github.com/asterisk/asterisk/compare/22.8.1...22.8.2)

### Summary:

- Commits: 4
- Commit Authors: 2
- Issues Resolved: 0
- Security Advisories Resolved: 4
  - [GHSA-85x7-54wr-vh42](https://github.com/asterisk/asterisk/security/advisories/GHSA-85x7-54wr-vh42): Asterisk xml.c uses unsafe XML_PARSE_NOENT leading to potential XXE Injection
  - [GHSA-rvch-3jmx-3jf3](https://github.com/asterisk/asterisk/security/advisories/GHSA-rvch-3jmx-3jf3): ast_coredumper running as root sources ast_debug_tools.conf from /etc/asterisk; potentially leading to privilege escalation
  - [GHSA-v6hp-wh3r-cwxh](https://github.com/asterisk/asterisk/security/advisories/GHSA-v6hp-wh3r-cwxh): The Asterisk embedded web server's /httpstatus page echos user supplied values(cookie and query string) without sanitization
  - [GHSA-xpc6-x892-v83c](https://github.com/asterisk/asterisk/security/advisories/GHSA-xpc6-x892-v83c): ast_coredumper runs as root, and writes gdb init file to world writeable folder; leading to potential privilege escalation

### User Notes:

- #### ast_coredumper: check ast_debug_tools.conf permissions
  ast_debug_tools.conf must be owned by root and not be
  writable by other users or groups to be used by ast_coredumper or
  by ast_logescalator or ast_loggrabber when run as root.


### Upgrade Notes:

- #### http.c: Change httpstatus to default disabled and sanitize output.
  To prevent possible security issues, the `/httpstatus` page
  served by the internal web server is now disabled by default.  To explicitly
  enable it, set `enable_status=yes` in http.conf.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.18 2026/02/06 10:04:21 wiz Exp $
d20 1
a20 1
OWNER=		jnemeth@@NetBSD.org
@


1.18
log
@*: recursive bump for nettle 4.0 shlib major bump
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.17 2026/01/07 08:46:04 wiz Exp $
d8 1
a8 2
DISTNAME=	asterisk-22.7.0
PKGREVISION=	2
d217 11
a227 11
	chan_dahdi.conf	chan_mobile.conf cli.conf cli_aliases.conf	\
	cli_permissions.conf codecs.conf confbridge.conf		\
	config_test.conf console.conf dbsep.conf dnsmgr.conf dsp.conf	\
	dundi.conf enum.conf extconfig.conf extensions.ael		\
	extensions.conf extensions.lua extensions_minivm.conf		\
	features.conf festival.conf followme.conf func_odbc.conf	\
	geolocation.conf hep.conf http.conf iax.conf iaxprov.conf	\
	indications.conf logger.conf manager.conf meetme.conf		\
	minivm.conf modules.conf motif.conf musiconhold.conf		\
	ooh323.conf phoneprov.conf pjproject.conf pjsip.conf		\
	pjsip_notify.conf pjsip_wizard.conf prometheus.conf		\
d267 3
d277 3
@


1.17
log
@*: recursive bump for icu 78.1
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.16 2025/12/01 04:01:41 jnemeth Exp $
d9 1
a9 1
PKGREVISION=	1
@


1.16
log
@Update to Asterisk 22.7.0.


## Change Log for Release asterisk-22.7.0

### Links:

 - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.7.0.html)
 - [GitHub Diff](https://github.com/asterisk/asterisk/compare/22.6.0...22.7.0)

### Summary:

- Commits: 52
- Commit Authors: 16
- Issues Resolved: 36
- Security Advisories Resolved: 0

### User Notes:

- #### res_stir_shaken: Add STIR_SHAKEN_ATTESTATION dialplan function.
  The STIR_SHAKEN_ATTESTATION dialplan function has been added
  which will allow suppressing attestation on a call-by-call basis
  regardless of the profile attached to the outgoing endpoint.

- #### func_channel: Allow R/W of ADSI CPE capability setting.
  CHANNEL(adsicpe) can now be read or written to change
  the channels' ADSI CPE capability setting.

- #### func_hangupcause.c: Add access to Reason headers via HANGUPCAUSE()
  Added a new option to HANGUPCAUSE to access additional
  information about hangup reason. Reason headers from pjsip
  could be read using 'tech_extended' cause type.

- #### func_math: Add DIGIT_SUM function.
  The DIGIT_SUM function can be used to return the digit sum of
  a number.

- #### app_sf: Add post-digit timer option to ReceiveSF.
  The 't' option for ReceiveSF now allows for a timer since
  the last digit received, in addition to the number-wide timeout.

- #### app_dial: Allow fractional seconds for dial timeouts.
  The answer and progress dial timeouts now have millisecond
  precision, instead of having to be whole numbers.

- #### chan_dahdi: Add DAHDI_CHANNEL function.
  The DAHDI_CHANNEL function allows for getting/setting
  certain properties about DAHDI channels from the dialplan.


### Upgrade Notes:

- #### app_queue.c: Fix error in Queue parameter documentation.
  As part of Asterisk 21, macros were removed from Asterisk.
  This resulted in argument order changing for the Queue dialplan
  application since the macro argument was removed. Upgrade notice was
  missed when this was done, so this upgrade note has been added to
  provide a record of such and a notice to users who may have not upgraded
  yet.

- #### res_audiosocket: add message types for all slin sample rates
  New audiosocket message types 0x11 - 0x18 has been added
  for slin12, slin16, slin24, slin32, slin44, slin48, slin96, and
  slin192 audio. External applications using audiosocket may need to be
  updated to support these message types if the audiosocket channel is
  created with one of these audio formats.

- #### taskpool: Add taskpool API, switch Stasis to using it.
  The threadpool_* options in stasis.conf have now been deprecated
  though they continue to be read and used. They have been replaced with taskpool
  options that give greater control over the underlying taskpool used for stasis.


### Developer Notes:

- #### chan_pjsip: Add technology-specific off-nominal hangup cause to events.
  A "tech_cause" parameter has been added to the
  ChannelHangupRequest and ChannelDestroyed ARI event messages and a "TechCause"
  parameter has been added to the HangupRequest, SoftHangupRequest and Hangup
  AMI event messages.  For chan_pjsip, these will be set to the last SIP
  response status code for off-nominally terminated calls.  The parameter is
  suppressed for nominal termination.

- #### ARI: The bridges play and record APIs now handle sample rates > 8K correctly.
  The ARI /bridges/play and /bridges/record REST APIs have new
  parameters that allow the caller to specify the format to be used on the
  "Announcer" and "Recorder" channels respecitvely.

- #### taskpool: Add taskpool API, switch Stasis to using it.
  The taskpool API has been added for common usage of a
  pool of taskprocessors. It is suggested to use this API instead of the
  threadpool+taskprocessor approach.


## Issue and Commit Detail:

### Closed Issues:

  - 781: [improvement]: Allow call by call disabling Stir/Shaken header inclusion
  - 1340: [bug]: comfort noise packet corrupted
  - 1419: [bug]: static code analysis issues in app_adsiprog.c
  - 1422: [bug]: static code analysis issues in apps/app_externalivr.c
  - 1425: [bug]: static code analysis issues in apps/app_queue.c
  - 1434: [improvement]: pbx_variables: Create real channel for dialplan eval CLI command
  - 1436: [improvement]: res_cliexec: Avoid unnecessary cast to char*
  - 1455: [new-feature]: chan_dahdi: Add DAHDI_CHANNEL function
  - 1467: [bug]: Crash in res_pjsip_refer during REFER progress teardown with PJSIP_TRANSFER_HANDLING(ari-only)
  - 1478: [improvement]: Stasis threadpool -> taskpool
  - 1479: [bug]: The ARI bridge play and record APIs limit audio bandwidth by forcing the slin8 format.
  - 1483: [improvement]: sig_analog: Eliminate possible timeout for Last Number Redial
  - 1485: [improvement]: func_scramble: Add example to XML documentation.
  - 1487: [improvement]: app_dial: Allow partial seconds to be used for dial timeouts
  - 1489: [improvement]: config_options.c: Improve misleading error message
  - 1491: [bug]: Segfault: `channelstorage_cpp` fast lookup without lock (`get_by_name_exact`/`get_by_uniqueid`) leads to UAF during hangup
  - 1493: [new-feature]: app_sf: Add post-digit timer option
  - 1496: [improvement]: dsp.c: Minor fixes to debug log messages
  - 1499: [new-feature]: func_math: Add function to return the digit sum
  - 1501: [improvement]: codec_builtin: Fix some inaccurate quality weights.
  - 1505: [improvement]: res_fax: Add XML documentation for channel variables
  - 1507: [improvement]: res_tonedetect: Minor formatting issue in documentation
  - 1509: [improvement]: res_fax.c — log debug error as debug, not regular log
  - 1510: [new-feature]: sig_analog: Allow '#' to end the inter-digit timeout when dialing.
  - 1514: [improvement]: func_channel: Allow R/W of ADSI CPE capability setting.
  - 1517: [improvement]: core_unreal: Preserve ADSI capability when dialing Local channels
  - 1519: [improvement]: app_dial / func_callerid: DNIS information is not propagated by Dial
  - 1525: [bug]: chan_websocket: fix use of raw payload variable for string comparison in process_text_message
  - 1534: [bug]: app_queue when using gosub breaks dialplan when going from 20 to 21, What's new in 21 doesn't mention it's a breaking change,
  - 1535: [bug]: chan_pjsip changes SSRC on WebRTC channels, which is unsupported by some browsers
  - 1536: [bug]: asterisk -rx connects to console instead of executing a command
  - 1539: [bug]: safe_asterisk without TTY doesn't log to file
  - 1544: [improvement]: While Receiving the MediaConnect Message Using External Media Over websocket ChannelID is  Details are missing
  - 1554: [bug]: safe_asterisk recurses into subdirectories of startup.d after f97361
  - 1559: [improvement]: Handle TLS handshake attacks in order to resolve the issue of exceeding the maximum number of HTTPS sessions.
  - 1578: [bug]: Deadlock with externalMedia custom channel id and cpp map channel backend

### Commit List:

-  channelstorage:  Allow storage driver read locking to be skipped.
-  res_audiosocket: fix temporarily unavailable
-  safe_asterisk: Resolve a POSIX sh problem and restore globbing behavior.
-  res_stir_shaken: Add STIR_SHAKEN_ATTESTATION dialplan function.
-  iostream.c: Handle TLS handshake attacks in order to resolve the issue of exceeding the maximum number of HTTPS sessions.
-  chan_pjsip: Disable SSRC change for WebRTC endpoints.
-  chan_websocket: Add channel_id to MEDIA_START, DRIVER_STATUS and DTMF_END events.
-  safe_asterisk:  Fix logging and sorting issue.
-  Fix Endianness detection in utils.h for non-Linux
-  app_queue.c: Fix error in Queue parameter documentation.
-  devicestate: Don't publish redundant device state messages.
-  chan_pjsip: Add technology-specific off-nominal hangup cause to events.
-  res_audiosocket: add message types for all slin sample rates
-  res_fax.c: lower FAXOPT read warning to debug level
-  endpoints: Remove need for stasis subscription.
-  app_queue: Allow stasis message filtering to work.
-  taskpool:  Fix some references to threadpool that should be taskpool.
-  Update contact information for anthm
-  chan_websocket.c: Change payload references to command instead.
-  func_callerid: Document limitation of DNID fields.
-  func_channel: Allow R/W of ADSI CPE capability setting.
-  core_unreal: Preserve ADSI capability when dialing Local channels.
-  func_hangupcause.c: Add access to Reason headers via HANGUPCAUSE()
-  sig_analog: Allow '#' to end the inter-digit timeout when dialing.
-  func_math: Add DIGIT_SUM function.
-  app_sf: Add post-digit timer option to ReceiveSF.
-  codec_builtin.c: Adjust some of the quality scores to reflect reality.
-  res_tonedetect: Fix formatting of XML documentation.
-  res_fax: Add XML documentation for channel variables.
-  channelstorage_cpp_map_name_id: Add read locking around retrievals.
-  app_dial: Allow fractional seconds for dial timeouts.
-  dsp.c: Make minor fixes to debug log messages.
-  config_options.c: Improve misleading warning.
-  func_scramble: Add example to XML documentation.
-  sig_analog: Eliminate potential timeout with Last Number Redial.
-  ARI: The bridges play and record APIs now handle sample rates > 8K correctly.
-  res_pjsip_geolocation: Add support for Geolocation loc-src parameter
-  sorcery: Move from threadpool to taskpool.
-  stasis_channels.c: Make protocol_id optional to enable blind transfer via ari
-  Fix some doxygen, typos and whitespace
-  stasis_channels.c: Add null check for referred_by in ast_ari_transfer_message_create
-  app_queue: Add NULL pointer checks in app_queue
-  app_externalivr: Prevent out-of-bounds read during argument processing.
-  chan_dahdi: Add DAHDI_CHANNEL function.
-  taskpool: Update versions for taskpool stasis options.
-  taskpool: Add taskpool API, switch Stasis to using it.
-  app_adsiprog: Fix possible NULL dereference.
-  manager.c: Fix presencestate object leak
-  audiohook.c: Ensure correct AO2 reference is dereffed.
-  res_cliexec: Remove unnecessary casts to char*.
-  rtp_engine.c: Add exception for comfort noise payload.
-  pbx_variables.c: Create real channel for "dialplan eval function".
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.15 2025/10/27 04:35:13 jnemeth Exp $
d9 1
@


1.15
log
@Upgrade to Asterisk 22.6.0.



## Change Log for Release asterisk-22.6.0

### Links:

 - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.6.0.html)
 - [GitHub Diff](https://github.com/asterisk/asterisk/compare/22.5.2...22.6.0)

### Summary:

- Commits: 54
- Commit Authors: 22
- Issues Resolved: 40
- Security Advisories Resolved: 0

### User Notes:

- #### app_queue.c: Add new global 'log_unpause_on_reason_change'
  Add new global option 'log_unpause_on_reason_change' that
  is default disabled. When enabled cause addition of UNPAUSE event on
  every re-PAUSE with reason changed.

- #### pbx_builtins: Allow custom tone for WaitExten.
  The tone used while waiting for digits in WaitExten
  can now be overridden by specifying an argument for the 'd'
  option.

- #### res_tonedetect: Add option for TONE_DETECT detection to auto stop.
  The 'e' option for TONE_DETECT now allows detection to
  be disabled automatically once the desired number of matches have
  been fulfilled, which can help prevent race conditions in the
  dialplan, since TONE_DETECT does not need to be disabled after
  a hit.

- #### sorcery: Prevent duplicate objects and ensure missing objects are created on u..
  Users relying on Sorcery multiple writable backends configurations
  (e.g., astdb + realtime) may now enable update_or_create_on_update_miss = yes
  in sorcery.conf to ensure missing objects are recreated after temporary backend
  failures. Default behavior remains unchanged unless explicitly enabled.

- #### chan_websocket: Allow additional URI parameters to be added to the outgoing URI.
  A new WebSocket channel driver option `v` has been added to the
  Dial application that allows you to specify additional URI parameters on
  outgoing connections. Run `core show application Dial` from the Asterisk CLI
  to see how to use it.

- #### app_chanspy: Add option to not automatically answer channel.
  ChanSpy and ExtenSpy can now be configured to not
  automatically answer the channel by using the 'N' option.

- #### cel: Add STREAM_BEGIN, STREAM_END and DTMF event types.
  Enabling the tracking of the
  STREAM_BEGIN and the STREAM_END event
  types in cel.conf will log media files and
  music on hold played to each channel.
  The STREAM_BEGIN event's extra field will
  contain a JSON with the file details (path,
  format and language), or the class name, in
  case of music on hold is played. The DTMF
  event's extra field will contain a JSON with
  the digit and the duration in milliseconds.

- #### res_srtp: Add menuselect options to enable AES_192, AES_256 and AES_GCM
  Options are now available in the menuselect "Resource Modules"
  category that allow you to enable the AES_192, AES_256 and AES_GCM
  cipher suites in res_srtp. Of course, libsrtp and OpenSSL must support
  them but modern versions do.  Previously, the only way to enable them was
  to set the CFLAGS environment variable when running ./configure.
  The default setting is to disable them preserving existing behavior.

- #### cdr: add CANCEL dispostion in CDR
  A new CDR option "canceldispositionenabled" has been added
  that when set to true, the NO ANSWER disposition will be split into
  two dispositions: CANCEL and NO ANSWER. The default value is 'no'

- #### func_curl: Allow auth methods to be set.
  The httpauth field in CURLOPT now allows the authentication
  methods to be set.

- #### Media over Websocket Channel Driver
  A new channel driver "chan_websocket" is now available. It can
  exchange media over both inbound and outbound websockets and will both frame
  and re-time the media it receives.
  See http://s.asterisk.net/mow for more information.
  The ARI channels/externalMedia API now includes support for the


### Developer Notes:

- #### ARI: Add command to indicate progress to a channel
  A new ARI endpoint is available at `/channels/{channelId}/progress` to indicate progress to a channel.

- #### options:  Change ast_options from ast_flags to ast_flags64.
  The 32-bit ast_options has no room left to accomodate new
  options and so has been converted to an ast_flags64 structure. All internal
  references to ast_options have been updated to use the 64-bit flag
  manipulation macros.  External module references to the 32-bit ast_options
  should continue to work on little-endian systems because the
  least-significant bytes of a 64 bit integer will be in the same location as a
  32-bit integer.  Because that's not the case on big-endian systems, we've
  swapped the bytes in the flags manupulation macros on big-endian systems
  so external modules should still work however you are encouraged to test.


## Issue and Commit Detail:

### Closed Issues:

  - 401: [bug]: app_dial: Answer Gosub option passthrough regression
  - 927: [bug]: no audio when media source changed during the call
  - 1176: [bug]: ast_slinear_saturated_multiply_float produces potentially audible distortion artifacts
  - 1259: [bug]: New TenantID feature doesn't seem to set CDR for incoming calls
  - 1260: [bug]: Asterisk sends RTP audio stream before ICE/DTLS completes
  - 1269: [bug]: MixMonitor with D option produces corrupt file
  - 1273: [bug]: When executed with GotoIf, the action Redirect does not take effect and causes confusion in dialplan execution.
  - 1280: [improvement]: logging playback of audio per channel
  - 1289: [bug]: sorcery - duplicate objects from multiple backends and backend divergence on update
  - 1301: [bug]: sig_analog: fgccamamf doesn't handle STP, STP2, or STP3
  - 1304: [bug]: FLUSH_MEDIA does not reset frame_queue_length in WebSocket channel
  - 1305: [bug]: Realtime incorrectly falls back to next backend on record-not-found (SQL_NO_DATA), causing incorrect behavior and delay
  - 1307: [improvement]: ast_tls_cert: Allow certificate validity to be configurable
  - 1309: [bug]: Crash with C++ alternative storage backend enabled
  - 1315:  [bug]: When executed with dialplan, the action Redirect does not take effect.
  - 1317: [bug]: AGI command buffer overflow with long variables
  - 1321: [improvement]: app_agent_pool: Remove obsolete documentation
  - 1323: [new-feature]: add CANCEL dispostion in CDR
  - 1327: [bug]: res_stasis_device_state: can't delete ARI Devicestate after asterisk restart
  - 1332: [new-feature]: func_curl: Allow auth methods to be set
  - 1349: [bug]: Race condition on redirect can cause missing Diversion header
  - 1352: [improvement]: Websocket channel with custom URI
  - 1353: [bug]: AST_DATA_DIR/sounds/custom directory not searched
  - 1358: [new-feature]: app_chanspy: Add option to not automatically answer channel
  - 1364: [bug]: bridge.c: BRIDGE_NOANSWER not always obeyed
  - 1366: [improvement]: func_frame_drop: Handle allocation failure properly
  - 1369: [bug]: test_res_prometheus: Compilation failure in devmode due to curlopts not using long type
  - 1371: [improvement]: func_frame_drop: Add debug messages for frames that can be dropped
  - 1375: [improvement]: dsp.c: Improve logging in tone_detect().
  - 1378: [bug]: chan_dahdi: dialmode feature is not properly reset between calls
  - 1380: [bug]: sig_analog: Segfault due to calling strcmp on NULL
  - 1384: [bug]: chan_websocket: asterisk crashes on hangup after STOP_MEDIA_BUFFERING command with id
  - 1386: [bug]: enabling announceposition_only_up prevents any queue position announcements
  - 1390: [improvement]: res_tonedetect: Add option to automatically end detection in TONE_DETECT
  - 1394: [improvement]: sig_analog: Skip Caller ID spill if Caller ID is disabled
  - 1396: [new-feature]: pbx_builtins: Make tone option for WaitExten configurable
  - 1401: [bug]: app_waitfornoise timeout is always less then configured because of time() usage
  - 1457: [bug]: segmentation fault because of a wrong ari config
  - 1462: [bug]: chan_websocket isn't handling the "opus" codec correctly.
  - 1474: [bug]: Media doesn't flow for video conference after res_rtp_asterisk change to stop media flow before DTLS completes


### Commit List:

-  res_rtp_asterisk.c: Use rtp->dtls in __rtp_sendto when rtcp mux is used.
-  chan_websocket: Fix codec validation and add passthrough option.
-  res_ari: Ensure outbound websocket config has a websocket_client_id.
-  chan_websocket.c: Add DTMF messages
-  app_queue.c: Add new global 'log_unpause_on_reason_change'
-  app_waitforsilence.c: Use milliseconds to calculate timeout time
-  Fix missing ast_test_flag64 in extconf.c
-  pbx_builtins: Allow custom tone for WaitExten.
-  res_tonedetect: Add option for TONE_DETECT detection to auto stop.
-  app_queue: fix comparison for announce-position-only-up
-  sig_analog: Skip Caller ID spill if usecallerid=no.
-  chan_dahdi: Fix erroneously persistent dialmode.
-  chan_websocket: Fix buffer overrun when processing TEXT websocket frames.
-  sig_analog: Fix SEGV due to calling strcmp on NULL.
-  ARI: Add command to indicate progress to a channel
-  dsp.c: Improve debug logging in tone_detect().
-  res_stasis_device_state: Fix delete ARI Devicestates after asterisk restart.
-  app_chanspy: Add option to not automatically answer channel.
-  xmldoc.c: Fix rendering of CLI output.
-  func_frame_drop: Add debug messages for dropped frames.
-  test_res_prometheus: Fix compilation failure on Debian 13.
-  func_frame_drop: Handle allocation failure properly.
-  pbx_lua.c: segfault when pass null data to term_color function
-  bridge.c: Obey BRIDGE_NOANSWER variable to skip answering channel.
-  res_rtp_asterisk: Don't send RTP before DTLS has negotiated.
-  app_dial.c: Moved channel lock to prevent deadlock
-  file.c: with "sounds_search_custom_dir = yes", search "custom" directory
-  cel: Add STREAM_BEGIN, STREAM_END and DTMF event types.
-  channelstorage_cpp_map_name_id.cc: Refactor iterators for thread-safety.
-  res_srtp: Add menuselect options to enable AES_192, AES_256 and AES_GCM
-  cdr: add CANCEL dispostion in CDR
-  func_curl: Allow auth methods to be set.
-  options:  Change ast_options from ast_flags to ast_flags64.
-  res_config_odbc: Prevent Realtime fallback on record-not-found (SQL_NO_DATA)
-  app_agent_pool: Remove documentation for removed option.
-  res_agi: Increase AGI command buffer size from 2K to 8K
-  ast_tls_cert: Make certificate validity configurable.
-  cdr.c: Set tenantid from party_a->base instead of chan->base.
-  app_mixmonitor:  Update the documentation concerning the "D" option.
-  sig_analog: Properly handle STP, ST2P, and ST3P for fgccamamf.
-  chan_websocket: Reset frame_queue_length to 0 after FLUSH_MEDIA
-  chan_pjsip.c: Change SSRC after media source change
-  Media over Websocket Channel Driver
-  bundled_pjproject: Avoid deadlock between transport and transaction
-  utils.h: Add rounding to float conversion to int.
-  res_musiconhold.c: Ensure we're always locked around music state access.
-  res_musiconhold.c: Annotate when the channel is locked.
-  res_musiconhold: Appropriately lock channel during start.



## Change Log for Release asterisk-22.5.2

### Links:

 - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.5.2.html)
 - [GitHub Diff](https://github.com/asterisk/asterisk/compare/22.5.1...22.5.2)

### Summary:

- Commits: 1
- Commit Authors: 1
- Issues Resolved: 0
- Security Advisories Resolved: 1
  - [GHSA-64qc-9x89-rx5j](https://github.com/asterisk/asterisk/security/advisories/GHSA-64qc-9x89-rx5j): A specifically malformed Authorization header in an incoming SIP request can cause Asterisk to crash


### Commit Authors:

- George Joseph: (1)

## Issue and Commit Detail:

### Closed Issues:

  - !GHSA-64qc-9x89-rx5j: A specifically malformed Authorization header in an incoming SIP request can cause Asterisk to crash


### Commit Details:

#### res_pjsip_authenticator_digest: Fix SEGV if get_authorization_hdr returns NULL.
  Author: George Joseph
  Date:   2025-08-28

  In the highly-unlikely event that get_authorization_hdr() couldn't find an
  Authorization header in a request, trying to get the digest algorithm
  would cauase a SEGV.  We now check that we have an auth header that matches
  the realm before trying to get the algorithm from it.

  Resolves: #GHSA-64qc-9x89-rx5j
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.14 2025/10/05 19:25:44 js Exp $
d8 1
a8 1
DISTNAME=	asterisk-22.6.0
d266 1
d273 1
@


1.14
log
@*: rev bump for curl
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.13 2025/08/30 22:44:44 wiz Exp $
d8 1
a8 2
DISTNAME=	asterisk-22.5.1
PKGREVISION=	2
a261 1
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.4.1.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
d264 2
a267 1
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-22.4.1.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
d270 2
@


1.13
log
@*: recursive bump for tiff growing lerc dependency
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.12 2025/08/11 06:28:13 jnemeth Exp $
d9 1
a9 1
PKGREVISION=	1
@


1.12
log
@Update Asterisk 22.5.1.  This catches up with multiple versions.

pkgsrc changes:
- minor pkglint fixup
- fix PR pkg/58978
- fix PR pkg/59478


-----


## Change Log for Release asterisk-22.5.1

### Links:

 - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.5.1.html)

### Summary:

- Commits: 2
- Commit Authors: 2
- Issues Resolved: 0
- Security Advisories Resolved: 2
  - [GHSA-mrq5-74j5-f5cr](https://github.com/asterisk/asterisk/security/advisories/GHSA-mrq5-74j5-f5cr): Remote DoS and possible RCE in asterisk/res/res_stir_shaken/verification.c
  - [GHSA-v9q8-9j8m-5xwp](https://github.com/asterisk/asterisk/security/advisories/GHSA-v9q8-9j8m-5xwp): Uncontrolled Search-Path Element in safe_asterisk script may allow local privilege escalation.

### User Notes:


### Upgrade Notes:

- #### safe_asterisk: Add ownership checks for /etc/asterisk/startup.d and its files.
  The safe_asterisk script now checks that, if it was run by the
  root user, the /etc/asterisk/startup.d directory and all the files it contains
  are owned by root.  If the checks fail, safe_asterisk will exit with an error
  and Asterisk will not be started.  Additionally, the default logging
  destination is now stderr instead of tty "9" which probably won't exist
  in modern systems.


## Issue and Commit Detail:

### Commits By Author:

- #### George Joseph (1):
  - res_stir_shaken: Test for missing semicolon in Identity header.

- #### ThatTotallyRealMyth (1):
  - safe_asterisk: Add ownership checks for /etc/asterisk/startup.d and its files.


-----


## Change Log for Release asterisk-22.5.0

### Links:

 - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.5.0.html)
 - [Downloads](https://downloads.asterisk.org/pub/telephony/asterisk)

### Summary:

- Commits: 29
- Commit Authors: 14
- Issues Resolved: 19
- Security Advisories Resolved: 1
  - [GHSA-c7p6-7mvq-8jq2](https://github.com/asterisk/asterisk/security/advisories/GHSA-c7p6-7mvq-8jq2): cli_permissions.conf: deny option does not work for disallowing shell commands

### User Notes:

- #### res_stir_shaken.so: Handle X5U certificate chains.
  The STIR/SHAKEN verification process will now load a full
  certificate chain retrieved via the X5U URL instead of loading only
  the end user cert.

- #### res_stir_shaken: Add "ignore_sip_date_header" config option.
  A new STIR/SHAKEN verification option "ignore_sip_date_header" has
  been added that when set to true, will cause the verification process to
  not consider a missing or invalid SIP "Date" header to be a failure.  This
  will make the IAT the sole "truth" for Date in the verification process.
  The option can be set in the "verification" and "profile" sections of
  stir_shaken.conf.
  Also fixed a bug in the port match logic.
  Resolves: #1251
  Resolves: #1271

- #### app_record: Add RECORDING_INFO function.
  The RECORDING_INFO function can now be used
  to retrieve the duration of a recording.

- #### app_queue: queue rules – Add support for QUEUE_RAISE_PENALTY=rN to raise penal..
  This change introduces QUEUE_RAISE_PENALTY=rN, allowing selective penalty raises
  only for members whose current penalty is within the [min_penalty, max_penalty] range.
  Members with lower or higher penalties are unaffected.
  This behavior is backward-compatible with existing queue rule configurations.

- #### res_odbc: cache_size option to limit the cached connections.
  New cache_size option for res_odbc to on a per class basis limit the
  number of cached connections. Please reference the sample configuration
  for details.

- #### res_odbc: cache_type option for res_odbc.
  When using res_odbc it should be noted that back-end
  connections to the underlying database can now be configured to re-use
  the cached connections in a round-robin manner rather than repeatedly
  re-using the same connection.  This helps to keep connections alive, and
  to purge dead connections from the system, thus more dynamically
  adjusting to actual load.  The downside is that one could keep too many
  connections active for a longer time resulting in resource also begin
  consumed on the database side.

- #### ARI Outbound Websockets
  Asterisk can now establish websocket sessions _to_ your ARI applications
  as well as accepting websocket sessions _from_ them.
  Full details: http://s.asterisk.net/ari-outbound-ws

- #### res_websocket_client: Create common utilities for websocket clients.
  A new module "res_websocket_client" and config file
  "websocket_client.conf" have been added to support several upcoming new
  capabilities that need common websocket client configuration.

- #### asterisk.c: Add option to restrict shell access from remote consoles.
  A new asterisk.conf option 'disable_remote_console_shell' has
  been added that, when set, will prevent remote consoles from executing
  shell commands using the '!' prefix.
  Resolves: #GHSA-c7p6-7mvq-8jq2

- #### sig_analog: Add Call Waiting Deluxe support.
  Call Waiting Deluxe can now be enabled for FXS channels
  by enabling its corresponding option.


### Upgrade Notes:

- #### jansson: Upgrade version to jansson 2.14.1
  jansson has been upgraded to 2.14.1. For more
  information visit jansson Github page: https://github.com/akheron/jansson/releases/tag/v2.14.1
  Resolves: #1178

- #### Alternate Channel Storage Backends
  With this release, you can now select an alternate channel
  storage backend based on C++ Maps.  Using the new backend may increase
  performance and reduce the chances of deadlocks on heavily loaded systems.
  For more information, see http://s.asterisk.net/dc679ec3


## Issue and Commit Detail:

### Closed Issues:

  - !GHSA-c7p6-7mvq-8jq2: cli_permissions.conf: deny option does not work for disallowing shell commands
  - 271: [new-feature]: sig_analog: Add Call Waiting Deluxe support.
  - 548: [improvement]: Get Record() audio duration/length
  - 1088: [bug]: app_sms: Compilation failure in DEVMODE due to stringop-overflow error in GCC 15 pre-release
  - 1141: [bug]: res_pjsip: Contact header set incorrectly for call redirect (302 Moved temp.) when external_* set
  - 1178: [improvement]: jansson: Upgrade version to jansson 2.14.1
  - 1230: [bug]: ast_frame_adjust_volume and ast_frame_adjust_volume_float crash on interpolated frames
  - 1234: [bug]: Set CalllerID lost on DTMF attended transfer
  - 1240: [bug]: WebRTC invites failing on Chrome 136
  - 1243: [bug]: make menuconfig fails due to changes in GTK callbacks
  - 1251: [improvement]: PJSIP shouldn't require SIP Date header to process full shaken passport which includes iat
  - 1254: [bug]: ActiveChannels not reported when using AMI command PJSIPShowEndpoint
  - 1271: [bug]: STIR/SHAKEN not accepting port 8443 in certificate URLs
  - 1272: [improvement]: STIR/SHAKEN handle X5U certificate chains
  - 1276: MixMonitor produces broken recordings in bridged calls with asymmetric codecs (e.g., alaw vs G.722)
  - 1279: [bug]: regression: 20.12.0 downgrades quality of wav16 recordings
  - 1282: [bug]: Alternate Channel Storage Backends menuselect not enabling it
  - 1287: [bug]: channelstorage.c: Compilation failure with DEBUG_FD_LEAKS
  - 1288: [bug]: Crash when destroying channel with C++ alternative storage backend enabled
  - ASTERISK-30373: sig_analog: Add Call Waiting Deluxe options

### Commits By Author:

- #### George Joseph (10):
  - Alternate Channel Storage Backends
  - lock.h: Add include for string.h when DEBUG_THREADS is defined.
  - asterisk.c: Add option to restrict shell access from remote consoles.
  - res_websocket_client: Create common utilities for websocket clients.
  - ARI Outbound Websockets
  - res_websocket_client:  Add more info to the XML documentation.
  - res_stir_shaken: Add "ignore_sip_date_header" config option.
  - res_stir_shaken.so: Handle X5U certificate chains.
  - channelstorage_cpp_map_name_id: Fix callback returning non-matching channels.
  - channelstorage: Rename callbacks that conflict with DEBUG_FD_LEAKS.

- #### Itzanh (1):
  - app_sms.c: Fix sending and receiving SMS messages in protocol 2

- #### Jaco Kroon (2):
  - res_odbc: cache_type option for res_odbc.
  - res_odbc: cache_size option to limit the cached connections.

- #### Joe Searle (1):
  - pjproject: Increase maximum SDP formats and attribute limits

- #### Michal Hajek (1):
  - audiohook.c: Improve frame pairing logic to avoid MixMonitor breakage with mix..

- #### Mike Bradeen (2):
  - chan_pjsip: Serialize INVITE creation on DTMF attended transfer
  - res_pjsip_nat.c: Do not overwrite transfer host

- #### Nathan Monfils (1):
  - manager.c: Invalid ref-counting when purging events

- #### Naveen Albert (3):
  - app_sms: Ignore false positive vectorization warning.
  - sig_analog: Add Call Waiting Deluxe support.
  - app_record: Add RECORDING_INFO function.

- #### Sean Bright (2):
  - res_pjsip: Fix empty `ActiveChannels` property in AMI responses.
  - channelstorage_makeopts.xml: Remove errant XML character.

- #### Stanislav Abramenkov (1):
  - jansson: Upgrade version to jansson 2.14.1

- #### Sven Kube (2):
  - res_audiosocket.c: Set the TCP_NODELAY socket option
  - res_audiosocket.c: Add retry mechanism for reading data from AudioSocket

- #### Thomas B. Clark (1):
  - menuselect: Fix GTK menu callbacks for Fedora 42 compatibility

- #### mkmer (1):
  - frame.c: validate frame data length is less than samples when adjusting volume

- #### phoneben (1):
  - app_queue: queue rules – Add support for QUEUE_RAISE_PENALTY=rN to raise penal..


### Commit List:

-  channelstorage: Rename callbacks that conflict with DEBUG_FD_LEAKS.
-  channelstorage_cpp_map_name_id: Fix callback returning non-matching channels.
-  channelstorage_makeopts.xml: Remove errant XML character.
-  res_stir_shaken.so: Handle X5U certificate chains.
-  res_stir_shaken: Add "ignore_sip_date_header" config option.
-  app_record: Add RECORDING_INFO function.
-  app_sms.c: Fix sending and receiving SMS messages in protocol 2
-  res_websocket_client:  Add more info to the XML documentation.
-  res_odbc: cache_size option to limit the cached connections.
-  res_odbc: cache_type option for res_odbc.
-  res_pjsip: Fix empty `ActiveChannels` property in AMI responses.
-  ARI Outbound Websockets
-  res_websocket_client: Create common utilities for websocket clients.
-  asterisk.c: Add option to restrict shell access from remote consoles.
-  frame.c: validate frame data length is less than samples when adjusting volume
-  res_audiosocket.c: Add retry mechanism for reading data from AudioSocket
-  res_audiosocket.c: Set the TCP_NODELAY socket option
-  menuselect: Fix GTK menu callbacks for Fedora 42 compatibility
-  jansson: Upgrade version to jansson 2.14.1
-  pjproject: Increase maximum SDP formats and attribute limits
-  manager.c: Invalid ref-counting when purging events
-  res_pjsip_nat.c: Do not overwrite transfer host
-  chan_pjsip: Serialize INVITE creation on DTMF attended transfer
-  sig_analog: Add Call Waiting Deluxe support.
-  app_sms: Ignore false positive vectorization warning.
-  lock.h: Add include for string.h when DEBUG_THREADS is defined.
-  Alternate Channel Storage Backends


-----


## Change Log for Release asterisk-22.4.1

### Links:

 - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.4.1.html)

### Summary:

- Commits: 2
- Commit Authors: 1
- Issues Resolved: 0
- Security Advisories Resolved: 2
  - [GHSA-2grh-7mhv-fcfw](https://github.com/asterisk/asterisk/security/advisories/GHSA-2grh-7mhv-fcfw): Using malformed From header can forge identity with ";" or NULL in name portion
  - [GHSA-c7p6-7mvq-8jq2](https://github.com/asterisk/asterisk/security/advisories/GHSA-c7p6-7mvq-8jq2): cli_permissions.conf: deny option does not work for disallowing shell commands

### User Notes:

- #### asterisk.c: Add option to restrict shell access from remote consoles.
  A new asterisk.conf option 'disable_remote_console_shell' has
  been added that, when set, will prevent remote consoles from executing
  shell commands using the '!' prefix.
  Resolves: #GHSA-c7p6-7mvq-8jq2


### Upgrade Notes:


## Issue and Commit Detail:

### Commits By Author:

- #### George Joseph (2):
  - res_pjsip_messaging.c: Mask control characters in received From display name
  - asterisk.c: Add option to restrict shell access from remote consoles.


### Commit List:

-  asterisk.c: Add option to restrict shell access from remote consoles.
-  res_pjsip_messaging.c: Mask control characters in received From display name


-----


## Change Log for Release asterisk-22.4.0

### Links:

 - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.4.0.html)

### Summary:

- Commits: 24
- Commit Authors: 18
- Issues Resolved: 12
- Security Advisories Resolved: 0

### User Notes:

- #### stasis/control.c: Set Hangup Cause to No Answer on Dial timeout
  A Dial timeout on POST /channels/{channelId}/dial will now result in a
  CANCEL and ChannelDestroyed with cause 19 / User alerting, no answer.  Previously
  no explicit cause was set, resulting in a cause of 16 / Normal Call Clearing.

- #### contrib: Add systemd service and timer files for malloc trim.
  Service and timer files for systemd have been added to the
  contrib/systemd/ directory. If you are experiencing memory issues,
  install these files to have "malloc trim" periodically run on the
  system.

- #### Add log-caller-id-name option to log Caller ID Name in queue log
  This patch adds a global configuration option, log-caller-id-name, to queues.conf
  to control whether the Caller ID name is logged as parameter 4 when a call enters a queue.
  When log-caller-id-name=yes, the Caller ID name is included in the queue log,
  Any '|' characters in the caller ID name will be replaced with '_'.
  (provided it’s allowed by the existing log_restricted_caller_id rules).
  When log-caller-id-name=no (the default), the Caller ID name is omitted.

- #### asterisk.c: Add "pre-init" and "pre-module" capability to cli.conf.
  In cli.conf, you can now define startup commands that run before
  core initialization and before module initialization.

- #### audiosocket: added support for DTMF frames
  The AudioSocket protocol now forwards DTMF frames with
  payload type 0x03. The payload is a 1-byte ascii representing the DTMF
  digit (0-9,*,#...).


### Upgrade Notes:

- #### ARI: REST over Websocket
  This commit adds the ability to make ARI REST requests over the same
  websocket used to receive events.
  See https://docs.asterisk.org/Configuration/Interfaces/Asterisk-REST-Interface-ARI/ARI-REST-over-WebSocket/


## Issue and Commit Detail:

### Closed Issues:

  - 505: [bug]: res_pjproject: ast_sockaddr_cmp() always fails on sockaddrs created by ast_sockaddr_from_pj_sockaddr()
  - 643: [new-feature]: pjsip show contact -- show all details same as AMI PJSIPShowContacts
  - 963: [bug]: missing hangup cause for ARI ChannelDestroyed when Dial times out
  - 1091: [improvement]: app queue :add to  queue log callerid name
  - 1144: [bug]: action_redirect don't remove bridge_after_goto data
  - 1171: [improvement]: Need the capability in audiohook.c for fractional (float) type volume adjustments.
  - 1181: [bug]: Incorrect PJSIP Endpoint Device States on Multiple Channels
  - 1190: [bug]: Crash when starting ConfBridge recording over CLI and AMI
  - 1197: [bug]: ChannelHangupRequest does not show cause code in all cases
  - 1206: [improvement]: chan_iax2: Minor improvements to documentation and warning messages.
  - 1220: [bug]: res_pjsip_caller_id: OLI is not parsed if contained in a URI parameter
  - 1224: [improvement]: app_meetme: Removal version is incorrect

### Commits By Author:

- #### Albrecht Oster (1):
  - res_pjproject: Fix DTLS client check failing on some platforms

- #### Alexei Gradinari (1):
  - chan_pjsip: set correct Endpoint Device State on multiple channels

- #### Allan Nathanson (1):
  - file.c: missing "custom" sound files should not generate warning logs

- #### Andreas Wehrmann (1):
  - pbx_ael: unregister AELSub application and CLI commands on module load failure

- #### Ben Ford (1):
  - contrib: Add systemd service and timer files for malloc trim.

- #### Florent CHAUVEAU (1):
  - audiosocket: added support for DTMF frames

- #### George Joseph (4):
  - ARI: REST over Websocket
  - ari_websockets: Fix frack if ARI config fails to load.
  - asterisk.c: Add "pre-init" and "pre-module" capability to cli.conf.
  - Prequisites for ARI Outbound Websockets

- #### Joshua C. Colp (1):
  - channel: Always provide cause code in ChannelHangupRequest.

- #### Luz Paz (1):
  - docs: Fix typos in apps/

- #### Mark Murawski (1):
  - chan_pjsip:  Add the same details as PJSIPShowContacts to the CLI via 'pjsip s..

- #### Mike Bradeen (1):
  - stasis/control.c: Set Hangup Cause to No Answer on Dial timeout

- #### Naveen Albert (3):
  - chan_iax2: Minor improvements to documentation and warning messages.
  - app_meetme: Remove inaccurate removal version from xmldocs.
  - res_pjsip_caller_id: Also parse URI parameters for ANI2.

- #### Norm Harrison (2):
  - audiosocket: fix timeout, fix dialplan app exit, server address in logs
  - asterisk/channel.h: fix documentation for 'ast_waitfor_nandfds()'

- #### Peter Jannesen (1):
  - action_redirect: remove after_bridge_goto_info

- #### Sean Bright (1):
  - app_confbridge: Prevent crash when publishing channel-less event.

- #### Zhai Liangliang (1):
  - Update config.guess and config.sub

- #### mkmer (1):
  - audiohook.c: Add ability to adjust volume with float

- #### phoneben (1):
  - Add log-caller-id-name option to log Caller ID Name in queue log


### Commit List:

-  res_pjsip_caller_id: Also parse URI parameters for ANI2.
-  app_meetme: Remove inaccurate removal version from xmldocs.
-  docs: Fix typos in apps/
-  stasis/control.c: Set Hangup Cause to No Answer on Dial timeout
-  chan_iax2: Minor improvements to documentation and warning messages.
-  pbx_ael: unregister AELSub application and CLI commands on module load failure
-  res_pjproject: Fix DTLS client check failing on some platforms
-  Prequisites for ARI Outbound Websockets
-  contrib: Add systemd service and timer files for malloc trim.
-  action_redirect: remove after_bridge_goto_info
-  channel: Always provide cause code in ChannelHangupRequest.
-  Add log-caller-id-name option to log Caller ID Name in queue log
-  asterisk.c: Add "pre-init" and "pre-module" capability to cli.conf.
-  app_confbridge: Prevent crash when publishing channel-less event.
-  ari_websockets: Fix frack if ARI config fails to load.
-  ARI: REST over Websocket
-  audiohook.c: Add ability to adjust volume with float
-  audiosocket: added support for DTMF frames
-  asterisk/channel.h: fix documentation for 'ast_waitfor_nandfds()'
-  audiosocket: fix timeout, fix dialplan app exit, server address in logs
-  Update config.guess and config.sub
-  chan_pjsip: set correct Endpoint Device State on multiple channels
-  file.c: missing "custom" sound files should not generate warning logs


-----


## Change Log for Release asterisk-22.3.0

### Links:

 - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.3.0.html)

### Summary:

- Commits: 28
- Commit Authors: 12
- Issues Resolved: 12
- Security Advisories Resolved: 0

### User Notes:

- #### ari/pjsip: Make it possible to control transfers through ARI
  Call transfers on the PJSIP channel can now be controlled by
  ARI. This can be enabled by using the PJSIP_TRANSFER_HANDLING(ari-only)
  dialplan function.


### Upgrade Notes:


## Issue and Commit Detail:

### Closed Issues:

  - 211: [bug]: stasis: Off-nominal channel leave causes bridge to be destroyed
  - 1085: [bug]: utils: Compilation failure with DEVMODE due to old-style definitions
  - 1101: [bug]: when setting a  var with a double quotes and using Set(HASH)
  - 1109: [bug]: Off nominal memory leak in res/ari/resource_channels.c
  - 1112: [bug]: STIR/SHAKEN verification doesn't allow anonymous callerid to be passed to the dialplan.
  - 1119: [bug]: Realtime database not working after upgrade from 22.0.0 to 22.2.0
  - 1122: Need status on CVE-2024-57520 claim.
  - 1124: [bug]: Race condition between bridge and channel delete can over-write cause code set in hangup.
  - 1131: [bug]: CHANGES link broken in README.md
  - 1135: [bug]: Problems with video decoding due to RTP marker bit set
  - 1149: [bug]: res_pjsip: Mismatch in tcp_keepalive_enable causes not to enable
  - 1164: [bug]: WARNING Message in messages.log for res_curl.conf [globals]

### Commits By Author:

- #### Allan Nathanson (1):
  - config.c: #include of non-existent file should not crash

- #### Ben Ford (1):
  - documentation: Update Gosub, Goto, and add new documentationtype.

- #### George Joseph (10):
  - docs: Add version information to ARI resources and methods.
  - docs: Add version information to AGI command XML elements.
  - func_strings.c: Prevent SEGV in HASH single-argument mode.
  - resource_channels.c: Fix memory leak in ast_ari_channels_external_media.
  - res_stir_shaken: Allow missing or anonymous CID to continue to the dialplan.
  - res_config_pgsql: Fix regression that removed dbname config.
  - bridging: Fix multiple bridging issues causing SEGVs and FRACKs.
  - swagger_model.py: Fix invalid escape sequence in get_list_parameter_type().
  - manager.c: Check for restricted file in action_createconfig.
  - README.md: Updates and Fixes

- #### Holger Hans Peter Freyther (1):
  - ari/pjsip: Make it possible to control transfers through ARI

- #### Jeremy Lainé (1):
  - docs: Fix minor typo in MixMonitor AMI action

- #### Joshua Elson (1):
  - fix: Correct default flag for tcp_keepalive_enable option

- #### Luz Paz (3):
  - docs: Fix various typos in main/ Found via `codespell -q 3 -S "./CREDITS" -L a..
  - docs: Fix various typos in channels/ Found via `codespell -q 3 -S "./CREDITS,*..
  - docs: Fix typos in cdr/ Found via codespell

- #### Maximilian Fridrich (1):
  - Revert "res_rtp_asterisk.c: Set Mark on rtp when timestamp skew is too big"

- #### Mike Bradeen (1):
  - bridge_channel: don't set cause code on channel during bridge delete if alread..

- #### Naveen Albert (1):
  - utils: Disable old style definition warnings for libdb.

- #### Sean Bright (6):
  - docs: Indent <since> tags.
  - channel.c: Remove dead AST_GENERATOR_FD code.
  - res_rtp_asterisk.c: Use correct timeout value for T.140 RED timer.
  - docs: AMI documentation fixes.
  - res_rtp_asterisk.c: Don't truncate spec-compliant `ice-ufrag` or `ice-pwd`.
  - res_config_curl.c: Remove unnecessary warnings.

- #### fabriziopicconi (1):
  - rtp.conf.sample: Correct stunaddr example.


### Commit List:

-  documentation: Update Gosub, Goto, and add new documentationtype.
-  res_config_curl.c: Remove unnecessary warnings.
-  README.md: Updates and Fixes
-  res_rtp_asterisk.c: Don't truncate spec-compliant `ice-ufrag` or `ice-pwd`.
-  fix: Correct default flag for tcp_keepalive_enable option
-  docs: AMI documentation fixes.
-  config.c: #include of non-existent file should not crash
-  manager.c: Check for restricted file in action_createconfig.
-  swagger_model.py: Fix invalid escape sequence in get_list_parameter_type().
-  Revert "res_rtp_asterisk.c: Set Mark on rtp when timestamp skew is too big"
-  res_rtp_asterisk.c: Use correct timeout value for T.140 RED timer.
-  docs: Fix typos in cdr/ Found via codespell
-  bridging: Fix multiple bridging issues causing SEGVs and FRACKs.
-  res_config_pgsql: Fix regression that removed dbname config.
-  res_stir_shaken: Allow missing or anonymous CID to continue to the dialplan.
-  resource_channels.c: Fix memory leak in ast_ari_channels_external_media.
-  ari/pjsip: Make it possible to control transfers through ARI
-  channel.c: Remove dead AST_GENERATOR_FD code.
-  func_strings.c: Prevent SEGV in HASH single-argument mode.
-  docs: Add version information to AGI command XML elements.
-  docs: Fix minor typo in MixMonitor AMI action
-  utils: Disable old style definition warnings for libdb.
-  rtp.conf.sample: Correct stunaddr example.
-  docs: Add version information to ARI resources and methods.
-  docs: Indent <since> tags.


-----


## Change Log for Release asterisk-22.2.0

### Links:

 - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.2.0.md)

### Summary:

- Commits: 53
- Commit Authors: 20
- Issues Resolved: 19
- Security Advisories Resolved: 0

### User Notes:

- #### sig_analog: Add Last Number Redial feature.
  Users can now redial the last number
  called if the lastnumredial setting is set to yes.
  Resolves: #437

- #### Add SHA-256 and SHA-512-256 as authentication digest algorithms
  The SHA-256 and SHA-512-256 algorithms are now available
  for authentication as both a UAS and a UAC.

- #### Upgrade bundled pjproject to 2.15.1 Resolves: asterisk#1016
  Bundled pjproject has been upgraded to 2.15.1. For more
  information visit pjproject Github page: https://github.com/pjsip/pjproject/releases/tag/2.15.1

- #### res_pjsip: Add new AOR option "qualify_2xx_only"
  The pjsip.conf AOR section now has a "qualify_2xx_only"
  option that can be set so that only 2XX responses to OPTIONS requests
  used to qualify a contact will mark the contact as available.

- #### app_queue: allow dynamically adding a queue member in paused state.
  use the p option of AddQueueMember() for paused member state.
  Optionally, use the r(reason) option to specify a custom reason for the pause.

- #### manager.c: Add Processed Call Count to CoreStatus output
  The current processed call count is now returned as CoreProcessedCalls from the
  CoreStatus AMI Action.

- #### func_curl.c: Add additional CURL options for SSL requests
  The following new configuration options are now available
  in the res_curl.conf file, and the CURL() function: 'ssl_verifyhost'
  (CURLOPT_SSL_VERIFYHOST), 'ssl_cainfo' (CURLOPT_CAINFO), 'ssl_capath'
  (CURLOPT_CAPATH), 'ssl_cert' (CURLOPT_SSLCERT), 'ssl_certtype'
  (CURLOPT_SSLCERTTYPE), 'ssl_key' (CURLOPT_SSLKEY), 'ssl_keytype',
  (CURLOPT_SSLKEYTYPE) and 'ssl_keypasswd' (CURLOPT_KEYPASSWD). See the
  libcurl documentation for more details.

- #### res_stir_shaken: Allow sending Identity headers for unknown TNs
  You can now set the "unknown_tn_attest_level" option
  in the attestation and/or profile objects in stir_shaken.conf to
  enable sending Identity headers for callerid TNs not explicitly
  configured.


### Upgrade Notes:

- #### alembic: Database updates required.
  Two commits in this release...
  'Add SHA-256 and SHA-512-256 as authentication digest algorithms'
  'res_pjsip: Add new AOR option "qualify_2xx_only"'
  ...have modified alembic scripts for the following database tables: ps_aors,
  ps_contacts, ps_auths, ps_globals. If you don't use the scripts to update
  your database, reads from those tables will succeeed but inserts into the
  ps_contacts table by res_pjsip_registrar will fail.


## Issue and Commit Detail:

### Closed Issues:

  - 437: [new-feature]: sig_analog: Add Last Number Redial
  - 851: [bug]: unable to read audiohook both side when packet lost on one side of the call
  - 921: [bug]: Stir-Shaken doesn’t allow B or C attestation for unknown callerid which is allowed by ATIS-1000074.v003, §5.2.4
  - 927: [bug]: no audio when media source changed during the call
  - 948: [improvement]: Support SHA-256 algorithm on REGISTER and INVITE challenges
  - 993: [bug]: sig_analog: Feature Group D / E911 no longer work
  - 999: [bug]: Crash when setting a global variable with invalid UTF8 characters
  - 1007: [improvement]: Cannot dynamically add queue member in paused state from dialplan or command line
  - 1013: [improvement]: chan_pjsip: Send VIDUPDATE RTP frames for H.264 streams on endpoints without WebRTC
  - 1021: [improvement]: proper queue_log paused state when member added dynamically
  - 1023: [improvement]: Improve PJSIP_MEDIA_OFFER documentation
  - 1028: [bug]: "pjsip show endpoints" shows some identifies on endpoints that shouldn't be there
  - 1029: [bug]: chan_dahdi: Wrong channel state set when RINGING received
  - 1054: [bug]: chan_iax2: Frames unnecessarily backlogged with jitterbuffer if no voice frames have been received yet
  - 1058: [bug]: Asterisk fails to compile following commit 71a2e8c on Ubuntu 20.04
  - 1064: [improvement]: ast_tls_script: Add option to skip passphrase for CA private key
  - 1075: [bug]: res_prometheus does not set Content-Type header in HTTP response
  - 1095: [bug]: res_pjsip missing "Failed to authenticate" log entry for unknown endpoint
  - 1097: [bug]: res_pjsip/pjsip_options. ODBC: Unknown column 'qualify_2xx_only'

### Commits By Author:

- #### Abdelkader Boudih (3):
  - normalize contrib/ast-db-manage/queue_log.ini.sample
  - res_config_pgsql: normalize database connection option with cel and cdr by sup..
  - samples: Use "asterisk" instead of "postgres" for username

- #### Alexey Khabulyak (1):
  - format_gsm.c: Added mime type

- #### Alexey Vasilyev (1):
  - res_rtp_asterisk.c: Fix bridged_payload matching with sample rate for DTMF

- #### Allan Nathanson (2):
  - config.c: retain leading whitespace before comments
  - config.c: fix #tryinclude being converted to #include on rewrite

- #### Artem Umerov (1):
  - logger.h: Fix build when AST_DEVMODE is not defined.

- #### George Joseph (17):
  - res_stir_shaken: Allow sending Identity headers for unknown TNs
  - Allow C++ source files (as extension .cc) in the main directory
  - Add ability to pass arguments to unit tests from the CLI
  - Header fixes for compiling C++ source files
  - gcc14: Fix issues caught by gcc 14
  - Add C++ Standard detection to configure and fix a new C++20 compile issue
  - Add SHA-256 and SHA-512-256 as authentication digest algorithms
  - docs: Enable since/version handling for XML, CLI and ARI documentation
  - docs: Various XML fixes
  - res_pjsip_authenticator_digest: Fix issue with missing auth and DONT_OPTIMIZE
  - docs: Add version information to configObject and configOption XML elements
  - README.md, asterisk.c: Update Copyright Dates
  - docs: Add version information to manager event instance XML elements
  - docs: Add version information to application and function XML elements
  - res_pjsip: Fix startup/reload memory leak in config_auth.
  - alembic: Database updates required.
  - res_pjsip_authenticator_digest: Make correct error messages appear again.

- #### Jaco Kroon (1):
  - res_odbc: release threads from potential starvation.

- #### James Terhune (1):
  - main/stasis_channels.c: Fix crash when setting a global variable with invalid ..

- #### Joshua C. Colp (1):
  - LICENSE: Update company name, email, and address.

- #### Kent (1):
  - res_pjsip: Add new AOR option "qualify_2xx_only"

- #### Maksim Nesterov (1):
  - func_uuid: Add a new dialplan function to generate UUIDs

- #### Maximilian Fridrich (1):
  - chan_pjsip: Send VIDUPDATE RTP frame for all H.264 streams

- #### Mike Pultz (3):
  - func_curl.c: Add additional CURL options for SSL requests
  - manager.c: Add Processed Call Count to CoreStatus output
  - res_curl.conf.sample: clean up sample configuration and add new SSL options

- #### Naveen Albert (6):
  - sig_analog: Fix regression with FGD and E911 signaling.
  - chan_iax2: Add log message for rejected calls.
  - chan_dahdi: Fix wrong channel state when RINGING recieved.
  - sig_analog: Add Last Number Redial feature.
  - chan_iax2: Avoid unnecessarily backlogging non-voice frames.
  - ast_tls_cert: Add option to skip passphrase for CA private key.

- #### Sean Bright (6):
  - config.c: Fix off-nominal reference leak.
  - manager.c: Rename restrictedFile to is_restricted_file.
  - manager: Add `<since>` tags for all AMI actions.
  - dialplan_functions_doc.xml: Document PJSIP_MEDIA_OFFER's `media` argument.
  - strings.c: Improve numeric detection in `ast_strings_match()`.
  - res_prometheus.c: Set Content-Type header on /metrics response.

- #### Sperl Viktor (2):
  - app_queue: allow dynamically adding a queue member in paused state.
  - app_queue: indicate the paused state of a dynamically added member in queue_log.

- #### Stanislav Abramenkov (2):
  - Upgrade bundled pjproject to 2.15.1 Resolves: asterisk#1016
  - res_pjproject: Fix typo (OpenmSSL->OpenSSL)

- #### Steffen Arntz (1):
  - logger.c fix: malformed JSON template

- #### Tinet-mucw (1):
  - audiohook.c: resolving the issue with audiohook both reading when packet loss ..

- #### Viktor Litvinov (1):
  - res_rtp_asterisk.c: Set Mark on rtp when timestamp skew is too big


### Commit List:

-  res_pjsip_authenticator_digest: Make correct error messages appear again.
-  alembic: Database updates required.
-  res_pjsip: Fix startup/reload memory leak in config_auth.
-  docs: Add version information to application and function XML elements
-  docs: Add version information to manager event instance XML elements
-  LICENSE: Update company name, email, and address.
-  res_prometheus.c: Set Content-Type header on /metrics response.
-  README.md, asterisk.c: Update Copyright Dates
-  docs: Add version information to configObject and configOption XML elements
-  res_pjsip_authenticator_digest: Fix issue with missing auth and DONT_OPTIMIZE
-  ast_tls_cert: Add option to skip passphrase for CA private key.
-  chan_iax2: Avoid unnecessarily backlogging non-voice frames.
-  config.c: fix #tryinclude being converted to #include on rewrite
-  sig_analog: Add Last Number Redial feature.
-  docs: Various XML fixes
-  strings.c: Improve numeric detection in `ast_strings_match()`.
-  docs: Enable since/version handling for XML, CLI and ARI documentation
-  logger.h: Fix build when AST_DEVMODE is not defined.
-  dialplan_functions_doc.xml: Document PJSIP_MEDIA_OFFER's `media` argument.
-  samples: Use "asterisk" instead of "postgres" for username
-  manager: Add `<since>` tags for all AMI actions.
-  logger.c fix: malformed JSON template
-  manager.c: Rename restrictedFile to is_restricted_file.
-  res_pjproject: Fix typo (OpenmSSL->OpenSSL)
-  Add SHA-256 and SHA-512-256 as authentication digest algorithms
-  config.c: retain leading whitespace before comments
-  config.c: Fix off-nominal reference leak.
-  normalize contrib/ast-db-manage/queue_log.ini.sample
-  Add C++ Standard detection to configure and fix a new C++20 compile issue
-  chan_dahdi: Fix wrong channel state when RINGING recieved.
-  Upgrade bundled pjproject to 2.15.1 Resolves: asterisk#1016
-  gcc14: Fix issues caught by gcc 14
-  Header fixes for compiling C++ source files
-  Add ability to pass arguments to unit tests from the CLI
-  res_pjsip: Add new AOR option "qualify_2xx_only"
-  res_odbc: release threads from potential starvation.
-  Allow C++ source files (as extension .cc) in the main directory
-  format_gsm.c: Added mime type
-  func_uuid: Add a new dialplan function to generate UUIDs
-  app_queue: allow dynamically adding a queue member in paused state.
-  chan_iax2: Add log message for rejected calls.
-  chan_pjsip: Send VIDUPDATE RTP frame for all H.264 streams
-  res_curl.conf.sample: clean up sample configuration and add new SSL options
-  res_rtp_asterisk.c: Set Mark on rtp when timestamp skew is too big
-  res_rtp_asterisk.c: Fix bridged_payload matching with sample rate for DTMF
-  manager.c: Add Processed Call Count to CoreStatus output
-  func_curl.c: Add additional CURL options for SSL requests
-  sig_analog: Fix regression with FGD and E911 signaling.
-  res_stir_shaken: Allow sending Identity headers for unknown TNs


-----


## Change Log for Release asterisk-22.1.1

### Links:

 - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.1.1.md)

### Summary:

- Commits: 1
- Commit Authors: 1
- Issues Resolved: 0
- Security Advisories Resolved: 1
  - [GHSA-33x6-fj46-6rfh](https://github.com/asterisk/asterisk/security/advisories/GHSA-33x6-fj46-6rfh): Path traversal via AMI ListCategories allows access to outside files

### User Notes:

- #### manager.c: Restrict ListCategories to the configuration directory.
  The ListCategories AMI action now restricts files to the
  configured configuration directory.


### Upgrade Notes:


## Issue and Commit Detail:

### Commits By Author:

- #### Ben Ford (1):
  - manager.c: Restrict ListCategories to the configuration directory.


-----


## Change Log for Release asterisk-22.1.0

### Links:

 - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.1.0.md)

### Summary:

- Commits: 39
- Commit Authors: 9
- Issues Resolved: 22
- Security Advisories Resolved: 0

### User Notes:

- #### res_pjsip: Add new endpoint option "suppress_moh_on_sendonly"
  The new "suppress_moh_on_sendonly" endpoint option
  can be used to prevent playing MOH back to a caller if the remote
  end sends "sendonly" or "inactive" (hold) to Asterisk in an SDP.

- #### app_mixmonitor: Add 'D' option for dual-channel audio.
  The MixMonitor application now has a new 'D' option which
  interleaves the recorded audio in the output frames. This allows for
  stereo recording output with one channel being the transmitted audio and
  the other being the received audio. The 't' and 't' options are
  compatible with this.

- #### manager.c: Restrict ModuleLoad to the configured modules directory.
  The ModuleLoad AMI action now restricts modules to the
  configured modules directory.

- #### manager: Enhance event filtering for performance
  You can now perform more granular filtering on events
  in manager.conf using expressions like
  `eventfilter(name(Newchannel),header(Channel),method(starts_with)) = PJSIP/`
  This is much more efficient than
  `eventfilter = Event: Newchannel.*Channel: PJSIP/`
  Full syntax guide is in configs/samples/manager.conf.sample.

- #### db.c: Remove limit on family/key length
  The `ast_db_*()` APIs have had the 253 byte limit on
  "/family/key" removed and will now accept families and keys with a
  total length of up to SQLITE_MAX_LENGTH (currently 1e9!).  This
  affects the `DB*` dialplan applications, dialplan functions,
  manager actions and `databse` CLI commands.  Since the
  media_cache also uses the `ast_db_*()` APIs, you can now store
  resources with URIs longer than 253 bytes.


### Upgrade Notes:


## Issue and Commit Detail:

### Closed Issues:

  - 487: [bug]: Segfault possibly in ast_rtp_stop
  - 821: [bug]: app_dial:  The progress timeout doesn't cause Dial to exit
  - 881: [bug]: Long URLs are being rejected by the media cache because of an astdb key length limit
  - 882: [bug]: Value CHANNEL(userfield) is lost by BRIDGE_ENTER
  - 897: [improvement]: Restrict ModuleLoad AMI action to the modules directory
  - 900: [bug]: astfd.c: NULL pointer passed to fclose with nonnull attribute causes compilation failure
  - 902: [bug]: app_voicemail: Pager emails are ill-formatted when custom subject is used
  - 916: [bug]: Compilation errors on FreeBSD
  - 923: [bug]: Transport monitor shutdown callback only works on the first disconnection
  - 924: [bug]: dnsmgr.c: dnsmgr_refresh() should not flag change if IP address order changes
  - 928: [bug]: chan_dahdi: MWI while off-hook when hung up on after recall ring
  - 932: [bug]: When connected to multiple IP addresses the transport monitor is only set on the first one
  - 937: [bug]: Wrong format for sample config file 'geolocation.conf.sample'
  - 938: [bug]: memory leak - CBAnn leaks a small amount format_cap related memory for every confbridge
  - 945: [improvement]: Add stereo recording support for app_mixmonitor
  - 951: [new-feature]: func_evalexten: Add `EVAL_SUB` function
  - 974: [improvement]: change and/or remove some wiki mentions to docs mentions in the sample configs
  - 979: [improvement]: Add ability to suppress MOH when a remote endpoint sends "sendonly" or "inactive"
  - 982: [bug]: The addition of tenantid to the ast_sip_endpoint structure broke ABI compatibility
  - 990: [improvement]: The help for PJSIP_AOR should indicate that you need to call PJSIP_CONTACT to get contact details
  - 995: [bug]: suppress_moh_on_sendonly should use AST_BOOL_VALUES instead of YESNO_VALUES in alembic script

### Commits By Author:

- #### Allan Nathanson (1):
  - dnsmgr.c: dnsmgr_refresh() incorrectly flags change with DNS round-robin

- #### Ben Ford (3):
  - manager.c: Restrict ModuleLoad to the configured modules directory.
  - app_mixmonitor: Add 'D' option for dual-channel audio.
  - Add res_pjsip_config_sangoma external module.

- #### George Joseph (15):
  - db.c: Remove limit on family/key length
  - manager.c: Split XML documentation to manager_doc.xml
  - manager: Enhance event filtering for performance
  - manager.conf.sample: Fix mathcing typo
  - Fix application references to Background
  - res_rtp_asterisk: Fix dtls timer issues causing FRACKs and SEGVs
  - manager.c: Add unit test for Originate app and appdata permissions
  - geolocation.sample.conf: Fix comment marker at end of file
  - core_unreal.c: Fix memory leak in ast_unreal_new_channels()
  - pjproject_bundled:  Tweaks to support out-of-tree development
  - res_srtp: Change Unsupported crypto suite msg from verbose to debug
  - res_pjsip: Move tenantid to end of ast_sip_endpoint
  - func_pjsip_aor/contact: Fix documentation for contact ID
  - res_pjsip: Add new endpoint option "suppress_moh_on_sendonly"
  - res_pjsip: Change suppress_moh_on_sendonly to OPT_BOOL_T

- #### Naveen Albert (7):
  - app_voicemail: Fix ill-formatted pager emails with custom subject.
  - astfd.c: Avoid calling fclose with NULL argument.
  - main, res, tests: Fix compilation errors on FreeBSD.
  - chan_dahdi: Never send MWI while off-hook.
  - app_dial: Fix progress timeout.
  - app_dial: Fix progress timeout calculation with no answer timeout.
  - func_evalexten: Add EVAL_SUB function.

- #### Peter Jannesen (2):
  - cel_custom: Allow absolute filenames.
  - channel: Preserve CHANNEL(userfield) on masquerade.

- #### Sean Bright (7):
  - res_pjsip_pubsub: Persist subscription 'generator_data' in sorcery
  - cdr_custom: Allow absolute filenames.
  - res_agi.c: Ensure SIGCHLD handler functions are properly balanced.
  - alembic: Drop redundant voicemail_messages index.
  - func_base64.c: Ensure we set aside enough room for base64 encoded data.
  - Revert "res_rtp_asterisk: Count a roll-over of the sequence number even on los..
  - res_pjsip.c: Fix Contact header rendering for IPv6 addresses.

- #### Thomas Guebels (2):
  - pjsip_transport_events: Avoid monitor destruction
  - pjsip_transport_events: handle multiple addresses for a domain

- #### chrsmj (1):
  - samples: remove and/or change some wiki mentions

- #### jiangxc (1):
  - res_agi.c: Prevent possible double free during `SPEECH RECOGNIZE`


### Commit List:

-  res_pjsip: Change suppress_moh_on_sendonly to OPT_BOOL_T
-  res_pjsip: Add new endpoint option "suppress_moh_on_sendonly"
-  res_pjsip.c: Fix Contact header rendering for IPv6 addresses.
-  samples: remove and/or change some wiki mentions
-  func_pjsip_aor/contact: Fix documentation for contact ID
-  res_pjsip: Move tenantid to end of ast_sip_endpoint
-  pjsip_transport_events: handle multiple addresses for a domain
-  func_evalexten: Add EVAL_SUB function.
-  res_srtp: Change Unsupported crypto suite msg from verbose to debug
-  Add res_pjsip_config_sangoma external module.
-  app_mixmonitor: Add 'D' option for dual-channel audio.
-  pjsip_transport_events: Avoid monitor destruction
-  app_dial: Fix progress timeout calculation with no answer timeout.
-  pjproject_bundled:  Tweaks to support out-of-tree development
-  core_unreal.c: Fix memory leak in ast_unreal_new_channels()
-  dnsmgr.c: dnsmgr_refresh() incorrectly flags change with DNS round-robin
-  geolocation.sample.conf: Fix comment marker at end of file
-  func_base64.c: Ensure we set aside enough room for base64 encoded data.
-  app_dial: Fix progress timeout.
-  chan_dahdi: Never send MWI while off-hook.
-  manager.c: Add unit test for Originate app and appdata permissions
-  alembic: Drop redundant voicemail_messages index.
-  res_agi.c: Ensure SIGCHLD handler functions are properly balanced.
-  main, res, tests: Fix compilation errors on FreeBSD.
-  res_rtp_asterisk: Fix dtls timer issues causing FRACKs and SEGVs
-  manager.c: Restrict ModuleLoad to the configured modules directory.
-  res_agi.c: Prevent possible double free during `SPEECH RECOGNIZE`
-  cdr_custom: Allow absolute filenames.
-  astfd.c: Avoid calling fclose with NULL argument.
-  channel: Preserve CHANNEL(userfield) on masquerade.
-  cel_custom: Allow absolute filenames.
-  app_voicemail: Fix ill-formatted pager emails with custom subject.
-  res_pjsip_pubsub: Persist subscription 'generator_data' in sorcery
-  Fix application references to Background
-  manager.conf.sample: Fix mathcing typo
-  manager: Enhance event filtering for performance
-  manager.c: Split XML documentation to manager_doc.xml
-  db.c: Remove limit on family/key length
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.11 2025/05/05 12:40:30 manu Exp $
d9 1
@


1.11
log
@Roll back chan_sip inclusion, as requested by OWNER.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.10 2025/04/24 14:13:23 wiz Exp $
d8 1
a8 2
DISTNAME=	asterisk-22.0.0
PKGREVISION=	10
d52 1
d143 1
a143 1
PJPROJ_VERSION=	2.14.1
d210 1
a210 1
	amd.conf app_skel.conf ari.conf	 ast_debug_tools.conf		\
d236 1
a236 1
	voicemail.conf xmpp.conf
d243 1
a243 1
.if (${OPSYS} == "Darwin" && exists(/usr/include/sys/poll.h))
d257 13
@


1.10
log
@*: recursive bump for jpeg -> libjpeg-turbo switch
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.9 2025/04/19 07:57:33 wiz Exp $
d9 1
a9 1
PKGREVISION=	9
a150 6
# Plain old chan_sip
CHAN_SIP_TAG=		86d62097332337da942fa4dd6405f136ae245be3
DISTFILES+=		${CHAN_SIP_TAG}
SITES.${CHAN_SIP_TAG}=	${MASTER_SITE_GITHUB:=InterLinked1}/chan_sip/tarball/
CHAN_SIP_DIR=		${WRKDIR}/InterLinked1-chan_sip-86d6209

a242 6
post-extract:
	${TAR} xzf ${DISTDIR}/${DIST_SUBDIR}/${CHAN_SIP_TAG} -C ${WRKDIR}
	${CP} -r ${CHAN_SIP_DIR}/channels/sip ${WRKSRC}/channels
	${CP} ${CHAN_SIP_DIR}/channels/chan_sip.c ${WRKSRC}/channels
	${CP} ${CHAN_SIP_DIR}/configs/samples/*.sample ${WRKSRC}/configs/samples

@


1.9
log
@*: recursive bump for default Kerberos implementation switch
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.8 2025/04/18 06:51:09 kim Exp $
d9 1
a9 1
PKGREVISION=	8
@


1.8
log
@asterisk22: Add gsed to USE_TOOLS

The REs used with sed during the build need gsed.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.7 2025/04/17 21:49:57 wiz Exp $
d9 1
a9 1
PKGREVISION=	7
@


1.7
log
@*: recursive bump for icu 77 and libxml2 2.14
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.6 2025/04/15 15:35:01 manu Exp $
d9 1
a9 1
PKGREVISION=	6
d33 1
a33 1
USE_TOOLS+=		bison gmake perl:run pkg-config tar bash:run
@


1.6
log
@Restore chan_sip in asterisk from https://github.com/InterLinked1/chan_sip

chan_sip is the original SIP channel driver from Asterisk that many
have grown to love or hate over the years. Replaced by chan_pjsip
in Asterisk 12, it was deprecated in Asterisk 16, disabled from
building by default in Asterisk 19, and was removed from the Asterisk
master branch in commit 4095a382da630f8af2aac2d223fcaa70c03b81ba
on January 3, 2023 (in anticipation of removal for Asterisk 21, to
be released in late 2023).

If you are new to Asterisk or getting started with SIP, you should
almost certainly use chan_pjsip, a newer, more standards-compliant,
more feature-rich SIP channel driver. chan_pjsip (based on pjproject's
PJSIP stack) is actively core supported by Sangoma.

chan_sip is maintained here for the benefit of those who still need
or prefer it, but you are advised to avoid using it if possible.
This version of chan_sip is primarily maintained by a community
Asterisk developer, and is not official or endorsed by Sangoma in
any way. Please do not contact Sangoma or the Asterisk project with
issues - any issues should be filed in this repo only.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.5 2025/01/17 22:39:53 gavan Exp $
d9 1
a9 1
PKGREVISION=	5
@


1.5
log
@asterisk[19,21,22]: Fix invalid XML documentation building
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.4 2024/11/14 22:18:55 wiz Exp $
d9 1
a9 1
PKGREVISION=	4
d151 6
d249 6
@


1.4
log
@*: recursive bump for icu 76 shlib major version bump
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.3 2024/11/01 12:51:40 wiz Exp $
d9 1
a9 1
PKGREVISION=	3
@


1.3
log
@*: revbump for icu downgrade
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.2 2024/11/01 00:50:54 wiz Exp $
d9 1
a9 1
PKGREVISION=	2
@


1.2
log
@*: recursive bump for icu 76.1 shlib bump
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.1 2024/10/21 05:12:44 jnemeth Exp $
d9 1
a9 1
PKGREVISION=	1
@


1.1
log
@comms/asterisk22: import asterisk-22.0.0

Asterisk is a complete PBX in software.  It provides all of the
features you would expect from a PBX and more. Asterisk does voice
over IP in three protocols, and can interoperate with almost all
standards-based telephony equipment using relatively inexpensive
hardware.

Asterisk provides Voicemail services with Directory, Call Conferencing,
Interactive Voice Response, Call Queuing. It has support for
three-way calling, caller ID services, ADSI, SIP and H.323 (as both
client and gateway).

This is a Long Term Support version.  It is scheduled to go to
security fixes only on October 16th, 2028, and EOL on October 16th,
2029.  See here for more information about Asterisk versions:
https://docs.asterisk.org/About-the-Project/Asterisk-Versions/
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.5 2024/05/29 16:31:35 adam Exp $
d9 1
@

