Vous êtes sur la page 1sur 22

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Guide dinstallation de Trixbox 2.0

Sommaire :
Installation Obtenir Trixbox Installation du systme Premier dmarrage Configuration dAsterisk Accs linterface de configuration Ajouter des extensions Configurer les appels sortants Trunks Routes Configurer les appels entrants Cration de dial-plans (custom applications) Codecs Codecs installs par dfaut Installation des codecs g723 et g729 : Connatre le codec utilis pendant un appel Problmes de transcodage avec iLBC Administration de Trixbox Modification des mots de passe par dfaut FreePBX MySQL Installation des modules disponibles par dfaut Divers Gnrer du trafic pour tester le fonctionnement dAsterisk Commandes utiles

Switzernet, Fvrier 2006

1 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Installation
Obtenir Trixbox
Tlcharger limage ISO (trixbox2.0.iso) partir du site http://www.trixbox.org/ (le lien de tlchargement mne sur sourceforge.net) et graver limage ISO sur un CDROM.

Installation du systme
Trixbox est une distribution linux complte (utilisant CentOS), intgrant entre autres Asterisk, FreePBX, Apache et MySQL. Son installation est donc entirement automatique. Au dmarrage, insrer le CDROM dans le lecteur et presser sur entre lcran de dmarrage de linstalleur. Quand demand, slectionner le bon type de clavier (fr_CH-Latin1) :

Ainsi que la localisation (Europe/Zurich) :

Et choisir le mot de passe root :

2 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Linstallation se droule ensuite automatiquement (plusieurs redmarrages seront ncessaires). Ne pas oublier de retirer le CDROM au premier redmarrage (il sjecte automatiquement). Par dfaut, le systme sinstalle sur le disque entier sans demander de partitionnement.

Premier dmarrage
Paramtrer le rseau pour un serveur statique (la configuration par dfaut est en DHCP). Par exemple avec la commande netconfig : Attention ! Cette opration va compltement effacer les valeurs prcdentes !!

Configurer ladresse IP, masque de rseau, passerelle et serveur DNS et cliquer sur OK.

Il faut alors relancer linterface rseau avec la commande : sercice network restart

3 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

ou /etc/init.d/network restart

Le serveur est maintenant fonctionnel et prt tre configur.

4 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Configuration dAsterisk
Accs linterface de configuration
On accde linterface web de configuration de Trixbox en entrant ladresse du serveur dans un navigateur internet :

Passer en mode administrateur en cliquant sur "switch". Par dfaut : utilisateur : maint mot de passe : password Cliquer sur le menu "Asterisk" "FreePBX" :

puis "Setup" :

5 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Ajouter des extensions


On commence par ajouter des extensions (ici generic SIP device). Une extension reprsente simplement un numro de tlphone.

Pour chaque extension, indiquer le numro SIP (o XXXX est le short SIP), le nom qui saffichera pour les appels passs et le mot de passe SIP ("secret"). Le bouton "submit" enregistre les modifications, mais sans les appliquer. Aprs avoir ajout toutes les extensions, il faut appliquer les modifications sur le serveur, ce qui redmarrera le service asterisk (notez que vous avez des messages de feedback sur lcran du serveur) :

6 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Maintenant, les tlphones SIP branchs sur le rseau du serveur doivent pouvoir communiquer entre eux (uniquement en utilisant un des codecs supports par Asterisk).

Remarque importante pour une utilisation commerciale (but final de notre installation) :
Par dfaut, nimporte qui peut accder linterface web (FreePBX) du serveur par son IP, et peut alors voir toutes les extensions, trunks, !

Pour y remdier, voici une solution brutale mais rudement efficace : il faut simplement diter le template de la page FOP (Flash Operator Panel) pour les utilisateurs externes, qui est dans le dossier /var/www/html/user /modules/04_fop et commenter (en html) le template : # nano /www/html/user/modules/04_fop/fop.tpl

