VoIP: Installer Asterisk 1.6.2.6 et FreePBX 2.7.0 sur Ubuntu Server 10.04

Pour le serveur d’implémentation, j’ai utilisé mon serveur que j’ai installé sur VirtualBox (voir l’article: Installer Ubuntu Server sur VirtualBox)  

1 La VoIP (Voice over IP), est une technique qui permet de communiquer par la voix (ou via des flux multimedia: audio et/ou Video) sur des réseaux compatibles IP, qu’il s’agisse de réseaux privés ou d’Internet, filaire (câble/ADSL/optique) ou non (satellite, wifi, GSM) . Cette technologie est notamment utilisée pour prendre en charge le service de téléphonie sur IP (« ToIP » pourTelephony over Internet Protocol).

2 Asterisk est un autocommutateur téléphonique privé (PABX)open source et propriétaire (publié sous licence GPL et licence propriétaire) pour systèmes GNU/Linux. Il permet, entre autres, la messagerie vocale, les files d’attente, les agents d’appels, les musiques d’attente et les mises en garde d’appels, la distribution des appels. Il est possible également d’ajouter l’utilisation des conférences par le biais de l’installation de modules supplémentaires et la recompilation des binaires. source: Lien  

3 FreePBX est une application Web avec un ensemble de fonctionnalités PBX. Si vous vous êtes penché sur Asterisk, vous savez que cela ne vient pas avec une programmation déjà faite. Vous ne pouvez pas brancher un téléphone et le faire fonctionner sans modifier les fichiers de configuration, écrire des dialplans et faire beaucoup d’autres choses. FreePBX simplifie cela en vous donnant des fonctionnalités pré-programmés accessibles par des interfaces web faciles à utiliser qui vous permette de disposer d’un PBX totalement fonctionnel à peu près tout de suite sans la programmation requise. Quelques-unes des caractéristiques de FreePBX sont :
  • Nombre illimité de boîtes de messagerie vocale
  • fonctionnalité « Follow Me »
  • Ring Groups avec la confirmation d’appels (si, par exemple, un téléphone portable est hors de portée et fait un renvoi à la boîte vocale, tous les autres téléphones continuent de sonner)
  • Un nombre illimité de conférences (limité par la puissance CPU disponible – environ 300 utilisateurs simultanés à des conférences sur un P4 3ghz – 600 avec un dual core!)
  • Fonctionnalité d’envoi de message et d’interphonie pour les téléphones SIP qui le supportent.
  • Musique d’attente (par le biais de fichiers MP3, ou écoutés sur Internet)
  • Files d’attente d’appel
Et bien d’autres fonctionnalités. source: Lien  

Étapes d’installation d’Asterisk 1.6.2.6 et FreePBX 2.7.0 sur Ubuntu Server 10.04:
  •  Installation mysql (Vous devez entrer le mot de passe pour l’utilisateur root mysql, par exemple 1234):
 aptitude update
 aptitude install -y mysql-server
  •  Installez toutes les autres dépendances dont nous aurons besoin plus tard:
 aptitude install -y build-essential linux-headers-`uname -r` openssh-server bison flex apache2 php5 php5-curl php5-cli php5-mysql php-pear php-db php5-gd curl sox libncurses5-dev libssl-dev libmysqlclient15-dev mpg123 libxml2-dev
  •  Télécharger tous les paquets source asterisk que nous allons compiler:
cd /usr/src/
xargs wget << SOURCES
  http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/  releases/dahdi-linux-complete-2.2.1+2.2.1.tar.gz
  http://downloads.asterisk.org/pub/telephony/libpri/releases/libpr  i-1.4.10.2.tar.gz
  http://downloads.asterisk.org/pub/telephony/asterisk/releases/ast  erisk-1.6.2.6.tar.gz
  http://downloads.asterisk.org/pub/telephony/asterisk/releases/ast  erisk-addons-1.6.2.0.tar.gz
SOURCES
  • Une fois que nous avons toutes les sources nous allons les compiler. Lecture de la configuration concernée, au moins lire le fichier README, il est toujours une bonne idée ;)
  • Compiler et installer dahdi;
 tar xvf dahdi-linux-complete-2.2.1+2.2.1.tar.gz
 cd dahdi-linux-complete-2.2.1+2.2.1
 make all && make install && make config
  •  Compilation et d’installation libpri:
 cd ..
 tar xvf libpri-1.4.10.2.tar.gz
 cd libpri-1.4.10.2
 make && make install
  •  Maintenant, faites la même chose avec asterisk:
 cd ..
 tar xvf asterisk-1.6.2.6.tar.gz
 cd asterisk-1.6.2.6
 ./configure
 make && make install
  •  Sans oublier d’installer les exemples de configuration:
 make samples
  •  Décompressez, compiler et installer les addons pour asterisk:
 cd ..
 tar xvf asterisk-addons-1.6.2.0.tar.gz
 cd asterisk-addons-1.6.2.0
 ./configure
 make && make install
  •  Comme précédemment, la cmd suivante permet d’installer les fichiers d’exemples:
 make samples
  •  Enfin, installez les sons supplémentaires pour notre nouveau PBX:
 cd /var/lib/astersik/sounds
 wget -O - http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-gsm-current.tar.gz | tar xvfz -
  •  Maintenant nous commencer à faire quelques ajustements à faire notre travail d’installation. Nous créons l’utilisateur « asterisk » et ajouter l’utilisateur apache à l’ »astérisque » groupe (pas sûr si cela est nécessaire):
 adduser asterisk --disabled-password --no-create-home --gecos "asterisk PBX user"
 adduser www-data asterisk
  •  Changer l’utilisateur par défaut et de groupe pour apache pour astérisque dans apache2.conf :
 cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
 sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
  •  Dans le script original, il est également proposé de modifier le sha-bang du scripte /usr/sbin/safe_asterisk de sh pour bash:
 sed -i '1 {s/\<sh\>/bash/}' /usr/sbin/safe_asterisk
  •  Maintenant, créez le script qui va gérer le service Asterisk . Ici, on n’a pas apporté des modifications dans le script original, On viens d’ajouter les informations de base (info init) qui devrait porter chaque script d’initialisation:
