commit:     2cc5bb67b6b0a2b5b8351a233508ad83aafc62a2
Author:     Jaco Kroon <jaco <AT> uls <DOT> co <DOT> za>
AuthorDate: Wed May 10 21:32:07 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu May 11 01:28:39 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2cc5bb67

net-misc/asterisk: add 18.17.1

Bug: https://bugs.gentoo.org/903912
Bug: https://bugs.gentoo.org/903913
Bug: https://bugs.gentoo.org/903775
Signed-off-by: Jaco Kroon <jaco <AT> uls.co.za>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-misc/asterisk/Manifest                         |   1 +
 net-misc/asterisk/asterisk-18.17.1.ebuild          | 377 +++++++++++++++++++++
 ...ix-test-code-to-match-gethostbyname_r-pro.patch |  71 ++++
 .../asterisk/files/asterisk_wrapper-18.17.1-20.2.1 | 227 +++++++++++++
 net-misc/asterisk/files/initd-18.17.1-20.2.1       | 311 +++++++++++++++++
 5 files changed, 987 insertions(+)

diff --git a/net-misc/asterisk/Manifest b/net-misc/asterisk/Manifest
index 7ffb93d33324..0a1c9a848552 100644
--- a/net-misc/asterisk/Manifest
+++ b/net-misc/asterisk/Manifest
@@ -8,6 +8,7 @@ DIST asterisk-18.15.0.tar.gz 28219845 BLAKE2B 
712e14bcc2f24b645c39fdfbae19771134
 DIST asterisk-18.15.1.tar.gz 28216621 BLAKE2B 
f354a49111b22fe37caf72ba552d8ecc3dec17605771d153d05b01d7e3017c6a50087309c37078d32b6dc375bbb14dfee89356eb46355f47374a08d5427179a1
 SHA512 
c8bee50023b137d95b02ce770c9983fc3d8cfc10f7d714ab658fb118813ccf29d97b0ada64bfd2795ce3a0f9ecfe82bd85ab3abefe9c8cc83454cd50ff8e5cf5
 DIST asterisk-18.16.0.tar.gz 28278347 BLAKE2B 
3e588d3ff6b14eb5334b0c2cca07ee026b9db20e83b07d0e21b1ec2d3fed8779c4e188248d151d9ac6e46da96e0e6a5673429394c84e0d445457d84f1ecc8eee
 SHA512 
50cebb63e270a802a14e43c07ed1b9bf6b989a6a608c44d5aa3f415e66d4306523e5f916be21d6cef260e35fd097d2dc25ec850987dc407df873446c784f737a
 DIST asterisk-18.17.0.tar.gz 28293243 BLAKE2B 
8a162d7cac92df2b6dd430fedc1446a302b1b9c1061ddd4a236fd5797e8be17d53d7179d23a7c8bd4260c73d34dea2db2b9ebffd4eebb2ed714a286838bc5ddf
 SHA512 
1a5dd9715811a8b699d49b057ef42f68ddc88cc22a568836a6a778f6ff22d3923f81840aef425819bb59f28bb27e321154ef9e1d3deba5ed7d39c7eca562e40e
+DIST asterisk-18.17.1.tar.gz 28284281 BLAKE2B 
ab60d993f18ff7fec6a58358862e3477488a62f55b72a6c60ade87503818ee6db5a1a0eeed906abf1050517e0487461f619a671ca37a54a7867f98d4b62419cc
 SHA512 
75311693a090c001a323ad673d0df7befbed87bf1250ff836eded552b0329a38a019c6ad9f9ed8fcd58e09798900ebb3c5546f2a571d601adf63d34559242151
 DIST asterisk-20.0.1.tar.gz 27983541 BLAKE2B 
a7d5f2b4d7721c66bb04ab395f97432791824b8e1136b224a03e52dd78d600f358278ad1a7dd2ec8684d5b850c3e65d5e14b98f7ecc3cee2ef93c4287e541dd3
 SHA512 
91e4835fd01233c81af0120d511522881af69e65abcc62a9e2241c89357a970b94901dfd7a7fcdbeba59eb3aa4c27f95735f2a10891f1ad6f2c36bb3244423e4
 DIST asterisk-20.1.0.tar.gz 28043611 BLAKE2B 
a9476afc1764b05193625724707077c92e975b8c78d89b9ed41a4b123d3b5d04c90f1e09d1cd20c4181ca1ea7d6e3d9f81521676540c7bfaa806ba51b462371f
 SHA512 
e31652b37f918b1be0c395122b1013576a551c962c056963f87c2fce3561689b8a565e9b74e3fff0394879a505532d55d175ef9860dd9589323074b51149aaf6
 DIST asterisk-20.2.0.tar.gz 28058875 BLAKE2B 
6944a286c5a629abe24f4b2c0bcb737dd792c5093a43214854a46de3f73036eda3520755900665400ff20e8c2f577b288d5eb934b4475190c8dcc689ce030962
 SHA512 
e4dcb074e6889b75d974ea83389434b9df8617b1a8b9ce051c764c874747645de6bc44f7e20e915e555b89f965a4c6dca97fd9fa6b9cad59b4d175f6bb26137a

