head	1.11;
access;
symbols
	pkgsrc-2026Q2:1.8.0.2
	pkgsrc-2026Q2-base:1.8
	pkgsrc-2026Q1:1.5.0.2
	pkgsrc-2026Q1-base:1.5
	pkgsrc-2025Q4:1.2.0.2
	pkgsrc-2025Q4-base:1.2;
locks; strict;
comment	@# @;


1.11
date	2026.08.31.05.49.26;	author jnemeth;	state Exp;
branches;
next	1.10;
commitid	N8Zv9pyA53HmGKTG;

1.10
date	2026.07.13.05.09.27;	author jnemeth;	state Exp;
branches;
next	1.9;
commitid	YswAEntXSKgp2sNG;

1.9
date	2026.06.22.02.59.47;	author jnemeth;	state Exp;
branches;
next	1.8;
commitid	g55PIxsOKA6xZJKG;

1.8
date	2026.05.14.16.40.32;	author ryoon;	state Exp;
branches;
next	1.7;
commitid	tKipFjQKzke3NNFG;

1.7
date	2026.04.13.03.47.11;	author jnemeth;	state Exp;
branches;
next	1.6;
commitid	7bTLGN23nxCOuKBG;

1.6
date	2026.04.10.08.41.35;	author wiz;	state Exp;
branches;
next	1.5;
commitid	4LhvV4JecdcpeoBG;

1.5
date	2026.02.16.04.11.13;	author jnemeth;	state Exp;
branches;
next	1.4;
commitid	w1vHMO4LkZx8qyuG;

1.4
date	2026.02.06.10.04.21;	author wiz;	state Exp;
branches;
next	1.3;
commitid	MwQEYCXeWSFvIitG;

1.3
date	2026.01.07.08.46.04;	author wiz;	state Exp;
branches;
next	1.2;
commitid	1wQ3ICD8eebefrpG;

1.2
date	2025.12.01.04.26.02;	author jnemeth;	state Exp;
branches;
next	1.1;
commitid	7MHnImsud9wNZEkG;

1.1
date	2025.10.27.06.58.36;	author jnemeth;	state Exp;
branches;
next	;
commitid	cQXB8JNvDKKmYagG;


desc
@@


1.11
log
@Update asterisk23 to Asterisk 23.5.0:


## Change Log for Release asterisk-23.5.0

### Links:

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

### Summary:

- Commits: 39
- Commit Authors: 16
- Issues Resolved: 28
- Security Advisories Resolved: 0

### User Notes:

- #### bridging: Add support for TOUCH_MIXMONITOR_OPTIONS
  The TOUCH_MIXMONITOR_OPTIONS channel variable can now be used
  to configure the options used by the mixmonitor application when it is
  started via automixmon. If both TOUCH_MIXMONITOR_OPTIONS and
  TOUCH_MIXMONITOR_BEEP are set, TOUCH_MIXMONITOR_BEEP is ignored with
  a warning.

- #### Audiohooks: Allow whisper audiohooks to work without an underlying stream
  There is no longer a requirement to play silence or otherwise have
  a stream of audio being sent to a hooked channel for whispered frames to be
  heard.

- #### Bundled pjproject: Make it easier to override options in config_site.h.
  Bundled pjproject: It's now possible to override some of the pjproject
  build options contained in ./third-party/pjproject/patches/config_site.h by
  adding PJPROJECT_CFLAGS to your Asterisk ./configure command line.  For example:
  `./configure ... PJPROJECT_CFLAGS='-DPJ_OPT1=8192 -DPJ_OPT2=512'`
  Any option in config_site.h that's wrapped in a `#ifndef` block can be overridden
  and many of the `PJSIP` options displayed by `pjproject show buildopts` can be
  set.  WARNING: Adjusting these options without understanding their effect can
  cripple your Asterisk instances.  You shouldn't adjust them unless you need
  to solve a specific issue.
  Resolves: #2011

- #### manager: Move away from shared linked list for events.
  The "manager show eventq" CLI command has been
  removed as there is no longer a single event queue to display.

- #### res_pjsip: Add external_signaling_hostname transport option
  A new pjsip.conf transport option 'external_signaling_hostname'
  has been added. When set, this value will be used in SIP Contact and Via
  headers instead of the automatically determined IP address. This option
  is mutually exclusive with 'external_signaling_address'.

- #### WebSocket Enhancements: Proxies and Keepalives for ARI and Media Outbound Websockets.
  Forward/outbound proxies can now be specified for outbound websockets.
  See the websocket_client.conf.sample file for configuration information.
  TCP-level or WebSocket PING/PONG keepalives can now be enabled on

### Upgrade Notes:

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


### Developer Notes:

- #### WebSocket Enhancements: Proxies and Keepalives for ARI and Media Outbound Websockets.
  The addition of the proxy and keepalive configuration parameters
  pushed the websocket client parameter count over 32. This necessitated changing
  the size of the ast_ws_client_fields enum from a 32 bit bitfield to a 64-bit
  bitfield with a corresponding change to the ast_websocket_client structure.


