Trixbox 2

Embed Size (px)

Citation preview

  • 8/2/2019 Trixbox 2

    1/22

    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

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

    r 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    2/22

    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 :

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

    r 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    3/22

    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

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

    r 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    4/22

    ou

    /etc/init.d/network restart

    Le serveur est maintenant fonctionnel et prt tre configur.

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

    r 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    5/22

    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" :

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

    r 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    6/22

    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) :

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

    r 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    7/22

    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

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

    r 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    8/22

    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

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

    r 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    9/22

    Un trunkreprsente 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.

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

    r 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    10/22

    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.

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

    ur 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    11/22

    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 obtenirdes 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 parcustom_) :

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

    ur 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    12/22

    Son droulement est assez simple :

    [custom-mes]

    exten => _4121550.,1,Answer 1. Dcrocher lappel

    exten => _4121550.,2,Wait(1) 2. Attendre une seconde

    exten => _4121550.,3,Set(fromext=${EXTEN:4}) 3. Mmoriser le numro appel dans la variable

    fromext (moins les 4 premiers chiffres)

    exten => _4121550.,4,SayDigits(${fromext}) 4. Dire le numro

    exten => _4121550.,5,Playback(fpm-world-mix) 5. Jouer une musique

    exten => _4121550.,6,Hangup 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 Nimporte quel chiffre de 0 9Z Nimporte quel chiffre de 1 9N Nimporte quel chiffre de 2 9[1237-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.

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

    ur 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    13/22

    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_g729-gcc-pentium4.so# wget http://kvin.lv/pub/Linux/Asterisk/built-for-asterisk-1.2/codec_g723-icc-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/

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

    ur 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    14/22

    Ajouter ces nouveaux codecs au fichiersip.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 donne des informations supplmentaires sur lacommunication.

    Note : utiliser la touche tabulation pour complter le suffixe du canal que lon veut tudier.

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

    ur 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    15/22

    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.

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

    ur 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    16/22

    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 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 dundes 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

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

    ur 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    17/22

    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

    MySQLDepuis la console (en root), lancer la commande :

    # mysqladmin -p -u root password 'new_password'

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

    ur 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    18/22

    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.

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

    ur 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    19/22

    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 :

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

    ur 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    20/22

    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 :

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

    ur 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    21/22

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

    ur 22 01/03/2012 17:43

  • 8/2/2019 Trixbox 2

    22/22

    Commandes utiles

    Commandes linux :

    Redmarrer le serveur Asterisk amportal restart

    Mode console (CLI) dAsterisk (contacte une

    instance dj lance) / mode verbeux

    asterisk r

    asterisk -r vvvvv

    Commandes en mode Asterisk CLI :

    Activer/dsactiver le debug SIP (affiche beaucoup

    dinformations sur les connexions)

    sip debug

    sip no debug

    Afficher la liste des peers connects au serveur / les

    dtails dun peer

    sip show peers

    sip show peer

    Afficher la liste des canaux en cours dutilisation / les

    dtails dun canal

    sip show channels

    sip show channel

    Changer la verbosit (zro pour le minimum de

    verbosit)

    set verbose

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