Installation d’Asterisk sur Fedora

Date: 22/03/2007 | Catégories: Open-source,Reseau | Tags: ,,,,,

Asterisk est un serveur de téléphonie open-source permettant de disposer sur un simple PC de fonctions jusque là réservées aux PABX professionnel. Nous allons dans ce post installer un serveur Asterisk sur PC fonctionnant sous Fedora (Core 6). Nous nous limiterons à la configuration d'un serveur VoIP SIP sans passerelle vers le monde téléphonique.

Attention: si vous voulez utiliser une carte téléphonique de tpy eDigium dans votre serveur, il faudra l'installer AVANT d'installer Asterisk.

Installation d'Asterisk

Nous allons compiler la dernière version d'Asterisk (1.4.2) au moment de l'écriture de ce post à partir des sources (téléchargeable ici).Une fois le fichier téléchargé, il faut commencer par le décompresser:

# tar zxvf asterisk-1.4.2.tar.gz

On lance la compilation avec les commandes suivantes:

# cd asterisk-1.4.2
# ./configure
# make
# make install
# make samples
-> Seulement nécessaire pour un installation initiale. Écrase les fichiers de configuration actuels.
# make progdocs

PS: si vous souhaitez mettre à jour unes version existante d'Asterisk, il faut utiliser les commandes suivantes:

# cd asterisk-1.4.2
# ./configure
# make update
# make clean# make upgrade

Une fois l'installation terminée, vous pouvez tester Asterisk:

# /usr/sbin/asterisk -VAsterisk 1.4.2

L'installation est réussie, on peut passer à la phase de configuration.

Configuration d'Asterisk

Avant de nous attaquer aux fichiers de configuration. Voici la liste des répertoires utilisées par Asterisk:

  • /etc/asterisk contient les fichiers de configuration.
  • /usr/lib/asterisk/modules contient les modules utilisés par Asterisk (codec, applications tierces...).
  • /var/lib/asterisk/agi-bin contient vos scripts.
  • /var/lib/asterisk/firmware contient les drivers pour les cartes compatible Asterisk (par exemple Digium).
  • /var/lib/asterisk/images contient des images pour les applications les supportant.
  • /var/lib/asterisk/keys contient les clès publiques et privées (RSA)
  • /var/lib/asterisk/mohmp3 contient les musiques d'attente au format MP3 (CBR uniquement et pas de tag ID3).
  • /var/lib/asterisk/sounds contient les annonces vocales
  • /var/log/asterisk contient les logs du processus Asterisk

Comme nous allons nous limiter à une configuration purement SIP du serveur Asterisk (sans interface vers le monde téléphonique), la configuration est relativement simple.Il faut commencer par éditer le fichier /etc/asterisk/sip.conf:

[general]
context=default
srvlookup=no
[nicolargo]
type=friend
username=nicolargo
secret=password
quality=yes
nat=no
canreinvite=no
auth=md5
host=dynamic
dtfmode=rfc2833
allow=ulaw
context=internal

Nous venons de créer un utilisateur nicolargo sur le serveur.

Lancement d'Asterisk

Pour lancer la console d'administration Asterisk, il suffit de taper la ligne suivante:

# /usr/sbin/asterisk -c
*CLI>

Nous pouvons alors vérifier que l'utilisateur SIP a bien été créé:

*CLI> sip show users
Username Secret Account
code Def.
Context ACL NAT
nicolargo password default No RFC3581

Puis voir les détails de la configuration de l'utisateur nicolargo:

*CLI> sip show user
nicolargo* Name : nicolargoSecret : <Set>MD5Secret : <Not set>Context : defaultLanguage :AMA flags : UnknownTransfer mode: openMaxCallBR : 384 kbpsCallingPres : Presentation Allowed, Not ScreenedCall limit : 0Callgroup :Pickupgroup :Callerid : "nicolargo" <1208>ACL : NoCodec Order : (gsm:20,ulaw:20,alaw:20)Auto-Framing: No

Pour arrêter le serveur, il faut saisir la commande suivante:

*CLI> stop gracefully

Test du serveur à partir d'un client SIP

Pour mes tests j'ai utilisé X-Lite (disponible sous Linux, Mac et Windows), qui a le bon goût d'être gratuit et parfaitement compatible avec la norme SIP.La configuration doit être la suivante:

L'enregistrement sur le serveur Asterisk (192.168.29.246 dans mon cas) se passe alors sans problème:

Si vous avez un problème pour vous connecté à votre serveur Asterisk, pensez à regarder du coté des règles de Firewall (iptables). Il faut ajouter la règle suivante:

# iptables -A RH-Firewall-1-INPUT -p udp -m udp --dport 5061 -j ACCEPT

A partir de maintenant (et en définissant d'autres utilisateurs), vous devez être capable d'effectuer des appels SIP à l'intérieur de votre réseau.Voila donc une première étape de faite. Dans un prochain post nous verrons comment interfacer notre nouveau serveur vers un serveur père (par exemple chez votre fournisseur d'accès Internet)...
Pour ceux que cela intéresse, cet article raconte le retour d'expérience de l'installation d'une serveur Asterisk en entreprise.