### Closed Issues:

  - 871: [bug]: CHANNEL(PJSIP,local_addr) and CHANNEL(PJSIP,remote_addr) not available on outgoing channels
  - 1398: [bug]:  AOR matching for inbound registration not working with domain involved and identifying by contact header
  - 1625: [bug]: `ast_openstream` should stop at the first compatible file
  - 1749: [improvement]: Make Asterisk compatible with Microsoft Teams Phone System.
  - 1779: [bug]: MixMonitor with flag D produces garbage in a 16KHz bridge
  - 1849: [improvement]: chan_local: Update references to chan_local for Local channels
  - 1881: [improvement]:  Add HTTP proxy support for outbound WebSocket connections in websocket_client.conf (chan_websocket / ARI ExternalMedia)
  - 1882: [new-feature]: Ensure errors and warnings get through logger when reloading
  - 1933: [improvement]: Outbound Websockets: Add keepalive mechanisms
  - 1946: [bug]: Deadlock between RTP instance and ICE session
  - 1965: [bug]: Memory leak when receiving malformed 200 OK in response to re-INVITE
  - 1966: [improvement]: Allow whisper audiohooks to work without an underlying audio stream
  - 1979: [bug]: res_http_websocket: outbound client handshake read has no timeout — a non-responsive server hangs the calling thread forever while holding the channel lock, stalling the whole process
  - 1981: [improvement]: Support recording multichannel raw files with automixmon
  - 2006: [bug]: WebSocket Channel, odd frame is dropped after `STOP_MEDIA_BUFFERING`
  - 2011: [bug]: PJSIP TCP transport stops processing after upgrade to Asterisk 22.10.1 / bundled PJPROJECT 2.17 with ioqueue_epol free_list assertion
  - 2020: [bug]: Possible leak of inbound websocket session
  - 2021: [bug]: Segfault in res_pjsip_refer when doing an ARI controlled transfer with Refer-Sub: false.
  - 2024: [improvement]:Re-add pjsua application to third party build
  - 2026: [improvement]: res_pjsip: dtmf_mode documentation is incomplete
  - 2033: [improvement]: jansson: Upgrade version to jansson 2.15.1
  - 2038: [bug]: Using chan_websocket prevents using "dangerous" functions in the dialplan
  - 2051: [bug]: res_musiconhold: answeredonly leaks a mohclass reference on unanswered channels
  - 2054: [bug]: backtrace.c: Compilation failure due to use of removed type
  - 2056: [bug]: pjsua fails to build if the address sanitizer is used.
  - 2059: [bug]: Occasional call drops during re-INVITE when codec changes
  - 2061: [bug]: backtrace.c: stdbool.h needed for portability
  - 2085: [bug]: res_http_websocket: SEGV if we're a server and receive a PONG frame
