pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/comms/asterisk21



Module Name:    pkgsrc
Committed By:   jnemeth
Date:           Mon Apr  8 03:20:10 UTC 2024

Added Files:
        pkgsrc/comms/asterisk21: DESCR Makefile PLIST distinfo options.mk
        pkgsrc/comms/asterisk21/files: asterisk.sh
        pkgsrc/comms/asterisk21/files/smf: manifest.xml
        pkgsrc/comms/asterisk21/patches: patch-Makefile
            patch-addons_chan__ooh323.c patch-apps_app__adsiprog.c
            patch-apps_app__chanspy.c patch-apps_app__directory.c
            patch-apps_app__dumpchan.c patch-apps_app__followme.c
            patch-apps_app__minivm.c patch-apps_app__queue.c
            patch-apps_app__sms.c patch-apps_app__voicemail.c
            patch-build__tools_make__xml__documentation
            patch-build__tools_mkpkgconfig patch-cdr_cdr__pgsql.c
            patch-cel_cel__pgsql.c patch-channels_chan__pjsip.c
            patch-channels_pjsip_cli__commands.c
            patch-channels_pjsip_dialplan__functions.c patch-configure
            patch-configure.ac patch-contrib_scripts_vmail.cgi
            patch-funcs_func__cdr.c patch-funcs_func__channel.c
            patch-funcs_func__env.c patch-funcs_func__pjsip__aor.c
            patch-funcs_func__pjsip__contact.c
            patch-funcs_func__pjsip__endpoint.c patch-funcs_func__strings.c
            patch-include_asterisk_autoconfig.h.in
            patch-include_asterisk_lock.h patch-include_asterisk_strings.h
            patch-main_Makefile patch-main_acl.c patch-main_app.c
            patch-main_ast__expr2.c patch-main_ast__expr2.y
            patch-main_asterisk.c patch-main_astmm.c patch-main_bridge__basic.c
            patch-main_bridge__channel.c patch-main_callerid.c patch-main_cdr.c
            patch-main_cel.c patch-main_cli.c patch-main_config.c
            patch-main_conversions.c patch-main_dns__naptr.c patch-main_enum.c
            patch-main_features.c patch-main_http.c patch-main_indications.c
            patch-main_logger.c patch-main_manager.c patch-main_pbx.c
            patch-main_pbx__builtins.c patch-main_pbx__timing.c
            patch-main_sched.c patch-main_stdtime_localtime.c
            patch-main_taskprocessor.c patch-main_tdd.c patch-main_test.c
            patch-main_utils.c patch-menuselect_menuselect.c
            patch-pbx_pbx__config.c patch-pbx_pbx__dundi.c patch-res_ael_pval.c
            patch-res_res__calendar.c patch-res_res__format__attr__celt.c
            patch-res_res__format__attr__h263.c
            patch-res_res__format__attr__ilbc.c
            patch-res_res__format__attr__opus.c
            patch-res_res__format__attr__silk.c
            patch-res_res__format__attr__siren14.c
            patch-res_res__format__attr__siren7.c
            patch-res_res__format__attr__vp8.c patch-res_res__hep__pjsip.c
            patch-res_res__limit.c patch-res_res__musiconhold.c
            patch-res_res__pjproject.c patch-res_res__pjsip__diversion.c
            patch-res_res__pjsip_pjsip__configuration.c patch-res_res__xmpp.c
            patch-sounds_Makefile patch-tests_test__locale.c
            patch-tests_test__voicemail__api.c
            patch-third-party_pjproject_patches_0100-netbsd.patch
            patch-third-party_pjproject_patches_0110-netbsd.patch
            patch-third-party_pjproject_patches_0120-netbsd.patch
            patch-third-party_pjproject_patches_0130-netbsd.patch
            patch-third-party_pjproject_patches_0140-netbsd.patch
            patch-third-party_pjproject_patches_0150-netbsd.patch
            patch-third-party_pjproject_patches_0160-netbsd.patch
            patch-utils_Makefile patch-utils_db1-ast_include_db.h
            patch-utils_extconf.c patch-utils_smsq.c

Log Message:
comms/asterisk21: import asterisk-21.2.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 IAX.

This is an standard version.  It is secheduled to go to security
fixes only on November 18th, 2025, and EOL on November 18th, 2026.
See here for more information about Asterisk versions:
https://docs.asterisk.org/About-the-Project/Asterisk-Versions

Note that many things that have long been deprecated have now been
removed, such as chan_sip and app_macro.  See here for a complete
list:  http://docs.asterisk.org/Development/Asterisk-Module-Deprecations


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/comms/asterisk21/DESCR \
    pkgsrc/comms/asterisk21/Makefile pkgsrc/comms/asterisk21/PLIST \
    pkgsrc/comms/asterisk21/distinfo pkgsrc/comms/asterisk21/options.mk
cvs rdiff -u -r0 -r1.1 pkgsrc/comms/asterisk21/files/asterisk.sh
cvs rdiff -u -r0 -r1.1 pkgsrc/comms/asterisk21/files/smf/manifest.xml
cvs rdiff -u -r0 -r1.1 pkgsrc/comms/asterisk21/patches/patch-Makefile \
    pkgsrc/comms/asterisk21/patches/patch-addons_chan__ooh323.c \
    pkgsrc/comms/asterisk21/patches/patch-apps_app__adsiprog.c \
    pkgsrc/comms/asterisk21/patches/patch-apps_app__chanspy.c \
    pkgsrc/comms/asterisk21/patches/patch-apps_app__directory.c \
    pkgsrc/comms/asterisk21/patches/patch-apps_app__dumpchan.c \
    pkgsrc/comms/asterisk21/patches/patch-apps_app__followme.c \
    pkgsrc/comms/asterisk21/patches/patch-apps_app__minivm.c \
    pkgsrc/comms/asterisk21/patches/patch-apps_app__queue.c \
    pkgsrc/comms/asterisk21/patches/patch-apps_app__sms.c \
    pkgsrc/comms/asterisk21/patches/patch-apps_app__voicemail.c \
    pkgsrc/comms/asterisk21/patches/patch-build__tools_make__xml__documentation \
    pkgsrc/comms/asterisk21/patches/patch-build__tools_mkpkgconfig \
    pkgsrc/comms/asterisk21/patches/patch-cdr_cdr__pgsql.c \
    pkgsrc/comms/asterisk21/patches/patch-cel_cel__pgsql.c \
    pkgsrc/comms/asterisk21/patches/patch-channels_chan__pjsip.c \
    pkgsrc/comms/asterisk21/patches/patch-channels_pjsip_cli__commands.c \
    pkgsrc/comms/asterisk21/patches/patch-channels_pjsip_dialplan__functions.c \
    pkgsrc/comms/asterisk21/patches/patch-configure \
    pkgsrc/comms/asterisk21/patches/patch-configure.ac \
    pkgsrc/comms/asterisk21/patches/patch-contrib_scripts_vmail.cgi \
    pkgsrc/comms/asterisk21/patches/patch-funcs_func__cdr.c \
    pkgsrc/comms/asterisk21/patches/patch-funcs_func__channel.c \
    pkgsrc/comms/asterisk21/patches/patch-funcs_func__env.c \
    pkgsrc/comms/asterisk21/patches/patch-funcs_func__pjsip__aor.c \
    pkgsrc/comms/asterisk21/patches/patch-funcs_func__pjsip__contact.c \
    pkgsrc/comms/asterisk21/patches/patch-funcs_func__pjsip__endpoint.c \
    pkgsrc/comms/asterisk21/patches/patch-funcs_func__strings.c \
    pkgsrc/comms/asterisk21/patches/patch-include_asterisk_autoconfig.h.in \
    pkgsrc/comms/asterisk21/patches/patch-include_asterisk_lock.h \
    pkgsrc/comms/asterisk21/patches/patch-include_asterisk_strings.h \
    pkgsrc/comms/asterisk21/patches/patch-main_Makefile \
    pkgsrc/comms/asterisk21/patches/patch-main_acl.c \
    pkgsrc/comms/asterisk21/patches/patch-main_app.c \
    pkgsrc/comms/asterisk21/patches/patch-main_ast__expr2.c \
    pkgsrc/comms/asterisk21/patches/patch-main_ast__expr2.y \
    pkgsrc/comms/asterisk21/patches/patch-main_asterisk.c \
    pkgsrc/comms/asterisk21/patches/patch-main_astmm.c \
    pkgsrc/comms/asterisk21/patches/patch-main_bridge__basic.c \
    pkgsrc/comms/asterisk21/patches/patch-main_bridge__channel.c \
    pkgsrc/comms/asterisk21/patches/patch-main_callerid.c \
    pkgsrc/comms/asterisk21/patches/patch-main_cdr.c \
    pkgsrc/comms/asterisk21/patches/patch-main_cel.c \
    pkgsrc/comms/asterisk21/patches/patch-main_cli.c \
    pkgsrc/comms/asterisk21/patches/patch-main_config.c \
    pkgsrc/comms/asterisk21/patches/patch-main_conversions.c \
    pkgsrc/comms/asterisk21/patches/patch-main_dns__naptr.c \
    pkgsrc/comms/asterisk21/patches/patch-main_enum.c \
    pkgsrc/comms/asterisk21/patches/patch-main_features.c \
    pkgsrc/comms/asterisk21/patches/patch-main_http.c \
    pkgsrc/comms/asterisk21/patches/patch-main_indications.c \
    pkgsrc/comms/asterisk21/patches/patch-main_logger.c \
    pkgsrc/comms/asterisk21/patches/patch-main_manager.c \
    pkgsrc/comms/asterisk21/patches/patch-main_pbx.c \
    pkgsrc/comms/asterisk21/patches/patch-main_pbx__builtins.c \
    pkgsrc/comms/asterisk21/patches/patch-main_pbx__timing.c \
    pkgsrc/comms/asterisk21/patches/patch-main_sched.c \
    pkgsrc/comms/asterisk21/patches/patch-main_stdtime_localtime.c \
    pkgsrc/comms/asterisk21/patches/patch-main_taskprocessor.c \
    pkgsrc/comms/asterisk21/patches/patch-main_tdd.c \
    pkgsrc/comms/asterisk21/patches/patch-main_test.c \
    pkgsrc/comms/asterisk21/patches/patch-main_utils.c \
    pkgsrc/comms/asterisk21/patches/patch-menuselect_menuselect.c \
    pkgsrc/comms/asterisk21/patches/patch-pbx_pbx__config.c \
    pkgsrc/comms/asterisk21/patches/patch-pbx_pbx__dundi.c \
    pkgsrc/comms/asterisk21/patches/patch-res_ael_pval.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__calendar.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__celt.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__h263.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__ilbc.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__opus.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__silk.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__siren14.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__siren7.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__vp8.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__hep__pjsip.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__limit.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__musiconhold.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__pjproject.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__pjsip__diversion.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__pjsip_pjsip__configuration.c \
    pkgsrc/comms/asterisk21/patches/patch-res_res__xmpp.c \
    pkgsrc/comms/asterisk21/patches/patch-sounds_Makefile \
    pkgsrc/comms/asterisk21/patches/patch-tests_test__locale.c \
    pkgsrc/comms/asterisk21/patches/patch-tests_test__voicemail__api.c \
    pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0100-netbsd.patch \
    pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0110-netbsd.patch \
    pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0120-netbsd.patch \
    pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0130-netbsd.patch \
    pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0140-netbsd.patch \
    pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0150-netbsd.patch \
    pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0160-netbsd.patch \
    pkgsrc/comms/asterisk21/patches/patch-utils_Makefile \
    pkgsrc/comms/asterisk21/patches/patch-utils_db1-ast_include_db.h \
    pkgsrc/comms/asterisk21/patches/patch-utils_extconf.c \
    pkgsrc/comms/asterisk21/patches/patch-utils_smsq.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: pkgsrc/comms/asterisk21/DESCR
diff -u /dev/null pkgsrc/comms/asterisk21/DESCR:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/DESCR       Mon Apr  8 03:20:06 2024
@@ -0,0 +1,18 @@
+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 IAX.
+
+This is an standard version.  It is secheduled to go to security
+fixes only on November 18th, 2025, and EOL on November 18th, 2026.
+See here for more information about Asterisk versions:
+https://docs.asterisk.org/About-the-Project/Asterisk-Versions
+
+Note that many things that have long been deprecated have now been
+removed, such as chan_sip and app_macro.  See here for a complete
+list:  http://docs.asterisk.org/Development/Asterisk-Module-Deprecations
Index: pkgsrc/comms/asterisk21/Makefile
diff -u /dev/null pkgsrc/comms/asterisk21/Makefile:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/Makefile    Mon Apr  8 03:20:06 2024
@@ -0,0 +1,288 @@
+# $NetBSD: Makefile,v 1.1 2024/04/08 03:20:06 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-21.2.0
+#PKGREVISION=  24
+CATEGORIES=    comms net audio
+MASTER_SITES=  http://downloads.asterisk.org/pub/telephony/asterisk/
+MASTER_SITES+= http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/
+MASTER_SITES+= http://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
+OWNER=         jnemeth%NetBSD.org@localhost
+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 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
+# 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.14
+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 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 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-21.0.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
+       ${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-21.0.1.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
+       ${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-21.0.2.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
+       ${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-21.1.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
+       ${INSTALL_DATA} ${WRKSRC}/ChangeLogs/ChangeLog-21.2.0.md ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
+       ${INSTALL_DATA} ${WRKSRC}/ChangeLogs/historical/CHANGES ${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"
Index: pkgsrc/comms/asterisk21/PLIST
diff -u /dev/null pkgsrc/comms/asterisk21/PLIST:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/PLIST       Mon Apr  8 03:20:06 2024
@@ -0,0 +1,2440 @@
+@comment $NetBSD: PLIST,v 1.1 2024/04/08 03:20:06 jnemeth Exp $
+lib/asterisk/libasteriskpj.so
+lib/asterisk/libasteriskpj.so.2
+lib/asterisk/modules/app_adsiprog.so
+lib/asterisk/modules/app_agent_pool.so
+lib/asterisk/modules/app_alarmreceiver.so
+lib/asterisk/modules/app_amd.so
+lib/asterisk/modules/app_attended_transfer.so
+lib/asterisk/modules/app_audiosocket.so
+lib/asterisk/modules/app_authenticate.so
+lib/asterisk/modules/app_blind_transfer.so
+lib/asterisk/modules/app_bridgeaddchan.so
+lib/asterisk/modules/app_bridgewait.so
+lib/asterisk/modules/app_broadcast.so
+lib/asterisk/modules/app_cdr.so
+lib/asterisk/modules/app_celgenuserevent.so
+lib/asterisk/modules/app_chanisavail.so
+lib/asterisk/modules/app_channelredirect.so
+lib/asterisk/modules/app_chanspy.so
+lib/asterisk/modules/app_confbridge.so
+lib/asterisk/modules/app_controlplayback.so
+lib/asterisk/modules/app_db.so
+lib/asterisk/modules/app_dial.so
+lib/asterisk/modules/app_dictate.so
+lib/asterisk/modules/app_directed_pickup.so
+lib/asterisk/modules/app_directory.so
+lib/asterisk/modules/app_disa.so
+lib/asterisk/modules/app_dtmfstore.so
+lib/asterisk/modules/app_dumpchan.so
+lib/asterisk/modules/app_echo.so
+lib/asterisk/modules/app_exec.so
+lib/asterisk/modules/app_externalivr.so
+lib/asterisk/modules/app_festival.so
+lib/asterisk/modules/app_followme.so
+lib/asterisk/modules/app_forkcdr.so
+lib/asterisk/modules/app_getcpeid.so
+lib/asterisk/modules/app_if.so
+lib/asterisk/modules/app_mf.so
+lib/asterisk/modules/app_milliwatt.so
+lib/asterisk/modules/app_minivm.so
+lib/asterisk/modules/app_mixmonitor.so
+lib/asterisk/modules/app_morsecode.so
+lib/asterisk/modules/app_mp3.so
+lib/asterisk/modules/app_originate.so
+lib/asterisk/modules/app_page.so
+lib/asterisk/modules/app_playback.so
+lib/asterisk/modules/app_playtones.so
+lib/asterisk/modules/app_privacy.so
+lib/asterisk/modules/app_queue.so
+lib/asterisk/modules/app_read.so
+lib/asterisk/modules/app_readexten.so
+lib/asterisk/modules/app_record.so
+lib/asterisk/modules/app_reload.so
+lib/asterisk/modules/app_sayunixtime.so
+lib/asterisk/modules/app_senddtmf.so
+lib/asterisk/modules/app_sendtext.so
+lib/asterisk/modules/app_sf.so
+lib/asterisk/modules/app_signal.so
+lib/asterisk/modules/app_sla.so
+lib/asterisk/modules/app_sms.so
+lib/asterisk/modules/app_softhangup.so
+lib/asterisk/modules/app_speech_utils.so
+lib/asterisk/modules/app_stack.so
+lib/asterisk/modules/app_stasis.so
+lib/asterisk/modules/app_stream_echo.so
+lib/asterisk/modules/app_system.so
+lib/asterisk/modules/app_talkdetect.so
+lib/asterisk/modules/app_test.so
+lib/asterisk/modules/app_transfer.so
+lib/asterisk/modules/app_userevent.so
+lib/asterisk/modules/app_verbose.so
+lib/asterisk/modules/app_voicemail.so
+lib/asterisk/modules/app_waitforcond.so
+lib/asterisk/modules/app_waitforring.so
+lib/asterisk/modules/app_waitforsilence.so
+lib/asterisk/modules/app_waituntil.so
+lib/asterisk/modules/app_while.so
+lib/asterisk/modules/app_zapateller.so
+lib/asterisk/modules/bridge_builtin_features.so
+lib/asterisk/modules/bridge_builtin_interval_features.so
+lib/asterisk/modules/bridge_holding.so
+lib/asterisk/modules/bridge_native_rtp.so
+lib/asterisk/modules/bridge_simple.so
+lib/asterisk/modules/bridge_softmix.so
+${PLIST.unixodbc}lib/asterisk/modules/cdr_adaptive_odbc.so
+lib/asterisk/modules/cdr_csv.so
+lib/asterisk/modules/cdr_custom.so
+lib/asterisk/modules/cdr_manager.so
+${PLIST.unixodbc}lib/asterisk/modules/cdr_odbc.so
+${PLIST.pgsql}lib/asterisk/modules/cdr_pgsql.so
+lib/asterisk/modules/cdr_sqlite3_custom.so
+lib/asterisk/modules/cel_custom.so
+lib/asterisk/modules/cel_manager.so
+${PLIST.unixodbc}lib/asterisk/modules/cel_odbc.so
+${PLIST.pgsql}lib/asterisk/modules/cel_pgsql.so
+lib/asterisk/modules/cel_sqlite3_custom.so
+lib/asterisk/modules/chan_audiosocket.so
+lib/asterisk/modules/chan_bridge_media.so
+lib/asterisk/modules/chan_iax2.so
+${PLIST.jabber}lib/asterisk/modules/chan_motif.so
+lib/asterisk/modules/chan_pjsip.so
+lib/asterisk/modules/chan_rtp.so
+lib/asterisk/modules/chan_unistim.so
+lib/asterisk/modules/codec_a_mu.so
+lib/asterisk/modules/codec_adpcm.so
+lib/asterisk/modules/codec_alaw.so
+lib/asterisk/modules/codec_g722.so
+lib/asterisk/modules/codec_g726.so
+lib/asterisk/modules/codec_gsm.so
+lib/asterisk/modules/codec_ilbc.so
+lib/asterisk/modules/codec_lpc10.so
+lib/asterisk/modules/codec_resample.so
+${PLIST.speex}lib/asterisk/modules/codec_speex.so
+lib/asterisk/modules/codec_ulaw.so
+lib/asterisk/modules/format_g719.so
+lib/asterisk/modules/format_g723.so
+lib/asterisk/modules/format_g726.so
+lib/asterisk/modules/format_g729.so
+lib/asterisk/modules/format_gsm.so
+lib/asterisk/modules/format_h263.so
+lib/asterisk/modules/format_h264.so
+lib/asterisk/modules/format_ilbc.so
+${PLIST.speex}lib/asterisk/modules/format_ogg_speex.so
+lib/asterisk/modules/format_pcm.so
+lib/asterisk/modules/format_siren14.so
+lib/asterisk/modules/format_siren7.so
+lib/asterisk/modules/format_sln.so
+lib/asterisk/modules/format_vox.so
+lib/asterisk/modules/format_wav.so
+lib/asterisk/modules/format_wav_gsm.so
+lib/asterisk/modules/func_aes.so
+lib/asterisk/modules/func_base64.so
+lib/asterisk/modules/func_blacklist.so
+lib/asterisk/modules/func_callcompletion.so
+lib/asterisk/modules/func_callerid.so
+lib/asterisk/modules/func_cdr.so
+lib/asterisk/modules/func_channel.so
+lib/asterisk/modules/func_config.so
+lib/asterisk/modules/func_curl.so
+lib/asterisk/modules/func_cut.so
+lib/asterisk/modules/func_db.so
+lib/asterisk/modules/func_devstate.so
+lib/asterisk/modules/func_dialgroup.so
+lib/asterisk/modules/func_dialplan.so
+lib/asterisk/modules/func_enum.so
+lib/asterisk/modules/func_env.so
+lib/asterisk/modules/func_evalexten.so
+lib/asterisk/modules/func_export.so
+lib/asterisk/modules/func_extstate.so
+lib/asterisk/modules/func_frame_drop.so
+lib/asterisk/modules/func_frame_trace.so
+lib/asterisk/modules/func_global.so
+lib/asterisk/modules/func_groupcount.so
+lib/asterisk/modules/func_hangupcause.so
+lib/asterisk/modules/func_holdintercept.so
+lib/asterisk/modules/func_iconv.so
+lib/asterisk/modules/func_jitterbuffer.so
+lib/asterisk/modules/func_json.so
+lib/asterisk/modules/func_lock.so
+lib/asterisk/modules/func_logic.so
+lib/asterisk/modules/func_math.so
+lib/asterisk/modules/func_md5.so
+lib/asterisk/modules/func_module.so
+${PLIST.unixodbc}lib/asterisk/modules/func_odbc.so
+lib/asterisk/modules/func_periodic_hook.so
+lib/asterisk/modules/func_pitchshift.so
+lib/asterisk/modules/func_pjsip_aor.so
+lib/asterisk/modules/func_pjsip_contact.so
+lib/asterisk/modules/func_pjsip_endpoint.so
+lib/asterisk/modules/func_presencestate.so
+lib/asterisk/modules/func_rand.so
+lib/asterisk/modules/func_realtime.so
+lib/asterisk/modules/func_sayfiles.so
+lib/asterisk/modules/func_scramble.so
+lib/asterisk/modules/func_sha1.so
+lib/asterisk/modules/func_shell.so
+lib/asterisk/modules/func_sorcery.so
+${PLIST.speex}lib/asterisk/modules/func_speex.so
+lib/asterisk/modules/func_sprintf.so
+lib/asterisk/modules/func_srv.so
+lib/asterisk/modules/func_strings.so
+lib/asterisk/modules/func_sysinfo.so
+lib/asterisk/modules/func_talkdetect.so
+lib/asterisk/modules/func_timeout.so
+lib/asterisk/modules/func_uri.so
+lib/asterisk/modules/func_version.so
+lib/asterisk/modules/func_vmcount.so
+lib/asterisk/modules/func_volume.so
+lib/asterisk/modules/pbx_ael.so
+lib/asterisk/modules/pbx_config.so
+lib/asterisk/modules/pbx_dundi.so
+lib/asterisk/modules/pbx_loopback.so
+lib/asterisk/modules/pbx_realtime.so
+lib/asterisk/modules/pbx_spool.so
+lib/asterisk/modules/res_adsi.so
+lib/asterisk/modules/res_aeap.so
+lib/asterisk/modules/res_ael_share.so
+lib/asterisk/modules/res_agi.so
+lib/asterisk/modules/res_ari.so
+lib/asterisk/modules/res_ari_applications.so
+lib/asterisk/modules/res_ari_asterisk.so
+lib/asterisk/modules/res_ari_bridges.so
+lib/asterisk/modules/res_ari_channels.so
+lib/asterisk/modules/res_ari_device_states.so
+lib/asterisk/modules/res_ari_endpoints.so
+lib/asterisk/modules/res_ari_events.so
+lib/asterisk/modules/res_ari_model.so
+lib/asterisk/modules/res_ari_playbacks.so
+lib/asterisk/modules/res_ari_recordings.so
+lib/asterisk/modules/res_ari_sounds.so
+lib/asterisk/modules/res_audiosocket.so
+lib/asterisk/modules/res_calendar.so
+lib/asterisk/modules/res_clialiases.so
+lib/asterisk/modules/res_clioriginate.so
+lib/asterisk/modules/res_config_curl.so
+${PLIST.ldap}lib/asterisk/modules/res_config_ldap.so
+${PLIST.unixodbc}lib/asterisk/modules/res_config_odbc.so
+${PLIST.pgsql}lib/asterisk/modules/res_config_pgsql.so
+lib/asterisk/modules/res_config_sqlite3.so
+lib/asterisk/modules/res_convert.so
+lib/asterisk/modules/res_crypto.so
+lib/asterisk/modules/res_curl.so
+lib/asterisk/modules/res_fax.so
+${PLIST.spandsp}lib/asterisk/modules/res_fax_spandsp.so
+lib/asterisk/modules/res_format_attr_celt.so
+lib/asterisk/modules/res_format_attr_g729.so
+lib/asterisk/modules/res_format_attr_h263.so
+lib/asterisk/modules/res_format_attr_h264.so
+lib/asterisk/modules/res_format_attr_ilbc.so
+lib/asterisk/modules/res_format_attr_opus.so
+lib/asterisk/modules/res_format_attr_silk.so
+lib/asterisk/modules/res_format_attr_siren14.so
+lib/asterisk/modules/res_format_attr_siren7.so
+lib/asterisk/modules/res_format_attr_vp8.so
+lib/asterisk/modules/res_hep.so
+lib/asterisk/modules/res_hep_pjsip.so
+lib/asterisk/modules/res_hep_rtcp.so
+lib/asterisk/modules/res_http_media_cache.so
+lib/asterisk/modules/res_http_websocket.so
+lib/asterisk/modules/res_limit.so
+lib/asterisk/modules/res_manager_devicestate.so
+lib/asterisk/modules/res_manager_presencestate.so
+lib/asterisk/modules/res_musiconhold.so
+lib/asterisk/modules/res_mutestream.so
+lib/asterisk/modules/res_mwi_devstate.so
+${PLIST.unixodbc}lib/asterisk/modules/res_odbc.so
+${PLIST.unixodbc}lib/asterisk/modules/res_odbc_transaction.so
+lib/asterisk/modules/res_parking.so
+lib/asterisk/modules/res_phoneprov.so
+lib/asterisk/modules/res_pjproject.so
+lib/asterisk/modules/res_pjsip.so
+lib/asterisk/modules/res_pjsip_acl.so
+lib/asterisk/modules/res_pjsip_aoc.so
+lib/asterisk/modules/res_pjsip_authenticator_digest.so
+lib/asterisk/modules/res_pjsip_caller_id.so
+lib/asterisk/modules/res_pjsip_config_wizard.so
+lib/asterisk/modules/res_pjsip_dialog_info_body_generator.so
+lib/asterisk/modules/res_pjsip_diversion.so
+lib/asterisk/modules/res_pjsip_dlg_options.so
+lib/asterisk/modules/res_pjsip_dtmf_info.so
+lib/asterisk/modules/res_pjsip_empty_info.so
+lib/asterisk/modules/res_pjsip_endpoint_identifier_anonymous.so
+lib/asterisk/modules/res_pjsip_endpoint_identifier_ip.so
+lib/asterisk/modules/res_pjsip_endpoint_identifier_user.so
+lib/asterisk/modules/res_pjsip_exten_state.so
+lib/asterisk/modules/res_pjsip_header_funcs.so
+lib/asterisk/modules/res_pjsip_history.so
+lib/asterisk/modules/res_pjsip_logger.so
+lib/asterisk/modules/res_pjsip_messaging.so
+lib/asterisk/modules/res_pjsip_mwi.so
+lib/asterisk/modules/res_pjsip_mwi_body_generator.so
+lib/asterisk/modules/res_pjsip_nat.so
+lib/asterisk/modules/res_pjsip_notify.so
+lib/asterisk/modules/res_pjsip_one_touch_record_info.so
+lib/asterisk/modules/res_pjsip_outbound_authenticator_digest.so
+lib/asterisk/modules/res_pjsip_outbound_publish.so
+lib/asterisk/modules/res_pjsip_outbound_registration.so
+lib/asterisk/modules/res_pjsip_path.so
+lib/asterisk/modules/res_pjsip_phoneprov_provider.so
+lib/asterisk/modules/res_pjsip_pidf_body_generator.so
+lib/asterisk/modules/res_pjsip_pidf_digium_body_supplement.so
+lib/asterisk/modules/res_pjsip_pidf_eyebeam_body_supplement.so
+lib/asterisk/modules/res_pjsip_publish_asterisk.so
+lib/asterisk/modules/res_pjsip_pubsub.so
+lib/asterisk/modules/res_pjsip_refer.so
+lib/asterisk/modules/res_pjsip_registrar.so
+lib/asterisk/modules/res_pjsip_rfc3326.so
+lib/asterisk/modules/res_pjsip_rfc3329.so
+lib/asterisk/modules/res_pjsip_sdp_rtp.so
+lib/asterisk/modules/res_pjsip_send_to_voicemail.so
+lib/asterisk/modules/res_pjsip_session.so
+lib/asterisk/modules/res_pjsip_sips_contact.so
+lib/asterisk/modules/res_pjsip_t38.so
+lib/asterisk/modules/res_pjsip_transport_websocket.so
+lib/asterisk/modules/res_pjsip_xpidf_body_generator.so
+lib/asterisk/modules/res_prometheus.so
+lib/asterisk/modules/res_realtime.so
+lib/asterisk/modules/res_rtp_asterisk.so
+lib/asterisk/modules/res_rtp_multicast.so
+lib/asterisk/modules/res_security_log.so
+lib/asterisk/modules/res_smdi.so
+${PLIST.snmp}lib/asterisk/modules/res_snmp.so
+lib/asterisk/modules/res_sorcery_astdb.so
+lib/asterisk/modules/res_sorcery_config.so
+lib/asterisk/modules/res_sorcery_memory.so
+lib/asterisk/modules/res_sorcery_memory_cache.so
+lib/asterisk/modules/res_sorcery_realtime.so
+lib/asterisk/modules/res_speech.so
+lib/asterisk/modules/res_speech_aeap.so
+${PLIST.srtp}lib/asterisk/modules/res_srtp.so
+lib/asterisk/modules/res_stasis.so
+lib/asterisk/modules/res_stasis_answer.so
+lib/asterisk/modules/res_stasis_device_state.so
+lib/asterisk/modules/res_stasis_playback.so
+lib/asterisk/modules/res_stasis_recording.so
+lib/asterisk/modules/res_stasis_snoop.so
+lib/asterisk/modules/res_statsd.so
+lib/asterisk/modules/res_stun_monitor.so
+${PLIST.kqueue}lib/asterisk/modules/res_timing_kqueue.so
+lib/asterisk/modules/res_timing_pthread.so
+${PLIST.timerfd}lib/asterisk/modules/res_timing_timerfd.so
+lib/asterisk/modules/res_tonedetect.so
+${PLIST.jabber}lib/asterisk/modules/res_xmpp.so
+lib/libasteriskssl.so
+lib/libasteriskssl.so.1
+lib/pkgconfig/asterisk.pc
+libdata/asterisk/documentation/appdocsxml.dtd
+libdata/asterisk/documentation/appdocsxml.xslt
+libdata/asterisk/documentation/core-en_US.xml
+libdata/asterisk/images/asterisk-intro.jpg
+libdata/asterisk/images/kpad2.jpg
+libdata/asterisk/moh/.asterisk-moh-opsound-wav-2.03
+libdata/asterisk/moh/CHANGES-asterisk-moh-opsound-wav
+libdata/asterisk/moh/CREDITS-asterisk-moh-opsound-wav
+libdata/asterisk/moh/LICENSE-asterisk-moh-opsound-wav
+libdata/asterisk/moh/macroform-cold_day.wav
+libdata/asterisk/moh/macroform-robot_dity.wav
+libdata/asterisk/moh/macroform-the_simplicity.wav
+libdata/asterisk/moh/manolo_camp-morning_coffee.wav
+libdata/asterisk/moh/reno_project-system.wav
+libdata/asterisk/phoneprov/000000000000-directory.xml
+libdata/asterisk/phoneprov/000000000000-phone.cfg
+libdata/asterisk/phoneprov/000000000000.cfg
+libdata/asterisk/phoneprov/polycom.xml
+libdata/asterisk/phoneprov/polycom_line.xml
+libdata/asterisk/phoneprov/snom-mac.xml
+libdata/asterisk/rest-api/applications.json
+libdata/asterisk/rest-api/asterisk.json
+libdata/asterisk/rest-api/bridges.json
+libdata/asterisk/rest-api/channels.json
+libdata/asterisk/rest-api/deviceStates.json
+libdata/asterisk/rest-api/endpoints.json
+libdata/asterisk/rest-api/events.json
+libdata/asterisk/rest-api/mailboxes.json
+libdata/asterisk/rest-api/playbacks.json
+libdata/asterisk/rest-api/recordings.json
+libdata/asterisk/rest-api/resources.json
+libdata/asterisk/rest-api/sounds.json
+libdata/asterisk/scripts/ast_coredumper
+libdata/asterisk/scripts/ast_logescalator
+libdata/asterisk/scripts/ast_loggrabber
+libdata/asterisk/scripts/refcounter.py
+libdata/asterisk/scripts/reflocks.py
+libdata/asterisk/scripts/refstats.py
+libdata/asterisk/sounds/en/.asterisk-core-sounds-en-gsm-1.6.1
+libdata/asterisk/sounds/en/1-for-am-2-for-pm.gsm
+libdata/asterisk/sounds/en/1-yes-2-no.gsm
+libdata/asterisk/sounds/en/CHANGES-asterisk-core-en-1.6.1
+libdata/asterisk/sounds/en/CHANGES-asterisk-extra-en-1.5.2
+libdata/asterisk/sounds/en/CREDITS-asterisk-core-en-1.6.1
+libdata/asterisk/sounds/en/CREDITS-asterisk-extra-en-1.5.2
+libdata/asterisk/sounds/en/LICENSE-asterisk-core-en-1.6.1
+libdata/asterisk/sounds/en/LICENSE-asterisk-extra-en-1.5.2
+libdata/asterisk/sounds/en/OfficeSpace.gsm
+libdata/asterisk/sounds/en/Randulo-allison.gsm
+libdata/asterisk/sounds/en/SIP_Test_Failure.gsm
+libdata/asterisk/sounds/en/SIP_Test_Success.gsm
+libdata/asterisk/sounds/en/T-changed-to.gsm
+libdata/asterisk/sounds/en/T-is-not-available.gsm
+libdata/asterisk/sounds/en/T-to-disable-ancmnt.gsm
+libdata/asterisk/sounds/en/T-to-enable-ancmnt.gsm
+libdata/asterisk/sounds/en/T-to-hear-cur-ancmnt.gsm
+libdata/asterisk/sounds/en/T-to-leave-msg.gsm
+libdata/asterisk/sounds/en/T-to-reach-main-office.gsm
+libdata/asterisk/sounds/en/T-to-rec-ancmnt.gsm
+libdata/asterisk/sounds/en/T-to-rtrn-to-main-menu.gsm
+libdata/asterisk/sounds/en/a-charge-for-this-svc.gsm
+libdata/asterisk/sounds/en/a-collect-charge-of.gsm
+libdata/asterisk/sounds/en/a-collect-charge.gsm
+libdata/asterisk/sounds/en/a-connect-charge-of.gsm
+libdata/asterisk/sounds/en/a-connect-charge.gsm
+libdata/asterisk/sounds/en/abandon-all-hope.gsm
+libdata/asterisk/sounds/en/abandons.gsm
+libdata/asterisk/sounds/en/academic-support.gsm
+libdata/asterisk/sounds/en/access-code.gsm
+libdata/asterisk/sounds/en/access-denied.gsm
+libdata/asterisk/sounds/en/access-granted.gsm
+libdata/asterisk/sounds/en/accessible-through-system.gsm
+libdata/asterisk/sounds/en/account-balance-is.gsm
+libdata/asterisk/sounds/en/account_number.gsm
+libdata/asterisk/sounds/en/accounting.gsm
+libdata/asterisk/sounds/en/accounts-payable.gsm
+libdata/asterisk/sounds/en/accounts-receivable.gsm
+libdata/asterisk/sounds/en/activated.gsm
+libdata/asterisk/sounds/en/added-to.gsm
+libdata/asterisk/sounds/en/added.gsm
+libdata/asterisk/sounds/en/address.gsm
+libdata/asterisk/sounds/en/administration.gsm
+libdata/asterisk/sounds/en/advised-to-seek-shelter.gsm
+libdata/asterisk/sounds/en/after-the-tone.gsm
+libdata/asterisk/sounds/en/after_tone.gsm
+libdata/asterisk/sounds/en/afternoon.gsm
+libdata/asterisk/sounds/en/agent-alreadyon.gsm
+libdata/asterisk/sounds/en/agent-incorrect.gsm
+libdata/asterisk/sounds/en/agent-loggedoff.gsm
+libdata/asterisk/sounds/en/agent-loginok.gsm
+libdata/asterisk/sounds/en/agent-newlocation.gsm
+libdata/asterisk/sounds/en/agent-pass.gsm
+libdata/asterisk/sounds/en/agent-user.gsm
+libdata/asterisk/sounds/en/airport.gsm
+libdata/asterisk/sounds/en/alabama.gsm
+libdata/asterisk/sounds/en/alaska.gsm
+libdata/asterisk/sounds/en/albuquerque.gsm
+libdata/asterisk/sounds/en/alert.gsm
+libdata/asterisk/sounds/en/all-circuits-busy-now.gsm
+libdata/asterisk/sounds/en/all-outgoing-lines-unavailable.gsm
+libdata/asterisk/sounds/en/all-reps-busy.gsm
+libdata/asterisk/sounds/en/all-your-base.gsm
+libdata/asterisk/sounds/en/altitude.gsm
+libdata/asterisk/sounds/en/ampersand.gsm
+libdata/asterisk/sounds/en/an-error-has-occurred.gsm
+libdata/asterisk/sounds/en/and-area-code.gsm
+libdata/asterisk/sounds/en/and-or.gsm
+libdata/asterisk/sounds/en/and-prs-pound-whn-finished.gsm
+libdata/asterisk/sounds/en/and.gsm
+libdata/asterisk/sounds/en/andnowstandby.gsm
+libdata/asterisk/sounds/en/another-time.gsm
+libdata/asterisk/sounds/en/approaching.gsm
+libdata/asterisk/sounds/en/approximately.gsm
+libdata/asterisk/sounds/en/are-you-still-there.gsm
+libdata/asterisk/sounds/en/are-you-still-there2.gsm
+libdata/asterisk/sounds/en/arizona.gsm
+libdata/asterisk/sounds/en/arkansas.gsm
+libdata/asterisk/sounds/en/arlington.gsm
+libdata/asterisk/sounds/en/ascending-2tone.gsm
+libdata/asterisk/sounds/en/astcc-account-balance-is.gsm
+libdata/asterisk/sounds/en/astcc-account-number-invalid.gsm
+libdata/asterisk/sounds/en/astcc-balance-of-account-is.gsm
+libdata/asterisk/sounds/en/astcc-card-number-invalid.gsm
+libdata/asterisk/sounds/en/astcc-digit-account-number.gsm
+libdata/asterisk/sounds/en/astcc-followed-by-the-hash-key.gsm
+libdata/asterisk/sounds/en/astcc-followed-by-the-pound-key.gsm
+libdata/asterisk/sounds/en/astcc-login12pound.gsm
+libdata/asterisk/sounds/en/astcc-please-enter-your.gsm
+libdata/asterisk/sounds/en/astcc-skipping-any-punctuation.gsm
+libdata/asterisk/sounds/en/asterisk-friend.gsm
+libdata/asterisk/sounds/en/at-any-time.gsm
+libdata/asterisk/sounds/en/at-customers-request.gsm
+libdata/asterisk/sounds/en/at-following-number.gsm
+libdata/asterisk/sounds/en/at-sign.gsm
+libdata/asterisk/sounds/en/at-tone-time-exactly.gsm
+libdata/asterisk/sounds/en/at_tone.gsm
+libdata/asterisk/sounds/en/athletics.gsm
+libdata/asterisk/sounds/en/atlanta.gsm
+libdata/asterisk/sounds/en/atlantic.gsm
+libdata/asterisk/sounds/en/attention-required.gsm
+libdata/asterisk/sounds/en/auditing.gsm
+libdata/asterisk/sounds/en/austin.gsm
+libdata/asterisk/sounds/en/auth-incorrect.gsm
+libdata/asterisk/sounds/en/auth-thankyou.gsm
+libdata/asterisk/sounds/en/available-options.gsm
+libdata/asterisk/sounds/en/available.gsm
+libdata/asterisk/sounds/en/avg-speed-answer.gsm
+libdata/asterisk/sounds/en/away-naughty-boy.gsm
+libdata/asterisk/sounds/en/away-naughty-girl.gsm
+libdata/asterisk/sounds/en/awkward.gsm
+libdata/asterisk/sounds/en/backslash.gsm
+libdata/asterisk/sounds/en/bad.gsm
+libdata/asterisk/sounds/en/baltimore.gsm
+libdata/asterisk/sounds/en/bar.gsm
+libdata/asterisk/sounds/en/barn.gsm
+libdata/asterisk/sounds/en/barns.gsm
+libdata/asterisk/sounds/en/barometric.gsm
+libdata/asterisk/sounds/en/basic-pbx-ivr-main.gsm
+libdata/asterisk/sounds/en/bearing.gsm
+libdata/asterisk/sounds/en/beaufort.gsm
+libdata/asterisk/sounds/en/because-paranoid.gsm
+libdata/asterisk/sounds/en/beep.gsm
+libdata/asterisk/sounds/en/beeperr.gsm
+libdata/asterisk/sounds/en/before-the-number.gsm
+libdata/asterisk/sounds/en/believe-its-free.gsm
+libdata/asterisk/sounds/en/billing-and-collections.gsm
+libdata/asterisk/sounds/en/billing.gsm
+libdata/asterisk/sounds/en/billionth.gsm
+libdata/asterisk/sounds/en/binary.gsm
+libdata/asterisk/sounds/en/bits.gsm
+libdata/asterisk/sounds/en/blue-eyed-polar-bear.gsm
+libdata/asterisk/sounds/en/bombsquad.gsm
+libdata/asterisk/sounds/en/bookstore.gsm
+libdata/asterisk/sounds/en/boston.gsm
+libdata/asterisk/sounds/en/box.gsm
+libdata/asterisk/sounds/en/brian.gsm
+libdata/asterisk/sounds/en/business-development.gsm
+libdata/asterisk/sounds/en/busy-hangovers.gsm
+libdata/asterisk/sounds/en/busy-pls-hold.gsm
+libdata/asterisk/sounds/en/but.gsm
+libdata/asterisk/sounds/en/by.gsm
+libdata/asterisk/sounds/en/bytes.gsm
+libdata/asterisk/sounds/en/cafeteria.gsm
+libdata/asterisk/sounds/en/california.gsm
+libdata/asterisk/sounds/en/call-forward.gsm
+libdata/asterisk/sounds/en/call-forwarding.gsm
+libdata/asterisk/sounds/en/call-fwd-cancelled.gsm
+libdata/asterisk/sounds/en/call-fwd-no-ans.gsm
+libdata/asterisk/sounds/en/call-fwd-on-busy.gsm
+libdata/asterisk/sounds/en/call-fwd-parallel.gsm
+libdata/asterisk/sounds/en/call-fwd-unconditional.gsm
+libdata/asterisk/sounds/en/call-preempted.gsm
+libdata/asterisk/sounds/en/call-quality-menu.gsm
+libdata/asterisk/sounds/en/call-requres.gsm
+libdata/asterisk/sounds/en/call-terminated.gsm
+libdata/asterisk/sounds/en/call-waiting.gsm
+libdata/asterisk/sounds/en/call.gsm
+libdata/asterisk/sounds/en/calling.gsm
+libdata/asterisk/sounds/en/calls-taken-by.gsm
+libdata/asterisk/sounds/en/calls-waiting-for-rep.gsm
+libdata/asterisk/sounds/en/calls.gsm
+libdata/asterisk/sounds/en/campground-office.gsm
+libdata/asterisk/sounds/en/cancelled.gsm
+libdata/asterisk/sounds/en/cannot-complete-as-dialed.gsm
+libdata/asterisk/sounds/en/cannot-complete-network-error.gsm
+libdata/asterisk/sounds/en/cannot-complete-otherend-error.gsm
+libdata/asterisk/sounds/en/cannot-complete-temp-error.gsm
+libdata/asterisk/sounds/en/card-balance-is.gsm
+libdata/asterisk/sounds/en/card-is-invalid.gsm
+libdata/asterisk/sounds/en/card-number.gsm
+libdata/asterisk/sounds/en/carried-away-by-monkeys.gsm
+libdata/asterisk/sounds/en/cause-code.gsm
+libdata/asterisk/sounds/en/cc-amex.gsm
+libdata/asterisk/sounds/en/cc-discover.gsm
+libdata/asterisk/sounds/en/cc-mastercard.gsm
+libdata/asterisk/sounds/en/cc-visa.gsm
+libdata/asterisk/sounds/en/celsius.gsm
+libdata/asterisk/sounds/en/cent.gsm
+libdata/asterisk/sounds/en/central.gsm
+libdata/asterisk/sounds/en/cents-per-minute.gsm
+libdata/asterisk/sounds/en/cents.gsm
+libdata/asterisk/sounds/en/ceo-office.gsm
+libdata/asterisk/sounds/en/challenge_try_again.gsm
+libdata/asterisk/sounds/en/chance-of.gsm
+libdata/asterisk/sounds/en/changing.gsm
+libdata/asterisk/sounds/en/channel-insecure-warn.gsm
+libdata/asterisk/sounds/en/channel-secure.gsm
+libdata/asterisk/sounds/en/channel.gsm
+libdata/asterisk/sounds/en/charlotte.gsm
+libdata/asterisk/sounds/en/chat-room.gsm
+libdata/asterisk/sounds/en/check-number-dial-again.gsm
+libdata/asterisk/sounds/en/chemistry.gsm
+libdata/asterisk/sounds/en/chicago.gsm
+libdata/asterisk/sounds/en/chris.gsm
+libdata/asterisk/sounds/en/claims.gsm
+libdata/asterisk/sounds/en/clear.gsm
+libdata/asterisk/sounds/en/clearing.gsm
+libdata/asterisk/sounds/en/cleveland.gsm
+libdata/asterisk/sounds/en/clli.gsm
+libdata/asterisk/sounds/en/close-parenthesis.gsm
+libdata/asterisk/sounds/en/closed.gsm
+libdata/asterisk/sounds/en/clouds.gsm
+libdata/asterisk/sounds/en/cloudy.gsm
+libdata/asterisk/sounds/en/collections.gsm
+libdata/asterisk/sounds/en/colorado-springs.gsm
+libdata/asterisk/sounds/en/colorado.gsm
+libdata/asterisk/sounds/en/columbus.gsm
+libdata/asterisk/sounds/en/comedyclub.gsm
+libdata/asterisk/sounds/en/comma.gsm
+libdata/asterisk/sounds/en/communications.gsm
+libdata/asterisk/sounds/en/company-dir-411.gsm
+libdata/asterisk/sounds/en/complaint.gsm
+libdata/asterisk/sounds/en/compliance.gsm
+libdata/asterisk/sounds/en/computer-friend1.gsm
+libdata/asterisk/sounds/en/computer-friend2.gsm
+libdata/asterisk/sounds/en/conditions.gsm
+libdata/asterisk/sounds/en/conf-1-to-list-users.gsm
+libdata/asterisk/sounds/en/conf-2-to-kick-nonadmin.gsm
+libdata/asterisk/sounds/en/conf-3-mute-or-unmute-nonadmin.gsm
+libdata/asterisk/sounds/en/conf-4-to-record-conf.gsm
+libdata/asterisk/sounds/en/conf-8-for-more-options.gsm
+libdata/asterisk/sounds/en/conf-8-to-exit-return-to-conf.gsm
+libdata/asterisk/sounds/en/conf-adminmenu-162.gsm
+libdata/asterisk/sounds/en/conf-adminmenu-18.gsm
+libdata/asterisk/sounds/en/conf-adminmenu-menu8.gsm
+libdata/asterisk/sounds/en/conf-adminmenu.gsm
+libdata/asterisk/sounds/en/conf-banned.gsm
+libdata/asterisk/sounds/en/conf-enteringno.gsm
+libdata/asterisk/sounds/en/conf-errormenu.gsm
+libdata/asterisk/sounds/en/conf-extended.gsm
+libdata/asterisk/sounds/en/conf-full.gsm
+libdata/asterisk/sounds/en/conf-getchannel.gsm
+libdata/asterisk/sounds/en/conf-getconfno.gsm
+libdata/asterisk/sounds/en/conf-getpin.gsm
+libdata/asterisk/sounds/en/conf-hasentered.gsm
+libdata/asterisk/sounds/en/conf-hasjoin.gsm
+libdata/asterisk/sounds/en/conf-hasleft.gsm
+libdata/asterisk/sounds/en/conf-invalid.gsm
+libdata/asterisk/sounds/en/conf-invalidpin.gsm
+libdata/asterisk/sounds/en/conf-kicked.gsm
+libdata/asterisk/sounds/en/conf-leaderhasleft.gsm
+libdata/asterisk/sounds/en/conf-locked.gsm
+libdata/asterisk/sounds/en/conf-lockednow.gsm
+libdata/asterisk/sounds/en/conf-muted.gsm
+libdata/asterisk/sounds/en/conf-noempty.gsm
+libdata/asterisk/sounds/en/conf-nonextended.gsm
+libdata/asterisk/sounds/en/conf-now-muted.gsm
+libdata/asterisk/sounds/en/conf-now-recording.gsm
+libdata/asterisk/sounds/en/conf-now-unmuted.gsm
+libdata/asterisk/sounds/en/conf-onlyone.gsm
+libdata/asterisk/sounds/en/conf-onlyperson.gsm
+libdata/asterisk/sounds/en/conf-onlypersonleft.gsm
+libdata/asterisk/sounds/en/conf-otherinparty.gsm
+libdata/asterisk/sounds/en/conf-peopleinconf.gsm
+libdata/asterisk/sounds/en/conf-placeintoconf.gsm
+libdata/asterisk/sounds/en/conf-roll-callcomplete.gsm
+libdata/asterisk/sounds/en/conf-sysop.gsm
+libdata/asterisk/sounds/en/conf-sysopreq.gsm
+libdata/asterisk/sounds/en/conf-sysopreqcancelled.gsm
+libdata/asterisk/sounds/en/conf-thereare.gsm
+libdata/asterisk/sounds/en/conf-unlockednow.gsm
+libdata/asterisk/sounds/en/conf-unmuted.gsm
+libdata/asterisk/sounds/en/conf-usermenu-162.gsm
+libdata/asterisk/sounds/en/conf-usermenu.gsm
+libdata/asterisk/sounds/en/conf-userswilljoin.gsm
+libdata/asterisk/sounds/en/conf-userwilljoin.gsm
+libdata/asterisk/sounds/en/conf-waitforleader.gsm
+libdata/asterisk/sounds/en/conf-youareinconfnum.gsm
+libdata/asterisk/sounds/en/confbridge-begin-glorious-a.gsm
+libdata/asterisk/sounds/en/confbridge-begin-glorious-b.gsm
+libdata/asterisk/sounds/en/confbridge-begin-glorious-c.gsm
+libdata/asterisk/sounds/en/confbridge-begin-leader.gsm
+libdata/asterisk/sounds/en/confbridge-binaural-off.gsm
+libdata/asterisk/sounds/en/confbridge-binaural-on.gsm
+libdata/asterisk/sounds/en/confbridge-conf-begin.gsm
+libdata/asterisk/sounds/en/confbridge-conf-end.gsm
+libdata/asterisk/sounds/en/confbridge-dec-list-vol-in.gsm
+libdata/asterisk/sounds/en/confbridge-dec-list-vol-out.gsm
+libdata/asterisk/sounds/en/confbridge-dec-talk-vol-in.gsm
+libdata/asterisk/sounds/en/confbridge-dec-talk-vol-out.gsm
+libdata/asterisk/sounds/en/confbridge-has-joined.gsm
+libdata/asterisk/sounds/en/confbridge-has-left.gsm
+libdata/asterisk/sounds/en/confbridge-inc-list-vol-in.gsm
+libdata/asterisk/sounds/en/confbridge-inc-list-vol-out.gsm
+libdata/asterisk/sounds/en/confbridge-inc-talk-vol-in.gsm
+libdata/asterisk/sounds/en/confbridge-inc-talk-vol-out.gsm
+libdata/asterisk/sounds/en/confbridge-invalid.gsm
+libdata/asterisk/sounds/en/confbridge-join.gsm
+libdata/asterisk/sounds/en/confbridge-leave-in.gsm
+libdata/asterisk/sounds/en/confbridge-leave-out.gsm
+libdata/asterisk/sounds/en/confbridge-leave.gsm
+libdata/asterisk/sounds/en/confbridge-lock-extended.gsm
+libdata/asterisk/sounds/en/confbridge-lock-in.gsm
+libdata/asterisk/sounds/en/confbridge-lock-no-join.gsm
+libdata/asterisk/sounds/en/confbridge-lock-out.gsm
+libdata/asterisk/sounds/en/confbridge-locked.gsm
+libdata/asterisk/sounds/en/confbridge-menu-exit-in.gsm
+libdata/asterisk/sounds/en/confbridge-menu-exit-out.gsm
+libdata/asterisk/sounds/en/confbridge-mute-extended.gsm
+libdata/asterisk/sounds/en/confbridge-mute-in.gsm
+libdata/asterisk/sounds/en/confbridge-mute-out.gsm
+libdata/asterisk/sounds/en/confbridge-muted.gsm
+libdata/asterisk/sounds/en/confbridge-only-one.gsm
+libdata/asterisk/sounds/en/confbridge-only-participant.gsm
+libdata/asterisk/sounds/en/confbridge-participants.gsm
+libdata/asterisk/sounds/en/confbridge-pin-bad.gsm
+libdata/asterisk/sounds/en/confbridge-pin.gsm
+libdata/asterisk/sounds/en/confbridge-remove-last-in.gsm
+libdata/asterisk/sounds/en/confbridge-remove-last-out.gsm
+libdata/asterisk/sounds/en/confbridge-removed.gsm
+libdata/asterisk/sounds/en/confbridge-rest-list-vol-in.gsm
+libdata/asterisk/sounds/en/confbridge-rest-list-vol-out.gsm
+libdata/asterisk/sounds/en/confbridge-rest-talk-vol-in.gsm
+libdata/asterisk/sounds/en/confbridge-rest-talk-vol-out.gsm
+libdata/asterisk/sounds/en/confbridge-there-are.gsm
+libdata/asterisk/sounds/en/confbridge-unlocked.gsm
+libdata/asterisk/sounds/en/confbridge-unmuted.gsm
+libdata/asterisk/sounds/en/conference-call.gsm
+libdata/asterisk/sounds/en/conference-reservations.gsm
+libdata/asterisk/sounds/en/conference.gsm
+libdata/asterisk/sounds/en/confirm-number-is.gsm
+libdata/asterisk/sounds/en/connected.gsm
+libdata/asterisk/sounds/en/connecticut.gsm
+libdata/asterisk/sounds/en/connecting.gsm
+libdata/asterisk/sounds/en/connection-failed.gsm
+libdata/asterisk/sounds/en/connection-timed-out.gsm
+libdata/asterisk/sounds/en/continue-english-press.gsm
+libdata/asterisk/sounds/en/continue-in-english.gsm
+libdata/asterisk/sounds/en/copy-center.gsm
+libdata/asterisk/sounds/en/core-sounds-en.txt
+libdata/asterisk/sounds/en/could-lose-a-few-pounds.gsm
+libdata/asterisk/sounds/en/counseling-services.gsm
+libdata/asterisk/sounds/en/count.gsm
+libdata/asterisk/sounds/en/countdown.gsm
+libdata/asterisk/sounds/en/crash.gsm
+libdata/asterisk/sounds/en/crashing_conf.gsm
+libdata/asterisk/sounds/en/current-time-is.gsm
+libdata/asterisk/sounds/en/current_account_balance.gsm
+libdata/asterisk/sounds/en/currently.gsm
+libdata/asterisk/sounds/en/customer-accounts.gsm
+libdata/asterisk/sounds/en/customer-relations.gsm
+libdata/asterisk/sounds/en/customer-service.gsm
+libdata/asterisk/sounds/en/cyclone.gsm
+libdata/asterisk/sounds/en/dallas.gsm
+libdata/asterisk/sounds/en/date.gsm
+libdata/asterisk/sounds/en/day.gsm
+libdata/asterisk/sounds/en/daylight.gsm
+libdata/asterisk/sounds/en/days.gsm
+libdata/asterisk/sounds/en/de-activated.gsm
+libdata/asterisk/sounds/en/deadbeat.gsm
+libdata/asterisk/sounds/en/decode.gsm
+libdata/asterisk/sounds/en/default-attendant.gsm
+libdata/asterisk/sounds/en/degrees.gsm
+libdata/asterisk/sounds/en/delaware.gsm
+libdata/asterisk/sounds/en/demo-abouttotry.gsm
+libdata/asterisk/sounds/en/demo-congrats.gsm
+libdata/asterisk/sounds/en/demo-echodone.gsm
+libdata/asterisk/sounds/en/demo-echotest.gsm
+libdata/asterisk/sounds/en/demo-enterkeywords.gsm
+libdata/asterisk/sounds/en/demo-instruct.gsm
+libdata/asterisk/sounds/en/demo-moreinfo.gsm
+libdata/asterisk/sounds/en/demo-nogo.gsm
+libdata/asterisk/sounds/en/demo-nomatch.gsm
+libdata/asterisk/sounds/en/demo-thanks.gsm
+libdata/asterisk/sounds/en/denial-of-service.gsm
+libdata/asterisk/sounds/en/denver.gsm
+libdata/asterisk/sounds/en/department-administrator.gsm
+libdata/asterisk/sounds/en/department.gsm
+libdata/asterisk/sounds/en/deposit.gsm
+libdata/asterisk/sounds/en/descending-2tone.gsm
+libdata/asterisk/sounds/en/design.gsm
+libdata/asterisk/sounds/en/detroit.gsm
+libdata/asterisk/sounds/en/development.gsm
+libdata/asterisk/sounds/en/dial-here-often.gsm
+libdata/asterisk/sounds/en/dictate/both_help.gsm
+libdata/asterisk/sounds/en/dictate/enter_filename.gsm
+libdata/asterisk/sounds/en/dictate/forhelp.gsm
+libdata/asterisk/sounds/en/dictate/pause.gsm
+libdata/asterisk/sounds/en/dictate/paused.gsm
+libdata/asterisk/sounds/en/dictate/play_help.gsm
+libdata/asterisk/sounds/en/dictate/playback.gsm
+libdata/asterisk/sounds/en/dictate/playback_mode.gsm
+libdata/asterisk/sounds/en/dictate/record.gsm
+libdata/asterisk/sounds/en/dictate/record_help.gsm
+libdata/asterisk/sounds/en/dictate/record_mode.gsm
+libdata/asterisk/sounds/en/dictate/truncating_audio.gsm
+libdata/asterisk/sounds/en/digit.gsm
+libdata/asterisk/sounds/en/digits.gsm
+libdata/asterisk/sounds/en/digits/0.gsm
+libdata/asterisk/sounds/en/digits/1.gsm
+libdata/asterisk/sounds/en/digits/10.gsm
+libdata/asterisk/sounds/en/digits/11.gsm
+libdata/asterisk/sounds/en/digits/12.gsm
+libdata/asterisk/sounds/en/digits/13.gsm
+libdata/asterisk/sounds/en/digits/14.gsm
+libdata/asterisk/sounds/en/digits/15.gsm
+libdata/asterisk/sounds/en/digits/16.gsm
+libdata/asterisk/sounds/en/digits/17.gsm
+libdata/asterisk/sounds/en/digits/18.gsm
+libdata/asterisk/sounds/en/digits/19.gsm
+libdata/asterisk/sounds/en/digits/2.gsm
+libdata/asterisk/sounds/en/digits/20.gsm
+libdata/asterisk/sounds/en/digits/3.gsm
+libdata/asterisk/sounds/en/digits/30.gsm
+libdata/asterisk/sounds/en/digits/4.gsm
+libdata/asterisk/sounds/en/digits/40.gsm
+libdata/asterisk/sounds/en/digits/5.gsm
+libdata/asterisk/sounds/en/digits/50.gsm
+libdata/asterisk/sounds/en/digits/6.gsm
+libdata/asterisk/sounds/en/digits/60.gsm
+libdata/asterisk/sounds/en/digits/7.gsm
+libdata/asterisk/sounds/en/digits/70.gsm
+libdata/asterisk/sounds/en/digits/8.gsm
+libdata/asterisk/sounds/en/digits/80.gsm
+libdata/asterisk/sounds/en/digits/9.gsm
+libdata/asterisk/sounds/en/digits/90.gsm
+libdata/asterisk/sounds/en/digits/a-m.gsm
+libdata/asterisk/sounds/en/digits/at.gsm
+libdata/asterisk/sounds/en/digits/billion.gsm
+libdata/asterisk/sounds/en/digits/day-0.gsm
+libdata/asterisk/sounds/en/digits/day-1.gsm
+libdata/asterisk/sounds/en/digits/day-2.gsm
+libdata/asterisk/sounds/en/digits/day-3.gsm
+libdata/asterisk/sounds/en/digits/day-4.gsm
+libdata/asterisk/sounds/en/digits/day-5.gsm
+libdata/asterisk/sounds/en/digits/day-6.gsm
+libdata/asterisk/sounds/en/digits/dollars.gsm
+libdata/asterisk/sounds/en/digits/h-1.gsm
+libdata/asterisk/sounds/en/digits/h-10.gsm
+libdata/asterisk/sounds/en/digits/h-11.gsm
+libdata/asterisk/sounds/en/digits/h-12.gsm
+libdata/asterisk/sounds/en/digits/h-13.gsm
+libdata/asterisk/sounds/en/digits/h-14.gsm
+libdata/asterisk/sounds/en/digits/h-15.gsm
+libdata/asterisk/sounds/en/digits/h-16.gsm
+libdata/asterisk/sounds/en/digits/h-17.gsm
+libdata/asterisk/sounds/en/digits/h-18.gsm
+libdata/asterisk/sounds/en/digits/h-19.gsm
+libdata/asterisk/sounds/en/digits/h-2.gsm
+libdata/asterisk/sounds/en/digits/h-20.gsm
+libdata/asterisk/sounds/en/digits/h-3.gsm
+libdata/asterisk/sounds/en/digits/h-30.gsm
+libdata/asterisk/sounds/en/digits/h-4.gsm
+libdata/asterisk/sounds/en/digits/h-40.gsm
+libdata/asterisk/sounds/en/digits/h-5.gsm
+libdata/asterisk/sounds/en/digits/h-50.gsm
+libdata/asterisk/sounds/en/digits/h-6.gsm
+libdata/asterisk/sounds/en/digits/h-60.gsm
+libdata/asterisk/sounds/en/digits/h-7.gsm
+libdata/asterisk/sounds/en/digits/h-70.gsm
+libdata/asterisk/sounds/en/digits/h-8.gsm
+libdata/asterisk/sounds/en/digits/h-80.gsm
+libdata/asterisk/sounds/en/digits/h-9.gsm
+libdata/asterisk/sounds/en/digits/h-90.gsm
+libdata/asterisk/sounds/en/digits/h-billion.gsm
+libdata/asterisk/sounds/en/digits/h-hundred.gsm
+libdata/asterisk/sounds/en/digits/h-million.gsm
+libdata/asterisk/sounds/en/digits/h-thousand.gsm
+libdata/asterisk/sounds/en/digits/hundred.gsm
+libdata/asterisk/sounds/en/digits/million.gsm
+libdata/asterisk/sounds/en/digits/minus.gsm
+libdata/asterisk/sounds/en/digits/mon-0.gsm
+libdata/asterisk/sounds/en/digits/mon-1.gsm
+libdata/asterisk/sounds/en/digits/mon-10.gsm
+libdata/asterisk/sounds/en/digits/mon-11.gsm
+libdata/asterisk/sounds/en/digits/mon-2.gsm
+libdata/asterisk/sounds/en/digits/mon-3.gsm
+libdata/asterisk/sounds/en/digits/mon-4.gsm
+libdata/asterisk/sounds/en/digits/mon-5.gsm
+libdata/asterisk/sounds/en/digits/mon-6.gsm
+libdata/asterisk/sounds/en/digits/mon-7.gsm
+libdata/asterisk/sounds/en/digits/mon-8.gsm
+libdata/asterisk/sounds/en/digits/mon-9.gsm
+libdata/asterisk/sounds/en/digits/oclock.gsm
+libdata/asterisk/sounds/en/digits/oh.gsm
+libdata/asterisk/sounds/en/digits/p-m.gsm
+libdata/asterisk/sounds/en/digits/pound.gsm
+libdata/asterisk/sounds/en/digits/star.gsm
+libdata/asterisk/sounds/en/digits/thousand.gsm
+libdata/asterisk/sounds/en/digits/today.gsm
+libdata/asterisk/sounds/en/digits/tomorrow.gsm
+libdata/asterisk/sounds/en/digits/yesterday.gsm
+libdata/asterisk/sounds/en/dir-first.gsm
+libdata/asterisk/sounds/en/dir-firstlast.gsm
+libdata/asterisk/sounds/en/dir-instr.gsm
+libdata/asterisk/sounds/en/dir-intro-fn.gsm
+libdata/asterisk/sounds/en/dir-intro.gsm
+libdata/asterisk/sounds/en/dir-last.gsm
+libdata/asterisk/sounds/en/dir-multi1.gsm
+libdata/asterisk/sounds/en/dir-multi2.gsm
+libdata/asterisk/sounds/en/dir-multi3.gsm
+libdata/asterisk/sounds/en/dir-multi9.gsm
+libdata/asterisk/sounds/en/dir-nomatch.gsm
+libdata/asterisk/sounds/en/dir-nomore.gsm
+libdata/asterisk/sounds/en/dir-pls-enter.gsm
+libdata/asterisk/sounds/en/dir-usingkeypad.gsm
+libdata/asterisk/sounds/en/dir-welcome.gsm
+libdata/asterisk/sounds/en/directory-assistance.gsm
+libdata/asterisk/sounds/en/directory.gsm
+libdata/asterisk/sounds/en/disabled.gsm
+libdata/asterisk/sounds/en/discon-or-out-of-service.gsm
+libdata/asterisk/sounds/en/disconnected.gsm
+libdata/asterisk/sounds/en/disk.gsm
+libdata/asterisk/sounds/en/distribution.gsm
+libdata/asterisk/sounds/en/divided-by.gsm
+libdata/asterisk/sounds/en/dns.gsm
+libdata/asterisk/sounds/en/do-not-disturb.gsm
+libdata/asterisk/sounds/en/doing-enum-lookup.gsm
+libdata/asterisk/sounds/en/donotcall1.gsm
+libdata/asterisk/sounds/en/donotcall2.gsm
+libdata/asterisk/sounds/en/dont-know-who-sent.gsm
+libdata/asterisk/sounds/en/doppler-radar.gsm
+libdata/asterisk/sounds/en/down.gsm
+libdata/asterisk/sounds/en/driving-directions.gsm
+libdata/asterisk/sounds/en/duplex.gsm
+libdata/asterisk/sounds/en/duplication.gsm
+libdata/asterisk/sounds/en/early.gsm
+libdata/asterisk/sounds/en/east.gsm
+libdata/asterisk/sounds/en/easterly.gsm
+libdata/asterisk/sounds/en/eastern.gsm
+libdata/asterisk/sounds/en/echo-test.gsm
+libdata/asterisk/sounds/en/ed.gsm
+libdata/asterisk/sounds/en/eighteenth.gsm
+libdata/asterisk/sounds/en/eighth.gsm
+libdata/asterisk/sounds/en/eightieth.gsm
+libdata/asterisk/sounds/en/el-paso.gsm
+libdata/asterisk/sounds/en/eletelephony.gsm
+libdata/asterisk/sounds/en/eleventh.gsm
+libdata/asterisk/sounds/en/email.gsm
+libdata/asterisk/sounds/en/emergency.gsm
+libdata/asterisk/sounds/en/enabled.gsm
+libdata/asterisk/sounds/en/encode.gsm
+libdata/asterisk/sounds/en/engineering.gsm
+libdata/asterisk/sounds/en/ent-target-attendant.gsm
+libdata/asterisk/sounds/en/enter-a-time.gsm
+libdata/asterisk/sounds/en/enter-conf-call-number.gsm
+libdata/asterisk/sounds/en/enter-conf-pin-number.gsm
+libdata/asterisk/sounds/en/enter-ext-of-person.gsm
+libdata/asterisk/sounds/en/enter-num-blacklist.gsm
+libdata/asterisk/sounds/en/enter-password.gsm
+libdata/asterisk/sounds/en/enter-phone-number10.gsm
+libdata/asterisk/sounds/en/enter_account.gsm
+libdata/asterisk/sounds/en/entering-conf-number.gsm
+libdata/asterisk/sounds/en/entr-num-rmv-blklist.gsm
+libdata/asterisk/sounds/en/enum-lookup-failed.gsm
+libdata/asterisk/sounds/en/enum-lookup-successful.gsm
+libdata/asterisk/sounds/en/error-number.gsm
+libdata/asterisk/sounds/en/error.gsm
+libdata/asterisk/sounds/en/est-hold-time-is.gsm
+libdata/asterisk/sounds/en/euro.gsm
+libdata/asterisk/sounds/en/european.gsm
+libdata/asterisk/sounds/en/euros.gsm
+libdata/asterisk/sounds/en/evening.gsm
+libdata/asterisk/sounds/en/explanation.gsm
+libdata/asterisk/sounds/en/ext-or-zero.gsm
+libdata/asterisk/sounds/en/extension.gsm
+libdata/asterisk/sounds/en/extensions.gsm
+libdata/asterisk/sounds/en/extra-sounds-en.txt
+libdata/asterisk/sounds/en/facilities.gsm
+libdata/asterisk/sounds/en/fahrenheit.gsm
+libdata/asterisk/sounds/en/falling.gsm
+libdata/asterisk/sounds/en/fast.gsm
+libdata/asterisk/sounds/en/feature-not-avail-line.gsm
+libdata/asterisk/sounds/en/feeling_lucky_punk.gsm
+libdata/asterisk/sounds/en/feet.gsm
+libdata/asterisk/sounds/en/female.gsm
+libdata/asterisk/sounds/en/fifteenth.gsm
+libdata/asterisk/sounds/en/fifth.gsm
+libdata/asterisk/sounds/en/fiftieth.gsm
+libdata/asterisk/sounds/en/finals.gsm
+libdata/asterisk/sounds/en/finance.gsm
+libdata/asterisk/sounds/en/first-in-line.gsm
+libdata/asterisk/sounds/en/first.gsm
+libdata/asterisk/sounds/en/flagged-for-lea.gsm
+libdata/asterisk/sounds/en/flooding.gsm
+libdata/asterisk/sounds/en/florida.gsm
+libdata/asterisk/sounds/en/fog.gsm
+libdata/asterisk/sounds/en/foggy.gsm
+libdata/asterisk/sounds/en/followed-by.gsm
+libdata/asterisk/sounds/en/followed_hash.gsm
+libdata/asterisk/sounds/en/followed_pound.gsm
+libdata/asterisk/sounds/en/followme/call-from.gsm
+libdata/asterisk/sounds/en/followme/no-recording.gsm
+libdata/asterisk/sounds/en/followme/options.gsm
+libdata/asterisk/sounds/en/followme/pls-hold-while-try.gsm
+libdata/asterisk/sounds/en/followme/sorry.gsm
+libdata/asterisk/sounds/en/followme/status.gsm
+libdata/asterisk/sounds/en/food-service.gsm
+libdata/asterisk/sounds/en/food-services.gsm
+libdata/asterisk/sounds/en/for-a-daily-wakeup-call.gsm
+libdata/asterisk/sounds/en/for-a-list-of.gsm
+libdata/asterisk/sounds/en/for-accounting.gsm
+libdata/asterisk/sounds/en/for-billing.gsm
+libdata/asterisk/sounds/en/for-english-press.gsm
+libdata/asterisk/sounds/en/for-investor-relations.gsm
+libdata/asterisk/sounds/en/for-louie-louie.gsm
+libdata/asterisk/sounds/en/for-no-press.gsm
+libdata/asterisk/sounds/en/for-qc-and-training-purposes.gsm
+libdata/asterisk/sounds/en/for-quality-purposes.gsm
+libdata/asterisk/sounds/en/for-sales.gsm
+libdata/asterisk/sounds/en/for-service.gsm
+libdata/asterisk/sounds/en/for-tech-support.gsm
+libdata/asterisk/sounds/en/for-the-first.gsm
+libdata/asterisk/sounds/en/for-the-weather.gsm
+libdata/asterisk/sounds/en/for-wakeup-call.gsm
+libdata/asterisk/sounds/en/for-yes-press.gsm
+libdata/asterisk/sounds/en/for.gsm
+libdata/asterisk/sounds/en/forget_about_it.gsm
+libdata/asterisk/sounds/en/fort-worth.gsm
+libdata/asterisk/sounds/en/fortieth.gsm
+libdata/asterisk/sounds/en/fourteenth.gsm
+libdata/asterisk/sounds/en/fourth.gsm
+libdata/asterisk/sounds/en/freeze.gsm
+libdata/asterisk/sounds/en/freezing.gsm
+libdata/asterisk/sounds/en/frequency.gsm
+libdata/asterisk/sounds/en/fresno.gsm
+libdata/asterisk/sounds/en/from-unknown-caller.gsm
+libdata/asterisk/sounds/en/from.gsm
+libdata/asterisk/sounds/en/ftp.gsm
+libdata/asterisk/sounds/en/gale.gsm
+libdata/asterisk/sounds/en/gambling-drunk.gsm
+libdata/asterisk/sounds/en/georgia.gsm
+libdata/asterisk/sounds/en/get-in-line-sales-guy.gsm
+libdata/asterisk/sounds/en/get_bleep_outta.gsm
+libdata/asterisk/sounds/en/get_information.gsm
+libdata/asterisk/sounds/en/get_information_first.gsm
+libdata/asterisk/sounds/en/gigabits.gsm
+libdata/asterisk/sounds/en/gigabytes.gsm
+libdata/asterisk/sounds/en/gigahertz.gsm
+libdata/asterisk/sounds/en/giggle1.gsm
+libdata/asterisk/sounds/en/gmt.gsm
+libdata/asterisk/sounds/en/go-away1.gsm
+libdata/asterisk/sounds/en/go-away2.gsm
+libdata/asterisk/sounds/en/good-afternoon.gsm
+libdata/asterisk/sounds/en/good-evening.gsm
+libdata/asterisk/sounds/en/good-morning.gsm
+libdata/asterisk/sounds/en/good.gsm
+libdata/asterisk/sounds/en/goodbye.gsm
+libdata/asterisk/sounds/en/goodbye_for_the_best.gsm
+libdata/asterisk/sounds/en/goodbye_love.gsm
+libdata/asterisk/sounds/en/got_kidding.gsm
+libdata/asterisk/sounds/en/grammar.gsm
+libdata/asterisk/sounds/en/greater-than.gsm
+libdata/asterisk/sounds/en/groovy.gsm
+libdata/asterisk/sounds/en/ha/ac.gsm
+libdata/asterisk/sounds/en/ha/air-conditioner.gsm
+libdata/asterisk/sounds/en/ha/alarm.gsm
+libdata/asterisk/sounds/en/ha/amp.gsm
+libdata/asterisk/sounds/en/ha/amps.gsm
+libdata/asterisk/sounds/en/ha/attic.gsm
+libdata/asterisk/sounds/en/ha/baby-sleeping-mode.gsm
+libdata/asterisk/sounds/en/ha/back.gsm
+libdata/asterisk/sounds/en/ha/basement.gsm
+libdata/asterisk/sounds/en/ha/bathroom.gsm
+libdata/asterisk/sounds/en/ha/bedroom.gsm
+libdata/asterisk/sounds/en/ha/bright.gsm
+libdata/asterisk/sounds/en/ha/callerid.gsm
+libdata/asterisk/sounds/en/ha/carport.gsm
+libdata/asterisk/sounds/en/ha/closet.gsm
+libdata/asterisk/sounds/en/ha/coffee-pot.gsm
+libdata/asterisk/sounds/en/ha/cool.gsm
+libdata/asterisk/sounds/en/ha/cooling.gsm
+libdata/asterisk/sounds/en/ha/dc.gsm
+libdata/asterisk/sounds/en/ha/decibel.gsm
+libdata/asterisk/sounds/en/ha/decibels.gsm
+libdata/asterisk/sounds/en/ha/deck.gsm
+libdata/asterisk/sounds/en/ha/degree.gsm
+libdata/asterisk/sounds/en/ha/degrees.gsm
+libdata/asterisk/sounds/en/ha/den.gsm
+libdata/asterisk/sounds/en/ha/dim.gsm
+libdata/asterisk/sounds/en/ha/dining-room.gsm
+libdata/asterisk/sounds/en/ha/door.gsm
+libdata/asterisk/sounds/en/ha/doors.gsm
+libdata/asterisk/sounds/en/ha/down.gsm
+libdata/asterisk/sounds/en/ha/driveway.gsm
+libdata/asterisk/sounds/en/ha/dryer.gsm
+libdata/asterisk/sounds/en/ha/fan.gsm
+libdata/asterisk/sounds/en/ha/farad.gsm
+libdata/asterisk/sounds/en/ha/farads.gsm
+libdata/asterisk/sounds/en/ha/first-floor.gsm
+libdata/asterisk/sounds/en/ha/floor.gsm
+libdata/asterisk/sounds/en/ha/floors.gsm
+libdata/asterisk/sounds/en/ha/for-extended-status-report.gsm
+libdata/asterisk/sounds/en/ha/for-quick-status-report.gsm
+libdata/asterisk/sounds/en/ha/for-wx-report.gsm
+libdata/asterisk/sounds/en/ha/fountain.gsm
+libdata/asterisk/sounds/en/ha/foyer.gsm
+libdata/asterisk/sounds/en/ha/front.gsm
+libdata/asterisk/sounds/en/ha/furnace.gsm
+libdata/asterisk/sounds/en/ha/game-room.gsm
+libdata/asterisk/sounds/en/ha/garage.gsm
+libdata/asterisk/sounds/en/ha/great-room.gsm
+libdata/asterisk/sounds/en/ha/guest-room.gsm
+libdata/asterisk/sounds/en/ha/hall.gsm
+libdata/asterisk/sounds/en/ha/has-been-left.gsm
+libdata/asterisk/sounds/en/ha/heat-pump.gsm
+libdata/asterisk/sounds/en/ha/heat.gsm
+libdata/asterisk/sounds/en/ha/heating.gsm
+libdata/asterisk/sounds/en/ha/hot-tub.gsm
+libdata/asterisk/sounds/en/ha/house.gsm
+libdata/asterisk/sounds/en/ha/intruder.gsm
+libdata/asterisk/sounds/en/ha/is.gsm
+libdata/asterisk/sounds/en/ha/kelvin.gsm
+libdata/asterisk/sounds/en/ha/kitchen.gsm
+libdata/asterisk/sounds/en/ha/lamp.gsm
+libdata/asterisk/sounds/en/ha/lamps.gsm
+libdata/asterisk/sounds/en/ha/landscape.gsm
+libdata/asterisk/sounds/en/ha/laundry.gsm
+libdata/asterisk/sounds/en/ha/library.gsm
+libdata/asterisk/sounds/en/ha/light.gsm
+libdata/asterisk/sounds/en/ha/lights.gsm
+libdata/asterisk/sounds/en/ha/living-room.gsm
+libdata/asterisk/sounds/en/ha/locked.gsm
+libdata/asterisk/sounds/en/ha/locking.gsm
+libdata/asterisk/sounds/en/ha/mailbox.gsm
+libdata/asterisk/sounds/en/ha/master.gsm
+libdata/asterisk/sounds/en/ha/off.gsm
+libdata/asterisk/sounds/en/ha/office.gsm
+libdata/asterisk/sounds/en/ha/ohm.gsm
+libdata/asterisk/sounds/en/ha/ohms.gsm
+libdata/asterisk/sounds/en/ha/on.gsm
+libdata/asterisk/sounds/en/ha/open.gsm
+libdata/asterisk/sounds/en/ha/patio.gsm
+libdata/asterisk/sounds/en/ha/phone.gsm
+libdata/asterisk/sounds/en/ha/play-room.gsm
+libdata/asterisk/sounds/en/ha/play.gsm
+libdata/asterisk/sounds/en/ha/pool.gsm
+libdata/asterisk/sounds/en/ha/porch.gsm
+libdata/asterisk/sounds/en/ha/power-failure.gsm
+libdata/asterisk/sounds/en/ha/pressure.gsm
+libdata/asterisk/sounds/en/ha/psi.gsm
+libdata/asterisk/sounds/en/ha/quiet-mode.gsm
+libdata/asterisk/sounds/en/ha/reset.gsm
+libdata/asterisk/sounds/en/ha/roof.gsm
+libdata/asterisk/sounds/en/ha/room.gsm
+libdata/asterisk/sounds/en/ha/rooms.gsm
+libdata/asterisk/sounds/en/ha/second-floor.gsm
+libdata/asterisk/sounds/en/ha/secure.gsm
+libdata/asterisk/sounds/en/ha/security-system.gsm
+libdata/asterisk/sounds/en/ha/set.gsm
+libdata/asterisk/sounds/en/ha/side.gsm
+libdata/asterisk/sounds/en/ha/solar.gsm
+libdata/asterisk/sounds/en/ha/sprinklers.gsm
+libdata/asterisk/sounds/en/ha/still.gsm
+libdata/asterisk/sounds/en/ha/stove.gsm
+libdata/asterisk/sounds/en/ha/sump-pump.gsm
+libdata/asterisk/sounds/en/ha/sun-room.gsm
+libdata/asterisk/sounds/en/ha/system.gsm
+libdata/asterisk/sounds/en/ha/systems.gsm
+libdata/asterisk/sounds/en/ha/thermostat.gsm
+libdata/asterisk/sounds/en/ha/to-control-environ-sys.gsm
+libdata/asterisk/sounds/en/ha/to-control-lights-appl.gsm
+libdata/asterisk/sounds/en/ha/tower.gsm
+libdata/asterisk/sounds/en/ha/unlocked.gsm
+libdata/asterisk/sounds/en/ha/unlocking.gsm
+libdata/asterisk/sounds/en/ha/up.gsm
+libdata/asterisk/sounds/en/ha/volt.gsm
+libdata/asterisk/sounds/en/ha/volts.gsm
+libdata/asterisk/sounds/en/ha/washing-machine.gsm
+libdata/asterisk/sounds/en/ha/water-heater.gsm
+libdata/asterisk/sounds/en/ha/watt.gsm
+libdata/asterisk/sounds/en/ha/watts.gsm
+libdata/asterisk/sounds/en/ha/well-pump.gsm
+libdata/asterisk/sounds/en/ha/window.gsm
+libdata/asterisk/sounds/en/ha/windows.gsm
+libdata/asterisk/sounds/en/ha/xmas-lights.gsm
+libdata/asterisk/sounds/en/ha/xmas-tree.gsm
+libdata/asterisk/sounds/en/ha/yard.gsm
+libdata/asterisk/sounds/en/hail.gsm
+libdata/asterisk/sounds/en/hal_goodbye.gsm
+libdata/asterisk/sounds/en/half.gsm
+libdata/asterisk/sounds/en/hang-on-a-second-angry.gsm
+libdata/asterisk/sounds/en/hang-on-a-second.gsm
+libdata/asterisk/sounds/en/hangup-try-again.gsm
+libdata/asterisk/sounds/en/happy_saved.gsm
+libdata/asterisk/sounds/en/has-arrived-at.gsm
+libdata/asterisk/sounds/en/has-been-changed-to.gsm
+libdata/asterisk/sounds/en/has-been-cleared.gsm
+libdata/asterisk/sounds/en/has-been-disconnected.gsm
+libdata/asterisk/sounds/en/has-been-set-to.gsm
+libdata/asterisk/sounds/en/has-been.gsm
+libdata/asterisk/sounds/en/has-expired.gsm
+libdata/asterisk/sounds/en/has-issued-a.gsm
+libdata/asterisk/sounds/en/has-not-been-seen-for.gsm
+libdata/asterisk/sounds/en/has.gsm
+libdata/asterisk/sounds/en/hash.gsm
+libdata/asterisk/sounds/en/hawaii.gsm
+libdata/asterisk/sounds/en/headed-towards.gsm
+libdata/asterisk/sounds/en/heading.gsm
+libdata/asterisk/sounds/en/health-center.gsm
+libdata/asterisk/sounds/en/hear-odd-noise.gsm
+libdata/asterisk/sounds/en/hear-toilet-flush.gsm
+libdata/asterisk/sounds/en/hectopascal.gsm
+libdata/asterisk/sounds/en/hello-world.gsm
+libdata/asterisk/sounds/en/hello.gsm
+libdata/asterisk/sounds/en/helpdesk.gsm
+libdata/asterisk/sounds/en/hertz.gsm
+libdata/asterisk/sounds/en/high.gsm
+libdata/asterisk/sounds/en/highway.gsm
+libdata/asterisk/sounds/en/hit.gsm
+libdata/asterisk/sounds/en/hold-or-dial-0.gsm
+libdata/asterisk/sounds/en/home.gsm
+libdata/asterisk/sounds/en/honolulu.gsm
+libdata/asterisk/sounds/en/hours.gsm
+libdata/asterisk/sounds/en/housekeeping.gsm
+libdata/asterisk/sounds/en/houston.gsm
+libdata/asterisk/sounds/en/http.gsm
+libdata/asterisk/sounds/en/human-resources.gsm
+libdata/asterisk/sounds/en/humidity.gsm
+libdata/asterisk/sounds/en/hundredth.gsm
+libdata/asterisk/sounds/en/hurricane.gsm
+libdata/asterisk/sounds/en/hz.gsm
+libdata/asterisk/sounds/en/i-dont-understand.gsm
+libdata/asterisk/sounds/en/i-dont-understand2.gsm
+libdata/asterisk/sounds/en/i-dont-understand3.gsm
+libdata/asterisk/sounds/en/i-dont-understand4.gsm
+libdata/asterisk/sounds/en/i-dont-understand5.gsm
+libdata/asterisk/sounds/en/i-grow-bored.gsm
+libdata/asterisk/sounds/en/ice.gsm
+libdata/asterisk/sounds/en/icmp.gsm
+libdata/asterisk/sounds/en/icy.gsm
+libdata/asterisk/sounds/en/idaho.gsm
+libdata/asterisk/sounds/en/if-correct-press.gsm
+libdata/asterisk/sounds/en/if-grtg-played-indefinately.gsm
+libdata/asterisk/sounds/en/if-grtg-should-expire-at.gsm
+libdata/asterisk/sounds/en/if-maint-contract-or-emergency.gsm
+libdata/asterisk/sounds/en/if-rotary-phone.gsm
+libdata/asterisk/sounds/en/if-this-is-correct-press.gsm
+libdata/asterisk/sounds/en/if-this-is-correct.gsm
+libdata/asterisk/sounds/en/if-this-is-not-correct.gsm
+libdata/asterisk/sounds/en/if-u-know-ext-dial.gsm
+libdata/asterisk/sounds/en/if-unsuccessful-speak-to.gsm
+libdata/asterisk/sounds/en/if-you-know-the.gsm
+libdata/asterisk/sounds/en/if-you-need-help.gsm
+libdata/asterisk/sounds/en/if-youd-like-to-make-a-call.gsm
+libdata/asterisk/sounds/en/illinois.gsm
+libdata/asterisk/sounds/en/im-sorry-unable-to-connect-to-eng.gsm
+libdata/asterisk/sounds/en/im-sorry.gsm
+libdata/asterisk/sounds/en/imap.gsm
+libdata/asterisk/sounds/en/in-service.gsm
+libdata/asterisk/sounds/en/in-the-line.gsm
+libdata/asterisk/sounds/en/in-the-queue.gsm
+libdata/asterisk/sounds/en/in-the.gsm
+libdata/asterisk/sounds/en/in-your-city.gsm
+libdata/asterisk/sounds/en/in-your-zip-code.gsm
+libdata/asterisk/sounds/en/inbound.gsm
+libdata/asterisk/sounds/en/indiana.gsm
+libdata/asterisk/sounds/en/indianapolis.gsm
+libdata/asterisk/sounds/en/indicated.gsm
+libdata/asterisk/sounds/en/info-about-last-call.gsm
+libdata/asterisk/sounds/en/information-technology.gsm
+libdata/asterisk/sounds/en/information.gsm
+libdata/asterisk/sounds/en/infuriate-tech-staff.gsm
+libdata/asterisk/sounds/en/initiated.gsm
+libdata/asterisk/sounds/en/initiating.gsm
+libdata/asterisk/sounds/en/inside-sales.gsm
+libdata/asterisk/sounds/en/internal-audit.gsm
+libdata/asterisk/sounds/en/international-call.gsm
+libdata/asterisk/sounds/en/interstate.gsm
+libdata/asterisk/sounds/en/invalid-date.gsm
+libdata/asterisk/sounds/en/invalid-featurecode.gsm
+libdata/asterisk/sounds/en/invalid.gsm
+libdata/asterisk/sounds/en/investor-relations.gsm
+libdata/asterisk/sounds/en/iowa.gsm
+libdata/asterisk/sounds/en/is-at.gsm
+libdata/asterisk/sounds/en/is-curntly-busy.gsm
+libdata/asterisk/sounds/en/is-curntly-unavail.gsm
+libdata/asterisk/sounds/en/is-currently.gsm
+libdata/asterisk/sounds/en/is-in-use.gsm
+libdata/asterisk/sounds/en/is-not-in-the.gsm
+libdata/asterisk/sounds/en/is-not-set.gsm
+libdata/asterisk/sounds/en/is-now-being-recorded.gsm
+libdata/asterisk/sounds/en/is-set-to.gsm
+libdata/asterisk/sounds/en/is.gsm
+libdata/asterisk/sounds/en/it-now.gsm
+libdata/asterisk/sounds/en/it-services.gsm
+libdata/asterisk/sounds/en/jacksonville.gsm
+libdata/asterisk/sounds/en/janitorial.gsm
+libdata/asterisk/sounds/en/jason.gsm
+libdata/asterisk/sounds/en/jedi-extension-trick.gsm
+libdata/asterisk/sounds/en/john.gsm
+libdata/asterisk/sounds/en/just-kidding-not-upset.gsm
+libdata/asterisk/sounds/en/just-kidding-not-upset2.gsm
+libdata/asterisk/sounds/en/kansas-city.gsm
+libdata/asterisk/sounds/en/kansas.gsm
+libdata/asterisk/sounds/en/kentucky.gsm
+libdata/asterisk/sounds/en/keywords_cross_fingers.gsm
+libdata/asterisk/sounds/en/kilobits.gsm
+libdata/asterisk/sounds/en/kilobytes.gsm
+libdata/asterisk/sounds/en/kilohertz.gsm
+libdata/asterisk/sounds/en/kilometer.gsm
+libdata/asterisk/sounds/en/kilometers-per-hour.gsm
+libdata/asterisk/sounds/en/knock-knock.gsm
+libdata/asterisk/sounds/en/knots.gsm
+libdata/asterisk/sounds/en/language.gsm
+libdata/asterisk/sounds/en/las-vegas.gsm
+libdata/asterisk/sounds/en/last-error-was.gsm
+libdata/asterisk/sounds/en/last-num-to-call.gsm
+libdata/asterisk/sounds/en/late.gsm
+libdata/asterisk/sounds/en/later.gsm
+libdata/asterisk/sounds/en/lea-may-request-info.gsm
+libdata/asterisk/sounds/en/left-bracket.gsm
+libdata/asterisk/sounds/en/legal.gsm
+libdata/asterisk/sounds/en/len.gsm
+libdata/asterisk/sounds/en/less-than.gsm
+libdata/asterisk/sounds/en/letters/a.gsm
+libdata/asterisk/sounds/en/letters/ascii123.gsm
+libdata/asterisk/sounds/en/letters/ascii124.gsm
+libdata/asterisk/sounds/en/letters/ascii125.gsm
+libdata/asterisk/sounds/en/letters/ascii126.gsm
+libdata/asterisk/sounds/en/letters/ascii34.gsm
+libdata/asterisk/sounds/en/letters/ascii36.gsm
+libdata/asterisk/sounds/en/letters/ascii37.gsm
+libdata/asterisk/sounds/en/letters/ascii38.gsm
+libdata/asterisk/sounds/en/letters/ascii39.gsm
+libdata/asterisk/sounds/en/letters/ascii40.gsm
+libdata/asterisk/sounds/en/letters/ascii41.gsm
+libdata/asterisk/sounds/en/letters/ascii42.gsm
+libdata/asterisk/sounds/en/letters/ascii44.gsm
+libdata/asterisk/sounds/en/letters/ascii58.gsm
+libdata/asterisk/sounds/en/letters/ascii59.gsm
+libdata/asterisk/sounds/en/letters/ascii60.gsm
+libdata/asterisk/sounds/en/letters/ascii62.gsm
+libdata/asterisk/sounds/en/letters/ascii63.gsm
+libdata/asterisk/sounds/en/letters/ascii91.gsm
+libdata/asterisk/sounds/en/letters/ascii92.gsm
+libdata/asterisk/sounds/en/letters/ascii93.gsm
+libdata/asterisk/sounds/en/letters/ascii94.gsm
+libdata/asterisk/sounds/en/letters/ascii95.gsm
+libdata/asterisk/sounds/en/letters/ascii96.gsm
+libdata/asterisk/sounds/en/letters/asterisk.gsm
+libdata/asterisk/sounds/en/letters/at.gsm
+libdata/asterisk/sounds/en/letters/b.gsm
+libdata/asterisk/sounds/en/letters/c.gsm
+libdata/asterisk/sounds/en/letters/d.gsm
+libdata/asterisk/sounds/en/letters/dash.gsm
+libdata/asterisk/sounds/en/letters/dollar.gsm
+libdata/asterisk/sounds/en/letters/dot.gsm
+libdata/asterisk/sounds/en/letters/e.gsm
+libdata/asterisk/sounds/en/letters/equals.gsm
+libdata/asterisk/sounds/en/letters/exclaimation-point.gsm
+libdata/asterisk/sounds/en/letters/f.gsm
+libdata/asterisk/sounds/en/letters/g.gsm
+libdata/asterisk/sounds/en/letters/h.gsm
+libdata/asterisk/sounds/en/letters/i.gsm
+libdata/asterisk/sounds/en/letters/j.gsm
+libdata/asterisk/sounds/en/letters/k.gsm
+libdata/asterisk/sounds/en/letters/l.gsm
+libdata/asterisk/sounds/en/letters/m.gsm
+libdata/asterisk/sounds/en/letters/n.gsm
+libdata/asterisk/sounds/en/letters/o.gsm
+libdata/asterisk/sounds/en/letters/p.gsm
+libdata/asterisk/sounds/en/letters/plus.gsm
+libdata/asterisk/sounds/en/letters/q.gsm
+libdata/asterisk/sounds/en/letters/r.gsm
+libdata/asterisk/sounds/en/letters/s.gsm
+libdata/asterisk/sounds/en/letters/slash.gsm
+libdata/asterisk/sounds/en/letters/space.gsm
+libdata/asterisk/sounds/en/letters/t.gsm
+libdata/asterisk/sounds/en/letters/u.gsm
+libdata/asterisk/sounds/en/letters/v.gsm
+libdata/asterisk/sounds/en/letters/w.gsm
+libdata/asterisk/sounds/en/letters/x.gsm
+libdata/asterisk/sounds/en/letters/y.gsm
+libdata/asterisk/sounds/en/letters/z.gsm
+libdata/asterisk/sounds/en/letters/zed.gsm
+libdata/asterisk/sounds/en/library.gsm
+libdata/asterisk/sounds/en/lightning.gsm
+libdata/asterisk/sounds/en/like_to_tell_valid_ext.gsm
+libdata/asterisk/sounds/en/limit-simul-calls.gsm
+libdata/asterisk/sounds/en/lines-complaining-customers.gsm
+libdata/asterisk/sounds/en/linux.gsm
+libdata/asterisk/sounds/en/list.gsm
+libdata/asterisk/sounds/en/load-average.gsm
+libdata/asterisk/sounds/en/local-authorities.gsm
+libdata/asterisk/sounds/en/location.gsm
+libdata/asterisk/sounds/en/login-fail.gsm
+libdata/asterisk/sounds/en/long-beach.gsm
+libdata/asterisk/sounds/en/los-angeles.gsm
+libdata/asterisk/sounds/en/loss-prevention.gsm
+libdata/asterisk/sounds/en/loss.gsm
+libdata/asterisk/sounds/en/lots-o-monkeys.gsm
+libdata/asterisk/sounds/en/louisiana.gsm
+libdata/asterisk/sounds/en/low.gsm
+libdata/asterisk/sounds/en/lowercase.gsm
+libdata/asterisk/sounds/en/lunch.gsm
+libdata/asterisk/sounds/en/lyrics-louie-louie.gsm
+libdata/asterisk/sounds/en/machine.gsm
+libdata/asterisk/sounds/en/made-it-up.gsm
+libdata/asterisk/sounds/en/mail.gsm
+libdata/asterisk/sounds/en/mailroom.gsm
+libdata/asterisk/sounds/en/main-menu.gsm
+libdata/asterisk/sounds/en/maine.gsm
+libdata/asterisk/sounds/en/maintenance.gsm
+libdata/asterisk/sounds/en/male.gsm
+libdata/asterisk/sounds/en/management.gsm
+libdata/asterisk/sounds/en/manufacturing.gsm
+libdata/asterisk/sounds/en/marketing.gsm
+libdata/asterisk/sounds/en/marryme.gsm
+libdata/asterisk/sounds/en/martini.gsm
+libdata/asterisk/sounds/en/maryland.gsm
+libdata/asterisk/sounds/en/massachusetts.gsm
+libdata/asterisk/sounds/en/mathematics.gsm
+libdata/asterisk/sounds/en/maximum.gsm
+libdata/asterisk/sounds/en/megabits.gsm
+libdata/asterisk/sounds/en/megabytes.gsm
+libdata/asterisk/sounds/en/megahertz.gsm
+libdata/asterisk/sounds/en/memory.gsm
+libdata/asterisk/sounds/en/memphis.gsm
+libdata/asterisk/sounds/en/menu.gsm
+libdata/asterisk/sounds/en/mesa.gsm
+libdata/asterisk/sounds/en/message-from.gsm
+libdata/asterisk/sounds/en/message-number.gsm
+libdata/asterisk/sounds/en/messages_curious.gsm
+libdata/asterisk/sounds/en/meter.gsm
+libdata/asterisk/sounds/en/meters.gsm
+libdata/asterisk/sounds/en/miami.gsm
+libdata/asterisk/sounds/en/michigan.gsm
+libdata/asterisk/sounds/en/midnight-tomorrow-night.gsm
+libdata/asterisk/sounds/en/midnight-tonight.gsm
+libdata/asterisk/sounds/en/midnight.gsm
+libdata/asterisk/sounds/en/mike.gsm
+libdata/asterisk/sounds/en/miles-per-hour.gsm
+libdata/asterisk/sounds/en/miles.gsm
+libdata/asterisk/sounds/en/millionth.gsm
+libdata/asterisk/sounds/en/milwaukee.gsm
+libdata/asterisk/sounds/en/mind_repeating.gsm
+libdata/asterisk/sounds/en/minimum.gsm
+libdata/asterisk/sounds/en/minions-not-answering-leave-message.gsm
+libdata/asterisk/sounds/en/minneapolis.gsm
+libdata/asterisk/sounds/en/minnesota.gsm
+libdata/asterisk/sounds/en/minute.gsm
+libdata/asterisk/sounds/en/minutes.gsm
+libdata/asterisk/sounds/en/missed.gsm
+libdata/asterisk/sounds/en/mississippi.gsm
+libdata/asterisk/sounds/en/missouri.gsm
+libdata/asterisk/sounds/en/misty.gsm
+libdata/asterisk/sounds/en/mode.gsm
+libdata/asterisk/sounds/en/monitored.gsm
+libdata/asterisk/sounds/en/montana.gsm
+libdata/asterisk/sounds/en/month.gsm
+libdata/asterisk/sounds/en/months.gsm
+libdata/asterisk/sounds/en/moo1.gsm
+libdata/asterisk/sounds/en/moo2.gsm
+libdata/asterisk/sounds/en/morning.gsm
+libdata/asterisk/sounds/en/moron.gsm
+libdata/asterisk/sounds/en/mostly.gsm
+libdata/asterisk/sounds/en/motor-pool.gsm
+libdata/asterisk/sounds/en/mountain.gsm
+libdata/asterisk/sounds/en/moving.gsm
+libdata/asterisk/sounds/en/ms.gsm
+libdata/asterisk/sounds/en/nashville.gsm
+libdata/asterisk/sounds/en/national-weather-service.gsm
+libdata/asterisk/sounds/en/nautical-miles.gsm
+libdata/asterisk/sounds/en/nbdy-avail-to-take-call.gsm
+libdata/asterisk/sounds/en/near.gsm
+libdata/asterisk/sounds/en/nebraska.gsm
+libdata/asterisk/sounds/en/negative.gsm
+libdata/asterisk/sounds/en/network-operations-center.gsm
+libdata/asterisk/sounds/en/network-operations.gsm
+libdata/asterisk/sounds/en/nevada.gsm
+libdata/asterisk/sounds/en/new-accounts.gsm
+libdata/asterisk/sounds/en/new-hampshire.gsm
+libdata/asterisk/sounds/en/new-jersey.gsm
+libdata/asterisk/sounds/en/new-mexico.gsm
+libdata/asterisk/sounds/en/new-orleans.gsm
+libdata/asterisk/sounds/en/new-york.gsm
+libdata/asterisk/sounds/en/night.gsm
+libdata/asterisk/sounds/en/nineteenth.gsm
+libdata/asterisk/sounds/en/ninetieth.gsm
+libdata/asterisk/sounds/en/ninth.gsm
+libdata/asterisk/sounds/en/no-112-1.gsm
+libdata/asterisk/sounds/en/no-112-2.gsm
+libdata/asterisk/sounds/en/no-911-1.gsm
+libdata/asterisk/sounds/en/no-911-2.gsm
+libdata/asterisk/sounds/en/no-empty-conferences.gsm
+libdata/asterisk/sounds/en/no-info-about-number.gsm
+libdata/asterisk/sounds/en/no-longer-in-service.gsm
+libdata/asterisk/sounds/en/no-reply-no-mailbox.gsm
+libdata/asterisk/sounds/en/no-route-exists-to-dest.gsm
+libdata/asterisk/sounds/en/no_invite_to_conf.gsm
+libdata/asterisk/sounds/en/no_longer_conf.gsm
+libdata/asterisk/sounds/en/no_problem_help.gsm
+libdata/asterisk/sounds/en/no_worries_try_again.gsm
+libdata/asterisk/sounds/en/nobody-but-chickens.gsm
+libdata/asterisk/sounds/en/node.gsm
+libdata/asterisk/sounds/en/none_of_my_business1.gsm
+libdata/asterisk/sounds/en/none_of_my_business2.gsm
+libdata/asterisk/sounds/en/north-carolina.gsm
+libdata/asterisk/sounds/en/north-dakota.gsm
+libdata/asterisk/sounds/en/north.gsm
+libdata/asterisk/sounds/en/northerly.gsm
+libdata/asterisk/sounds/en/not-auth-pstn.gsm
+libdata/asterisk/sounds/en/not-enough-credit.gsm
+libdata/asterisk/sounds/en/not-necessary-1.gsm
+libdata/asterisk/sounds/en/not-necessary-ac.gsm
+libdata/asterisk/sounds/en/not-necessary-dial-1-or-ac.gsm
+libdata/asterisk/sounds/en/not-rqsted-wakeup.gsm
+libdata/asterisk/sounds/en/not-taking-your-call.gsm
+libdata/asterisk/sounds/en/not-yet-assigned.gsm
+libdata/asterisk/sounds/en/not-yet-connected.gsm
+libdata/asterisk/sounds/en/not_me.gsm
+libdata/asterisk/sounds/en/not_pass.gsm
+libdata/asterisk/sounds/en/not_siri.gsm
+libdata/asterisk/sounds/en/not_you.gsm
+libdata/asterisk/sounds/en/nothing-recorded.gsm
+libdata/asterisk/sounds/en/now.gsm
+libdata/asterisk/sounds/en/num-not-in-db.gsm
+libdata/asterisk/sounds/en/num-outside-area.gsm
+libdata/asterisk/sounds/en/num-was-successfully.gsm
+libdata/asterisk/sounds/en/number-not-answering.gsm
+libdata/asterisk/sounds/en/number.gsm
+libdata/asterisk/sounds/en/oakland.gsm
+libdata/asterisk/sounds/en/octothorpe.gsm
+libdata/asterisk/sounds/en/off-duty.gsm
+libdata/asterisk/sounds/en/off.gsm
+libdata/asterisk/sounds/en/office-code.gsm
+libdata/asterisk/sounds/en/office-iguanas.gsm
+libdata/asterisk/sounds/en/office.gsm
+libdata/asterisk/sounds/en/ogm_home.gsm
+libdata/asterisk/sounds/en/ohio.gsm
+libdata/asterisk/sounds/en/oklahoma-city.gsm
+libdata/asterisk/sounds/en/oklahoma.gsm
+libdata/asterisk/sounds/en/omaha.gsm
+libdata/asterisk/sounds/en/on-busy.gsm
+libdata/asterisk/sounds/en/on-monthly-tel-stment.gsm
+libdata/asterisk/sounds/en/on-no-answer.gsm
+libdata/asterisk/sounds/en/on.gsm
+libdata/asterisk/sounds/en/one-moment-please.gsm
+libdata/asterisk/sounds/en/one-small-step.gsm
+libdata/asterisk/sounds/en/one-small-step2.gsm
+libdata/asterisk/sounds/en/oops1.gsm
+libdata/asterisk/sounds/en/oops2.gsm
+libdata/asterisk/sounds/en/oops3.gsm
+libdata/asterisk/sounds/en/open-parenthesis.gsm
+libdata/asterisk/sounds/en/open.gsm
+libdata/asterisk/sounds/en/operations.gsm
+libdata/asterisk/sounds/en/option-is-invalid.gsm
+libdata/asterisk/sounds/en/option-not-implemented.gsm
+libdata/asterisk/sounds/en/or-press.gsm
+libdata/asterisk/sounds/en/or.gsm
+libdata/asterisk/sounds/en/order-desk.gsm
+libdata/asterisk/sounds/en/orders.gsm
+libdata/asterisk/sounds/en/oregon.gsm
+libdata/asterisk/sounds/en/other-options-exercise.gsm
+libdata/asterisk/sounds/en/otherwise-press.gsm
+libdata/asterisk/sounds/en/otherwise.gsm
+libdata/asterisk/sounds/en/our-business-hours-are.gsm
+libdata/asterisk/sounds/en/outbound.gsm
+libdata/asterisk/sounds/en/outside-sales.gsm
+libdata/asterisk/sounds/en/outside-transfer.gsm
+libdata/asterisk/sounds/en/pacific.gsm
+libdata/asterisk/sounds/en/packet.gsm
+libdata/asterisk/sounds/en/panic.gsm
+libdata/asterisk/sounds/en/partially.gsm
+libdata/asterisk/sounds/en/partly.gsm
+libdata/asterisk/sounds/en/pascal.gsm
+libdata/asterisk/sounds/en/pascal2.gsm
+libdata/asterisk/sounds/en/passwords_not_match.gsm
+libdata/asterisk/sounds/en/patchy.gsm
+libdata/asterisk/sounds/en/pbx-invalid.gsm
+libdata/asterisk/sounds/en/pbx-invalidpark.gsm
+libdata/asterisk/sounds/en/pbx-parkingfailed.gsm
+libdata/asterisk/sounds/en/pbx-transfer.gsm
+libdata/asterisk/sounds/en/pence.gsm
+libdata/asterisk/sounds/en/pennies.gsm
+libdata/asterisk/sounds/en/pennsylvania.gsm
+libdata/asterisk/sounds/en/penny.gsm
+libdata/asterisk/sounds/en/percent.gsm
+libdata/asterisk/sounds/en/perhaps-we-are.gsm
+libdata/asterisk/sounds/en/perhaps-we-are2.gsm
+libdata/asterisk/sounds/en/period.gsm
+libdata/asterisk/sounds/en/personnel.gsm
+libdata/asterisk/sounds/en/persons-in-path-of.gsm
+libdata/asterisk/sounds/en/philadelphia.gsm
+libdata/asterisk/sounds/en/phoenix.gsm
+libdata/asterisk/sounds/en/phonetic/9_p.gsm
+libdata/asterisk/sounds/en/phonetic/a_p.gsm
+libdata/asterisk/sounds/en/phonetic/b_p.gsm
+libdata/asterisk/sounds/en/phonetic/c_p.gsm
+libdata/asterisk/sounds/en/phonetic/d_p.gsm
+libdata/asterisk/sounds/en/phonetic/e_p.gsm
+libdata/asterisk/sounds/en/phonetic/f_p.gsm
+libdata/asterisk/sounds/en/phonetic/g_p.gsm
+libdata/asterisk/sounds/en/phonetic/h_p.gsm
+libdata/asterisk/sounds/en/phonetic/i_p.gsm
+libdata/asterisk/sounds/en/phonetic/j_p.gsm
+libdata/asterisk/sounds/en/phonetic/k_p.gsm
+libdata/asterisk/sounds/en/phonetic/l_p.gsm
+libdata/asterisk/sounds/en/phonetic/m_p.gsm
+libdata/asterisk/sounds/en/phonetic/n_p.gsm
+libdata/asterisk/sounds/en/phonetic/o_p.gsm
+libdata/asterisk/sounds/en/phonetic/p_p.gsm
+libdata/asterisk/sounds/en/phonetic/q_p.gsm
+libdata/asterisk/sounds/en/phonetic/r_p.gsm
+libdata/asterisk/sounds/en/phonetic/s_p.gsm
+libdata/asterisk/sounds/en/phonetic/t_p.gsm
+libdata/asterisk/sounds/en/phonetic/u_p.gsm
+libdata/asterisk/sounds/en/phonetic/v_p.gsm
+libdata/asterisk/sounds/en/phonetic/w_p.gsm
+libdata/asterisk/sounds/en/phonetic/x_p.gsm
+libdata/asterisk/sounds/en/phonetic/y_p.gsm
+libdata/asterisk/sounds/en/phonetic/z_p.gsm
+libdata/asterisk/sounds/en/physics.gsm
+libdata/asterisk/sounds/en/pin-invalid.gsm
+libdata/asterisk/sounds/en/pin-number-accepted.gsm
+libdata/asterisk/sounds/en/pin_number.gsm
+libdata/asterisk/sounds/en/ping.gsm
+libdata/asterisk/sounds/en/pipe.gsm
+libdata/asterisk/sounds/en/planning.gsm
+libdata/asterisk/sounds/en/please-answer-the-following.gsm
+libdata/asterisk/sounds/en/please-contact-tech-supt.gsm
+libdata/asterisk/sounds/en/please-enter-first-three-letters.gsm
+libdata/asterisk/sounds/en/please-enter-the.gsm
+libdata/asterisk/sounds/en/please-enter-your.gsm
+libdata/asterisk/sounds/en/please-hang-up-and-dial-operator.gsm
+libdata/asterisk/sounds/en/please-hang-up-and-try-again.gsm
+libdata/asterisk/sounds/en/please-hold-minion-connect.gsm
+libdata/asterisk/sounds/en/please-hold-while-minion.gsm
+libdata/asterisk/sounds/en/please-try-again-later.gsm
+libdata/asterisk/sounds/en/please-try-again.gsm
+libdata/asterisk/sounds/en/please-try-call-later.gsm
+libdata/asterisk/sounds/en/please-try.gsm
+libdata/asterisk/sounds/en/please-wait-connect-oncall-eng.gsm
+libdata/asterisk/sounds/en/pls-ent-num-transfer.gsm
+libdata/asterisk/sounds/en/pls-enter-conf-password.gsm
+libdata/asterisk/sounds/en/pls-enter-num-message-after-tone.gsm
+libdata/asterisk/sounds/en/pls-enter-vm-password.gsm
+libdata/asterisk/sounds/en/pls-entr-num-uwish2-call.gsm
+libdata/asterisk/sounds/en/pls-hold-process-tx.gsm
+libdata/asterisk/sounds/en/pls-hold-silent30.gsm
+libdata/asterisk/sounds/en/pls-hold-while-try.gsm
+libdata/asterisk/sounds/en/pls-listen-options-changed.gsm
+libdata/asterisk/sounds/en/pls-lv-msg-will-contact.gsm
+libdata/asterisk/sounds/en/pls-rcrd-name-at-tone.gsm
+libdata/asterisk/sounds/en/pls-stay-on-line.gsm
+libdata/asterisk/sounds/en/pls-try-again.gsm
+libdata/asterisk/sounds/en/pls-try-area-code.gsm
+libdata/asterisk/sounds/en/pls-try-manually.gsm
+libdata/asterisk/sounds/en/pls-wait-connect-call.gsm
+libdata/asterisk/sounds/en/plugh.gsm
+libdata/asterisk/sounds/en/pm-announcement-number.gsm
+libdata/asterisk/sounds/en/pm-invalid-option.gsm
+libdata/asterisk/sounds/en/pm-phrase-management.gsm
+libdata/asterisk/sounds/en/pm-prompt-number.gsm
+libdata/asterisk/sounds/en/pm-to-record-phrase.gsm
+libdata/asterisk/sounds/en/pm-to-review-phrase.gsm
+libdata/asterisk/sounds/en/point.gsm
+libdata/asterisk/sounds/en/pop.gsm
+libdata/asterisk/sounds/en/port.gsm
+libdata/asterisk/sounds/en/portland.gsm
+libdata/asterisk/sounds/en/portnumber.gsm
+libdata/asterisk/sounds/en/position.gsm
+libdata/asterisk/sounds/en/post-entry-pound.gsm
+libdata/asterisk/sounds/en/pounds.gsm
+libdata/asterisk/sounds/en/presales-support.gsm
+libdata/asterisk/sounds/en/presidents-office.gsm
+libdata/asterisk/sounds/en/press-0.gsm
+libdata/asterisk/sounds/en/press-1.gsm
+libdata/asterisk/sounds/en/press-2.gsm
+libdata/asterisk/sounds/en/press-3.gsm
+libdata/asterisk/sounds/en/press-4.gsm
+libdata/asterisk/sounds/en/press-5.gsm
+libdata/asterisk/sounds/en/press-6-to-eject.gsm
+libdata/asterisk/sounds/en/press-6.gsm
+libdata/asterisk/sounds/en/press-7.gsm
+libdata/asterisk/sounds/en/press-8.gsm
+libdata/asterisk/sounds/en/press-9.gsm
+libdata/asterisk/sounds/en/press-button-again.gsm
+libdata/asterisk/sounds/en/press-enter.gsm
+libdata/asterisk/sounds/en/press-escape.gsm
+libdata/asterisk/sounds/en/press-hash.gsm
+libdata/asterisk/sounds/en/press-or-say-0.gsm
+libdata/asterisk/sounds/en/press-or-say-1.gsm
+libdata/asterisk/sounds/en/press-or-say-2.gsm
+libdata/asterisk/sounds/en/press-or-say-3.gsm
+libdata/asterisk/sounds/en/press-or-say-4.gsm
+libdata/asterisk/sounds/en/press-or-say-5.gsm
+libdata/asterisk/sounds/en/press-or-say-6.gsm
+libdata/asterisk/sounds/en/press-or-say-7.gsm
+libdata/asterisk/sounds/en/press-or-say-8.gsm
+libdata/asterisk/sounds/en/press-or-say-9.gsm
+libdata/asterisk/sounds/en/press-pound-save-changes.gsm
+libdata/asterisk/sounds/en/press-pound-to-login-star-to-hangup.gsm
+libdata/asterisk/sounds/en/press-pound.gsm
+libdata/asterisk/sounds/en/press-return.gsm
+libdata/asterisk/sounds/en/press-star-cancel.gsm
+libdata/asterisk/sounds/en/press-star.gsm
+libdata/asterisk/sounds/en/press-the-space-bar.gsm
+libdata/asterisk/sounds/en/press-tilde.gsm
+libdata/asterisk/sounds/en/press.gsm
+libdata/asterisk/sounds/en/press_pound_hash.gsm
+libdata/asterisk/sounds/en/press_pound_hash_key.gsm
+libdata/asterisk/sounds/en/pressure.gsm
+libdata/asterisk/sounds/en/prime_number.gsm
+libdata/asterisk/sounds/en/printing.gsm
+libdata/asterisk/sounds/en/priv-callee-options.gsm
+libdata/asterisk/sounds/en/priv-callpending.gsm
+libdata/asterisk/sounds/en/priv-introsaved.gsm
+libdata/asterisk/sounds/en/priv-recordintro.gsm
+libdata/asterisk/sounds/en/privacy-blacklisted.gsm
+libdata/asterisk/sounds/en/privacy-blocked.gsm
+libdata/asterisk/sounds/en/privacy-if-error-leave-message-or-hangup.gsm
+libdata/asterisk/sounds/en/privacy-if-error.gsm
+libdata/asterisk/sounds/en/privacy-if-sales-call-contact-in-writing.gsm
+libdata/asterisk/sounds/en/privacy-incorrect.gsm
+libdata/asterisk/sounds/en/privacy-last-caller-was.gsm
+libdata/asterisk/sounds/en/privacy-not.gsm
+libdata/asterisk/sounds/en/privacy-please-dial.gsm
+libdata/asterisk/sounds/en/privacy-please-stay-on-line-to-be-connected.gsm
+libdata/asterisk/sounds/en/privacy-prompt.gsm
+libdata/asterisk/sounds/en/privacy-restricted-by-req.gsm
+libdata/asterisk/sounds/en/privacy-screening-unidentified-calls.gsm
+libdata/asterisk/sounds/en/privacy-stop-calling-not-welcome.gsm
+libdata/asterisk/sounds/en/privacy-stop-calling-not-welcome2.gsm
+libdata/asterisk/sounds/en/privacy-thankyou.gsm
+libdata/asterisk/sounds/en/privacy-this-number-is.gsm
+libdata/asterisk/sounds/en/privacy-to-blacklist-last-caller.gsm
+libdata/asterisk/sounds/en/privacy-to-blacklist-this-number.gsm
+libdata/asterisk/sounds/en/privacy-to-hear-our-contact-details.gsm
+libdata/asterisk/sounds/en/privacy-to-whitelist-last-caller.gsm
+libdata/asterisk/sounds/en/privacy-to-whitelist-this-number.gsm
+libdata/asterisk/sounds/en/privacy-unident.gsm
+libdata/asterisk/sounds/en/privacy-whitelisted.gsm
+libdata/asterisk/sounds/en/privacy-you-are-blacklisted.gsm
+libdata/asterisk/sounds/en/privacy-you-are-calling-from.gsm
+libdata/asterisk/sounds/en/privacy-your-callerid-is.gsm
+libdata/asterisk/sounds/en/product.gsm
+libdata/asterisk/sounds/en/production.gsm
+libdata/asterisk/sounds/en/projects.gsm
+libdata/asterisk/sounds/en/prompt-not-found.gsm
+libdata/asterisk/sounds/en/protocol.gsm
+libdata/asterisk/sounds/en/public-relations.gsm
+libdata/asterisk/sounds/en/purchasing.gsm
+libdata/asterisk/sounds/en/purposes.gsm
+libdata/asterisk/sounds/en/q-dot-931.gsm
+libdata/asterisk/sounds/en/q-dot-9thirty1.gsm
+libdata/asterisk/sounds/en/quality-assurance.gsm
+libdata/asterisk/sounds/en/quality-control.gsm
+libdata/asterisk/sounds/en/quality_control.gsm
+libdata/asterisk/sounds/en/quarter.gsm
+libdata/asterisk/sounds/en/queue-callswaiting.gsm
+libdata/asterisk/sounds/en/queue-holdtime.gsm
+libdata/asterisk/sounds/en/queue-less-than.gsm
+libdata/asterisk/sounds/en/queue-minute.gsm
+libdata/asterisk/sounds/en/queue-minutes.gsm
+libdata/asterisk/sounds/en/queue-periodic-announce.gsm
+libdata/asterisk/sounds/en/queue-quantity1.gsm
+libdata/asterisk/sounds/en/queue-quantity2.gsm
+libdata/asterisk/sounds/en/queue-reporthold.gsm
+libdata/asterisk/sounds/en/queue-seconds.gsm
+libdata/asterisk/sounds/en/queue-thankyou.gsm
+libdata/asterisk/sounds/en/queue-thereare.gsm
+libdata/asterisk/sounds/en/queue-youarenext.gsm
+libdata/asterisk/sounds/en/quickly.gsm
+libdata/asterisk/sounds/en/quote.gsm
+libdata/asterisk/sounds/en/race.gsm
+libdata/asterisk/sounds/en/rain.gsm
+libdata/asterisk/sounds/en/rainfall.gsm
+libdata/asterisk/sounds/en/rainy.gsm
+libdata/asterisk/sounds/en/range.gsm
+libdata/asterisk/sounds/en/reassigned-new-areacode.gsm
+libdata/asterisk/sounds/en/rebates.gsm
+libdata/asterisk/sounds/en/received.gsm
+libdata/asterisk/sounds/en/receiving.gsm
+libdata/asterisk/sounds/en/reception.gsm
+libdata/asterisk/sounds/en/recorded.gsm
+libdata/asterisk/sounds/en/registrar.gsm
+libdata/asterisk/sounds/en/regret_not_saved.gsm
+libdata/asterisk/sounds/en/remote-already-in-this-mode-2.gsm
+libdata/asterisk/sounds/en/remote-already-in-this-mode.gsm
+libdata/asterisk/sounds/en/remote-base.gsm
+libdata/asterisk/sounds/en/removed.gsm
+libdata/asterisk/sounds/en/repair.gsm
+libdata/asterisk/sounds/en/repeat-only.gsm
+libdata/asterisk/sounds/en/repeat_pin.gsm
+libdata/asterisk/sounds/en/repeater.gsm
+libdata/asterisk/sounds/en/research-and-development.gsm
+libdata/asterisk/sounds/en/research.gsm
+libdata/asterisk/sounds/en/reservations.gsm
+libdata/asterisk/sounds/en/restarting.gsm
+libdata/asterisk/sounds/en/rhode-island.gsm
+libdata/asterisk/sounds/en/right-bracket.gsm
+libdata/asterisk/sounds/en/rising.gsm
+libdata/asterisk/sounds/en/risk-management.gsm
+libdata/asterisk/sounds/en/roaming.gsm
+libdata/asterisk/sounds/en/room-service.gsm
+libdata/asterisk/sounds/en/route-sip.gsm
+libdata/asterisk/sounds/en/rqsted-wakeup-for.gsm
+libdata/asterisk/sounds/en/sacramento.gsm
+libdata/asterisk/sounds/en/said_hold_on.gsm
+libdata/asterisk/sounds/en/saint-louis.gsm
+libdata/asterisk/sounds/en/sales-floor.gsm
+libdata/asterisk/sounds/en/sales.gsm
+libdata/asterisk/sounds/en/saleshell.gsm
+libdata/asterisk/sounds/en/san-antonio.gsm
+libdata/asterisk/sounds/en/san-diego.gsm
+libdata/asterisk/sounds/en/san-francisco.gsm
+libdata/asterisk/sounds/en/san-jose.gsm
+libdata/asterisk/sounds/en/save-announce-press.gsm
+libdata/asterisk/sounds/en/say-temp-msg-prs-pound.gsm
+libdata/asterisk/sounds/en/says-thats-stupid.gsm
+libdata/asterisk/sounds/en/scattered.gsm
+libdata/asterisk/sounds/en/sciences.gsm
+libdata/asterisk/sounds/en/screen-callee-options.gsm
+libdata/asterisk/sounds/en/seattle.gsm
+libdata/asterisk/sounds/en/second.gsm
+libdata/asterisk/sounds/en/seconds.gsm
+libdata/asterisk/sounds/en/secretary.gsm
+libdata/asterisk/sounds/en/security.gsm
+libdata/asterisk/sounds/en/self-destruct-in.gsm
+libdata/asterisk/sounds/en/self-destruct.gsm
+libdata/asterisk/sounds/en/sendhelp.gsm
+libdata/asterisk/sounds/en/server.gsm
+libdata/asterisk/sounds/en/service-not-implemented.gsm
+libdata/asterisk/sounds/en/service.gsm
+libdata/asterisk/sounds/en/seventeenth.gsm
+libdata/asterisk/sounds/en/seventh.gsm
+libdata/asterisk/sounds/en/seventieth.gsm
+libdata/asterisk/sounds/en/severe.gsm
+libdata/asterisk/sounds/en/shall-i-try-again.gsm
+libdata/asterisk/sounds/en/shiny-brass-lamp.gsm
+libdata/asterisk/sounds/en/shipping.gsm
+libdata/asterisk/sounds/en/shop.gsm
+libdata/asterisk/sounds/en/show-office.gsm
+libdata/asterisk/sounds/en/sighted.gsm
+libdata/asterisk/sounds/en/silence/1.gsm
+libdata/asterisk/sounds/en/silence/10.gsm
+libdata/asterisk/sounds/en/silence/2.gsm
+libdata/asterisk/sounds/en/silence/3.gsm
+libdata/asterisk/sounds/en/silence/4.gsm
+libdata/asterisk/sounds/en/silence/5.gsm
+libdata/asterisk/sounds/en/silence/6.gsm
+libdata/asterisk/sounds/en/silence/7.gsm
+libdata/asterisk/sounds/en/silence/8.gsm
+libdata/asterisk/sounds/en/silence/9.gsm
+libdata/asterisk/sounds/en/simplex.gsm
+libdata/asterisk/sounds/en/simul-call-limit-reached.gsm
+libdata/asterisk/sounds/en/sixteenth.gsm
+libdata/asterisk/sounds/en/sixth.gsm
+libdata/asterisk/sounds/en/sixtieth.gsm
+libdata/asterisk/sounds/en/sleet.gsm
+libdata/asterisk/sounds/en/sleeting.gsm
+libdata/asterisk/sounds/en/slow.gsm
+libdata/asterisk/sounds/en/slowly.gsm
+libdata/asterisk/sounds/en/snow.gsm
+libdata/asterisk/sounds/en/snowing.gsm
+libdata/asterisk/sounds/en/snowy.gsm
+libdata/asterisk/sounds/en/software.gsm
+libdata/asterisk/sounds/en/someone-you-trust1.gsm
+libdata/asterisk/sounds/en/someone-you-trust2.gsm
+libdata/asterisk/sounds/en/someone-you-trust3.gsm
+libdata/asterisk/sounds/en/something-terribly-wrong.gsm
+libdata/asterisk/sounds/en/sorry-cant-let-you-do-that.gsm
+libdata/asterisk/sounds/en/sorry-cant-let-you-do-that2.gsm
+libdata/asterisk/sounds/en/sorry-cant-let-you-do-that3.gsm
+libdata/asterisk/sounds/en/sorry-mailbox-full.gsm
+libdata/asterisk/sounds/en/sorry-youre-having-problems.gsm
+libdata/asterisk/sounds/en/sorry.gsm
+libdata/asterisk/sounds/en/sorry2.gsm
+libdata/asterisk/sounds/en/sorry_caller_number.gsm
+libdata/asterisk/sounds/en/sorry_didnt_get.gsm
+libdata/asterisk/sounds/en/sorry_didnt_quite_get.gsm
+libdata/asterisk/sounds/en/sorry_login_incorrect.gsm
+libdata/asterisk/sounds/en/sorry_missed.gsm
+libdata/asterisk/sounds/en/sorry_no_messages.gsm
+libdata/asterisk/sounds/en/sorrydave.gsm
+libdata/asterisk/sounds/en/south-carolina.gsm
+libdata/asterisk/sounds/en/south-dakota.gsm
+libdata/asterisk/sounds/en/south.gsm
+libdata/asterisk/sounds/en/southerly.gsm
+libdata/asterisk/sounds/en/spam.gsm
+libdata/asterisk/sounds/en/spam2.gsm
+libdata/asterisk/sounds/en/speak-louder-into-phone.gsm
+libdata/asterisk/sounds/en/speak-louder.gsm
+libdata/asterisk/sounds/en/speak-to-the-operator.gsm
+libdata/asterisk/sounds/en/speed-dial-empty.gsm
+libdata/asterisk/sounds/en/speed-dial.gsm
+libdata/asterisk/sounds/en/speed.gsm
+libdata/asterisk/sounds/en/splat.gsm
+libdata/asterisk/sounds/en/spy-agent.gsm
+libdata/asterisk/sounds/en/spy-console.gsm
+libdata/asterisk/sounds/en/spy-dahdi.gsm
+libdata/asterisk/sounds/en/spy-h323.gsm
+libdata/asterisk/sounds/en/spy-iax.gsm
+libdata/asterisk/sounds/en/spy-iax2.gsm
+libdata/asterisk/sounds/en/spy-jingle.gsm
+libdata/asterisk/sounds/en/spy-local.gsm
+libdata/asterisk/sounds/en/spy-mgcp.gsm
+libdata/asterisk/sounds/en/spy-misdn.gsm
+libdata/asterisk/sounds/en/spy-mobile.gsm
+libdata/asterisk/sounds/en/spy-nbs.gsm
+libdata/asterisk/sounds/en/spy-sip.gsm
+libdata/asterisk/sounds/en/spy-skinny.gsm
+libdata/asterisk/sounds/en/spy-unistim.gsm
+libdata/asterisk/sounds/en/spy-usbradio.gsm
+libdata/asterisk/sounds/en/spy-zap.gsm
+libdata/asterisk/sounds/en/ss-noservice.gsm
+libdata/asterisk/sounds/en/ssh.gsm
+libdata/asterisk/sounds/en/staff.gsm
+libdata/asterisk/sounds/en/staffing.gsm
+libdata/asterisk/sounds/en/standard.gsm
+libdata/asterisk/sounds/en/star-for-menu-again.gsm
+libdata/asterisk/sounds/en/starting-with-either.gsm
+libdata/asterisk/sounds/en/station.gsm
+libdata/asterisk/sounds/en/status.gsm
+libdata/asterisk/sounds/en/step-in-stream.gsm
+libdata/asterisk/sounds/en/sterling.gsm
+libdata/asterisk/sounds/en/still_on_phone.gsm
+libdata/asterisk/sounds/en/store-accounting.gsm
+libdata/asterisk/sounds/en/storm.gsm
+libdata/asterisk/sounds/en/sun.gsm
+libdata/asterisk/sounds/en/sunny.gsm
+libdata/asterisk/sounds/en/support.gsm
+libdata/asterisk/sounds/en/sure_help.gsm
+libdata/asterisk/sounds/en/swap.gsm
+libdata/asterisk/sounds/en/system-crashed.gsm
+libdata/asterisk/sounds/en/system-status-msg.gsm
+libdata/asterisk/sounds/en/system.gsm
+libdata/asterisk/sounds/en/systems.gsm
+libdata/asterisk/sounds/en/talkin_me.gsm
+libdata/asterisk/sounds/en/talking-to-myself.gsm
+libdata/asterisk/sounds/en/target-attendant.gsm
+libdata/asterisk/sounds/en/tcp.gsm
+libdata/asterisk/sounds/en/technical-support.gsm
+libdata/asterisk/sounds/en/telemarketercalling.gsm
+libdata/asterisk/sounds/en/telephone-in-your-pocket.gsm
+libdata/asterisk/sounds/en/telephone-in-your-pocket2.gsm
+libdata/asterisk/sounds/en/telephone-number.gsm
+libdata/asterisk/sounds/en/telesales.gsm
+libdata/asterisk/sounds/en/teletubbie-murder.gsm
+libdata/asterisk/sounds/en/telnet.gsm
+libdata/asterisk/sounds/en/temp-disconnected.gsm
+libdata/asterisk/sounds/en/temperature.gsm
+libdata/asterisk/sounds/en/tennessee.gsm
+libdata/asterisk/sounds/en/tenth.gsm
+libdata/asterisk/sounds/en/terabits.gsm
+libdata/asterisk/sounds/en/terabytes.gsm
+libdata/asterisk/sounds/en/terminated.gsm
+libdata/asterisk/sounds/en/terminating.gsm
+libdata/asterisk/sounds/en/test-tones-follow.gsm
+libdata/asterisk/sounds/en/texas.gsm
+libdata/asterisk/sounds/en/thank-you-cooperation.gsm
+libdata/asterisk/sounds/en/thank-you-for-calling.gsm
+libdata/asterisk/sounds/en/thank_you_calling.gsm
+libdata/asterisk/sounds/en/thanks-annoyance.gsm
+libdata/asterisk/sounds/en/thanks-for-calling-today.gsm
+libdata/asterisk/sounds/en/thanks-for-using.gsm
+libdata/asterisk/sounds/en/that-is-not-rec-phn-num.gsm
+libdata/asterisk/sounds/en/that-number.gsm
+libdata/asterisk/sounds/en/that-tickles.gsm
+libdata/asterisk/sounds/en/that-you-require.gsm
+libdata/asterisk/sounds/en/the-mailbox.gsm
+libdata/asterisk/sounds/en/the-monkeys-twice.gsm
+libdata/asterisk/sounds/en/the-new-number-is.gsm
+libdata/asterisk/sounds/en/the-next.gsm
+libdata/asterisk/sounds/en/the-num-i-have-is.gsm
+libdata/asterisk/sounds/en/the-number-u-dialed.gsm
+libdata/asterisk/sounds/en/the-party-you-are-calling.gsm
+libdata/asterisk/sounds/en/the-weather-at.gsm
+libdata/asterisk/sounds/en/then-press-pound.gsm
+libdata/asterisk/sounds/en/there-are.gsm
+libdata/asterisk/sounds/en/there-is-no-customer-support.gsm
+libdata/asterisk/sounds/en/these-are-currently.gsm
+libdata/asterisk/sounds/en/third.gsm
+libdata/asterisk/sounds/en/thirteenth.gsm
+libdata/asterisk/sounds/en/thirtieth.gsm
+libdata/asterisk/sounds/en/this-call-may-be-monitored-or-recorded.gsm
+libdata/asterisk/sounds/en/this-call-may-be.gsm
+libdata/asterisk/sounds/en/this-call-will-cost.gsm
+libdata/asterisk/sounds/en/this-call-will-end-in.gsm
+libdata/asterisk/sounds/en/this-is-the-voice-mail-system.gsm
+libdata/asterisk/sounds/en/this-is-yr-wakeup-call.gsm
+libdata/asterisk/sounds/en/this.gsm
+libdata/asterisk/sounds/en/thnk-u-for-patience.gsm
+libdata/asterisk/sounds/en/thousandth.gsm
+libdata/asterisk/sounds/en/through.gsm
+libdata/asterisk/sounds/en/thunderstorm.gsm
+libdata/asterisk/sounds/en/tide.gsm
+libdata/asterisk/sounds/en/time.gsm
+libdata/asterisk/sounds/en/times.gsm
+libdata/asterisk/sounds/en/timewarp.gsm
+libdata/asterisk/sounds/en/to-accept-recording.gsm
+libdata/asterisk/sounds/en/to-be-called-back.gsm
+libdata/asterisk/sounds/en/to-blklist-last-caller.gsm
+libdata/asterisk/sounds/en/to-blklist-last-num.gsm
+libdata/asterisk/sounds/en/to-call-num-press.gsm
+libdata/asterisk/sounds/en/to-call-prson-w-sent-msg.gsm
+libdata/asterisk/sounds/en/to-call-this-number.gsm
+libdata/asterisk/sounds/en/to-cancel-this-msg.gsm
+libdata/asterisk/sounds/en/to-cancel-wakeup.gsm
+libdata/asterisk/sounds/en/to-change-exp-date.gsm
+libdata/asterisk/sounds/en/to-change-your-pin-number.gsm
+libdata/asterisk/sounds/en/to-collect-voicemail.gsm
+libdata/asterisk/sounds/en/to-compose-a-message.gsm
+libdata/asterisk/sounds/en/to-confirm-wakeup.gsm
+libdata/asterisk/sounds/en/to-dial-by-name-press.gsm
+libdata/asterisk/sounds/en/to-dial-by-name.gsm
+libdata/asterisk/sounds/en/to-enter-a-diff-number.gsm
+libdata/asterisk/sounds/en/to-enter-a-number.gsm
+libdata/asterisk/sounds/en/to-erase-yr-temp-grtg.gsm
+libdata/asterisk/sounds/en/to-extension.gsm
+libdata/asterisk/sounds/en/to-hang-up-2.gsm
+libdata/asterisk/sounds/en/to-hang-up.gsm
+libdata/asterisk/sounds/en/to-hear-callerid.gsm
+libdata/asterisk/sounds/en/to-hear-menu-again.gsm
+libdata/asterisk/sounds/en/to-hear-msg-again.gsm
+libdata/asterisk/sounds/en/to-hear-msg-envelope.gsm
+libdata/asterisk/sounds/en/to-hear-net-status.gsm
+libdata/asterisk/sounds/en/to-hear-weather-status.gsm
+libdata/asterisk/sounds/en/to-hear-your-account-balance.gsm
+libdata/asterisk/sounds/en/to-join-a-meeting.gsm
+libdata/asterisk/sounds/en/to-leave-message-for.gsm
+libdata/asterisk/sounds/en/to-listen-to-it.gsm
+libdata/asterisk/sounds/en/to-log-in-to-voice-mail.gsm
+libdata/asterisk/sounds/en/to-place-outgoing-call.gsm
+libdata/asterisk/sounds/en/to-reach-first-rep.gsm
+libdata/asterisk/sounds/en/to-reach-operator.gsm
+libdata/asterisk/sounds/en/to-rec-yr-temp-grtg.gsm
+libdata/asterisk/sounds/en/to-record-call.gsm
+libdata/asterisk/sounds/en/to-redial-the-last-number-you-called.gsm
+libdata/asterisk/sounds/en/to-report-emergency.gsm
+libdata/asterisk/sounds/en/to-report-system-network-down.gsm
+libdata/asterisk/sounds/en/to-rerecord-announce.gsm
+libdata/asterisk/sounds/en/to-rerecord-it.gsm
+libdata/asterisk/sounds/en/to-rerecord-yr-message.gsm
+libdata/asterisk/sounds/en/to-rmv-num-blklist.gsm
+libdata/asterisk/sounds/en/to-rqst-wakeup-call.gsm
+libdata/asterisk/sounds/en/to-send-a-reply.gsm
+libdata/asterisk/sounds/en/to-snooze-for.gsm
+libdata/asterisk/sounds/en/to-use-def-attendant.gsm
+libdata/asterisk/sounds/en/tomorrow-night.gsm
+libdata/asterisk/sounds/en/tone_time.gsm
+libdata/asterisk/sounds/en/tones-that-follow-are-for-the-deaf.gsm
+libdata/asterisk/sounds/en/tonight.gsm
+libdata/asterisk/sounds/en/too-low.gsm
+libdata/asterisk/sounds/en/tornado.gsm
+libdata/asterisk/sounds/en/touchtone1.gsm
+libdata/asterisk/sounds/en/touchtone2.gsm
+libdata/asterisk/sounds/en/touchtone3.gsm
+libdata/asterisk/sounds/en/towards.gsm
+libdata/asterisk/sounds/en/trading-desk.gsm
+libdata/asterisk/sounds/en/traffic.gsm
+libdata/asterisk/sounds/en/training.gsm
+libdata/asterisk/sounds/en/transfer.gsm
+libdata/asterisk/sounds/en/transfer_to_agent.gsm
+libdata/asterisk/sounds/en/transportation.gsm
+libdata/asterisk/sounds/en/travel.gsm
+libdata/asterisk/sounds/en/treasury.gsm
+libdata/asterisk/sounds/en/tt-allbusy.gsm
+libdata/asterisk/sounds/en/tt-codezone.gsm
+libdata/asterisk/sounds/en/tt-codezone_MIXDOWN.gsm
+libdata/asterisk/sounds/en/tt-hangup.gsm
+libdata/asterisk/sounds/en/tt-monkeys.gsm
+libdata/asterisk/sounds/en/tt-monkeysintro.gsm
+libdata/asterisk/sounds/en/tt-monty-knights.gsm
+libdata/asterisk/sounds/en/tt-somethingwrong.gsm
+libdata/asterisk/sounds/en/tt-weasels.gsm
+libdata/asterisk/sounds/en/tucson.gsm
+libdata/asterisk/sounds/en/tulsa.gsm
+libdata/asterisk/sounds/en/turn-off-recording.gsm
+libdata/asterisk/sounds/en/turning-to.gsm
+libdata/asterisk/sounds/en/twelveth.gsm
+libdata/asterisk/sounds/en/twentieth.gsm
+libdata/asterisk/sounds/en/twisty-maze.gsm
+libdata/asterisk/sounds/en/tx-has-been-approved.gsm
+libdata/asterisk/sounds/en/typhoon.gsm
+libdata/asterisk/sounds/en/udp.gsm
+libdata/asterisk/sounds/en/uh-oh1.gsm
+libdata/asterisk/sounds/en/uh-oh2.gsm
+libdata/asterisk/sounds/en/uk.gsm
+libdata/asterisk/sounds/en/unavailable.gsm
+libdata/asterisk/sounds/en/unconditional.gsm
+libdata/asterisk/sounds/en/unicorn_blood.gsm
+libdata/asterisk/sounds/en/unicorn_blood_MIXDOWN.gsm
+libdata/asterisk/sounds/en/unidentified-no-callback.gsm
+libdata/asterisk/sounds/en/units.gsm
+libdata/asterisk/sounds/en/unix.gsm
+libdata/asterisk/sounds/en/unwelcomecall.gsm
+libdata/asterisk/sounds/en/up.gsm
+libdata/asterisk/sounds/en/uppercase.gsm
+libdata/asterisk/sounds/en/uptime.gsm
+libdata/asterisk/sounds/en/user.gsm
+libdata/asterisk/sounds/en/users.gsm
+libdata/asterisk/sounds/en/utah.gsm
+libdata/asterisk/sounds/en/variable.gsm
+libdata/asterisk/sounds/en/vermont.gsm
+libdata/asterisk/sounds/en/virginia-beach.gsm
+libdata/asterisk/sounds/en/virginia.gsm
+libdata/asterisk/sounds/en/visibility.gsm
+libdata/asterisk/sounds/en/visit-asterisk-website.gsm
+libdata/asterisk/sounds/en/vm-Cust1.gsm
+libdata/asterisk/sounds/en/vm-Cust2.gsm
+libdata/asterisk/sounds/en/vm-Cust3.gsm
+libdata/asterisk/sounds/en/vm-Cust4.gsm
+libdata/asterisk/sounds/en/vm-Cust5.gsm
+libdata/asterisk/sounds/en/vm-Family.gsm
+libdata/asterisk/sounds/en/vm-Friends.gsm
+libdata/asterisk/sounds/en/vm-INBOX.gsm
+libdata/asterisk/sounds/en/vm-Old.gsm
+libdata/asterisk/sounds/en/vm-Urgent.gsm
+libdata/asterisk/sounds/en/vm-Work.gsm
+libdata/asterisk/sounds/en/vm-advopts.gsm
+libdata/asterisk/sounds/en/vm-and.gsm
+libdata/asterisk/sounds/en/vm-calldiffnum.gsm
+libdata/asterisk/sounds/en/vm-changeto.gsm
+libdata/asterisk/sounds/en/vm-delete.gsm
+libdata/asterisk/sounds/en/vm-deleted.gsm
+libdata/asterisk/sounds/en/vm-dialout.gsm
+libdata/asterisk/sounds/en/vm-duration.gsm
+libdata/asterisk/sounds/en/vm-enter-num-to-call.gsm
+libdata/asterisk/sounds/en/vm-extension.gsm
+libdata/asterisk/sounds/en/vm-first.gsm
+libdata/asterisk/sounds/en/vm-for.gsm
+libdata/asterisk/sounds/en/vm-forward-multiple.gsm
+libdata/asterisk/sounds/en/vm-forward.gsm
+libdata/asterisk/sounds/en/vm-forwardoptions.gsm
+libdata/asterisk/sounds/en/vm-from-extension.gsm
+libdata/asterisk/sounds/en/vm-from-phonenumber.gsm
+libdata/asterisk/sounds/en/vm-from.gsm
+libdata/asterisk/sounds/en/vm-goodbye.gsm
+libdata/asterisk/sounds/en/vm-helpexit.gsm
+libdata/asterisk/sounds/en/vm-incorrect-mailbox.gsm
+libdata/asterisk/sounds/en/vm-incorrect.gsm
+libdata/asterisk/sounds/en/vm-instructions.gsm
+libdata/asterisk/sounds/en/vm-intro.gsm
+libdata/asterisk/sounds/en/vm-invalid-password.gsm
+libdata/asterisk/sounds/en/vm-invalidpassword.gsm
+libdata/asterisk/sounds/en/vm-isonphone.gsm
+libdata/asterisk/sounds/en/vm-isunavail.gsm
+libdata/asterisk/sounds/en/vm-last.gsm
+libdata/asterisk/sounds/en/vm-leavemsg.gsm
+libdata/asterisk/sounds/en/vm-login.gsm
+libdata/asterisk/sounds/en/vm-mailboxfull.gsm
+libdata/asterisk/sounds/en/vm-marked-nonurgent.gsm
+libdata/asterisk/sounds/en/vm-marked-urgent.gsm
+libdata/asterisk/sounds/en/vm-message.gsm
+libdata/asterisk/sounds/en/vm-messages.gsm
+libdata/asterisk/sounds/en/vm-minutes.gsm
+libdata/asterisk/sounds/en/vm-mismatch.gsm
+libdata/asterisk/sounds/en/vm-msgforwarded.gsm
+libdata/asterisk/sounds/en/vm-msginstruct.gsm
+libdata/asterisk/sounds/en/vm-msgsaved.gsm
+libdata/asterisk/sounds/en/vm-newpassword.gsm
+libdata/asterisk/sounds/en/vm-newuser.gsm
+libdata/asterisk/sounds/en/vm-next.gsm
+libdata/asterisk/sounds/en/vm-no.gsm
+libdata/asterisk/sounds/en/vm-nobodyavail.gsm
+libdata/asterisk/sounds/en/vm-nobox.gsm
+libdata/asterisk/sounds/en/vm-nomore.gsm
+libdata/asterisk/sounds/en/vm-nonumber.gsm
+libdata/asterisk/sounds/en/vm-num-i-have.gsm
+libdata/asterisk/sounds/en/vm-onefor-full.gsm
+libdata/asterisk/sounds/en/vm-onefor.gsm
+libdata/asterisk/sounds/en/vm-options.gsm
+libdata/asterisk/sounds/en/vm-opts-full.gsm
+libdata/asterisk/sounds/en/vm-opts.gsm
+libdata/asterisk/sounds/en/vm-passchanged.gsm
+libdata/asterisk/sounds/en/vm-password.gsm
+libdata/asterisk/sounds/en/vm-pls-try-again.gsm
+libdata/asterisk/sounds/en/vm-press.gsm
+libdata/asterisk/sounds/en/vm-prev.gsm
+libdata/asterisk/sounds/en/vm-reachoper.gsm
+libdata/asterisk/sounds/en/vm-rec-busy.gsm
+libdata/asterisk/sounds/en/vm-rec-name.gsm
+libdata/asterisk/sounds/en/vm-rec-temp.gsm
+libdata/asterisk/sounds/en/vm-rec-unv.gsm
+libdata/asterisk/sounds/en/vm-received.gsm
+libdata/asterisk/sounds/en/vm-record-prepend.gsm
+libdata/asterisk/sounds/en/vm-reenterpassword.gsm
+libdata/asterisk/sounds/en/vm-repeat.gsm
+libdata/asterisk/sounds/en/vm-review-nonurgent.gsm
+libdata/asterisk/sounds/en/vm-review-urgent.gsm
+libdata/asterisk/sounds/en/vm-review.gsm
+libdata/asterisk/sounds/en/vm-saved.gsm
+libdata/asterisk/sounds/en/vm-savedto.gsm
+libdata/asterisk/sounds/en/vm-savefolder.gsm
+libdata/asterisk/sounds/en/vm-savemessage.gsm
+libdata/asterisk/sounds/en/vm-saveoper.gsm
+libdata/asterisk/sounds/en/vm-sorry.gsm
+libdata/asterisk/sounds/en/vm-star-cancel.gsm
+libdata/asterisk/sounds/en/vm-starmain.gsm
+libdata/asterisk/sounds/en/vm-tempgreetactive.gsm
+libdata/asterisk/sounds/en/vm-tempgreeting.gsm
+libdata/asterisk/sounds/en/vm-tempgreeting2.gsm
+libdata/asterisk/sounds/en/vm-tempremoved.gsm
+libdata/asterisk/sounds/en/vm-then-pound.gsm
+libdata/asterisk/sounds/en/vm-theperson.gsm
+libdata/asterisk/sounds/en/vm-tmpexists.gsm
+libdata/asterisk/sounds/en/vm-tocallback.gsm
+libdata/asterisk/sounds/en/vm-tocallnum.gsm
+libdata/asterisk/sounds/en/vm-tocancel.gsm
+libdata/asterisk/sounds/en/vm-tocancelmsg.gsm
+libdata/asterisk/sounds/en/vm-toenternumber.gsm
+libdata/asterisk/sounds/en/vm-toforward.gsm
+libdata/asterisk/sounds/en/vm-tohearenv.gsm
+libdata/asterisk/sounds/en/vm-tomakecall.gsm
+libdata/asterisk/sounds/en/vm-tooshort.gsm
+libdata/asterisk/sounds/en/vm-toreply.gsm
+libdata/asterisk/sounds/en/vm-torerecord.gsm
+libdata/asterisk/sounds/en/vm-undelete.gsm
+libdata/asterisk/sounds/en/vm-undeleted.gsm
+libdata/asterisk/sounds/en/vm-unknown-caller.gsm
+libdata/asterisk/sounds/en/vm-whichbox.gsm
+libdata/asterisk/sounds/en/vm-youhave.gsm
+libdata/asterisk/sounds/en/voice-mail-system.gsm
+libdata/asterisk/sounds/en/wait-moment.gsm
+libdata/asterisk/sounds/en/wait-offensive-sounds.gsm
+libdata/asterisk/sounds/en/wakeup-call-cancelled.gsm
+libdata/asterisk/sounds/en/wakeup-call.gsm
+libdata/asterisk/sounds/en/wakeup-daily.gsm
+libdata/asterisk/sounds/en/wakeup-for-daily.gsm
+libdata/asterisk/sounds/en/wakeup-for-one-time.gsm
+libdata/asterisk/sounds/en/wakeup-onetime.gsm
+libdata/asterisk/sounds/en/walks-into-bar-mail.gsm
+libdata/asterisk/sounds/en/warning.gsm
+libdata/asterisk/sounds/en/was-last-seen.gsm
+libdata/asterisk/sounds/en/was.gsm
+libdata/asterisk/sounds/en/washington-dc.gsm
+libdata/asterisk/sounds/en/washington.gsm
+libdata/asterisk/sounds/en/watch.gsm
+libdata/asterisk/sounds/en/watson.gsm
+libdata/asterisk/sounds/en/we-apologize.gsm
+libdata/asterisk/sounds/en/we-dont-have-tech-support.gsm
+libdata/asterisk/sounds/en/weasels-eaten-phonesys.gsm
+libdata/asterisk/sounds/en/weather-station.gsm
+libdata/asterisk/sounds/en/weather.gsm
+libdata/asterisk/sounds/en/web.gsm
+libdata/asterisk/sounds/en/weeks.gsm
+libdata/asterisk/sounds/en/welcome.gsm
+libdata/asterisk/sounds/en/were-sorry.gsm
+libdata/asterisk/sounds/en/west-virginia.gsm
+libdata/asterisk/sounds/en/west.gsm
+libdata/asterisk/sounds/en/westerly.gsm
+libdata/asterisk/sounds/en/what-are-you-wearing.gsm
+libdata/asterisk/sounds/en/what-time-it-is.gsm
+libdata/asterisk/sounds/en/what-time-it-is2.gsm
+libdata/asterisk/sounds/en/when-dialing-this-number.gsm
+libdata/asterisk/sounds/en/who-would-you-like-to-call.gsm
+libdata/asterisk/sounds/en/whoareyou.gsm
+libdata/asterisk/sounds/en/why-no-answer-mystery.gsm
+libdata/asterisk/sounds/en/wichita.gsm
+libdata/asterisk/sounds/en/will-apply.gsm
+libdata/asterisk/sounds/en/will-expire.gsm
+libdata/asterisk/sounds/en/will-not-expire.gsm
+libdata/asterisk/sounds/en/will-reflect-charge-of.gsm
+libdata/asterisk/sounds/en/wind.gsm
+libdata/asterisk/sounds/en/windows.gsm
+libdata/asterisk/sounds/en/windy.gsm
+libdata/asterisk/sounds/en/wisconsin.gsm
+libdata/asterisk/sounds/en/wish-to-continue.gsm
+libdata/asterisk/sounds/en/wish_command_totally.gsm
+libdata/asterisk/sounds/en/with.gsm
+libdata/asterisk/sounds/en/within.gsm
+libdata/asterisk/sounds/en/woo_hoo_call_first.gsm
+libdata/asterisk/sounds/en/work.gsm
+libdata/asterisk/sounds/en/wrong-try-again-smarty.gsm
+libdata/asterisk/sounds/en/wtng-to-spk-w-rep.gsm
+libdata/asterisk/sounds/en/www-switchboard-com.gsm
+libdata/asterisk/sounds/en/wx/around.gsm
+libdata/asterisk/sounds/en/wx/barometer.gsm
+libdata/asterisk/sounds/en/wx/ceiling.gsm
+libdata/asterisk/sounds/en/wx/dew-point.gsm
+libdata/asterisk/sounds/en/wx/falling.gsm
+libdata/asterisk/sounds/en/wx/feet.gsm
+libdata/asterisk/sounds/en/wx/foot.gsm
+libdata/asterisk/sounds/en/wx/gust.gsm
+libdata/asterisk/sounds/en/wx/gusting-to.gsm
+libdata/asterisk/sounds/en/wx/gusts.gsm
+libdata/asterisk/sounds/en/wx/gusty.gsm
+libdata/asterisk/sounds/en/wx/heat-index.gsm
+libdata/asterisk/sounds/en/wx/humidity.gsm
+libdata/asterisk/sounds/en/wx/inch.gsm
+libdata/asterisk/sounds/en/wx/inches.gsm
+libdata/asterisk/sounds/en/wx/kilometer.gsm
+libdata/asterisk/sounds/en/wx/large.gsm
+libdata/asterisk/sounds/en/wx/meter.gsm
+libdata/asterisk/sounds/en/wx/mist.gsm
+libdata/asterisk/sounds/en/wx/northeast.gsm
+libdata/asterisk/sounds/en/wx/northwest.gsm
+libdata/asterisk/sounds/en/wx/percent.gsm
+libdata/asterisk/sounds/en/wx/point.gsm
+libdata/asterisk/sounds/en/wx/rising.gsm
+libdata/asterisk/sounds/en/wx/southeast.gsm
+libdata/asterisk/sounds/en/wx/southwest.gsm
+libdata/asterisk/sounds/en/wx/steady.gsm
+libdata/asterisk/sounds/en/wx/temperature.gsm
+libdata/asterisk/sounds/en/wx/wind-chill.gsm
+libdata/asterisk/sounds/en/wx/winds.gsm
+libdata/asterisk/sounds/en/wyoming.gsm
+libdata/asterisk/sounds/en/yeah.gsm
+libdata/asterisk/sounds/en/year.gsm
+libdata/asterisk/sounds/en/years.gsm
+libdata/asterisk/sounds/en/yes-dear.gsm
+libdata/asterisk/sounds/en/yes-dear2.gsm
+libdata/asterisk/sounds/en/you-are-caller-num.gsm
+libdata/asterisk/sounds/en/you-are-curr-call-num.gsm
+libdata/asterisk/sounds/en/you-can-press.gsm
+libdata/asterisk/sounds/en/you-dialed-wrong-number.gsm
+libdata/asterisk/sounds/en/you-entered.gsm
+libdata/asterisk/sounds/en/you-have-dialed.gsm
+libdata/asterisk/sounds/en/you-have-reached-a-test-number.gsm
+libdata/asterisk/sounds/en/you-have-these-options.gsm
+libdata/asterisk/sounds/en/you-must-first-dial.gsm
+libdata/asterisk/sounds/en/you-seem-impatient.gsm
+libdata/asterisk/sounds/en/you-sound-cute.gsm
+libdata/asterisk/sounds/en/you-wish-to-join.gsm
+libdata/asterisk/sounds/en/you_say_yes.gsm
+libdata/asterisk/sounds/en/your-account.gsm
+libdata/asterisk/sounds/en/your-msg-has-been-saved.gsm
+libdata/asterisk/sounds/en/your-msg-is-too-short.gsm
+libdata/asterisk/sounds/en/your-notifications.gsm
+libdata/asterisk/sounds/en/your-req-notification.gsm
+libdata/asterisk/sounds/en/your-temp-greeting.gsm
+libdata/asterisk/sounds/en/your.gsm
+libdata/asterisk/sounds/en/yourcallisimportant.gsm
+libdata/asterisk/sounds/en/yourcallisimpotent.gsm
+libdata/asterisk/sounds/en/zip-code.gsm
+libdata/asterisk/sounds/en/zombies.gsm
+libdata/asterisk/static-http/ajamdemo.html
+libdata/asterisk/static-http/appdocsxml.xslt
+libdata/asterisk/static-http/astman.css
+libdata/asterisk/static-http/astman.js
+libdata/asterisk/static-http/core-en_US.xml
+libdata/asterisk/static-http/mantest.html
+libdata/asterisk/static-http/prototype.js
+libexec/agi-bin/agi-test.agi
+libexec/agi-bin/eagi-sphinx-test
+libexec/agi-bin/eagi-test
+libexec/agi-bin/jukebox.agi
+${PLIST.webvmail}libexec/cgi-bin/vmail
+man/man8/astdb2bdb.8
+man/man8/astdb2sqlite3.8
+man/man8/asterisk.8
+man/man8/astgenkey.8
+man/man8/autosupport.8
+man/man8/safe_asterisk.8
+sbin/astcanary
+sbin/astdb2bdb
+sbin/astdb2sqlite3
+sbin/asterisk
+sbin/astgenkey
+sbin/astversion
+sbin/autosupport
+sbin/rasterisk
+sbin/safe_asterisk
+share/doc/asterisk/BUGS
+share/doc/asterisk/CHANGES
+share/doc/asterisk/COPYING
+share/doc/asterisk/CREDITS
+share/doc/asterisk/ChangeLog-21.0.0.md
+share/doc/asterisk/ChangeLog-21.0.1.md
+share/doc/asterisk/ChangeLog-21.0.2.md
+share/doc/asterisk/ChangeLog-21.1.0.md
+share/doc/asterisk/ChangeLog-${PKGVERSION}.md
+share/doc/asterisk/IAX2-security.pdf
+share/doc/asterisk/IAX2-security.txt
+share/doc/asterisk/LICENSE
+share/doc/asterisk/README-SERIOUSLY.bestpractices.md
+share/doc/asterisk/README.md
+share/doc/asterisk/README.txt
+share/doc/asterisk/SECURITY.md
+share/doc/asterisk/Zaptel-to-DAHDI.txt
+share/examples/asterisk/acl.conf
+share/examples/asterisk/adsi.conf
+share/examples/asterisk/aeap.conf
+share/examples/asterisk/agents.conf
+share/examples/asterisk/alarmreceiver.conf
+share/examples/asterisk/amd.conf
+share/examples/asterisk/app_skel.conf
+share/examples/asterisk/ari.conf
+share/examples/asterisk/ast_debug_tools.conf
+share/examples/asterisk/asterisk.adsi
+share/examples/asterisk/asterisk.conf
+share/examples/asterisk/calendar.conf
+share/examples/asterisk/ccss.conf
+share/examples/asterisk/cdr.conf
+share/examples/asterisk/cdr_adaptive_odbc.conf
+share/examples/asterisk/cdr_beanstalkd.conf
+share/examples/asterisk/cdr_custom.conf
+share/examples/asterisk/cdr_manager.conf
+share/examples/asterisk/cdr_odbc.conf
+share/examples/asterisk/cdr_pgsql.conf
+share/examples/asterisk/cdr_sqlite3_custom.conf
+share/examples/asterisk/cdr_tds.conf
+share/examples/asterisk/cel.conf
+share/examples/asterisk/cel_beanstalkd.conf
+share/examples/asterisk/cel_custom.conf
+share/examples/asterisk/cel_odbc.conf
+share/examples/asterisk/cel_pgsql.conf
+share/examples/asterisk/cel_sqlite3_custom.conf
+share/examples/asterisk/cel_tds.conf
+share/examples/asterisk/chan_dahdi.conf
+share/examples/asterisk/chan_mobile.conf
+share/examples/asterisk/cli.conf
+share/examples/asterisk/cli_aliases.conf
+share/examples/asterisk/cli_permissions.conf
+share/examples/asterisk/codecs.conf
+share/examples/asterisk/confbridge.conf
+share/examples/asterisk/config_test.conf
+share/examples/asterisk/console.conf
+share/examples/asterisk/dbsep.conf
+share/examples/asterisk/dnsmgr.conf
+share/examples/asterisk/dsp.conf
+share/examples/asterisk/dundi.conf
+share/examples/asterisk/enum.conf
+share/examples/asterisk/extconfig.conf
+share/examples/asterisk/extensions.ael
+share/examples/asterisk/extensions.conf
+share/examples/asterisk/extensions.lua
+share/examples/asterisk/extensions_minivm.conf
+share/examples/asterisk/features.conf
+share/examples/asterisk/festival.conf
+share/examples/asterisk/followme.conf
+share/examples/asterisk/func_odbc.conf
+share/examples/asterisk/geolocation.conf
+share/examples/asterisk/hep.conf
+share/examples/asterisk/http.conf
+share/examples/asterisk/iax.conf
+share/examples/asterisk/iaxprov.conf
+share/examples/asterisk/indications.conf
+share/examples/asterisk/logger.conf
+share/examples/asterisk/manager.conf
+share/examples/asterisk/meetme.conf
+share/examples/asterisk/minivm.conf
+share/examples/asterisk/modules.conf
+share/examples/asterisk/motif.conf
+share/examples/asterisk/musiconhold.conf
+share/examples/asterisk/ooh323.conf
+share/examples/asterisk/phoneprov.conf
+share/examples/asterisk/pjproject.conf
+share/examples/asterisk/pjsip.conf
+share/examples/asterisk/pjsip_notify.conf
+share/examples/asterisk/pjsip_wizard.conf
+share/examples/asterisk/prometheus.conf
+share/examples/asterisk/queuerules.conf
+share/examples/asterisk/queues.conf
+share/examples/asterisk/res_config_mysql.conf
+share/examples/asterisk/res_config_odbc.conf
+share/examples/asterisk/res_config_sqlite3.conf
+share/examples/asterisk/res_corosync.conf
+share/examples/asterisk/res_curl.conf
+share/examples/asterisk/res_fax.conf
+share/examples/asterisk/res_http_media_cache.conf
+share/examples/asterisk/res_ldap.conf
+share/examples/asterisk/res_odbc.conf
+share/examples/asterisk/res_parking.conf
+share/examples/asterisk/res_pgsql.conf
+share/examples/asterisk/res_snmp.conf
+share/examples/asterisk/res_stun_monitor.conf
+share/examples/asterisk/resolver_unbound.conf
+share/examples/asterisk/rtp.conf
+share/examples/asterisk/say.conf
+share/examples/asterisk/sla.conf
+share/examples/asterisk/smdi.conf
+share/examples/asterisk/sorcery.conf
+share/examples/asterisk/ss7.timers
+share/examples/asterisk/stasis.conf
+share/examples/asterisk/statsd.conf
+share/examples/asterisk/stir_shaken.conf
+share/examples/asterisk/telcordia-1.adsi
+share/examples/asterisk/test_sorcery.conf
+share/examples/asterisk/udptl.conf
+share/examples/asterisk/unistim.conf
+share/examples/asterisk/users.conf
+share/examples/asterisk/voicemail.conf
+share/examples/asterisk/xmpp.conf
+${PLIST.webvmail}share/httpd/htdocs/_asterisk/animlogo.gif
+${PLIST.webvmail}share/httpd/htdocs/_asterisk/play.gif
+@pkgdir libdata/asterisk/third-party/pjproject
+@pkgdir libdata/asterisk/keys/stir_shaken
+@pkgdir libdata/asterisk/keys/stir_shaken/cache
+@pkgdir libdata/asterisk/firmware/iax
+@pkgdir libdata/asterisk/documentation/thirdparty
Index: pkgsrc/comms/asterisk21/distinfo
diff -u /dev/null pkgsrc/comms/asterisk21/distinfo:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/distinfo    Mon Apr  8 03:20:06 2024
@@ -0,0 +1,110 @@
+$NetBSD: distinfo,v 1.1 2024/04/08 03:20:06 jnemeth Exp $
+
+BLAKE2s (asterisk-21.2.0/asterisk-21.2.0.tar.gz) = f96a9cdf12c25b04b55ffa1250be62358b57e1b12e96dc3c37738b2adf23590b
+SHA512 (asterisk-21.2.0/asterisk-21.2.0.tar.gz) = f6ede5da3a9f3fefa30aac2a55e3a06c9fb185f1a484cfc9b7e014ebcdf222e60cdb024b6b3f7daa1ce7a3f61c2a24c0135849ea669f086c6e86da08928536de
+Size (asterisk-21.2.0/asterisk-21.2.0.tar.gz) = 26312154 bytes
+BLAKE2s (asterisk-21.2.0/asterisk-extra-sounds-en-gsm-1.5.2.tar.gz) = 3f7e5fe212d7e7cdca14c52527a2552311ab7762c3f1464b09ddedc7c66aebde
+SHA512 (asterisk-21.2.0/asterisk-extra-sounds-en-gsm-1.5.2.tar.gz) = 3f2f7bf3d5bce3544bc013f913c352f0204a3ce96239987403eb9dce8bc87e64a61d437762323a422a87b2fad1f3bf3e7a5f3d0d340f912a1b1dbfea9479d41d
+Size (asterisk-21.2.0/asterisk-extra-sounds-en-gsm-1.5.2.tar.gz) = 4253587 bytes
+BLAKE2s (asterisk-21.2.0/pjproject-2.14.md5) = 8cbd12b39e930e684607202c7cff8036d1fa10c0070f8d5b50c1850095b8b28d
+SHA512 (asterisk-21.2.0/pjproject-2.14.md5) = ea4c33f75a0cc4afcd7a1f7fd2a53423a182ef16a7abfe2189bce0ef0e6b956c6eb4f89aeabee714dfed0616bfd8f4aa98602b1faeda1671e00ff21a150283d2
+Size (asterisk-21.2.0/pjproject-2.14.md5) = 166 bytes
+BLAKE2s (asterisk-21.2.0/pjproject-2.14.tar.bz2) = 1e76da2fa893451c66f41e5c3dd2a7594494c0852947ef2146d6b642550604d0
+SHA512 (asterisk-21.2.0/pjproject-2.14.tar.bz2) = 5b60a1033c9f09c0fbb5b132229fa99fdc103f8864a7cdeadf217ec47ff6bc784827826f595c4bc76816bc0fbf5cc6e9751cc4f6307eeecb7c7d8f5d0413d4ac
+Size (asterisk-21.2.0/pjproject-2.14.tar.bz2) = 8376462 bytes
+SHA1 (patch-Makefile) = 5cf3b6937ec23a82e4d056b91e493a36bc1089b9
+SHA1 (patch-addons_chan__ooh323.c) = 1775da7ca2129a962ed460bd1e78ba3ce6afa62c
+SHA1 (patch-apps_app__adsiprog.c) = 031139e5cd1ef6bb2afb0a74fee3d752eded0a2c
+SHA1 (patch-apps_app__chanspy.c) = 29a807909645c1ad0c8f81b6513a284b978e7c47
+SHA1 (patch-apps_app__directory.c) = 889a78123033709d28b0b805f2a379242ccd7dcc
+SHA1 (patch-apps_app__dumpchan.c) = 127ac02bdc180ad2334cd095aa6e646feb6fba10
+SHA1 (patch-apps_app__followme.c) = c6a5790b5e9b34d07dbfdd66a58e2854c8c72695
+SHA1 (patch-apps_app__minivm.c) = 22ee6ebfbe205baf0acf46ab16c94fea1750f2fb
+SHA1 (patch-apps_app__queue.c) = fdf7cf202b60e24cd9227f7e461bbd541565d602
+SHA1 (patch-apps_app__sms.c) = ad65b3cb2a30489551101f7534c691cd1155d18f
+SHA1 (patch-apps_app__voicemail.c) = bee10453a86039a99db9df644585800f347aaace
+SHA1 (patch-build__tools_make__xml__documentation) = b909cac9a847e8d0a0c30d9ee97d6d8de5f43a12
+SHA1 (patch-build__tools_mkpkgconfig) = 7fab8fcf46d9f8a3b98455674fec6307ec472b23
+SHA1 (patch-cdr_cdr__pgsql.c) = 82b002a1f5ed3b7361a98e2bffb5cea8833949b8
+SHA1 (patch-cel_cel__pgsql.c) = b280efab2b035ce60be268bac9bc8824910b2b8f
+SHA1 (patch-channels_chan__pjsip.c) = efd4cbb82133fc5ddf7de70d01c99e185c585211
+SHA1 (patch-channels_pjsip_cli__commands.c) = 01baa9d242e3af02a1f3540cfb3064ad68c71d67
+SHA1 (patch-channels_pjsip_dialplan__functions.c) = 2cf8199c4ec9d4894eb922c2703d49ecc06188ef
+SHA1 (patch-configure) = 7bb72c26abe5c362bf8e415821534b83f6241473
+SHA1 (patch-configure.ac) = b972730a2be3bf54502116f1f7e03afee76a02cc
+SHA1 (patch-contrib_scripts_vmail.cgi) = 7935ce96ea319eb19cc2ce999813eb837d5357c0
+SHA1 (patch-funcs_func__cdr.c) = 79c743df264948e5ea9e1c292012a1f6362d0c1e
+SHA1 (patch-funcs_func__channel.c) = 9d6ed8a2431fbde6879782d8228030467aabe7eb
+SHA1 (patch-funcs_func__env.c) = 9305d4dde2509f689e676295d3eb06bf5a74b3cb
+SHA1 (patch-funcs_func__pjsip__aor.c) = 9874f8d66a8afd26ae1669aa727cb5fa2a788334
+SHA1 (patch-funcs_func__pjsip__contact.c) = 9b1fa54ee31a549be40d487c650cc79d625c8092
+SHA1 (patch-funcs_func__pjsip__endpoint.c) = 263a4bdb6365bcc9f6392d25a5aef5c607e59d04
+SHA1 (patch-funcs_func__strings.c) = 08d313add57c5be822a19311fc70a7555bd63877
+SHA1 (patch-include_asterisk_autoconfig.h.in) = 23807b08b94f5cf9c2de76c2928f7ae38997d006
+SHA1 (patch-include_asterisk_lock.h) = 85418bcd20f3ed7eb0310f46f3b2d334980bdcef
+SHA1 (patch-include_asterisk_strings.h) = 9ace78a13131bcb411eda79a98264b5cfcc7789c
+SHA1 (patch-main_Makefile) = e3b5d261fd15ffd23d81060ff3aafba6b0300e7c
+SHA1 (patch-main_acl.c) = 06a9d247b19d648e9ff54ac2a234dc8ac8c023bb
+SHA1 (patch-main_app.c) = 1c12bb207dcb0060017d63ba4f11fcf63d60a45e
+SHA1 (patch-main_ast__expr2.c) = bad644eb956645e889344810ec315afd430853be
+SHA1 (patch-main_ast__expr2.y) = 56ac74b5a3ae47bd5bec798e549ec43bd085e0e8
+SHA1 (patch-main_asterisk.c) = 1262d792f330fe8a1bb1d1f7ba51bc502d65be42
+SHA1 (patch-main_astmm.c) = 26a98d6fbb567ae619041ebd01a31349a847deab
+SHA1 (patch-main_bridge__basic.c) = b48627e563e20544017fdfcfb4559e868badf41d
+SHA1 (patch-main_bridge__channel.c) = 72dafc04521fa02e8456c09d5c9be4789d8ac918
+SHA1 (patch-main_callerid.c) = 0ea1b3df8aaf3969fcd9e06055c8e6184d50d3d3
+SHA1 (patch-main_cdr.c) = 540fbdb354aba100fa37392b879b92a85d1d8620
+SHA1 (patch-main_cel.c) = 22fa21db8e0afa0958d34014f52e2c4fe9c73ba2
+SHA1 (patch-main_cli.c) = ee72bcaac7dce397354cbc09af4ed7441dbb4650
+SHA1 (patch-main_config.c) = 0647c59c4be846e7a9f6d523fbc93c54dc45b664
+SHA1 (patch-main_conversions.c) = a516ef4f706fabbd250f66a3159825a2a6085344
+SHA1 (patch-main_dns__naptr.c) = 4fa3fe5d2acf7bcd84ca2044280c644e4bd15d7f
+SHA1 (patch-main_enum.c) = c5f620297cf98f95ce74aa0d98eddc697946a77b
+SHA1 (patch-main_features.c) = 6e50ea4c6ee26f56edca22611aeed44787459968
+SHA1 (patch-main_http.c) = b36f1f3f0da25456a17888d34ea2bf7b61c1acf4
+SHA1 (patch-main_indications.c) = 511b4c270e4a4a71517109f959121777caf2aa36
+SHA1 (patch-main_logger.c) = 321a52b3015af85ea13055953cec5a5d9da05ec8
+SHA1 (patch-main_manager.c) = 2f88c51f4ca62985a1824efd60a39542925adf95
+SHA1 (patch-main_pbx.c) = 8e7ced268edb29238f96418e8b21456364c4ae1f
+SHA1 (patch-main_pbx__builtins.c) = 3e5ede8a62821fda498f2bea94af386aca01798c
+SHA1 (patch-main_pbx__timing.c) = a4657330086c5b0e8fd271d5676fb897badea452
+SHA1 (patch-main_sched.c) = 4219ac1561e8c4fbc5b1facdf38b3e8b764d5def
+SHA1 (patch-main_stdtime_localtime.c) = 1e3c62d70eab62c46ac29e03e842229cf7587d2b
+SHA1 (patch-main_taskprocessor.c) = f90805bd78fd4096beb9ee1cf9c794c50b87481a
+SHA1 (patch-main_tdd.c) = 9f525971938dd4f222622cb3e78a35822bd08389
+SHA1 (patch-main_test.c) = f38b370cdb5788304e02c71ef05d2130ead9de98
+SHA1 (patch-main_utils.c) = ab6fb7619111f4906ff3797e6d918dd0c8f9f7e2
+SHA1 (patch-menuselect_menuselect.c) = 8bae3a2c6b8c6e7927b35bd83147a55e380efd7f
+SHA1 (patch-pbx_pbx__config.c) = cc5e6d2b383f86abfb354c9bf14fc93374fba0a3
+SHA1 (patch-pbx_pbx__dundi.c) = 1bc28ff2412da569f139f245c5223845a2f6cebe
+SHA1 (patch-res_ael_pval.c) = 8a238c78403d3098bf8be8ae266162bc05e586f3
+SHA1 (patch-res_res__calendar.c) = 45211a3baf8fbd8b201ba0167f8c56fb35728c4a
+SHA1 (patch-res_res__format__attr__celt.c) = 81d5300b9a2b33e733e30760e2c9858c87b3e554
+SHA1 (patch-res_res__format__attr__h263.c) = 4438d544ee028404e407d5ee3229c8f3536135f5
+SHA1 (patch-res_res__format__attr__ilbc.c) = f7ff1692eae46b7950665f58317f6e39607dcc01
+SHA1 (patch-res_res__format__attr__opus.c) = ba1012f111a7a996f85bbc09fec81569d2179888
+SHA1 (patch-res_res__format__attr__silk.c) = d94370f9b09c917f4d68ebfbcc995c1bef1ed675
+SHA1 (patch-res_res__format__attr__siren14.c) = 41e997886ca9f554e46f3af36e07e3aea984dd47
+SHA1 (patch-res_res__format__attr__siren7.c) = e20e288781d0530049d127731edb8d309049077d
+SHA1 (patch-res_res__format__attr__vp8.c) = 6257e281c0a29dfd3ef2613bfa5be172d399d2e0
+SHA1 (patch-res_res__hep__pjsip.c) = b0c8fed52451ec31a2c77d4abd28640631bb708c
+SHA1 (patch-res_res__limit.c) = e80f370fe5b84dcdc2f38e2137d5ed6f75ba35a4
+SHA1 (patch-res_res__musiconhold.c) = 401999cefa3805f63df33424c635ad18a7d00748
+SHA1 (patch-res_res__pjproject.c) = 0326bf12d9f798c8eae2eff4fad8b86d4bbc0589
+SHA1 (patch-res_res__pjsip__diversion.c) = b7996a43b4af395392161f75319ab499ceda7f09
+SHA1 (patch-res_res__pjsip_pjsip__configuration.c) = 7a9f2c293ad5c8d05df5cc9b304473859ee09d6f
+SHA1 (patch-res_res__xmpp.c) = 390376180d1fb11a41c16f59dd44f506006a8e5d
+SHA1 (patch-sounds_Makefile) = acc15088ae2545f2822246466bfe783b5215fc54
+SHA1 (patch-tests_test__locale.c) = f3f1edc86356f2a7b4d3493433c772e164c77f66
+SHA1 (patch-tests_test__voicemail__api.c) = c600f726136581e47cf34da2c0bb485b8a5912eb
+SHA1 (patch-third-party_pjproject_patches_0100-netbsd.patch) = fa82ca5f7340d97f9d6729734b4e698dfd26ed61
+SHA1 (patch-third-party_pjproject_patches_0110-netbsd.patch) = 52e84093814dba144f89a2f9f953465f877f1506
+SHA1 (patch-third-party_pjproject_patches_0120-netbsd.patch) = 1f6e9d9a1fb12dcf8efeff945a78cb3583f74598
+SHA1 (patch-third-party_pjproject_patches_0130-netbsd.patch) = a1ec694ba0e2ebe1e434dc77b45ad441e730998a
+SHA1 (patch-third-party_pjproject_patches_0140-netbsd.patch) = 0c18adc61339c74dfc3702b5f4428a99cb370252
+SHA1 (patch-third-party_pjproject_patches_0150-netbsd.patch) = 97c6a868df8359aa27ef009863c845731a5c03a2
+SHA1 (patch-third-party_pjproject_patches_0160-netbsd.patch) = d3b2aa29f368ae53951615030fb5648a12fb3426
+SHA1 (patch-utils_Makefile) = 30e22c5d5d740c5531d657f91f7b51fa477d8a74
+SHA1 (patch-utils_db1-ast_include_db.h) = 03b43353b7967f999ace3eb160828c530e2e8fae
+SHA1 (patch-utils_extconf.c) = f35d079c4801fe20132ff52d63d951d9e1658902
+SHA1 (patch-utils_smsq.c) = 5c4cd729f1c9cb68291c514a2e54418e9b5a47cb
Index: pkgsrc/comms/asterisk21/options.mk
diff -u /dev/null pkgsrc/comms/asterisk21/options.mk:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/options.mk  Mon Apr  8 03:20:06 2024
@@ -0,0 +1,103 @@
+# $NetBSD: options.mk,v 1.1 2024/04/08 03:20:06 jnemeth Exp $
+
+PKG_OPTIONS_VAR=               PKG_OPTIONS.asterisk
+PKG_SUPPORTED_OPTIONS=         unixodbc ilbc webvmail ldap spandsp
+PKG_SUPPORTED_OPTIONS+=                jabber speex snmp pgsql asterisk-config
+PKG_SUGGESTED_OPTIONS=         ldap jabber speex asterisk-config
+
+.include "../../mk/bsd.options.mk"
+
+PLIST_VARS+=           zaptel unixodbc webvmail ldap spandsp jabber
+PLIST_VARS+=           speex snmp pgsql srtp
+
+# Asterisk now uses DAHDI, not zaptel; not implemented yet...
+#.if !empty(PKG_OPTIONS:Mzaptel)
+## zaptel only supported under NetBSD at the moment
+#.  include "../../comms/zaptel-netbsd/buildlink3.mk"
+#PLIST.zaptel=         yes
+#.else
+#MAKE_FLAGS+=          WITHOUT_ZAPTEL=1
+#.endif
+
+.if !empty(PKG_OPTIONS:Munixodbc)
+.  include "../../databases/unixodbc/buildlink3.mk"
+.  include "../../devel/libltdl/buildlink3.mk"
+CONFIGURE_ARGS+=       --with-unixodbc
+PLIST.unixodbc=                yes
+.else
+CONFIGURE_ARGS+=       --without-unixodbc
+.endif
+
+.if !empty(PKG_OPTIONS:Mspandsp)
+.  include "../../comms/spandsp/buildlink3.mk"
+CONFIGURE_ARGS+=       --with-spandsp
+PLIST.spandsp=         yes
+.else
+CONFIGURE_ARGS+=       --without-spandsp
+.endif
+
+.if !empty(PKG_OPTIONS:Mjabber)
+.  include "../../textproc/iksemel/buildlink3.mk"
+CONFIGURE_ARGS+=       --with-iksemel=${PREFIX}
+PLIST.jabber=          yes
+.else
+CONFIGURE_ARGS+=       --without-iksemel
+.endif
+
+MAKE_FLAGS+=   GLOBAL_MAKEOPTS=${WRKSRC}/pkgsrc.makeopts
+post-configure:
+#      ${ECHO} "MENUSELECT_RES=res_mwi_external" >> ${WRKSRC}/pkgsrc.makeopts
+.if !empty(PKG_OPTIONS:Munixodbc)
+       ${ECHO} "MENUSELECT_APPS=app_voicemail_odbc" >> ${WRKSRC}/pkgsrc.makeopts
+.endif
+       ${ECHO} "MENUSELECT_AGIS=agi-test.agi eagi-test eagi-sphinx-test jukebox.agi" >> ${WRKSRC}/pkgsrc.makeopts
+       ${ECHO} "MENUSELECT_CFLAGS=-BUILD_NATIVE" >> ${WRKSRC}/pkgsrc.makeopts
+       # this is a hack to work around a bug in menuselect
+       cd ${WRKSRC} && make menuselect.makeopts
+
+.if !empty(PKG_OPTIONS:Mwebvmail)
+DEPENDS+=              p5-DBI-[0-9]*:../../databases/p5-DBI
+SUBST_CLASSES+=                webvmail
+SUBST_STAGE.webvmail=  pre-configure
+SUBST_FILES.webvmail=  contrib/scripts/vmail.cgi
+SUBST_VARS.webvmail=   ASTETCDIR
+SUBST_VARS.webvmail+=  ASTSPOOLDIR
+INSTALLATION_DIRS+=    ${PREFIX}/libexec/cgi-bin ${PREFIX}/share/httpd/htdocs
+SPECIAL_PERMS+=                ${PREFIX}/libexec/cgi-bin/vmail ${ASTERISK_USER} ${ASTERISK_GROUP} 04555
+INSTALL_TARGET+=       webvmail
+PLIST.webvmail=                yes
+.endif
+
+.if !empty(PKG_OPTIONS:Mldap)
+.include "../../databases/openldap-client/buildlink3.mk"
+PLIST.ldap=            yes
+.else
+CONFIGURE_ARGS+=       --without-ldap
+.endif
+
+.if !empty(PKG_OPTIONS:Mspeex)
+.include "../../audio/speex/buildlink3.mk"
+.include "../../audio/speexdsp/buildlink3.mk"
+CONFIGURE_ARGS+=       --with-speex
+CONFIGURE_ARGS+=       --with-speexdsp
+PLIST.speex=           yes
+.else
+CONFIGURE_ARGS+=       --without-speex
+CONFIGURE_ARGS+=       --without-speexdsp
+.endif
+
+.if !empty(PKG_OPTIONS:Msnmp)
+.include "../../net/net-snmp/buildlink3.mk"
+CONFIGURE_ARGS+=       --with-netsnmp
+PLIST.snmp=            yes
+.else
+CONFIGURE_ARGS+=       --without-netsnmp
+.endif
+
+.if !empty(PKG_OPTIONS:Mpgsql)
+.include "../../mk/pgsql.buildlink3.mk"
+CONFIGURE_ARGS+=       --with-postgres
+PLIST.pgsql=           yes
+.else
+CONFIGURE_ARGS+=       --without-postgres
+.endif

Index: pkgsrc/comms/asterisk21/files/asterisk.sh
diff -u /dev/null pkgsrc/comms/asterisk21/files/asterisk.sh:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/files/asterisk.sh   Mon Apr  8 03:20:06 2024
@@ -0,0 +1,43 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: asterisk.sh,v 1.1 2024/04/08 03:20:06 jnemeth Exp $
+#
+# PROVIDE: asterisk
+# REQUIRE: DAEMON
+# KEYWORD: shutdown
+#
+# You will need to set some variables in /etc/rc.conf to start Asterisk:
+#
+# asterisk=YES
+
+if [ -f /etc/rc.subr ]
+then
+       . /etc/rc.subr
+fi
+
+name="asterisk"
+rcvar=$name
+command="@PREFIX@/sbin/asterisk"
+pidfile=@ASTVARRUNDIR@/${name}.pid
+required_files="@PKG_SYSCONFDIR@/asterisk.conf"
+extra_commands="reload"
+start_precmd=asterisk_prestart
+
+auser="@ASTERISK_USER@"
+agroup="@ASTERISK_GROUP@"
+command_args="-U $auser -G $agroup -n"
+
+asterisk_prestart() {
+       if test ! -d @ASTVARRUNDIR@; then
+               mkdir @ASTVARRUNDIR@
+       fi
+       chown $auser:$agroup @ASTVARRUNDIR@
+       chmod 0755 @ASTVARRUNDIR@
+}
+
+stop_cmd="$command -nr -x 'core stop gracefully' >/dev/null"
+reload_cmd="$command -nr -x 'core reload' >/dev/null"
+asterisk_nice="-20"
+
+load_rc_config $name
+run_rc_command "$1"

Index: pkgsrc/comms/asterisk21/files/smf/manifest.xml
diff -u /dev/null pkgsrc/comms/asterisk21/files/smf/manifest.xml:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/files/smf/manifest.xml      Mon Apr  8 03:20:07 2024
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<service_bundle type="manifest" name="export">
+  <service name="@SMF_PREFIX@/@SMF_NAME@" type="service" version="1">
+    <create_default_instance enabled="false" />
+    <single_instance />
+    <dependency name='network' grouping='require_all' restart_on='error' type='service'>
+      <service_fmri value='svc:/milestone/network:default' />
+    </dependency>
+    <dependency name='filesystem-local' grouping='require_all' restart_on='none' type='service'>
+      <service_fmri value='svc:/system/filesystem/local:default' />
+    </dependency>
+    <method_context>
+      <method_environment>
+        <envvar name="LD_PRELOAD_32" value="/usr/lib/extendedFILE.so.1" />
+      </method_environment>
+    </method_context>
+    <exec_method type="method" name="start" exec="@PREFIX@/sbin/asterisk" timeout_seconds="60" />
+    <exec_method type="method" name="stop" exec="@PREFIX@/sbin/asterisk -nr -x 'core stop gracefully' >/dev/null" timeout_seconds="60" />
+    <exec_method type="method" name="refresh" exec="@PREFIX@/sbin/asterisk -nr -x 'core reload' >/dev/null" timeout_seconds="60" />
+    <property_group name="startd" type="framework">
+      <propval name="duration" type="astring" value="contract" />
+      <propval name="ignore_error" type="astring" value="core,signal" />
+    </property_group>
+    <property_group name="application" type="application">
+      <propval name="config_file" type="astring" value="@PKG_SYSCONFDIR@/asterisk.conf" />
+    </property_group>
+    <template>
+      <common_name>
+        <loctext xml:lang="C">Asterisk PBX</loctext>
+      </common_name>
+    </template>
+  </service>
+</service_bundle>

Index: pkgsrc/comms/asterisk21/patches/patch-Makefile
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-Makefile:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-Makefile      Mon Apr  8 03:20:07 2024
@@ -0,0 +1,125 @@
+$NetBSD: patch-Makefile,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- Makefile.orig      2021-11-02 08:53:05.000000000 +0000
++++ Makefile
+@@ -143,7 +143,7 @@ DEBUG=-g3
+ 
+ # Asterisk.conf is located in ASTETCDIR or by using the -C flag
+ # when starting Asterisk
+-ASTCONFPATH=$(ASTETCDIR)/asterisk.conf
++ASTCONFPATH=$(ASTEXAMPLEDIR)/asterisk.conf
+ AGI_DIR=$(ASTDATADIR)/agi-bin
+ 
+ # If you use Apache, you may determine by a grep 'DocumentRoot' of your httpd.conf file
+@@ -215,12 +215,6 @@ ifeq ($(AST_DEVMODE),yes)
+   endif
+ endif
+ 
+-ifeq ($(OSARCH),NetBSD)
+-  _ASTCFLAGS+=-isystem /usr/pkg/include
+-else ifneq ($(findstring BSD,$(OSARCH)),)
+-  _ASTCFLAGS+=-isystem /usr/local/include
+-endif
+-
+ ifeq ($(OSARCH),FreeBSD)
+   # -V is understood by BSD Make, not by GNU make.
+   BSDVERSION=$(shell make -V OSVERSION -f /usr/share/mk/bsd.port.subdir.mk)
+@@ -435,7 +429,6 @@ dist-clean: distclean
+ 
+ distclean: $(SUBDIRS_DIST_CLEAN) _clean
+       @$(MAKE) -C menuselect dist-clean
+-      @$(MAKE) -C sounds dist-clean
+       rm -f menuselect.makeopts makeopts menuselect-tree menuselect.makedeps
+       rm -f config.log config.status config.cache
+       rm -rf autom4te.cache
+@@ -563,7 +556,7 @@ update:
+ 
+ NEWHEADERS=$(notdir $(wildcard include/asterisk/*.h))
+ OLDHEADERS=$(filter-out $(NEWHEADERS) $(notdir $(DESTDIR)$(ASTHEADERDIR)),$(notdir $(wildcard $(DESTDIR)$(ASTHEADERDIR)/*.h)))
+-INSTALLDIRS="$(ASTLIBDIR)" "$(ASTMODDIR)" "$(ASTSBINDIR)" "$(ASTCACHEDIR)" "$(ASTETCDIR)" "$(ASTVARRUNDIR)" \
++INSTALLDIRS="$(ASTLIBDIR)" "$(ASTMODDIR)" "$(ASTSBINDIR)" "$(ASTCACHEDIR)" "$(ASTEXAMPLEDIR)" "$(ASTVARRUNDIR)" \
+       "$(ASTSPOOLDIR)" "$(ASTSPOOLDIR)/dictate" "$(ASTSPOOLDIR)/meetme" \
+       "$(ASTSPOOLDIR)/monitor" "$(ASTSPOOLDIR)/system" "$(ASTSPOOLDIR)/tmp" \
+       "$(ASTSPOOLDIR)/voicemail" "$(ASTSPOOLDIR)/recording" \
+@@ -769,7 +762,7 @@ upgrade: bininstall
+ #  (2) the extension to strip off
+ define INSTALL_CONFIGS
+       @for x in $(1)/*$(2); do \
+-              dst="$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x $(2)`"; \
++              dst="$(DESTDIR)$(ASTEXAMPLEDIR)/`$(BASENAME) $$x $(2)`"; \
+               if [ -f "$${dst}" ]; then \
+                       if [ "$(OVERWRITE)" = "y" ]; then \
+                               if cmp -s "$${dst}" "$$x" ; then \
+@@ -799,9 +792,9 @@ define INSTALL_CONFIGS
+                       -e 's|^astrundir.*$$|astrundir => $(ASTVARRUNDIR)|' \
+                       -e 's|^astlogdir.*$$|astlogdir => $(ASTLOGDIR)|' \
+                       -e 's|^astsbindir.*$$|astsbindir => $(ASTSBINDIR)|' \
+-                      "$(DESTDIR)$(ASTCONFPATH)" > "$(DESTDIR)$(ASTCONFPATH).tmp" ; \
+-              $(INSTALL) -m 644 "$(DESTDIR)$(ASTCONFPATH).tmp" "$(DESTDIR)$(ASTCONFPATH)" ; \
+-              rm -f "$(DESTDIR)$(ASTCONFPATH).tmp" ; \
++                      "$(DESTDIR)$(ASTEXAMPLEDIR)/asterisk.conf" > "$(DESTDIR)$(ASTEXAMPLEDIR)/asterisk.conf.tmp" ; \
++              $(INSTALL) -m 644 "$(DESTDIR)$(ASTEXAMPLEDIR)/asterisk.conf.tmp" "$(DESTDIR)$(ASTEXAMPLEDIR)/asterisk.conf" ; \
++              rm -f "$(DESTDIR)$(ASTEXAMPLEDIR)/asterisk.conf.tmp" ; \
+       fi
+ endef
+ 
+@@ -826,15 +819,15 @@ install-configs:
+ # XXX why *.adsi is installed first ?
+ adsi:
+       @echo Installing adsi config files...
+-      $(INSTALL) -d "$(DESTDIR)$(ASTETCDIR)"
++      $(INSTALL) -d "$(DESTDIR)$(ASTEXAMPLEDIR)"
+       @for x in configs/samples/*.adsi; do \
+-              dst="$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x`" ; \
++              dst="$(DESTDIR)$(ASTEXAMPLEDIR)/`$(BASENAME) $$x`" ; \
+               if [ -f "$${dst}" ] ; then \
+                       echo "Overwriting $$x" ; \
+               else \
+                       echo "Installing $$x" ; \
+               fi ; \
+-              $(INSTALL) -m 644 "$$x" "$(DESTDIR)$(ASTETCDIR)/`$(BASENAME) $$x`" ; \
++              $(INSTALL) -m 644 "$$x" "$(DESTDIR)$(ASTEXAMPLEDIR)/`$(BASENAME) $$x`" ; \
+       done
+ 
+ samples: adsi
+@@ -867,7 +860,7 @@ basic-pbx:
+ webvmail:
+       @[ -d "$(DESTDIR)$(HTTP_DOCSDIR)/" ] || ( printf "http docs directory not found.\nUpdate assignment of variable HTTP_DOCSDIR in Makefile!\n" && exit 1 )
+       @[ -d "$(DESTDIR)$(HTTP_CGIDIR)" ] || ( printf "cgi-bin directory not found.\nUpdate assignment of variable HTTP_CGIDIR in Makefile!\n" && exit 1 )
+-      $(INSTALL) -m 4755 contrib/scripts/vmail.cgi "$(DESTDIR)$(HTTP_CGIDIR)/vmail.cgi"
++      $(INSTALL) contrib/scripts/vmail.cgi "$(DESTDIR)$(HTTP_CGIDIR)/vmail"
+       $(INSTALL) -d "$(DESTDIR)$(HTTP_DOCSDIR)/_asterisk"
+       for x in images/*.gif; do \
+               $(INSTALL) -m 644 $$x "$(DESTDIR)$(HTTP_DOCSDIR)/_asterisk/"; \
+@@ -917,11 +910,11 @@ endif
+ endif
+ 
+ install-logrotate:
+-      if [ ! -d "$(DESTDIR)$(ASTETCDIR)/../logrotate.d" ]; then \
+-              $(INSTALL) -d "$(DESTDIR)$(ASTETCDIR)/../logrotate.d" ; \
++      if [ ! -d "$(DESTDIR)$(ASTEXAMPLEDIR)/../logrotate.d" ]; then \
++              $(INSTALL) -d "$(DESTDIR)$(ASTEXAMPLEDIR)/../logrotate.d" ; \
+       fi
+       sed 's#__LOGDIR__#$(ASTLOGDIR)#g' < contrib/scripts/asterisk.logrotate | sed 's#__SBINDIR__#$(ASTSBINDIR)#g' > contrib/scripts/asterisk.logrotate.tmp
+-      $(INSTALL) -m 0644 contrib/scripts/asterisk.logrotate.tmp "$(DESTDIR)$(ASTETCDIR)/../logrotate.d/asterisk"
++      $(INSTALL) -m 0644 contrib/scripts/asterisk.logrotate.tmp "$(DESTDIR)$(ASTEXAMPLEDIR)/../logrotate.d/asterisk"
+       rm -f contrib/scripts/asterisk.logrotate.tmp
+ 
+ config:
+@@ -1048,7 +1041,7 @@ uninstall-all: _uninstall uninstall-head
+       rm -rf "$(DESTDIR)$(ASTVARLIBDIR)"
+       rm -rf "$(DESTDIR)$(ASTDATADIR)"
+       rm -rf "$(DESTDIR)$(ASTSPOOLDIR)"
+-      rm -rf "$(DESTDIR)$(ASTETCDIR)"
++      rm -rf "$(DESTDIR)$(ASTEXAMPLEDIR)"
+       rm -rf "$(DESTDIR)$(ASTLOGDIR)"
+       rm -rf "$(DESTDIR)$(ASTCACHEDIR)"
+ 
+@@ -1139,6 +1132,7 @@ check-alembic: makeopts
+ .PHONY: install-configs
+ .PHONY: install-headers
+ .PHONY: menuselect
++.PHONY: menuselect.makeopts
+ .PHONY: main
+ .PHONY: sounds
+ .PHONY: clean
Index: pkgsrc/comms/asterisk21/patches/patch-addons_chan__ooh323.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-addons_chan__ooh323.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-addons_chan__ooh323.c Mon Apr  8 03:20:07 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-addons_chan__ooh323.c,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- addons/chan_ooh323.c.orig  2018-05-01 20:12:26.000000000 +0000
++++ addons/chan_ooh323.c
+@@ -4035,7 +4035,7 @@ static void *do_monitor(void *data)
+                               h323->lastrtprx + h323->rtptimeout < t) {
+                               if (!ast_channel_trylock(h323->owner)) {
+                                       ast_softhangup_nolock(h323->owner, AST_SOFTHANGUP_DEV);
+-                                      ast_log(LOG_NOTICE, "Disconnecting call '%s' for lack of RTP activity in %ld seconds\n", ast_channel_name(h323->owner), (long) (t - h323->lastrtprx));
++                                      ast_log(LOG_NOTICE, "Disconnecting call '%s' for lack of RTP activity in %jd seconds\n", ast_channel_name(h323->owner), (intmax_t) (t - h323->lastrtprx));
+                                       ast_channel_unlock(h323->owner);
+                               }
+ 
Index: pkgsrc/comms/asterisk21/patches/patch-apps_app__adsiprog.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-apps_app__adsiprog.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-apps_app__adsiprog.c  Mon Apr  8 03:20:07 2024
@@ -0,0 +1,22 @@
+$NetBSD: patch-apps_app__adsiprog.c,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- apps/app_adsiprog.c.orig   2018-05-07 17:17:45.731153122 +0000
++++ apps/app_adsiprog.c
+@@ -215,7 +215,7 @@ static int process_token(void *out, char
+                       /* Convert */
+                       *((unsigned int *)out) = htonl(*((unsigned int *)out));
+               }
+-      } else if ((strlen(src) > 2) && (src[0] == '0') && (tolower(src[1]) == 'x')) {
++      } else if ((strlen(src) > 2) && (src[0] == '0') && (tolower((unsigned char)src[1]) == 'x')) {
+               if (!(argtype & ARG_NUMBER))
+                       return -1;
+               /* Hex value */
+@@ -225,7 +225,7 @@ static int process_token(void *out, char
+                       /* Convert */
+                       *((unsigned int *)out) = htonl(*((unsigned int *)out));
+               }
+-      } else if ((!ast_strlen_zero(src) && isdigit(src[0]))) {
++      } else if ((!ast_strlen_zero(src) && isdigit((unsigned char)src[0]))) {
+               if (!(argtype & ARG_NUMBER))
+                       return -1;
+               /* Hex value */
Index: pkgsrc/comms/asterisk21/patches/patch-apps_app__chanspy.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-apps_app__chanspy.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-apps_app__chanspy.c   Mon Apr  8 03:20:07 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-apps_app__chanspy.c,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- apps/app_chanspy.c.orig    2018-05-07 17:20:13.916423247 +0000
++++ apps/app_chanspy.c
+@@ -1105,7 +1105,7 @@ static int common_exec(struct ast_channe
+                               if ((ptr = strchr(peer_name, '/'))) {
+                                       *ptr++ = '\0';
+                                       for (s = peer_name; s < ptr; s++) {
+-                                              *s = tolower(*s);
++                                              *s = tolower((unsigned char)*s);
+                                       }
+                                       if ((s = strchr(ptr, '-'))) {
+                                               *s = '\0';
Index: pkgsrc/comms/asterisk21/patches/patch-apps_app__directory.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-apps_app__directory.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-apps_app__directory.c Mon Apr  8 03:20:07 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-apps_app__directory.c,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- apps/app_directory.c.orig  2018-05-07 17:19:54.317128994 +0000
++++ apps/app_directory.c
+@@ -194,7 +194,7 @@ static int compare(const char *text, con
+       }
+ 
+       while (*template) {
+-              digit = toupper(*text++);
++              digit = toupper((unsigned char)*text++);
+               switch (digit) {
+               case 0:
+                       return -1;
Index: pkgsrc/comms/asterisk21/patches/patch-apps_app__dumpchan.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-apps_app__dumpchan.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-apps_app__dumpchan.c  Mon Apr  8 03:20:07 2024
@@ -0,0 +1,22 @@
+$NetBSD: patch-apps_app__dumpchan.c,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- apps/app_dumpchan.c.orig   2015-10-09 21:48:48.000000000 +0000
++++ apps/app_dumpchan.c
+@@ -117,7 +117,7 @@ static int serialize_showchan(struct ast
+               "1stFileDescriptor=  %d\n"
+               "Framesin=           %u %s\n"
+               "Framesout=          %u %s\n"
+-              "TimetoHangup=       %ld\n"
++              "TimetoHangup=       %jd\n"
+               "ElapsedTime=        %dh%dm%ds\n"
+               "BridgeID=           %s\n"
+               "Context=            %s\n"
+@@ -155,7 +155,7 @@ static int serialize_showchan(struct ast
+               ast_channel_fd(c, 0),
+               ast_channel_fin(c) & ~DEBUGCHAN_FLAG, (ast_channel_fin(c) & DEBUGCHAN_FLAG) ? " (DEBUGGED)" : "",
+               ast_channel_fout(c) & ~DEBUGCHAN_FLAG, (ast_channel_fout(c) & DEBUGCHAN_FLAG) ? " (DEBUGGED)" : "",
+-              (long)ast_channel_whentohangup(c)->tv_sec,
++              (intmax_t)ast_channel_whentohangup(c)->tv_sec,
+               hour,
+               min,
+               sec,
Index: pkgsrc/comms/asterisk21/patches/patch-apps_app__followme.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-apps_app__followme.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-apps_app__followme.c  Mon Apr  8 03:20:07 2024
@@ -0,0 +1,22 @@
+$NetBSD: patch-apps_app__followme.c,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- apps/app_followme.c.orig   2015-10-09 21:48:48.000000000 +0000
++++ apps/app_followme.c
+@@ -380,7 +380,7 @@ static struct number *create_followme_nu
+               *tmp = '\0';
+       ast_copy_string(cur->number, buf, sizeof(cur->number));
+       cur->order = numorder;
+-      ast_debug(1, "Created a number, %s, order of , %d, with a timeout of %ld.\n", cur->number, cur->order, cur->timeout);
++      ast_debug(1, "Created a number, %s, order of , %d, with a timeout of %jd.\n", cur->number, cur->order, (intmax_t)cur->timeout);
+ 
+       return cur;
+ }
+@@ -1010,7 +1010,7 @@ static struct ast_channel *findmeexec(st
+                       break;
+               }
+ 
+-              ast_debug(2, "Number(s) %s timeout %ld\n", nm->number, nm->timeout);
++              ast_debug(2, "Number(s) %s timeout %jd\n", nm->number, (intmax_t)nm->timeout);
+ 
+               /*
+                * Put all active outgoing channels into autoservice.
Index: pkgsrc/comms/asterisk21/patches/patch-apps_app__minivm.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-apps_app__minivm.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-apps_app__minivm.c    Mon Apr  8 03:20:07 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-apps_app__minivm.c,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- apps/app_minivm.c.orig     2018-05-07 17:45:03.072823223 +0000
++++ apps/app_minivm.c
+@@ -1593,7 +1593,7 @@ static int invent_message(struct ast_cha
+ 
+               while (*i)  {
+                       ast_debug(2, "Numeric? Checking %c\n", *i);
+-                      if (!isdigit(*i)) {
++                      if (!isdigit((unsigned char)*i)) {
+                               numericusername = FALSE;
+                               break;
+                       }
Index: pkgsrc/comms/asterisk21/patches/patch-apps_app__queue.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-apps_app__queue.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-apps_app__queue.c     Mon Apr  8 03:20:07 2024
@@ -0,0 +1,132 @@
+$NetBSD: patch-apps_app__queue.c,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- apps/app_queue.c.orig      2021-03-25 17:34:21.000000000 +0000
++++ apps/app_queue.c
+@@ -5909,8 +5909,8 @@ static void queue_agent_cb(void *userdat
+       } else if (ast_channel_agent_logoff_type() == stasis_message_type(msg)) {
+               ast_queue_log("NONE", agent_blob->snapshot->base->uniqueid,
+                       ast_json_string_get(ast_json_object_get(agent_blob->blob, "agent")),
+-                      "AGENTLOGOFF", "%s|%ld", agent_blob->snapshot->base->name,
+-                      (long) ast_json_integer_get(ast_json_object_get(agent_blob->blob, "logintime")));
++                      "AGENTLOGOFF", "%s|%jd", agent_blob->snapshot->base->name,
++                      (intmax_t) ast_json_integer_get(ast_json_object_get(agent_blob->blob, "logintime")));
+       }
+ }
+ 
+@@ -7043,8 +7043,8 @@ static int try_calling(struct queue_ent 
+               /* if setinterfacevar is defined, make member variables available to the channel */
+               /* use  pbx_builtin_setvar to set a load of variables with one call */
+               if (qe->parent->setinterfacevar && interfacevar) {
+-                      ast_str_set(&interfacevar, 0, "MEMBERINTERFACE=%s,MEMBERNAME=%s,MEMBERCALLS=%d,MEMBERLASTCALL=%ld,MEMBERPENALTY=%d,MEMBERDYNAMIC=%d,MEMBERREALTIME=%d",
+-                              member->interface, member->membername, member->calls, (long)member->lastcall, member->penalty, member->dynamic, member->realtime);
++                      ast_str_set(&interfacevar, 0, "MEMBERINTERFACE=%s,MEMBERNAME=%s,MEMBERCALLS=%d,MEMBERLASTCALL=%jd,MEMBERPENALTY=%d,MEMBERDYNAMIC=%d,MEMBERREALTIME=%d",
++                              member->interface, member->membername, member->calls, (intmax_t)member->lastcall, member->penalty, member->dynamic, member->realtime);
+                       pbx_builtin_setvar_multiple(qe->chan, ast_str_buffer(interfacevar));
+                       pbx_builtin_setvar_multiple(peer, ast_str_buffer(interfacevar));
+               }
+@@ -7052,8 +7052,8 @@ static int try_calling(struct queue_ent 
+               /* if setqueueentryvar is defined, make queue entry (i.e. the caller) variables available to the channel */
+               /* use  pbx_builtin_setvar to set a load of variables with one call */
+               if (qe->parent->setqueueentryvar && interfacevar) {
+-                      ast_str_set(&interfacevar, 0, "QEHOLDTIME=%ld,QEORIGINALPOS=%d",
+-                              (long) (time(NULL) - qe->start), qe->opos);
++                      ast_str_set(&interfacevar, 0, "QEHOLDTIME=%jd,QEORIGINALPOS=%d",
++                              (intmax_t) (time(NULL) - qe->start), qe->opos);
+                       pbx_builtin_setvar_multiple(qe->chan, ast_str_buffer(interfacevar));
+                       pbx_builtin_setvar_multiple(peer, ast_str_buffer(interfacevar));
+               }
+@@ -8335,8 +8335,8 @@ static int queue_exec(struct ast_channel
+               }
+       }
+ 
+-      ast_debug(1, "queue: %s, expires: %ld, priority: %d\n",
+-              args.queuename, (long)qe.expire, prio);
++      ast_debug(1, "queue: %s, expires: %jd, priority: %d\n",
++              args.queuename, (intmax_t)qe.expire, prio);
+ 
+       qe.chan = chan;
+       qe.prio = prio;
+@@ -8402,8 +8402,8 @@ check_turns:
+                       record_abandoned(&qe);
+                       reason = QUEUE_TIMEOUT;
+                       res = 0;
+-                      ast_queue_log(args.queuename, ast_channel_uniqueid(chan),"NONE", "EXITWITHTIMEOUT", "%d|%d|%ld",
+-                              qe.pos, qe.opos, (long) (time(NULL) - qe.start));
++                      ast_queue_log(args.queuename, ast_channel_uniqueid(chan),"NONE", "EXITWITHTIMEOUT", "%d|%d|%jd",
++                              qe.pos, qe.opos, (intmax_t) (time(NULL) - qe.start));
+                       break;
+               }
+ 
+@@ -8473,7 +8473,7 @@ check_turns:
+                       record_abandoned(&qe);
+                       reason = QUEUE_TIMEOUT;
+                       res = 0;
+-                      ast_queue_log(qe.parent->name, ast_channel_uniqueid(qe.chan),"NONE", "EXITWITHTIMEOUT", "%d|%d|%ld", qe.pos, qe.opos, (long) (time(NULL) - qe.start));
++                      ast_queue_log(qe.parent->name, ast_channel_uniqueid(qe.chan),"NONE", "EXITWITHTIMEOUT", "%d|%d|%jd", qe.pos, qe.opos, (intmax_t) (time(NULL) - qe.start));
+                       break;
+               }
+ 
+@@ -8514,7 +8514,7 @@ stop:
+                       }
+               } else if (qe.valid_digits) {
+                       ast_queue_log(args.queuename, ast_channel_uniqueid(chan), "NONE", "EXITWITHKEY",
+-                              "%s|%d|%d|%ld", qe.digits, qe.pos, qe.opos, (long) (time(NULL) - qe.start));
++                              "%s|%d|%d|%jd", qe.digits, qe.pos, qe.opos, (intmax_t) (time(NULL) - qe.start));
+               }
+       }
+ 
+@@ -9871,7 +9871,7 @@ static int word_in_list(const char *list
+       const char *find, *end_find, *end_list;
+ 
+       /* strip whitespace from front */
+-      while(isspace(*list)) {
++      while(isspace((unsigned char)*list)) {
+               list++;
+       }
+ 
+@@ -9880,11 +9880,11 @@ static int word_in_list(const char *list
+               if (find != list && *(find - 1) != ' ') {
+                       list = find;
+                       /* strip word from front */
+-                      while(!isspace(*list) && *list != '\0') {
++                      while(!isspace((unsigned char)*list) && *list != '\0') {
+                               list++;
+                       }
+                       /* strip whitespace from front */
+-                      while(isspace(*list)) {
++                      while(isspace((unsigned char)*list)) {
+                               list++;
+                       }
+                       continue;
+@@ -9897,11 +9897,11 @@ static int word_in_list(const char *list
+               if (end_find == end_list || *end_find != ' ') {
+                       list = find;
+                       /* strip word from front */
+-                      while(!isspace(*list) && *list != '\0') {
++                      while(!isspace((unsigned char)*list) && *list != '\0') {
+                               list++;
+                       }
+                       /* strip whitespace from front */
+-                      while(isspace(*list)) {
++                      while(isspace((unsigned char)*list)) {
+                               list++;
+                       }
+                       continue;
+@@ -10194,7 +10194,7 @@ static int manager_queues_status(struct 
+                                       "CallerIDName: %s\r\n"
+                                       "ConnectedLineNum: %s\r\n"
+                                       "ConnectedLineName: %s\r\n"
+-                                      "Wait: %ld\r\n"
++                                      "Wait: %jd\r\n"
+                                       "Priority: %d\r\n"
+                                       "%s"
+                                       "\r\n",
+@@ -10203,7 +10203,7 @@ static int manager_queues_status(struct 
+                                       S_COR(ast_channel_caller(qe->chan)->id.name.valid, ast_channel_caller(qe->chan)->id.name.str, "unknown"),
+                                       S_COR(ast_channel_connected(qe->chan)->id.number.valid, ast_channel_connected(qe->chan)->id.number.str, "unknown"),
+                                       S_COR(ast_channel_connected(qe->chan)->id.name.valid, ast_channel_connected(qe->chan)->id.name.str, "unknown"),
+-                                      (long) (now - qe->start), qe->prio, idText);
++                                      (intmax_t) (now - qe->start), qe->prio, idText);
+                               ++q_items;
+                       }
+               }
Index: pkgsrc/comms/asterisk21/patches/patch-apps_app__sms.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-apps_app__sms.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-apps_app__sms.c       Mon Apr  8 03:20:07 2024
@@ -0,0 +1,102 @@
+$NetBSD: patch-apps_app__sms.c,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- apps/app_sms.c.orig        2018-05-01 20:12:26.000000000 +0000
++++ apps/app_sms.c
+@@ -291,7 +291,7 @@ static void numcpy(char *d, char *s)
+               *d++ = *s++;
+       }
+       while (*s) {
+-              if (isdigit(*s)) {
++              if (isdigit((unsigned char)*s)) {
+                       *d++ = *s;
+               }
+               s++;
+@@ -557,7 +557,7 @@ static void packdate(unsigned char *o, t
+       int z;
+ 
+       ast_localtime(&topack, &t, NULL);
+-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined( __NetBSD__ ) || defined(__APPLE__) || defined(__CYGWIN__)
++#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined( __NetBSD__ ) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__DragonFly__)
+       z = -t.tm_gmtoff / 60 / 15;
+ #else
+       z = timezone / 60 / 15;
+@@ -754,7 +754,7 @@ static unsigned char packaddress(unsigne
+               o[1] = 0x81;
+       }
+       for ( ; *i ; i++) {
+-              if (!isdigit(*i)) {                 /* ignore non-digits */
++              if (!isdigit((unsigned char)*i)) {                 /* ignore non-digits */
+                       continue;
+               }
+               if (o[0] & 1) {
+@@ -849,11 +849,11 @@ static void sms_readfile(sms_t * h, char
+                       if (!*p || *p == ';') {
+                               continue;                   /* blank line or comment, ignore */
+                       }
+-                      while (isalnum(*p)) {
+-                              *p = tolower (*p);
++                      while (isalnum((unsigned char)*p)) {
++                              *p = tolower ((unsigned char)*p);
+                               p++;
+                       }
+-                      while (isspace (*p)) {
++                      while (isspace ((unsigned char)*p)) {
+                               *p++ = 0;
+                       }
+                       if (*p == '=') {
+@@ -869,7 +869,7 @@ static void sms_readfile(sms_t * h, char
+                                               ast_log(LOG_WARNING, "UD too long in %s\n", fn);
+                                       }
+                               } else {
+-                                      while (isspace (*p)) {
++                                      while (isspace ((unsigned char)*p)) {
+                                               p++;
+                                       }
+                                       if (!strcmp(line, "oa") && strlen(p) < sizeof(h->oa)) {
+@@ -917,11 +917,11 @@ static void sms_readfile(sms_t * h, char
+                                       if (!strcmp(line, "ud")) {        /* user data */
+                                               int o = 0;
+                                               while (*p && o < SMSLEN) {
+-                                                      if (isxdigit(*p) && isxdigit(p[1]) && isxdigit(p[2]) && isxdigit(p[3])) {
++                                                      if (isxdigit((unsigned char)*p) && isxdigit((unsigned char)p[1]) && isxdigit((unsigned char)p[2]) && isxdigit((unsigned char)p[3])) {
+                                                               h->ud[o++] =
+-                                                                      (((isalpha(*p) ? 9 : 0) + (*p & 0xF)) << 12) +
+-                                                                      (((isalpha(p[1]) ? 9 : 0) + (p[1] & 0xF)) << 8) +
+-                                                                      (((isalpha(p[2]) ? 9 : 0) + (p[2] & 0xF)) << 4) + ((isalpha(p[3]) ? 9 : 0) + (p[3] & 0xF));
++                                                                      (((isalpha((unsigned char)*p) ? 9 : 0) + (*p & 0xF)) << 12) +
++                                                                      (((isalpha((unsigned char)p[1]) ? 9 : 0) + (p[1] & 0xF)) << 8) +
++                                                                      (((isalpha((unsigned char)p[2]) ? 9 : 0) + (p[2] & 0xF)) << 4) + ((isalpha((unsigned char)p[3]) ? 9 : 0) + (p[3] & 0xF));
+                                                               p += 4;
+                                                       } else
+                                                               break;
+@@ -934,8 +934,8 @@ static void sms_readfile(sms_t * h, char
+                               } else if (!strcmp(line, "ud")) {       /* user data */
+                                       int o = 0;
+                                       while (*p && o < SMSLEN) {
+-                                              if (isxdigit(*p) && isxdigit(p[1])) {
+-                                                      h->ud[o++] = (((isalpha(*p) ? 9 : 0) + (*p & 0xF)) << 4) + ((isalpha(p[1]) ? 9 : 0) + (p[1] & 0xF));
++                                              if (isxdigit((unsigned char)*p) && isxdigit((unsigned char)p[1])) {
++                                                      h->ud[o++] = (((isalpha((unsigned char)*p) ? 9 : 0) + (*p & 0xF)) << 4) + ((isalpha((unsigned char)p[1]) ? 9 : 0) + (p[1] & 0xF));
+                                                       p += 2;
+                                               } else {
+                                                       break;
+@@ -949,8 +949,8 @@ static void sms_readfile(sms_t * h, char
+                                       unsigned char o = 0;
+                                       h->udhi = 1;
+                                       while (*p && o < SMSLEN) {
+-                                              if (isxdigit(*p) && isxdigit(p[1])) {
+-                                                      h->udh[o] = (((isalpha(*p) ? 9 : 0) + (*p & 0xF)) << 4) + ((isalpha(p[1]) ? 9 : 0) + (p[1] & 0xF));
++                                              if (isxdigit((unsigned char)*p) && isxdigit((unsigned char)p[1])) {
++                                                      h->udh[o] = (((isalpha((unsigned char)*p) ? 9 : 0) + (*p & 0xF)) << 4) + ((isalpha((unsigned char)p[1]) ? 9 : 0) + (p[1] & 0xF));
+                                                       o++;
+                                                       p += 2;
+                                               } else {
+@@ -1928,7 +1928,7 @@ static int sms_exec(struct ast_channel *
+       ast_copy_string(h.queue, sms_args.queue, sizeof(h.queue));
+ 
+       for (p = h.queue; *p; p++) {
+-              if (!isalnum(*p)) {
++              if (!isalnum((unsigned char)*p)) {
+                       *p = '-';                       /* make very safe for filenames */
+               }
+       }
Index: pkgsrc/comms/asterisk21/patches/patch-apps_app__voicemail.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-apps_app__voicemail.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-apps_app__voicemail.c Mon Apr  8 03:20:07 2024
@@ -0,0 +1,76 @@
+$NetBSD: patch-apps_app__voicemail.c,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- apps/app_voicemail.c.orig  2018-05-01 20:12:26.000000000 +0000
++++ apps/app_voicemail.c
+@@ -5251,7 +5251,7 @@ static void make_email_file(FILE *p,
+               }
+               fprintf(p, "X-Asterisk-VM-Message-Type: %s" ENDL, msgnum > -1 ? "Message" : greeting_attachment);
+               fprintf(p, "X-Asterisk-VM-Orig-date: %s" ENDL, date);
+-              fprintf(p, "X-Asterisk-VM-Orig-time: %ld" ENDL, (long) time(NULL));
++              fprintf(p, "X-Asterisk-VM-Orig-time: %jd" ENDL, (intmax_t) time(NULL));
+               fprintf(p, "X-Asterisk-VM-Message-ID: %s" ENDL, msg_id);
+       }
+       if (!ast_strlen_zero(cidnum)) {
+@@ -6202,7 +6202,7 @@ static void generate_msg_id(char *dst)
+        * but only in single system solutions.
+        */
+       unsigned int unique_counter = ast_atomic_fetchadd_int(&msg_id_incrementor, +1);
+-      snprintf(dst, MSG_ID_LEN, "%ld-%08x", (long) time(NULL), unique_counter);
++      snprintf(dst, MSG_ID_LEN, "%jd-%08x", (intmax_t) time(NULL), unique_counter);
+ }
+ 
+ /*!
+@@ -6324,7 +6324,7 @@ static int msg_create_from_file(struct a
+                       "callerchan=%s\n"
+                       "callerid=%s\n"
+                       "origdate=%s\n"
+-                      "origtime=%ld\n"
++                      "origtime=%jd\n"
+                       "category=%s\n"
+                       "msg_id=%s\n"
+                       "flag=\n" /* flags not supported in copy from file yet */
+@@ -6337,7 +6337,7 @@ static int msg_create_from_file(struct a
+                       recdata->call_priority,
+                       S_OR(recdata->call_callerchan, "Unknown"),
+                       S_OR(recdata->call_callerid, "Unknown"),
+-                      date, (long) time(NULL),
++                      date, (intmax_t) time(NULL),
+                       S_OR(category, ""),
+                       msg_id,
+                       duration);
+@@ -6859,7 +6859,7 @@ static int leave_voicemail(struct ast_ch
+               /* Store information in real-time storage */
+               if (ast_check_realtime("voicemail_data")) {
+                       snprintf(priority, sizeof(priority), "%d", ast_channel_priority(chan));
+-                      snprintf(origtime, sizeof(origtime), "%ld", (long) time(NULL));
++                      snprintf(origtime, sizeof(origtime), "%jd", (intmax_t) time(NULL));
+                       get_date(date, sizeof(date));
+                       ast_callerid_merge(callerid, sizeof(callerid),
+                               S_COR(ast_channel_caller(chan)->id.name.valid, ast_channel_caller(chan)->id.name.str, NULL),
+@@ -6903,7 +6903,7 @@ static int leave_voicemail(struct ast_ch
+                               "callerchan=%s\n"
+                               "callerid=%s\n"
+                               "origdate=%s\n"
+-                              "origtime=%ld\n"
++                              "origtime=%jd\n"
+                               "category=%s\n"
+                               "msg_id=%s\n",
+                               ext,
+@@ -6915,7 +6915,7 @@ static int leave_voicemail(struct ast_ch
+                               ast_channel_priority(chan),
+                               ast_channel_name(chan),
+                               callerid,
+-                              date, (long) time(NULL),
++                              date, (intmax_t) time(NULL),
+                               category ? category : "",
+                               msg_id);
+               } else {
+@@ -11456,7 +11456,7 @@ static int vm_execmain(struct ast_channe
+                               play_auto = 1;
+                               if (!ast_strlen_zero(opts[OPT_ARG_PLAYFOLDER])) {
+                                       /* See if it is a folder name first */
+-                                      if (isdigit(opts[OPT_ARG_PLAYFOLDER][0])) {
++                                      if (isdigit((unsigned char)opts[OPT_ARG_PLAYFOLDER][0])) {
+                                               if (sscanf(opts[OPT_ARG_PLAYFOLDER], "%30d", &play_folder) != 1) {
+                                                       play_folder = -1;
+                                               }
Index: pkgsrc/comms/asterisk21/patches/patch-build__tools_make__xml__documentation
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-build__tools_make__xml__documentation:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-build__tools_make__xml__documentation Mon Apr  8 03:20:07 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-build__tools_make__xml__documentation,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- build_tools/make_xml_documentation.orig    2022-04-14 22:16:42.000000000 +0000
++++ build_tools/make_xml_documentation
+@@ -214,7 +214,7 @@ for subdir in ${mod_subdirs} ; do
+                                       ${XMLSTARLET} val -e -d "${source_tree}/doc/appdocsxml.dtd" "${i}" || { echo "" ; exit 1 ; }
+                       fi
+               fi
+-              ${SED} -r "/^\s*(<[?]xml|<.DOCTYPE|<.?docs)/d" "${i}" >> "${output_file}"
++              ${SED} -r "/^\[[:space:]](<[?]xml|<.DOCTYPE|<.?docs)/d" "${i}" >> "${output_file}"
+       done
+ done
+ echo "</docs>" >> "${output_file}"
Index: pkgsrc/comms/asterisk21/patches/patch-build__tools_mkpkgconfig
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-build__tools_mkpkgconfig:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-build__tools_mkpkgconfig      Mon Apr  8 03:20:07 2024
@@ -0,0 +1,19 @@
+$NetBSD: patch-build__tools_mkpkgconfig,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- build_tools/mkpkgconfig.orig       2015-10-09 21:48:48.000000000 +0000
++++ build_tools/mkpkgconfig
+@@ -22,11 +22,14 @@ else
+ fi
+ 
+ ## Clean out CFLAGS for the spec file.
++## pkgsrc -- the regex below isn't sed compatible, so always use perl
++EXTREGEX="perl -pe"
+ LOCAL_CFLAGS=`echo $CFLAGS | ${EXTREGEX} 's/-pipe\s*//g' | ${EXTREGEX} 's/-[Wmp]\S*\s*//g' | \
+   ${EXTREGEX} 's/\s+-I(include|\.\.\/include)\s+/ /g' | \
+   ${EXTREGEX} 's/-DINSTALL_PREFIX=\S* //g' | \
+   ${EXTREGEX} 's/-DASTERISK_VERSION=\S* //g' | \
+   ${EXTREGEX} 's/-DAST(ETCDIR|LIBDIR|VARLIBDIR|VARRUNDIR|SPOOLDIR|LOGDIR|CONFPATH|MODDIR|AGIDIR)=\S* //g' | \
++  ${EXTREGEX} "s;${WRKSRC};${PREFIX};g" | \
+   ${EXTREGEX} 's/^\s|\s$//g'`
+ 
+ cat <<EOF > "$PPATH/asterisk.pc"
Index: pkgsrc/comms/asterisk21/patches/patch-cdr_cdr__pgsql.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-cdr_cdr__pgsql.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-cdr_cdr__pgsql.c      Mon Apr  8 03:20:07 2024
@@ -0,0 +1,31 @@
+$NetBSD: patch-cdr_cdr__pgsql.c,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- cdr/cdr_pgsql.c.orig       2016-09-30 20:36:17.000000000 +0000
++++ cdr/cdr_pgsql.c
+@@ -270,7 +270,7 @@ static int pgsql_log(struct ast_cdr *cdr
+                       if (strcmp(cur->name, "start") == 0 || strcmp(cur->name, "calldate") == 0) {
+                               if (strncmp(cur->type, "int", 3) == 0) {
+                                       LENGTHEN_BUF2(13);
+-                                      ast_str_append(&sql2, 0, "%s%ld", separator, (long) cdr->start.tv_sec);
++                                      ast_str_append(&sql2, 0, "%s%jd", separator, (intmax_t) cdr->start.tv_sec);
+                               } else if (strncmp(cur->type, "float", 5) == 0) {
+                                       LENGTHEN_BUF2(31);
+                                       ast_str_append(&sql2, 0, "%s%f", separator, (double)cdr->start.tv_sec + (double)cdr->start.tv_usec / 1000000.0);
+@@ -284,7 +284,7 @@ static int pgsql_log(struct ast_cdr *cdr
+                       } else if (strcmp(cur->name, "answer") == 0) {
+                               if (strncmp(cur->type, "int", 3) == 0) {
+                                       LENGTHEN_BUF2(13);
+-                                      ast_str_append(&sql2, 0, "%s%ld", separator, (long) cdr->answer.tv_sec);
++                                      ast_str_append(&sql2, 0, "%s%jd", separator, (intmax_t) cdr->answer.tv_sec);
+                               } else if (strncmp(cur->type, "float", 5) == 0) {
+                                       LENGTHEN_BUF2(31);
+                                       ast_str_append(&sql2, 0, "%s%f", separator, (double)cdr->answer.tv_sec + (double)cdr->answer.tv_usec / 1000000.0);
+@@ -298,7 +298,7 @@ static int pgsql_log(struct ast_cdr *cdr
+                       } else if (strcmp(cur->name, "end") == 0) {
+                               if (strncmp(cur->type, "int", 3) == 0) {
+                                       LENGTHEN_BUF2(13);
+-                                      ast_str_append(&sql2, 0, "%s%ld", separator, (long) cdr->end.tv_sec);
++                                      ast_str_append(&sql2, 0, "%s%jd", separator, (intmax_t) cdr->end.tv_sec);
+                               } else if (strncmp(cur->type, "float", 5) == 0) {
+                                       LENGTHEN_BUF2(31);
+                                       ast_str_append(&sql2, 0, "%s%f", separator, (double)cdr->end.tv_sec + (double)cdr->end.tv_usec / 1000000.0);
Index: pkgsrc/comms/asterisk21/patches/patch-cel_cel__pgsql.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-cel_cel__pgsql.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-cel_cel__pgsql.c      Mon Apr  8 03:20:07 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-cel_cel__pgsql.c,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- cel/cel_pgsql.c.orig       2015-10-09 21:48:48.000000000 +0000
++++ cel/cel_pgsql.c
+@@ -205,7 +205,7 @@ static void pgsql_log(struct ast_event *
+                       if (strcmp(cur->name, "eventtime") == 0) {
+                               if (strncmp(cur->type, "int", 3) == 0) {
+                                       LENGTHEN_BUF2(13);
+-                                      ast_str_append(&sql2, 0, "%s%ld", SEP, (long) record.event_time.tv_sec);
++                                      ast_str_append(&sql2, 0, "%s%jd", SEP, (intmax_t) record.event_time.tv_sec);
+                               } else if (strncmp(cur->type, "float", 5) == 0) {
+                                       LENGTHEN_BUF2(31);
+                                       ast_str_append(&sql2, 0, "%s%f",
Index: pkgsrc/comms/asterisk21/patches/patch-channels_chan__pjsip.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-channels_chan__pjsip.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-channels_chan__pjsip.c        Mon Apr  8 03:20:07 2024
@@ -0,0 +1,32 @@
+$NetBSD: patch-channels_chan__pjsip.c,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- channels/chan_pjsip.c.orig 2019-09-05 13:09:20.000000000 +0000
++++ channels/chan_pjsip.c
+@@ -34,10 +34,6 @@
+ 
+ #include "asterisk.h"
+ 
+-#include <pjsip.h>
+-#include <pjsip_ua.h>
+-#include <pjlib.h>
+-
+ #include "asterisk/lock.h"
+ #include "asterisk/channel.h"
+ #include "asterisk/module.h"
+@@ -63,10 +59,14 @@
+ #include "asterisk/test.h"
+ #include "asterisk/message.h"
+ 
+-#include "asterisk/res_pjsip.h"
+-#include "asterisk/res_pjsip_session.h"
+ #include "asterisk/stream.h"
+ 
++#include <pjsip.h>
++#include <pjsip_ua.h>
++#include <pjlib.h>
++
++#include "asterisk/res_pjsip.h"
++#include "asterisk/res_pjsip_session.h"
+ #include "pjsip/include/chan_pjsip.h"
+ #include "pjsip/include/dialplan_functions.h"
+ #include "pjsip/include/cli_functions.h"
Index: pkgsrc/comms/asterisk21/patches/patch-channels_pjsip_cli__commands.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-channels_pjsip_cli__commands.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-channels_pjsip_cli__commands.c        Mon Apr  8 03:20:07 2024
@@ -0,0 +1,33 @@
+$NetBSD: patch-channels_pjsip_cli__commands.c,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- channels/pjsip/cli_commands.c.orig 2018-06-20 14:37:54.485779459 +0000
++++ channels/pjsip/cli_commands.c
+@@ -26,20 +26,21 @@
+ 
+ #include "asterisk.h"
+ 
++#include "asterisk/astobj2.h"
++#include "asterisk/channel.h"
++#include "asterisk/format.h"
++#include "asterisk/stasis.h"
++#include "asterisk/time.h"
++#include "include/cli_functions.h"
++
+ #include <pjsip.h>
+ #include <pjlib.h>
+ #include <pjsip_ua.h>
+ 
+-#include "asterisk/astobj2.h"
+-#include "asterisk/channel.h"
+-#include "asterisk/format.h"
++#include "include/chan_pjsip.h"
+ #include "asterisk/res_pjsip.h"
+ #include "asterisk/res_pjsip_session.h"
+ #include "asterisk/res_pjsip_cli.h"
+-#include "asterisk/stasis.h"
+-#include "asterisk/time.h"
+-#include "include/chan_pjsip.h"
+-#include "include/cli_functions.h"
+ 
+ 
+ static int cli_channel_iterate(void *endpoint, ao2_callback_fn callback, void *arg)
Index: pkgsrc/comms/asterisk21/patches/patch-channels_pjsip_dialplan__functions.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-channels_pjsip_dialplan__functions.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-channels_pjsip_dialplan__functions.c  Mon Apr  8 03:20:07 2024
@@ -0,0 +1,32 @@
+$NetBSD: patch-channels_pjsip_dialplan__functions.c,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- channels/pjsip/dialplan_functions.c.orig   2018-06-20 14:39:31.934736437 +0000
++++ channels/pjsip/dialplan_functions.c
+@@ -450,10 +450,6 @@
+ 
+ #include "asterisk.h"
+ 
+-#include <pjsip.h>
+-#include <pjlib.h>
+-#include <pjsip_ua.h>
+-
+ #include "asterisk/astobj2.h"
+ #include "asterisk/module.h"
+ #include "asterisk/acl.h"
+@@ -463,10 +459,15 @@
+ #include "asterisk/format.h"
+ #include "asterisk/dsp.h"
+ #include "asterisk/pbx.h"
++#include "include/dialplan_functions.h"
++
++#include <pjsip.h>
++#include <pjlib.h>
++#include <pjsip_ua.h>
++
+ #include "asterisk/res_pjsip.h"
+ #include "asterisk/res_pjsip_session.h"
+ #include "include/chan_pjsip.h"
+-#include "include/dialplan_functions.h"
+ 
+ /*!
+  * \brief String representations of the T.38 state enum
Index: pkgsrc/comms/asterisk21/patches/patch-configure
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-configure:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-configure     Mon Apr  8 03:20:07 2024
@@ -0,0 +1,168 @@
+$NetBSD: patch-configure,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- configure.orig     2024-03-18 13:25:20.000000000 +0000
++++ configure
+@@ -10124,12 +10124,12 @@ else $as_nop
+ 
+                       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for clang -fblocks" >&5
+ printf %s "checking for clang -fblocks... " >&6; }
+-                      if test "`echo 'int main(){return ^{return 42;}();}' | ${CC} -o /dev/null -fblocks -x c - 2>&1`" = ""; then
++                      if test "`echo 'int main(){return ^{return 42;}();}' | ${CC} ${LDFLAGS} -o /dev/null -fblocks -x c - 2>&1`" = ""; then
+                               AST_CLANG_BLOCKS_LIBS=""
+                               AST_CLANG_BLOCKS="-Wno-unknown-warning-option -fblocks"
+                               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ printf "%s\n" "yes" >&6; }
+-                      elif test "`echo 'int main(){return ^{return 42;}();}' | ${CC} -o /dev/null -fblocks -x c -lBlocksRuntime - 2>&1`" = ""; then
++                      elif test "`echo 'int main(){return ^{return 42;}();}' | ${CC} ${LDFLAGS} -o /dev/null -fblocks -x c -lBlocksRuntime - 2>&1`" = ""; then
+                               AST_CLANG_BLOCKS_LIBS="-lBlocksRuntime"
+                               AST_CLANG_BLOCKS="-fblocks"
+                               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+@@ -21892,6 +21892,148 @@ rm -f core conftest.err conftest.$ac_obj
+ 
+ 
+ 
++if test "${ac_cv_header_sys_atomic_h+set}" = set; then
++  { $as_echo "$as_me:$LINENO: checking for sys/atomic.h" >&5
++$as_echo_n "checking for sys/atomic.h... " >&6; }
++if test "${ac_cv_header_sys_atomic_h+set}" = set; then
++  $as_echo_n "(cached) " >&6
++fi
++{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_atomic_h" >&5
++$as_echo "$ac_cv_header_sys_atomic_h" >&6; }
++else
++  # Is the header compilable?
++{ $as_echo "$as_me:$LINENO: checking sys/atomic.h usability" >&5
++$as_echo_n "checking sys/atomic.h usability... " >&6; }
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++$ac_includes_default
++#include <sys/atomic.h>
++_ACEOF
++rm -f conftest.$ac_objext
++if { (ac_try="$ac_compile"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++$as_echo "$ac_try_echo") >&5
++  (eval "$ac_compile") 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } && {
++       test -z "$ac_c_werror_flag" ||
++       test ! -s conftest.err
++       } && test -s conftest.$ac_objext; then
++  ac_header_compiler=yes
++else
++  $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++      ac_header_compiler=no
++fi
++
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
++$as_echo "$ac_header_compiler" >&6; }
++
++# Is the header present?
++{ $as_echo "$as_me:$LINENO: checking sys/atomic.h presence" >&5
++$as_echo_n "checking sys/atomic.h presence... " >&6; }
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++#include <sys/atomic.h>
++_ACEOF
++if { (ac_try="$ac_cpp conftest.$ac_ext"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++$as_echo "$ac_try_echo") >&5
++  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } >/dev/null && {
++       test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
++       test ! -s conftest.err
++       }; then
++  ac_header_preproc=yes
++else
++  $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++  ac_header_preproc=no
++fi
++
++rm -f conftest.err conftest.$ac_ext
++{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
++$as_echo "$ac_header_preproc" >&6; }
++
++# So?  What about this header?
++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
++  yes:no: )
++    { $as_echo "$as_me:$LINENO: WARNING: sys/atomic.h: accepted by the compiler, rejected by the preprocessor!" >&5
++$as_echo "$as_me: WARNING: sys/atomic.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
++    { $as_echo "$as_me:$LINENO: WARNING: sys/atomic.h: proceeding with the compiler's result" >&5
++$as_echo "$as_me: WARNING: sys/atomic.h: proceeding with the compiler's result" >&2;}
++    ac_header_preproc=yes
++    ;;
++  no:yes:* )
++    { $as_echo "$as_me:$LINENO: WARNING: sys/atomic.h: present but cannot be compiled" >&5
++$as_echo "$as_me: WARNING: sys/atomic.h: present but cannot be compiled" >&2;}
++    { $as_echo "$as_me:$LINENO: WARNING: sys/atomic.h:     check for missing prerequisite headers?" >&5
++$as_echo "$as_me: WARNING: sys/atomic.h:     check for missing prerequisite headers?" >&2;}
++    { $as_echo "$as_me:$LINENO: WARNING: sys/atomic.h: see the Autoconf documentation" >&5
++$as_echo "$as_me: WARNING: sys/atomic.h: see the Autoconf documentation" >&2;}
++    { $as_echo "$as_me:$LINENO: WARNING: sys/atomic.h:     section \"Present But Cannot Be Compiled\"" >&5
++$as_echo "$as_me: WARNING: sys/atomic.h:     section \"Present But Cannot Be Compiled\"" >&2;}
++    { $as_echo "$as_me:$LINENO: WARNING: sys/atomic.h: proceeding with the preprocessor's result" >&5
++$as_echo "$as_me: WARNING: sys/atomic.h: proceeding with the preprocessor's result" >&2;}
++    { $as_echo "$as_me:$LINENO: WARNING: sys/atomic.h: in the future, the compiler will take precedence" >&5
++$as_echo "$as_me: WARNING: sys/atomic.h: in the future, the compiler will take precedence" >&2;}
++    ( cat <<\_ASBOX
++## ------------------------------------------ ##
++## Report this to https://issues.asterisk.org ##
++## ------------------------------------------ ##
++_ASBOX
++     ) | sed "s/^/$as_me: WARNING:     /" >&2
++    ;;
++esac
++{ $as_echo "$as_me:$LINENO: checking for sys/atomic.h" >&5
++$as_echo_n "checking for sys/atomic.h... " >&6; }
++if test "${ac_cv_header_sys_atomic_h+set}" = set; then
++  $as_echo_n "(cached) " >&6
++else
++  ac_cv_header_sys_atomic_h=$ac_header_preproc
++fi
++{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_atomic_h" >&5
++$as_echo "$ac_cv_header_sys_atomic_h" >&6; }
++
++fi
++if test "x$ac_cv_header_sys_atomic_h" = x""yes; then
++
++cat >>confdefs.h <<_ACEOF
++#define HAVE_SYS_ATOMIC_H 1
++_ACEOF
++
++fi
++
++
++
+ # The cast to long int works around a bug in the HP C Compiler
+ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
Index: pkgsrc/comms/asterisk21/patches/patch-configure.ac
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-configure.ac:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-configure.ac  Mon Apr  8 03:20:07 2024
@@ -0,0 +1,34 @@
+$NetBSD: patch-configure.ac,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- configure.ac.orig  2021-03-04 16:46:08.000000000 +0000
++++ configure.ac
+@@ -751,7 +751,7 @@ AC_CHECK_HEADERS([xlocale.h])
+ 
+ AC_CHECK_HEADERS([winsock.h winsock2.h])
+ 
+-AC_CHECK_HEADER([sys/poll.h],
++AC_CHECK_HEADER([poll.h],
+        [],
+      AC_DEFINE([AST_POLL_COMPAT], 1, [Define to 1 if internal poll should be used.]))
+ 
+@@ -803,7 +803,7 @@ AC_FUNC_STRNLEN
+ AC_FUNC_STRTOD
+ AC_FUNC_UTIME_NULL
+ AC_FUNC_VPRINTF
+-AC_CHECK_FUNCS([asprintf atexit closefrom dup2 eaccess endpwent euidaccess ffsll ftruncate getcwd gethostbyname gethostname getloadavg gettimeofday glob ioperm inet_ntoa isascii memchr memmove 
memset mkdir mkdtemp munmap newlocale pipe2 ppoll putenv re_comp regcomp select setenv socket strcasecmp strcasestr strchr strcspn strdup strerror strlcat strlcpy strncasecmp strndup strnlen strrchr 
strsep strspn strstr strtod strtol strtold strtoq unsetenv uselocale utime vasprintf getpeereid sysctl swapctl malloc_trim])
++AC_CHECK_FUNCS([asprintf atexit closefrom dup2 eaccess endpwent euidaccess ffsll ftruncate getcwd gethostbyname gethostname getloadavg gettimeofday glob ioperm inet_ntoa isascii memchr memmove 
memset mkdir mkdtemp munmap newlocale pipe2 ppoll putenv re_comp regcomp select setenv socket strcasecmp strcasestr strchr strcspn strdup strerror strftime_l strlcat strlcpy strncasecmp strndup 
strnlen strptime_l strrchr strsep strspn strstr strtod strtol strtold strtoq unsetenv uselocale utime vasprintf getpeereid sysctl swapctl malloc_trim])
+ 
+ AC_MSG_CHECKING(for htonll)
+ AC_LINK_IFELSE(
+@@ -872,9 +872,9 @@ AC_SUBST(PBX_DYNAMIC_LIST)
+ LDFLAGS=${old_LDFLAGS}
+ rm -f conftest.dynamics
+ 
+-AC_CHECK_HEADER([sys/poll.h],
++AC_CHECK_HEADER([poll.h],
+    [HAS_POLL=1]
+-   AC_DEFINE([HAVE_SYS_POLL_H], 1, [Define to 1 if your system has working sys/poll.h]),
++   AC_DEFINE([HAVE_SYS_POLL_H], 1, [Define to 1 if your system has working poll.h]),
+    )
+ 
+ AC_ARG_ENABLE([internal-poll],
Index: pkgsrc/comms/asterisk21/patches/patch-contrib_scripts_vmail.cgi
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-contrib_scripts_vmail.cgi:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-contrib_scripts_vmail.cgi     Mon Apr  8 03:20:07 2024
@@ -0,0 +1,181 @@
+$NetBSD: patch-contrib_scripts_vmail.cgi,v 1.1 2024/04/08 03:20:07 jnemeth Exp $
+
+--- contrib/scripts/vmail.cgi.orig     2015-10-09 21:48:48.000000000 +0000
++++ contrib/scripts/vmail.cgi
+@@ -145,7 +145,7 @@ sub check_login($$)
+               $context = "default";
+       }
+       if (!$filename) {
+-              $filename = "/etc/asterisk/voicemail.conf";
++              $filename = "@ASTETCDIR@/voicemail.conf";
+       }
+ #     print header;
+ #     print "Including <h2>$filename</h2> while in <h2>$category</h2>...\n";
+@@ -153,7 +153,7 @@ sub check_login($$)
+       while(<VMAIL>) {
+               chomp;
+               if (/include\s\"([^\"]+)\"$/) {
+-                      ($tmp, $category) = &check_login("/etc/asterisk/$1", $category);
++                      ($tmp, $category) = &check_login("@ASTETCDIR@/$1", $category);
+                       if (length($tmp)) {
+ #                             print "Got '$tmp'\n";
+                               return ($tmp, $category);
+@@ -200,7 +200,7 @@ sub check_login_users {
+       my ($mbox, $context) = split(/\@/, param('mailbox'));
+       my $pass = param('password');
+       my ($found, $fullname) = (0, "");
+-      open VMAIL, "</etc/asterisk/users.conf";
++      open VMAIL, "<@ASTETCDIR@/users.conf";
+       while (<VMAIL>) {
+               chomp;
+               if (m/\[(.*)\]/) {
+@@ -242,7 +242,7 @@ sub validmailbox($$$$)
+               $context = "default";
+       }
+       if (!$filename) {
+-              $filename = "/etc/asterisk/voicemail.conf";
++              $filename = "@ASTETCDIR@/voicemail.conf";
+       }
+       if (!$category) {
+               $category = "general";
+@@ -251,7 +251,7 @@ sub validmailbox($$$$)
+       while (<VMAIL>) {
+               chomp;
+               if (/include\s\"([^\"]+)\"$/) {
+-                      ($tmp, $category) = &validmailbox($mbox, $context, "/etc/asterisk/$1");
++                      ($tmp, $category) = &validmailbox($mbox, $context, "@ASTETCDIR@/$1");
+                       if ($tmp) {
+                               return ($tmp, $category);
+                       }
+@@ -298,7 +298,7 @@ sub mailbox_options()
+       local $tmp2;
+       local $tmp;
+       if (!$filename) {
+-              $filename = "/etc/asterisk/voicemail.conf";
++              $filename = "@ASTETCDIR@/voicemail.conf";
+       }
+       if (!$category) {
+               $category = "general";
+@@ -386,7 +386,7 @@ sub mailbox_list()
+ sub msgcount() 
+ {
+       my ($context, $mailbox, $folder) = @_;
+-      my $path = "/var/spool/asterisk/voicemail/$context/$mailbox/$folder";
++      my $path = "@ASTSPOOLDIR@/voicemail/$context/$mailbox/$folder";
+       if (opendir(DIR, $path)) {
+               my @msgs = grep(/^msg....\.txt$/, readdir(DIR));
+               closedir(DIR);
+@@ -410,7 +410,7 @@ sub msgcountstr()
+ sub messages()
+ {
+       my ($context, $mailbox, $folder) = @_;
+-      my $path = "/var/spool/asterisk/voicemail/$context/$mailbox/$folder";
++      my $path = "@ASTSPOOLDIR@/voicemail/$context/$mailbox/$folder";
+       if (opendir(DIR, $path)) {
+               my @msgs = sort grep(/^msg....\.txt$/, readdir(DIR));
+               closedir(DIR);
+@@ -435,7 +435,7 @@ sub getfields()
+ {
+       my ($context, $mailbox, $folder, $msg) = @_;
+       my $fields;
+-      if (open(MSG, "</var/spool/asterisk/voicemail/$context/$mailbox/$folder/msg${msg}.txt")) {
++      if (open(MSG, "<@ASTSPOOLDIR@/voicemail/$context/$mailbox/$folder/msg${msg}.txt")) {
+               while(<MSG>) {
+                       s/\#.*$//g;
+                       if (/^(\w+)\s*\=\s*(.*)$/) {
+@@ -560,7 +560,7 @@ _EOH
+       <input name="action" type=submit value="download">
+ </td></tr>
+ <tr><td colspan=2 align=center>
+-<embed width=400 height=40 src="vmail.cgi?action=audio&folder=$folder&mailbox=$mbox&context=$context&password=$passwd&msgid=$msgid&format=$format&dontcasheme=$$.$format" autostart=yes 
loop=false></embed>
++<embed width=400 height=40 src="vmail?action=audio&folder=$folder&mailbox=$mbox&context=$context&password=$passwd&msgid=$msgid&format=$format&dontcasheme=$$.$format" autostart=yes 
loop=false></embed>
+ </td></tr></table>
+ </td></tr>
+ </table>
+@@ -588,7 +588,7 @@ sub message_audio()
+       }
+       &untaint($format);
+ 
+-      my $path = "/var/spool/asterisk/voicemail/$context/$mailbox/$folder/msg${msgid}.$format";
++      my $path = "@ASTSPOOLDIR@/voicemail/$context/$mailbox/$folder/msg${msgid}.$format";
+ 
+       $msgid =~ /^\d\d\d\d$/ || die("Msgid Liar ($msgid)!");
+       grep(/^${format}$/, keys %formats) || die("Format Liar ($format)!");
+@@ -809,11 +809,11 @@ sub message_rename()
+               die("Invalid old Message<BR>\n");
+       }
+       
+-      my $path = "/var/spool/asterisk/voicemail/$context/$mbox/$newfolder";
++      my $path = "@ASTSPOOLDIR@/voicemail/$context/$mbox/$newfolder";
+       $path =~ /^(.*)$/;
+       $path = $1;
+       mkdir $path, 0770;
+-      $path = "/var/spool/asterisk/voicemail/$context/$mbox/$oldfolder";
++      $path = "@ASTSPOOLDIR@/voicemail/$context/$mbox/$oldfolder";
+       opendir(DIR, $path) || die("Unable to open directory\n");
+       my @files = grep /^msg${old}\.\w+$/, readdir(DIR);
+       closedir(DIR);
+@@ -823,7 +823,7 @@ sub message_rename()
+                       $tmp = $1;
+                       $oldfile = $path . "/$tmp";
+                       $tmp =~ s/msg${old}/msg${new}/;
+-                      $newfile = "/var/spool/asterisk/voicemail/$context/$mbox/$newfolder/$tmp";
++                      $newfile = "@ASTSPOOLDIR@/voicemail/$context/$mbox/$newfolder/$tmp";
+ #                     print "Renaming $oldfile to $newfile<BR>\n";
+                       rename($oldfile, $newfile);
+               }
+@@ -884,15 +884,15 @@ sub message_copy()
+               die("Invalid old Message<BR>\n");
+       }
+       
+-      my $path = "/var/spool/asterisk/voicemail/$context/$newmbox";
++      my $path = "@ASTSPOOLDIR@/voicemail/$context/$newmbox";
+       $path =~ /^(.*)$/;
+       $path = $1;
+       mkdir $path, 0770;
+-      $path = "/var/spool/asterisk/voicemail/$context/$newmbox/INBOX";
++      $path = "@ASTSPOOLDIR@/voicemail/$context/$newmbox/INBOX";
+       $path =~ /^(.*)$/;
+       $path = $1;
+       mkdir $path, 0770;
+-      $path = "/var/spool/asterisk/voicemail/$context/$mbox/$oldfolder";
++      $path = "@ASTSPOOLDIR@/voicemail/$context/$mbox/$oldfolder";
+       opendir(DIR, $path) || die("Unable to open directory\n");
+       my @files = grep /^msg${old}\.\w+$/, readdir(DIR);
+       closedir(DIR);
+@@ -902,7 +902,7 @@ sub message_copy()
+                       $tmp = $1;
+                       $oldfile = $path . "/$tmp";
+                       $tmp =~ s/msg${old}/msg${new}/;
+-                      $newfile = "/var/spool/asterisk/voicemail/$context/$newmbox/INBOX/$tmp";
++                      $newfile = "@ASTSPOOLDIR@/voicemail/$context/$newmbox/INBOX/$tmp";
+ #                     print "Copying $oldfile to $newfile<BR>\n";
+                       &file_copy($oldfile, $newfile);
+               }
+@@ -932,7 +932,7 @@ sub message_delete()
+       } else {
+               die("Invalid Message<BR>\n");
+       }
+-      my $path = "/var/spool/asterisk/voicemail/$context/$mbox/$folder";
++      my $path = "@ASTSPOOLDIR@/voicemail/$context/$mbox/$folder";
+       opendir(DIR, $path) || die("Unable to open directory\n");
+       my @files = grep /^msg${msg}\.\w+$/, readdir(DIR);
+       closedir(DIR);
+@@ -968,7 +968,7 @@ sub message_forward()
+       my $txt;
+       $context = &untaint($context);
+       $newmbox = &untaint($newmbox);
+-      my $path = "/var/spool/asterisk/voicemail/$context/$newmbox/INBOX";
++      my $path = "@ASTSPOOLDIR@/voicemail/$context/$newmbox/INBOX";
+       if ($msgs[0]) {
+               if (&lock_path($path) == 0) {
+                       $msgcount = &msgcount($context, $newmbox, "INBOX");
+@@ -1018,7 +1018,7 @@ sub message_delete_or_move()
+       $context = &untaint($context);
+       $mbox = &untaint($mbox);
+       $folder = &untaint($folder);
+-      $path = "/var/spool/asterisk/voicemail/$context/$mbox/$folder";
++      $path = "@ASTSPOOLDIR@/voicemail/$context/$mbox/$folder";
+       if ($msgs[0]) {
+               if (&lock_path($path) == 0) {
+                       my $msgcount = &msgcount($context, $mbox, $folder);
Index: pkgsrc/comms/asterisk21/patches/patch-funcs_func__cdr.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-funcs_func__cdr.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-funcs_func__cdr.c     Mon Apr  8 03:20:08 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-funcs_func__cdr.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- funcs/func_cdr.c.orig      2018-05-07 17:23:06.705808560 +0000
++++ funcs/func_cdr.c
+@@ -547,7 +547,7 @@ static int cdr_write(struct ast_channel 
+ 
+               ast_log(LOG_WARNING, "Using the %s function to set 'amaflags' is deprecated. Please use the CHANNEL function instead.\n",
+                       cmd);
+-              if (isdigit(*value)) {
++              if (isdigit((unsigned char)*value)) {
+                       if (sscanf(value, "%30d", &amaflags) != 1) {
+                               amaflags = AST_AMA_NONE;
+                       }
Index: pkgsrc/comms/asterisk21/patches/patch-funcs_func__channel.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-funcs_func__channel.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-funcs_func__channel.c Mon Apr  8 03:20:08 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-funcs_func__channel.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- funcs/func_channel.c.orig  2018-05-07 17:22:10.785599288 +0000
++++ funcs/func_channel.c
+@@ -492,7 +492,7 @@ static int func_channel_write_real(struc
+       } else if (!strcasecmp(data, "amaflags")) {
+               int amaflags;
+ 
+-              if (isdigit(*value)) {
++              if (isdigit((unsigned char)*value)) {
+                       if (sscanf(value, "%30d", &amaflags) != 1) {
+                               amaflags = AST_AMA_NONE;
+                       }
Index: pkgsrc/comms/asterisk21/patches/patch-funcs_func__env.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-funcs_func__env.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-funcs_func__env.c     Mon Apr  8 03:20:08 2024
@@ -0,0 +1,49 @@
+$NetBSD: patch-funcs_func__env.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- funcs/func_env.c.orig      2019-09-05 13:09:20.000000000 +0000
++++ funcs/func_env.c
+@@ -408,11 +408,11 @@ static int file_count_line(struct ast_ch
+ 
+       AST_STANDARD_APP_ARGS(args, data);
+       if (args.argc > 1) {
+-              if (tolower(args.format[0]) == 'd') {
++              if (tolower((unsigned char)args.format[0]) == 'd') {
+                       newline_format = FF_DOS;
+-              } else if (tolower(args.format[0]) == 'm') {
++              } else if (tolower((unsigned char)args.format[0]) == 'm') {
+                       newline_format = FF_MAC;
+-              } else if (tolower(args.format[0]) == 'u') {
++              } else if (tolower((unsigned char)args.format[0]) == 'u') {
+                       newline_format = FF_UNIX;
+               }
+       }
+@@ -570,11 +570,11 @@ static int file_read(struct ast_channel 
+ 
+       /* Line-based read */
+       if (args.argc == 5) {
+-              if (tolower(args.fileformat[0]) == 'd') {
++              if (tolower((unsigned char)args.fileformat[0]) == 'd') {
+                       format = FF_DOS;
+-              } else if (tolower(args.fileformat[0]) == 'm') {
++              } else if (tolower((unsigned char)args.fileformat[0]) == 'm') {
+                       format = FF_MAC;
+-              } else if (tolower(args.fileformat[0]) == 'u') {
++              } else if (tolower((unsigned char)args.fileformat[0]) == 'u') {
+                       format = FF_UNIX;
+               }
+       }
+@@ -935,11 +935,11 @@ static int file_write(struct ast_channel
+ 
+               /* Line mode */
+               if (args.argc == 5) {
+-                      if (tolower(args.format[0]) == 'u') {
++                      if (tolower((unsigned char)args.format[0]) == 'u') {
+                               newline_format = FF_UNIX;
+-                      } else if (tolower(args.format[0]) == 'm') {
++                      } else if (tolower((unsigned char)args.format[0]) == 'm') {
+                               newline_format = FF_MAC;
+-                      } else if (tolower(args.format[0]) == 'd') {
++                      } else if (tolower((unsigned char)args.format[0]) == 'd') {
+                               newline_format = FF_DOS;
+                       }
+               }
Index: pkgsrc/comms/asterisk21/patches/patch-funcs_func__pjsip__aor.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-funcs_func__pjsip__aor.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-funcs_func__pjsip__aor.c      Mon Apr  8 03:20:08 2024
@@ -0,0 +1,22 @@
+$NetBSD: patch-funcs_func__pjsip__aor.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- funcs/func_pjsip_aor.c.orig        2018-06-20 14:41:48.304859278 +0000
++++ funcs/func_pjsip_aor.c
+@@ -34,13 +34,14 @@
+ 
+ #include "asterisk.h"
+ 
+-#include <pjsip.h>
+-#include <pjlib.h>
+-
+ #include "asterisk/app.h"
+ #include "asterisk/pbx.h"
+ #include "asterisk/module.h"
+ #include "asterisk/sorcery.h"
++
++#include <pjsip.h>
++#include <pjlib.h>
++
+ #include "asterisk/res_pjsip.h"
+ 
+ /*** DOCUMENTATION
Index: pkgsrc/comms/asterisk21/patches/patch-funcs_func__pjsip__contact.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-funcs_func__pjsip__contact.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-funcs_func__pjsip__contact.c  Mon Apr  8 03:20:08 2024
@@ -0,0 +1,22 @@
+$NetBSD: patch-funcs_func__pjsip__contact.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- funcs/func_pjsip_contact.c.orig    2018-06-20 14:41:26.963425573 +0000
++++ funcs/func_pjsip_contact.c
+@@ -34,13 +34,14 @@
+ 
+ #include "asterisk.h"
+ 
+-#include <pjsip.h>
+-#include <pjlib.h>
+-
+ #include "asterisk/app.h"
+ #include "asterisk/pbx.h"
+ #include "asterisk/module.h"
+ #include "asterisk/sorcery.h"
++
++#include <pjsip.h>
++#include <pjlib.h>
++
+ #include "asterisk/res_pjsip.h"
+ 
+ /*** DOCUMENTATION
Index: pkgsrc/comms/asterisk21/patches/patch-funcs_func__pjsip__endpoint.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-funcs_func__pjsip__endpoint.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-funcs_func__pjsip__endpoint.c Mon Apr  8 03:20:08 2024
@@ -0,0 +1,23 @@
+$NetBSD: patch-funcs_func__pjsip__endpoint.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- funcs/func_pjsip_endpoint.c.orig   2018-06-20 14:41:38.307201390 +0000
++++ funcs/func_pjsip_endpoint.c
+@@ -34,14 +34,15 @@
+ 
+ #include "asterisk.h"
+ 
+-#include <pjsip.h>
+-#include <pjlib.h>
+-
+ #include "asterisk/app.h"
+ #include "asterisk/pbx.h"
+ #include "asterisk/module.h"
+ #include "asterisk/channel.h"
+ #include "asterisk/sorcery.h"
++
++#include <pjsip.h>
++#include <pjlib.h>
++
+ #include "asterisk/res_pjsip.h"
+ 
+ /*** DOCUMENTATION
Index: pkgsrc/comms/asterisk21/patches/patch-funcs_func__strings.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-funcs_func__strings.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-funcs_func__strings.c Mon Apr  8 03:20:08 2024
@@ -0,0 +1,40 @@
+$NetBSD: patch-funcs_func__strings.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- funcs/func_strings.c.orig  2018-05-07 17:21:13.413282206 +0000
++++ funcs/func_strings.c
+@@ -1483,7 +1483,7 @@ static int string_toupper(struct ast_cha
+ {
+       char *bufptr = buf, *dataptr = data;
+ 
+-      while ((bufptr < buf + buflen - 1) && (*bufptr++ = toupper(*dataptr++)));
++      while ((bufptr < buf + buflen - 1) && (*bufptr++ = toupper((unsigned char)*dataptr++)));
+ 
+       return 0;
+ }
+@@ -1496,7 +1496,7 @@ static int string_toupper2(struct ast_ch
+               ast_str_make_space(buf, buflen > 0 ? buflen : strlen(data) + 1);
+       }
+       bufptr = ast_str_buffer(*buf);
+-      while ((bufptr < ast_str_buffer(*buf) + ast_str_size(*buf) - 1) && (*bufptr++ = toupper(*dataptr++)));
++      while ((bufptr < ast_str_buffer(*buf) + ast_str_size(*buf) - 1) && (*bufptr++ = toupper((unsigned char)*dataptr++)));
+       ast_str_update(*buf);
+ 
+       return 0;
+@@ -1512,7 +1512,7 @@ static int string_tolower(struct ast_cha
+ {
+       char *bufptr = buf, *dataptr = data;
+ 
+-      while ((bufptr < buf + buflen - 1) && (*bufptr++ = tolower(*dataptr++)));
++      while ((bufptr < buf + buflen - 1) && (*bufptr++ = tolower((unsigned char)*dataptr++)));
+ 
+       return 0;
+ }
+@@ -1525,7 +1525,7 @@ static int string_tolower2(struct ast_ch
+               ast_str_make_space(buf, buflen > 0 ? buflen : strlen(data) + 1);
+       }
+       bufptr = ast_str_buffer(*buf);
+-      while ((bufptr < ast_str_buffer(*buf) + ast_str_size(*buf) - 1) && (*bufptr++ = tolower(*dataptr++)));
++      while ((bufptr < ast_str_buffer(*buf) + ast_str_size(*buf) - 1) && (*bufptr++ = tolower((unsigned char)*dataptr++)));
+       ast_str_update(*buf);
+ 
+       return 0;
Index: pkgsrc/comms/asterisk21/patches/patch-include_asterisk_autoconfig.h.in
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-include_asterisk_autoconfig.h.in:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-include_asterisk_autoconfig.h.in      Mon Apr  8 03:20:08 2024
@@ -0,0 +1,27 @@
+$NetBSD: patch-include_asterisk_autoconfig.h.in,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- include/asterisk/autoconfig.h.in.orig      2016-10-25 19:27:49.000000000 +0000
++++ include/asterisk/autoconfig.h.in
+@@ -945,6 +945,12 @@
+ /* Define to 1 if you have the `strstr' function. */
+ #undef HAVE_STRSTR
+ 
++/* Define to 1 if you have the `strftime_l' function. */
++#undef HAVE_STRFTIME_L
++
++/* Define to 1 if you have the `strptime_l' function. */
++#undef HAVE_STRPTIME_L
++
+ /* Define to 1 if you have the `strtod' function. */
+ #undef HAVE_STRTOD
+ 
+@@ -1032,6 +1038,9 @@
+ /* Define if your system has the SYSTEMD libraries. */
+ #undef HAVE_SYSTEMD
+ 
++/* Define to 1 if sys/atomic.h atomic operations are supported. */
++#undef HAVE_SYS_ATOMIC_H
++
+ /* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+    */
+ #undef HAVE_SYS_DIR_H
Index: pkgsrc/comms/asterisk21/patches/patch-include_asterisk_lock.h
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-include_asterisk_lock.h:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-include_asterisk_lock.h       Mon Apr  8 03:20:08 2024
@@ -0,0 +1,31 @@
+$NetBSD: patch-include_asterisk_lock.h,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- include/asterisk/lock.h.orig       2021-03-04 16:46:08.000000000 +0000
++++ include/asterisk/lock.h
+@@ -616,6 +616,17 @@ static void  __attribute__((destructor))
+  */
+ #define SCOPED_CHANNELLOCK(varname, chan) SCOPED_LOCK(varname, (chan), ast_channel_lock, ast_channel_unlock)
+ 
++#undef pthread_mutex_lock
++#undef pthread_mutex_unlock
++#undef pthread_mutex_trylock
++#undef pthread_mutex_init
++#undef pthread_mutex_destroy
++#undef pthread_cond_init
++#undef pthread_cond_destroy
++#undef pthread_cond_signal
++#undef pthread_cond_broadcast
++#undef pthread_cond_wait
++#undef pthread_cond_timedwait
+ #ifndef __CYGWIN__    /* temporary disabled for cygwin */
+ #define pthread_mutex_t               use_ast_mutex_t_instead_of_pthread_mutex_t
+ #define pthread_cond_t                use_ast_cond_t_instead_of_pthread_cond_t
+@@ -636,7 +647,7 @@ static void  __attribute__((destructor))
+ 
+ #define gethostbyname __gethostbyname__is__not__reentrant__use__ast_gethostbyname__instead__
+ 
+-#ifndef __linux__
++#if !defined(__linux__) && !defined(__DragonFly__)
+ #define pthread_create __use_ast_pthread_create_instead__
+ #endif
+ 
Index: pkgsrc/comms/asterisk21/patches/patch-include_asterisk_strings.h
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-include_asterisk_strings.h:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-include_asterisk_strings.h    Mon Apr  8 03:20:08 2024
@@ -0,0 +1,40 @@
+$NetBSD: patch-include_asterisk_strings.h,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- include/asterisk/strings.h.orig    2018-05-01 20:12:26.000000000 +0000
++++ include/asterisk/strings.h
+@@ -1168,7 +1168,7 @@ char *ast_tech_to_upper(char *dev_str),
+       }
+ 
+       for (pos = dev_str; *pos && *pos != '/'; pos++) {
+-              *pos = toupper(*pos);
++              *pos = toupper((unsigned char)*pos);
+       }
+       return dev_str;
+ }
+@@ -1244,7 +1244,7 @@ static force_inline int attribute_pure a
+       unsigned int hash = 5381;
+ 
+       while (*str) {
+-              hash = hash * 33 ^ (unsigned char) tolower(*str++);
++              hash = hash * 33 ^ tolower((unsigned char)*str++);
+       }
+ 
+       return ast_str_hash_restrict(hash);
+@@ -1265,7 +1265,7 @@ static force_inline char *attribute_pure
+       }
+ 
+       for (; *str; ++str) {
+-              *str = tolower(*str);
++              *str = tolower((unsigned char)*str);
+       }
+ 
+       return str_orig;
+@@ -1286,7 +1286,7 @@ static force_inline char *attribute_pure
+       }
+ 
+       for (; *str; ++str) {
+-              *str = toupper(*str);
++              *str = toupper((unsigned char)*str);
+       }
+ 
+       return str_orig;
Index: pkgsrc/comms/asterisk21/patches/patch-main_Makefile
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_Makefile:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_Makefile Mon Apr  8 03:20:08 2024
@@ -0,0 +1,38 @@
+$NetBSD: patch-main_Makefile,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- main/Makefile.orig 2021-03-04 16:46:08.000000000 +0000
++++ main/Makefile
+@@ -97,6 +97,10 @@ ifeq ($(OSARCH),OpenBSD)
+   AST_LIBS+=-lcrypto -lpthread -lm
+ endif
+ 
++ifeq ($(OSARCH),dragonfly)
++  AST_LIBS+=-lpthread
++endif
++
+ ifeq ($(OSARCH),SunOS)
+   AST_LIBS+=-lpthread -ldl -lrt -lnsl -lsocket -lresolv
+   ASTSSL_LIBS+=-L/opt/ssl/lib -L/usr/local/ssl/lib
+@@ -243,7 +247,7 @@ libasteriskpj.o: _ASTCFLAGS+=$(PJPROJECT
+ ifeq ($(PJPROJECT_BUNDLED),yes)
+ 
+ ASTPJ_SO_VERSION=2
+-ASTPJ_LDLIBS=-L. -lasteriskpj
++ASTPJ_LDLIBS=${COMPILER_RPATH_FLAG}${PREFIX}/lib/asterisk -L. -lasteriskpj
+ 
+ PJDIR=$(ASTTOPDIR)/$(PJPROJECT_DIR)/source
+ -include $(ASTTOPDIR)/$(PJPROJECT_DIR)/build.mak
+@@ -330,10 +334,10 @@ bininstall:
+       $(INSTALL) -m 755 $(MAIN_TGT) "$(DESTDIR)$(ASTSBINDIR)/"
+ ifeq ($(AST_ASTERISKSSL),yes)
+ ifeq ($(findstring darwin,$(OSARCH)),) # not Darwin
+-      $(INSTALL) -m 755 $(ASTSSL_LIB).$(ASTSSL_SO_VERSION) "$(DESTDIR)$(ASTLIBDIR)/"
+-      $(LN) -sf $(ASTSSL_LIB).$(ASTSSL_SO_VERSION) "$(DESTDIR)$(ASTLIBDIR)/$(ASTSSL_LIB)"
++      $(INSTALL) -m 755 $(ASTSSL_LIB).$(ASTSSL_SO_VERSION) "$(DESTDIR)$(PREFIX)/lib/"
++      $(LN) -sf $(ASTSSL_LIB).$(ASTSSL_SO_VERSION) "$(DESTDIR)$(PREFIX)/lib/$(ASTSSL_LIB)"
+ else # Darwin
+-      $(INSTALL) -m 755 $(ASTSSL_LIB) "$(DESTDIR)$(ASTLIBDIR)/"
++      $(INSTALL) -m 755 $(ASTSSL_LIB) "$(DESTDIR)$(PREFIX)/lib/"
+ endif
+ endif
+ ifeq ($(PJPROJECT_BUNDLED),yes)
Index: pkgsrc/comms/asterisk21/patches/patch-main_acl.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_acl.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_acl.c    Mon Apr  8 03:20:08 2024
@@ -0,0 +1,40 @@
+$NetBSD: patch-main_acl.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- main/acl.c.orig    2015-10-09 21:48:48.000000000 +0000
++++ main/acl.c
+@@ -127,7 +127,7 @@ static int get_local_address(struct ast_
+       char *buf = NULL;
+       int bufsz, x;
+ #endif /* SOLARIS */
+-#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__) || defined(__GLIBC__)
++#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__) || defined(__DragonFly__) || defined(__GLIBC__)
+       struct ifaddrs *ifap, *ifaphead;
+       int rtnerr;
+       const struct sockaddr_in *sin;
+@@ -136,7 +136,7 @@ static int get_local_address(struct ast_
+       int best_score = -100;
+       memset(&best_addr, 0, sizeof(best_addr));
+ 
+-#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__) || defined(__GLIBC__)
++#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__) || defined(__DragonFly__) || defined(__GLIBC__)
+       rtnerr = getifaddrs(&ifaphead);
+       if (rtnerr) {
+               perror(NULL);
+@@ -147,7 +147,7 @@ static int get_local_address(struct ast_
+       s = socket(AF_INET, SOCK_STREAM, 0);
+ 
+       if (s > 0) {
+-#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__) || defined(__GLIBC__)
++#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__) || defined(__DragonFly__) || defined(__GLIBC__)
+               for (ifap = ifaphead; ifap; ifap = ifap->ifa_next) {
+ 
+                       if (ifap->ifa_addr && ifap->ifa_addr->sa_family == AF_INET) {
+@@ -206,7 +206,7 @@ static int get_local_address(struct ast_
+ 
+               close(s);
+       }
+-#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__)
++#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__) || defined(__DragonFly__)
+       freeifaddrs(ifaphead);
+ #endif /* BSD_OR_LINUX */
+ 
Index: pkgsrc/comms/asterisk21/patches/patch-main_app.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_app.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_app.c    Mon Apr  8 03:20:08 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-main_app.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- main/app.c.orig    2018-05-07 17:23:29.870389813 +0000
++++ main/app.c
+@@ -3085,7 +3085,7 @@ int ast_app_parse_timelen(const char *ti
+                       break;
+               case 'm':
+               case 'M':
+-                      if (toupper(u[1]) == 'S') {
++                      if (toupper((unsigned char)u[1]) == 'S') {
+                               unit = TIMELEN_MILLISECONDS;
+                               if (u[2] != '\0') {
+                                       return -1;
Index: pkgsrc/comms/asterisk21/patches/patch-main_ast__expr2.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_ast__expr2.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_ast__expr2.c     Mon Apr  8 03:20:08 2024
@@ -0,0 +1,16 @@
+$NetBSD: patch-main_ast__expr2.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- main/ast_expr2.c.orig      2018-05-07 17:49:06.171631311 +0000
++++ main/ast_expr2.c
+@@ -2545,9 +2545,9 @@ make_str (const char *s)
+               return(NULL);
+       }
+ 
+-      for (i = 0, isint = (isdigit(s[0]) || s[0] == '-' || s[0]=='.'); isint && i < strlen(s); i++)
++      for (i = 0, isint = (isdigit((unsigned char)s[0]) || s[0] == '-' || s[0]=='.'); isint && i < strlen(s); i++)
+       {
+-              if (!isdigit(s[i]) && s[i] != '.') {
++              if (!isdigit((unsigned char)s[i]) && s[i] != '.') {
+                       isint = 0;
+                       break;
+               }
Index: pkgsrc/comms/asterisk21/patches/patch-main_ast__expr2.y
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_ast__expr2.y:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_ast__expr2.y     Mon Apr  8 03:20:08 2024
@@ -0,0 +1,16 @@
+$NetBSD: patch-main_ast__expr2.y,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- main/ast_expr2.y.orig      2018-05-07 17:23:43.934750158 +0000
++++ main/ast_expr2.y
+@@ -538,9 +538,9 @@ make_str (const char *s)
+               return(NULL);
+       }
+ 
+-      for (i = 0, isint = (isdigit(s[0]) || s[0] == '-' || s[0]=='.'); isint && i < strlen(s); i++)
++      for (i = 0, isint = (isdigit((unsigned char)s[0]) || s[0] == '-' || s[0]=='.'); isint && i < strlen(s); i++)
+       {
+-              if (!isdigit(s[i]) && s[i] != '.') {
++              if (!isdigit((unsigned char)s[i]) && s[i] != '.') {
+                       isint = 0;
+                       break;
+               }
Index: pkgsrc/comms/asterisk21/patches/patch-main_asterisk.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_asterisk.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_asterisk.c       Mon Apr  8 03:20:08 2024
@@ -0,0 +1,40 @@
+$NetBSD: patch-main_asterisk.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- main/asterisk.c.orig       2019-09-05 13:09:20.000000000 +0000
++++ main/asterisk.c
+@@ -852,7 +852,7 @@ int64_t ast_mark(int i, int startstop)
+ #define DEFINE_PROFILE_MIN_MAX_VALUES min = 0; \
+       max = prof_data->entries;\
+       if  (a->argc > 3) { /* specific entries */ \
+-              if (isdigit(a->argv[3][0])) { \
++              if (isdigit((unsigned char)a->argv[3][0])) { \
+                       min = atoi(a->argv[3]); \
+                       if (a->argc == 5 && strcmp(a->argv[4], "-")) \
+                               max = atoi(a->argv[4]); \
+@@ -2274,7 +2274,7 @@ static int remoteconsolehandler(const ch
+       if (!ast_all_zeros(s))
+               ast_el_add_history(s);
+ 
+-      while (isspace(*s)) {
++      while (isspace((unsigned char)*s)) {
+               s++;
+       }
+ 
+@@ -2286,7 +2286,7 @@ static int remoteconsolehandler(const ch
+                       ast_safe_system(getenv("SHELL") ? getenv("SHELL") : "/bin/sh");
+               ret = 1;
+       } else if ((strncasecmp(s, "quit", 4) == 0 || strncasecmp(s, "exit", 4) == 0) &&
+-          (s[4] == '\0' || isspace(s[4]))) {
++          (s[4] == '\0' || isspace((unsigned char)s[4]))) {
+               quit_handler(0, SHUTDOWN_FAST, 0);
+               ret = 1;
+       }
+@@ -2949,7 +2949,7 @@ static char *cli_complete(EditLine *edit
+       ptr = (char *)lf->cursor;
+       if (ptr) {
+               while (ptr > lf->buffer) {
+-                      if (isspace(*ptr)) {
++                      if (isspace((unsigned char)*ptr)) {
+                               ptr++;
+                               break;
+                       }
Index: pkgsrc/comms/asterisk21/patches/patch-main_astmm.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_astmm.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_astmm.c  Mon Apr  8 03:20:08 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-main_astmm.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- main/astmm.c.orig  2015-10-09 21:48:48.000000000 +0000
++++ main/astmm.c
+@@ -1487,7 +1487,7 @@ void __ast_mm_init_phase_2(void)
+ 
+       mmlog = fopen(filename, "a+");
+       if (mmlog) {
+-              fprintf(mmlog, "%ld - New session\n", (long) time(NULL));
++              fprintf(mmlog, "%jd - New session\n", (intmax_t) time(NULL));
+               fflush(mmlog);
+       } else {
+               ast_log(LOG_ERROR, "Could not open malloc debug log file: %s\n", filename);
Index: pkgsrc/comms/asterisk21/patches/patch-main_bridge__basic.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_bridge__basic.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_bridge__basic.c  Mon Apr  8 03:20:08 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-main_bridge__basic.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- main/bridge_basic.c.orig   2018-05-07 17:25:08.340535041 +0000
++++ main/bridge_basic.c
+@@ -167,7 +167,7 @@ static int build_dtmf_features(struct as
+       size_t number_of_missing_features = 0;
+ 
+       for (feature = features; *feature; feature++) {
+-              if (!isupper(*feature)) {
++              if (!isupper((unsigned char)*feature)) {
+                       ast_log(LOG_ERROR, "Features string '%s' rejected because it contains non-uppercase feature.\n", features);
+                       return -1;
+               }
Index: pkgsrc/comms/asterisk21/patches/patch-main_bridge__channel.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_bridge__channel.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_bridge__channel.c        Mon Apr  8 03:20:08 2024
@@ -0,0 +1,38 @@
+$NetBSD: patch-main_bridge__channel.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+* Fix segfault under NetBSD/aarch64 9.99.80.
+
+--- main/bridge_channel.c.orig 2021-12-09 16:52:10.000000000 +0000
++++ main/bridge_channel.c
+@@ -59,6 +59,13 @@
+ #include "asterisk/message.h"
+ #include "asterisk/core_local.h"
+ 
++/* XXX, pthread_equal() is misused to compare non-valid thread pointers */
++static int
++pt_pthread_equal(pthread_t t1, pthread_t t2)
++{
++      return t1 == t2;
++}
++
+ /*!
+  * \brief Used to queue an action frame onto a bridge channel and write an action frame into a bridge.
+  * \since 12.0.0
+@@ -259,7 +266,7 @@ int ast_bridge_channel_notify_talking(st
+  */
+ static void bridge_channel_poke(struct ast_bridge_channel *bridge_channel)
+ {
+-      if (!pthread_equal(pthread_self(), bridge_channel->thread)) {
++      if (!pt_pthread_equal(pthread_self(), bridge_channel->thread)) {
+               /* Wake up the bridge channel thread. */
+               ast_queue_frame(bridge_channel->chan, &ast_null_frame);
+       }
+@@ -952,7 +959,7 @@ static int bridge_channel_queue_action_d
+       };
+ 
+       /* Make sure we don't end up trying to wait on ourself to deliver the frame */
+-      ast_assert(!pthread_equal(pthread_self(), bridge_channel->thread));
++      ast_assert(!pt_pthread_equal(pthread_self(), bridge_channel->thread));
+ 
+       sync_payload = ast_alloca(sync_payload_len);
+       sync_payload->id = ast_atomic_fetchadd_int(&sync_ids, +1);
Index: pkgsrc/comms/asterisk21/patches/patch-main_callerid.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_callerid.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_callerid.c       Mon Apr  8 03:20:08 2024
@@ -0,0 +1,28 @@
+$NetBSD: patch-main_callerid.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- main/callerid.c.orig       2018-05-07 17:25:23.439816235 +0000
++++ main/callerid.c
+@@ -233,20 +233,20 @@ void callerid_get_dtmf(char *cidstring, 
+               for (i = 1; i < strlen(cidstring); i++) {
+                       if (cidstring[i] == 'C' || cidstring[i] == '#')
+                               break;
+-                      if (isdigit(cidstring[i]))
++                      if (isdigit((unsigned char)cidstring[i]))
+                               number[i-1] = cidstring[i];
+                       else
+                               ast_debug(1, "Unknown CID digit '%c'\n",
+                                       cidstring[i]);
+               }
+               number[i-1] = 0;
+-      } else if (isdigit(cidstring[0])) {
++      } else if (isdigit((unsigned char)cidstring[0])) {
+               /* It begins with a digit, so we parse it as a number and hope
+                * for the best */
+               ast_log(LOG_WARNING, "Couldn't detect start-character. CID "
+                       "parsing might be unreliable\n");
+               for (i = 0; i < strlen(cidstring); i++) {
+-                      if (isdigit(cidstring[i]))
++                      if (isdigit((unsigned char)cidstring[i]))
+                               number[i] = cidstring[i];
+                       else
+                               break;
Index: pkgsrc/comms/asterisk21/patches/patch-main_cdr.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_cdr.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_cdr.c    Mon Apr  8 03:20:08 2024
@@ -0,0 +1,25 @@
+$NetBSD: patch-main_cdr.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- main/cdr.c.orig    2015-10-09 21:48:48.000000000 +0000
++++ main/cdr.c
+@@ -2787,7 +2787,7 @@ static const char *cdr_format_var_intern
+ static void cdr_get_tv(struct timeval when, const char *fmt, char *buf, int bufsize)
+ {
+       if (fmt == NULL) {      /* raw mode */
+-              snprintf(buf, bufsize, "%ld.%06ld", (long)when.tv_sec, (long)when.tv_usec);
++              snprintf(buf, bufsize, "%jd.%06ld", (intmax_t)when.tv_sec, (long)when.tv_usec);
+       } else {
+               buf[0] = '\0';/* Ensure the buffer is initialized. */
+               if (when.tv_sec) {
+@@ -2833,9 +2833,9 @@ void ast_cdr_format_var(struct ast_cdr *
+       } else if (!strcasecmp(name, "end")) {
+               cdr_get_tv(cdr->end, raw ? NULL : fmt, workspace, workspacelen);
+       } else if (!strcasecmp(name, "duration")) {
+-              snprintf(workspace, workspacelen, "%ld", cdr->end.tv_sec != 0 ? cdr->duration : (long)ast_tvdiff_ms(ast_tvnow(), cdr->start) / 1000);
++              snprintf(workspace, workspacelen, "%jd", cdr->end.tv_sec != 0 ? cdr->duration : (intmax_t)ast_tvdiff_ms(ast_tvnow(), cdr->start) / 1000);
+       } else if (!strcasecmp(name, "billsec")) {
+-              snprintf(workspace, workspacelen, "%ld", (cdr->billsec || !ast_tvzero(cdr->end) || ast_tvzero(cdr->answer)) ? cdr->billsec : (long)ast_tvdiff_ms(ast_tvnow(), cdr->answer) / 1000);
++              snprintf(workspace, workspacelen, "%jd", (cdr->billsec || !ast_tvzero(cdr->end) || ast_tvzero(cdr->answer)) ? cdr->billsec : (intmax_t)ast_tvdiff_ms(ast_tvnow(), cdr->answer) / 1000);
+       } else if (!strcasecmp(name, "disposition")) {
+               if (raw) {
+                       snprintf(workspace, workspacelen, "%ld", cdr->disposition);
Index: pkgsrc/comms/asterisk21/patches/patch-main_cel.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_cel.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_cel.c    Mon Apr  8 03:20:08 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-main_cel.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- main/cel.c.orig    2015-10-09 21:48:48.000000000 +0000
++++ main/cel.c
+@@ -790,7 +790,7 @@ struct ast_channel *ast_cel_fabricate_ch
+       }
+ 
+       if (ast_strlen_zero(cfg->general->date_format)) {
+-              snprintf(timebuf, sizeof(timebuf), "%ld.%06ld", (long) record.event_time.tv_sec,
++              snprintf(timebuf, sizeof(timebuf), "%jd.%06ld", (intmax_t) record.event_time.tv_sec,
+                               (long) record.event_time.tv_usec);
+       } else {
+               struct ast_tm tm;
Index: pkgsrc/comms/asterisk21/patches/patch-main_cli.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_cli.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_cli.c    Mon Apr  8 03:20:08 2024
@@ -0,0 +1,22 @@
+$NetBSD: patch-main_cli.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- main/cli.c.orig    2018-05-07 17:26:06.732494913 +0000
++++ main/cli.c
+@@ -2440,7 +2440,7 @@ static char *parse_args(const char *s, i
+       cur = duplicate;
+ 
+       /* Remove leading spaces from the command */
+-      while (isspace(*s)) {
++      while (isspace((unsigned char)*s)) {
+               cur++;
+               s++;
+       }
+@@ -2627,7 +2627,7 @@ struct ast_vector_string *ast_cli_comple
+                       continue;
+               }
+ 
+-              while (i < max_equal && toupper(prevstr[i]) == toupper(retstr[i])) {
++              while (i < max_equal && toupper((unsigned char)prevstr[i]) == toupper((unsigned char)retstr[i])) {
+                       i++;
+               }
+ 
Index: pkgsrc/comms/asterisk21/patches/patch-main_config.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_config.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_config.c Mon Apr  8 03:20:08 2024
@@ -0,0 +1,12 @@
+$NetBSD: patch-main_config.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- main/config.c.orig 2024-03-25 05:41:31.131220754 +0000
++++ main/config.c
+@@ -44,6 +44,7 @@
+ #include <libgen.h>
+ #include <time.h>
+ #include <sys/stat.h>
++#include <sys/wait.h>
+ 
+ #include <math.h>     /* HUGE_VAL */
+ #include <regex.h>
Index: pkgsrc/comms/asterisk21/patches/patch-main_conversions.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_conversions.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_conversions.c    Mon Apr  8 03:20:08 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-main_conversions.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- main/conversions.c.orig    2021-03-04 16:46:08.000000000 +0000
++++ main/conversions.c
+@@ -37,7 +37,7 @@ static int str_is_negative(const char **
+        * Ignore any preceding white space. It's okay to move the pointer here
+        * since the converting function would do the same, i.e. skip white space.
+        */
+-      while (isspace(**str)) ++*str;
++      while (isspace((unsigned char)**str)) ++*str;
+       return **str == '-';
+ }
+ 
Index: pkgsrc/comms/asterisk21/patches/patch-main_dns__naptr.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_dns__naptr.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_dns__naptr.c     Mon Apr  8 03:20:08 2024
@@ -0,0 +1,40 @@
+$NetBSD: patch-main_dns__naptr.c,v 1.1 2024/04/08 03:20:08 jnemeth Exp $
+
+--- main/dns_naptr.c.orig      2018-05-07 17:26:59.602834230 +0000
++++ main/dns_naptr.c
+@@ -78,7 +78,7 @@ static enum flags_result interpret_flags
+                               *flags == 'a' || *flags == 'A' ||
+                               *flags == 'u' || *flags == 'U') {
+                       return FLAGS_TERMINAL;
+-              } else if (!isalnum(*flags)) {
++              } else if (!isalnum((unsigned char)*flags)) {
+                       return FLAGS_INVALID;
+               } else {
+                       return FLAGS_UNKNOWN;
+@@ -90,7 +90,7 @@ static enum flags_result interpret_flags
+        * S, A, U, and P flags together.
+        */
+       for (i = 0; i < flags_size; ++i) {
+-              if (!isalnum(flags[i])) {
++              if (!isalnum((unsigned char)flags[i])) {
+                       return FLAGS_INVALID;
+               } else if (flags[i] == 's' || flags[i] == 'S') {
+                       if (known_flag_found && known_flag_found != 's') {
+@@ -146,7 +146,7 @@ static int services_invalid(const char *
+               uint8_t current_size = plus_pos ? plus_pos - current_pos : end_of_services - current_pos;
+               int i;
+ 
+-              if (!isalpha(current_pos[0])) {
++              if (!isalpha((unsigned char)current_pos[0])) {
+                       return -1;
+               }
+ 
+@@ -155,7 +155,7 @@ static int services_invalid(const char *
+               }
+ 
+               for (i = 1; i < current_size; ++i) {
+-                      if (!isalnum(current_pos[i])) {
++                      if (!isalnum((unsigned char)current_pos[i])) {
+                               return -1;
+                       }
+               }
Index: pkgsrc/comms/asterisk21/patches/patch-main_enum.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_enum.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_enum.c   Mon Apr  8 03:20:09 2024
@@ -0,0 +1,76 @@
+$NetBSD: patch-main_enum.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- main/enum.c.orig   2021-03-04 16:46:08.000000000 +0000
++++ main/enum.c
+@@ -219,7 +219,7 @@ static int blr_txt(const char *cc, const
+       ast_mutex_unlock(&enumlock);
+ 
+       for (p2 = (char *) cc + strlen(cc) - 1; p2 >= cc; p2--) {
+-              if (isdigit(*p2)) {
++              if (isdigit((unsigned char)*p2)) {
+                       *p1++ = *p2;
+                       *p1++ = '.';
+               }
+@@ -348,7 +348,7 @@ static int blr_ebl(const char *cc, const
+       ast_mutex_unlock(&enumlock);
+ 
+       for (p2 = (char *) cc + strlen(cc) - 1; p2 >= cc; p2--) {
+-              if (isdigit(*p2)) {
++              if (isdigit((unsigned char)*p2)) {
+                       *p1++ = *p2;
+                       *p1++ = '.';
+               }
+@@ -458,7 +458,7 @@ static int parse_naptr(unsigned char *ds
+               naptrinput, flags, services, regexp, repl);
+ 
+ 
+-      if (tolower(flags[0]) != 'u') {
++      if (tolower((unsigned char)flags[0]) != 'u') {
+               ast_log(LOG_WARNING, "NAPTR Flag must be 'U' or 'u'.\n");
+               return -1;
+       }
+@@ -551,7 +551,7 @@ static int parse_naptr(unsigned char *ds
+        * beginning and ending indexes of the substring to insert as the backreference.
+        * if no backreference is found, continue copying the subst into tempdst */
+       while (*subst && (d_len > 0)) {
+-              if ((subst[0] == '\\') && isdigit(subst[1])) { /* is this character the beginning of a backreference */
++              if ((subst[0] == '\\') && isdigit((unsigned char)subst[1])) { /* is this character the beginning of a backreference */
+                       matchindex = (int) (subst[1] - '0');
+                       if (matchindex >= ARRAY_LEN(pmatch)) {
+                               ast_log(LOG_WARNING, "Error during regex substitution. Invalid pmatch index.\n");
+@@ -573,7 +573,7 @@ static int parse_naptr(unsigned char *ds
+                               ast_log(LOG_WARNING, "Error during regex substitution. Invalid backreference index.\n");
+                               return -1;
+                       }
+-              } else if (isprint(*subst)) {
++              } else if (isprint((unsigned char)*subst)) {
+                       *d++ = *subst++;
+                       d_len--;
+               } else {
+@@ -830,7 +830,7 @@ int ast_get_enum(struct ast_channel *cha
+ 
+               p1 = middle + strlen(middle);
+               for (p2 = (char *) number + sdl - 1; p2 >= number; p2--) {
+-                      if (isdigit(*p2)) {
++                      if (isdigit((unsigned char)*p2)) {
+                               *p1++ = *p2;
+                               *p1++ = '.';
+                       }
+@@ -849,7 +849,7 @@ int ast_get_enum(struct ast_channel *cha
+       /* flip left into domain */
+       p1 = domain;
+       for (p2 = left + strlen(left); p2 >= left; p2--) {
+-              if (isdigit(*p2)) {
++              if (isdigit((unsigned char)*p2)) {
+                       *p1++ = *p2;
+                       *p1++ = '.';
+               }
+@@ -973,7 +973,7 @@ static char *format_numeric_domain(const
+ 
+       if (buffer) {
+               while (src >= number) {
+-                      if (isdigit(*src)) {
++                      if (isdigit((unsigned char)*src)) {
+                               *dst++ = *src;
+                               *dst++ = '.';
+                       }
Index: pkgsrc/comms/asterisk21/patches/patch-main_features.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_features.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_features.c       Mon Apr  8 03:20:09 2024
@@ -0,0 +1,20 @@
+$NetBSD: patch-main_features.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- main/features.c.orig       2018-05-07 17:28:38.342590540 +0000
++++ main/features.c
+@@ -387,13 +387,13 @@ static void set_bridge_features_on_confi
+       for (feature = features; *feature; feature++) {
+               struct ast_flags *party;
+ 
+-              if (isupper(*feature)) {
++              if (isupper((unsigned char)*feature)) {
+                       party = &config->features_caller;
+               } else {
+                       party = &config->features_callee;
+               }
+ 
+-              switch (tolower(*feature)) {
++              switch (tolower((unsigned char)*feature)) {
+               case 't' :
+                       ast_set_flag(party, AST_FEATURE_REDIRECT);
+                       break;
Index: pkgsrc/comms/asterisk21/patches/patch-main_http.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_http.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_http.c   Mon Apr  8 03:20:09 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-main_http.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- main/http.c.orig   2015-10-09 21:48:48.000000000 +0000
++++ main/http.c
+@@ -304,7 +304,7 @@ static int static_callback(struct ast_tc
+       }
+ 
+       /* make "Etag:" http header value */
+-      snprintf(etag, sizeof(etag), "\"%ld\"", (long)st.st_mtime);
++      snprintf(etag, sizeof(etag), "\"%jd\"", (intmax_t)st.st_mtime);
+ 
+       /* make "Last-Modified:" http header value */
+       tv.tv_sec = st.st_mtime;
Index: pkgsrc/comms/asterisk21/patches/patch-main_indications.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_indications.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_indications.c    Mon Apr  8 03:20:09 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-main_indications.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- main/indications.c.orig    2021-03-04 16:46:08.000000000 +0000
++++ main/indications.c
+@@ -908,7 +908,7 @@ static void store_tone_zone_ring_cadence
+ 
+               ring = ast_strip(ring);
+ 
+-              if (!isdigit(ring[0]) || (value = atoi(ring)) == -1) {
++              if (!isdigit((unsigned char)ring[0]) || (value = atoi(ring)) == -1) {
+                       ast_log(LOG_WARNING, "Invalid ringcadence given '%s'.\n", ring);
+                       continue;
+               }
Index: pkgsrc/comms/asterisk21/patches/patch-main_logger.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_logger.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_logger.c Mon Apr  8 03:20:09 2024
@@ -0,0 +1,22 @@
+$NetBSD: patch-main_logger.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- main/logger.c.orig 2015-10-09 21:48:48.000000000 +0000
++++ main/logger.c
+@@ -674,7 +674,7 @@ void ast_queue_log(const char *queuename
+ 
+       if (qlog) {
+               va_start(ap, fmt);
+-              qlog_len = snprintf(qlog_msg, sizeof(qlog_msg), "%ld|%s|%s|%s|%s|", (long)time(NULL), callid, queuename, agent, event);
++              qlog_len = snprintf(qlog_msg, sizeof(qlog_msg), "%jd|%s|%s|%s|%s|", (intmax_t)time(NULL), callid, queuename, agent, event);
+               vsnprintf(qlog_msg + qlog_len, sizeof(qlog_msg) - qlog_len, fmt, ap);
+               va_end(ap);
+               AST_RWLIST_RDLOCK(&logchannels);
+@@ -714,7 +714,7 @@ static int rotate_file(const char *filen
+               }
+               break;
+       case TIMESTAMP:
+-              snprintf(new, sizeof(new), "%s.%ld", filename, (long)time(NULL));
++              snprintf(new, sizeof(new), "%s.%jd", filename, (intmax_t)time(NULL));
+               if (rename(filename, new)) {
+                       fprintf(stderr, "Unable to rename file '%s' to '%s'\n", filename, new);
+                       res = -1;
Index: pkgsrc/comms/asterisk21/patches/patch-main_manager.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_manager.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_manager.c        Mon Apr  8 03:20:09 2024
@@ -0,0 +1,90 @@
+$NetBSD: patch-main_manager.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- main/manager.c.orig        2024-01-25 16:23:00.000000000 +0000
++++ main/manager.c
+@@ -2779,7 +2779,7 @@ static char *handle_showmanconn(struct a
+       struct mansession_session *session;
+       time_t now = time(NULL);
+ #define HSMCONN_FORMAT1 "  %-15.15s  %-55.55s  %-10.10s  %-10.10s  %-8.8s  %-8.8s  %-10.10s  %-10.10s\n"
+-#define HSMCONN_FORMAT2 "  %-15.15s  %-55.55s  %-10d  %-10d  %-8d  %-8d  %-10.10d  %-10.10d\n"
++#define HSMCONN_FORMAT2 "  %-15.15s  %-55.55s  %-10jd  %-10jd  %-8d  %-8d  %-10.10d  %-10.10d\n"
+       int count = 0;
+       struct ao2_iterator i;
+ 
+@@ -2805,8 +2805,8 @@ static char *handle_showmanconn(struct a
+                       ao2_lock(session);
+                       ast_cli(a->fd, HSMCONN_FORMAT2, session->username,
+                               ast_sockaddr_stringify_addr(&session->addr),
+-                              (int) (session->sessionstart),
+-                              (int) (now - session->sessionstart),
++                              (intmax_t) (session->sessionstart),
++                              (intmax_t) (now - session->sessionstart),
+                               session->stream ? ast_iostream_get_fd(session->stream) : -1,
+                               session->inuse,
+                               session->readperm,
+@@ -3732,9 +3732,9 @@ static int action_ping(struct mansession
+       astman_append(
+               s,
+               "Ping: Pong\r\n"
+-              "Timestamp: %ld.%06lu\r\n"
++              "Timestamp: %jd.%06lu\r\n"
+               "\r\n",
+-              (long) now.tv_sec, (unsigned long) now.tv_usec);
++              (intmax_t) now.tv_sec, (unsigned long) now.tv_usec);
+       return 0;
+ }
+ 
+@@ -4936,7 +4936,7 @@ static void generate_status(struct manse
+               "DNID: %s\r\n"
+               "EffectiveConnectedLineNum: %s\r\n"
+               "EffectiveConnectedLineName: %s\r\n"
+-              "TimeToHangup: %ld\r\n"
++              "TimeToHangup: %jd\r\n"
+               "BridgeID: %s\r\n"
+               "Application: %s\r\n"
+               "Data: %s\r\n"
+@@ -4956,7 +4956,7 @@ static void generate_status(struct manse
+               S_OR(ast_channel_dialed(chan)->number.str, ""),
+               S_COR(effective_id.number.valid, effective_id.number.str, "<unknown>"),
+               S_COR(effective_id.name.valid, effective_id.name.str, "<unknown>"),
+-              (long)ast_channel_whentohangup(chan)->tv_sec,
++              (intmax_t)ast_channel_whentohangup(chan)->tv_sec,
+               bridge ? bridge->uniqueid : "",
+               ast_channel_appl(chan),
+               ast_channel_data(chan),
+@@ -7816,8 +7816,8 @@ static int __attribute__((format(printf,
+       if (timestampevents) {
+               now = ast_tvnow();
+               ast_str_append(&buf, 0,
+-                      "Timestamp: %ld.%06lu\r\n",
+-                      (long)now.tv_sec, (unsigned long) now.tv_usec);
++                      "Timestamp: %jd.%06lu\r\n",
++                      (intmax_t)now.tv_sec, (unsigned long) now.tv_usec);
+       }
+       if (manager_debug) {
+               static int seq;
+@@ -8329,13 +8329,13 @@ static void xml_copy_escape(struct ast_s
+               }
+ 
+               if (mode & 2) {
+-                      if (save == src && isdigit(*src)) {
++                      if (save == src && isdigit((unsigned char)*src)) {
+                               /* The first character of an XML attribute cannot be a digit */
+                               *dst++ = '_';
+                               *dst++ = *src;
+                               space -= 2;
+                               continue;
+-                      } else if (!isalnum(*src)) {
++                      } else if (!isalnum((unsigned char)*src)) {
+                               /* Replace non-alphanumeric with an underscore */
+                               *dst++ = '_';
+                               space--;
+@@ -8370,7 +8370,7 @@ static void xml_copy_escape(struct ast_s
+                       break;
+ 
+               default:
+-                      *dst++ = mode ? tolower(*src) : *src;
++                      *dst++ = mode ? tolower((unsigned char)*src) : *src;
+                       space--;
+               }
+       }
Index: pkgsrc/comms/asterisk21/patches/patch-main_pbx.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_pbx.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_pbx.c    Mon Apr  8 03:20:09 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-main_pbx.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- main/pbx.c.orig    2016-04-20 10:46:18.000000000 +0000
++++ main/pbx.c
+@@ -7973,7 +7973,7 @@ static int testtime_write(struct ast_cha
+       sscanf(remainder, "%79s", timezone);
+       tv = ast_mktime(&tm, S_OR(timezone, NULL));
+ 
+-      snprintf(result, sizeof(result), "%ld", (long) tv.tv_sec);
++      snprintf(result, sizeof(result), "%jd", (intmax_t) tv.tv_sec);
+       pbx_builtin_setvar_helper(chan, "__TESTTIME", result);
+       return 0;
+ }
Index: pkgsrc/comms/asterisk21/patches/patch-main_pbx__builtins.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_pbx__builtins.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_pbx__builtins.c  Mon Apr  8 03:20:09 2024
@@ -0,0 +1,24 @@
+$NetBSD: patch-main_pbx__builtins.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- main/pbx_builtins.c.orig   2024-01-25 16:23:00.000000000 +0000
++++ main/pbx_builtins.c
+@@ -898,7 +898,7 @@ static int pbx_builtin_gotoiftime(struct
+       struct ast_timing timing;
+       const char *ctime;
+       struct timeval tv = ast_tvnow();
+-      long timesecs;
++      int64_t timesecs;
+ 
+       if (!chan) {
+               ast_log(LOG_WARNING, "GotoIfTime requires a channel on which to operate\n");
+@@ -913,8 +913,8 @@ static int pbx_builtin_gotoiftime(struct
+       ts = s = ast_strdupa(data);
+ 
+       ast_channel_lock(chan);
+-      if ((ctime = pbx_builtin_getvar_helper(chan, "TESTTIME")) && sscanf(ctime, "%ld", &timesecs) == 1) {
+-              tv.tv_sec = timesecs;
++      if ((ctime = pbx_builtin_getvar_helper(chan, "TESTTIME")) && sscanf(ctime, "%" SCNd64, &timesecs) == 1) {
++              tv.tv_sec = (time_t)timesecs;
+       } else if (ctime) {
+               ast_log(LOG_WARNING, "Using current time to evaluate\n");
+               /* Reset when unparseable */
Index: pkgsrc/comms/asterisk21/patches/patch-main_pbx__timing.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_pbx__timing.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_pbx__timing.c    Mon Apr  8 03:20:09 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-main_pbx__timing.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- main/pbx_timing.c.orig     2018-05-07 17:30:09.949079213 +0000
++++ main/pbx_timing.c
+@@ -137,7 +137,7 @@ static void get_timerange(struct ast_tim
+               }
+               *endpart++ = '\0';
+               /* why skip non digits? Mostly to skip spaces */
+-              while (*endpart && !isdigit(*endpart)) {
++              while (*endpart && !isdigit((unsigned char)*endpart)) {
+                       endpart++;
+               }
+               if (!*endpart) {
Index: pkgsrc/comms/asterisk21/patches/patch-main_sched.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_sched.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_sched.c  Mon Apr  8 03:20:09 2024
@@ -0,0 +1,27 @@
+$NetBSD: patch-main_sched.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- main/sched.c.orig  2018-05-01 20:12:26.000000000 +0000
++++ main/sched.c
+@@ -498,7 +498,7 @@ static int sched_settime(struct timeval 
+               ast_assert(0);
+       }
+ 
+-      /*ast_debug(1, "TV -> %lu,%lu\n", tv->tv_sec, tv->tv_usec);*/
++      /*ast_debug(1, "TV -> %jd,%lu\n", (intmax_t)tv->tv_sec, tv->tv_usec);*/
+       if (ast_tvzero(*t))     /* not supplied, default to now */
+               *t = now;
+       *t = ast_tvadd(*t, ast_samp2tv(when, 1000));
+@@ -732,11 +732,11 @@ void ast_sched_dump(struct ast_sched_con
+               struct timeval delta;
+               q = ast_heap_peek(con->sched_heap, x);
+               delta = ast_tvsub(q->when, when);
+-              ast_log(LOG_DEBUG, "|%.4d | %-15p | %-15p | %.6ld : %.6ld |\n",
++              ast_log(LOG_DEBUG, "|%.4d | %-15p | %-15p | %.6jd : %.6ld |\n",
+                       q->sched_id->id,
+                       q->callback,
+                       q->data,
+-                      (long)delta.tv_sec,
++                      (intmax_t)delta.tv_sec,
+                       (long int)delta.tv_usec);
+       }
+       ast_mutex_unlock(&con->lock);
Index: pkgsrc/comms/asterisk21/patches/patch-main_stdtime_localtime.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_stdtime_localtime.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_stdtime_localtime.c      Mon Apr  8 03:20:09 2024
@@ -0,0 +1,147 @@
+$NetBSD: patch-main_stdtime_localtime.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- main/stdtime/localtime.c.orig      2018-05-01 20:12:26.000000000 +0000
++++ main/stdtime/localtime.c
+@@ -65,6 +65,10 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #endif
++#ifdef __sun
++#include <time.h>
++#include <xlocale.h>
++#endif
+ 
+ #include "private.h"
+ #include "tzfile.h"
+@@ -74,6 +78,7 @@
+ #include "asterisk/localtime.h"
+ #include "asterisk/strings.h"
+ #include "asterisk/linkedlists.h"
++#include "asterisk/autoconfig.h"
+ #include "asterisk/utils.h"
+ #include "asterisk/test.h"
+ 
+@@ -310,7 +315,7 @@ static struct state *      sstate_alloc(void)
+ static void           sstate_free(struct state *p);
+ 
+ static AST_LIST_HEAD_STATIC(zonelist, state);
+-#if defined(HAVE_NEWLOCALE) && defined(HAVE_USELOCALE)
++#if defined(HAVE_NEWLOCALE) && (defined(HAVE_USELOCALE) || HAVE_STRFTIME_L || HAVE_STRPTIME_L)
+ static AST_LIST_HEAD_STATIC(localelist, locale_entry);
+ #endif
+ 
+@@ -731,7 +736,7 @@ static void *notify_daemon(void *data)
+                       if (st.st_mtime > cur->mtime[0] || lst.st_mtime > cur->mtime[1]) {
+ #ifdef TEST_FRAMEWORK
+                               if (test) {
+-                                      ast_test_status_update(test, "Removing cached TZ entry '%s' because underlying file changed. (%ld != %ld) or (%ld != %ld)\n", name, st.st_mtime, cur->mtime[0], 
lst.st_mtime, cur->mtime[1]);
++                                      ast_test_status_update(test, "Removing cached TZ entry '%s' because underlying file changed. (%jd != %jd) or (%jd != %jd)\n", name, (intmax_t)st.st_mtime, 
(intmax_t)cur->mtime[0], (intmax_t)lst.st_mtime, (intmax_t)cur->mtime[1]);
+                               } else
+ #endif
+                               {
+@@ -2362,7 +2367,8 @@ struct timeval ast_mktime(struct ast_tm 
+       return time1(tmp, localsub, 0L, sp);
+ }
+ 
+-#if defined(HAVE_NEWLOCALE) && defined(HAVE_USELOCALE)
++#if defined(HAVE_NEWLOCALE) && (defined(HAVE_USELOCALE) || HAVE_STRFTIME_L || HAVE_STRPTIME_L)
++#if defined HAVE_USELOCALE
+ static struct locale_entry *find_by_locale(locale_t locale)
+ {
+       struct locale_entry *cur;
+@@ -2373,6 +2379,7 @@ static struct locale_entry *find_by_loca
+       }
+       return NULL;
+ }
++#endif
+ 
+ static struct locale_entry *find_by_name(const char *name)
+ {
+@@ -2385,6 +2392,23 @@ static struct locale_entry *find_by_name
+       return NULL;
+ }
+ 
++#if HAVE_STRFTIME_L || HAVE_STRPTIME_L
++static locale_t ast_getlocale(const char *locale)
++{
++      struct locale_entry *cur;
++
++      AST_LIST_LOCK(&localelist);
++      if ((cur = find_by_name(locale)) == NULL) {
++              cur->locale = newlocale(LC_ALL_MASK, locale, NULL);
++              strcpy(cur->name, locale); /* SAFE */
++              AST_LIST_INSERT_TAIL(&localelist, cur, list);
++      }
++      AST_LIST_UNLOCK(&localelist);
++      return cur->locale;
++}
++#endif
++
++#if !HAVE_STRFTIME_L || !HAVE_STRPTIME_L
+ static const char *store_by_locale(locale_t prevlocale)
+ {
+       struct locale_entry *cur;
+@@ -2442,6 +2466,7 @@ const char *ast_setlocale(const char *lo
+       AST_LIST_UNLOCK(&localelist);
+       return store_by_locale(prevlocale);
+ }
++#endif
+ #else
+ const char *ast_setlocale(const char *unused)
+ {
+@@ -2455,7 +2480,9 @@ int ast_strftime_locale(char *buf, size_
+       char *format = ast_calloc(1, fmtlen), *fptr = format, *newfmt;
+       int decimals = -1, i, res;
+       long fraction;
++#if !HAVE_STRFTIME_L
+       const char *prevlocale;
++#endif
+ 
+       buf[0] = '\0';/* Ensure the buffer is initialized. */
+       if (!format) {
+@@ -2510,6 +2537,14 @@ defcase:        *fptr++ = *tmp;
+       }
+       *fptr = '\0';
+ #undef strftime
++#if HAVE_STRFTIME_L
++      if (locale) {
++              locale_t l = ast_getlocale(locale);
++              res = (int)strftime_l(buf, len, format, (struct tm *)tm, l);
++      } else {
++              res = (int)strftime(buf, len, format, (struct tm *)tm);
++      }
++#else
+       if (locale) {
+               prevlocale = ast_setlocale(locale);
+       }
+@@ -2517,6 +2552,7 @@ defcase: *fptr++ = *tmp;
+       if (locale) {
+               ast_setlocale(prevlocale);
+       }
++#endif
+       ast_free(format);
+       return res;
+ }
+@@ -2530,11 +2566,22 @@ char *ast_strptime_locale(const char *s,
+ {
+       struct tm tm2 = { 0, };
+       char *res;
++#if !HAVE_STRPTIME_L
+       const char *prevlocale;
++#endif
+ 
++#if HAVE_STRPTIME_L
++      if (locale) {
++              locale_t l = ast_getlocale(locale);
++              res = strptime_l(s, format, &tm2, l);
++      } else {
++              res = strptime(s, format, &tm2);
++      }
++#else
+       prevlocale = ast_setlocale(locale);
+       res = strptime(s, format, &tm2);
+       ast_setlocale(prevlocale);
++#endif
+       /* ast_time and tm are not the same size - tm is a subset of
+        * ast_time.  Hence, the size of tm needs to be used for the
+        * memcpy
Index: pkgsrc/comms/asterisk21/patches/patch-main_taskprocessor.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_taskprocessor.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_taskprocessor.c  Mon Apr  8 03:20:09 2024
@@ -0,0 +1,38 @@
+$NetBSD: patch-main_taskprocessor.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+* Fix segfault under NetBSD/aarch64 9.99.80.
+
+--- main/taskprocessor.c.orig  2021-01-21 16:28:04.000000000 +0000
++++ main/taskprocessor.c
+@@ -37,6 +37,13 @@
+ #include "asterisk/taskprocessor.h"
+ #include "asterisk/sem.h"
+ 
++/* XXX, pthread_equal() is misused to compare non-valid thread pointers */
++static int
++pt_pthread_equal(pthread_t t1, pthread_t t2)
++{
++      return t1 == t2;
++}
++
+ /*!
+  * \brief tps_task structure is queued to a taskprocessor
+  *
+@@ -263,7 +270,7 @@ static void default_listener_shutdown(st
+ 
+       ast_assert(pvt->poll_thread != AST_PTHREADT_NULL);
+ 
+-      if (pthread_equal(pthread_self(), pvt->poll_thread)) {
++      if (pt_pthread_equal(pthread_self(), pvt->poll_thread)) {
+               res = pthread_detach(pvt->poll_thread);
+               if (res != 0) {
+                       ast_log(LOG_ERROR, "pthread_detach(): %s\n", strerror(errno));
+@@ -1268,7 +1275,7 @@ int ast_taskprocessor_is_task(struct ast
+       int is_task;
+ 
+       ao2_lock(tps);
+-      is_task = pthread_equal(tps->thread, pthread_self());
++      is_task = pt_pthread_equal(tps->thread, pthread_self());
+       ao2_unlock(tps);
+       return is_task;
+ }
Index: pkgsrc/comms/asterisk21/patches/patch-main_tdd.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_tdd.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_tdd.c    Mon Apr  8 03:20:09 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-main_tdd.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- main/tdd.c.orig    2018-05-07 17:30:59.571540797 +0000
++++ main/tdd.c
+@@ -313,7 +313,7 @@ int tdd_generate(struct tdd_state *tdd, 
+               if ( (tdd->charnum++) % 72 == 0)
+                       PUT_TDD(tdd->mode ? 27 /* FIGS */ : 31 /* LTRS */);
+ 
+-              c = toupper(str[x]);
++              c = toupper((unsigned char)str[x]);
+ #if   0
+               printf("%c",c); fflush(stdout);
+ #endif
Index: pkgsrc/comms/asterisk21/patches/patch-main_test.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_test.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_test.c   Mon Apr  8 03:20:09 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-main_test.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- main/test.c.orig   2015-10-09 21:48:48.000000000 +0000
++++ main/test.c
+@@ -975,7 +975,7 @@ static char *test_cli_generate_results(s
+                       if (!(buf = ast_str_create(256))) {
+                               return NULL;
+                       }
+-                      ast_str_set(&buf, 0, "%s/asterisk_test_results-%ld.%s", ast_config_AST_LOG_DIR, (long) time.tv_sec, type);
++                      ast_str_set(&buf, 0, "%s/asterisk_test_results-%jd.%s", ast_config_AST_LOG_DIR, (intmax_t) time.tv_sec, type);
+ 
+                       file = ast_str_buffer(buf);
+               }
Index: pkgsrc/comms/asterisk21/patches/patch-main_utils.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-main_utils.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-main_utils.c  Mon Apr  8 03:20:09 2024
@@ -0,0 +1,62 @@
+$NetBSD: patch-main_utils.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- main/utils.c.orig  2024-03-18 13:25:20.000000000 +0000
++++ main/utils.c
+@@ -41,7 +41,11 @@
+ #elif defined(__NetBSD__)
+ #include <lwp.h>
+ #endif
+-
++#if defined(HAVE_GETIFADDRS)
++#include <ifaddrs.h>
++#include <net/if_dl.h>
++#endif
++ 
+ #include "asterisk/network.h"
+ #include "asterisk/ast_version.h"
+ 
+@@ -213,7 +217,7 @@ struct hostent *ast_gethostbyname(const 
+       while (s && *s) {
+               if (*s == '.')
+                       dots++;
+-              else if (!isdigit(*s))
++              else if (!isdigit((unsigned char)*s))
+                       break;
+               s++;
+       }
+@@ -937,7 +941,7 @@ const char *ast_inet_ntoa(struct in_addr
+ 
+ static int dev_urandom_fd = -1;
+ 
+-#ifndef __linux__
++#if !defined(__linux__) && !defined(__DragonFly__)
+ #undef pthread_create /* For ast_pthread_create function only */
+ #endif /* !__linux__ */
+ 
+@@ -2238,13 +2242,13 @@ int ast_false(const char *s)
+ static struct timeval tvfix(struct timeval a)
+ {
+       if (a.tv_usec >= ONE_MILLION) {
+-              ast_log(LOG_WARNING, "warning too large timestamp %ld.%ld\n",
+-                      (long)a.tv_sec, (long int) a.tv_usec);
++              ast_log(LOG_WARNING, "warning too large timestamp %jd.%ld\n",
++                      (intmax_t)a.tv_sec, (long int) a.tv_usec);
+               a.tv_sec += a.tv_usec / ONE_MILLION;
+               a.tv_usec %= ONE_MILLION;
+       } else if (a.tv_usec < 0) {
+-              ast_log(LOG_WARNING, "warning negative timestamp %ld.%ld\n",
+-                      (long)a.tv_sec, (long int) a.tv_usec);
++              ast_log(LOG_WARNING, "warning negative timestamp %jd.%ld\n",
++                      (intmax_t)a.tv_sec, (long int) a.tv_usec);
+               a.tv_usec = 0;
+       }
+       return a;
+@@ -2404,7 +2408,7 @@ char *ast_to_camel_case_delim(const char
+ 
+       while (front) {
+               size = strlen(front);
+-              *front = toupper(*front);
++              *front = toupper((unsigned char)*front);
+               ast_copy_string(buf, front, size + 1);
+               buf += size;
+               front = strtok_r(NULL, delim, &back);
Index: pkgsrc/comms/asterisk21/patches/patch-menuselect_menuselect.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-menuselect_menuselect.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-menuselect_menuselect.c       Mon Apr  8 03:20:09 2024
@@ -0,0 +1,22 @@
+$NetBSD: patch-menuselect_menuselect.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- menuselect/menuselect.c.orig       2018-05-07 17:13:49.312815875 +0000
++++ menuselect/menuselect.c
+@@ -1461,7 +1461,7 @@ static int generate_makedeps_file(void)
+                               }
+ 
+                               for (c = dep->name; *c; c++)
+-                                      fputc(toupper(*c), f);
++                                      fputc(toupper((unsigned char)*c), f);
+                               fputc(' ', f);
+                       }
+                       AST_LIST_TRAVERSE(&mem->uses, use, list) {
+@@ -1477,7 +1477,7 @@ static int generate_makedeps_file(void)
+                               }
+ 
+                               for (c = use->name; *c; c++)
+-                                      fputc(toupper(*c), f);
++                                      fputc(toupper((unsigned char)*c), f);
+                               fputc(' ', f);
+                       }
+ 
Index: pkgsrc/comms/asterisk21/patches/patch-pbx_pbx__config.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-pbx_pbx__config.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-pbx_pbx__config.c     Mon Apr  8 03:20:09 2024
@@ -0,0 +1,22 @@
+$NetBSD: patch-pbx_pbx__config.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- pbx/pbx_config.c.orig      2018-05-07 17:17:05.322793470 +0000
++++ pbx/pbx_config.c
+@@ -237,7 +237,7 @@ static const char *skip_words(const char
+ {
+       int in_blank = 0;
+       for (;n && *p; p++) {
+-              if (isblank(*p) /* XXX order is important */ && !in_blank) {
++              if (isblank((unsigned char)*p) /* XXX order is important */ && !in_blank) {
+                       n--;    /* one word is gone */
+                       in_blank = 1;
+               } else if (/* !is_blank(*p), we know already, && */ in_blank) {
+@@ -447,7 +447,7 @@ static char *handle_cli_dialplan_remove_
+               if (!strcmp("hint", c))
+                       removing_priority = PRIORITY_HINT;
+               else {
+-                      while (*c && isdigit(*c))
++                      while (*c && isdigit((unsigned char)*c))
+                               c++;
+                       if (*c) { /* non-digit in string */
+                               ast_cli(a->fd, "Invalid priority '%s'\n", a->argv[4]);
Index: pkgsrc/comms/asterisk21/patches/patch-pbx_pbx__dundi.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-pbx_pbx__dundi.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-pbx_pbx__dundi.c      Mon Apr  8 03:20:09 2024
@@ -0,0 +1,40 @@
+$NetBSD: patch-pbx_pbx__dundi.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- pbx/pbx_dundi.c.orig       2015-10-09 21:48:48.000000000 +0000
++++ pbx/pbx_dundi.c
+@@ -47,7 +47,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revisi
+ #include <pthread.h>
+ #include <net/if.h>
+ 
+-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__Darwin__)
++#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__Darwin__) || defined(__DragonFly__)
+ #include <net/if_dl.h>
+ #include <ifaddrs.h>
+ #include <signal.h>
+@@ -885,7 +885,7 @@ static int cache_save_hint(dundi_eid *ei
+ 
+       time(&timeout);
+       timeout += expiration;
+-      snprintf(data, sizeof(data), "%ld|", (long)(timeout));
++      snprintf(data, sizeof(data), "%jd|", (intmax_t)(timeout));
+ 
+       ast_db_put("dundi/cache", key1, data);
+       ast_debug(1, "Caching hint at '%s'\n", key1);
+@@ -921,7 +921,7 @@ static int cache_save(dundi_eid *eidpeer
+       /* Build request string */
+       time(&timeout);
+       timeout += expiration;
+-      snprintf(data, sizeof(data), "%ld|", (long)(timeout));
++      snprintf(data, sizeof(data), "%jd|", (intmax_t)(timeout));
+       for (x=start;x<req->respcount;x++) {
+               /* Skip anything with an illegal pipe in it */
+               if (strchr(req->dr[x].dest, '|'))
+@@ -2166,7 +2166,7 @@ static void check_password(void)
+ 
+       time(&now);
+ #if 0
+-      printf("%ld/%ld\n", now, rotatetime);
++      printf("%jd/%jd\n", now, rotatetime);
+ #endif
+       if ((now - rotatetime) >= 0) {
+               /* Time to rotate keys */
Index: pkgsrc/comms/asterisk21/patches/patch-res_ael_pval.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_ael_pval.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_ael_pval.c        Mon Apr  8 03:20:09 2024
@@ -0,0 +1,41 @@
+$NetBSD: patch-res_ael_pval.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- res/ael/pval.c.orig        2018-05-07 17:37:44.116772314 +0000
++++ res/ael/pval.c
+@@ -855,7 +855,7 @@ static void check_timerange(pval *p)
+       }
+       *e = '\0';
+       e++;
+-      while (*e && !isdigit(*e))
++      while (*e && !isdigit((unsigned char)*e))
+               e++;
+       if (!*e) {
+               ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The time range format (%s) is missing the end time!\n",
+@@ -3531,11 +3531,11 @@ static int gen_prios(struct ael_extensio
+                               for_init->appargs = strdup(buf2);
+                       } else {
+                               strp2 = p->u1.for_init;
+-                              while (*strp2 && isspace(*strp2))
++                              while (*strp2 && isspace((unsigned char)*strp2))
+                                       strp2++;
+                               if (*strp2 == '&') { /* itsa macro call */
+                                       char *strp3 = strp2+1;
+-                                      while (*strp3 && isspace(*strp3))
++                                      while (*strp3 && isspace((unsigned char)*strp3))
+                                               strp3++;
+                                       strcpy(buf2, strp3);
+                                       strp3 = strchr(buf2,'(');
+@@ -3581,11 +3581,11 @@ static int gen_prios(struct ael_extensio
+                               for_inc->app = strdup("MSet");
+                       } else {
+                               strp2 = p->u3.for_inc;
+-                              while (*strp2 && isspace(*strp2))
++                              while (*strp2 && isspace((unsigned char)*strp2))
+                                       strp2++;
+                               if (*strp2 == '&') { /* itsa macro call  */
+                                       char *strp3 = strp2+1;
+-                                      while (*strp3 && isspace(*strp3))
++                                      while (*strp3 && isspace((unsigned char)*strp3))
+                                               strp3++;
+                                       strcpy(buf2, strp3);
+                                       strp3 = strchr(buf2,'(');
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__calendar.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__calendar.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__calendar.c   Mon Apr  8 03:20:09 2024
@@ -0,0 +1,37 @@
+$NetBSD: patch-res_res__calendar.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- res/res_calendar.c.orig    2015-10-09 21:48:48.000000000 +0000
++++ res/res_calendar.c
+@@ -1245,7 +1245,7 @@ static int calendar_query_exec(struct as
+       i = ao2_iterator_init(cal->events, 0);
+       while ((event = ao2_iterator_next(&i))) {
+               if (!(start > event->end || end < event->start)) {
+-                      ast_debug(10, "%s (%ld - %ld) overlapped with (%ld - %ld)\n", event->summary, (long) event->start, (long) event->end, (long) start, (long) end);
++                      ast_debug(10, "%s (%jd - %jd) overlapped with (%jd - %jd)\n", event->summary, (intmax_t) event->start, (intmax_t) event->end, (intmax_t) start, (intmax_t) end);
+                       if (add_event_to_list(events, event, start, end) < 0) {
+                               event = ast_calendar_unref_event(event);
+                               cal = unref_calendar(cal);
+@@ -1378,9 +1378,9 @@ static int calendar_query_result_exec(st
+               } else if (!strcasecmp(args.field, "uid")) {
+                       ast_copy_string(buf, entry->event->uid, len);
+               } else if (!strcasecmp(args.field, "start")) {
+-                      snprintf(buf, len, "%ld", (long) entry->event->start);
++                      snprintf(buf, len, "%jd", (intmax_t) entry->event->start);
+               } else if (!strcasecmp(args.field, "end")) {
+-                      snprintf(buf, len, "%ld", (long) entry->event->end);
++                      snprintf(buf, len, "%jd", (intmax_t) entry->event->end);
+               } else if (!strcasecmp(args.field, "busystate")) {
+                       snprintf(buf, len, "%u", entry->event->busy_state);
+               } else if (!strcasecmp(args.field, "attendees")) {
+@@ -1739,9 +1739,9 @@ static int calendar_event_read(struct as
+       } else if (!strcasecmp(data, "uid")) {
+               ast_copy_string(buf, event->uid, len);
+       } else if (!strcasecmp(data, "start")) {
+-              snprintf(buf, len, "%ld", (long)event->start);
++              snprintf(buf, len, "%jd", (intmax_t)event->start);
+       } else if (!strcasecmp(data, "end")) {
+-              snprintf(buf, len, "%ld", (long)event->end);
++              snprintf(buf, len, "%jd", (intmax_t)event->end);
+       } else if (!strcasecmp(data, "busystate")) {
+               snprintf(buf, len, "%u", event->busy_state);
+       } else if (!strcasecmp(data, "attendees")) {
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__celt.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__celt.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__celt.c Mon Apr  8 03:20:09 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-res_res__format__attr__celt.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- res/res_format_attr_celt.c.orig    2022-04-14 22:16:42.000000000 +0000
++++ res/res_format_attr_celt.c
+@@ -89,7 +89,7 @@ static struct ast_format *celt_parse_sdp
+ 
+       /* lower-case everything, so we are case-insensitive */
+       for (attrib = attribs; *attrib; ++attrib) {
+-              *attrib = tolower(*attrib);
++              *attrib = tolower((unsigned char)*attrib);
+       } /* based on channels/chan_sip.c:process_a_sdp_image() */
+ 
+       if (sscanf(attribs, "framesize=%30u", &val) == 1) {
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__h263.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__h263.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__h263.c Mon Apr  8 03:20:09 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-res_res__format__attr__h263.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- res/res_format_attr_h263.c.orig    2022-04-14 22:16:42.000000000 +0000
++++ res/res_format_attr_h263.c
+@@ -180,7 +180,7 @@ static struct ast_format *h263_parse_sdp
+ 
+       /* upper-case everything, so we are case-insensitive */
+       for (attrib = attribs; *attrib; ++attrib) {
+-              *attrib = toupper(*attrib);
++              *attrib = toupper((unsigned char)*attrib);
+       } /* based on channels/chan_sip.c:process_a_sdp_image() */
+ 
+       attr->BPP = H263_ATTR_KEY_UNSET;
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__ilbc.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__ilbc.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__ilbc.c Mon Apr  8 03:20:09 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-res_res__format__attr__ilbc.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- res/res_format_attr_ilbc.c.orig    2022-04-14 22:16:42.000000000 +0000
++++ res/res_format_attr_ilbc.c
+@@ -87,7 +87,7 @@ static struct ast_format *ilbc_parse_sdp
+ 
+       /* lower-case everything, so we are case-insensitive */
+       for (attrib = attribs; *attrib; ++attrib) {
+-              *attrib = tolower(*attrib);
++              *attrib = tolower((unsigned char)*attrib);
+       } /* based on channels/chan_sip.c:process_a_sdp_image() */
+ 
+       if ((kvp = strstr(attribs, "mode")) && sscanf(kvp, "mode=%30u", &val) == 1) {
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__opus.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__opus.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__opus.c Mon Apr  8 03:20:09 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-res_res__format__attr__opus.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- res/res_format_attr_opus.c.orig    2022-04-14 22:16:42.000000000 +0000
++++ res/res_format_attr_opus.c
+@@ -151,7 +151,7 @@ static struct ast_format *opus_parse_sdp
+ 
+       /* lower-case everything, so we are case-insensitive */
+       for (attrib = attribs; *attrib; ++attrib) {
+-              *attrib = tolower(*attrib);
++              *attrib = tolower((unsigned char)*attrib);
+       } /* based on channels/chan_sip.c:process_a_sdp_image() */
+ 
+       sdp_fmtp_get(attribs, CODEC_OPUS_ATTR_MAX_PLAYBACK_RATE, &attr->maxplayrate);
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__silk.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__silk.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__silk.c Mon Apr  8 03:20:09 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-res_res__format__attr__silk.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- res/res_format_attr_silk.c.orig    2022-04-14 22:16:42.000000000 +0000
++++ res/res_format_attr_silk.c
+@@ -96,7 +96,7 @@ static struct ast_format *silk_parse_sdp
+ 
+       /* lower-case everything, so we are case-insensitive */
+       for (attrib = attribs; *attrib; ++attrib) {
+-              *attrib = tolower(*attrib);
++              *attrib = tolower((unsigned char)*attrib);
+       } /* based on channels/chan_sip.c:process_a_sdp_image() */
+ 
+       if (sscanf(attribs, "maxaveragebitrate=%30u", &val) == 1) {
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__siren14.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__siren14.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__siren14.c      Mon Apr  8 03:20:09 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-res_res__format__attr__siren14.c,v 1.1 2024/04/08 03:20:09 jnemeth Exp $
+
+--- res/res_format_attr_siren14.c.orig 2022-04-14 22:16:42.000000000 +0000
++++ res/res_format_attr_siren14.c
+@@ -55,7 +55,7 @@ static struct ast_format *siren14_parse_
+ 
+       /* lower-case everything, so we are case-insensitive */
+       for (attrib = attribs; *attrib; ++attrib) {
+-              *attrib = tolower(*attrib);
++              *attrib = tolower((unsigned char)*attrib);
+       } /* based on channels/chan_sip.c:process_a_sdp_image() */
+ 
+       if (sscanf(attribs, "bitrate=%30u", &val) == 1) {
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__siren7.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__siren7.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__siren7.c       Mon Apr  8 03:20:10 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-res_res__format__attr__siren7.c,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- res/res_format_attr_siren7.c.orig  2022-04-14 22:16:42.000000000 +0000
++++ res/res_format_attr_siren7.c
+@@ -55,7 +55,7 @@ static struct ast_format *siren7_parse_s
+ 
+       /* lower-case everything, so we are case-insensitive */
+       for (attrib = attribs; *attrib; ++attrib) {
+-              *attrib = tolower(*attrib);
++              *attrib = tolower((unsigned char)*attrib);
+       } /* based on channels/chan_sip.c:process_a_sdp_image() */
+ 
+       if (sscanf(attribs, "bitrate=%30u", &val) == 1) {
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__vp8.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__vp8.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__format__attr__vp8.c  Mon Apr  8 03:20:10 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-res_res__format__attr__vp8.c,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- res/res_format_attr_vp8.c.orig     2022-04-14 22:16:42.000000000 +0000
++++ res/res_format_attr_vp8.c
+@@ -92,7 +92,7 @@ static struct ast_format *vp8_parse_sdp_
+ 
+       /* lower-case everything, so we are case-insensitive */
+       for (attrib = attribs; *attrib; ++attrib) {
+-              *attrib = tolower(*attrib);
++              *attrib = tolower((unsigned char)*attrib);
+       } /* based on channels/chan_sip.c:process_a_sdp_image() */
+ 
+       if ((kvp = strstr(attribs, "max-fr")) && sscanf(kvp, "max-fr=%30u", &val) == 1) {
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__hep__pjsip.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__hep__pjsip.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__hep__pjsip.c Mon Apr  8 03:20:10 2024
@@ -0,0 +1,23 @@
+$NetBSD: patch-res_res__hep__pjsip.c,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- res/res_hep_pjsip.c.orig   2018-06-20 15:24:25.999288749 +0000
++++ res/res_hep_pjsip.c
+@@ -34,6 +34,9 @@
+ 
+ #include "asterisk.h"
+ 
++#include "asterisk/module.h"
++#include "asterisk/netsock2.h"
++
+ #include <pjsip.h>
+ #include <pjsip_ua.h>
+ #include <pjlib.h>
+@@ -41,8 +44,6 @@
+ #include "asterisk/res_pjsip.h"
+ #include "asterisk/res_pjsip_session.h"
+ #include "asterisk/res_hep.h"
+-#include "asterisk/module.h"
+-#include "asterisk/netsock2.h"
+ 
+ static char *assign_uuid(const pj_str_t *call_id, const pj_str_t *local_tag, const pj_str_t *remote_tag)
+ {
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__limit.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__limit.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__limit.c      Mon Apr  8 03:20:10 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-res_res__limit.c,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- res/res_limit.c.orig       2018-05-07 17:38:31.944908572 +0000
++++ res/res_limit.c
+@@ -191,7 +191,7 @@ static char *handle_cli_ulimit(struct as
+                               else
+                                       snprintf(printlimit, sizeof(printlimit), "limited to %d", (int) rlimit.rlim_cur);
+                               desc = str2desc(a->argv[1]);
+-                              ast_cli(a->fd, "%c%s (%s) is %s.\n", toupper(desc[0]), desc + 1, a->argv[1], printlimit);
++                              ast_cli(a->fd, "%c%s (%s) is %s.\n", toupper((unsigned char)desc[0]), desc + 1, a->argv[1], printlimit);
+                       } else
+                               ast_cli(a->fd, "Could not retrieve resource limits for %s: %s\n", str2desc(a->argv[1]), strerror(errno));
+                       return CLI_SUCCESS;
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__musiconhold.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__musiconhold.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__musiconhold.c        Mon Apr  8 03:20:10 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-res_res__musiconhold.c,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- res/res_musiconhold.c.orig 2021-03-04 16:46:08.000000000 +0000
++++ res/res_musiconhold.c
+@@ -1153,7 +1153,7 @@ static void moh_parse_options(struct ast
+               } else if (!strcasecmp(var->name, "announcement")) {
+                       ast_copy_string(mohclass->announcement, var->value, sizeof(mohclass->announcement));
+                       ast_set_flag(mohclass, MOH_ANNOUNCEMENT);
+-              } else if (!strcasecmp(var->name, "digit") && (isdigit(*var->value) || strchr("*#", *var->value))) {
++              } else if (!strcasecmp(var->name, "digit") && (isdigit((unsigned char)*var->value) || strchr("*#", *var->value))) {
+                       mohclass->digit = *var->value;
+               } else if (!strcasecmp(var->name, "random")) {
+                       static int deprecation_warning = 0;
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__pjproject.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__pjproject.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__pjproject.c  Mon Apr  8 03:20:10 2024
@@ -0,0 +1,31 @@
+$NetBSD: patch-res_res__pjproject.c,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- res/res_pjproject.c.orig   2019-09-05 13:09:20.000000000 +0000
++++ res/res_pjproject.c
+@@ -99,20 +99,22 @@
+ #include "asterisk.h"
+ 
+ #include <stdarg.h>
+-#include <pjlib.h>
+-#include <pjsip.h>
+-#include <pj/log.h>
+ 
+ #include "asterisk/options.h"
+ #include "asterisk/logger.h"
+ #include "asterisk/module.h"
+ #include "asterisk/cli.h"
+-#include "asterisk/res_pjproject.h"
+ #include "asterisk/vector.h"
+ #include "asterisk/sorcery.h"
+ #include "asterisk/test.h"
+ #include "asterisk/netsock2.h"
+ 
++#include <pjlib.h>
++#include <pjsip.h>
++#include <pj/log.h>
++
++#include "asterisk/res_pjproject.h"
++
+ static struct ast_sorcery *pjproject_sorcery;
+ static pj_log_func *log_cb_orig;
+ static unsigned decor_orig;
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__pjsip__diversion.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__pjsip__diversion.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__pjsip__diversion.c   Mon Apr  8 03:20:10 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-res_res__pjsip__diversion.c,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- res/res_pjsip_diversion.c.orig     2022-04-14 22:16:42.000000000 +0000
++++ res/res_pjsip_diversion.c
+@@ -61,7 +61,7 @@ static int sip_is_token(const char *str)
+ 
+       is_token = 1;
+       do {
+-              if (!isalnum(*str)
++              if (!isalnum((unsigned char)*str)
+                       && !strchr("-.!%*_+`'~", *str)) {
+                       /* The character is not allowed in a token. */
+                       is_token = 0;
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__pjsip_pjsip__configuration.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__pjsip_pjsip__configuration.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__pjsip_pjsip__configuration.c Mon Apr  8 03:20:10 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-res_res__pjsip_pjsip__configuration.c,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- res/res_pjsip/pjsip_configuration.c.orig   2022-04-14 22:16:42.000000000 +0000
++++ res/res_pjsip/pjsip_configuration.c
+@@ -1039,7 +1039,7 @@ static int from_user_handler(const struc
+       const char *val;
+ 
+       for (val = var->value; *val; val++) {
+-              if (!isalpha(*val) && !isdigit(*val) && !strchr(valid_uri_marks, *val)) {
++              if (!isalpha((unsigned char)*val) && !isdigit((unsigned char)*val) && !strchr(valid_uri_marks, *val)) {
+                       ast_log(LOG_ERROR, "Error configuring endpoint '%s' - '%s' field "
+                       "contains invalid character '%c'\n",
+                       ast_sorcery_object_get_id(endpoint), var->name, *val);
Index: pkgsrc/comms/asterisk21/patches/patch-res_res__xmpp.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-res_res__xmpp.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-res_res__xmpp.c       Mon Apr  8 03:20:10 2024
@@ -0,0 +1,36 @@
+$NetBSD: patch-res_res__xmpp.c,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- res/res_xmpp.c.orig        2021-06-24 12:50:57.000000000 +0000
++++ res/res_xmpp.c
+@@ -62,6 +62,13 @@
+ #include "asterisk/config_options.h"
+ #include "asterisk/json.h"
+ 
++/* XXX, pthread_equal() is misused to compare non-valid thread pointers */
++static int
++pt_pthread_equal(pthread_t t1, pthread_t t2)
++{
++      return t1 == t2;
++}
++
+ /*** DOCUMENTATION
+       <application name="JabberSend" language="en_US" module="res_xmpp">
+               <synopsis>
+@@ -3527,7 +3534,7 @@ static int xmpp_action_hook(void *data, 
+ 
+ int ast_xmpp_client_disconnect(struct ast_xmpp_client *client)
+ {
+-      if ((client->thread != AST_PTHREADT_NULL) && !pthread_equal(pthread_self(), client->thread)) {
++      if ((client->thread != AST_PTHREADT_NULL) && !pt_pthread_equal(pthread_self(), client->thread)) {
+               xmpp_client_change_state(client, XMPP_STATE_DISCONNECTING);
+               pthread_cancel(client->thread);
+               pthread_join(client->thread, NULL);
+@@ -3669,7 +3676,7 @@ static int xmpp_client_receive(struct as
+                       /* if we stumble on the ending tag character,
+                          we skip any whitespace that follows it*/
+                       if (c == '>') {
+-                              while (isspace(buf[pos+1])) {
++                              while (isspace((unsigned char)buf[pos+1])) {
+                                       pos++;
+                               }
+                       }
Index: pkgsrc/comms/asterisk21/patches/patch-sounds_Makefile
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-sounds_Makefile:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-sounds_Makefile       Mon Apr  8 03:20:10 2024
@@ -0,0 +1,25 @@
+$NetBSD: patch-sounds_Makefile,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- sounds/Makefile.orig       2018-05-01 20:12:26.000000000 +0000
++++ sounds/Makefile
+@@ -124,20 +124,6 @@ endef # sound_format_lang_rule
+ all: $(CORE_SOUNDS) $(EXTRA_SOUNDS) $(MOH)
+ 
+ have_download:
+-      @if test "$(DOWNLOAD)" = ":" ; then \
+-              echo "**************************************************"; \
+-              echo "***                                            ***"; \
+-              echo "*** You must have either wget, curl, or fetch  ***"; \
+-              echo "*** to be able to automatically download and   ***"; \
+-              echo "*** install the requested sound packages.      ***"; \
+-              echo "***                                            ***"; \
+-              echo "*** Please install one of these, or remove any ***"; \
+-              echo "*** extra sound package selections in          ***"; \
+-              echo "*** menuselect before installing Asterisk.     ***"; \
+-              echo "***                                            ***"; \
+-              echo "**************************************************"; \
+-              exit 1; \
+-      fi
+ 
+ $(eval $(call sound_format_lang_rule,$(SOUNDS_DIR),core-sounds,en,$(CORE_SOUNDS_VERSION)))
+ 
Index: pkgsrc/comms/asterisk21/patches/patch-tests_test__locale.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-tests_test__locale.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-tests_test__locale.c  Mon Apr  8 03:20:10 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-tests_test__locale.c,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- tests/test_locale.c.orig   2015-10-09 21:48:48.000000000 +0000
++++ tests/test_locale.c
+@@ -81,7 +81,7 @@ static char *handle_cli_test_locales(str
+ 
+       /* First we run a set of tests with the global locale, which isn't thread-safe. */
+       if (!(localedir = opendir(
+-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined( __NetBSD__ ) || defined(__APPLE__)
++#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined( __NetBSD__ ) || defined(__APPLE__) || defined(__DragonFly__)
+               "/usr/share/locale"
+ #else /* Linux */
+               "/usr/lib/locale"
Index: pkgsrc/comms/asterisk21/patches/patch-tests_test__voicemail__api.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-tests_test__voicemail__api.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-tests_test__voicemail__api.c  Mon Apr  8 03:20:10 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-tests_test__voicemail__api.c,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- tests/test_voicemail_api.c.orig    2015-10-09 21:48:48.000000000 +0000
++++ tests/test_voicemail_api.c
+@@ -383,7 +383,7 @@ static struct ast_vm_msg_snapshot *test_
+       struct ast_vm_msg_snapshot *snapshot;
+ 
+       snprintf(msg_id_hash, sizeof(msg_id_hash), "%s%s%s", exten, context, callerid);
+-      snprintf(msg_id_buf, sizeof(msg_id_buf), "%ld-%d", (long)time(NULL), ast_str_hash(msg_id_hash));
++      snprintf(msg_id_buf, sizeof(msg_id_buf), "%jd-%d", (intmax_t)time(NULL), ast_str_hash(msg_id_hash));
+ 
+       if ((snapshot = ast_calloc(1, sizeof(*snapshot)))) {
+               if (ast_string_field_init(snapshot, 128)) {
Index: pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0100-netbsd.patch
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0100-netbsd.patch:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0100-netbsd.patch       Mon Apr  8 03:20:10 2024
@@ -0,0 +1,17 @@
+$NetBSD: patch-third-party_pjproject_patches_0100-netbsd.patch,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- third-party/pjproject/patches/0100-netbsd.patch.orig       2024-03-18 06:26:23.102690730 +0000
++++ third-party/pjproject/patches/0100-netbsd.patch
+@@ -0,0 +1,12 @@
++--- a/build/os-netbsd.mak     2024-03-17 23:06:14.983947255 -0700
+++++ b/build/os-netbsd.mak     2024-03-17 22:10:03.024052147 -0700
++@@ -0,0 +1,9 @@
+++export OS_CFLAGS   := $(CC_DEF)PJ_NETBSD=1
+++
+++export OS_CXXFLAGS := 
+++
+++export OS_LDFLAGS  := -lportaudio-$(TARGET_NAME) -lgsmcodec-$(TARGET_NAME) -lilbccodec-$(TARGET_NAME) -lspeex-$(TARGET_NAME) -lresample-$(TARGET_NAME) $(CC_LIB)pthread$(LIBEXT2) -lm
+++
+++export OS_SOURCES  := 
+++
+++
Index: pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0110-netbsd.patch
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0110-netbsd.patch:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0110-netbsd.patch       Mon Apr  8 03:20:10 2024
@@ -0,0 +1,45 @@
+$NetBSD: patch-third-party_pjproject_patches_0110-netbsd.patch,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- third-party/pjproject/patches/0110-netbsd.patch.orig       2024-03-18 06:26:32.857060524 +0000
++++ third-party/pjproject/patches/0110-netbsd.patch
+@@ -0,0 +1,40 @@
++--- a/pjlib/build/os-netbsd.mak       2024-03-17 23:09:58.926718475 -0700
+++++ b/pjlib/build/os-netbsd.mak       2024-03-17 22:17:31.469351242 -0700
++@@ -0,0 +1,37 @@
+++#
+++# OS specific configuration for Linux OS target. 
+++#
+++
+++#
+++# PJLIB_OBJS specified here are object files to be included in PJLIB
+++# (the library) for this specific operating system. Object files common 
+++# to all operating systems should go in Makefile instead.
+++#
+++export PJLIB_OBJS +=         addr_resolv_sock.o file_access_unistd.o \
+++                     file_io_ansi.o guid_simple.o \
+++                     log_writer_stdout.o os_core_unix.o \
+++                     os_error_unix.o os_time_unix.o \
+++                     os_timestamp_common.o os_timestamp_posix.o \
+++                     pool_policy_malloc.o sock_bsd.o sock_select.o
+++
+++export PJLIB_OBJS += ioqueue_select.o 
+++
+++export PJLIB_OBJS += sock_qos_bsd.o
+++
+++#
+++# TEST_OBJS are operating system specific object files to be included in
+++# the test application.
+++#
+++export TEST_OBJS +=  main.o
+++
+++#
+++# Additional LDFLAGS for pjlib-test
+++#
+++export TEST_LDFLAGS += -lm
+++
+++#
+++# TARGETS are make targets in the Makefile, to be executed for this given
+++# operating system.
+++#
+++export TARGETS           =   $(PJLIB_LIB) $(PJLIB_SONAME) $(TEST_EXE)
+++
Index: pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0120-netbsd.patch
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0120-netbsd.patch:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0120-netbsd.patch       Mon Apr  8 03:20:10 2024
@@ -0,0 +1,138 @@
+$NetBSD: patch-third-party_pjproject_patches_0120-netbsd.patch,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- third-party/pjproject/patches/0120-netbsd.patch.orig       2024-03-18 06:26:41.349547983 +0000
++++ third-party/pjproject/patches/0120-netbsd.patch
+@@ -0,0 +1,133 @@
++--- a/pjlib/include/pj/compat/os_netbsd.h     2024-03-17 23:11:37.306411766 -0700
+++++ b/pjlib/include/pj/compat/os_netbsd.h     2024-03-17 22:28:56.767758931 -0700
++@@ -0,0 +1,130 @@
+++/* 
+++ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+++ * Copyright (C) 2003-2008 Benny Prijono <benny%prijono.org@localhost>
+++ *
+++ * This program is free software; you can redistribute it and/or modify
+++ * it under the terms of the GNU General Public License as published by
+++ * the Free Software Foundation; either version 2 of the License, or
+++ * (at your option) any later version.
+++ *
+++ * This program is distributed in the hope that it will be useful,
+++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+++ * GNU General Public License for more details.
+++ *
+++ * You should have received a copy of the GNU General Public License
+++ * along with this program; if not, write to the Free Software
+++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
+++ */
+++#ifndef __PJ_COMPAT_OS_NETBSD_H__
+++#define __PJ_COMPAT_OS_NETBSD_H__
+++
+++/**
+++ * @file os_linux.h
+++ * @brief Describes Linux operating system specifics.
+++ */
+++
+++#define PJ_OS_NAME                  "netbsd"
+++
+++#define PJ_HAS_ARPA_INET_H          1
+++#define PJ_HAS_ASSERT_H             1
+++#define PJ_HAS_CTYPE_H              1
+++#define PJ_HAS_ERRNO_H              1
+++#define PJ_HAS_LINUX_SOCKET_H       0
+++#define PJ_HAS_MALLOC_H             1
+++#define PJ_HAS_NETDB_H              1
+++#define PJ_HAS_NETINET_IN_H         1
+++#define PJ_HAS_SETJMP_H             1
+++#define PJ_HAS_STDARG_H             1
+++#define PJ_HAS_STDDEF_H             1
+++#define PJ_HAS_STDIO_H              1
+++#define PJ_HAS_STDLIB_H             1
+++#define PJ_HAS_STRING_H             1
+++#define PJ_HAS_SYS_IOCTL_H          1
+++#define PJ_HAS_SYS_SELECT_H         1
+++#define PJ_HAS_SYS_SOCKET_H         1
+++#define PJ_HAS_SYS_TIME_H           1
+++#define PJ_HAS_SYS_TIMEB_H          1
+++#define PJ_HAS_SYS_TYPES_H          1
+++#define PJ_HAS_TIME_H               1
+++#define PJ_HAS_UNISTD_H             1
+++#define PJ_HAS_SEMAPHORE_H          1
+++
+++#define PJ_HAS_MSWSOCK_H            0
+++#define PJ_HAS_WINSOCK_H            0
+++#define PJ_HAS_WINSOCK2_H           0
+++
+++#define PJ_HAS_LOCALTIME_R          1
+++
+++#define PJ_SOCK_HAS_INET_ATON       1
+++
+++/* Set 1 if native sockaddr_in has sin_len member. 
+++ * Default: 0
+++ */
+++#define PJ_SOCKADDR_HAS_LEN         1
+++
+++/**
+++ * If this macro is set, it tells select I/O Queue that select() needs to
+++ * be given correct value of nfds (i.e. largest fd + 1). This requires
+++ * select ioqueue to re-scan the descriptors on each registration and
+++ * unregistration.
+++ * If this macro is not set, then ioqueue will always give FD_SETSIZE for
+++ * nfds argument when calling select().
+++ *
+++ * Default: 0
+++ */
+++#define PJ_SELECT_NEEDS_NFDS        1
+++
+++/* Is errno a good way to retrieve OS errors?
+++ */
+++#define PJ_HAS_ERRNO_VAR            1
+++
+++/* When this macro is set, getsockopt(SOL_SOCKET, SO_ERROR) will return
+++ * the status of non-blocking connect() operation.
+++ */
+++#define PJ_HAS_SO_ERROR             1
+++
+++/* This value specifies the value set in errno by the OS when a non-blocking
+++ * socket recv() can not return immediate daata.
+++ */
+++#define PJ_BLOCKING_ERROR_VAL       EAGAIN
+++
+++/* This value specifies the value set in errno by the OS when a non-blocking
+++ * socket connect() can not get connected immediately.
+++ */
+++#define PJ_BLOCKING_CONNECT_ERROR_VAL   EINPROGRESS
+++
+++/* Default threading is enabled, unless it's overridden. */
+++#ifndef PJ_HAS_THREADS
+++#  define PJ_HAS_THREADS            (1)
+++#endif
+++
+++#define PJ_HAS_HIGH_RES_TIMER       1
+++#define PJ_HAS_MALLOC               1
+++#ifndef PJ_OS_HAS_CHECK_STACK
+++#   define PJ_OS_HAS_CHECK_STACK    0
+++#endif
+++#define PJ_NATIVE_STRING_IS_UNICODE 0
+++
+++#define PJ_ATOMIC_VALUE_TYPE        long
+++
+++/* If 1, use Read/Write mutex emulation for platforms that don't support it */
+++#define PJ_EMULATE_RWMUTEX          0
+++
+++/* If 1, pj_thread_create() should enforce the stack size when creating 
+++ * threads.
+++ * Default: 0 (let OS decide the thread's stack size).
+++ */
+++#define PJ_THREAD_SET_STACK_SIZE        0
+++
+++/* If 1, pj_thread_create() should allocate stack from the pool supplied.
+++ * Default: 0 (let OS allocate memory for thread's stack).
+++ */
+++#define PJ_THREAD_ALLOCATE_STACK        0
+++
+++/* Linux has socklen_t */
+++#define PJ_HAS_SOCKLEN_T                1
+++
+++
+++#endif  /* __PJ_COMPAT_OS_NETBSD_H__ */
+++
Index: pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0130-netbsd.patch
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0130-netbsd.patch:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0130-netbsd.patch       Mon Apr  8 03:20:10 2024
@@ -0,0 +1,144 @@
+$NetBSD: patch-third-party_pjproject_patches_0130-netbsd.patch,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- third-party/pjproject/patches/0130-netbsd.patch.orig       2024-03-18 06:26:51.344731895 +0000
++++ third-party/pjproject/patches/0130-netbsd.patch
+@@ -0,0 +1,139 @@
++--- a/pjmedia/build/os-netbsd.mak     2024-03-17 23:13:16.295306351 -0700
+++++ b/pjmedia/build/os-netbsd.mak     2024-03-17 22:32:45.797176983 -0700
++@@ -0,0 +1,136 @@
+++# Linux
+++
+++# Define the desired sound device backend
+++# Valid values are:
+++#   - pa_unix:               PortAudio on Unix (OSS or ALSA)
+++#   - pa_darwinos:   PortAudio on MacOSX (CoreAudio)
+++#   - pa_old_darwinos:  PortAudio on MacOSX (old CoreAudio, for OSX 10.2)
+++#   - pa_win32:              PortAudio on Win32 (WMME)
+++#   - ds:            Win32 DirectSound (dsound.c)
+++#   - null:          Null sound device (nullsound.c)
+++AC_PJMEDIA_SND=pa_unix
+++
+++#
+++# Codecs
+++#
+++AC_NO_G711_CODEC=0
+++AC_NO_L16_CODEC=0
+++AC_NO_GSM_CODEC=0
+++AC_NO_SPEEX_CODEC=0
+++AC_NO_ILBC_CODEC=0
+++AC_NO_G722_CODEC=0
+++AC_NO_G7221_CODEC=0
+++
+++export CODEC_OBJS=
+++
+++ifeq ($(AC_NO_G711_CODEC),1)
+++export CFLAGS += -DPJMEDIA_HAS_G711_CODEC=0
+++else
+++export CODEC_OBJS +=
+++endif
+++
+++ifeq ($(AC_NO_L16_CODEC),1)
+++export CFLAGS += -DPJMEDIA_HAS_L16_CODEC=0
+++else
+++export CODEC_OBJS += l16.o
+++endif
+++
+++ifeq ($(AC_NO_GSM_CODEC),1)
+++export CFLAGS += -DPJMEDIA_HAS_GSM_CODEC=0
+++else
+++export CODEC_OBJS += gsm.o
+++endif
+++
+++ifeq ($(AC_NO_SPEEX_CODEC),1)
+++export CFLAGS += -DPJMEDIA_HAS_SPEEX_CODEC=0
+++else
+++export CFLAGS += -I$(THIRD_PARTY)/build/speex -I$(THIRD_PARTY)/speex/include
+++export CODEC_OBJS += speex_codec.o
+++
+++ifeq (1,1)
+++export PJMEDIA_OBJS += echo_speex.o
+++endif
+++
+++endif
+++
+++ifeq ($(AC_NO_ILBC_CODEC),1)
+++export CFLAGS += -DPJMEDIA_HAS_ILBC_CODEC=0
+++else
+++export CODEC_OBJS += ilbc.o
+++endif
+++
+++ifeq ($(AC_NO_G722_CODEC),1)
+++export CFLAGS += -DPJMEDIA_HAS_G722_CODEC=0
+++else
+++export CODEC_OBJS += g722.o g722/g722_enc.o g722/g722_dec.o
+++endif
+++
+++ifeq ($(AC_NO_G7221_CODEC),1)
+++export CFLAGS += -DPJMEDIA_HAS_G7221_CODEC=0
+++else
+++export CODEC_OBJS += g7221.o
+++export G7221_CFLAGS += -I$(THIRD_PARTY)
+++endif
+++
+++#
+++# Resample
+++#
+++AC_PJMEDIA_RESAMPLE=libresample
+++
+++ifeq ($(AC_PJMEDIA_RESAMPLE),none)
+++# No resample support
+++export CFLAGS += -DPJMEDIA_RESAMPLE_IMP=PJMEDIA_RESAMPLE_NONE
+++endif
+++
+++ifeq ($(AC_PJMEDIA_RESAMPLE),libresample)
+++export CFLAGS += -DPJMEDIA_RESAMPLE_IMP=PJMEDIA_RESAMPLE_LIBRESAMPLE
+++endif
+++
+++ifeq ($(AC_PJMEDIA_RESAMPLE),libsamplerate)
+++export CFLAGS += -DPJMEDIA_RESAMPLE_IMP=PJMEDIA_RESAMPLE_LIBSAMPLERATE
+++endif
+++
+++ifeq ($(AC_PJMEDIA_RESAMPLE),speex)
+++export CFLAGS += -DPJMEDIA_RESAMPLE_IMP=PJMEDIA_RESAMPLE_SPEEX
+++endif
+++
+++#
+++# SRTP
+++#
+++#ifeq (@ac_external_srtp@,1)
+++ifeq (0,1)
+++# External SRTP
+++export CFLAGS += -DPJMEDIA_EXTERNAL_SRTP=1
+++else
+++# Our SRTP in third_party
+++export CFLAGS += -I$(THIRD_PARTY)/build/srtp \
+++      -I$(THIRD_PARTY)/srtp/crypto/include \
+++      -I$(THIRD_PARTY)/srtp/include
+++
+++endif
+++
+++#
+++# PortAudio
+++#
+++ifneq ($(findstring pa,$(AC_PJMEDIA_SND)),)
+++export CFLAGS += -I$(THIRD_PARTY)/build/portaudio -I$(THIRD_PARTY)/portaudio/include -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_PORTAUDIO_SOUND
+++export SOUND_OBJS = pasound.o
+++endif
+++
+++#
+++# Win32 DirectSound
+++#
+++ifeq ($(AC_PJMEDIA_SND),ds)
+++export SOUND_OBJS = dsound.o
+++export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_WIN32_DIRECT_SOUND
+++endif
+++
+++#
+++# Last resort, null sound device
+++#
+++ifeq ($(AC_PJMEDIA_SND),null)
+++export SOUND_OBJS = nullsound.o
+++export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_NULL_SOUND
+++endif
+++
+++
Index: pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0140-netbsd.patch
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0140-netbsd.patch:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0140-netbsd.patch       Mon Apr  8 03:20:10 2024
@@ -0,0 +1,17 @@
+$NetBSD: patch-third-party_pjproject_patches_0140-netbsd.patch,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- third-party/pjproject/patches/0140-netbsd.patch.orig       2024-03-18 06:27:02.926490447 +0000
++++ third-party/pjproject/patches/0140-netbsd.patch
+@@ -0,0 +1,12 @@
++--- a/third_party/build/os-netbsd.mak 2024-03-17 23:17:19.200264232 -0700
+++++ b/third_party/build/os-netbsd.mak 2024-03-17 22:46:50.961340542 -0700
++@@ -0,0 +1,9 @@
+++DIRS += gsm
+++DIRS += ilbc
+++DIRS += speex
+++DIRS += portaudio
+++DIRS += g7221
+++DIRS += srtp
+++DIRS += resample
+++
+++
Index: pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0150-netbsd.patch
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0150-netbsd.patch:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0150-netbsd.patch       Mon Apr  8 03:20:10 2024
@@ -0,0 +1,104 @@
+$NetBSD: patch-third-party_pjproject_patches_0150-netbsd.patch,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- third-party/pjproject/patches/0150-netbsd.patch.orig       2024-03-18 06:27:11.302585019 +0000
++++ third-party/pjproject/patches/0150-netbsd.patch
+@@ -0,0 +1,99 @@
++--- a/third_party/webrtc_aec3/src/system_wrappers/source/cpu_features_netbsd.cc       2024-03-17 23:19:24.937833522 -0700
+++++ b/third_party/webrtc_aec3/src/system_wrappers/source/cpu_features_netbsd.cc       2024-03-17 22:50:07.930587033 -0700
++@@ -0,0 +1,96 @@
+++/*
+++ *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+++ *
+++ *  Use of this source code is governed by a BSD-style license
+++ *  that can be found in the LICENSE file in the root of the source
+++ *  tree. An additional intellectual property rights grant can be found
+++ *  in the file PATENTS.  All contributing project authors may
+++ *  be found in the AUTHORS file in the root of the source tree.
+++ */
+++
+++#include <features.h>
+++#include <stdlib.h>
+++#include <string.h>
+++
+++#ifdef __GLIBC_PREREQ
+++#define WEBRTC_GLIBC_PREREQ(a, b) __GLIBC_PREREQ(a, b)
+++#else
+++#define WEBRTC_GLIBC_PREREQ(a, b) 0
+++#endif
+++
+++#if WEBRTC_GLIBC_PREREQ(2, 16)
+++#include <sys/auxv.h>
+++#else
+++#include <errno.h>
+++#include <fcntl.h>
+++#include <link.h>
+++#include <unistd.h>
+++#endif
+++
+++#include "rtc_base/system/arch.h"
+++#include "system_wrappers/include/cpu_features_wrapper.h"
+++
+++#if defined(WEBRTC_ARCH_ARM_FAMILY)
+++#include <asm/hwcap.h>
+++
+++namespace webrtc {
+++
+++uint64_t GetCPUFeaturesARM(void) {
+++  uint64_t result = 0;
+++  int architecture = 0;
+++  uint64_t hwcap = 0;
+++  const char* platform = NULL;
+++#if WEBRTC_GLIBC_PREREQ(2, 16)
+++  hwcap = getauxval(AT_HWCAP);
+++  platform = (const char*)getauxval(AT_PLATFORM);
+++#else
+++  ElfW(auxv_t) auxv;
+++  int fd = open("/proc/self/auxv", O_RDONLY);
+++  if (fd >= 0) {
+++    while (hwcap == 0 || platform == NULL) {
+++      if (read(fd, &auxv, sizeof(auxv)) < (ssize_t)sizeof(auxv)) {
+++        if (errno == EINTR)
+++          continue;
+++        break;
+++      }
+++      switch (auxv.a_type) {
+++        case AT_HWCAP:
+++          hwcap = auxv.a_un.a_val;
+++          break;
+++        case AT_PLATFORM:
+++          platform = (const char*)auxv.a_un.a_val;
+++          break;
+++      }
+++    }
+++    close(fd);
+++  }
+++#endif  // WEBRTC_GLIBC_PREREQ(2, 16)
+++#if defined(__aarch64__)
+++  architecture = 8;
+++  if ((hwcap & HWCAP_FP) != 0)
+++    result |= kCPUFeatureVFPv3;
+++  if ((hwcap & HWCAP_ASIMD) != 0)
+++    result |= kCPUFeatureNEON;
+++#else
+++  if (platform != NULL) {
+++    /* expect a string in the form "v6l" or "v7l", etc.
+++     */
+++    if (platform[0] == 'v' && '0' <= platform[1] && platform[1] <= '9' &&
+++        (platform[2] == 'l' || platform[2] == 'b')) {
+++      architecture = platform[1] - '0';
+++    }
+++  }
+++  if ((hwcap & HWCAP_VFPv3) != 0)
+++    result |= kCPUFeatureVFPv3;
+++  if ((hwcap & HWCAP_NEON) != 0)
+++    result |= kCPUFeatureNEON;
+++#endif
+++  if (architecture >= 7)
+++    result |= kCPUFeatureARMv7;
+++  if (architecture >= 6)
+++    result |= kCPUFeatureLDREXSTREX;
+++  return result;
+++}
+++
+++}  // namespace webrtc
+++#endif  // WEBRTC_ARCH_ARM_FAMILY
Index: pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0160-netbsd.patch
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0160-netbsd.patch:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-third-party_pjproject_patches_0160-netbsd.patch       Mon Apr  8 03:20:10 2024
@@ -0,0 +1,16 @@
+$NetBSD: patch-third-party_pjproject_patches_0160-netbsd.patch,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- third-party/pjproject/patches/0160-netbsd.patch.orig       2024-03-25 05:18:07.047944261 +0000
++++ third-party/pjproject/patches/0160-netbsd.patch
+@@ -0,0 +1,11 @@
++--- a/pjlib/src/pj/os_core_unix.c     2024-03-25 05:09:26.734781518 +0000
+++++ b/pjlib/src/pj/os_core_unix.c
++@@ -655,6 +655,8 @@ static void set_thread_display_name(cons
++ #if defined(PJ_HAS_PTHREAD_SETNAME_NP) && PJ_HAS_PTHREAD_SETNAME_NP != 0
++ #   if defined(PJ_DARWINOS) && PJ_DARWINOS != 0
++     pthread_setname_np(name);
+++#   elif defined(__NetBSD__)
+++    pthread_setname_np(pthread_self(), name, NULL);
++ #   else
++     pthread_setname_np(pthread_self(), name);
++ #   endif
Index: pkgsrc/comms/asterisk21/patches/patch-utils_Makefile
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-utils_Makefile:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-utils_Makefile        Mon Apr  8 03:20:10 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-utils_Makefile,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- utils/Makefile.orig        2021-11-02 08:53:05.000000000 +0000
++++ utils/Makefile
+@@ -65,7 +65,7 @@ all: $(UTILS)
+ install:
+       for x in $(UTILS); do \
+               if [ "$$x" != "none" ]; then \
+-                      $(INSTALL) -m 755 $$x "$(DESTDIR)$(ASTSBINDIR)/$$x"; \
++                      $(BSD_INSTALL_PROGRAM) $$x "$(DESTDIR)$(ASTSBINDIR)/$$x"; \
+               fi; \
+       done
+ 
Index: pkgsrc/comms/asterisk21/patches/patch-utils_db1-ast_include_db.h
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-utils_db1-ast_include_db.h:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-utils_db1-ast_include_db.h    Mon Apr  8 03:20:10 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-utils_db1-ast_include_db.h,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- utils/db1-ast/include/db.h.orig    2015-10-09 21:48:48.000000000 +0000
++++ utils/db1-ast/include/db.h
+@@ -55,7 +55,7 @@
+ 
+ #ifndef       __BIT_TYPES_DEFINED__
+ #define       __BIT_TYPES_DEFINED__
+-#if (!defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__APPLE__))
++#if (!defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__APPLE__) && !defined(__DragonFly__))
+ typedef       __signed char              int8_t;
+ typedef       short                     int16_t;
+ typedef       int                       int32_t;
Index: pkgsrc/comms/asterisk21/patches/patch-utils_extconf.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-utils_extconf.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-utils_extconf.c       Mon Apr  8 03:20:10 2024
@@ -0,0 +1,67 @@
+$NetBSD: patch-utils_extconf.c,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- utils/extconf.c.orig       2015-10-09 21:48:48.000000000 +0000
++++ utils/extconf.c
+@@ -593,6 +593,10 @@ static void  __attribute__((destructor))
+ #include "libkern/OSAtomic.h"
+ #endif
+ 
++#if defined(HAVE_SYS_ATOMIC_H)
++#include <sys/atomic.h>
++#endif
++
+ /*! \brief Atomically add v to *p and return * the previous value of *p.
+  * This can be used to handle reference counts, and the return value
+  * can be used to generate unique identifiers.
+@@ -606,12 +610,18 @@ AST_INLINE_API(int ast_atomic_fetchadd_i
+ #elif defined(HAVE_OSX_ATOMICS) && (SIZEOF_INT == 4)
+ AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
+ {
+-      return OSAtomicAdd32(v, (int32_t *) p);
++      return OSAtomicAdd32(v, (int32_t *) p) - v;
+ })
+ #elif defined(HAVE_OSX_ATOMICS) && (SIZEOF_INT == 8)
+ AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
+ {
+-      return OSAtomicAdd64(v, (int64_t *) p);
++      return OSAtomicAdd64(v, (int64_t *) p) - v;
++})
++#elif defined(HAVE_SYS_ATOMIC_H)
++AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
++{
++      return atomic_add_int_nv((unsigned int *)p, v) - v;
++})
+ #elif defined (__i386__) || defined(__x86_64__)
+ AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
+ {
+@@ -653,6 +663,12 @@ AST_INLINE_API(int ast_atomic_dec_and_te
+ AST_INLINE_API(int ast_atomic_dec_and_test(volatile int *p),
+ {
+       return OSAtomicAdd64( -1, (int64_t *) p) == 0;
++})
++#elif defined(HAVE_SYS_ATOMIC_H)
++AST_INLINE_API(int ast_atomic_dec_and_test(volatile int *p),
++{
++      return atomic_dec_uint_nv((unsigned int *)p) == 0;
++})
+ #else
+ AST_INLINE_API(int ast_atomic_dec_and_test(volatile int *p),
+ {
+@@ -2537,13 +2553,13 @@ static int ast_true(const char *s)
+ static struct timeval tvfix(struct timeval a)
+ {
+       if (a.tv_usec >= ONE_MILLION) {
+-              ast_log(LOG_WARNING, "warning too large timestamp %ld.%ld\n",
+-                      (long)a.tv_sec, (long int) a.tv_usec);
++              ast_log(LOG_WARNING, "warning too large timestamp %jd.%ld\n",
++                      (intmax_t)a.tv_sec, (long int) a.tv_usec);
+               a.tv_sec += a.tv_usec / ONE_MILLION;
+               a.tv_usec %= ONE_MILLION;
+       } else if (a.tv_usec < 0) {
+-              ast_log(LOG_WARNING, "warning negative timestamp %ld.%ld\n",
+-                      (long)a.tv_sec, (long int) a.tv_usec);
++              ast_log(LOG_WARNING, "warning negative timestamp %jd.%ld\n",
++                      (intmax_t)a.tv_sec, (long int) a.tv_usec);
+               a.tv_usec = 0;
+       }
+       return a;
Index: pkgsrc/comms/asterisk21/patches/patch-utils_smsq.c
diff -u /dev/null pkgsrc/comms/asterisk21/patches/patch-utils_smsq.c:1.1
--- /dev/null   Mon Apr  8 03:20:11 2024
+++ pkgsrc/comms/asterisk21/patches/patch-utils_smsq.c  Mon Apr  8 03:20:10 2024
@@ -0,0 +1,13 @@
+$NetBSD: patch-utils_smsq.c,v 1.1 2024/04/08 03:20:10 jnemeth Exp $
+
+--- utils/smsq.c.orig  2015-10-09 21:48:48.000000000 +0000
++++ utils/smsq.c
+@@ -687,7 +687,7 @@ main (int argc, const char *argv[])
+       snprintf (temp, sizeof(temp), "sms/.smsq-%d", (int)getpid ());
+       mkdir ("sms", 0777);      /* ensure directory exists */
+       mkdir (dir, 0777);        /* ensure directory exists */
+-      snprintf (queuename, sizeof(queuename), "%s/%s.%ld-%d", dir, *queue ? queue : "0", (long)time (0), (int)getpid ());
++      snprintf (queuename, sizeof(queuename), "%s/%s.%jd-%d", dir, *queue ? queue : "0", (intmax_t)time (0), (int)getpid ());
+       f = fopen (temp, "w");
+       if (!f)
+       {



Home | Main Index | Thread Index | Old Index