7 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Lors de la prochaine ouverture de la page FOP sur linterface FreePBX, le fichier flash ne sera alors pas charg, mais il le sera pour linterface administrateur (maint). Autre technique encore plus brutale, mais surtout plus sre pour nos intrts : laisser le fichier fop.tpl compltement vide !! Pour ne pas laisser lapplication flash tourner pour rien (sa gnration peut tre assez coteuse en CPU), on peut maintenant totalement la supprimer du lancement du service amportal : On dite le fichier /usr/sbin/amportal. Dans la partie qui ressemble un script dinit, on commente les appels aux mthodes run_fop et stop_fop (pour viter les messages derreur ventuels). Normalement, commenter les lignes run_fop, redmarrer amportal puis commenter les lignes stop_fop est suffisant. Si on veut tre vraiment sur de ne pas laisser de traces de lapplication flash, on peut faire aussi un killall op_server.pl (le script perl qui gnre le flash), ou mme directement rebooter le serveur.

Configurer les appels sortants


Trunks
8 sur 22 01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Un trunk reprsente un accs du serveur vers lextrieur. Par exemple vers un serveur spcifique, un routeur Tous les trunks que nous utilisons ici sont des trunks SIP. Dans la configuration du trunk, on donne ladresse du serveur externe auquel on veut se connecter (ici un autre serveur SIP), la liste des codecs autoriss (dans lordre de prfrence) et le type du serveur externe (peer ou friend). Le type "friend" est la mthode de connexion la plus simple, mais aussi la moins sre.

Les autres champs peuvent tre laisss vides. On dclare un trunk diffrent pour chaque serveur sortant.

Routes
Une route va permettre de diriger un appel sortant vers une destination particulire, par exemple en fonction du numro compos ("dial pattern"). Par exemple ici, on cre une route qui redirige lappel vers le trunk "swiss-sip" si le numro appel est prfix dun 4. A ce stade, le serveur sera capable dappeler des appareils externes suivant les trunks dfinis.

9 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Configurer les appels entrants


On va maintenant permettre aux appels entrants dtre dirigs sur le bon appareil. On ajoute une route entrante pour chaque extension qui doit tre atteignable de lextrieur. On entre le numro SIP comme identifiant de la route, et on indique quoi faire de lappel entrant. Ici, il est simplement redirig vers lappareil concern.

10 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Notes Il est utile dajouter une route entrante supplmentaire, qui va rejeter tous les numros non dclars. On peut laisser le "DID Number" vide, et mettre la destination sur "Core : Hangup".

Ne pas oublier daccepter les appels entrants non authentifis. Sans cela, le tlphone reste inatteignable : Dans longlet "General Settings" :

Cration de dial-plans (custom applications)


Dans la configuration dAsterisk, un dial-plan reprsente la suite dactions qui se droule pendant un appel. Toute la configuration dAsterisk passe par ces dial-plans, mme si linterface FreePBX les cache lutilisateur. Pour obtenir des fonctions plus avances, on doit passer par la cration de dial-plans personnaliss. Au lieu de simplement faire sonner un appareil, on peut dfinir des actions particulires (par exemple, lire un message, demander une entre lutilisateur). Ici on dfinit un dial-plan personnalis pour les appels entrants, dans longlet "Inbound Routes" (qui ne concerne que les appels venant de lextrieur, et pas les connexions SIP SIP) :

Dans ce cas, on lappelle dans le champ "Custom App" de la destination. La syntaxe dappel est "nom_du_dial_plan,no_extension,premiere_action. Ici, custom-mes,41215500308,1, qui appelle le plan custom_mes, avec le numro dextension qui reoit lappel, et on commence lexcution du plan la position 1. Les dials plans sont dfinis dans le fichier /etc/asterisk/extensions_custom.conf, quon peut diter par le menu "Config Edit" de FreePBX :

On dfinit le dial-plan custom-mes (le nom de tous les dial-plans personnaliss doit commencer par custom_) :

11 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Son droulement est assez simple : [custom-mes] exten => _4121550.,1,Answer exten => _4121550.,2,Wait(1) exten => _4121550.,3,Set(fromext=${EXTEN:4}) exten => _4121550.,4,SayDigits(${fromext}) exten => _4121550.,5,Playback(fpm-world-mix) exten => _4121550.,6,Hangup

1. Dcrocher lappel 2. Attendre une seconde 3. Mmoriser le numro appel dans la variable fromext (moins les 4 premiers chiffres) 4. Dire le numro 5. Jouer une musique 6. Raccrocher lappel

