MK=`echo $(MAKE) | $(AWK) '{printf "%5s\n", $$0}' `
+
all:
@echo " +---------- FreeSWITCH Build Complete ----------+"
@echo " + FreeSWITCH has been successfully built. +"
@echo " + Install/Re-install default config: +"
@echo " + ---------------------------------- +"
@echo " + $(MK) samples +"
+if KNOWN_INIT
+ @echo " + +"
+ @echo " + Install init scripts: +"
+ @echo " + --------------------- +"
+ @echo " + +"
+ @echo " + init/install_systemd.sh +"
+endif
@echo " + +"
@echo " + +"
@echo " + Additional resources: +"
+++ /dev/null
-d /run/freeswitch 0750 freeswitch daemon -
+++ /dev/null
-[Unit]
-Description=FreeSWITCH
-After=syslog.target network.target
-After=postgresql.service postgresql-9.3.service postgresql-9.4.service mysqld.service httpd.service
-
-[Service]
-User=freeswitch
-EnvironmentFile=-/etc/sysconfig/freeswitch
-# RuntimeDirectory is not yet supported in CentOS 7. A workaround is to use /etc/tmpfiles.d/freeswitch.conf
-#RuntimeDirectory=/run/freeswitch
-#RuntimeDirectoryMode=0750
-WorkingDirectory=/run/freeswitch
-ExecStart=/usr/bin/freeswitch -nc -nf $FREESWITCH_PARAMS
-ExecReload=/usr/bin/kill -HUP $MAINPID
-
-[Install]
-WantedBy=multi-user.target
default_fontsdir="$prefix/fonts"
default_imagesdir="$prefix/images"
+bindir="$exec_prefix/bin"
+
if test "${enable_fhs}" = "yes"; then
eval full_datadir="${datadir}/freeswitch"
eval datadir=$full_datadir
;;
*linux*)
APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl -lcrypt -lrt])
+ if test -f /etc/os-release; then
+ DISTRO="$(source /etc/os-release && echo $ID$VERSION_ID)"
+ case "$DISTRO" in
+ *debian8*)
+ environmentfilelocation="default"
+ ;;&
+ *centos7*)
+ environmentfilelocation="sysconfig"
+ ;;&
+ *debian8*|*centos7*)
+ knowninit=false
+ if test -d /run/systemd/system; then
+ knowninit=true
+ AC_SUBST(DISTRO)
+ AC_SUBST(rundir)
+ AC_SUBST(environmentfilelocation)
+ AC_CONFIG_FILES([init/install_systemd.sh], [chmod +x init/install_systemd.sh])
+ AC_CONFIG_FILES([init/freeswitch.service])
+ fi
+ ;;
+ *)
+ knowninit=false
+ ;;
+ esac
+ fi
+ AM_CONDITIONAL([KNOWN_INIT], [test x$knowninit = xtrue])
;;
esac
--- /dev/null
+# /etc/default/freeswitch
+DAEMON_OPTS="-nonat"
--- /dev/null
+[Unit]
+Description=freeswitch
+After=syslog.target network.target local-fs.target
+
+[Service]
+; service
+Type=forking
+PIDFile=@rundir@/freeswitch.pid
+PermissionsStartOnly=true
+Environment="DAEMON_OPTS=-nonat"
+EnvironmentFile=-/etc/@environmentfilelocation@/freeswitch
+ExecStart=@bindir@/freeswitch -u freeswitch -g freeswitch -ncwait -rp ${DAEMON_OPTS}
+TimeoutSec=20s
+Restart=on-failure
+; exec
+User=root
+Group=daemon
+LimitCORE=infinity
+LimitNOFILE=100000
+LimitNPROC=60000
+;LimitSTACK=240
+LimitRTPRIO=infinity
+LimitRTTIME=7000000
+IOSchedulingClass=realtime
+IOSchedulingPriority=2
+CPUSchedulingPolicy=rr
+CPUSchedulingPriority=89
+UMask=0007
+
+[Install]
+WantedBy=multi-user.target
--- /dev/null
+d /var/run/freeswitch 0755 freeswitch freeswitch - -
--- /dev/null
+#!/bin/bash
+# @DISTRO@ installer
+# Niek Vlessert
+
+USER=`whoami`
+DISTRO=@DISTRO@
+if [ $USER != "root" ] ; then
+ SUDO=`which sudo | awk -F"/" '{print $NF}'`
+ if [ -z $SUDO ] ; then
+ echo "No root and no sudo... please run this as root or install sudo and make sure your user has permissions to use it."
+ exit
+ else
+ read -p "The currently active user is not root but sudo is available... do you want to install using sudo? (y/n) " -n 1 -r
+ if ! [[ $REPLY =~ ^[yY]$ ]]
+ then
+ echo
+ exit
+ fi
+ fi
+fi
+
+echo
+echo "This will do several things on your @DISTRO@ installation:"
+echo "- Create user freeswitch and add it to group freeswitch"
+FSPATH=@prefix@
+if [[ $FSPATH == *"freeswitch"* ]]
+then
+ echo "- Set permissions on @prefix@ and files in @bindir@"
+fi
+echo "- Install systemd unit file"
+echo "- Install /etc/@environmentfilelocation@/freeswitch"
+echo
+read -p "Do you want to continue? (y/n) " -n 1 -r
+if [[ $REPLY =~ ^[yY]$ ]]
+then
+ echo
+ echo "Installing..."
+ $SUDO groupadd freeswitch
+ if DISTRO="debian8"; then
+ $SUDO adduser --disabled-password --quiet --system --home @confdir@ --gecos "FreeSWITCH open source softswitch" --ingroup freeswitch freeswitch
+ elif DISTRO="centos7"; then
+ $SUDO adduser --system --home @confdir@ -c "FreeSWITCH open source softswitch" -g freeswitch freeswitch
+ fi
+ if [[ $FSPATH == *"freeswitch"* ]]
+ then
+ $SUDO chown -R freeswitch:freeswitch @prefix@
+ $SUDO chmod -R ug=rwX,o= @prefix@
+ $SUDO chmod -R u=rwx,g=rx @bindir@/*
+ fi
+ $SUDO cp init/freeswitch.service /etc/systemd/system/
+ $SUDO cp init/freeswitch.tmpfile /etc/tmpfiles.d/freeswitch.conf
+ $SUDO cp init/freeswitch.default /etc/@environmentfilelocation@/freeswitch
+ $SUDO systemd-tmpfiles --clean --create
+ $SUDO systemctl daemon-reload
+ echo
+ if [ -f @confdir@/vars.xml ] ; then
+ echo "You may now start Freeswitch using 'systemctl start freeswitch'"
+ else
+ echo "Make sure your config files are in place in @confdir@, if they are you can start Freeswitch using 'systemctl start freeswitch'"
+ fi
+ echo "Then start fs_cli by running @bindir@/fs_cli"
+fi