# - vpb (libvpb, vpbapi.h)
# - make package for moh sound files
# - build res_ari_mailboxes as an alternative for voicemail subpackages
-# - +x missing:
-# ldd: warning: you do not have execution permission for `/usr/lib/libasteriskssl.so.1'
#
# Conditional build:
%bcond_with corosync # res_corosync module (broken in 12.0.0)
%bcond_without radius # build without Radius support
%bcond_without pjsip # build without PJSIP stack
%bcond_without opus_vp8 # build without Opus codec and VP8 passthrough
+%bcond_with malloc_debug # build with MALLOC_DEBUG
+%bcond_with system_pjproject # build with system pjproject (see below)
%bcond_without apidocs # disable apidocs building
%bcond_without verbose # verbose build
-%define opus_commit 058319d6ad464c79bbea71cf589883af62a18548
+# NOTE:
+# Building with system pjproject may be not a good idea. pjproject comes
+# optimized for client usage and asterisk is a SIP server. Asterisk requries
+# pjproject properly patched and configured and keeping our pjproject in sync
+# with Asterisk requirements may be tricky. Also, Asterisk is the only
+# package using pjproject in PLD, so there is little gain with using system
+# one.
+#
+# Before switching the 'system_pjproject' bcond make sure the pjproject
+# package is updated to the version used by Asterisk, with all Asterisk
+# patches applied and with configuration synced.
+
+%define pjproject_version 2.10
+
+%define opus_commit 83e1b458c77e0e287adeca494eeb79edb077b0ff
Summary: Asterisk PBX
Summary(pl.UTF-8): Centralka (PBX) Asterisk
Name: asterisk
-Version: 13.11.1
-Release: 1
+Version: 16.15.0
+Release: 2
License: GPL v2
Group: Applications/System
Source0: http://downloads.digium.com/pub/asterisk/releases/%{name}-%{version}.tar.gz
-# Source0-md5: 7c27d278533c5936348a412e9df5982d
+# Source0-md5: 2f03204a38e8ed49e58474961d43f363
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.tmpfiles
# menuselect.* -> make menuconfig; choose options; copy resulting files here
Source6: menuselect.makedeps
Source7: menuselect.makeopts
-# https://github.com/seanbright/asterisk-opus/
-Source8: https://github.com/seanbright/asterisk-opus/archive/%{opus_commit}/asterisk-opus-%{opus_commit}.tar.gz
-# Source8-md5: 2cc55d2036ee4b7e5a44ea5e2d7280f3
-Patch0: lua51-path.patch
-Patch1: %{name}-ppc.patch
+# https://github.com/traud/asterisk-opus
+Source8: https://github.com/traud/asterisk-opus/archive/%{opus_commit}/asterisk-opus-%{opus_commit}.tar.gz
+# Source8-md5: 368cc32e6af1841e1422077b6838d1e6
+Source9: https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/%{pjproject_version}/pjproject-%{pjproject_version}.tar.bz2
+# Source9-md5: 4fffc49b461133f0a4143b05a22fb30e
+Patch0: lua_versions.patch
+
Patch2: FHS-paths.patch
Patch3: pld-banner.patch
Patch4: lpc10-system.patch
-Patch5: %{name}-histedit.patch
-Patch6: x32.patch
-Patch7: %{name}-ilbc.patch
-Patch8: asterisk-opus.patch
+Patch5: x32.patch
+#Patch7: %{name}-ilbc.patch
URL: http://www.asterisk.org/
BuildRequires: OSPToolkit-devel >= 4.0.0
%{?with_oss:BuildRequires: SDL-devel}
# TODO: switch to 2.6
BuildRequires: gmime22-devel
BuildRequires: iksemel-devel
-BuildRequires: imap-devel
+BuildRequires: imap-devel >= 1:2007f-5
%{?with_jack:BuildRequires: jack-audio-connection-kit-devel}
-BuildRequires: jansson-devel
+BuildRequires: jansson-devel >= 2.11-2
+BuildRequires: libatomic-devel
BuildRequires: libcap-devel
BuildRequires: libedit-devel
BuildRequires: libgsm-devel
BuildRequires: libxml2-devel >= 2.0
BuildRequires: libxslt-devel
BuildRequires: lpc10-devel
-BuildRequires: lua51-devel >= 5.1
+BuildRequires: lua53-devel >= 5.3
#BuildRequires: mISDNuser-devel < 2
%{?with_mysql:BuildRequires: mysql-devel}
BuildRequires: ncurses-devel
%{?with_ldap:BuildRequires: openldap-devel}
BuildRequires: openssl-devel >= 0.9.7d
BuildRequires: opus-devel
+%{?with_opus_vp8:BuildRequires: opusfile-devel}
BuildRequires: pam-devel
-%{?with_pjsip:BuildRequires: pjproject-devel >= 2.3}
+%if %{with system_pjproject} && %{with pjsip}
+BuildRequires: pjproject-devel >= 2.6-4
+%endif
BuildRequires: pkgconfig
BuildRequires: popt-devel
%{?with_portaudio:BuildRequires: portaudio-devel >= 19}
BuildRequires: speexdsp-devel
%{?with_sqlite2:BuildRequires: sqlite-devel >= 2}
BuildRequires: sqlite3-devel
-BuildRequires: srtp-devel
-Requires(post,preun,postun): systemd-units >= 38
-Requires: systemd-units >= 0.38
+BuildRequires: libsrtp2-devel
+BuildRequires: unbound-devel
%{?with_odbc:BuildRequires: unixODBC-devel}
BuildRequires: uriparser-devel
%{?with_ilbc:BuildRequires: webrtc-libilbc-devel >= 2}
BuildRequires: xorg-lib-libX11-devel
BuildRequires: zlib-devel
+Requires(post,preun,postun): systemd-units >= 38
+Requires: systemd-units >= 0.38
Requires(post,preun): /sbin/chkconfig
Requires(postun): /usr/sbin/groupdel
Requires(postun): /usr/sbin/userdel
Requires: rc-scripts
Provides: group(asterisk)
Provides: user(asterisk)
+#Obsoletes: asterisk-ais # should be in -corosync package (when built)?
+Obsoletes: asterisk-examples
+Obsoletes: asterisk-h323 < 13
+#Obsoletes: asterisk-misdn # what is the status of this plugin?
+Obsoletes: asterisk-pjsip
+Obsoletes: asterisk-usbradio < 10.4.0
Conflicts: logrotate < 3.8.0
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
# references symbols in the asterisk binary
-%define skip_post_check_so libasteriskssl.so.*
+%define skip_post_check_so libasteriskssl.so.* libasteriskpj.so.*
-%define _noautoprovfiles %{_libdir}/asterisk/modules/.*
+%define _noautoprovfiles %{_libdir}/asterisk/modules/.*
%description
Asterisk is an Open Source PBX and telephony development platform that
%description oss -l pl.UTF-8
Moduł Asteriska wykorzystujący sterowniki dźwięku OSS.
-%package pjsip
-Summary: PJSIP Asterisk modules
-Summary(pl.UTF-8): Moduły Asteriska PJSIP
-Group: Applications/Networking
-Requires: %{name} = %{version}-%{release}
-
-%description pjsip
-The chan_pjsip and res_pjsip* modules provided by this package provide
-the new SIP driver for Asterisk, based on the PJSIP stack, to replace
-the old, badly designed and quite buggy chan_sip module.
-
-%description pjsip -l pl.UTF-8
-Moduły chan_pjsip oraz res_pjsip* zawarte w tym pakiecie dostarczają
-nowy sterownik SIP dla Asteriska, oparty na stosie PJSIP, który ma
-zastąpić stary, źle zaprojektowany i zawierający błędy moduł chan_sip.
-
%package portaudio
Summary: Module for Asterisk that uses the PortAudio library
Summary(pl.UTF-8): Moduł Asteriska wykorzystujący bibliotekę PortAudio
%description vorbis -l pl.UTF-8
Obsługa formatu Ogg Vorbis.
+%package opus
+Summary: Opus codec and file format support
+Summary(pl.UTF-8): Obsługa kodeka i formatu plików Opus
+Group: Applications/Networking
+Requires: %{name} = %{version}-%{release}
+
+%description opus
+Opus codec and file format support.
+
+%description opus -l pl.UTF-8
+Obsługa kodeka i formatu plików Opus.
+
+%package debug-tools
+Summary: Debugging scripts for Asterisk
+Summary(pl.UTF-8): Skrypty diagnostyczne dla Asteriska
+Group: Applications/Networking
+Requires: %{name} = %{version}-%{release}
+
+%description debug-tools
+Debugging scripts for Asterisk.
+
+%description debug-tools -l pl.UTF-8
+Skrypty diagnostyczne dla Asteriska.
+
# define apidocs as last package, as it is the biggest one
%package apidocs
Summary: API documentation for Asterisk
%prep
%setup -q -a 8
%patch0 -p1
-%patch1 -p1
+
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
-%patch6 -p1
-%patch7 -p1
%if %{with opus_vp8}
-%patch8 -p1
cp -a asterisk-opus-%{opus_commit}/codecs/* codecs
cp -a asterisk-opus-%{opus_commit}/formats/* formats
+cp -a asterisk-opus-%{opus_commit}/res/* rest
+cp -a asterisk-opus-%{opus_commit}/include/asterisk/* include/asterisk
+%endif
+
+%if %{without system_pjproject} && %{with pjsip}
+mkdir externals
+ln -s %{SOURCE9} externals
+md5sum %{SOURCE9} > externals/pjproject-%{pjproject_version}.md5
%endif
# Fixup makefile so sound archives aren't downloaded/installed
%{__sed} -i -e 's/^all:.*$/all:/' sounds/Makefile
%{__sed} -i -e 's/^install:.*$/install:/' sounds/Makefile
-# avoid using these
-%{__rm} -r main/editline codecs/gsm codecs/lpc10
-
%build
%{__aclocal} -I autoconf $(find third-party/ -maxdepth 1 -type d -printf "-I %p ")
%{__autoheader}
export ASTLDFLAGS="%{rpmldflags}"
export WGET="/bin/true"
+%if %{without system_pjproject} && %{with pjsip}
+export EXTERNALS_CACHE_DIR="$PWD/externals"
+export PJPROJECT_CONFIGURE_OPTS="--disable-bcg729"
+%endif
+
# be sure to invoke ./configure with our flags
cd menuselect
%{__aclocal} -I ../autoconf
cd ..
%configure \
+ ac_cv_header_stdc=yes \
+ %{__without_if system_pjproject pjproject-bundled} \
+ --without-jansson-bundled \
+ --with-unbound \
%{__without oss SDL_image} \
%{__without bluetooth bluetooth} \
--without-gtk2 \
%if %{without pjsip}
menuselect/menuselect --disable res_pjsip --disable chan_pjsip menuselect.makeopts
%endif
+%if %{without opus_vp8}
+menuselect/menuselect --disable codec_opus_open_source --disable format_ogg_opus_open_source menuselect.makeopts
+%endif
+
+%if %{with malloc_debug}
+menuselect/menuselect --enable MALLOC_DEBUG menuselect.makeopts
+%else
+menuselect/menuselect --disable MALLOC_DEBUG menuselect.makeopts
+%endif
%{__sed} -i -e 's/^MENUSELECT_OPTS_app_voicemail=.*$/MENUSELECT_OPTS_app_voicemail=FILE_STORAGE/' menuselect.makeopts
menuselect/menuselect --enable app_voicemail menuselect.makeopts
+menuselect/menuselect --check-deps menuselect.makeopts
+
# workaround for build failing with asterisk-devel not installed
ln -s libasteriskssl.so.1 ./main/libasteriskssl.so
%{__rm} -r $RPM_BUILD_ROOT/usr/include/asterisk/doxygen
+# fix script interpreters
+%{__sed} -i -e '1s,^#!.*python,#!%{__python},' $RPM_BUILD_ROOT%{_datadir}/asterisk/scripts/*
+%{__sed} -i -e '1s,^#!.*bash,#!/bin/bash,' $RPM_BUILD_ROOT%{_datadir}/asterisk/scripts/*
+
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc README *.txt ChangeLog BUGS CREDITS configs
+%doc README*.md *.txt ChangeLog CHANGES BUGS CREDITS configs LICENSE
%doc doc/asterisk.sgml
%attr(755,root,root) %{_sbindir}/astcanary
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/ccss.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/cdr.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/cdr_custom.conf
+%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/cdr_beanstalkd.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/cdr_manager.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/cdr_syslog.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/cel.conf
+%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/cel_beanstalkd.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/cel_custom.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/cli.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/cli_aliases.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/extensions.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/features.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/followme.conf
+%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/hep.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/iax.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/iaxprov.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/indications.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/muted.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/phone.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/phoneprov.conf
+%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/pjproject.conf
+%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/pjsip.conf
+%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/pjsip_notify.conf
+%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/pjsip_wizard.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/queuerules.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/queues.conf
+%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/resolver_unbound.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/res_parking.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/res_pktccops.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/res_stun_monitor.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/ss7.timers
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/stasis.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/statsd.conf
+%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/stir_shaken.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/telcordia-1.adsi
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/udptl.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/users.conf
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/vpb.conf
-%{_libdir}/libasteriskssl.so.1
+%attr(755,root,root) %{_libdir}/libasteriskssl.so.1
+%if %{without system_pjproject} && %{with pjsip}
+%attr(755,root,root) %{_libdir}/libasteriskpj.so.2
+%endif
%dir %{_libdir}/asterisk
%dir %{_libdir}/asterisk/modules
%attr(755,root,root) %{_libdir}/asterisk/modules/app_agent_pool.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_alarmreceiver.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_amd.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/app_attended_transfer.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_authenticate.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/app_blind_transfer.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/app_bridgeaddchan.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_bridgewait.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_cdr.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_celgenuserevent.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_sayunixtime.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_senddtmf.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_sendtext.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/app_setcallerid.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_sms.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_softhangup.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_speech_utils.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_stack.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_stasis.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/app_statsd.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/app_stream_echo.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_system.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_talkdetect.so
%attr(755,root,root) %{_libdir}/asterisk/modules/app_test.so
%attr(755,root,root) %{_libdir}/asterisk/modules/chan_bridge_media.so
%attr(755,root,root) %{_libdir}/asterisk/modules/chan_iax2.so
%attr(755,root,root) %{_libdir}/asterisk/modules/chan_mgcp.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/chan_multicast_rtp.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/chan_phone.so
+#%attr(755,root,root) %{_libdir}/asterisk/modules/chan_phone.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/chan_pjsip.so
%attr(755,root,root) %{_libdir}/asterisk/modules/chan_rtp.so
%attr(755,root,root) %{_libdir}/asterisk/modules/chan_sip.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_a_mu.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_adpcm.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_alaw.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/codec_codec2.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_g722.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_g726.so
-%if %{with opus_vp8}
-%attr(755,root,root) %{_libdir}/asterisk/modules/codec_opus.so
-%endif
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_ulaw.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_g719.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_g723.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_g729.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_h263.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_h264.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/format_jpeg.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_pcm.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_siren14.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_siren7.so
%endif
%attr(755,root,root) %{_libdir}/asterisk/modules/format_wav.so
%attr(755,root,root) %{_libdir}/asterisk/modules/func_aes.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/func_audiohookinherit.so
%attr(755,root,root) %{_libdir}/asterisk/modules/func_base64.so
%attr(755,root,root) %{_libdir}/asterisk/modules/func_blacklist.so
%attr(755,root,root) %{_libdir}/asterisk/modules/func_callcompletion.so
%attr(755,root,root) %{_libdir}/asterisk/modules/func_module.so
%attr(755,root,root) %{_libdir}/asterisk/modules/func_periodic_hook.so
%attr(755,root,root) %{_libdir}/asterisk/modules/func_pitchshift.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/func_pjsip_aor.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/func_pjsip_contact.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/func_pjsip_endpoint.so
%attr(755,root,root) %{_libdir}/asterisk/modules/func_presencestate.so
%attr(755,root,root) %{_libdir}/asterisk/modules/func_rand.so
%attr(755,root,root) %{_libdir}/asterisk/modules/func_realtime.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_crypto.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_endpoint_stats.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_celt.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_g729.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_h263.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_h264.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_opus.so
%if %{with opus_vp8}
%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_vp8.so
%endif
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_hep.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_hep_pjsip.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_hep_rtcp.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_http_media_cache.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_http_websocket.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_limit.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_manager_devicestate.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_monitor.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_mutestream.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_musiconhold.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_mwi_devstate.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_mwi_external.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_mwi_external_ami.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_parking.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_phoneprov.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjproject.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_acl.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_authenticator_digest.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_caller_id.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_config_wizard.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_dialog_info_body_generator.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_diversion.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_dlg_options.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_dtmf_info.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_empty_info.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_endpoint_identifier_anonymous.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_endpoint_identifier_ip.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_endpoint_identifier_user.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_exten_state.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_header_funcs.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_history.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_logger.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_messaging.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_mwi_body_generator.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_mwi.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_nat.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_notify.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_one_touch_record_info.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_outbound_authenticator_digest.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_outbound_publish.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_outbound_registration.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_path.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_phoneprov_provider.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_pidf_body_generator.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_pidf_digium_body_supplement.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_pidf_eyebeam_body_supplement.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_publish_asterisk.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_pubsub.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_refer.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_registrar.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_rfc3326.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_sdp_rtp.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_send_to_voicemail.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_session.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_sips_contact.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_stir_shaken.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_t38.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_transport_websocket.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_xpidf_body_generator.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_pktccops.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_realtime.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_remb_modifier.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_resolver_unbound.so
# res_rtp_asterisk.so pulls some pjproject libs, but it still looks like a core module
%attr(755,root,root) %{_libdir}/asterisk/modules/res_rtp_asterisk.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_rtp_multicast.so
+#%attr(755,root,root) %{_libdir}/asterisk/modules/res_sdp_translator_pjmedia.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_security_log.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_smdi.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_sorcery_astdb.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_stasis_playback.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_stasis_recording.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_stasis_snoop.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_stir_shaken.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_stun_monitor.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_timing_pthread.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_timing_timerfd.so
%dir %{_datadir}/asterisk/rest-api
%{_datadir}/asterisk/rest-api/*.json
+%dir %{_datadir}/asterisk/scripts
+
%attr(770,root,asterisk) %dir %{_localstatedir}/lib/asterisk
%dir %attr(750,root,asterisk) %{_localstatedir}/lib/asterisk/licenses
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libasteriskssl.so
+%if %{without system_pjproject} && %{with pjsip}
+%attr(755,root,root) %{_libdir}/libasteriskpj.so
+%endif
%dir %{_includedir}/asterisk
%{_includedir}/asterisk/*.h
%{_includedir}/asterisk.h
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_ilbc.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_ilbc.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_ilbc.so
%endif
%files jabber
%attr(755,root,root) %{_libdir}/asterisk/modules/res_odbc_transaction.so
%endif
+%if %{with opus_vp8}
+%files opus
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/asterisk/modules/format_ogg_opus_open_source.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/codec_opus_open_source.so
+%endif
+
%files osp
%defattr(644,root,root,755)
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/osp.conf
%attr(755,root,root) %{_libdir}/asterisk/modules/chan_oss.so
%endif
-%if %{with pjsip}
-%files pjsip
-%defattr(644,root,root,755)
-%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/pjproject.conf
-%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/pjsip.conf
-%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/pjsip_notify.conf
-%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/pjsip_wizard.conf
-%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/hep.conf
-%attr(755,root,root) %{_libdir}/asterisk/modules/chan_pjsip.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/func_pjsip_aor.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/func_pjsip_contact.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/func_pjsip_endpoint.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_hep.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_hep_pjsip.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_hep_rtcp.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjproject.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_acl.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_authenticator_digest.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_caller_id.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_config_wizard.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_dialog_info_body_generator.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_diversion.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_dlg_options.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_dtmf_info.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_empty_info.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_endpoint_identifier_anonymous.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_endpoint_identifier_ip.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_endpoint_identifier_user.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_exten_state.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_header_funcs.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_history.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_logger.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_messaging.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_multihomed.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_mwi_body_generator.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_mwi.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_nat.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_notify.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_one_touch_record_info.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_outbound_authenticator_digest.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_outbound_publish.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_outbound_registration.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_path.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_phoneprov_provider.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_pidf_body_generator.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_pidf_digium_body_supplement.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_pidf_eyebeam_body_supplement.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_publish_asterisk.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_pubsub.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_refer.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_registrar_expire.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_registrar.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_rfc3326.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_sdp_rtp.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_send_to_voicemail.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_session.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_sips_contact.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_t38.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_transport_management.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_transport_websocket.so
-%attr(755,root,root) %{_libdir}/asterisk/modules/res_pjsip_xpidf_body_generator.so
-%endif
-
%if %{with portaudio}
%files portaudio
%defattr(644,root,root,755)
%files speex
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_speex.so
+%attr(755,root,root) %{_libdir}/asterisk/modules/format_ogg_speex.so
%attr(755,root,root) %{_libdir}/asterisk/modules/func_speex.so
%if %{with sqlite2}
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/unistim.conf
%attr(755,root,root) %{_libdir}/asterisk/modules/chan_unistim.so
-
%files voicemail
%defattr(644,root,root,755)
%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/voicemail.conf
%files vorbis
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/asterisk/modules/format_ogg_vorbis.so
+
+%files debug-tools
+%defattr(644,root,root,755)
+%attr(640,root,asterisk) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/asterisk/ast_debug_tools.conf
+%attr(755,root,root) %{_datadir}/asterisk/scripts/ast_coredumper
+%attr(755,root,root) %{_datadir}/asterisk/scripts/ast_logescalator
+%attr(755,root,root) %{_datadir}/asterisk/scripts/ast_loggrabber
+%attr(755,root,root) %{_datadir}/asterisk/scripts/refcounter.py
+%attr(755,root,root) %{_datadir}/asterisk/scripts/reflocks.py
+%attr(755,root,root) %{_datadir}/asterisk/scripts/refstats.py