Chaque ligne du plan commence par lextension concerne. Ici on utilise "_4121550.", qui matche tous les numros de la forme 4121550*. Le "_" au dbut de lextension signifie quelle doit tre interprte comme une expression rgulire. Les expressions utilisables sont :

X Z N [1237-9] . !

Nimporte quel chiffre de 0 9 Nimporte quel chiffre de 1 9 Nimporte quel chiffre de 2 9 Nimporte lequel des caractres entre crochets (ici 1,2,3,7,8,9) Nimporte quelle suite (un ou plus) de caractres Nimporte quelle suite (zro ou plus) de caractres, mais interprt ds que lexpression correspond.

On donne ensuite pour chaque commande sa priorit dexcution, et enfin la commande elle-mme. En pratique, on peut crer des plans bien plus compliqus.

12 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Codecs
Codecs installs par dfaut
Par dfaut, asterisk supporte (entre autres) les codecs suivants : PCMU (ulaw, g711u, principalement utilis aux Etats-Unis et au Japon) PCMA (alaw, g711a, utilis dans le reste du monde) iLBC g723.1, uniquement en pass-through

Des codecs supplmentaires peuvent tre installs sous forme de modules.

Installation des codecs g723 et g729 :


Ces deux codecs sont normalement soumis une taxe payer pour lutilisation. Identifier le type de processeur, identifi par le mot cl model name : # cat /proc/cpuinfo model name : Intel(R) Pentium(R) 4 CPU 1.70GHz

Aller dans le rpertoire des modules dasterisk : # cd /usr/lib/asterisk/modules Tlcharger les codecs correspondant au processeur utilis : Pentium 4 : # wget http://kvin.lv/pub/Linux/Asterisk/built-for-asterisk-1.2/codec_g729gcc-pentium4.so # wget http://kvin.lv/pub/Linux/Asterisk/built-for-asterisk-1.2/codec_g723icc-pentium4.so Pour les autres processeurs, voir la liste des fichiers disponibles ladresse suivante : http://kvin.lv/pub/Linux/Asterisk/built-for-asterisk-1.2/

13 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Ajouter ces nouveaux codecs au fichier sip.conf :

Aussi ajouter les nouveaux codecs dans le fichier /etc/asterisk/sip_custom.conf (mettre les codecs dans lordre de prfrence). Crer le fichier sil nexiste pas : allow=g723 allow=g729 NB : Ceci nest pas trs utile, pour ne pas dire gnant pour linstant Oublier cette tape.