diff --git a/net-misc/asterisk/asterisk-18.17.1.ebuild 
b/net-misc/asterisk/asterisk-18.17.1.ebuild
new file mode 100644
index 000000000000..b2e2fa41bd6b
--- /dev/null
+++ b/net-misc/asterisk/asterisk-18.17.1.ebuild
@@ -0,0 +1,377 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1..4} )
+
+inherit autotools linux-info lua-single systemd toolchain-funcs tmpfiles
+
+DESCRIPTION="Asterisk: A Modular Open Source PBX System"
+HOMEPAGE="https://www.asterisk.org/";
+SRC_URI="https://downloads.asterisk.org/pub/telephony/asterisk/releases/${P}.tar.gz";
+LICENSE="GPL-2"
+SLOT="0/${PV%%.*}"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+
+IUSE_VOICEMAIL_STORAGE=(
+       voicemail_storage_odbc
+       voicemail_storage_imap
+)
+IUSE="${IUSE_VOICEMAIL_STORAGE[*]} alsa blocks bluetooth calendar +caps 
cluster codec2 curl dahdi debug deprecated doc freetds gtalk http iconv ilbc 
ldap lua mysql newt odbc oss pjproject portaudio postgres radius selinux snmp 
span speex srtp +ssl static statsd syslog systemd unbound vorbis xmpp"
+IUSE_EXPAND="VOICEMAIL_STORAGE"
+REQUIRED_USE="gtalk? ( xmpp )
+       lua? ( ${LUA_REQUIRED_USE} )
+       voicemail_storage_odbc? ( odbc )
+"
+
+PATCHES=(
+       "${FILESDIR}/asterisk-16.16.2-no-var-run-install.patch"
+       
"${FILESDIR}/asterisk-18.17.1-20.2.1-configure-fix-test-code-to-match-gethostbyname_r-pro.patch"
+)
+
+DEPEND="acct-user/asterisk
+       acct-group/asterisk
+       dev-db/sqlite:3
+       dev-libs/popt
+       >=dev-libs/jansson-2.11:=
+       dev-libs/libedit
+       dev-libs/libxml2:2
+       dev-libs/libxslt
+       sys-apps/util-linux
+       sys-libs/zlib
+       virtual/libcrypt:=
+       alsa? ( media-libs/alsa-lib )
+       bluetooth? ( net-wireless/bluez:= )
+       calendar? (
+               net-libs/neon:=
+               dev-libs/libical:=
+               dev-libs/iksemel
+       )
+       caps? ( sys-libs/libcap )
+       blocks? ( sys-libs/blocksruntime )
+       cluster? ( sys-cluster/corosync )
+       codec2? ( media-libs/codec2:= )
+       curl? ( net-misc/curl )
+       dahdi? (
+               net-libs/libpri
+               net-misc/dahdi-tools
+       )
+       freetds? ( dev-db/freetds )
+       gtalk? ( dev-libs/iksemel )
+       http? ( dev-libs/gmime:2.6 )
+       iconv? ( virtual/libiconv )
+       ilbc? ( media-libs/libilbc )
+       ldap? ( net-nds/openldap:= )
+       lua? ( ${LUA_DEPS} )
+       mysql? ( dev-db/mysql-connector-c:= )
+       newt? ( dev-libs/newt )
+       odbc? ( dev-db/unixODBC )
+       pjproject? ( >=net-libs/pjproject-2.12:= )
+       portaudio? ( media-libs/portaudio )
+       postgres? ( dev-db/postgresql:* )
+       radius? ( net-dialup/freeradius-client )
+       snmp? ( net-analyzer/net-snmp:= )
+       span? ( media-libs/spandsp )
+       speex? (
+               media-libs/libogg
+               media-libs/speex
+               media-libs/speexdsp
+       )
+       srtp? ( net-libs/libsrtp:0 )
+       ssl? (
+               dev-libs/openssl:0=
+       )
+       systemd? ( sys-apps/systemd )
+       !systemd? ( !sys-apps/systemd )
+       unbound? ( net-dns/unbound )
+       vorbis? (
+               media-libs/libogg
+               media-libs/libvorbis
+       )
+       voicemail_storage_imap? ( net-libs/c-client[ssl=] )
+       xmpp? ( dev-libs/iksemel )
+"
+
+RDEPEND="${DEPEND}
+       net-misc/asterisk-core-sounds
+       net-misc/asterisk-extra-sounds
+       net-misc/asterisk-moh-opsound
+       selinux? ( sec-policy/selinux-asterisk )
+       syslog? ( virtual/logger )"
+
+BDEPEND="dev-libs/libxml2:2
+       virtual/pkgconfig"
+
+QA_DT_NEEDED="/usr/lib.*/libasteriskssl[.]so[.][0-9]\+"
+
+_make_args=(
+       "NOISY_BUILD=yes"
+       "ASTDBDIR=\$(ASTDATADIR)/astdb"
+       "ASTVARRUNDIR=/run/asterisk"
+       "ASTCACHEDIR=/var/cache/asterisk"
+       "OPTIMIZE="
+       "DEBUG="
+       "DESTDIR=${D}"
+       "CONFIG_SRC=configs/samples"
+       "CONFIG_EXTEN=.sample"
+       "AST_FORTIFY_SOURCE="
+)
+
+pkg_pretend() {
+       CONFIG_CHECK="~!NF_CONNTRACK_SIP"
+       local WARNING_NF_CONNTRACK_SIP="SIP (NAT) connection tracking is 
enabled. Some users
+       have reported that this module dropped critical SIP packets in their 
deployments. You
+       may want to disable it if you see such problems."
+       check_extra_config
+
+       [[ "${MERGE_TYPE}" == binary ]] && return
+
+       if tc-is-clang; then
+               use blocks || die "CC=clang requires USE=blocks"
+       else
+               use blocks && die "USE=blocks can only be used with CC=clang"
+       fi
+}
+
+pkg_setup() {
+       use lua && lua-single_pkg_setup
+}
+
+src_prepare() {
+       default
+       AT_M4DIR="autoconf third-party third-party/pjproject 
third-party/jansson" \
+               AC_CONFIG_SUBDIRS=menuselect eautoreconf
+}
+
+src_configure() {
+       local vmst
+       local copt cstate
+
+       econf \
+               LUA_VERSION="${ELUA#lua}" \
+               --libdir="/usr/$(get_libdir)" \
+               --localstatedir="/var" \
+               --with-crypto \
+               --with-gsm=internal \
+               --with-popt \
+               --with-z \
+               --with-libedit \
+               --without-jansson-bundled \
+               --without-pjproject-bundled \
+               $(use_with caps cap) \
+               $(use_with codec2) \
+               $(use_with lua lua) \
+               $(use_with http gmime) \
+               $(use_with newt) \
+               $(use_with pjproject) \
+               $(use_with portaudio) \
+               $(use_with ssl) \
+               $(use_with unbound)
+
+       _menuselect() {
+               menuselect/menuselect "$@" || die "menuselect $* failed."
+       }
+
+       _use_select() {
+               local state=$(use "$1" && echo enable || echo disable)
+               shift # remove use from parameters
+
+               while [[ -n $1 ]]; do
+                       _menuselect --${state} "$1" menuselect.makeopts
+                       shift
+               done
+       }
+
+       # Blank out sounds/sounds.xml file to prevent
+       # asterisk from installing sounds files (we pull them in via
+       # asterisk-{core,extra}-sounds and asterisk-moh-opsound.
+       >"${S}"/sounds/sounds.xml
+
+       # That NATIVE_ARCH chatter really is quite bothersome
+       sed -i 's/NATIVE_ARCH=/NATIVE_ARCH=0/' build_tools/menuselect-deps || 
die "Unable to squelch noisy build system"
+
+       # Compile menuselect binary for optional components
+       emake "${_make_args[@]}" menuselect.makeopts
+
+       # Disable astdb2* tools.  We've been on sqlite long enough
+       # that this should really no longer be a problem (bug 
#https://bugs.gentoo.org/872194)
+       _menuselect --disable astdb2sqlite3 menuselect.makeopts
+       _menuselect --disable astdb2bdb menuselect.makeopts
+
+       # Disable BUILD_NATIVE (bug #667498)
+       _menuselect --disable build_native menuselect.makeopts
+
+       # Broken functionality is forcibly disabled (bug #360143)
+       _menuselect --disable chan_misdn menuselect.makeopts
+       _menuselect --disable chan_ooh323 menuselect.makeopts
+
+       # Utility set is forcibly enabled (bug #358001)
+       _menuselect --enable smsq menuselect.makeopts
+       _menuselect --enable streamplayer menuselect.makeopts
+       _menuselect --enable aelparse menuselect.makeopts
+       _menuselect --enable astman menuselect.makeopts
+
+       # this is connected, otherwise it would not find
+       # ast_pktccops_gate_alloc symbol
+       _menuselect --enable chan_mgcp menuselect.makeopts
+       _menuselect --enable res_pktccops menuselect.makeopts
+
+       # SSL is forcibly enabled, IAX2 & DUNDI are expected to be available
+       _menuselect --enable pbx_dundi menuselect.makeopts
+       _menuselect --enable func_aes menuselect.makeopts
+       _menuselect --enable chan_iax2 menuselect.makeopts
+
+       # SQlite3 is now the main database backend, enable related features
+       _menuselect --enable cdr_sqlite3_custom menuselect.makeopts
+       _menuselect --enable cel_sqlite3_custom menuselect.makeopts
+
+       # Disable conversion tools (which fails to compile in some cases).
+       _menuselect --disable astdb2bdb menuselect.makeopts
+
+       # The others are based on USE-flag settings
+       _use_select alsa         chan_alsa
+       _use_select bluetooth    chan_mobile
+       _use_select calendar     res_calendar 
res_calendar_{caldav,ews,exchange,icalendar}
+       _use_select cluster      res_corosync
+       _use_select codec2       codec_codec2
+       _use_select curl         func_curl res_config_curl res_curl
+       _use_select dahdi        app_dahdiras app_meetme chan_dahdi codec_dahdi 
res_timing_dahdi
+       _use_select deprecated   app_macro
+       _use_select freetds      {cdr,cel}_tds
+       _use_select gtalk        chan_motif
+       _use_select http         res_http_post
+       _use_select iconv        func_iconv
+       _use_select ilbc         codec_ilbc format_ilbc
+       _use_select ldap         res_config_ldap
+       _use_select lua          pbx_lua
+       _use_select mysql        app_mysql cdr_mysql res_config_mysql
+       _use_select odbc         cdr_adaptive_odbc res_config_odbc 
{cdr,cel,res,func}_odbc
+       _use_select oss          chan_oss
+       _use_select postgres     {cdr,cel}_pgsql res_config_pgsql
+       _use_select radius       {cdr,cel}_radius
+       _use_select snmp         res_snmp
+       _use_select span         res_fax_spandsp
+       _use_select speex        {codec,func}_speex
+       _use_select speex        format_ogg_speex
+       _use_select srtp         res_srtp
+       _use_select statsd       res_statsd res_{endpoint,chan}_stats
+       _use_select syslog       cdr_syslog
+       _use_select vorbis       format_ogg_vorbis
+       _use_select xmpp         res_xmpp
+
+       # Voicemail storage ...
+       _menuselect --enable app_voicemail menuselect.makeopts
+       for vmst in "${IUSE_VOICEMAIL_STORAGE[@]}"; do
+               if use "${vmst#+}"; then
+                       _menuselect --enable "app_voicemail_${vmst##*_}" 
menuselect.makeopts
+               fi
+       done
+
+       if use debug; then
+               for o in DONT_OPTIMIZE DEBUG_FD_LEAKS MALLOC_DEBUG 
BETTER_BACKTRACES; do
+                       _menuselect --enable "${o}" menuselect.makeopts
+               done
+       fi
+
+       if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
+               for copt in ${GENTOO_ASTERISK_CUSTOM_MENUSELECT}; do
+                       cstate=--enable
+                       [[ "${copt}" == -* ]] && cstate=--disable
+                       ebegin "Custom option ${copt#[-+]} ${cstate:2}d"
+                       _menuselect ${cstate} "${copt#[-+]}"
+                       eend $?
+               done
+       fi
+}
+
+src_compile() {
+       emake "${_make_args[@]}"
+}
+
+src_install() {
+       local d
+
+       dodir "/usr/$(get_libdir)/pkgconfig"
+
+       diropts -m 0750 -o root -g asterisk
+       dodir /etc/asterisk
+
+       emake "${_make_args[@]}" install install-headers install-configs
+
+       fowners asterisk: /var/lib/asterisk/astdb
+
+       if use radius; then
+               insinto /etc/radiusclient/
+               doins contrib/dictionary.digium
+       fi
+
+       # keep directories
+       diropts -m 0750 -o asterisk -g root
+       keepdir 
/var/spool/asterisk/{system,tmp,meetme,monitor,dictate,voicemail,recording,outgoing}
+       diropts -m 0750 -o asterisk -g asterisk
+       keepdir /var/log/asterisk/{cdr-csv,cdr-custom}
+
+       newsbin "${FILESDIR}/asterisk_wrapper-18.17.1-20.2.1" asterisk_wrapper
+       newinitd "${FILESDIR}"/initd-18.17.1-20.2.1 asterisk
+       newconfd "${FILESDIR}"/confd-16.26.1-18.12.1 asterisk
+
+       systemd_dounit "${FILESDIR}"/asterisk.service
+       newtmpfiles "${FILESDIR}"/asterisk.tmpfiles-16.22.0-18.8.0.conf 
asterisk.conf
+       systemd_install_serviced "${FILESDIR}"/asterisk.service.conf
+
+       # Reset diropts else dodoc uses it for doc installations.
+       diropts -m0755
+
+       # install the upgrade documentation
+       dodoc UPGRADE* BUGS CREDITS
+
+       # install extra documentation
+       use doc && dodoc doc/*.{txt,pdf}
+
+       # install logrotate snippet; bug #329281
+       #
+       insinto /etc/logrotate.d
+       newins "${FILESDIR}/1.6.2/asterisk.logrotate4" asterisk
+
+       # Asterisk installs a few folders that's empty by design,
+       # but still required.  This finds them, and marks them for
+       # portage.
+       while read d <&3; do
+               keepdir "${d#${ED}}"
+       done 3< <(find "${ED}"/var -type d -empty || die "Find failed.")
+}
+
+pkg_postinst() {
+       tmpfiles_process asterisk.conf
+
+       if [ -z "${REPLACING_VERSIONS}" ]; then
+               elog "Asterisk Wiki: https://wiki.asterisk.org/wiki/";
+               elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
+       elif [ "$(ver_cut 1 "${REPLACING_VERSIONS}")" != "$(ver_cut 1)" ]; then
+               elog "You are updating from Asterisk $(ver_cut 1 
"${REPLACING_VERSIONS}") upgrade document:"
+               elog 
"https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+$(ver_cut 1)"
+               elog "Gentoo VoIP IRC Channel: #gentoo-voip @ irc.libera.chat"
+       fi
+
+       if use deprecated; then
+               ewarn "You really aught to port whatever code you have that 
depends on this since these are going to go away."
+               ewarn "Refer: 
https://wiki.asterisk.org/wiki/display/AST/Module+Deprecation";
+       fi
+
+       if [[ -n "${GENTOO_ASTERISK_CUSTOM_MENUSELECT:+yes}" ]]; then
+               ewarn "You are using GENTOO_ASTERISK_CUSTOM_MENUSELECT, this 
should only be used"
+               ewarn "for debugging, for anything else, please file a bug on 
https://bugs.gentoo.org";
+       fi
+
+       if [[ -f /var/lib/asterisk/astdb.sqlite3 ]]; then
+               ewarn "Default astdb location has changed from 
/var/lib/asterisk to /var/lib/asterisk/astdb"
+               ewarn "You still have a /var/lib/asterisk/astdb.sqlite file.  
You need to either set"
+               ewarn "astdbdir in /etc/asterisk/asterisk.conf to 
/var/lib/asterisk or follow these"
+               ewarn "steps to migrate:"
+               ewarn "1.  /etc/init.d/asterisk stop"
+               ewarn "2.  mv /var/lib/asterisk/astdb.sqlite 
/var/lib/asterisk/astdb/"
+               ewarn "3.  /etc/init.d/asterisk start"
+               ewarn "This update was done partly for security reasons so that 
/var/lib/asterisk can be root owned."
+       fi
+}

diff --git 
a/net-misc/asterisk/files/asterisk-18.17.1-20.2.1-configure-fix-test-code-to-match-gethostbyname_r-pro.patch
 
b/net-misc/asterisk/files/asterisk-18.17.1-20.2.1-configure-fix-test-code-to-match-gethostbyname_r-pro.patch
new file mode 100644
index 000000000000..540888368223
--- /dev/null
+++ 
b/net-misc/asterisk/files/asterisk-18.17.1-20.2.1-configure-fix-test-code-to-match-gethostbyname_r-pro.patch
@@ -0,0 +1,71 @@
+From 79468a12c3533720c938731a8b7728ba4ff5a326 Mon Sep 17 00:00:00 2001
+From: Jaco Kroon <[email protected]>
+Date: Wed, 10 May 2023 23:13:17 +0200
+Subject: [PATCH] configure: fix test code to match gethostbyname_r prototype.
+
+This enables the test to work with CC=clang.
+
+Without this the test for 6 args would fail with:
+
+utils.c:99:12: error: static declaration of 'gethostbyname_r' follows 
non-static declaration
+static int gethostbyname_r (const char *name, struct hostent *ret, char *buf,
+           ^
+/usr/include/netdb.h:177:12: note: previous declaration is here
+extern int gethostbyname_r (const char *__restrict __name,
+           ^
+
+Fixing the expected return type to int sorts this out.
+
+Signed-off-by: Jaco Kroon <[email protected]>
+---
+ configure    | 4 ++--
+ configure.ac | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/configure b/configure
+index bf78e2aade..b046dfc755 100755
+--- a/configure
++++ b/configure
+@@ -17537,7 +17537,7 @@ $as_echo_n "checking for gethostbyname_r with 6 
arguments... " >&6; }
+ int
+ main ()
+ {
+-struct hostent *he = gethostbyname_r((const char *)NULL, (struct hostent 
*)NULL, (char *)NULL, (int)0, (struct hostent **)NULL, (int *)NULL);
++int r = gethostbyname_r((const char *)NULL, (struct hostent *)NULL, (char 
*)NULL, (int)0, (struct hostent **)NULL, (int *)NULL);
+   ;
+   return 0;
+ }
+@@ -17565,7 +17565,7 @@ $as_echo_n "checking for gethostbyname_r with 5 
arguments... " >&6; }
+ int
+ main ()
+ {
+-struct hostent *he = gethostbyname_r((const char *)NULL, (struct hostent 
*)NULL, (char *)NULL, (int)0, (int *)NULL);
++int r = gethostbyname_r((const char *)NULL, (struct hostent *)NULL, (char 
*)NULL, (int)0, (int *)NULL);
+   ;
+   return 0;
+ }
+diff --git a/configure.ac b/configure.ac
+index ab6632beac..aeec352054 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -962,7 +962,7 @@ if test "x$have_gethostbyname_r_public_declaration" = 
"xyes"; then
+         AC_LINK_IFELSE(
+                 [AC_LANG_PROGRAM([#include <stdlib.h>
+                                  #include <netdb.h>],
+-                                [struct hostent *he = gethostbyname_r((const 
char *)NULL, (struct hostent *)NULL, (char *)NULL, (int)0, (struct hostent 
**)NULL, (int *)NULL);])],
++                                [int r = gethostbyname_r((const char *)NULL, 
(struct hostent *)NULL, (char *)NULL, (int)0, (struct hostent **)NULL, (int 
*)NULL);])],
+                 AC_MSG_RESULT(yes)
+                 AC_DEFINE([HAVE_GETHOSTBYNAME_R_6], 1, [Define to 1 if your 
system has gethostbyname_r with 6 arguments.]),
+                 AC_MSG_RESULT(no)
+@@ -972,7 +972,7 @@ if test "x$have_gethostbyname_r_public_declaration" = 
"xyes"; then
+         AC_LINK_IFELSE(
+                 [AC_LANG_PROGRAM([#include <stdlib.h>
+                                #include <netdb.h>],
+-                                [struct hostent *he = gethostbyname_r((const 
char *)NULL, (struct hostent *)NULL, (char *)NULL, (int)0, (int *)NULL);])],
++                                [int r = gethostbyname_r((const char *)NULL, 
(struct hostent *)NULL, (char *)NULL, (int)0, (int *)NULL);])],
+                 AC_MSG_RESULT(yes)
+                 AC_DEFINE([HAVE_GETHOSTBYNAME_R_5], 1, [Define to 1 if your 
system has gethostbyname_r with 5 arguments.]),
+                 AC_MSG_RESULT(no)
+-- 
+2.39.3
+

diff --git a/net-misc/asterisk/files/asterisk_wrapper-18.17.1-20.2.1 
b/net-misc/asterisk/files/asterisk_wrapper-18.17.1-20.2.1
new file mode 100644
index 000000000000..1a85eccf9b25
--- /dev/null
+++ b/net-misc/asterisk/files/asterisk_wrapper-18.17.1-20.2.1
@@ -0,0 +1,227 @@
+#! /bin/sh
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+progname="$(basename "$0")"
+
+T="$(getopt -o "h" --long 
"help,corecompress:,corerename:,crashemail:,dumpcore:,instance:,maxfd:,nicelevel:,restartdelay:,rundir:,syslog,tty:"
 -n "$progname" -- "$@")"
+eval set -- "${T}"
+
+# bash builtins are special ...
+echo_e="$([ "${SHELL}" = "/bin/bash" ] && echo "echo -e" || echo echo)"
+
+rundir=/run/asterisk
+restartdelay=5
+nicelevel=0
+maxfd=4096
+dumpcore=0
+unset tty instance syslog corecompress corerename crashemail
+
+usage() {
+       cat <<USAGE
+USAGE: $progname [options] -- asterisk options"
+OPTIONS:
+       -h|--help
+               Output this text and exit.
+       --corecompress[=tool]
+               asterisk's address space can get quite large, compressing the 
core dumps can
+               save significant space, especially if asterisk core dumps 
frequently.
+       --corerename pattern
+               It's assumed core files (if enabled) will go into PWD, this 
specifies a
+               rename pattern.  The following % codes are recognised:
+                       %h - hostname
+                       %D - date in format YYYYMMDD
+                       %T - time in format HHMMSS
+               It must be mentioned that if kernel.core_pattern (sysctl) is 
modified
+               from the default 'core' value this option is unlikely to work.
+       --crashemail email@address
+               This will send an email whenver asterisk crashes (does not 
terminate
+               cleanly with a zero exit code).  You need a working sendmail 
binary.
+       --dumpcore sizelimit
+               Maximum size of core limit, or the word unlimited.  Default is 
disabled
+               (sizelimit of 0).
+       --instance name
+               Updated label for sylog logger.
+       --maxfd maxfd
+               Sets the maximum number of file descriptors (default 4096).
+       --nicelevel nicelevel
+               Will set the asterisk nice level to the specified value.
+       --restartdelay delay_in_seconds
+               Number of seconds to wait before attempting to restart 
asterisk.  This helps
+               to avoid tight-loop crashes.  Defaults to 5s. Minimum 1.
+       --rundir path
+               Where to store the asterisk asterisk_wrapper.pid file.  In 
order to terminate the
+               wrapper (when asterisk next terminates), remove this file.
+       --syslog
+               Pass to redirect output to syslog rather than using stdout and 
stderr.
+       --tty tty
+               If asterisk should be attached to a TTY device, then pass this, 
eg --tty /dev/tty8.
+               Use of this is not recommended in general.
+
+NOTE:  There are some quirks with bash getopt shunting non-options prior to --
+       to asterisk options, so be careful of this.  Typically stuff will break.
+USAGE
+}
+
+matchreg() {
+       local v=$1
+       shift
+       echo "$v" | grep -q "$@"
+}
+
+while [ "$1" != "--" ]; do
+       case "$1" in
+                       
--corecompress|--corerename|--crashemail|--dumpcore|--instance|--maxfd|--nicelevel|--restartdelay|--rundir|--tty)
+                       eval "${1#--}=\"\${2}\""
+                       shift 2
+                       ;;
+               --syslog)
+                       eval "${1#--}=1"
+                       shift
+                       ;;
+               --help|-h)
+                       usage
+                       exit 0
+                       ;;
+               *)
+                       echo "BUG: Don't know how to process option $1." >&2
+                       usage >&2
+                       exit 1
+                       ;;
+       esac
+done
+shift # --
+
+if ! matchreg "${restartdelay}" "^[1-9][0-9]*$"; then
+       echo "Invalid --restartdelay value ${restartdelay}, resetting to 5." >&2
+       restartdelay=5
+fi
+
+if ! matchreg "${maxfd}" "^[1-9][0-9]*$"; then
+       echo "Invalid --maxfd value, resetting to 4096." >&2
+       maxfd=4096
+fi
+
+if [ $maxfd -lt 1024 ]; then
+       echo "maxfd is guaranteed too low, bumping to at least 1024" >&2
+       maxfd=1024
+fi
+
+if [ -n "${nicelevel}" ] && ! matchreg "${nicelevel}" -E "^-?[0-9]+$"; then
+       echo "Invalid --nicelevel which much be a valid integer (values from 
-20 to 20 makes sense)."
+       exit 1
+fi
+
+if [ -n "${corecompress}" -a ! -x "${corecompress}" ]; then
+       corecompress=$(which "${corecompress}" 2>/dev/null)
+       [ -z "${corecompress}" ] && echo "Error locating core compression tool, 
disabling core compression." >&2
+fi
+
+# Before here will still be output (potentially munged, to the terminal).
+if [ -n "${syslog}" ]; then
+       tdir="$(mktemp -d)"
+       tfifo="${tdir}/asterisk_wrapper.logger.fifo"
+       mkfifo "${tfifo}"
+       logger -t "asterisk_wrapper${instance:+:}${instance}" --id=$$ 
>/dev/null 2>&1 <"${tfifo}" &
+       exec 1>"${tfifo}"
+       exec 2>&1
+
+       rm "${tfifo}"
+       rmdir "${tdir}"
+fi
+
+echo "Initializing ${progname}"
+
+cleanup(){
+       # There is a tiny race here, if this gets replaced inbetween the read 
and the rm.
+       # To fix this is quite complex in that we need to keep an fd, compare 
inode numbers
+       # and manage flock's.
+       [ -r "${rundir}/${progname}.pid" ] && \
+               [ "$(cat "${rundir}/${progname}.pid")" = $$ ] && \
+               rm "${rundir}/${progname}.pid"
+}
+trap cleanup EXIT
+
+# We could be clobbering an old version's pid, in which case it'll just 
terminate on
+# it's next iteration.  Towards this end, if asterisk.pid exists, attempt to 
find it's
+# config file and request a core stop when convenient so that we can take over.
+echo $$ > "${rundir}/${progname}.pid"
+if [ -r "${rundir}/asterisk.pid" ]; then
+       ast_pid="$(cat "${rundir}/asterisk.pid")"
+       [ -r "/proc/${ast_pid}/cmdline" ] && ast_conf="$(tr '\0' '\n' < 
"/proc/${ast_pid}/cmdline" | grep -A1 '^-C$' | tail -n1)" && /usr/sbin/asterisk 
-C "${ast_conf:-/etc/asterisk/asterisk.conf}" -rx "core stop when convenient"
+       # We may hit a few (depending on how busy the server is a great many 
number) loop failures still ...
+fi
+
+prlimit --core=${dumpcore} --pid=$$
+prlimit --nofile=${maxfd} --pid=$$
+
+ast_cmd=/usr/sbin/asterisk
+if [ -n "${nicelevel}" ]; then
+       ast_cmd="nice -n ${nicelevel} ${ast_cmd}"
+fi
+
+while [ -r "${rundir}/${progname}.pid" ]; do
+       # Another instance is looking to replace us, so terminate.
+       if [ "$(cat "${rundir}/${progname}.pid")" != $$ ]; then
+               break
+       fi
+
+       echo "Starting asterisk with ${ast_cmd} $*"
+       if [ -n "${tty+yes}" ]; then
+               /bin/stty -F "${tty}" sane
+               ${ast_cmd} "$@" >"${tty}" 2>&1 <"${tty}"
+               result=$?
+       else
+               # Purposefully leave stderr alone, this will under certain odd 
cases (like exceptions,
+               # and other odd cases logged from glibc) result in those logs 
at least being captured
+               # in syslog.
+               ${ast_cmd} "$@" </dev/null >/dev/null
+               result=$?
+       fi
+
+       if [ "$result" -eq 0 ]; then
+               echo "Asterisk terminated normally."
+               break
+       fi
+
+       if [ "$result" -gt 128 ]; then
+               signal="$(( result - 128 ))"
+               signame="$(kill -l $signal 2>/dev/null)"
+               MSG="Asterisk terminated with Signal: $signal 
(SIG${signame:-???})"
+
+               # TODO: figure out how to use /proc/sys/kernel/core_pattern 
here, but if someone is using
+               # that, chances are they're already dealing with what we want 
here.
+               if [ -r core ]; then
+                       if [ -n "${corerename+yes}" ]; then
+                               core_target="$(echo "${core_pattern}" | sed -e 
"s/%h/$(hostname)/" \
+                                       -e "s/%D/$(date +%Y%m%d)/" -e 
"s/%T/$(date +%H%M%S)/")"
+                               mv core "${core_target}"
+                               core_target=$(readlink -f "${core_target}")
+                       else
+                               core_target=$(readlink -f core)
+                       fi
+
+                       if [ -n "${corecompress}" && -x "${corecompress}" ]; 
then
+                               "${corecompress}" "${core_target}"
+                       fi
+
+                       MSG="${MSG}\r\nCore dumped: ${core_target}"
+               fi
+       else
+               MSG="Asterisk terminated with return code: $result"
+       fi
+
+       [ -n "${tty+yes}" ] \
+               && echo "${MSG}" >"${tty}" \
+               || echo "${MSG}"
+
+       if [ -n "${crashemail+yes}" && -x /usr/sbin/sendmail ]; then
+               $echo_e -n "Subject: Asterisk crashed\r\n${MSG}\r\n" |\
+                        /usr/sbin/sendmail "${crashemail}"
+       fi
+       echo "Restarting asterisk after ${restartdelay}s ..."
+       sleep "${restartdelay}"
+done
+
+echo "Terminating $progname."
+exit 0

diff --git a/net-misc/asterisk/files/initd-18.17.1-20.2.1 
b/net-misc/asterisk/files/initd-18.17.1-20.2.1
new file mode 100644
index 000000000000..7d48b36456bf
--- /dev/null
+++ b/net-misc/asterisk/files/initd-18.17.1-20.2.1
@@ -0,0 +1,311 @@
+#!/sbin/openrc-run
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+extra_started_commands="forcestop reload"
+
+depend() {
+       need net
+       use nscd dns dahdi mysql postgresql slapd capi
+}
+
+is_running() {
+       [ -r "${ast_rundir}/asterisk.pid" ] || return 1
+       PID="$(cat "${ast_rundir}/asterisk.pid")"
+       [ -d "/proc/${PID}" ] || return 1
+       EXE="$(readlink -f /proc/${PID}/exe)"
+       EXE="${EXE% (deleted)}" # in case asterisk got upgraded and we're still 
looking at an old one.
+       [ "${EXE}" = /usr/sbin/asterisk ] || return 1 # pid got re-used for 
another process.
+
+       # PID reported in pidfile is active, and is still an asterisk instance.
+       return 0
+}
+
+# Sets up a few variables for us for use
+# ast_instancename: eg, asterisk when RC_SVCNAME=asterisk, or asterisk(foo) 
when asterisk.foo.
+# ast_rundir: directory to be used as run folder (pid and ctl files).
+setup_svc_variables()
+{
+       local t
+
+       ast_instancename=asterisk
+       ast_rundir=/run/${RC_SVCNAME}
+       ast_logdir=/var/log/${RC_SVCNAME}
+       ast_confdir=/etc/${RC_SVCNAME}
+       ast_cachedir=/var/cache/asterisk
+       ast_stop_timeout=120
+       ast_stop_method="gracefully"
+
+       if [ "${RC_SVCNAME}" != "asterisk" ]; then
+               t="${RC_SVCNAME#asterisk.}"
+               if [ "${RC_SVCNAME}" = "${t}" ]; then
+                       eerror "Invalid SVCNAME of ${RC_SVCNAME}, must be of 
the format asterisk.name."
+                       return 1
+               fi
+               ast_instancename="${ast_instancename}(${t})"
+       fi
+
+       [ -n "${ASTERISK_RUNDIR}" ] && ast_rundir="${ASTERISK_RUNDIR}"
+       [ -n "${ASTERISK_LOGDIR}" ] && ast_logdir="${ASTERISK_LOGDIR}"
+       [ -n "${ASTERISK_CONFDIR}" ] && ast_confdir="${ASTERISK_CONFDIR}"
+       [ -n "${ASTERISK_CACHEDIR}" ] && ast_confdir="${ASTERISK_CACHEDIR}"
+       [ -n "${ASTERISK_STOP_TIMEOUT}" ] && 
ast_stop_timeout="${ASTERISK_STOP_TIMEOUT}"
+       case "${ASTERISK_STOP_METHOD}" in
+               gracefully|when\ convenient|now)
+                       ast_stop_method="${ASTERISK_STOP_METHOD}"
+               ;;
+       esac
+       ast_group=
+       if [ -n "${ASTERISK_USER}" ]; then
+               ast_user="${ASTERISK_USER%%:*}"
+               if [ "${ast_user}" != "${ASTERISK_USER}" ]; then
+                       ast_group="${ASTERISK_USER#*:}"
+                       ast_group="${ast_group%%:*}"
+               fi
+       fi
+
+       [ -z "${ast_user}" ] && ast_user=asterisk
+
+       ast_pgroup="$(getent group $(getent passwd "${ast_user}" | awk -F: '{ 
print $4 }') | sed -re 's/:.*//')"
+
+       return 0
+}
+
+start() {
+       local OPTS PID
+       local tmp x
+
+       local OPTS ARGS WRAPPER_OPTS
+
+       setup_svc_variables || return $?
+
+       ebegin "Starting ${ast_instancename} PBX"
+
+       eindent
+
+       # filter (redundant) arguments
+       OPTS="$(echo "${ASTERISK_OPTS}" | sed -re "s:-[cfF]::g")"
+
+       # default options
+       OPTS="${OPTS}${OPTS:+ }-C ${ast_confdir}/asterisk.conf -f"  # don't 
fork / detach breaks wrapper script...
+
+       WRAPPER_OPTS="--syslog"
+       if [ "${RC_SVCNAME}" != "asterisk" ]; then
+               WRAPPER_OPTS="${WRAPPER_OPTS} --instance 
${RC_SVCNAME#asterisk.}"
+       fi
+       WRAPPER_OPTS="${WRAPPER_OPTS} --rundir ${ast_rundir}"
+       
+       # ensure that ASTERISK_RESTART_DELAY is integer.
+       ASTERISK_RESTART_DELAY="$(echo "${ASTERISK_RESTART_DELAY}" | sed -re 
's/^([0-9]*).*/\1/')"
+       [ -z "${ASTERISK_RESTART_DELAY}" ] && ASTERISK_RESTART_DELAY=5
+       WRAPPER_OPTS="${WRAPPER_OPTS} --restartdelay ${ASTERISK_RESTART_DELAY}"
+
+       if [ -n "${ASTERISK_CORE_SIZE}" ] &&
+          [ "${ASTERISK_CORE_SIZE}" != "0" ]; then
+               WRAPPER_OPTS="${WRAPPER_OPTS} --dumpcore ${ASTERISK_CORE_SIZE}" 
+               OPTS="${OPTS} -g"
+
+               if [ -n "${ASTERISK_CORE_DIR}" ] && \
+                  [ ! -d "${ASTERISK_CORE_DIR}" ]
+               then
+                       checkpath -d -m 0755 -o ${ast_user}:${ast_group} 
"${ASTERISK_CORE_DIR}"
+               fi
+               ASTERISK_CORE_DIR="${ASTERISK_CORE_DIR:-/tmp}"
+
+               cd "${ASTERISK_CORE_DIR}"
+               einfo "Core dump size            : ${ASTERISK_CORE_SIZE}"
+               einfo "Core dump location        : ${ASTERISK_CORE_DIR}"
+
+               if [ -n "${ASTERISK_CORE_COMPRESS}" ]; then
+                       einfo "Core compression tool     : 
${ASTERISK_CORE_COMPRESS}"
+                       WRAPPER_OPTS="${WRAPPER_OPTS} --corecompress 
${ASTERISK_CORE_COMPRESS}"
+               fi
+
+               if yesno "${ASTERISK_CORE_USEHOSTNAME}"; then
+                       WRAPPER_OPTS="${WRAPPER_OPTS} --corerename 
core-%H-%D-%T"
+               else
+                       WRAPPER_OPTS="${WRAPPER_OPTS} --corerename core-%D-%T"
+               fi
+       else
+               cd /
+       fi
+
+       if [ -n "${ASTERISK_MAX_FD}" ]; then
+               WRAPPER_OPTS="${WRAPPER_OPTS} --maxfd ${ASTERISK_MAX_FD}"
+               einfo "Max open filedescriptors  : ${ASTERISK_MAX_FD}"
+       fi
+
+       if [ -n "${ASTERISK_NICE}" ]; then
+               if [ ${ASTERISK_NICE} -ge -20 ] && \
+                  [ ${ASTERISK_NICE} -le  19 ]; then
+                       einfo "Nice level                : ${ASTERISK_NICE}"
+                       WRAPPER_OPTS="${WRAPPER_OPTS} --nicelevel 
${ASTERISK_NICE}"
+               else
+                       eerror "Nice value must be between -20 and 19"
+                       return 1
+               fi
+       fi
+
+       if [ -n "${ASTERISK_NOTIFY_EMAIL}" ]; then
+               if [ -x /usr/sbin/sendmail ]; then
+                       einfo "Email notifications go to : 
${ASTERISK_NOTIFY_EMAIL}"
+                       WRAPPER_OPTS="${WRAPPER_OPTS} --crashemail 
${ASTERISK_NOTIFY_EMAIL}"
+               else
+                       ewarn "Notifications disabled, /usr/sbin/sendmail 
doesn't exist or is not executable!"
+               fi
+       fi
+
+       if [ -n "${ASTERISK_TTY}" ]; then
+               for x in "${ASTERISK_TTY}" \
+                        "/dev/tty${ASTERISK_TTY}" \
+                        "/dev/vc/${ASTERISK_TTY}"
+               do
+                       if [ -c "${x}" ]; then
+                               TTY="${x}"
+                       fi
+               done
+               if [ -n "${TTY}" ]; then
+                       einfo "Messages are sent to      : ${TTY}"
+                       WRAPPER_OPTS="${WRAPPER_OPTS} --tty ${TTY}"
+               else
+                       ewarn "ASTERISK_TTY=${TTY} ignored, not valid."
+               fi
+       fi
+
+       if yesno "${ASTERISK_CONSOLE}" && [ -n "${TTY}" ]; then
+               einfo "Starting Asterisk console : Yes"
+               OPTS="${OPTS} -c"
+       fi
+
+       if ! getent passwd "${ast_user}" >/dev/null 2>&1; then
+               eerror "Requested to run asterisk as ${ast_user}, which doesn't 
exist."
+               return 1
+       fi
+       OPTS="${OPTS} -U ${ast_user}"
+
+       if [ -n "${ast_group}" ] && ! getent group "${ast_group}" >/dev/null 
2>&1; then
+               eerror "Requested to run ${ast_instancename} with group 
${ast_group}, which doesn't exist."
+               return 1
+       fi
+       [ -n "${ast_group}" ] && OPTS="${OPTS} -G ${ast_group}"
+
+       if [ "${ast_user}" = root ]; then
+               ewarn "Starting asterisk as root is not recommended (SERIOUS 
SECURITY CONSIDERATIONS)."
+       elif [ "${ast_group}" = root ]; then
+               ewarn "Starting asterisk with group root is not recommended 
(SERIOUS SECURITY CONSIDERATIONS)."
+       fi
+
+       checkpath -d -m 0755 -o "${ast_user}:${ast_group}" "${ast_logdir}" 
"${ast_rundir}"
+       checkpath -d -m 0750 -o "${ast_user}:${ast_group}" "${ast_cachedir}"
+
+       einfo "Starting asterisk as      : 
${ast_user}:${ast_group:-${ast_pgroup} (+supplementaries)}"
+       einfo "Wrapper options           : ${WRAPPER_OPTS}"
+       einfo "Asterisk options          : ${OPTS}"
+
+       /usr/sbin/asterisk_wrapper ${WRAPPER_OPTS} -- ${OPTS} &
+       result=$?
+
+       if [ $result -eq 0 ]; then
+               # 2 seconds should be enough for asterisk to start
+               sleep 2
+               is_running
+               result=$?
+
+               [ $result -eq 0 ] || wrapperstop
+       fi
+
+       eoutdent
+       eend $result
+
+       if [ $result -eq 0 ] && yesno "${ASTERISK_WAITBOOTED}"; then
+               if [ ! -r "${ast_rundir}/asterisk.ctl" ]; then
+                       # asterisk can crash during startup ...
+                       ebegin "Waiting for ctl file to appear"
+                       while is_running && [ ! -r "${ast_rundir}/asterisk.ctl" 
]; do
+                               sleep 1
+                       done
+                       is_running
+                       result=$?
+                       eend $result
+               fi
+               if [ $result -eq 0 ]; then
+                       ebegin "Waiting for ${ast_instancename} to fully boot"
+                       /usr/sbin/asterisk -C "${ast_confdir}/asterisk.conf" -r 
-x "core waitfullybooted" >/dev/null 2>&1
+                       eend $?
+               fi
+       fi
+
+       return $result
+}
+
+wrapperstop() {
+       # Older path.
+       if [ -r "${ast_rundir}/wrapper_loop.running" ]; then
+               ebegin "Signalling ${ast_instancename} wrapper script to 
terminate"
+               rm "${ast_rundir}/wrapper_loop.running"
+               eend $?
+       fi
+
+       if [ -r "${ast_rundir}/asterisk_wrapper.pid" ]; then
+               ebegin "Signalling ${ast_instancename} wrapper script to 
terminate"
+               rm "${ast_rundir}/asterisk_wrapper.pid"
+               eend $?
+       fi
+
+       return 0
+}
+
+forcestop() {
+       setup_svc_variables || return $?
+
+       # Just to be sure - when we want to forcestop we should make it all 
tear down.
+       wrapperstop
+
+       ebegin "Stopping ${ast_instancename} PBX"
+       start-stop-daemon --stop --pidfile /run/asterisk/asterisk.pid
+       eend $?
+}
+
+stop() {
+       setup_svc_variables || return $?
+
+       wrapperstop
+
+       if ! is_running; then
+               eerror "${ast_instancename} is not running!"
+               return 0
+       fi
+
+       ebegin "Stopping ${ast_instancename} PBX ${ast_stop_method}"
+       /usr/sbin/asterisk -C "${ast_confdir}/asterisk.conf" -r -x "core stop 
${ast_stop_method}" >/dev/null 2>&1
+       # Now we have to wait until asterisk has _really_ stopped.
+       sleep 1
+       if is_running; then
+               einfon "Waiting for ${ast_instancename} to shutdown ."
+               local cnt=0
+               while is_running; do
+                       cnt="$(expr $cnt + 2)"
+                       if [ ${ast_stop_timeout} -gt 0 -a $cnt -gt 
${ast_stop_timeout} ] ; then
+                               echo
+                               eend 1 "Failed waiting for ${ast_instancename} 
to stop."
+                               return 1
+                       fi
+                       sleep 2
+                       printf "."
+               done
+               echo
+       fi
+       eend 0
+}
+
+reload() {
+       setup_svc_variables || return $?
+
+       if is_running; then
+               ebegin "Requesting ${ast_instancename} to reload configuration"
+               /usr/sbin/asterisk -C "${ast_confdir}/asterisk.conf" -r -x 
"module reload" >/dev/null 2>&1
+               eend $?
+       else
+               eerror "${ast_instancename} is not running!"
+       fi
+}


Reply via email to