Dans cet article nous verrons comment installer un serveur Asterisk sous Debian Squeeze. Nous utiliserons la version 1.8 d'Asterisk (dernière version stable en date).
Installation d'Asterisk 1.8
Allez dans le répertoire /usr/src et téléchargez l'archive d'Asterisk :
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8.3.tar.gz
Prérequis :
apt-get install libxml2-dev ncurses-dev gcc g++ make
Nous allons maintenant décompresser l'archive, préparer et compiler le paquet.
tar zxvf asterisk-1.8.3.tar.gz
cd asterisk-1.8.3
./configure
make && make install
Nous compléterons l'installation en ajoutant la documentation relative à Asterisk ainsi que les fichiers de configuration par défaut.
make samples
make progdocs
Attention la commande : make samples supprimera tous les fichiers de configuration existant ! Par ailleurs l'installation de la documentation requiert l'ajout du paquet : doxygen.
Configuration d'Asterisk 1.8
L'ensemble des fichiers de configuration se trouvent dans le répertoire /etc/asterisk. Ceux qui nous intéressent dans cet article sont :
- sip.conf
- extensions.conf
- iax.conf (communication client / serveur ou serveur / serveur avec le protocole IAX.
Nous commencerons par le fichier sip.conf. Celui-ci contient la déclaration des différents téléphones. Nous créerons ici deux téléphones :
[poste1]
type=friend
host=dynamic
username=poste1
secret=test
callerid="poste1" <101>
mailbox=poste1@nomdedomaine
[poste2]
type=friend
host=dynamic
username=poste2
secret=test
callerid="poste2" <102>
mailbox=poste2@nomdedomaine
La configuration d'Asterisk doit être rechargée pour être pris en compte. Pour cela on accède à la commande Asterisk de cette manière :
asterisk -rvvv
sip reload
Nous allons associer un numéro de téléphone aux postes que nous venons de créer ouvrez le fichier extensions.conf avec votre éditeur de texte préféré et ajoutez les lignes suivantes à la fin du contexte [default] :
exten => 101,1,Dial(SIP/poste1,10,tr)
exten => 101,2,Voicemail(101)
exten => 101,3,playBack(vm-goodbye)
exten => 101,4,HangUp()
exten => 101,1,Dial(SIP/poste1,10,tr)
exten => 101,2,Voicemail(101)
exten => 101,3,playBack(vm-goodbye)
exten => 101,4,HangUp()
exten => 700,1,VoicemailMain
Dans cet exemple, si l'on compose le numéro 101, le poste1 sonnera dix secondes avant d'envoyer vers le répondeur du poste1. Pour accéder au répondeur et lire ses messages, il faudra composer le numéro 700.
Configuration du Voicemail
Nous avons configuré le serveur pour que les appels soient relayés vers le répondeur si personne ne décroche, mais nous n'avons pas encore configuré le répondeur. Editons le ficiher /etc/asterisk/voicemail.conf et modifié la variable suivante :
mailcmd=/usr/sbin/sendmail -t
Par
mailcmd=/usr/sbin/sendmailmp3
Vérifier que le format est bien le suivant :
format=mp3
Nous reviendrons sur le script sendmailmp3 un peu plus loin. On ajoute maintenant au contexte [default] les lignes suivantes :
101 => 1234,poste1,adressemail1@hopscotch.fr,,|attach=yes|review=yes
102 => 1234,poste2,adressemail2@hopscotch.fr,,|attach=yes|review=yes
Dans cet exemple, le mot de passe de la boîte mail du poste 101 est 1234. Un mail sera envoyé au destinaire du message pour chaque nouveau message. Le message vocale sera placé en pièce-jointe du mail. L'option review=yes signifie que l'on peut réécouter le message et le modifier.
L'inconvénient est que le message vocale est au format wav, dans un soucis de compatibilité, nous allons mettre en place un script qui convertira le fichier .wav en .mp3.
Dans le répertoire /usr/sbin, créez un script sendmailmp3 et rendez le éxécutable :
# touch sendmailmp3
# chmod a+x sendmailmp3
# nano sendmailmp3
Et copiez les commandes suivantes :
#! /bin/sh
CURDIR=`pwd`
TMPDIR=/tmp/mail`head -1 /dev/urandom | od -N 1 | awk '{ print $2 }'`
if [ ! -d $TMPDIR ] ; then mkdir $TMPDIR ; fi
cd $TMPDIR
cat >> stream.org
BOUNDARY=`grep "boundary=" stream.org | cut -d'"' -f 2`
awk '/'$BOUNDARY'/{i++}{print > "stream.part"i}' stream.org
sed '7,$d' stream.part3 > stream.part3.wav.head
sed '1,6d' stream.part3 > stream.part3.wav.base64
dos2unix -o stream.part3.wav.base64
base64 -d stream.part3.wav.base64 > stream.part3.wav
lame -V 2 stream.part3.wav stream.part3.mp3
base64 stream.part3.mp3 > stream.part3.mp3.base64
sed 's/x-wav/mpeg/g' stream.part3.wav.head | sed 's/.wav/.mp3/g' > stream.part3.mp3.head
mv stream.part stream.new
cat stream.part1 >> stream.new
cat stream.part2 >> stream.new
cat stream.part3.mp3.head >> stream.new
dos2unix -o stream.new
unix2dos -o stream.part3.mp3.base64
cat stream.part3.mp3.base64 >> stream.new
echo "" >> stream.tmp
echo "" >> stream.tmp
cat stream.part4 >> stream.tmp
dos2unix -o stream.tmp
cat stream.tmp >> stream.new
cat stream.new | sendmail -t
cd $CURDIR
rm -Rf $TMPDIR
Dorénavant les pièces-jointes seront au format mp3.
Il faut maintenant recharger la configuration d'Asterisk :
# asterisk -rvvv
> sip reload
> exit
Voilà le serveur Asterisk est prêt et vos pièces-jointes sont au format mp3 !
Enregistrer un commentaire