La Voice facile avec Trixbox !

Trixbox en quelques mots :

Trixbox (connu auparavant sous le nom d’ Asterisk@Home) est un logiciel libre d’ autocommutateur téléphonique privé (PBX) ou IPBX basé sur le logiciel libre Asterisk.

Trixbox a été offert initialement sous le nom d’Asterisk@Home. En octobre 2006, le produit a été renommé Trixbox après que Digium, l’éditeur du produit Asterisk, eut demandé que le mot « asterisk » ne soit pas utilisé dans le nom du produit.
Le changement de nom était d’autant plus justifié que le produit avait à cette époque beaucoup plus de fonctionnalités qu »Astérisk.

Trixbox CE est le logiciel qui a été téléchargé le plus souvent dans la liste des projets réalisés à partir du logiciel libre Asterisk selon Sourceforge.net.

Trixbox CE est 100 % libre et sous licence GPLv2. Les membres fondateurs du projet Trixbox CE sont Kerry Garrison et Andrew Gillis.

Il existe également une version PRO de Trixbox, déclinée sous plusieurs versions  :

  • Standard Edition (SE) ;
  • Enterprise Edition (EE) ;
  • Call Center Edition (CCE) ;
  • Unified Agent Edition (UAE).

Le CD Trixbox inclut le noyau CentOS pour le système d’exploitation, Asterisk pour la partie IPBX et interface web, et Flash Operator Panel (FOP) pour la partie graphique de l’interface web.

Une fois le produit installé, l’administration de Trixbox est entièrement réalisée depuis une interface web. Seul un accès SSH peut être parfois utile lors de l’ajout de nouveaux modules fonctionnels, comme par exemple les modules de gestion des téléphones SIP de Aastra Technologies.

Source : wikipedia.org

Enoncé de l’exercice:

Vous disposez de la plage d’adresses IP 192.168.X.0 / 24X est un chiffre choisit aléatoirement (disons ici 1).

Configuration basique 

  1. Vous mettez en place deux IP-PBX en machine virtuelle « Trixbox » :
  2. Sur la trixbox1, vous créez deux extensions 101 et 102
  3. Sur la trixbox2, vous créez trois extensions 201 202 et 203
  4. 201 et 202 savent s’appeler et communiquer ensemble
  5. 101 et 102 savent s’appeler et communiquer ensemble

Du VoIP avec Asterisk

 

VoIP?  Asterisk ? Qu’est ce que c’est ?

Le VoIP  pour Voice over IP, est une technique qui permet de communiquer par la voix sur des réseaux compatibles IP, qu’il s’agisse de réseaux privés ou d’Internet, filaire (cable/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 » pour Telephony over Internet Protocol).

Asterisk permet, entre autres, la messagerie vocale, les files d’attente, les musiques, …
Il est possible également d’ajouter l’utilisation des conférences par le biais de l’installation de modules supplémentaires .

Passons maintenant dans le vif du sujet:

  • Installation
Après avoir installé notre distribution Linux (ici Debian 6.0.3) dans les règles de l’art, nous allons maintenant nous attaqué à la première partie de tutoriel.
  • Asterisk

Avant toute chose, il faut installer Asterisk sur notre Debian :

# apt-get install asterisk

Si l’on souhaite avoir en plus d’asterisk, l’installation de la langue française:

# apt-get install asterisk-prompt-fr-proformatique

Nous devons maintenant autoriser le démarrage du service et ainsi terminer l’installation.
Modifions ce dernier à l’aide d’un éditeur de texte :

# nano /etc/default/asterisk

Modifions le champ : RUNASTERISK=yes

Occupons-nous à présent de la configuration des différents fichiers qui se trouvent dans /etc/asterisk (configuration de base, nous pouvons faire beaucoup plus). Il va falloir modifier 3 fichiers : sip.conf, extension.conf et voicemail.conf.

    • sip.conf

sip.conf va servir pour configurer les logins et mots de passe de tous les périphériques.
Ce fichier est organisé en différentes zones appelées « context ».
On supprime l’entièreté du fichier et on ajoute:

bindport=5060 correspond au port UDP du protocole SIP

bindaddr correspond à l’adresse IP de l’interface sur lequel le serveur va écouter le trafic (0.0.0.0 pour toutes les interfaces)