Redmarrer le serveur Asterisk et linterface FreePBX ; le tout est regroup sous le service amportal (voir # amportal --help pour plus dinformations) : # amportal restart

Connatre le codec utilis pendant un appel


En mode console pour Asterisk (CLI), accessible en tapant # asterisk -r dans un terminal, la commande show channels donne la liste de toutes les communications en cours (un canal [channel] par appareil).

Aprs avoir trouv le bon canal, show channel <channel> donne des informations supplmentaires sur la communication. Note : utiliser la touche tabulation pour complter le suffixe du canal que lon veut tudier.

14 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Les champs NativeFormat, WriteFormat et ReadFormat indiquent le codec utilis.

Pour obtenir le codec correspondant au code prcdent, on utilise la commande show codecs, qui liste tous les codecs disponibles.

15 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Ici on voit que le codec utilis est iLBC. On peut obtenir la mme chose avec plus de dtails en utilisant la commande sip show channels, puis sip show channel <channel> avec le canal dsir :

Problmes de transcodage avec iLBC


Par dfaut, les appareils Grandstream (BudgeTone et HandyTone) sont configurs pour utiliser un frame size de 20ms avec le codec iLBC. Cela pose problme pour le transcodage vers g723. Dans ce cas, aucun son ne sort dun des appareils, alors que de lautre ct le son est trs mauvais (uniquement des bruits de compression). De plus, du ct du serveur et des routeurs, lappel semble se drouler normalement. Pour remdier ce problme, il suffit de modifier le frame size utilis par iLBC 30ms (ce qui correspond au frame

16 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

size du codec g723). On le fait directement depuis linterface web de lappareil :

Administration de Trixbox
A la place du gestionnaire de paquets par dfaut (yum), on peut directement utiliser linterface web de Trixbox pour effectuer les mises jour et installations de nouveaux paquets. Il faut dabord se crer un compte en cliquant sur le bouton "register". Si a ne marche pas, on peut aussi sinscrire directement sur les forums Trixbox (cest le mme login) : http://www.trixbox.org/modules/newbb/

Modification des mots de passe par dfaut


FreePBX
Utilisateur de maintenance : Depuis la console (en root), lancer la commande # passwd-maint Utilisateur : maint Mot de passe par dfaut : password Utilisateur secondaire (pas daccs au mode maintenance) : Depuis la console (en root), lancer la commande : # passwd-amp Utilisateur : wwwadmin Mot de passe par dfaut : password

MySQL
Depuis la console (en root), lancer la commande : # mysqladmin -p -u root password 'new_password'

17 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Il faudra entrer le mot de passe actuel. Utilisateur : root Mot de passe par dfaut : passw0rd

Installation des modules disponibles par dfaut


Depuis la section Tools de linterface FreePBX, aller dans Module Admin, et tout installer :

Tous les modules ne sont pas forcment utiles, mais nous anticipons pour la suite ; par exemple nous sommes particulirement intresss par les Ring Groups, comme nous allons le voir ci-dessous.

Divers
Gnrer du trafic pour tester le fonctionnement dAsterisk
Pour tester la capacit du serveur, au lieu dutiliser vraiment un grand nombre de tlphones, on peut aussi gnrer du trafic en utilisant les routes et les groupes de sonneries. On na mme pas besoin de crer dextensions. On commence par dclarer un "ring group" (accessible dans la section Setup) pour chaque appareil dsir, ici on a choisi la plage des numros 02155090XX. Ce nest pas un vrai ring group, dans le sens ou il ne fait sonner quun seul appareil.

18 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

On garde les options par dfaut du ring group. La seule diffrence est que le numro appel doit tre dclar comme un numro externe (on ajoute un # la fin). Il faut juste changer le time-out sur 60 secondes (cercle bleu) si nous mettons beaucoup de ring groups la suite (dans notre cas, il y en a une vingtaine). Pour chaque ring group, on cre ensuite une route entrante :

Jusquici, ces routes sont aussi laisses aux valeurs par dfaut. Cest maintenant quon met en place le systme dappels en chane. Pour obtenir leffet dsir, chaque route pointe sur le ring group suivant :

19 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Cela cre une chane dappels aussi longue que lon veut (ici par exemple 9000 9002 9003 9020 0303). Le numro 0215500303 est cette fois un "vrai" numro, qui pointe sur un appareil physique (cela peut tre un natel, p.e.), pour pouvoir dcrocher finalement lappel. Remarque : ne pas oublier de dfinir ces numros sur le Cisco entrant ! (voir la documentation ce sujet) On voit pourquoi les numros dappels des ring groups sont dclars comme numros externes. De cette manire, les appels sortent de lAsterisk, sans cela, tout resterait sur le rseau SIP. Le chemin que prennent les appels est donc le suivant :

On appelle le numro 0215509000 de lextrieur, mais au lieu de dcrocher, lappel est transfr dans la boucle dappels. Il y fait un passage pour chacun des ring groups dclars prcdemment, et la fin on le renvoie sur le 0215500303, qui dcroche lappel. Si on examine le cheminement des appels sur les routeurs entrant et sortant, on obtient le fonctionnement suivant :

20 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

21 sur 22

01/03/2012 17:43

Trixbox 2

http://www.switzernet.com/public/080701-stage-student-jobs/docs-exa...

Commandes utiles
Commandes linux : Redmarrer le serveur Asterisk Mode console (CLI) dAsterisk (contacte une instance dj lance) / mode verbeux Commandes en mode Asterisk CLI : Activer/dsactiver le debug SIP (affiche beaucoup dinformations sur les connexions) Afficher la liste des peers connects au serveur / les dtails dun peer Afficher la liste des canaux en cours dutilisation / les dtails dun canal Changer la verbosit (zro pour le minimum de verbosit) amportal restart asterisk r asterisk -r vvvvv

sip sip sip sip sip sip set

debug no debug show peers show peer <peer> show channels show channel <channel> verbose <verbosity>

22 sur 22

01/03/2012 17:43

Vous aimerez peut-être aussi