L'objectif de ce post est d'installer Asterisk et FreePBX sur une Fedora Core 6.
Je suis partie des informations glanées ici et là sur la toile, dont voici les références :
http://www.prestonmoore.com/images/guide.txt
http://www.prestonmoore.com/images/cc-freepbx
http://samyantoun.50webs.com/asterisk/freepbx/clarkconnect/4.0/
http://www.squishychicken.com/index.php?option=com_content&task=view&id=13&Itemid=2
http://powerontech.com/freepbx-on-debian.htm
http://www.aussievoip.com/wiki/index.php?page=freePBX-Centos
Fax
http://www.asteriskguru.com/tutorials/asterisk_fax.html
Zaptel
http://www.voip-info.org/wiki-Asterisk+Zaptel+Installation
TDM400P
http://blog.hibrice.info/index.php?fr/Voip
http://imil.net/wp/archives/date/2006/04/
Les difficultées :
C'est une nouveauté à partir du kernel 2.6.18 il ne faut plus utiliser linux/config.h mais linux/autoconf.h
J'avais récupéré ce code qui permet de modifier toutes les occurences de linux/config.h pour les remplacer...
Solution
grep -rlF '<linux/config.h>' ton_repertoire-%{cvs} \
| xargs sed -i -e 's|<linux/config.h>|<linux/autoconf.h>
- message au démarrage pour le module zaptel
zaptel: version magic '2.6.18-1.2798.fc6 SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1' should be '2.6.18-1.2798.fc6 SMP mod_unload 586 REGPARM 4KSTACKS gcc-4.1'
Solution
http://forums.fedora-fr.org/viewtopic.php?pid=107348
Le Wiki Fedora project vient de dresser un état de certains bugs recensés et propose des corrections pour quelques uns d'entre eux.
On notera en particulier le problème suivant:
- installation d'un noyau ne correspondant pas à l'architecture du processeur (un noyau i586 pour un processeur i686). Cpuspeed ne fonctionne pas (notamment !).. La solution:
* installer yum-utils de Fedora Extras
* puis lancer
yumdownloader kernel-2.6.18-1.2798.fc6.i686
rpm -Uvh --replacefiles --replacepkgs kernel-2.6.18-1.2798.fc6.i686.rpm
Les fichiers d'installation
asterisk-install.sh
#!/bin/bash
yum -y update
yum install gcc libxml2-devel libtiff-devel mysql-server php php-gd php-mysql php-pear kernel-devel bison ncurses-devel audiofile-devel subversion libogg-devel openssl-devel newt-devel yum-utils
#rpm -ivh http://apt.sw.be/redhat/el4/en/i386/RPMS.dag/lame-3.96.1-2.2.el4.rf.i386.rpm
rpm -ivh http://rpm.livna.org/fedora/6/i386/lame-3.97-3.lvn6.i386.rpm
echo "**** CHANGEMENT DU KERNEL i586 en i686 bug de FC6 ****"
yumdownloader kernel-2.6.18-1.2798.fc6.i686
rpm -Uvh --replacefiles --replacepkgs kernel-2.6.18-1.2798.fc6.i686.rpm
echo "**** TELECHARGEMENT DES SOURCES ****"
cd /usr/src
wget http://easynews.dl.sourceforge.net/sourceforge/amportal/freepbx-2.1.3.tar.gz
wget http://ftp.digium.com/pub/asterisk/asterisk-1.2.13.tar.gz
wget http://ftp.digium.com/pub/zaptel/zaptel-1.2.10.tar.gz
wget http://ftp.digium.com/pub/libpri/libpri-1.2.4.tar.gz
wget http://ftp.digium.com/pub/asterisk/asterisk-addons-1.2.5.tar.gz
wget http://ftp.digium.com/pub/asterisk/releases/asterisk-sounds-1.2.1.tar.gz
echo "**** DECOMPRESSION DES SOURCES ****"
tar zxf freepbx-2.1.3.tar.gz
tar -zxvf asterisk-1.2.13.tar.gz
tar -zxvf zaptel-1.2.10.tar.gz
tar -zxvf libpri-1.2.3.tar.gz
tar -zxvf asterisk-addons-1.2.5.tar.gz
tar -zxvf asterisk-sounds-1.2.1.tar.gz
echo "**** DEPLACEMENT DES SOURCES ****"
mv freepbx-2.1.3 freepbx
mv asterisk-1.2.13 asterisk
mv zaptel-1.2.10 zaptel
mv libpri-1.2.3 libpri
mv asterisk-addons-1.2.5 asterisk-addons
mv asterisk-sounds-1.2.1 asterisk-sounds
rm *.tar.gz
echo "**** COMPILATION DE ZAPTEL ****"
ln -s /usr/src/kernels/2.6.18-1.2798.fc6-i686 /usr/src/linux-2.6
ln -s /usr/src/kernels/2.6.18-1.2798.fc6-i686 /usr/src/linux
cd /usr/src/zaptel
grep -rlF '<linux/config.h>' /usr/src/zaptel \
| xargs sed -i -e 's|<linux/config.h>|<linux/autoconf.h>|'
make clean
make linux26
make ztool
make install
make config
depmod -a
modprobe wctdm
#modprobe ztdummy
modprobe zaptel
genzaptelconf
echo "**** FAIRE UN : shutdown -r now ****"
echo "**** VERIFIER QUE LES PORTS FXO & FXS SONT RECONNU : /sbin/ztcfg -vv ****"
asterisk-installation-2.sh
#!/bin/bash
echo "**** DEMARRAGE DE ZAPTEL ****"
/etc/init.d/zaptel start
echo "**** COMPILATION DE LIBPRI ****"
cd /usr/src/libpri
make clean
make
make install
echo "**** COMPILATION de ASTERISK ****"
cd /usr/src/asterisk
mkdir /var/run/asterisk
make clean
make
make install
make samples
make config
echo "**** ASTERISK FAX ****"
cd /usr/src
wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.2pre25/spandsp-0.0.2pre25.tar.gz
tar zxf spandsp-0.0.2pre25.tar.gz
cd spandsp-0.0.2
./configure --prefix=/usr && make && make install cd /usr/src/asterisk/apps
wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.2pre25/asterisk-1.2.x/app_rxfax.c
wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.2pre25/asterisk-1.2.x/app_txfax.c
wget http://www.newmantelecom.com/download/asterisk/faxdetect/1.0.6/app_nv_faxdetect.c
wget http://aussievoip.com/makefile.patch
patch < apps_makefile.patch
cd ..
make upgrade
asterisk -rx 'restart when convenient'
echo "**** CREATION DES PERMISSIONS ****"
useradd -c "Asterisk PBX" -d /var/lib/asterisk asterisk
chown asterisk /var/lib/php/session/
sed -i "s/User apache/User asterisk/" /etc/httpd/conf/httpd.conf
sed -i "s/Group apache/Group asterisk/" /etc/httpd/conf/httpd.conf
echo "**** CONFIGURATION DE LA BD ****"
/etc/init.d/mysqld start
cd /usr/src/freepbx
mysqladmin create asterisk
mysqladmin create asteriskcdrdb
mysql asterisk < SQL/newinstall.sql
mysql asteriskcdrdb < SQL/cdr_mysql_table.sql
mysql -vv -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'motdepasse1'"
mysql -vv -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'motdepasse1'"
mysql -vv -e "flush privileges"
mysqladmin -u root password 'motdepasse2'
echo "**** INSTALLATION ASTERISK-ADDONS ****"
cd /usr/src/asterisk-addons
cp Makefile Makefile.orig
sed -i 's/SOURCE/SOURCE -DMYSQL_LOGUNIQUEID/' Makefile
make && make install
echo "**** INSTALLATION ASTERISK-SOUNDS ****"
cd /usr/src/asterisk-sounds
make install
echo "**** INSTALLATION DE FREEPBX ****"
cd /etc
echo "**** amportal.conf est mon fichier modifier de configuration de freepbx il est situé sur un autre poste ****"
wget http://192.168.0.100/linux/config/amportal.conf
pear install DB
mkdir /var/www/html/freepbx
cd /usr/src/freepbx
./install_amp
mkdir /var/lib/asterisk/sounds/custom
chmod 775 /var/lib/asterisk/sounds/custom
echo /usr/sbin/amportal start >> /etc/rc.local
cd /etc/asterisk
touch zapata.conf
echo "[channels] " >> /etc/asterisk/zapata.conf
echo "language=fr " >> /etc/asterisk/zapata.conf
echo "#include zapata_additional.conf " >> /etc/asterisk/zapata.conf
cd /var/www/html/freepbx/admin/images/
echo "**** TELECHARGEMENT DU LOGO DE FEDORA ****"
wget http://fedora.redhat.com/images/header-fedora_logo01.png
sed -i "s|AMPFOOTERLOGO=blank.gif|AMPFOOTERLOGO=header-fedora_logo01.png|" /etc/amportal.conf
sed -i "s|AMPADMINHREF=www.freepbx.org|AMPADMINHREF=http://fedora.redhat.com|" /etc/amportal.conf
echo "**** INSTALLATION DE MODULES ADMIN ****"
cd /var/www/html/freepbx/admin/modules/
wget http://www.voipeye.com.au/invoke/maint-modules.zip
unzip maint-modules.zip
rm -vf maint-modules.zip
echo "**** INSTALLATION DE MUSIQUE D'ACCUEIL ****"
cd /var/lib/asterisk/mohmp3
wget http://www2.signate.com/free-moh/mp3/signate-moh-mp3.tar.gz
tar -xzvf signate-moh-mp3.tar.gz
rm -vf signate-moh-mp3.tar.gz
chown -v asterisk:asterisk /var/lib/squirrelmail/prefs/
chown -v asterisk:asterisk /var/lib/squirrelmail/prefs/default_pref
cd /etc/asterisk
mv extensions_custom.conf.sample extensions_custom.conf
touch sip_nat.conf
echo "#nat=yes" >> /etc/asterisk/sip_nat.conf
echo "#localnet=192.168.0.0/255.255.255.0" >> /etc/asterisk/sip_nat.conf
echo "#externip=neodys.com" >> /etc/asterisk/sip_nat.conf
echo "**** INSTALLATION DE PHPSYSINFO ****"
cd /tmp
wget http://belnet.dl.sourceforge.net/sourceforge/phpsysinfo/phpsysinfo-2.5.2-rc3.tar.gz
tar -xzvf phpsysinfo-2.5.2-rc3.tar.gz
rm -vf phpsysinfo-2.5.2-rc3.tar.gz
mv -vf phpsysinfo /var/www/html/freepbx
cd /var/www/html/freepbx/phpsysinfo
cp -v config.php.new config.php
cp -v includes/xml/hardware.php includes/xml/hardware.php.original
chown -vR asterisk:asterisk /var/www/html/freepbx/phpsysinfo
sed -i "s|CPU/CpuTemp|CPU/Cputemp|" includes/xml/hardware.php
cd /usr/src
wget http://digium-cvs.netmonks.ca/viewcvs.cgi/phpconfig.tar.gz
tar -xzvf phpconfig.tar.gz
mv -vf phpconfig /var/www/html/freepbx
rm -vf phpconfig.tar.gz
cd /var/www/html/freepbx/phpconfig
chmod -v 755 asterisk.reload
cp -v cls_phpconfig.php cls_phpconfig.php.original
cp -v phpconfig_init.php phpconfig_init.php.original
cp -v asterisk.reload asterisk.reload.original
chown -vR asterisk:asterisk /var/www/html/freepbx/phpconfig
sed -i "s/fgetc/fgets/" cls_phpconfig.php
sed -i "s|/bin/asterisk.reload|./asterisk.reload|" cls_phpconfig.php
sed -i "s|asterisk.reload|./asterisk.reload|" phpconfig_init.php
sed -i "s/Secret: secret/Secret: tortue232/" asterisk.reload
sed -i "s|DirectoryIndex index.html index.html.var|DirectoryIndex index.html
index.html.var phpconfig.php|" /etc/httpd/conf/httpd.conf
cd /etc/logrotate.d
wget http://www.prestonmoore.com/images/asterisk
cd /var/www/html/freepbx/admin/modules/configedit
wget http://www.prestonmoore.com/images/asterisk.reload
chmod -v 755 asterisk.reload
cd /var/www/html/freepbx/phpconfig
cp -v cls_phpconfig.php cls_phpconfig.php.original
cp -v phpconfig_init.php phpconfig_init.php.original
chown -vR asterisk:asterisk /var/www/html/freepbx/admin/modules/configedit
sed -i "s/fgetc/fgets/" cls_phpconfig.php
sed -i "s|/bin/asterisk.reload|./asterisk.reload|" cls_phpconfig.php
sed -i "s|/bin/asterisk.reload|./asterisk.reload|" phpconfig_init.php
cd /var/www/html/freepbx/admin/modules/sysstatus
sed -i "s|#!/usr/bin/perl|#!/usr/bin/perl -w|" status.pl
chmod 775 /var/www/html/freepbx/admin/modules/sysstatus/status.pl
#chmod -v 775 status.pl
cd /var/www/html/freepbx/admin/modules/sysinfo/includes/os
sed -i "s|$bufr = rfts( '/proc/scsi/scsi' );|$bufr = rfts( '/proc/scsi/scsi', 0, 4096, false );|" class.Linux.inc.php
cd /usr/src
wget http://humdi.net/vnstat/vnstat-1.4.tar.gz
tar -xvzf vnstat-1.4.tar.gz
cd vnstat-1.4
make && make install
vnstat -u -i eth0
vnstat -u -i eth1
echo "0-55/5 * * * * vnstat -u" >> /etc/crontab
rm -rf vnstat*
cd /var/www/html/freepbx/
wget http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.2.1.tar.gz tar -xvzf vnstat_php_frontend-1.2.1.tar.gz
tar -xvzf vnstat_php_frontend-1.2.1.tar.gz
mv vnstat_php_frontend-1.2.1 net-stats
rm -rf vnstat_php_frontend-1.2.1.tar.gz
cd net-stats
mv config.php config.php.old
wget http://www.prestonmoore.com/images/config
mv config config.php
echo "<Directory /var/www/html/freepbx/panel/>" >> /etc/httpd/conf/httpd.conf
echo "AuthType Basic" >> /etc/httpd/conf/httpd.conf
echo 'AuthName "Private Access"' >> /etc/httpd/conf/httpd.conf
echo "AuthUserFile /usr/local/passwd" >> /etc/httpd/conf/httpd.conf
echo "Require user admin" >> /etc/httpd/conf/httpd.conf
echo "</Directory>" >> /etc/httpd/conf/httpd.conf
echo "<Directory /var/www/html/freepbx/phpconfig/>" >> /etc/httpd/conf/httpd.conf
echo "AuthType Basic" >> /etc/httpd/conf/httpd.conf
echo 'AuthName "Private Access"' >> /etc/httpd/conf/httpd.conf
echo "AuthUserFile /usr/local/passwd" >> /etc/httpd/conf/httpd.conf
echo "Require user admin" >> /etc/httpd/conf/httpd.conf
echo "</Directory>" >> /etc/httpd/conf/httpd.conf
echo "<Directory /var/www/html/freepbx/phpsysinfo/>" >> /etc/httpd/conf/httpd.conf
echo "AuthType Basic" >> /etc/httpd/conf/httpd.conf
echo 'AuthName "Private Access"' >> /etc/httpd/conf/httpd.conf
echo "AuthUserFile /usr/local/passwd" >> /etc/httpd/conf/httpd.conf
echo "Require user admin" >> /etc/httpd/conf/httpd.conf
echo "</Directory>" >> /etc/httpd/conf/httpd.conf
echo "<Directory /var/www/html/freepbx/net-stats/>" >> /etc/httpd/conf/httpd.conf
echo "AuthType Basic" >> /etc/httpd/conf/httpd.conf
echo 'AuthName "Private Access"' >> /etc/httpd/conf/httpd.conf
echo "AuthUserFile /usr/local/passwd" >> /etc/httpd/conf/httpd.conf
echo "Require user admin" >> /etc/httpd/conf/httpd.conf
echo "</Directory>" >> /etc/httpd/conf/httpd.conf
echo "Enter a password you will use to access the Flash Panel, Sysinfo and phpconfig"
echo "the user name will be: admin"
htpasswd -c /usr/local/passwd admin
cd /var/www/html/freepbx/
mv index.html index.html.old
wget http://www.prestonmoore.com/images/index.html
echo "**** ATTRIBUTION DES PERMISSIONS POUR LES MODULES ****"
mkdir /var/www/html/freepbx/admin/modules/_cache
chmod 775 /var/www/html/freepbx/admin/modules/_cache
chown -vR asterisk:asterisk /var/www/html/freepbx/admin/modules/_cache
chown -R mysql:mysql /var/run
chkconfig httpd on
chkconfig mysqld on
#chkconfig postfix on
chkconfig zaptel on
chkconfig asterisk on
echo "**** REDEMARRER SVP MERCI !!! ****"
echo "**** SI MYSQL NE REDEMARRE PAS FAIRE: chown -R mysql:mysql /var/run ****"