how to Install FreePBX 13 on CentOS 7

1 Answer(s)

    Disable SELinux

    In /etc/sysconfig/selinux , change the following lines:

    sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/sysconfig/selinux
    sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/selinux/config

    reboot, and verify the SELinux status by running ‘sestatus’. It should say:

    SELinux status: disabled

    Update Your System

    yum -y update
    yum -y groupinstall core base "Development Tools"

    Install Additional Required Dependencies

    yum -y install lynx mariadb-server mariadb php php-mysql php-mbstring tftp-server \
      httpd ncurses-devel sendmail sendmail-cf sox newt-devel libxml2-devel libtiff-devel \
      audiofile-devel gtk2-devel subversion kernel-devel git php-process crontabs cronie \
      cronie-anacron wget vim php-xml uuid-devel sqlite-devel net-tools gnutls-devel php-pear unixODBC mysql-connector-odbc

    Install Legacy Pear requirements

    pear install Console_Getopt

    Firewalld Basic Configuration

    You must open port 80 so that you can access the administration interface

    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --reload

    Enable and Start MariaDB

    You must have MariaDB running for FreePBX to operate normally.  It must start automatically, and be running continuously.

    systemctl enable mariadb.service
    systemctl start mariadb

    Now that our MariaDB database is running, we want to run a simple security script that will remove some dangerous defaults and lock down access to our database system a little bit

    mysql_secure_installation

    The prompt will ask you for your current root password. Since you just installed MySQL, you most likely won’t have one, so leave it blank by pressing enter. Then the prompt will ask you if you want to set a root password. Do not set a root password. We secure the database automatically, as part of the install script.  Apart from that, you can choose yes for the rest. This will remove some sample users and databases, disable remote root logins, and load these new rules so that MySQL immediately respects the changes we have made.

    Enable and Start Apache

    FreePBX uses the Apache web server, so this must be started and running.

    systemctl enable httpd.service
    systemctl start httpd.service

    Install Dependencies for Google Voice (if required)

    Install iksemel

    cd /usr/src
    wget https://iksemel.googlecode.com/files/iksemel-1.4.tar.gz
    tar xf iksemel-*.tar.gz
    rm -f iksemel-1.4.tar.gz
    cd iksemel-*
    ./configure
    make
    make install

    Add the Asterisk User

    adduser asterisk -m -c "Asterisk User"

    Install and Configure Asterisk

    Download Asterisk source files.

    cd /usr/src
    wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
    wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
    wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
    wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.7.tar.gz
    wget http://www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2

    Compile and install DAHDI

    If you don’t have any physical PSTN hardware attached to this machine, you don’t need to install DAHDI (For example, a T1 or E1 card, or a USB device). Most smaller setups will not have DAHDI hardware, and this step can be safely skipped.

    cd /usr/src
    tar xvfz dahdi-linux-complete-current.tar.gz
    tar xvfz libpri-current.tar.gz
    rm -f dahdi-linux-complete-current.tar.gz libpri-current.tar.gz
    cd dahdi-linux-complete-*
    make all
    make install
    make config
    cd /usr/src/libpri-*
    make
    make install

    Compile and install pjproject

    cd /usr/src
    tar -xjvf pjproject-2.4.tar.bz2
    rm -f pjproject-2.4.tar.bz2
    cd pjproject-2.4
    CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound\
      --disable-resample --disable-video --disable-opencore-amr --libdir=/usr/lib64
    make dep
    make
    make install

    Compile and Install jansson

    cd /usr/src
    tar vxfz jansson.tar.gz
    rm -f jansson.tar.gz
    cd jansson-*
    autoreconf -i
    ./configure --libdir=/usr/lib64
    make
    make install

    Compile and install Asterisk

    BUG:

    Some versions of Asterisk will crash with a missing ari.conf https://issues.asterisk.org/jira/browse/ASTERISK-27026

    You may wish to “mkdir -p /etc/asterisk && touch /etc/asterisk/ari.conf” after compiling Asterisk

    cd /usr/src
    tar xvfz asterisk-13-current.tar.gz
    rm -f asterisk-13-current.tar.gz
    cd asterisk-*
    contrib/scripts/install_prereq install
    ./configure --libdir=/usr/lib64
    contrib/scripts/get_mp3_source.sh
    make menuselect

    You will be prompted at the point to pick which modules to build. Most of them will already be enabled, but if you want to have MP3 support (eg, for Music on Hold), you need to manually turn on ‘format_mp3’ on the first page.

    After selecting ‘Save & Exit’ you can then continue

    make
    make install
    make config
    ldconfig
    chkconfig asterisk off

    Install Asterisk Soundfiles.

    The ‘make install’ above installs a standard low-quality base sound file by default. This is suitable if you are on a small, underpowered system (such as a Rasberry Pi), but on a larger system, you should install higher quality sound files. Note that this installs the (8khz) ‘wav’ sound files and G722 (High Definition ‘Wideband’) audio.

    cd /var/lib/asterisk/sounds
    wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-wav-current.tar.gz
    wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz
    tar xvf asterisk-core-sounds-en-wav-current.tar.gz
    rm -f asterisk-core-sounds-en-wav-current.tar.gz
    tar xfz asterisk-extra-sounds-en-wav-current.tar.gz
    rm -f asterisk-extra-sounds-en-wav-current.tar.gz
    # Wideband Audio download
    wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-g722-current.tar.gz
    wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz
    tar xfz asterisk-extra-sounds-en-g722-current.tar.gz
    rm -f asterisk-extra-sounds-en-g722-current.tar.gz
    tar xfz asterisk-core-sounds-en-g722-current.tar.gz
    rm -f asterisk-core-sounds-en-g722-current.tar.gz

    Set Asterisk ownership permissions.

    chown asterisk. /var/run/asterisk
    chown -R asterisk. /etc/asterisk
    chown -R asterisk. /var/{lib,log,spool}/asterisk
    chown -R asterisk. /usr/lib64/asterisk
    chown -R asterisk. /var/www/

    Install and Configure FreePBX

    A few small modifications to Apache.

    sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini
    sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf
    sed -i 's/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf
    systemctl restart httpd.service

    Download and install FreePBX.

    cd /usr/src
    wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz
    tar xfz freepbx-13.0-latest.tgz
    rm -f freepbx-13.0-latest.tgz
    cd freepbx
    ./start_asterisk start
    ./install -n

    That’s it!

    You can now start using FreePBX.  Open up your web browser and connect to the IP address or hostname of your new FreePBX server.  You will see the Admin setup page, which is where you set your  ‘admin’ account password, and configure an email address to receive update notifications.

    Answered on August 24, 2021.
    Add Comment

    Your Answer

    By posting your answer, you agree to the privacy policy and terms of service.