|
Table des matières
Téléphonie VOIPLa VOIP (Voice Over Internet Protocol) est un formidable moyen de téléphoner à des tarifs imbattables en passant les communications par Internet.
Sont présentées ici deux solutions:
Astérisk/FreePBXAsterisk permet de transformer un ordinateur en auto-commutateur téléphonique IP/VOIP, dit IPBX (Internet Private Branch eXchange). Il se présente sous la forme d’un logiciel libre à installer sur un serveur. On a tout intérêt à installer Asterisk sur un serveur à part, nul besoin d’un gros serveur, un PC Acer Revo avec un Atom 230 suffit pour Asterisk/FreePBX, mais ce modèle n’est pas compatible avec Trixbox (Attention, l’absence de CD-ROM impose l’installation d’une version 9.04 mise sur une clé LiveUSB). La configuration d’un serveur Asterisk est dite relativement aisée. En réalité, la partie FreePBX qui est l’interface graphique se révèle plutôt complexe à paramétrer pour des néophytes en téléphonie (Extensions, Trunks, Inbound Routes…). La solution Asterisk, comme les nombreuses autres solutions IPBX, s’oppose à la solution IP Centrex, service téléphonique commercial offert par un fournisseur de services qui assure les fonctions de central téléphonique à distance. Le schéma de principe ci-dessous montre l’arrivée de l’ADSL sur un switch relié à la fois au serveur Asterisk et aux postes téléphoniques ainsi qu’aux ordinateurs du réseau. En fonction du nombre de communications simultanées, on pourra être amené à utiliser une seconde Box avec un routeur à double entrée (type Cisco RV082) pour répartir le trafic, assurer la sécurité de connexion et le QoS (Quality of Service).
sudo apt-get install asterisk
OVH à la page http://guides.ovh.net/InstallerAsterisk FreePBXInstallation de FreePBXLe serveur Ubuntu doit avoir les fonctions serveur LAMP et serveur OpenSSH. Serveur Ubuntu 8.04
sudo apt-get install asterisk-mysql asterisk-mp3 asterisk-prompt-fr curl sox libsox-fmt-all php5-cli php5-xmlrpc php5-gd php5-dev php-pear php-db phpmyadmin
wget "http://mirror.freepbx.org/freepbx-2.5.1.tar.gz"
tar -xvzf freepbx-2.5.1.tar.gz
cd freepbx-2.5.1/
mysqladmin -u root -p create asterisk mysqladmin -u root -p create asteriskcdrdb mysql asterisk < SQL/newinstall.sql -u root -p mysql asteriskcdrdb < SQL/cdr_mysql_table.sql -u root -p mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 34 Server version: 5.0.51a-3ubuntu5.4 (Ubuntu) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. On se trouve alors en MySQL, entrer les commandes suivantes (sans mysql> qui identifie le mode): mysql> GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'asterisk'; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'asterisk'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; mysql> quit # ou Ctl+C
root@userv~/asterisk/freepbx-2.5.1# ./install_amp (si besoin, à la demande, ajouter en fin de commande identifiant et mot de passe: ./install_amp --username=root --password=xxxx) Checking for PEAR DB..OK Checking for PEAR Console::Getopt..OK Checking user..OK Checking if Asterisk is running..running with PID: 4959..OK Checking for /etc/amportal.conf../etc/amportal.conf does not exist, copying default Creating new /etc/amportal.conf Enter your USERNAME to connect to the 'asterisk' database: [asteriskuser] Enter your PASSWORD to connect to the 'asterisk' database: [amp109] asterisk Enter the hostname of the 'asterisk' database: [localhost] Enter a USERNAME to connect to the Asterisk Manager interface: [admin] Enter a PASSWORD to connect to the Asterisk Manager interface: [amp111] Enter the path to use for your AMP web root: [/var/www/html] /var/www/freepbx/ Created /var/www/freepbx Enter the IP ADDRESS or hostname used to access the AMP web-admin: [xx.xx.xx.xx] 0.0.0.0 Enter a PASSWORD to perform call transfers with the Flash Operator Panel: [passw0rd] Use simple Extensions [extensions] admin or separate Devices and Users [deviceanduser]? [extensions] Enter directory in which to store AMP executable scripts: [/var/lib/asterisk/bin] Created /var/lib/asterisk/bin Enter directory in which to store super-user scripts: [/usr/local/sbin]
noload = app_directory_odbc.so noload = app_voicemail_odbc.so noload = app_voicemail_imap.so
adduser www-data asterisk
chown www-data:www-data -R /usr/share/asterisk/agi-bin chmod 777 -R /usr/share/asterisk/agi-bin # à lancer en root A priori, faire le chmod au moins après chaque modification de configuration (Apply configuration changes) dans FreePBX.
magic_quotes_gpc = Off
/etc/init.d/asterisk stop
RUNASTERISK=no
chown asterisk:asterisk /var/www/freepbx/
/usr/local/sbin/amportal start
/etc/init.d/apache2 reload
amportal stop && sudo amportal start # à lancer en root En tout SIP, inutile d’installer Zaptel qui sert pour des interfaces analogiques
En cas de difficulté, on peut également consulter le guide d’installation http://www.freepbx.org/trac/wiki/UbuntuServerIntrepid
Serveur Ubuntu 8.10 ou 9.04Méthode 1Suivre le processus précédent en mofifiant les paramètres suivants. Pour un serveur Ubuntu qui ne sert qu’à la fonction Asterisk pure et dans lequel on ne veut pas introduire d’utilisateur www-data (qui a tendance à perturber le fonctionnement), rechercher www-data (mis par défaut à l’installation Apache) dans le répertoire /etc/apache2 pour le supprimer: root@xxxx:/home/Telechargement/freepbx-2.5.1# cd /etc/apache2 root@xxxx:/etc/apache2# grep -R www-data * envvars:export APACHE_RUN_USER=www-data envvars:export APACHE_RUN_GROUP=www-data Editer le fichier envvars et remplacer www-data par asterisk. nano ennvars Méthode 2Installation proche de la méthode 1, suivre le processus donné sur http://www.freepbx.org/trac/wiki/UbuntuServerIntrepid. Elle est spécifique aux versions 8.10 et 9.04 d’Ubuntu Serveur. TrixBoxLe paragraphe précédent est rédigé pour Asterisk/FreePBX, mais il existe une autre solution, TrixBox, système complet (basé sur CentOS) qui inclue de base Asterisk, FreePBX, PHP/MySQL et Apache. TrixBox est donc une alternative intéressante à la solution précédente sur serveur Ubuntu. L’installation en est d’autant simplifiée. Si on décide de prendre un serveur à part pour le téléphone, TrixBox se révèle donc la solution idéale. Attention: pour vérifier la compatibilité de l’ordinateur avec Trixbox, vérifier pour Red Hat.
Quelques différences par rapport aux distributions Debian: - pour les installations, remplacer la commande apt-get par yum (Yellow Update Modified). Pour les commandes, voir http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/s1-yum-useful-commands.html , - pour lancer Asterisk, lancer par la commande suivante: /usr/sbin/asterisk -rv Installation
Configuration
HudLiteOn peut compléter l’interface TrixBox en installant hudlite plus complet que le FOP. HUDlite comprend deux parties, une pour le serveur, une pour le client (version Linux, Windows ou Mac): 1. Pour l’installation sur le serveur, suivre http://www.trixbox.org/hudlite-setup-guide ainsi que le complément donné sur http://www.asterisk-france.net/community/showthread.php?t=6526&highlight=installation+hudlite. Voir également http://www.hudlite.org/linuxserver.htm Dans TrixBox, cliquer sur FreePBX/HUDlite Admin, les extensions apparaissent avec leur mot de passe. 2. Installer hudlite-client dans la version qui convient (Téléchargeement sur http://www.hudlite.org/downloads.htm). En Linux, le paquet est hud-lite_1.1.1170-2_i386.rpm. On le transforme en .deb par la commande alien -d et on l’installe par ensuite la commande dpkg -i. Les fonctions Java doivent être disponibles, vérifier par apt://sun-java6-jre. Documentation sur http://<IP_serveur_TrixBox>/maint/modules/hudadmin/help/install_hudlite.html Pour le lancer, la commande est: /usr/fonality/hud-lite/HUD & Pour le paramétrage HUDlite, ouvrir File/Settings, entrer les données suivantes:
Quand HUDlite Client est en marche, une fenêtre apparaît avec les extensions représentées. Avec la souris, on peut alors voir les communications, appeler, transférer… par simple glisser-déposer. Configuration FreePBXPour utiliser le Manager FreePBX:
Manuel d'utilisationConsulter la documentation en français sur http://www.manuel-freepbx.com/wiki/index.php. pour les différents réglages à faire sur FreePBX. Dans Firefox, on accède aux différents items par http://IP_ServeurAsterisk/freepbx/admin/config.php Protection de FreePBXPour protéger l’accès aux fonctions d’administration de FreePBX, introduire un mot de passe spécifique par la commande. sudo htpasswd -c /etc/apache2/freepbx-passwd admin Ajout d'un TrunkLe trunk correspond à un choix de compte SIP (appelé également ligne) et non un numéro alias.
Documentation sur http://www.manuel-freepbx.com/wiki/index.php?page=Trunks ExtensionsDans le vocabulaire FreePBX, l’extension correspond à un poste. Un même utilisateur peut avoir plusieurs extensions selon où il se déplace. Cliquer sur Extensions, puis sur Add Extension et sur Submit.
On retrouve les extensions dans /etc/asterisk/extension_additional.conf Documentation sur http://www.manuel-freepbx.com/wiki/index.php?page=Extensions Inbound RoutesPermet d’associer un appel entrant (DID) à une ou plusieurs extensions. - La solution conseillée pour que les appels arrivent au bon poste est d’utiliser:
- Autre solution, si on a paramétré les extensions avec les CID et DID, les Inbound Routes sont créées en même temps sous forme DID Number / Any CID. Vérifier les données en cliquant sur les routes existantes, en particulier le paragraphe Set Destination qui définit l’action déclenchée par l’appel. - Autre possibilité, générer une route générique en entrant:
On obtient alors une route Any CID / Any DID Voir manuel sur http://www.manuel-freepbx.com/wiki/index.php?page=Inbound+Routes Outbound Routes
Documentation sur http://www.manuel-freepbx.com/wiki/index.php?page=Outbound+Routes VoiceMailC’est le répondeur téléphonique. Permet d’enregistrer un message d’accueil et d’interroger la messagerie aussi bien de l’intérieur que de l’extérieur du système. Nécessite l’installation du module Voicemail et l’activation de Voicemail pour les extensions concernées et indication du temps d’attente avant message (RingTime) Configuration
Fonctionnement
Ring GroupsPermet de créer des groupes de téléphones pour les appels entrants (à condition d’avoir installé le module Ring Groups). Les téléphones sonneront ensemble ou successivement lorsqu’un appel arrive vers ce groupe. ConfigurationAprès installation du module, une ligne Ring Groups sera ajoutée les Inbound Routes/Set Destination. Depuis la page Ring Groups, on peut ajouter des groupes en cliquant sur Add Ring Group :
PhonebookLe Phonebook est un annuaire Asterisk qui permet de voir l’identité des appelants sur les combinés au lieu de leur numéro de téléphone.
FreePBX System Status
Asterisk Info
On voit ici 2 trunks et 3 extensions correspondant aux 2 adresses IP des 2 C470 avec 2 combinés pour l’un et un seul pour l’autre. Print ExtensionsPour cela, installer le module Print Extensions par Tools/Onglet Print Extensions. Le menu apparait alors en bas à gauche du menu Tools. Cette fonction permet de générer une page imprimable avec la liste des extensions, les noms et les commandes-clavier. A imprimer et distribuer aux utilisateurs. Commandes CLI
sudo asterisk -rvvv # l'option vvv met le niveau de verbose à 3
xxxx*CLI> sip show peers Name/username Host Dyn Nat ACL Port Status Trunk-OVHxxx/003397212xx 91.121.129.17 N 5060 OK (39 ms) 2101/2101 192.168.123.9 D N 5060 OK (23 ms) 2100/2100 192.168.123.9 D N 5060 OK (15 ms) 1100/1100 192.168.123.6 D N 5060 OK (57 ms) 4 sip peers [Monitored: 4 online, 0 offline Unmonitored: 0 online, 0 offline] Extensions: 1100 pour un C470, 2100 et 2101 pour les 2 lignes d’un PAP2T. xxxx*CLI> sip show channels Peer User/ANR Call ID Seq (Tx/Rx) Format Hold Last Message 91.121.129.17 0494...... 544ddeeb477 00103/55756196 0x8 (alaw) No Rx: ACK 192.168.123.9 2100 2b9dc1fb-8b 00101/00102 0x8 (alaw) No Rx: ACK 2 active SIP channels Communication en cours avec le 0494…… xxxx*CLI> sip show registry Host Username Refresh State Reg.Time sip.ovh.net:5060 003397212xxx 105 Registered Wed, 02 Sep 2009 10:16:52
Rapports FreePBX
Flash Operating PanelCliquer sur l’onglet FOP. La fenêtre suivante s’ouvre. En cas de message d’erreur au lancement de la fonction FOP (dans le menu FreePBX), faire la modification suivante:
par:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/freepbx
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/freepbx>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
<Directory /var/www/freepbx/admin>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile freepbx-passwd
Require user admin
</Directory>
Nota On observe que cette modification ne marche pas sur Ubuntu 8.04 (problème de version?).
Enter a PASSWORD to perform call transfers with the Flash Operator Panel: [passw0rd]" RedirectionChez OVH, on peut obtenir des numéros supplémentaires (appelés ici SDA) que l’on peut associer à une ligne-chapeau ou compte. Le problème est de faire arriver les appels entrants au bon poste. Pour cela, trois choses à faire:
[from-trunk] ; just an alias since VoIP shouldn't be called PSTN
exten => 003397212xxxx,1,Goto(from-trunk,${CUT(CUT(SIP_HEADER(To),@,1),:,2) },1) # mettre le numéro du compte
include => from-pstn
Attention: Cette modification dans Asterisk risque d’être écrasée lors de modification apportée dans FreePBX qui est un interface graphique pilotant Asterisk. Donc, après changement introduit avec FreePBX, contrôler le fichier extensions.conf et réintroduire la modification si besoin.
Maintenant, un appel entrant vers un SDA fait sonner l’extension correspondante au lieu de sonner sur l’extension de la ligne-chapeau. Configuration des postes téléphoniquesDeux cas se présentent:
Poste Siemens type C470IPLe Gigaset C470IP de Siemens est un téléphone SIP, il est constitué d’une base reliée au réseau Internet et au réseau téléphonique analogique, et d’un combiné DECT sans fil. Il offre jusqu’à 3 communications simultanées, 2 en SIP (par le port Ethernet) et une analogique (téléphone classique). On peut y raccorder des esclaves comme le Gigaset C47H. Une même base peut alimenter jusqu’à 6 combinés , mais seulement 2 indépendants configurés comme extensions indépendantes.
Ajout d'un poste SIPEtapes à suivre pour ajouter un combiné connecté sur un C470IP:
Base C470IP avec 2 combinésSur une base C470IP, on peut associer deux combinés (en fait, jusqu’à 6 combinés). Deux solutions:
On peut alors séparer les sonneries pour respecter les appels. Paramétrer la base en conséquence:
Les deux postes ont les même fonctions, cocher l’ensemble des cases Appels Entrants. Transfert d'appel sur C470IPPour transférer un appel au cours d’une conversation:
Passerelle Linksys type PAP2TPour continuer à utiliser des postes classiques, on peut utiliser des passerelles qui sont ensuite reliées au réseau téléphonique interne, classique. Ces passerelles peuvent être gérées de la même façon que les postes SIP par Asterisk/FreePBX. L’adaptateur téléphonique Internet PAP2T de Linksys propose un service Voix sur IP (VoIP) complet par une connexion Internet haut débit. Il suffit de le brancher sur un routeur ou passerelle (port RJ45) et d’utiliser les deux ports téléphoniques standard pour le raccorder deux lignes analogiques Line1 et Line2 en RJ11 (voir photo jointe) ou à un PABX. Chaque port fonctionne indépendamment, avec un service téléphonique et des numéros de téléphone distincts, comme si on avait deux lignes!
Dans les pages Line 1 et 2, en bas à la rubrique Dial Plan, entrer:
(1x.|3xxx|0xxxxxxxxx|00x.)
Sur une Mailing List, un intervenant propose dans le Dial Plan pour la ligne Fax d’un PAP2T:
(**x|#x.|1x.|3xxx|0[1-9]xxxxxxxx|00x.) et le codec G711a Téléphone ST2030Le téléphone Thomson ST2030 est un téléphone SIP fixe avec connexion Ethernet double (entrée/sortie: le poste fait switch vers le réseau et vers un PC: on branche le ST2038 sur l’arrivée Ethernet et on repart vers son PC).
Le paramétrage se fait par l’interface Web en entrant <adresse_IP_ST2030/admin.html et en allant ensuite principalement dans la fenêtre Setup/Basic Setup.
Transfert d'appel ST2030 OVHEn cours de conversation, pour transférer la communication:
Affichage du numéroAvec Asterisk/FreePBX, on donne l’ordre de priorité des Outbound Routes, c’est ce qui détermine en fait le numéro affiché à destination. Utilisation de la télécopieDeux types de configuration à envisager: Télécopieur derrière passerelleOn peut brancher un télécopieur classique sur une des deux prises d’un PAP2T. Une ligne SIP normale suffit. Deux solutions: Serveur Asterisk/FreePBXIl faut paramétrer FreePBX et la ligne du PAP2T en conséquence:
C’est la solution qui plait davantage aux utilisateurs qui peuvent ainsi garder leurs habitudes en particulier pour envoyer des documents papier. Nota Sur le PAP2T, choisir le codec 711U au lieu du 729. Serveur OVH
http://lk.prov.voip.ovh.net/cgi-bin/pap2t_resync.cgi): Entrer l’adresse IP du PAP, l’identifiant (numéro de la ligne à 13 chiffres) et le mot de passe. Fax par AsterixIci, on utilise directement Asterisk pour la transmission des télécopies, celle-çi passe alors par le courrier électronique aussi bien pour l’envoi que pour la réception. Deux solutions: EcoFax
Thunderbird
1. Mettre en destinataire le numéro vers lequel on veut envoyer le fax [numéro de mon correspondant]@ecofax.fr, par exemple 03XXXXXXXX@ecofax.fr 2. Indiquer dans le sujet, le numéro de sa propre ligne fax : [ma ligne de fax]. 3. Insérer dans le corps de texte: - password: le mot de passe de la ligne fax - quality: normal ou high ou best 4. Joindre à cet email le fichier à émettre.
Portage des numérosOn peut demander à son fournisseur le portage des lignes SIP vers les numéros France Telecom. Normalement, celui-çi s’occupe du dégroupage correspondant auprès de France Telecom. Solution hors Asterix/FreePBXSi on ne veut pas se lancer dans un serveur Asterisk, on peut adopter des solutions plus simples à mettre en place. Exemples: Réutilisation d'un PABX compatible VOIPSi le PABX a des cartes compatibles VOIP, on peut raccorder un ou des passerelles type PAPT et brancher les lignes sortant du(des) PAP vers le PABX, selon capacité du PABX. En prenant les PAP chez OVH, on obtient ou on prend le nombre de lignes nécessaires. Ceci évite l’installation d’un serveur en remplacement du PABX et permet de réutiliser les postes de téléphone anciens. Réutilisation de téléphones classiquesPour réutiliser des téléphones non SIP, on peut les raccorder derrière des passerelles type PAP2T sans installer de serveur Asterisk et sans utilisation de PABX. Les communications arrivent directement sur les postes raccordés aux passerelles. Pour la configuration des passerelles, voir plus haut Serveur OVH. Téléphones SIPSi on relie les postes type C470 ou autre à une (ou plusieurs) Box ADSL, on a directement la téléphonie VOIP, mais sans le système de gestion des communications FreePBX. Idem, il faut prendre les lignes chez un fournisseur et paramétrer les terminaux en conséquence (voir les sifférents guides disponibles chez OVH par exemple). Les transferts doivent alors repartir sur les lignes SIP au lieu de rester en interne, ce qui suppose que le poste vers lequel transférer, dispose d’un compte spécifique mais en fait, cela ne change rien dans les communications facturées. |