Initial System Setup
Disable selinux
In /etc/sysconfig/selinux , change the following lines:
sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/sysconfig/selinux
|
reboot, and verify the selinux status by running 'sestatus'. It should say:
Update Your System
yum -y update
yum groupinstall core
yum groupinstall base
|
Install Additional Required Dependencies
yum install gcc gcc-c++ lynx bison mysql-devel mysql-server php php-mysql php-pear php-mbstring tftp-server httpd make ncurses-devel
libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel
libxml2-devel libtiff-devel audiofile-devel gtk2-devel subversion
kernel-devel git subversion kernel-devel php-process crontabs cronie
cronie-anacron wget vim php-xml uuid-devel libtool sqlite-devel
|
IPTables
You must disable the default iptables. You can re-enable it later, once you have made the appropriate changes. Information on iptables can be found with a quick Google search. If iptables is left running, it will (at very least) block you from accessing the web interface.
See the current status:
chkconfig iptables --list
|
Disable iptables:
chkconfig --level 0123456 iptables off
|
Stop the service (this skips rebooting again):
Auto Start MySQL
You must have mysql running for freepbx to operate normally. You need to set it to start at boot time. with the following command:
chkconfig --level 345 mysqld on
|
Then start mysqld if you don't plan on rebooting during the installation phase:
Setup a password for mysql
mysql_secure_installation
Auto Start Apache
You will want Apache running, so you can access the FreePBX admin interface, You need to set it to start at boot time. with the following command:
chkconfig --level 345 httpd on
|
Then start apache if you don't plan on rebooting during the installation phase:
Install PearDB
pear channel-update pear.php.net
pear install db-1.7.14
|
Reboot server
Install Dependencies for Google Voice (If needed/wanted)
Install iksemel
cd /usr/src
wget https: //iksemel .googlecode.com /files/iksemel-1 .4. tar .gz
tar xf iksemel-*. tar .gz
cd iksemel-*
. /configure
make
make install
|
Add the Asterisk User
adduser asterisk -M -c "Asterisk User"
|
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-1 .4-current. tar .gz
wget http: //downloads .asterisk.org /pub/telephony/asterisk/asterisk-13-current . tar .gz
git clone https: //github .com /akheron/jansson .git
wget http: //www .pjsip.org /release/2 .2.1 /pjproject-2 .2.1. tar .bz2
|
Compile and install DAHDI and LibPRI
cd /usr/src
tar xvfz dahdi-linux-complete-current. tar .gz
tar xvfz libpri-1.4-current. tar .gz
rm -f dahdi-linux-complete-current. tar .gz libpri-1.4-current. tar .gz
cd dahdi-linux-complete-*
make all
make install
make config
cd /usr/src/libpri-1 .4.*
make
make install
|
Compile and install pjproject
cd /usr/src
tar -xjvf pjproject-2.2.1. tar .bz2
cd pjproject-2.2.1
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/jansson
autoreconf -i
. /configure --libdir= /usr/lib64
make
make install
|
Compile and install 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 be enabled, but if you want to
have MP3 support, 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
|
Note that this installs the (8khz) 'wav' soundfiles and G722 (High Definition 'Wideband') audio.
mkdir -p /var/lib/asterisk/sounds
cd /var/lib/asterisk/sounds
wget http: //downloads .asterisk.org /pub/telephony/sounds/asterisk-extra-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
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
|
Download and extract FreePBX.
wget http:
//mirror
.freepbx.org
/modules/packages/freepbx/freepbx-12
.0-latest.tgz
tar
vxfz freepbx-12-latest.tgz
Set ownership permissions.
chown asterisk. /var/run/asterisk
chown -R asterisk. /etc/asterisk
chown -R asterisk. /var/ {lib,log,spool} /asterisk
chown -R asterisk. /usr/lib/asterisk
chown -R asterisk. /usr/lib64/asterisk
mkdir /var/www/html
chown -R asterisk. /var/www/
|
A few small modifications to Apache.
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php .ini
cp /etc/httpd/conf/httpd .conf /etc/httpd/conf/httpd .conf_orig
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd .conf
service httpd restart
|
cd /usr/src/freepbx
export ASTERISK_DB_PW=mysql-root-pass
mysqladmin -u root create asterisk
mysqladmin -u root create asteriskcdrdb
|
Set permissions on MYSQL database.
mysql -u root -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
mysql -u root -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
mysql -u root -e "flush privileges;"
|
Restart Asterisk and install FreePBX.
cd /usr/src/freepbx
. /start_asterisk start
. /install_amp --installdb --username=root --password=${ASTERISK_DB_PW}
amportal chown
amportal a ma installall
amportal a reload
amportal a ma refreshsignatures
amportal chown
|
Finally, one last mod and start FreePBX.
ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
amportal restart
|
Start FreePBX
Navigate:
Install and Setup Commercial Modules
Enable the FreePBX Commercial yum repos
wget -P /etc/yum .repos.d/ -N http: //yum .schmoozecom.net /schmooze-commercial/schmooze-commercial .repo
|
yum clean all to clean out yum cache so it will find out new RPMs
yum install needed RPMs for Commercial Modules
yum -y install php-5.3-zend-guard-loader sysadmin fail2ban incron ImageMagick
|
Restart Apache and Install Sysadmin
service httpd restart
amportal a ma download sysadmin
amportal a ma
install
sysadmin
Change this on apache
nano /etc/httpd/conf/httpd.conf
Look for this line and coment None and add ALL
<Directory "/var/www/html">
#AllowOverride None
AllowOverride All
Restart apache with the following command
service httpd restart
--------------------------
amportal
chown
amportal a ma refreshsignatures
amportal a reload
IPTABLES RULES
iptables -I INPUT 2 -m state --state NEW -m tcp -p tcp --dport 4445 -j ACCEPT
iptables -I INPUT 2 -m state --state NEW -m udp -p udp --dport 5060 -j ACCEPT
iptables -I INPUT 2 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
iptables -I INPUT 2 -m state --state NEW -m udp -p udp --dport 10000:20000 -j ACCEPT
service iptables save
No hay comentarios:
Publicar un comentario