cat > /etc/init.d/asterisk <<-END_STARTUP
#!/bin/bash
### BEGIN INIT INFO
# Provides: asterisk
# Required-Start: \$network \$syslog
# Required-Stop: \$network \$syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Asterisk daemon.
# Description: This script handles start/stop states of asterisk.
### END INIT INFO
set -e
set -a
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Asterisk"
NAME=amportal
DAEMON=/usr/sbin/\$NAME
test -x \$DAEMON || exit 0
d_start() {
amportal start
}
d_stop() {
amportal stop
}
d_reload() {
amportal restart
}
case "\$1" in
start)
echo -n "Starting \$DESC: \$NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping \$DESC: \$NAME"
d_stop
echo "."
;;
restart|force-reload)
echo -n "Restarting \$DESC: \$NAME"
d_stop
sleep 10
d_start
echo "."
;;
*)
echo "Usage: \$SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
exit 0
END_STARTUP
  •  apporter les modifications appropriées au script d’initialisation astérisque pour le rendre disponible au démarrage:
 chmod 755 /etc/init.d/asterisk
 update-rc.d asterisk defaults 90 10
  •  Nous avons presque terminé. Maintenant, nous allons installer FreePBX, l’interface graphique que nous allons installer à gérer Asterisk:
 cd /usr/src/
 wget -O - http://mirror.freepbx.org/freepbx-2.7.0.tar.gz | tar xvfz -
 cd freepbx-2.7.0/
  •  Copiez le fichier de configuration amportal.conf sous /etc/:
cp amportal.conf /etc/
  •  Créer la base de données. Rappelez-vous que nous avions utilisé « 1234 » comme mot de passe pour l’utilisateur « root » mysql. En outre, nous définissons un mot de passe pour la base de données astérisque, par exemple 4321:
 export MYSQL_ROOT_PW=1234
 export ASTERISK_DB_PW=4321
 mysqladmin -u root -p${MYSQL_ROOT_PW} create asterisk
 mysqladmin -u root -p${MYSQL_ROOT_PW} create asteriskcdrdb
 mysql -u root -p${MYSQL_ROOT_PW} asterisk < SQL/newinstall.sql
 mysql -u root -p${MYSQL_ROOT_PW} asteriskcdrdb < SQL/cdr_mysql_table.sql
 mysql -u root -p${MYSQL_ROOT_PW} <<-END_PRIVS
 GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY "${ASTERISK_DB_PW}";
 GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY "${ASTERISK_DB_PW}";
 flush privileges;
 END_PRIVS
  •  Et légèrement modifier les paramètres dans /etc/amportal.conf (dans le script original ceci est fait avant d’installer freepbx, alors nous faisons aussi):
sed -i "s/# \(AMPDBUSER=.*\)/\1/" /etc/amportal.conf
 sed -i "s/# \(AMPDBPASS=\).*/\1${ASTERISK_DB_PW}/" /etc/amportal.conf
 sed -i "s@\(AMPWEBROOT=\).*@\1/var/www/@" /etc/amportal.conf
 sed -i "s@\(FOPWEBROOT=\).*@\1/var/www/panel@" /etc/amportal.conf
 sed -i "s@\(FOPWEBADDRESS=\).*@PUTIPADDRESS@" /etc/amportal.conf
  •  Ajuster certains paramètres de php.ini liés à l’utilisation de la mémoire (dans le script original, il y a certains changements qui ne sont pas nécessaires pour les lucide):
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini
 Changer les permissions de la série des répertoires suivantes:
 chown asterisk. /var/run/asterisk
 chown -R asterisk. /etc/asterisk
 chown -R asterisk. /var/{lib,log,spool}/asterisk
 chown -R asterisk. /var/www/
  • Nous activer la configuration astérisque comme il est indiqué dans le fichier /etc/asterisk/asterisk.conf en supprimant les caractères de fin de la première ligne:
 sed -i '1 s/\(\[directories\]\).*/\1/' /etc/asterisk/asterisk.conf
  • Enfin! permet l’installation freepbx:
 ./start_asterisk start
 ./install_amp
  • Redémarrez apache2 et dahdi:
 /etc/init.d/apache2 restart
 /etci/init.d/dahdi restart
  • Enfin (il semble nécessaire):
 ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
 amportal start
  • C’est tout, on peut se connecter à l’interface de gestion ou de nouveaux virtuelle ippbx sur http://adresse-ip-de-votre-serveur/admin/

Un redémarrage montre que tout fonctionne!
 


Pour  tester votre serveur, vous pouvez utiliser 3cx sur votre smartphone (Android, iPhone) ou bien un client virtuel, comme X-Lite par exemple :