@
text
@# $NetBSD: Makefile,v 1.10 2026/07/13 05:09:27 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-23.5.0
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.17
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			\
	phoneprov_users.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 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-23.0.0.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.0.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.1.0.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.1.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.2.0.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.2.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.2.1.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.2.1.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.2.2.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.2.2.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.3.0.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.3.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.4.0.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.4.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.4.1.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.4.1.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.5.0.html ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
	${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-23.5.0.md ${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.10
log
@Update to Asterisk 23.4.1:


## Change Log for Release asterisk-23.4.1

### Links:

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

### Summary:

- Commits: 19
- Commit Authors: 6
- Issues Resolved: 0
- Security Advisories Resolved: 20
  - [GHSA-3g56-cgrh-95p5](https://github.com/asterisk/asterisk/security/advisories/GHSA-3g56-cgrh-95p5): chan_unistim DIALPAGE digit handling can overflow phone_number and crash Asterisk
  - [GHSA-3rhj-hhw7-m6fw](https://github.com/asterisk/asterisk/security/advisories/GHSA-3rhj-hhw7-m6fw): NULL Pointer Dereference in HTTP AMI Digest Authentication
  - [GHSA-4pgv-j3mr-3rcp](https://github.com/asterisk/asterisk/security/advisories/GHSA-4pgv-j3mr-3rcp): Reflected XSS in Phone Provisioning HTTP Error Pages
  - [GHSA-589g-qgf8-m6mx](https://github.com/asterisk/asterisk/security/advisories/GHSA-589g-qgf8-m6mx): Stack buffer overflow in MWI NOTIFY Message-Account parsing
  - [GHSA-746q-794h-cc7f](https://github.com/asterisk/asterisk/security/advisories/GHSA-746q-794h-cc7f): Out-of-Bounds Read in Q.931 Information Element Parser (H.323 Addon)
  - [GHSA-8jhw-m2hg-vp3h](https://github.com/asterisk/asterisk/security/advisories/GHSA-8jhw-m2hg-vp3h): Heap Buffer Overflow in OGG/Speex File Playback (format_ogg_speex)
  - [GHSA-8jw3-ccr9-xrmf](https://github.com/asterisk/asterisk/security/advisories/GHSA-8jw3-ccr9-xrmf): Buffer over-read in Asterisk PJSIP MWI body parser
  - [GHSA-g8q2-p36q-94f6](https://github.com/asterisk/asterisk/security/advisories/GHSA-g8q2-p36q-94f6): Heap-use-after-free in Asterisk PJSIP TCP/SDP handling when TCP connection closes during SDP processing
  - [GHSA-h5hv-jmgj-92q2](https://github.com/asterisk/asterisk/security/advisories/GHSA-h5hv-jmgj-92q2): CVE-2022-37325 fix is absent from current chan_ooh323 Q.931 party-number parser
  - [GHSA-j2mm-57pq-jh94](https://github.com/asterisk/asterisk/security/advisories/GHSA-j2mm-57pq-jh94): Possible RED T.140 Generation Accumulation OOB Write
  - [GHSA-mxgm-8c6f-5p8f](https://github.com/asterisk/asterisk/security/advisories/GHSA-mxgm-8c6f-5p8f): Stack buffer overflow in res_xmpp XMPP namespace prefix handling
  - [GHSA-ph27-3m5q-mj5m](https://github.com/asterisk/asterisk/security/advisories/GHSA-ph27-3m5q-mj5m): SQL Injection in cel_pgsql and cel_tds via CELGenUserEvent eventtype Field
  - [GHSA-q9fr-m7g8-6ph5](https://github.com/asterisk/asterisk/security/advisories/GHSA-q9fr-m7g8-6ph5): Asterisk app_sms.c copies externally controlled SMS lengths into fixed in-struct buffers
  - [GHSA-qf8j-jp7h-c5hx](https://github.com/asterisk/asterisk/security/advisories/GHSA-qf8j-jp7h-c5hx): Out-of-Bounds Write in Codec2 Decoder Due to Floor/Ceil Sample Count Mismatch
  - [GHSA-r6c2-hwc2-j4mp](https://github.com/asterisk/asterisk/security/advisories/GHSA-r6c2-hwc2-j4mp): LDAP Filter Injection in res_config_ldap via SIP Username (Unauthenticated Information Disclosure)
  - [GHSA-vfhr-r9x9-c687](https://github.com/asterisk/asterisk/security/advisories/GHSA-vfhr-r9x9-c687): Possible RED T.140 Heap Buffer Overflow
  - [GHSA-vrfp-mg3q-3959](https://github.com/asterisk/asterisk/security/advisories/GHSA-vrfp-mg3q-3959): ARI setChannelVar bypasses live_dangerously and permits FILE() writes
  - [GHSA-wcvv-g26m-wx5c](https://github.com/asterisk/asterisk/security/advisories/GHSA-wcvv-g26m-wx5c): ARI REST-over-WebSocket read-only bypass allows arbitrary module path load and conditional RCE
  - [GHSA-x348-j6c9-77f3](https://github.com/asterisk/asterisk/security/advisories/GHSA-x348-j6c9-77f3): Stack Buffer Overflow in H.323 ooTrace() via Unbounded vsprintf into Fixed 2048-byte Buffer
  - [GHSA-xgj6-2gc5-5x9c](https://github.com/asterisk/asterisk/security/advisories/GHSA-xgj6-2gc5-5x9c): ast_loggrabber executes python script in world writable directory(`/tmp`) leading to potential privilege escalation And RCE

### Developer Notes:

- #### ARI: Make ARI applications respect live_dangerously.
  ARI applications can no longer call "dangerous" dialplan
  functions like DB(), FILE(), SHELL(), CURL(), STAT(), etc. without
  enabling "live_dangerously" in asterisk.conf.
  Resolves: #GHSA-vrfp-mg3q-3959


### Commit Authors:

- George Joseph: (6)
- Mike Bradeen: (3)
- Milan Kyselica: (7)
- Pengpeng Hou: (1)
- Roberto Paleari: (1)
- ThatTotallyRealMyth: (1)

## Issue and Commit Detail:

### Closed Issues:

  - !GHSA-3g56-cgrh-95p5: chan_unistim DIALPAGE digit handling can overflow phone_number and crash Asterisk
  - !GHSA-3rhj-hhw7-m6fw: NULL Pointer Dereference in HTTP AMI Digest Authentication
  - !GHSA-4pgv-j3mr-3rcp: Reflected XSS in Phone Provisioning HTTP Error Pages
  - !GHSA-589g-qgf8-m6mx: Stack buffer overflow in MWI NOTIFY Message-Account parsing
  - !GHSA-746q-794h-cc7f: Out-of-Bounds Read in Q.931 Information Element Parser (H.323 Addon)
  - !GHSA-8jhw-m2hg-vp3h: Heap Buffer Overflow in OGG/Speex File Playback (format_ogg_speex)
  - !GHSA-8jw3-ccr9-xrmf: Buffer over-read in Asterisk PJSIP MWI body parser
  - !GHSA-g8q2-p36q-94f6: Heap-use-after-free in Asterisk PJSIP TCP/SDP handling when TCP connection closes during SDP processing
  - !GHSA-h5hv-jmgj-92q2: CVE-2022-37325 fix is absent from current chan_ooh323 Q.931 party-number parser
  - !GHSA-j2mm-57pq-jh94: Possible RED T.140 Generation Accumulation OOB Write
  - !GHSA-mxgm-8c6f-5p8f: Stack buffer overflow in res_xmpp XMPP namespace prefix handling
  - !GHSA-ph27-3m5q-mj5m: SQL Injection in cel_pgsql and cel_tds via CELGenUserEvent eventtype Field
  - !GHSA-q9fr-m7g8-6ph5: Asterisk app_sms.c copies externally controlled SMS lengths into fixed in-struct buffers
  - !GHSA-qf8j-jp7h-c5hx: Out-of-Bounds Write in Codec2 Decoder Due to Floor/Ceil Sample Count Mismatch
  - !GHSA-r6c2-hwc2-j4mp: LDAP Filter Injection in res_config_ldap via SIP Username (Unauthenticated Information Disclosure)
  - !GHSA-vfhr-r9x9-c687: Possible RED T.140 Heap Buffer Overflow
  - !GHSA-vrfp-mg3q-3959: ARI setChannelVar bypasses live_dangerously and permits FILE() writes
  - !GHSA-wcvv-g26m-wx5c: ARI REST-over-WebSocket read-only bypass allows arbitrary module path load and conditional RCE
  - !GHSA-x348-j6c9-77f3: Stack Buffer Overflow in H.323 ooTrace() via Unbounded vsprintf into Fixed 2048-byte Buffer
  - !GHSA-xgj6-2gc5-5x9c: ast_loggrabber executes python script in world writable directory(`/tmp`) leading to potential privilege escalation And RCE

### Commit List:

-  ast_loggrabber: Install the ast_tsconvert.py script to a secure temp directory.
-  chan_unistim.c: Prevent overrun of phone_number field.
-  ooh323c: not checking for IE minimum length
-  res_ari: Ensure read-only users are properly authorized via REST Over WebSocket.
-  pjsip_message_filter: Use pj_strdup instead of pj_strassign to save local address.
-  ooh323c/ooq931.c: Ensure ooQ931Decode doesn't run out-of-bounds.
-  ARI: Make ARI applications respect live_dangerously.
-  res_rtp_asterisk.c: Address 2 potential T.140 RED buffer overruns.
-  res/res_pjsip_pubsub.c: Fix buffer over-read in MWI body parser
-  manager: Use remote address in user error logging
-  ooh323: Prevent potential buffer overflow in trace logging
-  app_sms: Bound protocol 1 SMS unpacking to fixed-size buffers
-  res_xmpp: Fix stack buffer overflow in namespace prefix handling
-  res_pjsip_pubsub: Add width limit to sscanf in MWI NOTIFY parser
-  res_config_ldap: Escape LDAP filter values per RFC 4515
-  cel_pgsql, cel_tds: Escape eventtype field to prevent SQL injection
-  http: Escape error page text to prevent reflected XSS
-  codec_codec2: Only process complete Codec2 frames in decoder
-  format_ogg_speex: Add bounds check to prevent heap buffer overflow
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.9 2026/06/22 02:59:47 jnemeth Exp $
d8 1
a8 1
DISTNAME=	asterisk-23.4.1
d273 2
@


1.9
log
@Update to Asterisk 23.4.0:


## Change Log for Release asterisk-23.4.0

### Links:

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

### Summary:

- Commits: 53
- Commit Authors: 24
- Issues Resolved: 43
- Security Advisories Resolved: 0

### User Notes:

- #### res ari: Add attachable states to Channels and Bridges
  Bridge variables now can be set and retrieved via the following paths:
  `/bridges/{bridgeId}/variable`
  `/bridges/{bridgeId}/variables`
  Both Bridge and Channel variables can now be set with an optional 'report_events'
  boolean flag that will cause those variables to be included on all events on that
  object. The 'report_events' flag will default to False if not set to maintain
  backwards capability.
  To allow this, variables can now be either name value pairs (the current format):
  `<variable_name>: '<value_string>'`
   - or -
  `<variable_name>: {value: '<value_string>', report_events: [true|false]}`

- #### ARI: Added paths to get and set multiple channel variables.
  Added new ARI paths for getting and setting multiple channel
  variables at a time. For GET, this takes in a single string of
  comma-separated variable names, while POST takes in a dictionary of key
  value pairs. The behavior is the same as passing in variables when
  originating a channel.

- #### res_rtp_asterisk: Add option to control stun host resolution when TTL = 0
  A new `stunaddr_reresolve_ttl_0` parameter has been added to rtp.conf
  that allows control over what happens when a STUN server hostname lookup
  returns a TTL of 0.  The values can be set as follows:
  - 'no': This is the historical (and current default) behavior of not doing
  any further lookups and continuing to use the last successful result until
  Asterisk is restarted or rtp.conf is reloaded.
  - 'yes': Use the last cached result for the current call but trigger
  re-resolution in the background for the benefit of future calls.
  If the result of the background lookup is a ttl > 0, periodic resolution
  will be restarted otherwise the next call will use the new cached value
  and will trigger a background lookup again.
  A new CLI command `rtp resolve stun hostname` has been added
- #### app_dial: Properly handle callee hangup while sending digits.
  If a called channel sends progress or wink and the caller begins
  sending digits but the callee answers and then hangs up before digit
  sending can finish, the call is now answered before being disconnected.
  If the callee hangs up without answering, the call now continues in
  the dialplan.

- #### Upgrade bundled pjproject to 2.17.
  Bundled pjproject has been upgraded to 2.17. For more
  information about what is included in this release, see the
  pjproject Github page: https://github.com/pjsip/pjproject/releases/tag/2.17

- #### res_pjsip: Add per-endpoint RTP port range configuration
  PJSIP endpoints now support rtp_port_start and
  rtp_port_end options to configure a dedicated RTP port range per
  endpoint, overriding the global rtp.conf setting.

- #### stasis_broadcast: Add optional ARI broadcast with first-claim-wins
  New optional modules res_stasis_broadcast.so and
  app_stasis_broadcast.so enable broadcasting an incoming channel to multiple
  ARI applications. The first application to successfully claim (via
  POST /ari/events/claim) wins channel control. StasisBroadcast() dialplan
  application initiates broadcasts. CallBroadcast and CallClaimed events notify
  applications. When modules are not loaded, behavior is unchanged.

- #### chan_iax2: Add CHANNEL getter to retrieve auth method.
  CHANNEL(auth_method) can now be used to retrieve the
  auth method negotiated for a call on IAX2 channels.

- #### res_pjsip_maintenance: Add PJSIP endpoint maintenance mode
  New module res_pjsip_maintenance adds runtime maintenance
  mode for PJSIP endpoints. Use "pjsip set maintenance <on|off>
  <endpoint|all>" to enable or disable, and "pjsip show maintenance"
  to list affected endpoints. AMI actions PJSIPSetMaintenance and
  PJSIPShowMaintenance provide programmatic access. No configuration
  file changes required.


### Upgrade Notes:

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

- #### res_pjsip: Add per-endpoint RTP port range configuration
  An alembic database migration has been added to add
  the rtp_port_start and rtp_port_end columns to the ps_endpoints
  table. Run "alembic upgrade head" to apply the schema change.


### Developer Notes:

- #### res_pjsip: Add per-endpoint RTP port range configuration
  New public API: ast_rtp_instance_new_with_port_range()
  creates an RTP instance with a per-instance port range.
  ast_rtp_instance_get_port_start() and ast_rtp_instance_get_port_end()
  allow RTP engines to query the override. Third-party RTP engines can
  use these getters to support per-instance port ranges.

- #### stasis_broadcast: Add optional ARI broadcast with first-claim-wins
  New public APIs in stasis_app_broadcast.h:
  stasis_app_broadcast_channel(), stasis_app_claim_channel(),
  stasis_app_broadcast_winner(), and stasis_app_broadcast_wait(). New ARI event
  types (CallBroadcast, CallClaimed) added to events.json. All code is isolated;
  no existing ABI modified.

- #### res_pjsip_maintenance: Add PJSIP endpoint maintenance mode
  ast_sip_session_supplement gains a new optional
  callback - int (*session_create)(struct ast_sip_endpoint *endpoint,
  const char *destination). It is called from the global supplement
  list (not per-session) at the start of ast_sip_session_create_outgoing()
  via ast_sip_session_check_supplement_create(). Returning non-zero
  blocks the outgoing session. Modules that need to gate outbound
  SIP session creation should register a supplement with this callback
  set rather than hooking into chan_pjsip directly.

- #### build: remove pjsua, pjsystest, Python bindings and asterisk_malloc_debug stubs from pjproject dev build
  The pjsua and pjsystest application binaries, the deprecated
  Python pjsua bindings (`_pjsua.so`), and the `asterisk_malloc_debug.c` stub
  implementations are no longer built or installed as part of the bundled
  pjproject dev mode build. The `PYTHONDEV` (python2.7-dev) build dependency
  is also removed. Developers who relied on the pjsua binary for Test Suite
  SIP simulation should use SIPp instead, which is the current Asterisk Test
  Suite standard.
  Fixes: #1840


## Issue and Commit Detail:

### Closed Issues:

  - 1217: [bug]: INSERT INTO cdr query prepare statement issue on cdr_adaptive_odbc to control statement preparation manually
  - 1357: [bug]: MessageSend WARNING “not a valid SIP/SIPS URI” when using endpoint not URI
  - 1653: [bug]: Asterisk ODBC Voicemail Crash Caused by Voicemail Re-entry Loop and Unsafe BLOB Retrieval
  - 1736: app_queue: update_queue() may double-increment member->calls with shared_lastcall=yes (regression observed after 20.17; impacts fewestcalls routing)
  - 1761: func_talkdetect.c: TALK_DETECT docs wording mistake
  - 1762: [bug]: 100% CPU usage when entering BridgeWait after JITTERBUFFER(disabled)=
  - 1807: [new-feature]: translate.c: implement different types of sample frame inputs
  - 1812: [new-feature]: add tests/test_codec_translations.c
  - 1818: [bug]: func_odbc: possible use-after-free crash during reload with active calls
  - 1839: Crash in MDMF Caller ID parser due to signed char length field on DAHDI channels
  - 1840: [bug]: Asterisk fails to compile with --enable-dev-mode=yes due to INIT_RETURN undeclared in bundled pjproject Python bindings
  - 1855: [bug]: core reload deadlocks Asterisk (pjsip, CLI, etc.)
  - 1858: [bug]: DNS records with a TTL of zero are permanently cached
  - 1859: [bug]: res_pjsip_outbound_registration: No expires header set when triggered via CLI
  - 1861: [bug]: Possible heap corruption in audiohook/translate write path during bridged media
  - 1862: [bug]: Build fails with Building Documentation: line 210: /tmp/xmldoc.tmp.xml: Permission denied
  - 1865: [bug]: chan_iax2: Another code path that causes crashes on negative data lengths
  - 1867: [bug]: Massive [eventpoll] file-descriptor leak (hundreds of epoll fds) when TURN is enabled in rtp.conf
  - 1872: [bug]:  Deadlock in chan_pjsip_new when endpoint set_var invokes PJSIP_HEADER
  - 1878: [new-feature]: chan_iax2: Allow retrieving the auth method using the CHANNEL function
  - 1883: [bug]: fix: stdatomic.h false positive on GCC 4.8
  - 1885: [bug]: cdrel_custom :SQLite version too old: sqlite3_prepare_v3 / SQLITE_PREPARE_PERSISTENT undeclared
  - 1888: [improvement]: pjsip: Upgrade bundled version to pjproject 2.17
  - 1892: [bug]: Build failure with bundled pjproject on OpenSSL 1.0.x: undefined reference to TLS_method and SSL_CTX_set_ciphersuites
  - 1894: [bug]: Outbound ARI websockets don't always clean up completely
  - 1896: [bug]: asterisk.c fails to compile when HAVE_LIBEDIT_IS_UNICODE isn't defined
  - 1901: [bug]: QUEUE_RAISE_PENALTY=rN ignored when set via queue rules
  - 1903: [bug]: g++ 16 no longer defines __STDC_VERSION__ causing channelstorage_cpp_map_name_id.cc to fail
  - 1907: [bug]: Deadlock between bridge and setting of RTP stats variables at hangup
  - 1910: [improvement]: Add attachable state variables to Channels and Bridges.
  - 1915: [bug]: app_dial: Channel not handled properly if callee disconnects while caller is sending it digits prior to answer
  - 1921: [bug]: Memory error in crypto_get_cert_subject when using malloc_debug
  - 1928: [bug]: Calling ast_softhangup with channel lock held can cause deadlock
  - 1931: [improvement]: jansson: Upgrade version to jansson 2.15.0
  - 1936: [bug]: Calling set_variable on PJSIP channel when originating with ARI with PJSIP_HEADER can result in deadlock
  - 1938: [bug]: res_rtp_asterisk: Copy/paste error in ast_rtp_get_stat()
  - 1941: [bug]: chan_websocket doesn't handle CONTINUATION websocket frames
  - 1947: [bug]: chan_dahdi fails to build with gcc-16 when openr2 is installed
  - 1950: [bug]: app_record does not detect channel hangup during beep playback
  - 1952: [bug]: OpenSSL 4.0.0
  - 1957: [bug]: Calendar module fails to build with libical 4.X
  - 1970: [bug]: Startup or shutdown segfault in res_ari_model under certain conditions with DEVMODE and persistent outbound websockets.

### Commit List:

-  res_ari: Add res_ari_model as an optional_module.
-  res ari: Add attachable states to Channels and Bridges
-  ARI: Added paths to get and set multiple channel variables.
-  res_stir_shaken: avoid direct ASN1_STRING accesses
-  tcptls.c: fix build with OpenSSL 4
-  res_calendar: Fix build with libical 4.X
-  app_record: Fix hangup handling during beep playback
-  odbc: Don't use prepared statements for distinct SQL statements
-  abstract_jb.c: Remove timerfd from channel when disabling jitter buffer
-  res_pjsip: Don't allow a leading period when wildcard matching
-  Ensure channel locks aren't held while calling ast_set_variables.
-  app_queue: fix double increment of member->calls with shared_lastcall
-  chan_dahdi: Fix set but not used in mfcr2_show_links_of().
-  tests: add tests/test_codec_translations.c
-  install_prereq: Add a 'minimal' mode for basic build dependencies
-  chan_websocket: Handle incoming CONTINUATION frames.
-  res_rtp_asterisk: Fix incorrect reference in ast_rtp_get_stat().
-  jansson: Upgrade version to jansson 2.15.0
-  channel.c: Move setting RTP stats from ast_softhangup to ast_ari_channels_hangup.
-  res_rtp_asterisk: Add option to control stun host resolution when TTL = 0
-  pjsip_configuration: Show actual dtls_verify config.
-  app_dial: Properly handle callee hangup while sending digits.
-  res_pjsip_messaging: Update To URI only if it is a SIP(S) URI
-  Upgrade bundled pjproject to 2.17.
-  res_stir_shaken: fix memory free crash when Asterisk is built with malloc_debug
-  manager: Eliminate unnecessary code, simplify sessions in stasis callbacks
-  res_stasis/resource_bridges: Split bridge playback control and wrapper cleanup
-  res_pjsip_outbound_publish.c: Add more verbose documentation for outbound_proxy usage
-  channel.c: Don't lock the channel in ast_softhangup while setting rtp instance vars
-  chan_pjsip: Fix deadlock when endpoint set_var uses PJSIP_HEADER
-  res_pjsip: Add per-endpoint RTP port range configuration
-  app_queue: Fix raise_respect_min lost in copy_rules() breaking rN queue rules
-  app_voicemail_odbc: fix msgnum race and crash on failed STORE
-  ari_websockets: Fix two issues in the cleanup of outbound websockets.
-  compat.h: Ensure check for `__STDC_VERSION__` is not attempted for c++.
-  pjproject: Backport fix for OpenSSL < 1.1.0 build failure in ssl_sock_ossl.c
-  asterisk.c: Fix #if HAVE_LIBEDIT_IS_UNICODE.
-  cdrel_custom: fix SQLite compatibility for versions < 3.20.0
-  translate.c: implement different sample_types for translation computation.
-  stasis_broadcast: Add optional ARI broadcast with first-claim-wins
-  res_audiosocket: Tolerate non-audio frame types
-  pbx_functions: Save module pointer before calling read and write callbacks.
-  chan_iax2: Add CHANNEL getter to retrieve auth method.
-  fix: backport pjproject stdatomic.h GCC 4.8 build failure patch
-  res_rtp_asterisk: Destroy ioqueue in rtp_ioqueue_thread_destroy.
-  res_pjsip_maintenance: Add PJSIP endpoint maintenance mode
-  chan_iax2: Add another check to abort frame handling if datalen < 0.
-  res_pjsip_outbound_registration: only update the Expires header if the value has changed
-  func_talkdetect.c: Clarify dsp_talking_threshold documentation.
-  make_xml_documentation: Remove temporary file on script exit.
-  res_pjsip_config_wizard: Trigger reloads from a pjsip servant thread
-  build: remove pjsua, pjsystest, Python bindings and asterisk_malloc_debug stubs from pjproject dev build
-  callerid: fix signed char causing crash in MDMF parser
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.8 2026/05/14 16:40:32 ryoon Exp $
d8 1
a8 1
DISTNAME=	asterisk-23.4.0
d271 2
@


1.8
log
@*: Recursive revbump from security/nettle-4.0
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.7 2026/04/13 03:47:11 jnemeth Exp $
d8 1
a8 2
DISTNAME=	asterisk-23.3.0
PKGREVISION=	1
d143 1
a143 1
PJPROJ_VERSION=	2.16
d269 2
@


1.7
log
@Update to Asterisk 23.3.0:


## Change Log for Release asterisk-23.3.0

### Links:

 - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-23.3.0.html)
 - [GitHub Diff](https://github.com/asterisk/asterisk/compare/23.2.2...23.3.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.6 2026/04/10 08:41:35 wiz Exp $
d9 1
@


1.6
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.5 2026/02/16 04:11:13 jnemeth Exp $
d8 1
a8 1
DISTNAME=	asterisk-23.2.2
d143 1
a143 1
PJPROJ_VERSION=	2.15.1
d267 2
@


1.5
log
@update to Asterisk 23.2.2:

----- 23.2.2 -----

## Change Log for Release asterisk-23.2.2

### Links:

 - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-23.2.2.html)
 - [GitHub Diff](https://github.com/asterisk/asterisk/compare/23.2.1...23.2.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.

----- 23.2.1 -----

## Change Log for Release asterisk-23.2.1

### Links:

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

### Summary:

- Commits: 1
- Commit Authors: 1
- Issues Resolved: 1
- Security Advisories Resolved: 0

## Issue and Commit Detail:

### Closed Issues:

  - 1739: [bug]: Regression in 23.2.0 with regard to parsing fractional numbers when system locale is non-standard

----- 23.2.0 -----

## Change Log for Release asterisk-23.2.0

### Links:

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

### Summary:

- Commits: 58
- Commit Authors: 20
- Issues Resolved: 41
- Security Advisories Resolved: 0

### User Notes:

- #### chan_websocket.conf.sample: Fix category name.
  The category name in the chan_websocket.conf.sample file was
  incorrect.  It should be "global" instead of "general".

- #### cli.c: Allow 'channel request hangup' to accept patterns.
  The 'channel request hangup' CLI command now accepts
  multiple channel names, POSIX Extended Regular Expressions, glob-like
  patterns, or a combination of all of them. See the CLI command 'core
  show help channel request hangup' for full details.

- #### res_sorcery_memory_cache: Reduce cache lock time for sorcery memory cache populate command
  The AMI command sorcery memory cache populate will now
  return an error if there is an internal error performing the populate.
  The CLI command will display an error in this case as well.

- #### res_geolocation:  Fix multiple issues with XML generation.
  Geolocation: Two new optional profile parameters have been added.
  * `pidf_element_id` which sets the value of the `id` attribute on the top-level
    PIDF-LO `device`, `person` or `tuple` elements.
  * `device_id` which sets the content of the `<deviceID>` element.
  Both parameters can include channel variables.

- #### res_pjsip_messaging: Add support for following 3xx redirects
  A new pjsip endpoint option follow_redirect_methods was added.
  This option is a comma-delimited, case-insensitive list of SIP methods
  for which SIP 3XX redirect responses are followed. An alembic upgrade
  script has been added for adding this new option to the Asterisk
  database.

- #### taskprocessors: Improve logging and add new cli options
  New CLI command has been added -
  core show taskprocessor name <taskprocessor-name>

- #### ccss:  Add option to ccss.conf to globally disable it.
  A new "enabled" parameter has been added to ccss.conf.  It defaults
  to "yes" to preserve backwards compatibility but CCSS is rarely used so
  setting "enabled = no" in the "general" section can save some unneeded channel
  locking operations and log message spam.  Disabling ccss will also prevent
  the func_callcompletion and chan_dahdi modules from loading.

- #### Makefile: Add module-list-* targets.
  Try "make module-list-deprecated" to see what modules
  are on their way out the door.

- #### app_mixmonitor: Add 's' (skip) option to delay recording.
  This change introduces a new 's(<seconds>)' (skip) option to the MixMonitor
  application. Example:
    MixMonitor(${UNIQUEID}.wav,s(3))
  This skips recording for the first 3 seconds before writing audio to the file.
  Existing MixMonitor behavior remains unchanged when the 's' option is not used.

- #### app_queue.c: Only announce to head caller if announce_to_first_user
  When announce_to_first_user is false, no announcements are played to the head caller


### Upgrade Notes:

- #### res_geolocation:  Fix multiple issues with XML generation.
  Geolocation: In order to correct bugs in both code and
  documentation, the following changes to the parameters for GML geolocation
  locations are now in effect:
  * The documented but unimplemented `crs` (coordinate reference system) element
    has been added to the location_info parameter that indicates whether the `2d`
    or `3d` reference system is to be used. If the crs isn't valid for the shape
    specified, an error will be generated. The default depends on the shape
    specified.
  * The Circle, Ellipse and ArcBand shapes MUST use a `2d` crs.  If crs isn't
    specified, it will default to `2d` for these shapes.
    The Sphere, Ellipsoid and Prism shapes MUST use a `3d` crs. If crs isn't
    specified, it will default to `3d` for these shapes.
    The Point and Polygon shapes may use either crs.  The default crs is `2d`
    however so if `3d` positions are used, the crs must be explicitly set to `3d`.
  * The `geoloc show gml_shape_defs` CLI command has been updated to show which
    coordinate reference systems are valid for each shape.
  * The `pos3d` element has been removed in favor of allowing the `pos` element
    to include altitude if the crs is `3d`.  The number of values in the `pos`
    element MUST be 2 if the crs is `2d` and 3 if the crs is `3d`.  An error
    will be generated for any other combination.
  * The angle unit-of-measure for shapes that use angles should now be included
    in the respective parameter.  The default is `degrees`. There were some
    inconsistent references to `orientation_uom` in some documentation but that
    parameter never worked and is now removed.  See examples below.
  Examples...
  ```
    location_info = shape="Sphere", pos="39.0 -105.0 1620", radius="20"
    location_info = shape="Point", crs="3d", pos="39.0 -105.0 1620"
    location_info = shape="Point", pos="39.0 -105.0"
    location_info = shape=Ellipsoid, pos="39.0 -105.0 1620", semiMajorAxis="20"
                  semiMinorAxis="10", verticalAxis="0", orientation="25 degrees"
    pidf_element_id = ${CHANNEL(name)}-${EXTEN}
    device_id = mac:001122334455
    Set(GEOLOC_PROFILE(pidf_element_id)=${CHANNEL(name)}/${EXTEN})
  ```

- #### pjsip: Move from threadpool to taskpool
  The threadpool_* options in pjsip.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 PJSIP. An alembic
  upgrade script has been added to add these options to realtime
  as well.

- #### app_directed_pickup.c: Change some log messages from NOTICE to VERBOSE.
  In an effort to reduce log spam, two normal progress
  "pickup attempted" log messages from app_directed_pickup have been changed
  from NOTICE to VERBOSE(3).  This puts them on par with other normal
  dialplan progress messages.


### Developer Notes:

- #### ccss:  Add option to ccss.conf to globally disable it.
  A new API ast_is_cc_enabled() has been added.  It should be
  used to ensure that CCSS is enabled before making any other ast_cc_* calls.

- #### chan_websocket: Add ability to place a MARK in the media stream.
  Apps can now send a `MARK_MEDIA` command with an optional
  `correlation_id` parameter to chan_websocket which will be placed in the
  media frame queue. When that frame is dequeued after all intervening media
  has been played to the core, chan_websocket will send a
  `MEDIA_MARK_PROCESSED` event to the app with the same correlation_id
  (if any).

- #### chan_websocket: Add capability for JSON control messages and events.
  The chan_websocket plain-text control and event messages are now
  deprecated (but remain the default) in favor of JSON formatted messages.
  See https://docs.asterisk.org/Configuration/Channel-Drivers/WebSocket for
  more information.
  A "transport_data" parameter has been added to the
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.4 2026/02/06 10:04:21 wiz Exp $
d20 1
a20 1
OWNER=		jnemeth@@NetBSD.org
@


1.4
log
@*: recursive bump for nettle 4.0 shlib major bump
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.3 2026/01/07 08:46:04 wiz Exp $
d8 1
a8 2
DISTNAME=	asterisk-23.1.0
PKGREVISION=	2
a179 3
post-extract:
	mv ${WRKSRC}/configs/samples/phoneprov_users.conf ${WRKSRC}/configs/samples/phoneprov_users.conf.sample

d217 12
a228 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 phoneprov_users.conf pjproject.conf	\
	pjsip.conf pjsip_notify.conf pjsip_wizard.conf prometheus.conf	\
d261 6
@


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


1.2
log
@Update to Asterisk 23.1.0.


## Change Log for Release asterisk-23.1.0

### Links:

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

### Summary:

- Commits: 53
- Commit Authors: 17
- Issues Resolved: 37
- 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*
  - 1451: [bug]: ast_config_text_file_save2(): incorrect handling of deep/wide template inheritance
  - 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
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.1 2025/10/27 06:58:36 jnemeth Exp $
d9 1
@


1.1
log
@comms/asterisk23: import asterisk-23.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 standard version.  It is scheduled to go to security
fixes only on October 15th, 2026, and EOL on October 15th, 2027.
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.15 2025/10/27 04:35:13 jnemeth Exp $
d8 1
a8 1
DISTNAME=	asterisk-23.0.0
d261 2
@