language=fr pour avoir les messages vocaux en français

Imaginons maintenant que nous ayons un utilisateur John, à la suite du fichier, nous allonsq ajouter:

[John]
secret=motdepasse ; le mot de passe est obligatoire
context=local ; obligatoire, l'extension local gère les appels de l'utilisateur
mailbox=20@default ; numéro de la messagerie
type= friend ; obligatoire, autorise les appels entrants et sortants
host=dynamic ; obligatoire 
disallow=all ; Il s'agit des codecs, toujours mettre le disallow avant
allow=gsm
allow=ulaw
allow=alaw

On peut alors faire de la même manière pour un utilisateur qu’on appellera par exemple Laurent.

    • extension.conf

Ce fichier est utilisé pour router les appels vers un utilisateur ou vers sa messagerie.

Dans la partie [local], on va rajouter:

 exten => 200, 1, Dial(SIP/John, 10)

 Les appels arrivants sur le serveur à destination du numéro 200 sont envoyés vers le téléphone de John pendant 10 secondes (même raisonnement pour Laurent).

exten => 200, 2, VoiceMail(200@default)

Puis sont envoyés sur la messagerie de John, le @default n’est pas obligatoire ici.

exten => 200,3,PlayBack(Vm-Goodbye)    ;goodbye
exten => 200,4,Wait(2)
exten => 200,5,HangUp()
exten => 500, 1, VoiceMailMain

Le numéro 500 permet de vérifier sa messagerie vocale.

On procède de la même manière pour Laurent.

Dans la partie [default]:

200 => password, John
201 => tototata, Laurent
    • voicemail.conf

Le fichier voicemail.conf permet de configurer la messagerie vocale d’Asterisk.

Il ne faut pas oublier de redémarrer le service afin de prendre en compte les changements:

# /etc/init.d/asterisk restart

Pour vérifier la configuration et l’état des téléphones, nous utiliserons la commande suivante :

# asterisk –r (ou alors, rasterisk)
*CLI> sip show peers
  • Le Trunk

Un trunk SIP est une connexion SIP faite entre 2 serveurs SIP pour faire passer des appels entre les téléphones liés à ces serveurs.

Sur le premier serveur, nous allons rajouter un utilisateur dans le fichier sip.conf comme nous l’avons fait pour John et Laurent :

[trunk_1_vers_2]
type=friend
secret=test
context=local
host=dynamic
disallow=all
allow=ulaw
insecure=port,invite

On redémarre:

# /etc/init.d/asterisk restart

Pour vérifier que la configuration est bonne, nous allons afficher les différents utilisateurs enregistrés à l’aide de cette commande :

# rasterisk
*CLI> sip show peers

On doit normalement voir cette ligne:

Name/username      Host          Dyn   Nat   ACL   Port   Status
trunk_1_vers_2     IpDuServeur1   D                 5060  Unmonitored

Sur le 2ème serveur, nous allons faire en sorte que ce serveur s’enregistre. On ajoute la ligne suivante dans le fichier sip.conf du 2ème serveur (dans local) :

register => trunk_1_vers_2:test@IpDuServeur2

Avec cette ligne, le serveur 2 va s’enregistrer sur le serveur 1 avec le login trunk_1_vers_2  et le mot de passe test.

On va également rajouter une ligne dans le fichier extensions.conf du serveur 1:

exten => _2XXX,1,Dial(SIP/trunk_1_vers_2/${EXTEN})

Ainsi grâce à cette ligne supplémentaire, les utilisateurs enregistrés sur le premier serveur pourront passer des appels à destinations des utilisateurs du 2ème serveur (mais pas l’inverse, pour que ça soit possible, il va falloir faire pareil sur le 2ème serveur).

On redémarre:

# /etc/init.d/asterisk restart

Nous testons également que la configuration est correcte en affichant l’état de la ligne :

# rasterisk
*CLI> sip show peers
  • Le client (X-Lite)

X-Lite est un softphone comme il en existe beaucoup. Il est gratuit et gère les appels vidéo.
Téléchargeable ici : http://www.counterpath.com/x-lite.html

On crée d’abord un compte avec comme IP dans Domain celle du notre serveur.

L’user ID ainsi que le Password correspondent à ceux choisis dans la configuration du fichier sip.conf.