# $Id: smeserver-freepbx.spec,v 1.21 2022/12/15 07:06:18 jpp Exp $ # Authority: vip-ire # Name: Daniel Berteaud #%define fpbxversion 2.5.0 %define version 14 %define release 11 %define name smeserver-freepbx Summary: Asterisk web GUI Name: %{name} Version: %{version} Release: %{release}%{?dist} License: GPL Group: System/Servers Source: %{name}-%{version}.tar.gz Patch0: smeserver-freepbx-14-bz11940-bz9756-cron.patch Patch1: smeserver-freepbx-14-bz11924-sounds.patch Patch2: smeserver-freepbx-14-bz11986-service-fwconsole.patch Patch3: smeserver-freepbx-14-bz12009-backup.patch Patch4: smeserver-freepbx-14-bz12046-httpd24.patch Patch5: smeserver-freepbx-14-bz12226.patch Patch6: smeserver-freepbx-14-bz10703-backup.patch Patch7: smeserver-freepbx-14-bz11923-bz12256.patch Patch8: smeserver-freepbx-14-go15.patch BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot URL: http://www.freepbx.org/ BuildRequires: e-smith-devtools BuildRequires: tar Requires: mariadb Requires: nodejs >= 10 Requires: jq # freepbx 14 requires php56 Requires: php56-php-pear php56-php-cgi php56-php-common php56-php-curl php56-php-mbstring php56-php-gd php56-php-mysql php56-php-gettext php56-php-bcmath php56-php-zip php56-php-xml php56-php-imap php56-php-json php56-php-process php56-php-snmp # freepbx 15 and 16 Requires: php74-php-pear php74-php-cgi php74-php-common php74-php-curl php74-php-mbstring php74-php-gd php74-php-mysql php74-php-gettext php74-php-bcmath php74-php-zip php74-php-xml php74-php-imap php74-php-json php74-php-process php74-php-snmp # freepbx 16 Requires: php80-php-pear php80-php-cgi php80-php-common php80-php-curl php80-php-mbstring php80-php-gd php80-php-mysql php80-php-gettext php80-php-bcmath php80-php-zip php80-php-xml php80-php-imap php80-php-json php80-php-process php80-php-snmp Requires: httpd Requires: php-pear Requires: /usr/sbin/asterisk #Requires: dahdi-tools #Requires: dahdi-linux Requires: sox Requires: mod_auth_tkt Requires: e-smith-base Requires: freepbx-src Requires: asterisk-sounds-core-en-ulaw Requires: asterisk-voicemail Requires: asterisk-configs #SME10 Requires: asterisk-mysql asterisk-odbc asterisk-pjsip asterisk-sip asterisk-festival asterisk-moh-opsound asterisk-snmp asterisk-mp3 asterisk-sounds-core-en asterisk-moh-opsound Requires: asterisk-voicemail-plain # conlicts with imap asterisk-voicemail-odbc asterisk-voicemail-plain Requires: ffmpeg Requires: mpg123 Requires: mysql-connector-odbc Requires: unixODBC Requires: asterisk-odbc Requires: lame Requires: xz Requires: asterisk-ael asterisk-iax2 asterisk-fax asterisk-ldap asterisk-misdn Requires: MySQL-python opus nmap icu vsftpd libicu-devel gcc-c++ Requires: asterisk-moh-opsound-alaw asterisk-moh-opsound-g722 asterisk-moh-opsound-g729 asterisk-moh-opsound-gsm asterisk-moh-opsound-siren14 asterisk-moh-opsound-siren7 asterisk-moh-opsound-sln16 asterisk-moh-opsound-ulaw asterisk-moh-opsound-wav Requires: asterisk-sounds-core-en-alaw asterisk-sounds-core-en-g722 asterisk-sounds-core-en-g729 asterisk-sounds-core-en-gsm asterisk-sounds-core-en-siren14 asterisk-sounds-core-en-siren7 asterisk-sounds-core-en-sln16 asterisk-sounds-core-en-ulaw asterisk-sounds-core-en-wav # Requires: asterisk-sounds-core-fr-alaw asterisk-sounds-core-fr-g722 asterisk-sounds-core-fr-g729 asterisk-sounds-core-fr-gsm asterisk-sounds-core-fr-siren14 asterisk-sounds-core-fr-siren7 asterisk-sounds-core-fr-sln16 asterisk-sounds-core-fr-ulaw asterisk-sounds-core-fr-wav # Requires: asterisk-sounds-core-it-alaw asterisk-sounds-core-it-g722 asterisk-sounds-core-it-g729 asterisk-sounds-core-it-gsm asterisk-sounds-core-it-siren14 asterisk-sounds-core-it-siren7 asterisk-sounds-core-it-sln16 asterisk-sounds-core-it-ulaw asterisk-sounds-core-it-wav # Requires: asterisk-sounds-core-es-alaw asterisk-sounds-core-es-g722 asterisk-sounds-core-es-g729 asterisk-sounds-core-es-gsm asterisk-sounds-core-es-siren14 asterisk-sounds-core-es-siren7 asterisk-sounds-core-es-sln16 asterisk-sounds-core-es-ulaw asterisk-sounds-core-es-wav Requires: e-smith-apache >= 2.6.0-19 Requires: smeserver-php >= 3.0.0-43 #Buildarch: noarch AutoReqProv: no %description FreePBX is a Standardised Implementation of Asterisk that gives you a GUI to manage your system. If you have looked into Asterisk, you would know that it does not come with any built in programming. You cannot plug a phone into it and make it work without editing configuration files, writing dialplans, and various messing about. FreePBX simplifies this by giving you a pre-written set of dialplans that allow you to have a fully functional PBX pretty much straight away. This package provide the integration of FreePBX on SME Server. %changelog * Wed Dec 14 2022 Jean-Philippe Pialasse 14-11.sme - fix bugs installing FPBX 15 - fix amportal alerts [SME: 12259] - compatible FBX 16 [SME: 12276] - fix duplicate logrotate [SME: 12237] - force php memory on install [SME: 10221] * Tue Dec 13 2022 Jean-Philippe Pialasse 14-10.sme - fix backup for FreePBX 15 and higher [SME: 12256] - make compatible up to FreePBX 16 [SME: 11923] * Wed Dec 07 2022 Jean-Philippe Pialasse 14-9.sme - improve backup [SME: 10703] * Wed Dec 07 2022 Jean-Philippe Pialasse 14-8.sme - fix patch for asterisk crontab [SME: 12227] * Wed Dec 07 2022 Jean-Philippe Pialasse 14-7.sme - fix voicemail not visible in UCP [SME: 12254] force asterisk-voicemail-plain * Fri Nov 18 2022 Jean-Philippe Pialasse 14-6.sme - fix creation of folder preventing migration [SME: 12226] * Sat Jul 30 2022 Brian Read 14-5.sme - Re-build and link to latest devtools [SME: 11997] * Fri Jul 22 2022 Jean-Philippe Pialasse 14-4.sme - add to core backup [SME: 12009] - httpd 2.4 syntax [SME: 12046] * Tue May 31 2022 Jean-Philippe Pialasse 14-3.sme - Re-build and link to latest devtools service file fwconsole path [SME: 11986] * Sat Apr 16 2022 Jean-Philippe Pialasse 14-2.sme - Re-build and link to latest devtools huge amount of error if asterisk disabled [SME: 9756] - Re-build and link to latest devtools multiple email sent because of asterisk cron php path [SME: 11940] - on uninstall remove asterisk crontab to avoid noise [SME: 10131] - allow access to sounds folder for gui [SME: 11924] * Sun Mar 27 2022 Jean-Philippe Pialasse 14-1.sme - first version 14 [SME: 11613] * Wed Nov 10 2021 Jean-Philippe Pialasse 13-17.sme - first import to SME10 [SME: 11613] - make it Freepbx 14 compatible [SME: 10705]  add dependencies for SME10 mariadb nodejs >= 10 php70* remove missing rpms asterisk-sounds-extra-en-ulaw asterisk-resample asterisk-addons remove double owned folders /etc/asterisk /var/lib/asterisk systemd ready for asterisk(disabled), freepbx, httpd-fpbx smeserver-freepbx-update event created NEED TEST php70-php-fpm fragment update httpd-fpbx template for php-fpm use update httpd-e-smith to use php-fpm for fpbx update install script for php74 add a copy of safe_asterisk create php folders and set rights improve logrotate * Mon Jan 20 2020 Jean-Philipe Pialasse 13-16.sme - add required modules to enable cel and cdr logging and search [SME: 10620] - add requires lame [SME: 9859] - Re-build and link to latest devtools sounds ownership so they can be handled via gui [SME: 11924] * Mon Jan 29 2018 Jean-Philipe Pialasse 13-15.sme - Re-build and link to latest devtools warning tampered files in GUI [SME: 10496] - remove DeviceAndUser property [SME: 10503] * Wed May 03 2017 Jean-Philipe Pialasse 13-14.sme - update TKT auth parameter for SME 9.2 [SME: 10268] * Sat Feb 25 2017 Jean-Philipe Pialasse 13-13.sme - Re-build and link to latest devtools noise rebooting and restarting freepbx [SME: 10120] * Wed Jan 25 2017 Jean-Philipe Pialasse 13-11.sme - NFR: auto backup of whole FBX config during pre-backup event [SME: 9637] - both asdb and fpbx, asterisk config files, freepbx folders, voicemails are part of backup - 2 versions are kepts - weekly backup is also done. * Mon Jan 23 2017 Jean-Philipe Pialasse 13-10.sme - Re-build and link to latest devtools Missing HTML5 format converters [SME: 9859] - added requirement for mpg123 and ffmpeg available in smecontribs * Mon Jan 23 2017 Jean-Philipe Pialasse 13-9.sme - update framework before other modules [SME: 9860] * Mon Jan 09 2017 Jean-Philipe Pialasse 13-8.sme - autoupgrade modules [SME: 9860] * Mon Jan 09 2017 Jean-Philipe Pialasse 13-7.sme - Re-build and link to latest devtools wrong default UDPPorts on new install [SME: 9918] * Mon Oct 24 2016 Jean-Philipe Pialasse 13-6.sme - Re-build and link to latest devtools error while backup with workstation [SME: 9760] * Mon Oct 24 2016 Jean-Philipe Pialasse 13-5.sme -fix typo in smeserver-freepbx-13.bz9744.patch * Sun Oct 23 2016 Jean-Philipe Pialasse 13-4.sme - Re-build and link to latest devtools [SME: 9702] - corrected syntax for port range * Sun Oct 23 2016 Jean-Philipe Pialasse 13-3.sme - Re-build and link to latest devtools [SME: 9744] - Re-build and link to latest devtools wrong /tmp folder permission after update - Thank you Hsing-Foo Wang. * Tue Jul 26 2016 Jean-Philipe Pialasse 13-2.sme - Re-build and link to latest devtools wrong UDP ports change 1000:2000 to 10000:20000 [SME: 9702] * Mon Jun 13 2016 Jean-Philipe Pialasse 13-1.sme - bump version to current Freepbx version 13 * Mon Jun 13 2016 Jean-Philipe Pialasse -47.sme - add all needed port for Freepbx sip pjsip and RTP [SME: 9495] * Sat Jun 11 2016 Jean-Philipe Pialasse -46.sme - Re-build and link to latest devtools missing config files (requires asterisk-configs) [SME: 9577] - Re-build and link to latest devtools recuring reconfiguration error while installing digium phone module [SME: 9575] - added port 5061 for tls to TCP ports [SME: 9576] * Thu Jun 09 2016 Jean-Philipe Pialasse -45.sme - Re-build and link to latest devtools wrong logrotate pattern [SME: 9516] - as the contrib is only in smedev, i do not fix existing log files badly rotated * Mon May 16 2016 Jean-Philipe Pialasse 0.1-44.sme - remove fop db [SME: 9495] - add some mysql setting for freepbxdb (user, email) - smeserver-freepbx-0.1-Sme9Ast13Fpbx13-7.patch * Sun May 15 2016 Jean-Philipe Pialasse 0.1-43.sme - add path to ucp module [SME: 9495] - add 256Mo as default for freepbx php Memory - add AllowOveride All for .htaccess - remove httpd config to old FOP panel - add port 5061 for freepbx - smeserver-freepbx-0.1-Sme9Ast13Fpbx13-5.patch - configuration of amportal.conf and its mysql equivalent - smeserver-freepbx-0.1-Sme9Ast13Fpbx13-6.patch * Sun May 15 2016 Jean-Philipe Pialasse 0.1-42.sme - remove FOP patches [SME: 9495] - deleted link to expand amportal.conf - smeserver-freepbx-0.1-Sme9Ast13Fpbx13-4.patch * Sun May 15 2016 Jean-Philipe Pialasse 0.1-41.sme - remove heading of /etc/asterisk/asterisk.conf [SME: 9495] - smeserver-freepbx-0.1-Sme9Ast13Fpbx13-3.patch - bump * Sun May 15 2016 Jean-Philipe Pialasse 0.1-38.sme - remove expand template amportal.conf [SME: 9495] - chown /var/lib/asterisk - installation configuration options - smeserver-freepbx-0.1-Sme9Ast13Fpbx13-2.patch - Requires: asterisk-sounds-core-en-ulaw asterisk-sounds-extra-en-ulaw asterisk-voicemail * Sun May 15 2016 Jean-Philipe Pialasse 0.1-37.sme - new path to sql files [SME: 9495] - smeserver-freepbx-0.1-Sme9Ast13Fpbx13-1.patch * Fri May 06 2016 Jean-Philipe Pialasse 0.1-36.sme - adapt script to fpbx13 and asterisk 13 [SME: 9495] - change Requires Requires: %{_libdir}/asterisk/modules/app_addon_sql_mysql.so to - Requires: asterisk-addons as this is the paquet providing it, and it changed name to app_mysql.so * Fri May 06 2016 Jean-Philipe Pialasse 0.1-35.sme - adapt script to fpbx13 and asterisk 13 [SME: 9495] - smeserver-freepbx-0.1-Sme9Ast13Fpbx13-0.patch * Fri May 06 2016 Jean-Philipe Pialasse 0.1-34.sme - first import to SME9 [SME: 9495] * Sun May 12 2013 JP Pialasse 0.1-33.sme - buildarch removed in order to find the correct %{_libdir}/asterisk/modules/app_addon_sql_mysql.so * Thu Oct 20 2011 Daniel B. 0.1-32.sme - Protect by locations (so other alias can be defined to protect with LL::NG for example) * Mon Oct 17 2011 Daniel B. 0.1-31.sme - Add misdn.log to logrotate * Thu Oct 13 2011 Daniel B. 0.1-30.sme - Change session path [SME: 6661] * Wed Jan 05 2011 Daniel B. 0.1-29.sme - astdatadir is /var/lib/asterisk - templates for /etc/logrotate.d/asterisk * Mon Sep 20 2010 Daniel B. 0.1-28.sme - Create and populate the mysql databases in mysql.init - Templates for /etc/asterisk/asterisk.conf * Thu Jul 15 2010 Daniel B. [0.1-27] - Read ARI password from the DB (and initialize a random one) * Mon Feb 22 2010 Daniel B. [0.1-26] - Remove hard-coded dependencies on asterisk and asterisk-addons14 Depends now on asterisk binary and app_addon_sql_mysql.so files (so it can work with asterisk or asterisk14) * Mon Feb 15 2010 Daniel B. [0.1-25] - Remove /etc/logrotate.d/asterisk which is now included in asterisk14 * Tue Feb 09 2010 Daniel B. [0.1-24] - Depends now on asterisk14 and asterisk-addons14 * Wed Jan 06 2010 Daniel B. [0.1-23] - disable dynamic hints * Tue Oct 06 2009 Daniel B. [0.1-22] - include /opt/freepbx/admin/functions.inc.php in freepbx-dump-astdb action script for FreePBX 2.6 compatibility * Tue May 19 2009 Daniel B. [0.1-21] - Add CHECKREFERER=FALSE in amportal.conf to repvent error message in some modules (due to the ProxyPass configuration) * Tue Apr 28 2009 Daniel B. [0.1-20] - Fix CDR db password in cdr_mysql.conf template - Use a separate service in SME db for FOP * Thu Apr 16 2009 Daniel B. [0.1-19] - remove scoreboard directive from httpd-fpbx config - remove some modules (mod_ssl, mod_proxy) * Sat Apr 11 2009 Daniel B. [0.1-18] - templatize cdr_mysql.conf [SME: 5153] - templatize manager.conf - remove freepbx-cron-scheduler.php from root crontab so only asterisk user runs it (prevent email error sent from cron) * Fri Mar 27 2009 Daniel B. [0.1-17] - Remove obsolete /admin Alias from apache - Run the security script on bootsrape-console-save event * Mon Mar 23 2009 Daniel B. [0.1-16] - Security Fixe: put a random password for ARI admin (this should be documented) * Thu Mar 19 2009 Daniel B. [0.1-15] - Check if /opt/freepbx/admin exists (retry the install if a first one failed) - Remove tabs from spec * Wed Mar 18 2009 Daniel B. [0.1-14] - Remove speex from dependencies * Thu Mar 12 2009 Daniel B. [0.1-13] - Remove zaptel dependency, replaced with dahdi-tools and dahdi-linux * Mon Feb 23 2009 Daniel B. [0.1-12] - Fix logrotate issue (send a sigusr1 signal to httpd-fpbx) * Thu Feb 12 2009 Daniel B. [0.1-11] - Full support for the new DAHDI driver, droping zaptel * Mon Feb 09 2009 Daniel B. [0.1-10] - add support for DAHDI channel * Mon Dec 08 2008 Daniel B. [0.1-9] - move expand-templates from post-upgrade event to bootstrap-console-save * Thu Nov 27 2008 Daniel B. [0.1-8] - Add support for trunk name in mail alerts * Wed Nov 26 2008 Daniel B. [0.1-7] - Add a simple script to alert admin by mail on trunk errors * Thu Nov 20 2008 Daniel B. [0.1-6] - Use AdminPanels props so access can be configured using smeserver-userpanels contrib. AdminUsers and FopUsers props aren't used anymore * Wed Nov 19 2008 Daniel B. [0.1-5] - add logrotate default config file for asterisk's logs - spec cleanup * Thu Nov 13 2008 Daniel B. [0.1-4] - Re-build and link to latest devtools logrotate issue * Wed Nov 05 2008 Daniel B. [0.1-3] - split freepbx sources in a separate package (freepbx-src) - alternative genzaptelconf * Mon Oct 13 2008 Daniel B. [0.1-2] - Fix fop not being displayed in admin page * Sat Sep 20 2008 Daniel B. [0.1-1] - updated to 2.5.0 final - spec cleaning - templates cleaning - templates to update mysql informations * Mon Aug 04 2008 daniel B. [0.1-0] - initial release %prep %setup -q -n %{name}-%{version} %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %build # Build symlinks perl createlinks %install rm -rf $RPM_BUILD_ROOT %{__mkdir_p} $RPM_BUILD_ROOT/var/lib/php/fpbx-session (cd root ; find . -depth -print | cpio -dump $RPM_BUILD_ROOT) /sbin/e-smith/genfilelist $RPM_BUILD_ROOT \ --file /sbin/e-smith/fwconsole 'attr(0755,root,root)' \ --file /usr/share/freepbx/scripts/uninstall.sh 'attr(0750,root,root)' \ --file /usr/share/freepbx/scripts/restore-astdb.php 'attr(0750,root,root)' \ --dir /var/service/httpd-fpbx 'attr(01755,root,root)' \ --dir /var/service/httpd-fpbx/supervise 'attr(0700,root,root)' \ --dir /var/service/httpd-fpbx/log 'attr(0755,root,root)' \ --file /var/service/httpd-fpbx/log/run 'attr(0755,root,root)' \ --dir /var/service/httpd-fpbx/log/supervise 'attr(0700,root,root)' \ --file /var/lib/asterisk/bin/genzaptelconf 'attr(0750,root,root)' \ --file /usr/share/asterisk/agi-bin/trunk_alert_mail.agi 'attr(0750,asterisk,asterisk)' \ --file /etc/logrotate.d/asterisk 'config(noreplace)' \ --dir /var/lib/php/fpbx-session 'attr(0770,root,asterisk)' \ --file /usr/sbin/safe_asterisk 'attr(0755,root,root)' \ --dir /var/log/php/freepbx 'attr(0770,root,asterisk)' \ --dir /var/lib/php/freepbx/sessions 'attr(0770,root,asterisk)' \ --dir /var/lib/php/freepbx/temp 'attr(0770,root,asterisk)' \ |grep -v '/var/lib/asterisk$'| grep -v '/etc/asterisk$' \ > %{name}-%{version}-%{release}-filelist %clean rm -rf $RPM_BUILD_ROOT %files -f %{name}-%{version}-%{release}-filelist %defattr(-,root,root) %post #bug 9744, restore tmp permissions if [ `stat -c %U /tmp` == "asterisk" ]; then chmod o+rwxt /tmp/ chown root:root /tmp/ fi %preun if [ $1 = 0 ] ; then /usr/bin/systemctl stop freepbx >& /dev/null || : fi true %postun if [ $1 = 0 ] ; then #remove cron for asterisk on uninstallation to avoid noise /usr/bin/crontab -u asterisk -r >& /dev/null || : fi true