Download VoIP et ToIP Asterisk La téléphonie IP d'entreprise...
VoIP et ToIP Asterisk La téléphonie IP d'entreprise [2ième édition]
Sébastien DÉON
Résumé Cette nouvelle édition du livre VoIP-ToIP Asterisk, traite de l’écosystème de la VoIP-ToIP en se basant sur Asterisk en version 1.6. Il est principalement destiné aux acteurs du domaine des systèmes, réseaux et télécoms d’entreprises : consultants, intégrateurs, techniciens, formateurs. Il constitue également un point de départ pour toute personne souhaitant découvrir et comprendre ce domaine de la Voix sur IP avec Asterisk. De part son approche conseils et retours d’expériences, il s’adresse également aux décideurs informatiques qui doivent faire évoluer leur architecture de téléphonie. Il permet de détailler toutes les étapes de la mise en place de l’autocom Open Source Asterisk, de la conception-architecture à la mise en production. La démarche progressive et pédagogique des différents chapitres permet d’aborder toutes les étapes indispensables pour mettre en production une T-VoIP autour d’Asterisk : du choix de l’architecture cible en intégrant le concept de VoIP mobile (smartphones) à la mise en oeuvre d’un call center, en passant par l’installation du serveur, le choix des passerelles opérateurs, la nécessaire préparation du réseau, la mise en place d’un plan de numérotation éprouvé, l’interconnexion de sites distants et l’utilisation potentielle d’outils supplémentaires permettant de gérer les faxs, les appels GSM, ... pour enrichir les fonctionnalités du PBX et apporter une véritable valeur ajoutée à l’entreprise. Chaque chapitre est pensé pour permettre une implémentation rapide des concepts : de la théorie à la pratique ! Tous les sujets sont présentés avec de nombreux exemples pratiques, tous testés en environnement de production. Des connaissances sur l’administration d’un système Linux et de routeurs Cisco sont souhaitables pour tirer le meilleur profit de cet ouvrage. [les chapitres du livre] Avant-propos – L’écosystème de la VoIP – Stratégie d’architectures VoIP – Installation d’un serveur Asterisk – Les passerelles opérateurs – Préparation du réseau – Conception du plan de numérotation – Amélioration du plan de numérotation – Entreprise multisites – Les outils complémentaires – Applications connexes – Implémentation d’un centre d’appels – Applications périphériques tiers – Annexe A : Plan de numérotation commenté – Annexe B : Liste des applications Asterisk – Annexe C : Principaux fichiers de configuration – Annexe D : Bibliographie
L'auteur Sébastien DEON est Directeur Technique Adjoint au service Recherche et Développement de la SSII Pharmagest Inter@active. Expert dans les domaines de l'architecture d'infrastructure système, réseaux et télécom depuis plus de 15 ans, il travaille régulièrement sur des projets de conception et d'intégration d'architecture Open Source (téléphonie Asterisk, messagerie Zimbra, ged Alfresco, portail Liferay, web-conférences Dimdim, bpm...) à destination de plusieurs milliers de postes et d'accès clients en France et en Europe. Consultant et créateur de ZedL, site de publication d'ebooks spécialisés (ebooks.zedl.fr), il est également l'auteur de Zimbra, Messagerie collaborative d'entreprise Open Source aux Editions ENI.
Ce livre numérique a été conçu et est diffusé dans le respect des droits d’auteur. Toutes les marques citées ont été déposées par leur éditeur respectif. La loi du 11 Mars 1957 n’autorisant aux termes des alinéas 2 et 3 de l’article 41, d’une part, que les “copies ou reproductions strictement réservées à l’usage privé du copiste et non destinées à une utilisation collective”, et, d’autre part, que les analyses et les courtes citations dans un but d’exemple et d’illustration, “toute représentation ou reproduction intégrale, ou partielle, faite sans le consentement de l’auteur ou de ses ayants droit ou ayant cause, est illicite” (alinéa 1er de l’article 40). Cette représentation ou reproduction, par quelque procédé que ce soit, constituerait donc une contrefaçon sanctionnée par les articles 425 et suivants du Code Pénal. Copyright Editions ENI Ce livre numérique intègre plusieurs mesures de protection dont un marquage lié à votre identifiant visible sur les principales images.
© ENI Editions - All rigths reserved - educ hafa
- 1-
Avantpropos Ce livre est destiné aux acteurs du domaine des systèmes, réseaux et télécoms d’entreprises, ainsi qu’à toute personne souhaitant découvrir et comprendre le domaine de la Voix sur IP. Il permet d’aborder la mise en œ uvre et l’installation de l’autocom Open Source Asterisk. Il s’adresse également aux décideurs informatiques qui doivent faire évoluer leur architecture de téléphonie. La démarche progressive des différents chapitres permet d’identifier tous les points à traiter avant une mise en production d’un système. ●
●
Les chapitres suivants nécessitent des compétences Linux : ●
Installation d’un serveur Asterisk
●
Conception du plan de numérotation
●
Amélioration du plan de numérotation
●
Entreprise multisites
●
Les outils complémentaires
●
Applications connexes
●
Implémentation d’un centre d’appels
●
Outils périphériques tiers
Le chapitre Préparation du réseau nécessite des compétences Cisco.
L’écosystème de la VoIP L’objectif de ce chapitre est de vous aider à : ●
connaître les termes les plus utilisés de la VoIP ;
●
comprendre le concept de TVoIP ;
●
connaître les composants matériels et logiciels, notamment les cartes Digium ;
●
comprendre le fonctionnement des protocoles VoIP, notamment le protocole SIP ;
●
connaître le rôle des codecs et faire le bon choix ;
●
comprendre les enjeux de la qualité de service.
Stratégie d’architectures VoIP L’objectif de ce chapitre est de vous aider à : ●
faire le bon choix d’architecture, en tenant compte de l’existant ;
●
connaître les différentes étapes d’un projet VoIP ;
●
expliquer les composants du retour sur investissements.
Installation d’un serveur Asterisk
© ENI Editions - All rigths reserved - educ hafa
- 1-
L’objectif de ce chapitre est de vous aider à : ●
installer un serveur Asterisk ;
●
installer des téléphones SIP et des softphones ;
●
mettre en relation des postes SIP en interne et avec le monde extérieur.
Les passerelles opérateurs L’objectif de ce chapitre est de vous aider à : ●
comprendre les technologies traditionnelles et futures ;
●
connaître les mécanismes de trunking SIP ;
●
avoir un panorama des offres du marché ;
●
connaître les cartes de communication Digium ;
●
connaître un routeur VoIP Cisco.
Préparation du réseau L’objectif de ce chapitre est de vous aider à : ●
segmenter un LAN ;
●
mettre en œ uvre les VLANs sur des switchs et routeurs Cisco ;
●
choisir une stratégie pour la mise en place de la QoS.
Conception du plan de numérotation L’objectif de ce chapitre est de vous aider à : ●
comprendre le fonctionnement d’un plan de numérotation ;
●
mettre en place un plan de numérotation avec les fichiers sip.conf et extensions.conf ;
●
mettre en place un système de messagerie unifiée avec voicemail.conf.
Amélioration du plan de numérotation L’objectif de ce chapitre est de vous aider à :
- 2-
●
améliorer l’écriture du plan de numérotation avec des macros ;
●
découvrir et utiliser des fonctions avancées ;
●
mettre en place un système de conférence avec MeetMe ;
●
utiliser de la vidéo avec XLite ;
●
utiliser la base de données AstDB et Realtime/MySQL.
© ENI Editions - All rigths reserved - educ hafa
Entreprise multisites L’objectif de ce chapitre est de vous aider à : ●
réaliser une interconnexion entre deux serveurs Asterisk ;
●
comprendre le fonctionnement du protocole IAX ;
●
interconnecter deux PBX hétéronèges : Asterik et Cisco Call Manager.
Les outils complémentaires L’objectif de ce chapitre est de vous aider à : ●
mettre en place un outil de statistiques et de suivi des appels ;
●
utiliser des graphiques de management ;
●
intégrer la gestion de fax ;
●
utiliser l’AGI (requis Gateway Interface).
Applications connexes L’objectif de chapitre est de vous aider à : ●
comprendre le fonctionnement de l’Asterisk Manager ;
●
installer le synthétiseur vocal Festival ;
●
mettre en place un IVR ;
●
déployer une fonction de clicktodial.
Implémentation d’un centre d’appels L’objectif de ce chapitre est de vous aider à : ●
comprendre les besoins fonctionnels d’un centre d’appel ;
●
mettre en œ uvre une gestion de files d’attente ;
●
monitorer le centre d’appels.
Outils périphériques tiers L’objectif de ce chapitre est de vous aider à ●
découvrir la passerelle GSM Quescom ;
●
comprendre l’utilisation d’un outil de création graphique de dialplan : Visual Dialplan ;
●
mettre en place un serveur de fax avec Hylafax ;
●
analyser les liens avec Zimbra, SugarCRM.
Annexe A : Plan de numérotation commenté © ENI Editions - All rigths reserved - educ hafa
- 3-
Annexe B : Liste des applications Asterisk Annexe C : Principaux fichiers de configuration Annexe D : Bibliographie
- 4-
© ENI Editions - All rigths reserved - educ hafa
Introduction Auparavant, la fonction informatique et la fonction téléphonie étaient bien séparées et il y avait bien deux types d’acteurs : les informaticiens et les téléphonistes. Les réseaux informatiques et les réseaux téléphoniques étaient d’ailleurs distincts. La fusion des deux mondes, qui s’est opérée depuis environ 5 ans et qui va se poursuivre, a considérablement bouleversé le paysage de la téléphonie d’entreprise et du particulier. Le métier de téléphoniste a disparu (quelle entreprise dispose aujourd’hui de postes dédiés à ce métier ?) au profit d’une composante «Téléphonie sur IP » qui nécessite, avant tout, de fortes compétences en systèmes, réseaux IP et télécoms. Cela dit, la voix sur IP est un domaine complexe comprenant beaucoup de concepts indispensables à connaître, avant de vouloir installer son propre système de téléphonie basé sur Asterisk. De l’aveu de ses concepteurs, “ Asterisk n’est pas un système simple à configurer ”.
© ENI Editions - All rigths reserved - educ hafa
- 1-
Terminologie générale : le concept de TVoIP La TVoIP (Téléphonie et Voix sur IP) est composé de la VoIP et de la ToIP. * La VoIP (Voice over IP) concerne le cœ ur du système de téléphonie, qui comprend tous les éléments assurant le transport de la voix : autocoms IP, passerelles de communication, réseaux opérateurs, communication intersites, protocole de communication. La VoIP répond ainsi à la question de "que se passetil après avoir composé un numéro de téléphone ? ". Il est également important d’y associer la partie Gateway ou Passerelle qui permet d’effectuer l’évasion des flux téléphoniques vers le réseau public (appels vers les numéros fixes et appels vers les numéros mobiles). Nous verrons plus loin dans ce livre le traitement spécial des appels vers les mobiles via une passerelle spécifique. * La ToIP (Telephony over IP) concerne uniquement la partie correspondante aux téléphones IP. Les softphones ou logiciels téléphoniques, qui s’installent sur un PC et qui "émulent" un téléphone IP, rentrent tout à fait dans cette catégorie. Depuis l’avènement de l’iPhone et autres smartphones, il faut tenir compte également de la possibilité d’utiliser des softphones depuis ce type d’équipement. Pour être complet, il convient de rajouter le domaine de la FoIP (Fax over IP) qui concerne la possibilité d’envoyer et de recevoir des fax via les réseaux de données IP, en comparaison aux systèmes analogiques traditionnels. Peu commun il y a encore deux ou trois ans et basé alors sur des logiciels propriétaires et des cartes modems physiques, le fax sur IP est en cours de banalisation aujourd’hui. À noter que ces deux concepts sont indissociables puisqu’il paraît difficile de faire de la ToIP sans VoIP (un téléphone IP va toujours s’authentifier sur un autocom), et vice versa, un cœ ur de réseau en VoIP est inutilisable sans combinés téléphoniques. De même, il est difficilement concevable d’envisager un système de FoIP sans avoir mis en place de mécanismes de routage et de passerelles VoIP. Des clients (téléphones IP, softphones) sont rattachés à un serveur (Asterisk) qui leur attribue des numéros internes ou externes (SDA pour Sélection Directe à l’Arrivée). Ce serveur est connecté à une passerelle, via une carte spécifique, pour la communication entrante et sortante avec le monde extérieur (appelé le réseau commuté). Les fax entrants sont gérés par un routeur qui aiguille les fax vers un serveur de fax alors que les fax sortants sont émis depuis la messagerie. Les appels vers les mobiles sont routés vers une passerelle dédiée.
Tous les autres éléments entrent dans le cadre de la téléphonie traditionnelle (postes analogiques, postes numériques, autocoms non IP, lignes RTC, lignes T0/T2). Les technologies T0/T2 sont abordées au chapitre Les passerelles opérateurs. Il est bien évidemment possible de conserver des terminaux analogiques (téléphones et fax) et de les coupler au réseau IP via des boîtiers de conversion appelés adaptateurs ATA qui sont, en général, peu coûteux.
© ENI Editions - All rigths reserved - educ hafa
- 1-
Les composants matériels et logiciels 1. Matériels Pour réaliser une infrastructure de téléphonie, il faut avoir recours à de nombreux éléments matériels, parfois incompatibles ensembles. La prudence s’impose donc avant d’effectuer les investissements nécessaires.
a. Autocom Il s’agit en fait d’un ordinateur ou plus exactement d’un serveur (Dell, HP, IBM, Supermicro…) qui va héberger logiciel (Asterisk ou autre) et matériel (système d’exploitation, mémoire, carte de communication VoIP, carte réseau, disque dur, processeur...). Asterisk fonctionne sur la plupart des versions de Linux (Redhat, Centos, Mandriva, Debian...) mais également sur Windows (voir http://www.asteriskwin32.com ou http://www.willvoice.net ) mais il faut reconnaître que le logiciel, dans ce cas, évolue moins vite que sur les versions Linux. Dans le cadre de petite structure (moins de 5 postes), pour des raisons de coûts, il est possible d’installer Asterisk sur un PC même si cela est déconseillé (manque de redondance). Une agence de 15 postes, par exemple, exigera un serveur avec 1 Go de mémoire. Attention, certains matériels ne info.org/wiki/view/Asterisk+hardware).
sont
pas
compatibles
Asterisk
(voir
http://www.voip
b. Terminaux IP Il s’agit ici de téléphones IP (Aastra, Polycom, Thomson, Cisco, Snom, Swissvoice, Gandstream, Linkys, Siemens...) ou softphones (ZoiperIdefisk, XLite, Brio, Skype, Ekiga...). La plupart des terminaux IP du marché, utilisant le protocole de communication SIP, sont compatibles Asterisk. Le prix d’un téléphone IP varie entre 50 et 500 euros ; les téléphones de bon rapport qualitéprix de type Thomson SpeedTouch ST2030 ou Aastra 55i coûtent environ une centaine d’euros.
c. Routeurs et switchs Les routeurs sont des équipements (Cisco, 3com...) permettant de faire communiquer des réseaux différents. Par exemple, pour qu’un réseau adressé en 192.168.1.0/24 puisse communiquer avec un réseau adressé en 10.10.0.0/16, il faut un équipement de routage ayant une interface sur chaque réseau. Les routeurs sont indispensables pour acheminer la voix sur les réseaux et peuvent être combinés avec des switchs pour segmenter le LAN en plusieurs LANs virtuels, les VLANs (Virtual LANs), afin de séparer les paquets de données des paquets voix. Un routeur agit au niveau 3 (routage) alors qu’un switch agit au niveau 2 (VLAN).
aisé.
Certains modèles d’équipement sont routeurs et switchs à la fois (CISCO 3560, 3750, 3COM 4500…) ; ils sont souvent plus onéreux à l’achat que les deux séparément mais permettent une analyse du réseau plus
Dans certaines petites structures, il sera possible de se passer de mécanismes de VLANs pour des raisons de coûts (économie de temps de paramétrage, économie sur l’achat de switchs spécifiques…), bien que cela soit fortement déconseillé. Le mécanisme de VLAN est décrit au chapitre Préparation du réseau.
d. Cartes de communication Les cartes de communication permettent de passer du monde IP au monde RTC (Réseau Téléphonique Commuté). Certaines sociétés spécialisées (Digium, Junghams, Sangoma, Atcom, beroNet, Dialogic, Eicon, open Vox…) fabriquent ce type de cartes. Ces cartes sont directement intégrées dans le serveur autocom. Exemple de cartes commercialisées par la société Digium Type de carte
Utilisation
Schéma
© ENI Editions - All rigths reserved - educ hafa
- 1-
TDM400P
Carte analogique 4 interfaces modulaires aux choix pour des téléphones analogiques (FXS) ou des lignes téléphoniques (FXO)
B410P
Carte numérique 4 ports T0 (jusqu’à 8 canaux en simultané) Interfaces BRI
TE120P
carte numérique 1 port T2 (jusqu’à 30 canaux en simultané)
TE207P
carte numérique 2 ports T2 (jusqu’à 60 canaux en simultané)
multi opérateurs antiécho hardware (module Octasis) Chez Cisco, les cartes T0 et/ou T2 peuvent directement être installées dans les routeurs VoIP adéquates. Si la carte est installée dans un routeur (et non dans un serveur Asterisk), elle permet de libérer le serveur des tâches de gestion de la conversion IP/réseau commuté. Ce dernier étant alors plus disponible pour traiter le routage des appels. Le choix stratégique d’utiliser un routeur VoIP permet de le positionner n’importe où dans le réseau et ainsi de le dissocier de l’autocom.
e. Boîtiers externes Dans certains cas de figures, notamment pour les petites structures où la notion financière est un élément déterminant, il peut être opportun de ne pas intégrer de carte Digium dans le serveur IPBX. Par exemple, une carte B410P coûte environ 500 euros pour 4 ports T0. Or, si le besoin n’est de disposer que d’une interface T0, il est judicieux de placer un boîtier externalisé de conversion IP / T0 de type Patton SmartNode 4554 (www.patton.com), Mediatrix (www.media5corp.com) ou autres Audiocodes (www.audiocodes.com). Les boîtiers Patton sont déclinés par exemple selon plusieurs formats : ●
Passerelle 1 T0 : environ 250 euros
●
Passerelle 2 T0 : environ 400 euros
●
Passerelle 1 T2 : environ 2000 euros
●
Passerelle Patton 2T2 : environ 3000 euros
Nous observons donc que, selon le cas de figure, il faut adapter les achats : Besoin
- 2-
Matériel
Prix
1 T0
Patton 1 T0
250 euros
2 T0
Patton 2 T0
400 euros
4 T0
Digium B410P
500 euros
© ENI Editions - All rigths reserved - educ hafa
1 T2
Digium TE120P
500 euros
2 T2
Digium TE207P
1000 euros
Nous avons également un autre raisonnement possible qui ne tient pas compte uniquement du prix faciale du matériel de communication mais plus d’un choix d’architecture : si le choix est de ne pas mettre de carte à l’intérieur des serveurs, ce qui simplifie l’installation et la maintenance (rien de plus désagréable que de devoir arrêter un serveur en production pour changer une carte !), alors il faut privilégier les solutions de types boîtiers ou routeurs Cisco où l’interconnexion avec l’autocom se fait en IP. Exemple de schéma avec carte intégrée au serveur :
Exemple de schéma avec boîtier externalisé :
f. Box "maison" Il est possible de construire sa propre box en approvisionnant un équipement adéquat de type miniPC chez Lexcom par exemple (www.lex.com.tw) comme la twister où nous intégrerons une carte Digium, un disque dur, une compact Flash, un OS Linux, Asterisk. La twister présente l’avantage d’être solide et robuste. Il est possible de coupler cette box avec d’autres fonctionnalités comme un service de mails, un service de fax, un service d’antivirus, un service de stockage de documents, un service de vidéosurveillance… Attention toutefois à ne pas trop concentrer de services sur un seul équipement ou alors prévoir un système de secours. Exemple : Twister S CV763A4R10C (environ 500 euros), hors carte Digium
© ENI Editions - All rigths reserved - educ hafa
- 3-
2. Logiciels Ce sont les produits qui stockent la configuration des utilisateurs, le plan de numérotation (la logique de routage des appels), les messageries vocales... et qui réalisent le routage des appels. Parmi cette catégorie, nous trouvons de nombreux produits parmi lesquels (liste bien entendu non exhaustive) : Autocoms propriétaires ●
OmniPCX (AlcatelLucent).
●
NexSpan (Aastra Matra, ex EADS télécoms).
●
Call Manager (Cisco).
●
Media Gateway (Avaya).
●
Autres constructeurs : Ericsson, Mitel, 3Com, Nortel.
Autocoms Open Source ●
●
●
●
Asterisk. SipX (www.sipfoundry.org) : beaucoup de fonctionnalités autour des communications unifiées (conférences, trunk sip, IVR, gestion de présence, vidéo…). Elastix (www.elastix.org) : appliance readytouse. My SIPSwitch (www.mysipswitch.com) et son successeur Sipsorcery (sipsorcery.codeplex.com) en version bêta (février 2010).
Opérateurs télécoms ●
Orange.
●
SFR (ex 9 Telecom/Cegetel).
●
Autres opérateurs : Bouygues, Free, Completel, Altitude Telecom, Futur Telecom...
●
- 4-
Autres opérateurs alternatifs : toute entreprise peut monter un business d’opérateur télécom et de passerelles voix, en partant d’offres des grands opérateurs en marque blanche ou en construisant ses propres « briques ». La demande du statut d’opérateur est à soumettre à l’ARCEP (Autorité de Régulation des Télécoms). Le statut n’est pas compliqué à obtenir mais il faut savoir que cela nécessite une tâche administrative à budgeter ainsi qu’une taxe qui est fonction du chiffre d’affaires. Voir les modalités sur http://www.arcep.fr.
© ENI Editions - All rigths reserved - educ hafa
a. AlcatelLucent Le constructeur détient 50 % de part de marché en France. Sa gamme d’autocom entreprise est déclinée en deux modèles : ●
●
OmniPCX Enterprise (OXE) est une solution pour moyennes entreprises et grands comptes permettant, en plus des fonctions classiques de traitement des appels, des fonctions de messagerie, d’annuaire et de CTI. Les téléphones sont propriétaires (ils ne fonctionnent qu’avec la gamme AlcatelLucent). Le nombre d’utilisateurs peut évoluer jusqu’à 50 000 utilisateurs en configuration réseau. OmniPCX Office (OXO) est un serveur préconfiguré pour petites et moyennes entreprises ; il peut interconnecter environ 200 utilisateurs.
Source : http://www.alcatellucent.com/wps/portal
b. AastraMatra (EADS Telecom) Le constructeur détient 30 % du marché français. Sa gamme d’entreprise NeXspan est déclinée en trois modèles C, S et L. Seuls les derniers modèles sont compatibles avec le protocole de communication SIP. Le NeXspan C (non SIP) permet de gérer la téléphonie jusqu’à 8 utilisateurs et 60 boîtes vocales. Il dispose d’un serveur vocal interactif et permet d’interconnecter des terminaux numériques, analogiques, DECT, fax et numéris. Le NeXspan S permet de gérer jusqu’à 112 utilisateurs TDM (Time Division Multiplexing est une technique de multiplexage qui permet de fusionner des canaux à faible débit en un seul à haut débit. Ce terme est utilisé pour faire référence à la téléphonie traditionnelle par rapport à la ToIP) et 250 utilisateurs IP. Il tient une charge de 2000 appels/heure pour 240 boîtes vocales ; en outre, il est également compatible SIP et WIFI. Le NeXspan L permet de gérer jusqu’à 640 utilisateurs TDM et 500 utilisateurs IP. Il tient une charge de 4500 appels/heure pour 6000 boîtes vocales possibles. D’autres modèles sont encore plus puissants (NeXspan D, NeXspan 500). Source : http://www.aastra.fr/cps/rde/xchg/07/
c. Cisco Le Cisco Call Manager (CCM) est l’autocom IP/SIP de Cisco. La version s’installe sur un serveur Windows et permet d’interconnecter jusqu’à 30 000 utilisateurs IP. Une puissante interface graphique permet de manager l’ensemble du système. Les téléphones SIP compatibles sont nombreux parmi les modèles Cisco : 7905G, 7912G, 7940G par exemple. Un mécanisme de contrôle d’admission des appels (CAC) permet le maintien de la QoS (Quality Of Services) sur les liens WAN (Wan Area Network). Les appels sont transmis directement sur le réseau RTC en cas de panne du lien WAN. Le CCM est généralement couplé avec des routeurs Cisco VoIP disposant de carte de communication. Source : http://www.cisco.com/web/FR/products/ip_tel/ip_tel_home.html
d. Avaya Avaya est présent sur le marché français avec ses Media Server S8300, S8400, S8500, S8700 (gestion des appels entre postes IP) et ses Media Gateway G250, G350, G430, G450, G650, IG550. Source : http://www.avaya.fr
e. Asterisk Principal logiciel autocom Open Source, Asterisk a été développé en langage C sous Linux par Marc Spencer, fondateur de la société Digium. La version actuelle (septembre 2010) est la V1.6.2.13. La version 1.8.X est annoncée en release pour la fin de l’année 2010. La version Asterisk 1.8.0beta 5 est disponible sur le site www.asterisk.org. Sources : voir Annexe Bibliographie Plusieurs entreprises ont effectué des développements autour du produit d’origine et ainsi packagé de véritables produits commerciaux.
© ENI Editions - All rigths reserved - educ hafa
- 5-
●
Digium avec son ABE (Asterisk Business Edition) L’ABE (environ 1000 euros en une seule fois + maintenance annuelle) est une distribution supportée par Digium donc elle permet d’obtenir des garanties en terme de support, de fiabilité. L’installation est contraignante car il faut suivre les prérequis en terme de distribution Linux. Source : http://www.digium.com
●
Proformatique avec son appliance Xivo Xivo (anagramme de Voix) concerne plusieurs appliances packagées par Proformatique : Xivo Office pour 25 utilisateurs, Xivo Business pour 250 utilisateurs et plus et Xivo Corporate pour 1000 utilisateurs et plus. Après l’installation, l’idée est d’administrer Asterisk via une interface graphique. Source : http://www.xivo.fr
●
IPex Telecom pour les solutions Centrex, business trunking et full service (portabilité, 08AB, …) IPex fournit des solutions de téléphonie, de data, de surf internet et de convergence. Source : http://www.ipex.fr
●
Wispe pour sa solution Fonisk Wispe est un intégrateur lyonnais et éditeur de la solution Fonisk, appliance disposant d’une GUI. Fonisk est multiopérateur et multiéquipements. Elle est déclinée en plusieurs versions : ●
Fonisk 50 pour 20 communications simultanées.
●
Fonisk 100 pour 50 communications simultanées.
●
Fonisk 100 convient à une société comprenant de 100 à 1000 postes. Le serveur (Dell R410 1u) est redondé (alimentation, disques). Le système tourne sous Fedora Core 11 avec un Asterisk 1.6 (dernière version à ce jour).
●
Fonisk 100AA pour 200 communications simultanées.
●
Fonisk 100ACS pour 1000 communications simultanées et plus.
Wispe est également reconnu pour sa compétence en matière de formation au dCAP (Digium Certified Asterisk Professional), la certification Asterisk reconnue dans le monde de l’entreprise. Le passage de l’examen coûte environ 200 €. Source : http://www.wispe.com ●
EyePea pour sa polyvalence dans le monde de la VoIP EyePea est un intégrateur belge qui a pour originalité d’avoir des process de production, solides, venant du monde de l’industrie. Elle développe son expertise autour de nombreux produits : Asterisk bien sûr, mais aussi la GUI Scopserv (www.scopserv.com), la solution canadienne de call center Aheeva CCS (www.aheeva.com), la solution d’enregistrement de VoIP Orecx (www.orecx.com), la solution espagnole i6Net d’IVR (Interactive Video Response) , d’IVVR (Interactive Voice and Video Response) et de convergence téléphonie/vidéo/3G (www.i6net.com) et la solution de Flashtosip Intellivic permettant la convergence SIP/Web (www.intellivic.com). Source : http://www.eyepea.eu
f. SipX SipX, uniquement disponible sous Linux, est une alternative libre à Asterisk qui permet de disposer d’un serveur
- 6-
© ENI Editions - All rigths reserved - educ hafa
iPBX, d’un serveur de messagerie vocale, d’un outil d’administration en mode web, de softphones IP. La société Pinget est le principal sponsor de ce projet. Sources : http://www.sipfoundry.org/sipXpbx/, http://www.pingtel.com/
g. Orange L’opérateur est présent grâce la distribution de différents modèles : ●
Gamme Diatonis série 2A, ediatonis S, M, L, SX/XSDECT, Easy (Alcatel)
●
Cisco Call Manager (Cisco)
●
NeXspan (Aastra Matra)
Source : http://www.orange.fr Orange commercialise également deux solutions : ●
BIC (Business Internet Centrex) Il s’agit d’une solution de type Centrex qui permet de fournir de l’internet et de la VoIP en mode externalisé. Les téléphones sont loués.
●
BIV (Business Internet Voix) Il s’agit d’une solution alternative à BIC pour les entreprises disposant déjà d’un autocom et de téléphones : fourniture d’un flux internet et d’un flux entrant/sortant de téléphonie (communication illimitée avec les fixes France) avec tarifs avantageux vers les mobiles et international. BIV est bâti autour d’une Business livebox, installée en local et managée par Orange.
Exemple de types de BIV (prix non contractuels, source orange.fr) : BIV 400 / ADSL
Business Internet Voix et Internet pour 2T0 (4 Canaux voix) + ADSL 8M max
Abonnement : 186 ht/mois Frais d’Accès au Service : 250€ ht
BIV 2000 / SDSL 2 Mb/s
Business Internet Voix et Internet BIV 2000 pour 20 canaux voix sur lien SDSL 2MB
Abonnement : 916 ht/mois Frais d’Accès au Service : 750€ ht
L’offre étendue de BIV présente l’avantage de pouvoir répondre à presque n’importe quel type de structure. Notons toutefois la comparaison avec le prix d’un ADSL seul livebox (environ 30 euros/mois) et d’un abonnement 2T0 (environ 30 euros/mois) auquel il faut rajouter le coût des communications. BIV est "bridé" en termes de canaux de communication et ne sait monter jusqu’à 30 canaux comme une T2 classique.
h. 9 Telecom Les solutions sont exclusivement IP et concernent les petites structures. Voir le chapitre Les passerelles opérateurs.
© ENI Editions - All rigths reserved - educ hafa
- 7-
Les protocoles de la VoIP Au sens définition, un protocole est une formalisation standardisée permettant la communication entre plusieurs processus ; autrement dit, c’est un ensemble de procédures et de règles qui servent à l’émission et à la réception des données sur un réseau. Dans le milieu des télécoms et réseaux, chaque applicatif a son protocole. Le plus célèbre et le plus utilisé est le protocole TCP/IP (Transmission Control Protocol/ Internet Protocol). Toute la difficulté de la VoIP est de transformer un flux voix de type audio en numérique (découpage en paquets de l’information) afin de le faire transiter sur les réseaux IP et d’effectuer l’opération inverse dans le bon ordre afin que le correspondant comprenne parfaitement le flux voix audio, et ceci en temps réel (moins de 300 ms). La notion de temps réel est une contrainte que le transport des flux de données classiques (protocoles SMTP, FTP, HTTP...) n’a pas à gérer.
1. SIP Le protocole SIP (Session Initiation Protocol) est un protocole de transport qui date de 1996, établi par l’IETF (Internet Engineering Task Force). Il est décrit dans le RFC 3261 (Request For Comments). Il fonctionne en mode client/serveur : le téléphone (client) envoie des requêtes au serveur SIP (autocom) ou vers d’autres clients SIP. Ces requêtes sont en fait des paquets de données qui contiennent des informations à destination du serveur SIP. Depuis 2004, SIP s’est imposé comme le protocole de choix en matière de VoIP en raison de sa simplicité et de sa disponibilité gratuite ; il est d’ailleurs implémenté dans la majorité des matériels et logiciels fournis à ce jour par les constructeurs et éditeurs. Les trois composants de SIP SIP est basé sur un User Agent (UA), un registrar et un proxy. ●
●
●
Le User Agent est le « client » tels que les téléphones SIP, les softphones, les passerelles SIP. Les UAs s’enregistrent auprès d’un registrar mais il est possible que deux UAs établissent une session ensemble. Le Registrar représente le serveur SIP, responsable de la mise en relation des sessions SIP à partir des requêtes émises par les UAs pour déterminer leur emplacement. Une requête (REGISTER) contient donc l’adresse IP de l’UA et une URI (Uniform Resource Identifier) de type «
[email protected] ». Le Proxy représente également un serveur SIP mais il va servir d’intermédiaire entre deux UAs qui ne connaissent pas leur adresse IP. Le Proxy est capable de demander au Registrar de lui fournir les couples (adresse IP / URI).
SIP est issu du monde de l’Internet, contrairement à d’autres protocoles issus du monde traditionnel de la téléphonie, ce qui en fait un gage de meilleure intégration avec le monde IT actuel (web 2.0, mobile, messagerie instantanée…).
a. Le fonctionnement de SIP Étant donné que le port standard de SIP est UDP 5060, il est possible de déterminer les échanges entre un client et un serveur à l’aide d’une trace Ethereal ou tcpdump (logiciels de capture de trames). Dans l’exemple suivant, un client SIP dont l’adresse IP est 192.168.1.12 tente de dialoguer avec le serveur SIP dont l’adresse IP est 192.168.1.50 : N° Source Destination 1 192.168.1.12 192.168.1.50 sip:192.168.1.50 2 192.168.1.50 192.168.1.12 3 192.168.1.50 192.168.1.12 4 192.168.1.50 192.168.1.12 sip:
[email protected]:5060 5 192.168.1.12 192.168.1.50
Protocole SIP
Désignation Request:REGISTER
SIP SIP SIP
Status : 100 Trying Status : 200 Ok Request:NOTIFY
SIP
Status : 200 Ok
1 : le client tente de s’enregistrer auprès du serveur ; il lui envoie une requête (REGISTER).
© ENI Editions - All rigths reserved - educ hafa
- 1-
2 : le serveur répond 100 Trying (la requête a bien été reçu et est en cours de traitement). 3 : le serveur répond 200 Ok. L’enregistrement du client au serveur s’est correctement réalisé. 4 : le serveur demande (NOTIFY) alors au client le nom de l’utilisateur 7114. 5 : le client répond 200 Ok, s’il est configuré en tant qu’utilisateur 7114.
b. Les codes retour de SIP Il existe six types de réponses aux requêtes envoyées : ●
1xx = Information requête reçue par le destinataire et traitement en cours (180 = ’en train de sonner’, 100 =’trying’).
●
2xx = Succès (200 =’OK’, 202=’acceptée’).
●
3xx = Redirection Attente d’une autre action avant la validation de la requête.
●
4xx = Erreur client requête contenant une syntaxe erronée ou ne pouvant pas être traitée par le serveur (404 = ’Not found’ = ’non trouvé’, 401 = ’Unauthorized’, 407 = ’Proxy Authentification Required’, 408 = ’Registration error Request Timeout’).
●
5xx = Erreur serveur requête correcte mais problème de traitement de la part du serveur.
●
6xx = Echec général requête ne pouvant être traitée par aucun serveur.
c. L’adressage de SIP SIP utilise les URL (Uniform Ressource Locators) dont le format est le suivant : Sip :u@h avec u=nom d’utilisateur et h=nom d’hôte (domaine ou adresse IP) Exemple d’adresse SIP ●
sip:
[email protected]
●
sip:lou@sipserveur.societe.com
●
sip:7114@sipserveur.societe.com
Exemple de mise en relation de 2 terminaux SIP Nous supposons que les utilisateurs Eric et Sylvie sont déjà correctement enregistrés sur le serveur.
- 2-
© ENI Editions - All rigths reserved - educ hafa
d. Les requêtes SIP Il existe plusieurs types de requêtes entre un client et un serveur ou entre deux clients : ●
REGISTER : le client tente de s’enregistrer auprès du serveur SIP.
●
INVITE : le client demande l’établissement d’une session vers un autre client.
●
REINVITE : le destinataire souhaite une renégociation des paramètres (codecs...).
●
ACK : requête de confirmation de la part de l’émetteur vers le destinataire pour lui dire qu’il a bien reçu la requête de succès 200 OK à sa demande d’INVITE.
●
BYE : en cas de terminaison de session.
●
CANCEL : en cas d’annulation d’une requête.
e. La signalisation SDP Le protocole SDP (Session Description Protocol) est un format de description et d’initialisation des paramètres d’une session multimédia (IETF RFC 2327 Avril 1998) et concerne la signalisation de SIP. Des informations SDP sont injectées dans chaque paquet SIP (afin de préciser les caractéristiques des terminaux, autrement dit les codecs supportés).
f. Le problème du nattage avec SIP Le protocole SIP connaît des difficultés à traverser les équipements équipés de mécanisme de NAT (Network Adresse Translation) comme les firewalls et les routeurs. En effet, SIP encapsule toutes les données comprenant les adresses IP, alors que le NAT a besoin de ces informations afin de faire passer les paquets. Les communications sont alors bloquées par le firewall. Mais Asterisk dispose d’un contournement avec le paramètre nat=yes (dans le fichier /etc/asterisk/sip.conf) à indiquer pour un client SIP devant fonctionner derrière du NAT. Cela permet à Asterisk d’ignorer les informations contenues dans les entêtes SIP et SDP.
© ENI Editions - All rigths reserved - educ hafa
- 3-
Si le projet Open Source de messagerie instantanée Jabber (www.jabber.org) avait retenu SIP comme protocole de VoIP, il est fort probable que, dans un souci de meilleure gestion du NAT, beaucoup de softphones auraient été remplacés par des clients Jabber. Mais Jabber a retenu Jingle comme protocole de communication.
2. IAX Le protocole InterAsterisk eXchange (prononcé "X") a été mis au point par la société Digium uniquement pour permettre à plusieurs serveurs Asterisk de communiquer entre eux. IAX est un protocole peertopeer de signalisation et de transport de la voix. IAX2 utilise un port UDP unique (port 4569) pour la signalisation (flux de contrôle) et les données (flux RTP) (alors que IAX1 utilisait le port 5036). IAX est apparu après SIP et est en train de devenir une véritable alternative, au point que bon nombre de constructeurs et opérateurs l’ont implémenté dans leurs équipements. Il permet d’économiser de la bande passante en agrégeant plusieurs sessions dans un seul flux de données. Enfin, il permet de fonctionner parfaitement derrière du NAT. Exemple d’établissement d’une communication IAX entre deux clients Client IAX Clients IAX ==> message NEW ==> Le chapitre Entreprise multisites présente en détail les fichiers de configuration du trunking IAX.
3. RTP/RTCP Le protocole RTP (RealTime Protocol), mis au point par l’IETF en 1996 (RFC 1890), permet de transmettre tout type de données soumises aux contraintes de temps réel (audio et vidéo en particulier) de la façon suivante : ●
●
●
identification du contenu de l’information (audio, vidéo…) ; ajout de flags temporels (timestamp) et de numéros séquentiels aux paquets ; ces informations vont servir à la reconstitution des paquets à l’arrivée et notamment à détecter si des paquets se sont perdus ; contrôle du contenu à l’arrivée.
RTP fonctionne sur UDP, en unicast (point à point) ou en multicast (multipoint). Il n’utilise pas de port statique mais le port pair d’un couple de ports ; l’autre port impair, immédiatement supérieur, est utilisé par le protocole RTCP (Real Time Transfer Control Protocol) qui est un protocole de contrôle des flux RTP. Chaque applicatif média est transporté dans une session RTP distincte. SIP/SDP s’occupe de la signalisation et de la mise en relation de deux terminaux SIP, alors que c’est RTP qui transporte la voix.
4. MGCP Le protocole MGCP (Media Gateway Control Protocol) est défini dans la RFC 3435. L’intelligence, contrairement à SIP, n’est pas dans le client de téléphonie mais dans le cœ ur du réseau. Les téléphones MGCP ne peuvent pas s’appeler entre eux mais doivent passer obligatoirement par un contrôleur central : la gateway. Bien qu’Asterisk supporte MGCP (mgcp.conf et chan_mgcp.so), il est peutêtre préférable d’avoir un parc homogène et donc de migrer les téléphones IP MGCP en SIP.
- 4-
© ENI Editions - All rigths reserved - educ hafa
Il est à noter que MGCP est en perte de vitesse face à SIP et IAX.
5. H.323 Le protocole H.323 a été développé par l’UIT (Union International des Télécommunication) en 1996, afin de fournir un mécanisme de transport IP pour la visioconférence. Aujourd’hui, il est plus utilisé chez les opérateurs qu’en entreprise. Le client H.323 le plus connu est NetMeeting de Microsoft. H.323 est un protocole complexe qui utilise RTP/RTCP pour transporter la voix, ainsi que des codecs audio (G711, G723.1, G728) et des codecs vidéo (H.261 et H.263). Il est à noter qu’Asterisk supporte H.323 (module chan_h323.so).
6. SCCP Le protocole SCCP (Skinny Client Control Protocol) est le protocole propriétaire de Cisco. C’est le protocole utilisé dans tous les téléphones IP Cisco et dans l’autocom Cisco Call Manager. Bien qu’Asterisk supporte Skinny, il est préférable de migrer les téléphones Cisco en SIP. La mise en œ uvre de TVoIP, avec un autocom derrière un firewall dans une DMZ, nécessite d’autoriser les ports des protocoles utilisés.
Exemple de règles de TVoIP avec firewall / NAT
© ENI Editions - All rigths reserved - educ hafa
- 5-
Les codecs Un codec est un algorithme qui permet de COmpresser/DECompresser les flux numériques en flux analogiques et inversement. Il peut se présenter sous la forme logicielle (programme à installer sur Asterisk ou déjà présent) ou matérielle (carte spécifique à installer dans le serveur).
1. G.711 Dans Asterisk, ce codec prend le nom de ulaw (µlaw) pour l’Amérique du Nord et alaw pour le reste du monde ; le codec G.711 alaw est donc employé en France. G711 utilise une bande passante élevée à 64kp/s (il faut rajouter l’overhead, lié aux flux RTP), mais consomme peu de CPU sur le serveur puisqu’il n’est pratiquement pas compressé. La qualité de G.711 est excellente et égale celle du RTC classique. Ce codec est à utiliser de préférence dans un LAN (Local Area Network) où la ressource en bande passante ne pose pas de problème particulier. Autres points importants à ne pas négliger, G711 est gratuit et est implémenté dans la majorité des équipements de TVoIP.
2. G.723.1 Ce codec payant est utilisé uniquement en cas de transcodage, G.723.1 fonctionne à 5,3 Kb/s ou 6,3 Kb/s donc est très intéressant dans le cas de faibles bandes passantes.
3. G.726 Il s’agit d’un codec gratuit qui utilise différents débits : 16, 24 ou 32 Kb/s. Il est supporté par Asterisk uniquement dans sa version 32 bits. C’est un très bon rapport qualité sonore/utilisation CPU.
4. G.729 Ce codec réduit à 8 Kb/s la consommation d’un appel, auquel il faut ajouter l’overhead IP, cela fait un débit réel de 40 Kb/s environ. L’intérêt principal de G729, utilisé avec Asterisk, est de réduire la bande passante nécessaire donc est source de gain. Asterisk supporte seulement le G.729 Annexe A (G.729a). L’overhead IP dépend de la configuration matérielle du serveur. Par exemple, un Xeon 1.8 GHz permet environ 60 appels simultanés en G729 alors qu’un Xeon 2.8 Ghz en permet 80. La licence est payante et s’installe sur le serveur Asterisk. Il faut une licence par communication qui utilise le transcodage. Si le serveur ne fait pas de transcodage, il n’y a pas besoin de licences. Par contre, si le serveur fait du codage/décodage (client en G711a, Asterisk en G711a/G729, opérateur en G729), il faut autant de licence que l’on souhaite avoir de communications simultanées. Les performances de ce codec sont impressionnantes mais cela nécessite beaucoup de ressource processeur sur le serveur. Pour avoir 30 communications simultanées sur Asterisk en G729, il faut acheter un pool de 30 licences, soit environ 300 $ US. Chaque pool est dédié à un serveur Asterisk.
5. GSM GSM est le codec d’Asterisk et ne requiert pas de licences. Il utilise une bande passante intéressante de 13 Kbps, consomme beaucoup moins de ressource processeur que
© ENI Editions - All rigths reserved - educ hafa
- 1-
G.729a, tout en étant très performant. Seul inconvénient, le son peut s’avérer de moins bonne qualité que celui avec G.729a.
6. ILBC (Internet Low Bitrate Codec) Ce codec, supporté par Asterisk, est libre de droits. Il fonctionne à 13,3 Kb/s ou à 15,2 Kb/s mais ne s’est pas encore imposé comme un standard. Certains téléphones IP ne l’implémentent donc pas encore. Il est consommateur de CPU Asterisk mais rend une bonne qualité.
7. Mesures avec l’indicateur MOS L’indicateur MOS (Mean Opinion Score) permet de mesurer la qualité de la voix : 5 : Excellent 4 : Bon 3 : Assez Bon 2 : Pauvre 1 : Mauvais Codec
Débits (Kb/s)
MOS
G.711
64
4,1
G.723.1
6,4
3,9
G.726
32
3,85
G.729
8
3,92
GSM
13
3,5
Un codec donnant une valeur MOS inférieure à 3,9 entraîne un inconfort chez les utilisateurs. À retenir : une communication ToIP de bout en bout, dans 100% des cas, est impossible en raison des différents transcodages réalisés dans les réseaux de transport de la voix. Cela engendre donc inévitablement une dégradation du signal donc une baisse en qualité sonore. Dans la mesure du possible, il faudra choisir de rester en mode non compressé ou en mode compressé de bout en bout.
- 2-
© ENI Editions - All rigths reserved - educ hafa
La qualité de service (QoS) 1. Généralités Le signal de la voix humaine est analogique ; pour qu’il soit transporté de l’émetteur vers le destinataire sur un réseau IP, il va subir toute une série de cheminement : passage dans de nombreux équipements hétérogènes, numérisation, compression, décompression, utilisation de lignes ADSL... Et c’est précisément ce cheminement qui va être à l’origine de sa dépréciation. Un ensemble de mécanisme est alors nécessaire pour éviter au maximum cette dépréciation : la QoS. Sans mécanisme précis de prioritisation, tous les flux sont au même niveau sur une bande passante donnée. Exemple d’un gros envoi de fichiers FTP HTTP SMTP FTP Lien ADSL avec une bande passante de 1Mb/s FTP en download 256 Kb/s en upload
VOIP SIP/RTP Autres flux
Ici, c’est le sens montant qui nous intéresse. À supposer que nous décidions d’envoyer un fichier important qui monopolise toute la bande passante, soit un taux de transfert de 32 Ko/s ; si une communication VoIP est en cours, il n’y aura donc plus de bande passante disponible et les paquets VoIP seront acheminés en temps différés ; cela provoquera donc une communication de mauvaise qualité voire inaudible, tout le temps du transfert de fichier. La qualité d’écoute dépend du délai de transmission de la voix : Délai de transmission de la voix
Qualité d’écoute
à 1 s
Impossible
2. QoS ou canaux de liaison dédiés Dans la majorité des entreprises, les liens intersites sont gérés par un opérateur qui a mis en place un réseau privé avec des équipements permettant d’obtenir de la QoS ATM (Asynchronous Transfert Mode) et/ou IP. Ces réseaux utilisent souvent le MPLS (MultiProtocol Label Switching) qui fonctionne par marquage de paquets et assignation de priorité. Ensuite, ce sont les routeurs qui sont chargés d’aiguiller correctement les paquets. La méthode DiffServ (Differentied Service) permet également le marquage et la prioritisation des paquets mais ne garantit en rien l’acheminement correct des paquets voix. Sur un réseau qui n’implémente pas de mécanisme de QoS, Internet par exemple, rien ne garantit donc la qualité d’écoute. Dans le cas d’un FAI (Fournisseur d’Accès Internet) proposant une offre de type ADSL (Asymetric Digital Subscriber Line), deux stratégies sont alors possibles : ●
Construire les feuilles ADSL de ses clients sur du monoVC et apporter de la QoS IP :
© ENI Editions - All rigths reserved - educ hafa
- 1-
●
●
par défaut, une ligne ADSL est monoVC : un canal unique de transmission des données et de la voix.
●
utilisation de modemrouteur supportant la QoS.
●
mise en œ uvre d’équipements supportant la QoS en cœ ur de réseau.
Construire les feuilles ADSL de ses clients sur des liens de type biVC : ●
Un lien biVC dispose d’un canal premium pour transporter les flux sensibles (la voix) et un canal Best effort (pour tout le reste et notamment le surf).
●
Un cœ ur de réseau capable de terminer des tunnels Best effort et des tunnels Premium.
●
La QoS n’est donc plus nécessaire mais cela suppose des routeurs multiVC.
Dans le cas d’une offre de type SDSL, le mécanisme de QoS doit être considéré différemment : en cœ ur de réseau et sur les routeurs d’extrémité. Orange Business Services (OBS) ne propose pas de la QoS sur tous ses liens SDSL (les faibles débits sont écartés). De même, lorsqu’elle est présente, la QoS s’applique uniquement sur le débit garanti. Sur un réseau de collecte ADSL, il est possible de créer des VPNs pour un ensemble de clients via un paramétrage adéquat sur les routeurs centraux de terminaison de tunnels et ainsi d’y injecter des mécanismes de QoS. Exemple de mise en place d’une QoS sur un réseau MPLS entre deux sites. Supposons les deux sites suivants : Nantes et Strasbourg, reliés entre eux via un VPN opérateur basé sur des liens SDSL. Les deux sites ont besoin de faire passer des flux de VoIP, surf internet, messagerie, visioconférence, applicatifs métiers : ●
Serveur métier : 192.168.40.100, flux de type SQL*Net : port 1521, flux citrix, flux TSE.
●
Serveur VoIP sur Nantes : 192.168.35.10 avec des postes téléphoniques dans le subnet 192.168.35.0/24.
●
Serveur VoIP sur Strasbourg : 192.168.90.10 avec des postes téléphoniques dans le subnet 192.168.90.0/24.
Il faudra alors réaliser la QoS suivante sur les routeurs de chaque site et dans le cœ ur du réseau MPLS : ●
Classe premium (classe prioritaire) Service VoIP : udp/tcp 4569 (iax), udp/tcp 5060 (sip) ; si nous laissons en l’état, les flux de voix ne seront pas priorisés puisqu’ils passent en RTP/RTCP. Les ports de ces derniers changeant constamment, il est courant de rajouter les subnets concernés par la VoIP dans cette classe premium, soit 192.168.35.0/24 et 192.168.90.0/24. Il convient également de rajouter également les flux de visioconférence, de préférence une adresse IP de serveur (si le serveur est externalisé, il faut rajouter son IP publique).
●
Classe secondaire (flux métiers par exemple) Service métier : serveur 192.168.40.100 et port udp/tcp 1521, port Citrix 1494, port TSE 3389
●
Classe défaut ou best effort Cela concerne le reste (surf, messagerie…)
Bien évidemment, sur chacun des liens, il faudra définir le pourcentage réservé à chaque classe en tenant compte de la bande passante, par exemple : 40 % pour la VoIP, 40 % pour les applicatifs métiers et 20 % pour le best effort. Attention, la Qos ne s’applique que si le lien est saturé. - 2-
© ENI Editions - All rigths reserved - educ hafa
Au fil du temps, nous voyons que les prix des liens SDSL sont en baisse. Cela implique que la stratégie actuelle de gestion de la QoS n’est pas la même qu’il y a cinq ans. Parfois, il faut savoir investir et prendre un lien SDSL à 4 Mb/s plutôt que de prendre un lien à 1 Mb/s et passer beaucoup de temps à « tuner » la QoS. Les prix SDSL de l’offre DSL Entreprises d’Orange permettant une collecte SDSL ont subi une baisse significative de prix au 1er juillet 2010.
© ENI Editions - All rigths reserved - educ hafa
- 3-
Introduction L’objectif de ce chapitre est de présenter les différentes architectures de TVoIP (Telephony and Voice Over IP) qui sont réalisables à ce jour, comptetenu des moyens technologiques et des offres des opérateurs télécom du marché. Avant tout, la première question à se poser est "Pourquoi migrer vers de la voix sur IP ?". En effet, pourquoi les entreprises sontelles condamnées à faire évoluer leur architecture de téléphonie et pourquoi surtout prendre des risques en changeant un système de téléphonie traditionnelle qui a fait ses preuves dans le temps et où il y a toujours une tonalité lorsque l’on décroche le combiné ? La réponse est dans la question : l’ensemble des technologies des systèmes d’information d’aujourd’hui repose sur le protocole IP et la voix, au même titre qu’une application de type "données" (site web, logiciel métier, messagerie, base de données...) ne peut échapper à ce razdemarée, au risque d’être complètement cloisonnée, marginalisée et, au final, abandonnée. Qui peut imaginer une seule seconde que le système de communication téléphonique ne puisse pas communiquer avec un "agent" matériel, logiciel ou humain de l’entreprise ? Autrement dit, dans un monde technologique où tout est inter communicant, quel serait la place d’un système qui ne pourrait pas entrer en communication avec un serveur, une application de gestion de relation client ou encore une messagerie électronique ? C’est en banalisant la voix sur IP en tant qu’application, futelle d’une extrême criticité, que cette migration sera pleinement réussie. Depuis quelques mois maintenant, le nouveau phénomène "iPhone" est en passe de se banaliser au sein des entreprises. En effet, l’iPhone a relégué en quelques mois tous les smartphones du marché loin derrière et le modèle commercial applicatif avec l’Appstore préfigure la nouvelle façon de vendre des logiciels. Ce succès ne nous étonne guère tant ce type d’outils manquait cruellement en entreprise : un seul outil qui tient dans la main avec toutes les fonctionnalités dont le professionnel ou le particulier a besoin. La mobilité est donc un nouvel élément à prendre en compte dans le projet de migration à la VoIP : il faudra désormais y associer la "VoIP mobile". Décider d’implémenter de la VoIP au sein d’une entreprise nécessite de poser les bonnes questions : ●
Quelle est l’architecture télécom, système et réseau existante ?
●
Quels sont les services qui seront disponibles pour les utilisateurs finaux ?
●
Quel est le plan de déploiement à mettre en œ uvre ?
●
Quel est le périmètre budgétaire ?
●
Quel est le retour sur investissement (ROI pour Return On Investment) escompté ? Estil qualifiable et quantifiable ?
En fonction des réponses à ces questions, nous allons tenter de bâtir l’architecture idéale.
© ENI Editions - All rigths reserved - educ hafa
- 1-
Compréhension de l’architecture existante ? Il faut bien constater que la période actuelle est propice à la migration vers la ToIP puisque les autocoms (PABX) d’entreprises arrivent en fin de cycle ; bien souvent, ils ont été achetés à la fin des années 1990, bons nombres de DSI souhaitant déployer une téléphonie permettant d’éviter le fameux bug de l’an 2000 (bug qui n’a finalement pas vraiment eu lieu). L’amortissement matériel a eu lieu (en moyenne 6 ans) et le mainteneur (bien souvent celui qui a vendu et installé l’autocom) propose soit un renouvellement sur la même technologie, soit une transition en douceur vers le monde IP, soit une migration totale en IP. L’analyse de l’architecture existante est importante car de nombreux paramètres doivent être pris en compte et un oubli initial peut avoir des conséquences inattendues et négatives en terme financier ; par exemple, installer de la T VoIP sur un système de câblage ancien (catégorie 3), ne pas tenir compte d’un renouvellement indispensable des switchs (ce point est présenté au chapitre Préparation du réseau) ou encore ne pas tenir compte des agences d’une entreprise. De façon générale, trois scénarios permettent d’orienter et d’arrêter la stratégie de migration.
1. Scénario 1 : renouvellement sur la même technologie numérique L’entreprise n’est pas prête à passer à la VoIP car elle ne voit ni les enjeux, ni les avantages et ne dispose pas de connaissance sur la technologie. 40 % des entreprises françaises sont dans ce cas. Le seul choix possible, alors, est de renouveler l’autocom à périmètre identique. Avantages : ●
Changement des matériels analogiques et/ou numériques : central téléphonique, téléphones.
●
Nouvelle fonctionnalité logicielle : administration web (utile pour l’administrateur).
●
Pas d’investissement en terme de câblage et d’éléments actifs.
●
Peu de formation des utilisateurs.
Inconvénients : ●
Dépendance d’un prestataire (contrat de maintenance obligatoire, modification payante...).
●
Aucune possibilité de CTI (Couplage Téléphonie Informatique).
●
Investissement dans une technologie vieillissante.
2. Scénario 2 : transition vers le monde IP L’entreprise souhaite conserver ses acquis tout en souhaitant établir un "pont" vers le monde IP. Ce choix est souvent dicté par la volonté de mettre en place une application de CTI. L’autocom est changé ou conservé, une carte IP est installée dans l’autocom qui est renouvelé ou bien souvent conservé. C’est une solution transitoire pour tout entreprise qui migrera inéluctablement rapidement vers le scénario 3. Avantages : ●
Coupage de trois mondes : numérique, analogique et IP.
●
CTI possible.
Inconvénients : ●
Dépendance d’un prestataire.
© ENI Editions - All rigths reserved - educ hafa
- 1-
●
Développements des applicatifs CTI : longs, propriétaires, coûteux.
3. Scénario 3 : migration full IP L’autocom est définitivement remplacé au profit d’un autocom (souvent un châssis matériel avec les mêmes éléments qu’un serveur, et un système d’exploitation basé sur Linux). La transition est radicale : il faut disposer du nombre nécessaire de prises réseau, du câblage nécessaire et aux normes, de baies de brassage réseau et non plus télécom, de nouveaux éléments actifs (routeurs et switchs manageables). Il faut bien sûr investir dans de nouveaux téléphones. Dans ce cas, le CTI est également possible. La voix devient alors voix sur IP et se comporte comme une application qui dialogue entre un client (le téléphone) et le serveur (l’autocom est alors devenu un iPBX). Le retour en arrière est inenvisageable. Le choix de l’autocom IP est primordial et il faut s’efforcer de mettre en place une technologie ouverte qui va permettre des développements ultérieurs aisés.
Afin d’éviter de doubler les prises réseau dans un bureau, il est possible d’utiliser un téléphone qui propose la fonctionnalité de miniswitch, de le raccorder au LAN de l’entreprise et de brancher un PC dessus. L’inconvénient est que si le téléphone tombe en panne, le PC n’a plus de connectivité réseau.
- 2-
© ENI Editions - All rigths reserved - educ hafa
Quelle offre pour quel utilisateur ? ●
●
●
Estce que la nouvelle architecture s’adresse à des utilisateurs internes ou à seulement une partie (un service helpdesk, une hotline, une agence, une filiale, des utilisateurs nomades...) ? Estce qu’il s’agit d’une offre à destination de clients internes et/ou externes ? De quelles tailles : TPE ou PME ? Estce que les utilisateurs sont technophiles ? Doiventils disposer d’éléments technologiques évolués (messagerie unifiée, supervision de postes, call center...) ?
Les architectures présentées ciaprès ont toutes été testées en entreprise et vont servir de base pour la construction d’autres approches.
1. Architecture n°1 : VoIP/ToIP pour une PME monosite a. Stratégie locale L’autocom IP est installé dans le LAN sur le site de l’entreprise, il est équipé d’une carte de communication "T2" permettant l’interconnexion entre le monde IP et le monde TDM (téléphonie). Le logiciel utilisé est Asterisk, il est totalement ouvert et disponible dans la communauté Open Source. L’entreprise dispose d’un abonnement de type T2 avec un opérateur et peut donc supporter 30 appels simultanés. Les téléphones sont tous IP (avec adresses IP fixes ou dynamiques) et sont branchés sur le LAN.
Avantages : ●
Cette architecture est peu coûteuse et permet rapidement de déployer de la TVoIP.
●
Le serveur sous Linux devra disposer au minimum de 2 Go de mémoire, sera biprocesseurs.
●
La carte T2 (Digium, Junghams...) s’installe rapidement. Les téléphones IP sont configurables soit directement sur l’interface locale ou via le web. Le chapitre Les passerelles opérateurs détaille les différents types de cartes T0 et T2.
Inconvénients : ●
Cette architecture n’est pas redondée. Si le serveur asterisk et/ou la carte T2 crashent, l’entreprise ne
© ENI Editions - All rigths reserved - educ hafa
- 1-
dispose plus de téléphonie. On privilégiera cette approche si l’activité téléphonique n’est pas critique. Il faudra être prudent en conservant quelques lignes analogiques pour la gestion des fax et des numéros d’urgence et pour maintenir une activité téléphonique minimale.
Attention : il est parfois nécessaire de fabriquer un câble de connectique T2 entre la carte T2 et le boîtier d’arrivée de l’opérateur. Les pins du câble crossover sont : 14, 25, 41 et 52. Ce type de câble n’est cependant pas la règle ; cela dépend en fait de la connectique de l’opérateur. La seule bonne méthode est donc de tester (crossover T2, crossover classique, câble droit) jusqu’à ce que la led de la carte T2 soit correctement allumée.
b. Stratégie centrex ●
L’autocom IP est externalisé (il s’appelle un centrex).
●
La passerelle (gateway) est également externalisée.
●
Aucune stratégie de sécurisation des communications n’est mise en œ uvre.
Avantages : ●
●
La téléphonie est déléguée à un prestataire dont c’est le métier. Les liens vers le réseau commuté sont centralisés. L’entreprise peut donc se centrer sur son cœ ur de métier. La gestion technique, administrative et financière est facilitée.
Inconvénients : ●
●
●
●
- 2-
L’entreprise est dépendante d’un opérateur. Mieux vaut bien le choisir (taux de disponibilité, fiabilité, coûts, efficacité de la hotline, interface de management de la solution). Cette architecture est tributaire de la qualité des liens télécom mis en place. Le lien via Internet est réalisable, peu cher, mais ne garantit en rien la qualité de service puisque le temps de transit n’est pas garanti. Le lien VPN privé est préconisé et permet d’apporter de la QoS et de la GTR (Garantie de Temps de Rétablissement). Ces services ont évidemment un coût.
© ENI Editions - All rigths reserved - educ hafa
2. Architecture n°2 : VoIP/ToIP pour une PME multisites L’approche locale ou centrex peut être adoptée ; les deux pouvant être utilisées mais pour des raisons de lisibilité d’architecture techniques (et de facturation par la suite), il est souhaitable de faire un choix clair.
a. Trunk intersites
L’entreprise et ses agences sont interconnectées entre elles par le biais d’un VPN soustraité auprès d’un opérateur ; ce VPN doit implémenter de la qualité de service, mécanisme indispensable afin de garantir la fluidité des paquets VoIP ; en effet, sans cette QoS, un gros flux de type FTP, un envoi de mails massifs... pourraient monopoliser toute la bande passante et ainsi fortement dégrader l’émission et la réception de la voix. À noter que la QoS doit être présente de bout en bout (routeurs d’extrémité, équipement réseau opérateur). Avantages : ●
●
Chaque site dispose de son propre autocom IP et donc est autonome. En outre, une sortie locale vers le réseau commuté est rassurante car elle n’est pas tributaire d’un lien réseau de données. La qualité d’un T2 de l’opérateur historique n’étant plus à démontrer. Il est par exemple possible de router les appels sortants de l’agence de Nice par le siège à Paris, pour le prix d’une communication locale. L’aspect tarification est vu au chapitre Les passerelles opérateurs.
Inconvénients : ●
Il faut bien évidemment mettre en œ uvre un plan de numérotation par autocom et donc un par site. Ensuite, il faut réaliser les trunks (liaison intersites) et cela nécessite des manipulations sur chaque autocom.
Sécurisation des liens SDSL. À noter que dans cette architecture, les trunks passent par la ligne SDSL qui n’est pas secourue auprès d’un second opérateur. Si cette ligne venait à tomber (GTR de 4 heures), la communication intersites ne pourrait se faire que par les liens T2. Si la volumétrie des communications intersites est importante, cela peut avoir un effet non neutre en terme financier.
b. Multisites avec centrex et secours locaux
© ENI Editions - All rigths reserved - educ hafa
- 3-
Cette architecture est similaire à la précédente en terme de VPN mais les "petites agences" de moins de 20 personnes ne disposent ni d’autocom en local, ni de sortie locale vers le réseau commuté. Il est à noter que d’un point de vue sécuritaire, il est indispensable de conserver quelques lignes analogiques qui serviront au fax, aux numéros d’urgence, à un secours ADSL. Les "grosses agences", à partir de 20 personnes, devront disposer d’un autocom en local avec une sortie locale, considérant que le blocage de ce type d’agence peut nuire à la productivité de l’entreprise. Avantages : ●
●
Certaines agences disposent d’un secours en local. Si le serveur du siège est injoignable (ligne SDSL horsservice ou défaillance du serveur), c’est le serveur local qui sera utilisé.
Inconvénients : ●
●
Il faut maintenir le serveur local (intégrité physique, logicielle et fonctionnelle) : chaque ajout de téléphone fera l’objet d’une modification de la configuration centrale et locale. Pour les petites agences, si le lien télécom est en panne, il n’y a plus de téléphonie.
Sur les agences importantes, il faudra configurer le téléphone SIP en spécifiant que le serveur SIP registrar primaire est l’autocom du siège et le SIP registrar secondaire celui de l’agence.
3. Architecture n°3 : VOIP/TOIP pour une TPE Aujourd’hui, une TPE (pharmacies, notaires, cabinet de médecins...) dispose d’un petit autocom local (Diatonis de France Telecom par exemple) avec un ou deux abonnements T0 (2 ou 4 lignes simultanées), d’un fax sur ligne analogique séparée et d’un accès ADSL. L’approche centrex de type FAI est de loin la plus abordable financièrement pour ce type de cible. Attention toutefois à ne pas négliger l’aspect sécurisation des liens télécom car une TPE dispose plus souvent d’une seule ligne ADSL (grand public) sans notion de garantie de temps de rétablissement, compte tenu du prix bon marché d’un accès ADSL en France et surtout sans notion de qualité de service.
- 4-
© ENI Editions - All rigths reserved - educ hafa
Dans un mode de type centrex, ou ASP (Application Service Provider), il faudra secourir le lien ADSL existant à l’aide d’un lien SDSL (symétrie des flux) qui permet de disposer de GTR de 4 heures et de QoS au travers de l’offre opérateur souscrite (VPN).
La TPE soustraite la fourniture d’une offre "dualplay" données et voix. La solution données/voix est centralisée et sécurisée chez l’opérateur par l’intermédiaire de serveurs applicatifs (Web, smtp, pop, ftp...), de serveurs clusterisés (autocom, firewall), ainsi que de liens Internet redondés. Le nombre de téléphones SIP est limité car leur utilisation est fonction de la bande passante de la ligne ADSL. Pour un lien 1 Mbs/ 256 Kbs, il faut raisonnablement se limiter à 2 téléphones : ●
téléphone 1 : bande passante réservée de 64 Kbs.
●
téléphone 2 : bande passante réservée de 64 Kbs.
●
Données : bande passante réservée de 128 Kbs.
Une communication VoIP occupe 64 Kbs si le codec est G.711 (non compressé) et 8 Kbs si le codec est G.729 (compressé). Moins il y a de compression, plus la qualité est meilleure. Il est tout à fait possible de faire de la VoIP sur un réseau de collecte ADSL, dont les feuilles ADSL ne disposent pas, a priori, de mécanisme de QoS, et cela dans de bonnes conditions pour l’utilisateur, à condition de respecter quelques recommandations : ●
●
●
●
Choisir des routeursmodems d’extrémité implémentant de la QoS (Cisco 877, bewan ibox…). Choisir de n’installer qu’un seul compte SIP dans la TPE ; cela a pour effet de limiter le nombre d’appels simultanés sur un même lien ADSL. Effectuer des tests de charge en téléphonant et en envoyant une grosse pièce jointe en mail ou en effectuant un gros téléchargement par FTP. Être d’un naturel optimiste.
4. Architecture n°4 : environnement critique nécessitant de la haute disponibilité
© ENI Editions - All rigths reserved - educ hafa
- 5-
Certains secteurs (hotline, service de prises de commandes par téléphone par exemple) nécessitent une disponibilité et une qualité de service de téléphonie à toute épreuve.
a. Loadbalancer La disponibilité est assurée en installant deux serveurs d’accueil en mode haute disponibilité (on parle de HA pour Hight Availability), sur deux sites géographiques différents. Ces deux serveurs sont "clusterisés", disposent donc d’une adresse virtuelle (une VIP pour Virtual IP) et vont dispatcher les flux de téléphonie (la signalisation et la voix) sur une grappe de serveurs asterisk. Heartbeat va permettre d’attribuer une VIP au nœ ud et d’assurer la surveillance. LVS (Linux Virtual Server) va permettre de répartir les flux vers les différents serveurs asterisk.
b. Rôles des serveurs asterisk Les serveurs Asterisk seront dépourvus au maximum de données. Seule l’intelligence de routage des appels (le plan de numérotation) est présente sur chaque machine.
c. Rôles des serveurs de bases de données Deux serveurs hébergeant chacun une base identique de type MySQL, en mode HA (Heartbeat) vont permettre de stocker les informations suivantes : ●
L’environnement des numéros de téléphones (SIP).
●
Les boîtes vocales (voicemail).
●
Les trunks (IAX).
●
Toutes autres informations (numéros internes/SDA, statistiques d’appels, enregistrement d’appels...).
- 6-
© ENI Editions - All rigths reserved - educ hafa
d. Les télécoms en TPE entre 2011 et 2015 Aujourd’hui, l’architecture technique est souvent composée des éléments suivants : ●
Un autocom local avec des postes analogiques ou numériques et des DECT.
●
Un abonnement grand public à Internet, de type freebox, livexox, neufbox.
●
●
●
Une monétique nonIP composée d’un terminal bancaire de paiement connecté à une ligne analogique. Les transactions bancaires passent donc par l’appel à un numéro téléphonique surtaxé qui fait les beaux jours des opérateurs. Un système d’information (logiciel commercial, bureautique, sauvegarde…) encore stocké en local dans la TPE. Un système de vidéosurveillance local et avec des fonctions basiques.
Dans les 5 ans à venir, la convergence IP en mode externalisé sera le schéma général qui sera adopté dans les petites structures, disons entre 2 et 20 personnes. Pourquoi ? simplement pour deux raisons : ●
Un seul interlocuteur multiservice de proximité qui connaît bien les besoins des petites structures.
●
Des économies importantes par le biais d’offre "bundle".
e. Quel cloud pour la VoIP ? Le cloud ou nuage est un terme à la mode. Il fait simplement référence à des concepts vieux de 15 ans avec l’ASP (Application Service Provider) ou plus récemment avec le SaaS (Software As A Service). Mais, dans tous les cas, nous parlons ici d’une externalisation de la téléphonie dans un cloud qu’il reste à choisir. Imaginons un cloud de VoIP pour une multinationale répartie dans plusieurs pays. À première vue, le schéma est simple :
© ENI Editions - All rigths reserved - educ hafa
- 7-
Mais techniquement, il s’agit d’une tout autre histoire : il faut en effet résoudre une équation complexe S = T + C + P où : S représente la Solution, T la technique, C le coût et P la pérennité. Dans notre cas, supposons que notre cloud VoIP puisse interconnecter les entités suivantes : ●
siège à Paris
●
filiale à Bruxelles et à Charleroi
●
agence de la filiale de Bruxelles, basée au Luxembourg
●
agences en France à Nice, Pau, Marseille, Lille, Rennes
●
nomades isolés basés à HongKong et à New York
●
nomades isolés basés en France
●
filiale offshore en Pologne, à Varsovie
Dans ce contexte, afin de résoudre S, nous conseillons le cloud VoIP suivant : ●
●
- 8-
Construire un réseau VPN MPLS opérateur en France via des liens SDSL 1 Mb/s ou 2 Mb/s, pour les agences, et un lien fibre optique 10 Mbs. Attention dans certains cas, la fibre optique locale est plus intéressante, même avec un gros débit Internet, qu’un lien SDSL opérateur ; il faudra alors utiliser une technologie de tunnel pour relier le siège via Internet. Construire un réseau VPN MPLS opérateur en Belgique (lien SDSL pour les agences) + lien central supérieur vers le siège parisien. © ENI Editions - All rigths reserved - educ hafa
●
●
●
●
Au Luxembourg, un lien VPN opérateur que ce soit avec un opérateur français ou belge est coûteux alors que ce pays est frontalier ! Il faut donc privilégier un lien Internet de qualité (environ 700 euros / mois) pour un Internet 2 Mb/s sur Ethernet à La Poste. Et bien sûr utiliser un boîtier VPN pour relier Le Luxembourg à Paris. Les nomades isolés à l’étranger doivent se connecter en VPN sur un accès Internet local et disposer d’un client SIP sur leur PC portable. Ce mécanisme permettra une connexion avec le cloud VoIP. Attention à bien effectuer les tests adéquats et fournir une procédure d’utilisation sinon les utilisateurs auront vite fait d’utiliser une application VoIP non officialisée dans l’entreprise (skype par exemple). Cela n’est valable que pour les communications dans le cloud. Les appels locaux doivent être passés en local (coût moindre). Les nomades isolés en France ont plusieurs choix : en situation de mobilité, ils utiliseront le même mécanisme que pour les nomades étrangers. En situation de télétravail (ils sont à domicile), ils pourront soit utiliser leur lien ADSL et leur téléphone local (forfait local/national illimité, compris dans leur abonnement), soit disposer d’un lien ADSL dédié et sécurisé, fourni par l’entreprise ; cela permettra de connecter un téléphone SIP. La filiale polonaise devra avoir un lien internet à débit symétrique pour des raisons de coût et de qualité (autres besoins que la seule voix) et être équipée d’un boîtier VPN toujours connecté afin d’avoir un tunnel permanent. Le Lan polonais sera alors dans le plan d’adressage du groupe et permettra l’interconnexion de plusieurs téléphones SIP.
Le cas de la flotte mobile est plus délicat à piloter car l’équation S est pratiquement insoluble, tant les prix des mobiles à l’international (le roaming) est prohibitif. Une solution à ce jour est de prendre des flottes mobiles locales donc des forfaits locaux et d’utiliser un accès VPN pour téléphoner au sein du groupe ; la sortie locale depuis les mobiles pouvant s’effectuer via le site central à la condition que l’opérateur retenu (ou mieux les opérateurs retenus) dispose d’une grille attractive à l’international. Un système de PBX comme Asterisk permet de choisir le meilleur chemin financier de sortie par rapport aux passerelles opérateurs. Cloud ne signifie pas économie d’argent !
© ENI Editions - All rigths reserved - educ hafa
- 9-
Calendrier type d’un projet VoIP Prenons l’exemple d’un cas réel d’un projet VoIP, pour une centaine d’utilisateurs, qui consiste à migrer l’existant (analogique et/ou numérique) avec un nouvel autocom IP de type Asterisk. Nous devons également tenir compte de la mise en place d’un trunk (lien) vers un site distant luimême composé de 100 personnes. Ce projet sera découpé en six phases chronologiques.
1. Phase 1 : étude préalable Élaboration du cahier des charges fonctionnelles. Élaboration du cahier des charges techniques avec schéma de l’architecture. Choix de l’architecture technique. Estimation du budget prévisionnel.
2. Phase 2 : validation de la Direction générale Présentation du projet en CODIR. Correction de la plateforme technique. Validation du budget définitif.
3. Phase 3 : phase préparatoire Achat des matériels et logiciels. Segmentation du réseau en vlans. Installation du serveur Linux, de la plateforme Asterisk, paramétrage. Déroulement des scénarios de tests. Formation des équipes d’administration. Installation des lignes analogiques, support des fax et modems (hors autocom IP). Développement de l’interface de CTI et couplage avec l’informatique applicative existante. Réalisation d’une "sucette", connectique capable de s’interfacer entre l’arrivée existante (vieille technologie T2) et la connectique RJ45. Mise en œ uvre des trunkings (liens intersite).
4. Phase 4 : déploiement du site pilote Concerne une quinzaine d’utilisateurs représentatifs. Ces utilisateurs disposeront de 2 téléphones (existant numériques et IP) ; le téléphone IP ne pourra pas appeler vers l’extérieur si l’entreprise ne dispose que d’une seule passerelle.
5. Phase 5 : retour d’expérience et correction Bilan du site pilote. Corrections éventuelles. Rédaction notice utilisateur.
© ENI Editions - All rigths reserved - educ hafa
- 1-
6. Phase 6 : déploiement généralisé Installation et paramétrage des téléphones IP. Bascule de la passerelle entre le PABX et l’iPBX. Gestion des aspects relationnels et suivi utilisateurs (à ne pas négliger). Arrêt définitif du PABX, de sa maintenance. Revente des anciens matériels (autocom et téléphones) chez un broker.
- 2-
© ENI Editions - All rigths reserved - educ hafa
Retour sur Investissement de la VoIP Le ROI peut être défini simplement par la mesure de l’argent gagné ou perdu par rapport à un investissement. Au début du projet de migration de VoIP, les deux vraies questions que chaque DSI doit se poser sont : ●
"Estce que je vais économiser de l’argent ? "
●
"Estce que je vais apporter de nouveaux services ?"
Et à la fin du projet, il doit être capable de répondre affirmativement à ces deux questions, sinon il n’aura pas tenu ses objectifs initiaux. Certains résultats sont cependant difficilement quantifiables même s’ils s’imposent d’euxmêmes : ●
●
●
Dire que l’équipe réseau passe moins de temps avec la hotline d’un prestataire à expliquer plusieurs fois souvent le même problème mais à des interlocuteurs différents. Dire que l’entreprise a repris le contrôle de sa téléphonie interne et par la même occasion d’une partie de son système d’information (cet aspect fondamental n’a pas de prix !). Donner de nouvelles compétences aux équipes techniques et donc apporter une plus grande motivation, une plus grande cohésion d’équipe.
Selon une étude de l’AFUTT (Association Française des Utilisateurs des Télécoms) du 23/03/2007, "la principale motivation de la migration porte sur la réduction du coût des communications". Dans un projet de migration TVoIP basé sur Asterisk, plusieurs facteurs sont donc à prendre en compte : ●
Réduction des coûts d’investissement ●
●
●
Installation du système d’exploitation Centos, une version gratuite de Linux proche de Redhat Enterpris.
●
Installation d’Asterisk, de ses nombreux addons.
●
Achat de routeurs VoIP ou de cartes T2.
●
●
Achat de serveurs redondés habilement négociés.
Location de lien T2 sur SDSL auprès d’opérateurs telecom, renégociation des abonnements et du coût à la minute vers le fixe local/national et vers le fixe vers mobile.
●
Suppression des contrats de maintenance applicative.
●
Achat de téléphones SIP bon marché et utilisation de softphones pour les callcenters.
Réduction des coûts de fonctionnement ●
Suppression de la dépendance auprès d’un prestataire logiciel.
●
Formation de l’équipe informatique pour assurer les tâches d’administration et de gestion quotidienne.
Apport de nouveaux services ●
●
Messagerie unifiée. Possibilité d’affecter une ligne de fax directe à sa SDA de téléphone et de recevoir automatiquement un fax en format PDF dans sa boîte email. © ENI Editions - All rigths reserved - educ hafa
- 1-
●
Accès aux services de conferencing MeetMe.
●
Interfaçage avec des outils de CTI par des développements spécifiques "maison".
●
Serveur vocal interactif : écriture de scripts spécifiques dans le plan de numérotation.
●
Apport de contenu interactif riche directement sur les téléphones SIP par programmation (message de la Direction, publicité, information...).
●
Call center et gestion de files d’attente.
●
Annuaire OpenLDAP (http://www.openldap.org) avec mise en œ uvre de fonctionnalité de clicktodial.
1. Architectures « Xphones » Par le terme « Xphones », nous englobons tous les périphériques mobiles intelligents capables de communiquer en VoIP, et ce, quel que soit le média de connexion au serveur PBX : wifi, 3G, filaire lan, wan… L’objectif annoncé est de mettre en place une infrastructure permettant de faire converger les communications : un numéro de téléphone, un seul mail, n’importe où, n’importe quand avec un seul périphérique dans la main.
2. Les applications iPhones L’iPhone est un outil remarquable à trois points de vue à notre sens : ●
Simplicité d’utilisation / ergonomie tactile
●
Richesse des applications de l’Appstore
●
Capacité à être utilisé par toute la population : des professionnels, des étudiants, des ménagères, des enfants
3. Les applications de VoIP « propriétaires » Ces applications sont en fait des clients SIP mais qui nécessitent l’utilisation d’un centrex payant, ce qui revient en fait à utiliser un trunk SIP vers un opérateur intermédiaire ; Pourquoi intermédiaire ? Tout simplement parce que les gros opérateurs comme Orange ou SFR n’ont guère à intérêt à perdre le juteux trafic de minutes à partir des forfaits mobiles. Cela dit, l’utilisation des clients SIP sur mobiles, même si elle n’est pas bloquée jusqu’à un certain stade, est interdite par les opérateurs. Ces derniers peuvent interdire ou restreindre l’utilisation de la VoIP sur leurs réseaux 3G. Certains facturent l’utilisation abusive. Media5fone VoIP SIP Phone La société Media5 Corporation (www.media5corp.com) a publié deux très bonnes applications de client SIP, une version payante à 5,99 euros non bridée en temps de communication et une version gratuite bridée (version 2.4.1.19 en date de fin juillet 2010). Media5 n’est pas un fournisseur de services de téléphonie sur IP, c’est un constructeur de passerelles de téléphonie (mediatrix). Une fois l’application téléchargée sur l’iPhone, il faut paramétrer l’accès au serveur SIP Asterisk via les Réglages. Le compte SIP nécessite obligatoirement un mot de passe.
- 2-
© ENI Editions - All rigths reserved - educ hafa
Accès au paramétrage d’un compte SIP
© ENI Editions - All rigths reserved - educ hafa
- 3-
Configuration d’un compte SIP
Définition manuelle du nouveau compte SIP
- 4-
© ENI Editions - All rigths reserved - educ hafa
Renseignement des informations sur le compte SIP
© ENI Editions - All rigths reserved - educ hafa
- 5-
Définition des paramètres du serveur SIP
Déverrouillage de la version Media5fone Free
- 6-
© ENI Editions - All rigths reserved - educ hafa
Clavier de Media5 À noter que l’application Media5fone est également disponible sur plateforme Nokia Symbian S60.
Asteriskc2d / Asteriskc2dPro Cette application est un dialer SIP compatible avec de nombreux serveurs Pbx comme Asterisk, Trixbox, Vonage, Broadsoft… Elle existe en version limitée à la configuration de deux serveurs Pbx pour 6,99 euros et en version payante (11,99 euros) illimitée en termes de nombre de configurations de serveurs Pbx. La dernière version (v 3.7) date de fin août 2010. Pour fonctionner avec Asterisk, il est nécessaire d’installer des scripts sur le serveur (voir http://www.rho.cc/index.php/linux2/45asteriskc2d/53settinguptheserverside), ce qui peut alourdir la configuration du serveur.
© ENI Editions - All rigths reserved - educ hafa
- 7-
- 8-
© ENI Editions - All rigths reserved - educ hafa
Source : http://www.rho.cc Asterisk VM Il s’agit ici d’une application (v 1.4) publiée en avril 2010 à 2,99 euros qui permet d’accéder aux messages vocaux (les voicesmails) d’asterisk, de manière simple, sans avoir besoin de se connecter au serveur et de composer le numéro de sa boîte vocale ainsi que son mot de passe. Il suffit juste de paramétrer une fois le serveur SIP et le compte SIP. AstCallBack Lite Cette application gratuite (v 1.2 d’avril 2010) permet l’utilisation de la fonction CallBack d’Asterisk. L’utilisateur compose un numéro de téléphone de destinataire, le serveur intercepte l’appel puis rappelle l’émetteur et enfin le destinataire. Cette application peut s’avérer lourde à utiliser dans la vie réelle. Fring, "your friends mobile" En plus de permettre de passer des appels, cette application permet de nombreuses autres fonctionnalités de communications "sociales" comme skype, MSN Messenger, Google Talk, Twitter, Yahoo, SIP (Sipnet, VoipBuster, Autres fournisseurs SIP)… C’est un réceptacle applicatif qui est plus destiné à un usage personnel que professionnel. L’application est gratuite et la dernière version (v 3.3.1.2) a été publiée en août 2010. Source : http://www.fring.com/default.php Acrobits softphone La version v 4.2 a été publiée en août 2010 (coût de 5,49 euros), il s’agit d’un riche client SIP (au sens fonctionnel et visuel) qui s’interconnecte avec plusieurs fournisseurs SIP (Gizmo, Vonage, freephonie…) Source : http://www.acrobits.cz/tutorials Il existe bien d’autres clients SIP sur iphone, parmi ceuxci, nous retrouvons : iSip, iSipSimple, sipvox, Ficall, Weephone sip with push, Ofone, Witel... De nombreuses applications présentent des failles de fonctionnement (absence d’appels vers l’international, fonctionnement uniquement aux USA, manque de documentation pour la configuration et l’utilisation…). À ce jour, aucune application ne s’est encore imposée réellement de façon universelle.
© ENI Editions - All rigths reserved - educ hafa
- 9-
4. Les applications google phones sous Androïd Le système Androïd étant plus récent que le système iPhone, il est tout à fait normal que les applications SIP disponibles sur l’Androïd Market soient moins nombreuses. Nous pouvons néanmoins citer deux applications : ●
●
SipDroid, qui permet une connexion SIP avec Free ou avec un autre opérateur SIP. Cette application est configurée par défaut avec l’opérateur Pbxes (www.pbxes.com). Fring (voir cidessus).
En décembre 2009, l’ARCEP (Autorité de régulation des télécoms) a autorisé Free Mobile à exploiter le réseau 3G. À ce jour (mi septembre 2010) le Conseil d’Etat n’a pas encore validé la 4 e licence mobile de Free en raison des plaintes de la "bande des 3" (Orange, SFR et Bouygues Telecom). Si Free Mobile obtient définitivement la licence et permet à ses téléphones d’effectuer des appels SIP en 3G en toute légalité, cela risquerait de remettre en cause toutes les offres mobiles en France. En effet, les concurrents seraient probablement obligés de faire la même chose pour ne pas perdre le marché de la téléphonie mobile. À noter que les premières offres de Free Mobile 3G arriveront sur le marché vers 2012.
- 10 -
© ENI Editions - All rigths reserved - educ hafa
Introduction Dans ce chapitre, nous allons voir toutes les étapes permettant d’aboutir à une mise en production d’un serveur Asterisk. La plateforme logicielle est constituée d’un serveur Linux sous Debian 5 (http://www.debian.org). Pour une installation simple d’Asterisk (un serveur de VoIP uniquement sans interconnexion avec le monde extérieur), seul le programme Asterisk est nécessaire ; mais à partir du moment où une carte de communication est présente dans le serveur, il faut rajouter les modules DAHDI (ex Zaptel) et Libpri (leur utilité est définie plus loin dans ce chapitre). Nous avons choisi d’approfondir le sujet en installant d’autres packages qui permettront de faire fonctionner toutes les fonctionnalités couvertes dans ce livre : ●
Services de synchronisation du temps : NTP (Net Time Protocol).
●
Services de messagerie : Postfix.
●
Services Web : Apache et PHP.
●
Services de Base de données : MySQL.
●
Modules PERL.
© ENI Editions - All rigths reserved - educ hafa
- 1-
Installation du système Debian Lenny 5 1. Étapes de l’installation Les étapes importantes de l’installation sont les suivantes : Partionnement Il faut choisir un partitionnement manuel du disque qui permet de donner une grande latitude dans l’organisation du disque et notamment le choix de la taille des partitions /boot, /swap et /. Network Il faut choisir une adresse IP fixe pour le serveur et fixer les paramètres de masque, la passerelle et les serveurs de résolution de noms DNS. Dans notre exemple, les paramètres sont les suivants : ●
Adresse IP du serveur : 192.168.1.100
●
Masque de sousréseau : 255.255.255.0
●
Passerelle : 192.168.1.1
●
DNS : 192.168.1.9 et 192.168.1.10
Mot de passe root Il faut spécifier un mot de passe pour le compte root. Packages Il faut choisir l’option minimale. En effet, il n’est, par exemple, pas utile de disposer d’une interface graphique.
2. Premier démarrage Il faut modifier le mot de passe root et vérifier que la configuration du réseau est correcte en effectuant les commandes suivantes : # ifconfig eth0 Link encap:Ethernet HWaddr 00:50:56:97:14:71 inet adr:192.168.1.100 Bcast:192.168.1.255 Masque:255.255.255.0 adr inet6: fe80::250:56ff:fe97:1471/64 Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:16649767 errors:0 dropped:0 overruns:0 frame:0 TX packets:5535 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:2189605966 (2.0 GiB) TX bytes:405071 (395.5 KiB) lo
Link encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 adr inet6: ::1/128 Scope:Hôte UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
# route Table de routage IP du noyau Destination Passerelle Use Iface localnet *
Genmask 255.255.255.0
Indic Metric Ref U
0
0
© ENI Editions - All rigths reserved - educ hafa
- 1-
0 eth0 default 0 eth0
192.168.1.1
0.0.0.0
UG
0
0
# ping www.google.fr PING www.l.google.com (209.85.229.147) 56(84) bytes of data. 64 bytes from ww-in-f147.1e100.net (209.85.229.147): icmp_seq=1 ttl=53 time=18.5 ms
3. Contrôle de la configuration de l’utilitaire aptget L’utilitaire aptget de Debian permet de télécharger les packages Debian depuis un dépôt centralisé sur Internet. # vi /etc/apt/sources.list deb http://ftp.fr.debian.org/debian/ lenny main deb-src http://ftp.fr.debian.org/debian/ lenny main deb http://security.debian.org/ lenny/updates main deb-src http://security.debian.org/ lenny/updates main deb http://volatile.debian.org/debian-volatile lenny/volatile main deb-src http://volatile.debian.org/debian-volatile lenny/volatile main # apt-get update
4. Installation des librairies du kernel Pour cela, on utilise l’utilitaire aptget : # apt-get install ssh # apt-get install build-essential # apt-get install linux-headers-$(uname -r) # apt-get install bison libssl-dev libeditline0 libeditline-dev libedit-dev libnewt-dev
- 2-
© ENI Editions - All rigths reserved - educ hafa
Installation des services complémentaires de base 1. Service NTP Les services NTP (Network Time Protocol) permettent de maintenir le serveur toujours à l’heure ; ce dernier se synchronise sur des serveurs de temps accessibles sur Internet. Installation du service via aptget : # apt-get install ntp À l’issue de l’installation, il faut modifier le fichier /etc/ntp.conf et renseigner les noms des serveurs de temps français. server 0.fr.pool.ntp.org server 1.fr.pool.ntp.org server 2.fr.pool.ntp.org Démarrage du service : # /etc/init.d/ntp restart Stopping NTP server: ntpd. Starting NTP server: ntpd.
2. Service SMTP Postfix L’installation du package postfix va permettre la gestion des envois de messages vocaux depuis Asterisk.
a. Installation # apt-get install postfix
Il faut valider cette première page :
© ENI Editions - All rigths reserved - educ hafa
- 1-
Sur cette page, il faut sélectionner la valeur "Pas de configuration", puis valider. L’installation de postfix est terminée.
b. Configuration Il faut modifier le fichier principal de configuration /etc/postfix/main.cf. myhostname = autocom.masociete.com mydomain = masociete.com myorigin = $myhostname mydestination = $myhostname, localhost.$mydomain, localhost mynetworks = 127.0.0.1 transport_maps = hash:/etc/postfix/transport home_mailbox = Maildir/ mail_spool_directory = /var/spool/mail/ mail_name = courriel smtp_banner = $myhostname ESMTP $mail_name Il faut également modifier le fichier transport dans /etc/postfix/transport domaine1.com domaine2.com domaine3.fr
relay:[192.168.1.50] relay:[ 192.168.1.50] relay:[ 192.168.1.50]
et créer la table transport à l’aide de la commande : # postmap /etc/postfix/transport
c. Vérification de la configuration # postfix check En cas d’erreur, le message suivant apparaît : postfix: fatal: open /etc/postfix/main.cf: No such file or directory
d. Lancement de Postfix
- 2-
© ENI Editions - All rigths reserved - educ hafa
À l’issue, il est nécessaire de redémarrer postfix afin de prendre en compte la table de routage. # /etc/init.d/postfix restart
3. Installation du service MySQL a. Installation Il existe différentes méthodes pour l’installation du serveur MySQL ; nous préconisons l’installation à partir de l’utilitaire aptget. # apt-get install mysql-server Durant la phase d’installation, il est demandé de saisir un mot de passe pour le compte root mysql.
Saisir le mot de passe souhaité puis valider par OK. Il faut ensuite le confirmer une fois.
b. Connector ODBC Pour pouvoir interfacer Asterisk avec MySQL, il faut installer le connecteur ODBC de MySQL (notamment pour le stockage des messages vocaux en base de données). # apt-get install unixodbc unixodbc-dev libmyodbc libmysqlclient15-dev Il faut apporter les modifications suivantes dans les fichiers /etc/odbcinst.ini et /etc/obdc.ini. # vi /etc/odbcinst.ini [odbcasterisk] DRIVER = /usr/lib/odbc/libmyodbc.so
© ENI Editions - All rigths reserved - educ hafa
- 3-
SETUP = /usr/lib/odbc/libodbcmyS.so UsageCount = 1 [MySQL ODBC 3.51 Driver] DRIVER =/usr/lib/odbc/libmyodbc.so SETUP =/usr/lib/odbc/libodbcmyS.so UsageCount =1 # vi /etc/odbc.ini [MySQL-asterisk] Description = MySQL Asterisk Database Driver = odbcasterisk Trace = Yes TraceFile = /var/log/odbc/extodbc.log Debugging = Yes DebugFile = /var/log/odbc/debugodbc.log Database = asterisk Servername = 127.0.0.1 Username = odbc (ce compte sera ajouter sur mysql ultérieurement) Password = test1234 (mot de passe du compte ci-dessus) Port = 3306 socket=/var/run/mysqld/mysqld.sock (vérifier l’emplacement du fichier .sock)
c. Configuration Postinstall Ajout de l’utilisateur système # mysql -uroot -p mysql > grant all privileges on asterisk.* to ‘odbc’@’localhost’ identified by ‘motdepasse’ with grant option; mysql> flush privileges;
4. Installation des services HTTP PHP5 a. Installation # apt-get install apache2 php5 libapache2-mod-php5 php5-mysql Paramétrage de apache2.2-common (2.2.9-10+lenny7) ... Enabling site default. Enabling module alias. Enabling module autoindex. Enabling module dir. Enabling module env. Enabling module mime. Enabling module negotiation. Enabling module setenvif. Enabling module status. Enabling module auth_basic. Enabling module deflate. Enabling module authz_default. Enabling module authz_user. Enabling module authz_groupfile. Enabling module authn_file. Enabling module authz_host. Paramétrage de apache2-mpm-prefork (2.2.9-10+lenny7) ... Starting web server: apache2. Paramétrage de apache2 (2.2.9-10+lenny7) ... Paramétrage de php5-common (5.2.6.dfsg.1-1+lenny8) ... Paramétrage de libapache2-mod-php5 (5.2.6.dfsg.1-1+lenny8) ...
- 4-
© ENI Editions - All rigths reserved - educ hafa
Creating config file /etc/php5/apache2/php.ini with new version Reloading web server config: apache2. Paramétrage de php5 (5.2.6.dfsg.1-1+lenny8) ... Paramétrage de php5-mysql (5.2.6.dfsg.1-1+lenny8) ... Paramétrage de sgml-base (1.26) ... Paramétrage de xml-core (0.12) ...
© ENI Editions - All rigths reserved - educ hafa
- 5-
Installation des modules spécifiques à Asterisk 1. Installation de Dahdi Dahdi (Digium Asterisk Device Interface), anciennement Zaptel est un module logiciel intermédiaire entre Asterisk (via son module de canaux chan_dahdi) et les pilotes de périphériques matériels. Dahdi va donc permettre à Asterisk d’utiliser les cartes de communication (analogiques, BRI et PRI) vers le réseau commuté. Les deux packages essentiels que sont dahdilinux et dahditools sont inclus dans le fichier proposé par Digium (dahdilinuxcomplete2.3.0+2.3.0.tar.gz).
a. Installer Dahdi # cd /usr/src # wget http://downloads.asterisk.org/pub/telephony/dahdi-linuxcomplete/releases/dahdi-linux-complete-2.3.0+2.3.0.tar.gz # tar zxvf dahdi-linux-complete-2.3.0+2.3.0.tar.gz # chown -R root:root dahdi-linux-complete-2.3.0+2.3.0 # cd dahdi-linux-complete-2.3.0+2.3.0 # ls -l drwxrwxr-x 2 root root 4096 avr 12 22:51 build_tools -rw-rw-r-- 1 root root 3062 avr 12 22:51 ChangeLog drwxrwxr-x 6 root root 4096 avr 12 22:51 linux -rw-rw-r-- 1 root root 778 jui 21 2008 Makefile -rw-rw-r-- 1 root root 1127 jui 3 2008 README drwxrwxr-x 7 root root 4096 avr 12 22:52 tools
b. Compiler Dahdi Il faut veiller à disposer de l’utilitaire make (aptget install make) et du kernelheaders (aptget y install linuxheaders`uname r`)
# make clean # make all # make install < ... > /usr/bin/install -c -d /etc/dahdi /usr/bin/install -c -m 644 system.conf.sample /etc/dahdi/system.conf /usr/bin/install -c -d -m 755 //usr/lib /usr/bin/install -c -m 755 libtonezone.a /usr/lib/ /usr/bin/install -c -m 755 libtonezone.so /usr/lib/libtonezone.so.2.0 if [ `id -u` = 0 ]; then \ /sbin/ldconfig || : ;\ fi rm -f /usr/lib/libtonezone.so /bin/ln -sf libtonezone.so.2.0 \ /usr/lib/libtonezone.so.2 /bin/ln -sf libtonezone.so.2.0 \ /usr/lib/libtonezone.so # Overwrite the 1.0 links out there. dahdi-tools 2.0.0 installed # 1.0 links but dahdi-tools changed them to 2.0 in order to explicitly # break applications linked with zaptel. But, this also meant that # applications linked with libtonezone.so.1.0 broke when dahdi-tools # 2.1.0 was installed. /bin/ln -sf libtonezone.so.2.0 \ /usr/lib/libtonezone.so.1.0 /bin/ln -sf libtonezone.so.2.0 \ /usr/lib/libtonezone.so.1 /usr/bin/install -c -d -m 755 //usr/include/dahdi /usr/bin/install -c -m 644 tonezone.h /usr/include/dahdi/ ###################################################
© ENI Editions - All rigths reserved - educ hafa
- 1-
### ### DAHDI tools installed successfully. ### If you have not done so before, install init scripts with: ### ### make config ### ################################################### make[1]: quittant le répertoire « /home/sdeon/dahdi-linuxcomplete-2.3.0+2.3.0/tools » # make config make[1]: quittant le répertoire « /home/sdeon/dahdi-linuxcomplete-2.3.0+2.3.0/tools » make -C tools config make[1]: entrant dans le répertoire « /home/sdeon/dahdi-linuxcomplete-2.3.0+2.3.0/tools » install -D dahdi.init /etc/init.d/dahdi /usr/bin/install -c -D -m 644 init.conf.sample /etc/dahdi/init.conf /usr/bin/install -c -D -m 644 modules.sample /etc/dahdi/modules /usr/bin/install -c -D -m 644 xpp/genconf_parameters /etc/dahdi/genconf_parameters /usr/bin/install -c -D -m 644 modprobe.conf.sample /etc/modprobe.d/dahdi.conf /usr/bin/install -c -D -m 644 blacklist.sample /etc/modprobe.d/dahdi.blacklist.conf /usr/sbin/update-rc.d dahdi defaults 15 30 Adding system startup for /etc/init.d/dahdi ... /etc/rc0.d/K30dahdi -> ../init.d/dahdi /etc/rc1.d/K30dahdi -> ../init.d/dahdi /etc/rc6.d/K30dahdi -> ../init.d/dahdi /etc/rc2.d/S15dahdi -> ../init.d/dahdi /etc/rc3.d/S15dahdi -> ../init.d/dahdi /etc/rc4.d/S15dahdi -> ../init.d/dahdi /etc/rc5.d/S15dahdi -> ../init.d/dahdi DAHDI has been configured. List of detected DAHDI devices: No hardware found make[1]: quittant le répertoire « /home/sdeon/dahdi-linuxcomplete-2.3.0+2.3.0/tools » Cette dernière commande permet de détecter les périphériques Dadhi installés sur le système : Si une carte de type Digium TE122 est installée dans le serveur, nous aurons le message suivant : List of detected DAHDI devices: pci:0000:00:0c.0 wcte12xpd161:8001 Wildcard TE122 run ‘dahdi_genconf modules’ to load support for only the DAHDI hardware installed in this system. By default support for all DAHDI hardware is loaded at DAHDI start. Dahdi doit être chargé avant Libpri et Asterisk.
c. Configurer Dahdi Les fichiers de configuration sont présents dans le répertoire /etc/dahdi et il est recommandé de modifier le fichier /etc/dahdi/modules à l’aide du générateur de configuration dahdi appelé dahdi_genconf. Il est utile de sauvegarder, au préalable, le fichier /etc/dahdi/modules. En effet, le fichier modules contient les pilotes détectés et nécessaires à charger au niveau de la configuration de Dahdi. La commande dahdi_genconf permet de créer deux autres fichiers très utiles : * /etc/dahdi/system.conf (l’équivalent de /etc/zaptel.conf) ; * /etc/asterisk/dahdichannels.conf (au préalable, il faut créer un dossier /etc/asterisk).
- 2-
© ENI Editions - All rigths reserved - educ hafa
# # # #
mkdir /etc/asterisk cd /etc/dahdi mv modules modules.original dadhi_genconf modules
# cat modules # Digium TE122: PCI single-port T1/E1/J1 wcte12xp # ls -l /etc/asterisk/ total 4 -rw-r--r-- 1 root root 390 jun 5 22:16 dahdi-channels.conf vi genconf_parameters ... lc_country fr ... Après l’installation d’Asterisk, le fichier dahdi_channels.conf doit être appelé en modifiant le fichier /etc/asterisk/chan_dahdi.conf (qui est l’équivalent de l’exfichier /etc/asterisk/zapata.conf). Lorsque Dahdi est utilisé avec une carte de type PCI, il faut configurer le fichier /etc/dahdi/system.conf. Exemple de configuration pour une carte T2 qui va gérer une ligne ½ T2 (15 canaux) : /etc/dahdi/system.conf span=1,1,0,ccs,hdb3 bchan=1-15 dchan=16 loadzone = fr defaultzone = fr Ce fichier permet également de fournir, aux pilotes Dahdi, les informations concernant le type de carte de communication utilisée. Par exemple, pour une interface T2 à 15 canaux, les paramètres suivants sont pertinents : span = numéro_span , timing , LBO , framing , coding numéro_span : numéro du port (span) timing : concerne la synchronisation du temps (0: le span n’est pas la source de synchronisation, 1: le span est la source de synchronisation, 2: source secondaire) LBO : Line Built Out (0: 0db) Framing : communication avec le matériel de l’opérateur (pour une T1, les valeurs possibles sont d4 ou esf; pour une E1, les valeurs possibles sont cas ou css coding : communication avec le matériel de l’opérateur (T1 : ami ou b8zs; E1 : ami ou hdb3) bchan : concerne les numéros de canaux (exemple : 1-15, 17-31) dchan : concerne le numéro de canal utilisé pour la signalisation (exemple : 16, 32) loadzone : concerne la zone de tonalité (fr, it, us, ...) defaultzone : concerne zone de tonalité par défaut (fr, it, us, ...) Exemple d’une configuration avec une carte T2 (TE207P) connectée à 2 lignes T2 de 30 canaux chacune : span=1,1,0,ccs,hdb3 bchan=1-15,17-31 dchan=16 span=2,1,0,ccs,hdb3 bchan=32-46,48-62 dchan=47 Exemple d’une configuration avec une carte TDM22B avec 2 ports FXO et 2 ports FXS :
© ENI Editions - All rigths reserved - educ hafa
- 3-
fxsks=1,2 fxoks=3,4 loadzone=fr defaultzone=fr Exemple de contenu de /etc/dahdi/system.conf pour une carte Digium 4 T0 (Digium B410P: 4 NT/TE BRI ports wcb4xxp) où 2 ports seulement sont connectés : # # # # # # #
Dahdi Configuration File This file is parsed by the Dahdi Configurator, dahdi_cfg Span 1: WCTDM/4 "Wildcard TDM400P REV I Board 5" (MASTER) channel 1, WCTDM/4/0, no module. channel 2, WCTDM/4/1, no module.
# An example of BRI port: # span=1,1,0,ccs,ami #bchan=1,2,4,5,7,8,10,11 bchan=1,2 #dchan=3,6,9,12 hardhdlc=3 # Global data loadzone=fr defaultzone=fr Le fichier /etc/asterisk/chan_dahdi.conf permet de faire un lien entre ce qui est réellement installé (system.conf) et ce que le logiciel Asterisk doit utiliser. Il précise également les paramètres associés aux matériels. Dahdi ne peut être configuré qu’après l’installation d’Asterisk. Exemple de contenu de /etc/asterisk/chan_dahdi.conf [trunckgroups] [channels] ; type de lignes PRI (ISDN) switchtype=euroisdn ; paramètre du dialplan utile pour l’opérateur pridialplan=unknown ; signalisation de l’interface signalling=pri_cpe ; activation du suppesseur d’écho echocancel=yes ; activation de l’apprentissage de l’écho par le suppresseur d’écho echotraining=yes ; activation de la détection de fax dans le sens entrant et le sens sortant faxdetect=both language=fr ; classe de la musique par défaut musiconhold=default ; les appels entrants sur la ligne T2 sont dirigés vers le contexte incoming du plan de numérotation context=incoming ;définition du groupe de canaux group=1 ; définition des canaux channel => 1-15,17-31 group=2 channel => 32-46,48-62
- 4-
© ENI Editions - All rigths reserved - educ hafa
Avec ces paramètres non exhaustifs, il sera possible d’utiliser des types de groupes de canaux dans le plan de numérotation (extensions.conf) : ●
●
Dahdi/g1 pour tous les canaux de 1 à 15 et de 17 à 31 (cela correspond à une première ligne T2 de 30 canaux). Dahdi/g2 pour tous les canaux de 32 à 46 et de 48 à 62 (cela correspond à une seconde ligne T2 de 30 canaux).
Ces variables de canaux seront utilisées notamment pour indiquer ou router les appels sortants. Un port FXO (port où est branchée une ligne RTC) dialogue avec un port FXS; il utilise une signalisation FXS : ●
signalling=fxs_ks.
Un port FXS dialogue avec un port FXO, il utilise une signalisation FXO : ●
signalling=fxo_ks.
Cas d’une carte (TDM 11B) avec un port FXO et un port FXS : [channels] ... ; le téléphone analogique est connecté au port 1 (FXS) de la carte ; les appels entrants sur ce port sont dirigés vers le contexte « appels_internes » ; la signalisation est de type FXO context=appels_internes signalling=fxo_ks channel => 1 ; la ligne RTC est connectée au port1 (FXO) de la carte ; les appels entrants sur ce port sont dirigés vers les contexte « appels_entrants » ; la signalisation est de type FXS context=appels_entrants signalling=fxs_ks channel => 2 La syntaxe générale de chan_dahdi.conf est la suivante : [trunkgroups] [channels] #include "dahdi-channels.conf Dans certains cas, le fichier dahdichannels.conf n’existe pas et son contenu est directement dans chan_dahdi.conf. Contenu de dahdichannels.conf : ; ; ; ; ; ; ; ; ; ;
DAHDI telephony interface Configuration file You need to restart Asterisk to re-configure the DAHDI channels CLI> reload chan_dahdi.so will reload the configuration file, but not all configuration options are re-configured during a reload.
[trunkgroups] © ENI Editions - All rigths reserved - educ hafa
- 5-
[channels] language=fr context=external switchtype=euroisdn pridialplan=unknown prilocaldialplan=unknown signalling=pri_cpe
usecallerid=yes hidecallerid=no callwaiting=yes usecallingpres=yes callwaitingcallerid=yes threewaycalling=yes transfer=yes canpark=yes cancallforward=yes callreturn=yes echocancel=yes echocancelwhenbridged=yes rxgain=0.0 txgain=0.0 ; group=1 context=external channel => 1,2 ;channel => 1,2,4,5,7,8,10,11 callgroup=1 context=external channel => 1,2 ;channel => 1,2,4,5,7,8,10,11 callgroup=1 pickupgroup=1
d. Utilitaires Dahditools Auparavant avec Zaptel, nous utilisions ZTOOL et ZTCFG pour vérifier que la carte de communication était correctement installée et connectée. Désormais, lors de l’installation de Dahdi, nous avons à notre disposition les "dahditools". Il ne faut pas oublier d’initier le chargement de Dahdi par Linux : # /etc.init.d/dahdi start Loading DAHDI hardware modules: wcte12xp: done Running dahdi_cfg: done. # lsmod | grep dahdi dahdi_dummy dahdi crc_ccitt
9384 190728 6337
0 2 dahdi_dummy,wctdm 1 dahdi
# /usr/sbin/dahdi_scan [1] active=yes alarms=UNCONFIGURED description=DAHDI_DUMMY/1 (source: RTC) 1 name=DAHDI_DUMMY/1 manufacturer= devicetype=DAHDI Dummy Timing location= basechan=1 totchans=0 irq=0
- 6-
© ENI Editions - All rigths reserved - educ hafa
2. Module Libpri Libpri est un module utilisé par les fabricants de cartes de communication qui permet aux interfaces PRI d’être utilisées par Asterisk. # wget http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri1.4.10.2.tar.gz # cd /usr/src/ # tar zxvf libpri-1.4.10.2.tar.gz # chown -R root:root libpri-1.4.10.2/ # cd libpri-1.4.10.2/ # make clean # make # make install mkdir -p /usr/lib mkdir -p /usr/include install -m 644 libpri.h /usr/include install -m 755 libpri.so.1.4 /usr/lib if [ -x /usr/sbin/sestatus ] && ( /usr/sbin/sestatus | grep "SELinux status:" | grep -q "enabled"); then /sbin/restorecon -v /usr/lib/libpri.so.1.4; fi ( cd /usr/lib ; ln -sf libpri.so.1.4 libpri.so) install -m 644 libpri.a /usr/lib if test $(id -u) = 0; then /sbin/ldconfig -n /usr/lib; fi Libpri est chargé automatiquement par Asterisk.
À partir de la version 1.4.4, libpri permet de gérer également les accès BRI en plus des accès PRI.
3. Module Asterisk Le module Asterisk est le logiciel de téléphonie. Nous avons choisi d’installer la dernière version de la famille 1.6 même si les versions les plus répandues sur les systèmes en production demeurent les versions 1.2 et 1.4 du fait de l’historique.
a. Création de l’utilisateur Asterisk # adduser --home /var/lib/asterisk -u 5060 asterisk
b. Téléchargement du package Asterisk # cd /usr/src/ # wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.6.2current.tar.gz # tar zxvf /download/ asterisk-1.6.2-current.tar.gz # chown -R root:root asterisk-1.6.2.8 # cd /usr/src/asterisk-1.6.2.8
c. Compilation d’Asterisk # make clean # ./configure < ... > checking for mandatory modules: ... ok configure: creating ./config.status config.status: creating build_tools/menuselect-deps config.status: creating makeopts config.status: creating channels/h323/Makefile
© ENI Editions - All rigths reserved - educ hafa
- 7-
config.status: creating include/asterisk/autoconfig.h .$$$$$$$$$$$$$$$=.. .$7$7.. .7$$7:. .$$:. ,$7.7 .$7. 7$$$$ .$$77 ..$$. $$$$$ .$$$7 ..7$ .?. $$$$$ .?. 7$$$. $.$. .$$$7. $$$$7 .7$$$. .$$$. .777. .$$$$$$77$$$77$$$$$7. $$$, $$$~ .7$$$$$$$$$$$$$7. .$$$. .$$7 .7$$$$$$$7: ?$$$. $$$ ?7$$$$$$$$$$I .$$$7 $$$ .7$$$$$$$$$$$$$$$$ :$$$. $$$ $$$$$$7$$$$$$$$$$$$ .$$$. $$$ $$$ 7$$$7 .$$$ .$$$. $$$$ $$$$7 .$$$. 7$$$7 7$$$$ 7$$$ $$$$$ $$$ $$$$7. $$ (TM) $$$$$$$. .7$$$$$$ $$ $$$$$$$$$$$$7$$$$$$$$$.$$$$$$ $$$$$$$$$$$$$$$$. configure: configure: configure: configure: configure:
Package configured for: OS type : linux-gnu Host CPU : i686 build-cpu:vendor:os: i686 : pc : linux-gnu : host-cpu:vendor:os: i686 : pc : linux-gnu :
La commande ./configure va à terme uniquement si tous les packages du système d’exploitation sont présents. Dans notre installation, il manque les paquets libxml2dev et les paquets liés à ncurses. La branche 1.6 d’Asterisk permet, tout comme la 1.4, de personnaliser l’installation en ne sélectionnant que les options correspondantes à l’installation cible. Cette personnalisation s’effectue via la commande make menuselect, qui reste cependant optionnelle. # make menuselect ************************************************** Asterisk Module and Build Option Selection ************************************************** Press ’h’ for help. --->
Applications Bridging Modules Call Detail Recording Channel Drivers Codec Translators Format Interpreters Dialplan Functions PBX Modules Resource Modules Test Modules Compiler Flags Voicemail Build Options Module Embedding Core Sound Packages Music On Hold File Packages Extras Sound Packages
Un menu d’aide (h) permet d’obtenir l’écran suivant : ************************************************** Asterisk Module and Build Option Selection ************************************************** Press ’h’ for help.
- 8-
© ENI Editions - All rigths reserved - educ hafa
scroll toggle selection select deselect select all deselect all back quit save and quit
=> => => => => => => => =>
up/down arrows Enter y n F8 F7 left arrow q x
XXX means dependencies have not been met or a conflict exists < > means a dependency has been deselected and will be automatically re-selected if this item is selected ( ) means a conflicting item has been selected Nous pouvons apporter une modification dans le menu Core Sounds Packages en cochant toutes les options des sons FR. ************************************************** Asterisk Module and Build Option Selection ************************************************** Press ’h’ for help. [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [*] [*] [*] [*] [*] [*] [*] [*] [*]
CORE-SOUNDS-EN-G722 CORE-SOUNDS-EN-SLN16 CORE-SOUNDS-EN-SIREN7 CORE-SOUNDS-EN-SIREN14 CORE-SOUNDS-ES-WAV CORE-SOUNDS-ES-ULAW CORE-SOUNDS-ES-ALAW CORE-SOUNDS-ES-GSM CORE-SOUNDS-ES-G729 CORE-SOUNDS-ES-G722 CORE-SOUNDS-ES-SLN16 CORE-SOUNDS-ES-SIREN7 CORE-SOUNDS-ES-SIREN14 CORE-SOUNDS-FR-WAV CORE-SOUNDS-FR-ULAW CORE-SOUNDS-FR-ALAW CORE-SOUNDS-FR-GSM CORE-SOUNDS-FR-G729 CORE-SOUNDS-FR-G722 CORE-SOUNDS-FR-SLN16 CORE-SOUNDS-FR-SIREN7 CORE-SOUNDS-FR-SIREN14
French, WAV format Passons à la compilation d’Asterisk : # make Building Documentation For: channels pbx apps codecs formats cdr bridges funcs tests main res +--------- Asterisk Build Complete ---------+ + Asterisk has successfully been built, and + + can be installed by running: + + + + make install + +-------------------------------------------+ # make install +---- Asterisk Installation Complete -------+ + +
© ENI Editions - All rigths reserved - educ hafa
- 9-
+ YOU MUST READ THE SECURITY DOCUMENT + + + + Asterisk has successfully been installed. + + If you would like to install the sample + + configuration files (overwriting any + + existing config files), run: + + + + make samples + + + +----------------- or ---------------------+ + + + You can go ahead and install the asterisk + + program documentation now or later run: + + + + make progdocs + + + + **Note** This requires that you have + + doxygen installed on your local system + +-------------------------------------------+ # make samples # make config update-rc.d: warning: /etc/init.d/asterisk missing LSB information update-rc.d: see Adding system startup for /etc/init.d/asterisk ... /etc/rc0.d/K91asterisk -> ../init.d/asterisk /etc/rc1.d/K91asterisk -> ../init.d/asterisk /etc/rc6.d/K91asterisk -> ../init.d/asterisk /etc/rc2.d/S50asterisk -> ../init.d/asterisk /etc/rc3.d/S50asterisk -> ../init.d/asterisk /etc/rc4.d/S50asterisk -> ../init.d/asterisk /etc/rc5.d/S50asterisk -> ../init.d/asterisk Explication des différentes commandes : La commande make install permet d’aller les chercher tous les paquets sélectionnés dans make menuselect. (par exemple : http://downloads.asterisk.org/pub/telephony/sounds/releases/asteriskcoresoundsfrwav1.4.18.tar.gz). La commande make samples permet l’installation des fichiers de configuration par défaut (/etc/asterisk/sip.conf, /etc/asterisk/extensions.conf...). Il s’agit de fichiers d’exemple. Attention, chaque lancement de cette commande écrase les fichiers de configuration précédents. La commande make config permet d’ajouter les scripts de démarrage (exemple : /etc/init.d/asterisk start).
d. Démarrage d’Asterik Le lancement d’Asterisk peut se faire par la commande /usr/sbin/asterisk ou par le script /etc/init.d/asterisk start (c’est la commande make config qui permet l’utilisation de ce script). # /etc/init.d/asterisk start Starting Asterisk PBX: asterisk. # ps -ef | grep asterisk root 24851 10972 0 21:44 pts/1 root 25469 1 0 21:43 ?
00:00:00 grep asterisk 00:00:00 /usr/sbin/asterisk
e. Accès à la Command Line Interface (CLI) # asterisk -rv asterisk -rv Asterisk 1.6.2.8, Copyright (C) 1999 - 2010 Digium, Inc. and others. Created by Mark Spencer Asterisk comes with ABSOLUTELY NO WARRANTY; type ’core show warranty’ for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it
- 10 -
© ENI Editions - All rigths reserved - educ hafa
under certain conditions. Type ’core show license’ for details. ========================================================================= Connected to Asterisk 1.6.2.8 currently running on srv-alfresco2 (pid = 25469) Verbosity was 0 and is now 1 srv-asterisk*CLI> exit Executing last minute cleanups
4. Module Asteriskperl Le module asteriskperl est une bibliothèque permettant de développer des applications de type AGI et Manager. Ce module ne pouvant pas être installé par CPAN, nous l’installons via la méthode conventionnelle (à partir de http://asterisk.gnuinter.net). # # # # # # # #
wget http://asterisk.gnuinter.net/files/asterisk-perl-1.01.tar.gz cd /usr/src tar zxvf /download/asterisk-perl-1.01.tar.gz chown -R root:root asterisk-perl-1.01/ cd asterisk-perl-1.01/ perl Makefile.PL make all make install
5. Module Asterisksounds Par défaut, Asterisk inclut un ensemble de sons au format GSM en version US. Le choix d’autres langues et d’autres codages s’effectue lors de l’installation d’Asterisk via la commande make menuselect, citée précédemment. Il est alors possible de choisir des sons additionnels dans les menus « Core Sound Packages », « Music On Hold File Packages » et « Extras Sound Packages ».
6. Module AsteriskAddons Le module AsteriskAddons permet de stocker les enregistrements CDR (Call Detail Record) dans une base de données MySQL.
a. Téléchargement du fichier asteriskaddons1.6.2.1.tar.gz # wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/ asterisk-addons-1.6.2.1.tar.gz # cd /usr/src # tar zxvf /download/asterisk-addons-1.6.2.1.tar.gz # chown -R root:root asterisk-addons-1.6.2.1/ # cd asterisk-addons-1.6.2.1/ # ./Configure # make menuselect # make # make install # make samples
b. Modification des droits d’exécution # # # # #
chown chown chown chown chown
-R -R -R -R -R
asterisk:asterisk asterisk:asterisk asterisk:asterisk asterisk:asterisk asterisk:asterisk
/var/lib/asterisk /var/log/asterisk/ /var/run/asterisk/ /var/spool/asterisk/ /dev/dahdi
© ENI Editions - All rigths reserved - educ hafa
- 11 -
# # # # # # # #
- 12 -
chmod -R 750 /var/lib/asterisk/ chmod -R 750 /var/log/asterisk/ chmod -R 750 /var/run/asterisk/ chmod -R 750 /var/spool/asterisk/ chmod -R 750 /dev/dahdi chown -R root:asterisk /etc/asterisk chmod -R 750 /etc/asterisk service asterisk start
© ENI Editions - All rigths reserved - educ hafa
Les clients téléphoniques Nous allons prendre comme exemple le matériel Thomson ST2030 qui offre un excellent rapport qualitéprix. Le téléphone se paramètre directement via le clavier ou via une interface web, à l’aide de l’adresse IP dynamique que le téléphone a récupérée (sous réserve de la présence d’un serveur DHCP dans l’entreprise). L’option SETUP / VoIP Service / Basic Setup permet de paramétrer le serveur SIP primaire (ici, il s’agit du serveur Asterisk avec pour IP 192.168.1.100), le serveur SIP secondaire (192.168.5.100) et le compte SIP (777). Exemple de paramétrage du Primary SIP Server du Thomson ST2030 :
Le protocole SIP fait référence au port UDP 5060 par défaut. Le paramètre Register Frequency indique la durée entre deux tentatives de connexion au serveur SIP.
Exemple de paramétrage du Secondary SIP Server du Thomson ST2030 :
L’option Advanced permet de paramétrer en détail le téléphone. Exemple des fonctionnalités de l’onglet Advanced du Thomson ST2030 :
© ENI Editions - All rigths reserved - educ hafa
- 1-
- 2-
© ENI Editions - All rigths reserved - educ hafa
Introduction Dans ce chapitre, nous abordons tout ce qui touche à la périphérie de la VoIP et qui permet l’acheminement des appels entrants et sortants. ●
●
Appels entrants : ce sont les appels qui proviennent du monde extérieur ; par exemple, un appel provenant d’une ligne analogique, d’une ligne Numéris, d’une ligne GSM, d’une ligne Freebox... Appels sortants : ce sont tous les appels à destination du monde extérieur donc du réseau public commuté.
© ENI Editions - All rigths reserved - educ hafa
- 1-
Les différents supports Pour rappel, le chapitre Stratégie d’architecture TVoIP présente différentes stratégies VoIP, qui s’appuient toutes sur des médias, au sens physique.
1. Lignes RTC Ce type de lignes est le plus ancien et le plus répandu encore à l’heure actuelle. Cette ligne est une ligne analogique de l’opérateur historique, sur laquelle on branche un téléphone analogique et qui est reliée à l’autocommutateur de l’opérateur. La liaison entre la prise de l’abonné et le central est réalisée à l’aide d’une paire téléphonique. Le rôle du central est d’effectuer la mise en relation avec un autre abonné et donc d’effectuer la réservation de circuits de communication et la commutation. Une ligne RTC (Réseau Téléphonique Commuté) fonctionne à un débit de 64 Kb/s. Aucune compression numérique n’est réalisée, principale raison de sa fiabilité. Dans le cadre d’une entreprise, il faut évidemment envisager d’avoir plusieurs lignes RTC isolées ; mais cela devient vite fastidieux à gérer si le besoin en communications simultanées est plus important.
2. Lignes RNIS PRI BRI Une autre façon de se connecter au RTC est d’utiliser une ligne, dite Numéris en France, qui s’appuie sur le RNIS (Réseau Numérique à Intégration de Service) très déployé en Europe dans les années 80/90 mais peu répandu dans le reste du monde.
a. Accès T0 ou BRI (Basic Rate Interface) Disposer d’un accès au réseau Numéris de l’opérateur historique permet d’avoir deux canaux voix ou deux circuits BRI. On parle de 2B+D (2 canaux B + 1 canal D pour la signalisation des données). Le débit maximum est donc de 128 Kb/s avec les deux canaux B de transmission de données. Un lien T0 permet de disposer de deux lignes physiques donc d’avoir un maximum de deux communications simultanées. À un instant t, la ligne T0 peut disposer des capacités suivantes : Nombre d’appels entrants
Nombre d’appels sortants
2
0
1
1
0
2
© ENI Editions - All rigths reserved - educ hafa
- 1-
0
0
b. Accès T2 ou PRI (Primary Rate Interface) D’autres types de liens existent également comme les accès ½ T2 dit "demi T2", équivalents à 16 canaux (15B+D) et également les accès T2 (30B+D), équivalents à 30 canaux simultanés. Un T2 permet donc d’avoir un débit de 30*64 Kbp/s = 2 Mb/s Audelà, il faudra utiliser plusieurs liens T2, T0 ou analogiques. Exemple : une entreprise a besoin de 48 canaux. Elle devra installer un T2, un ½ T2, un T0 et une ligne RTC. En Australie et en Europe, la technologie PRI 30B+D (désignée sous le terme de liaison E1) est utilisée. Alors que dans le reste du monde, c’est la technologie PRI 23B+D qui est utilisée et qui est désignée sous le terme de liaison T1.
c. Qualité de service des accès BRI/PRI de France Télécom La commutation de circuit, utilisée dans ces types de liens, permet de disposer de bande passante fixe. Il n’y a donc aucun souci de qualité de service.
d. Coûts Il existe trois types de coûts : les frais d’installation, l’abonnement mensuel, les coûts des communications. Ce modèle est donc plutôt onéreux et devrait avoir tendance à disparaître dans les prochaines années au profit du support SDSL puis du support fibre optique.
3. Lignes SDSL Plusieurs opérateurs alternatifs de premier plan proposent des offres de raccordement vers le "RTC" à l’aide de liens SDSL. Il faut bien comprendre que les accès T0 et/ou T2 classiques sont résiliés et remplacés par une ligne SDSL. Le débit du lien devra être pris en considération en fonction du nombre de canaux simultanés souhaité. Ce type de liens ne peut pas être installé partout, contrairement aux T0/T2, car cela dépend de l’éligibilité SDSL. De façon générale, les coûts sont moins importants : ●
FAS : les frais d’accès au service dépendent du contrat souscrit ;
●
Abonnement : de façon générale, moins de 50 % par rapport aux abonnements d’Orange ;
●
Coûts des communications : la tarification est souvent avantageuse mais rarement forfaitisée.
Exemple d’une architecture T2 sur SDSL
- 2-
© ENI Editions - All rigths reserved - educ hafa
Dans tous les cas, les lignes SDSL sont locales au site et les acheminements des appels entrants et sortants sont donc locaux, hors communication intrasite si un réseau VPN existe déjà.
4. Trunking SIP Menons la réflexion plus loin, en se demandant si la passerelle vers le réseau commuté ne pourrait pas être externalisée directement chez l’opérateur ; la liaison se faisant alors via une ligne dédiée, de qualité et sous forme IP. Lorsque le protocole SIP est utilisé, il s’agit d’un trunk SIP. Cela présente certains avantages : ●
pas d’installation et de gestion locale de ligne ;
●
pas de carte de communication locale ou de routeurs VoIP en local ;
●
communications centralisées.
Techniquement, ce mode peut tout à fait fonctionner avec un serveur Asterisk dans l’entreprise ou un iPBX chez l’opérateur. En réalité, si nous souhaitons mettre en œ uvre notre propre Asterisk avec un ou plusieurs trunks SIP externalisés, peu de solution existe réellement. Les opérateurs classiques trouvent certainement encore plus d’intérêts de vendre soit des liens T0/T2, soit des lignes SDSL directement au sein de l’entreprise. L’autre tendance chez les opérateurs est de tout maintenir en proposant un trunk SIP bien sûr mais aussi le centrex et la location de postes SIP. Il n’y a pas de bonne solution ; tout dépend quel est le but recherché. Cela dit, la volonté de maîtriser son système d’information en déployant et en exploitant son propre serveur de téléphonie est sans conteste une bonne idée. Le modèle du "centrex local" avec trunks SIP externalisés, séduisant tant financièrement que techniquement, est cependant déjà bien déployé aux ÉtatsUnis et devrait prochainement faire son entrée en France. Afin de minimiser les risques et de garantir une continuité de services, il faudra veiller à répartir les trunks SIP auprès de plusieurs opérateurs et si possible avec des arrivées sur plusieurs sites physiques. Exemple de trunks SIP
© ENI Editions - All rigths reserved - educ hafa
- 3-
- 4-
© ENI Editions - All rigths reserved - educ hafa
Les offres du marché 1. Orange Business Services L’offre VoIP d’OBS (exFrance Telecom) est articulée autour de 5 produits : ●
Business Talk IP ;
●
Business Talk IP Centrex ;
●
Business Talk Global ;
●
Business Internet Centrex (BIC) ;
●
Business Internet Voix (BIV).
Business Talk IP et Business Talk IP Centrex nécessitent de disposer d’un réseau Equant IP VPN avec des liens SDSL ou des liaisons spécialisées (LS) ; en effet, ce type de réseau MPLS (MultiProtocol Label Switching) permet de disposer de la classe de services « Voix ».
a. Business Talk IP Cette solution permet, tout en disposant de ses propres matériels de téléphonie (autocoms, téléphones), d’utiliser une passerelle mutualisée en cœ ur de réseau Equant, afin d’avoir la connectivité avec le réseau téléphonique commuté. Cette plateforme de service OBS permet de supprimer les accès T0/T2 locaux. Les principales caractéristiques sont les suivantes : ●
●
Aucun changement des équipements existants Économies intéressantes car suppression des liens T0/T2 locaux et utilisation de la passerelle centralisée en cœ ur de réseau d’OBS
●
Tarification avantageuse vers les mobiles et les appels internationaux
●
Nécessite un réseau Equant de type SDSL avec QOS (classe Voix)
●
Appels intersites gratuits
●
Web d’administration de la plateforme centralisée
b. Business Talk IP Centrex Le principe est le même que pour l’offre précédente mais la téléphonie est entièrement externalisée, dans le sens où l’entreprise va confier à OBS la gestion de sa téléphonie : l’autocom, dit centrex, est chez l’opérateur, en cœ ur de réseau. Les téléphones sont loués. Outre les coûts récurrents du réseau Equant et les frais de mise en service de cette solution, l’entreprise aura donc à supporter des coûts récurrents : téléphones, centrex, communications téléphoniques. À titre d’information, le prix varie entre 14 et 22 euros HT par mois par utilisateur en fonction du type de terminal choisi. Les communications peuvent être facturées à l’usage ou au forfait. Les principales caractéristiques sont les suivantes : ●
Pas d’investissements en autocom, téléphones, passerelle : mode locatif
●
Pas de gestion technique : web d’administration et web utilisateur
●
Nécessite un réseau Equant
© ENI Editions - All rigths reserved - educ hafa
- 1-
●
Dépendance forte avec OBS
●
Appels intersites gratuits
●
Nombreuses fonctionnalités (messagerie vocale, clisktodial…)
●
GTR 24/24
●
Softphones pour les nomades (nécessite un pack Business EveryWhere)
c. Business Talk Global Cette offre est adaptée aux grands comptes disposant de sites à l’international. Elle permet d’unifier les contrats de téléphonie au sein d’un seul contrat, de disposer de tarifications avantageuses sur les communications, d’appels intersites IP gratuits, disponibilité dans plus de 100 pays. Il n’y a pas de remise en cause de l’existant télécom.
d. Business Internet Centrex (BIC) BIC regroupe, au sein d’un seul abonnement, une téléphonie en mode centrex et un accès Internet. Les téléphones sont loués et la passerelle VoIP est en cœ ur de réseaux d’OBS. Les appels vers les fixes en France sont illimités et des tarifs avantageux sont appliqués pour les mobiles France. Une Business Livebox assure la séparation des deux réseaux voix et data sous forme de VLAN. L’internet est construit au choix sur de l’ADSL ou de la SDSL.
e. Business Internet Voix (BIV) BIV ressemble à son homologue BIC mais le matériel téléphonique et l’autocom ne sont pas chez OBS, ils sont déjà existants. BIV fournit donc un accès Internet (ADSL ou SDSL), un accès vers les passerelles téléphoniques d’OBS, le tout sur la même ligne et via le routeur Business Livebox. BIV revient en moyenne à 13 euros HT/utilisateur/mois. Source : http://www.orangebusiness.com/entreprise
2. SFR SFR propose plusieurs offres autour de la téléphonie fixe et de la convergence. Téléphonie fixe ●
SFR business fixe Centrex : téléphones locaux compris dans l’abonnement, centrex et passerelle chez SFR.
●
9 Office SFR : autocom et téléphones locaux mais passerelle chez SFR.
●
9 Dialog SFR : offre de présélection.
Convergence ●
●
●
- 2-
Pack Business SFR : pour les petites entreprises. Système de communication globale alliant autocom et Internet, téléphonie fixe et mobile, le tout chez SFR. SFR One Centrex : offre intégrée fixe / mobile en mode Centrex. 9ipnet ToIP : offre voix, autocom local ou centrex. Convergence avec le VPN IP data. Convient aux grosses entreprises.
© ENI Editions - All rigths reserved - educ hafa
a. Pack Business (ex 9 Pass) Il s’agit du quadruple play pour les structures de moins de 20 personnes. Avec le pack Business SFR, depuis fin janvier 2010, SFR s’attaque au marché des structures de moins de 20 salariés qui représente environ 600000 entreprises. Ce pack est une sorte de fusion entre l’ex 9Pass de Neuf Telecom, datant de 2006, et de l’offre fixe/mobile de SFR, datant de 2007. Le tronc de l’offre (en mode locatif à 74 euros HT/mois) est composé des fonctionnalités suivantes : ●
●
●
Un accès Internet via ADSL SFR obligatoire. Un Standard téléphonique (ce service remplace le service TV de l’offre grand public, peu utile pour les professionnels). Une ligne fax dédiée avec communications illimitées.
Le standard a été développé par Efixo, la filiale marseillaise de SFR, et permet de raccorder une ligne fax et entre 2 à 9 lignes téléphoniques. Les options permettent d’ajouter de 2 à 9 lignes fixes. Chaque ligne permet de disposer d’un téléphone, des appels illimités vers les fixes France et vers plus de 40 destinations. Il faut au minimum ajouter deux lignes (à 29 euros HT/mois) ainsi que les forfaits vers les mobiles valables pour toutes les lignes fixes (le forfait 4h est à 31,20 euros HT/mois). En résumé, la configuration suivante revient à 163 euros HT par mois : ●
L’autocom
●
L’accès Internet
●
2 téléphones
●
2 lignes fixes
●
Un forfait mobile de 4h
Chaque autre ligne supplémentaire (fax, TPE, alarme…) est facturée 17,30 euros HT/mois.
b. 9 Office Ce service est également basé sur une ligne SDSL en dégroupage total chez SFR9T. Un boîtier 9office permet de raccorder le PBX local au réseau 9T et ainsi de disposer de canaux voix. Les communications sont soumises à une grille tarifaire attractive. L’abonnement SDA est à 3 euros/mois. L’accès à Internet est en option. En cas de non éligibilité, le site est rattaché en présélection mais bénéficie de la même grille tarifaire que du site raccordé en direct. SFR est le résultat de la fusion de SFR (expertise mobilité), et de 9 Telecom (expertise en réseau de données) qui avait également acquis Cegetel en 2005. Sources : http://www.neufcegetel.fr, http://www.sfr.fr, http://www.wengo.com
3. Completel En 2009, l’opérateur spécialisé en réseau fibre optique pour entreprises a racheté B3G, acteur majeur du monde des centrexs IP. En matière de téléphonie, l’opérateur propose les solutions suivantes :
© ENI Editions - All rigths reserved - educ hafa
- 3-
●
Téléphonie directe ●
●
Téléphonie indirecte ●
●
Gestion des appels sortants (présélection).
Passerelle ToIP ●
●
Installation de fibre optique ou SDSL en remplacement des liens T0/T2, GTR de 4h.
Centralisation de la téléphonie IP sans remise en compte du réseau Data en place.
Completude ●
Solution pour fixe, mobile et Internet. Il s’agit ici uniquement de l’évasion des flux téléphonique et internet ; l’installation locale PBX + téléphones IP restent inchangées. L’offre Completude à destination des PME permet de bénéficier d’un accès Internet jusqu’à 4 Mb/s et d’un accès au réseau RTC, via le réseau de Completel. Ce service s’appuie sur une ligne SDSL construite spécialement par l’opérateur. Les numéros de téléphone de l’entreprise bénéficient de la portabilité. Pour les grandes entreprises, Completel met en place une ligne SDSL et un boîtier spécifique permettant de remplacer les accès T2 de France Telecom. Les coûts sont avantageux : moins 50 % sur l’abonnement, et les coûts des communications également. Completel commercialise des offres via des liens Fibre optique connus pour leur robustesse et leur capacité illimitée en voix/data, des liens SDSL GS 100% des débits ATM et IP garantis (pas de burst) ou via des liens de type LS (LPT) à 2048 Kbps où le transport de la voix est natif et équivalent à un T2 RNIS. ●
●
Une SDSL 4 Mbps (4GS) permet d’émuler 1 T2 soit 30 canaux sans compression (G711). Une SDSL 2 Mbps (2GS) permet d’émuler 1 T2 avec compression (G729) ou ½ T2 soit 15 canaux sans compression.
Source : http://www.completel.fr ●
BCentrex ●
●
Il s’agit ni plus ni moins que de l’offre BCentrex de l’ancien acteur du centrex IP B3G Telecom, racheté en 2009. C’est une offre complète de VoIP/ToIP avec centrex B3G, téléphones IP en mode locatif, deux liens haut débit (de type SDSL) d’interconnexion avec le réseau de B3G. Le premier lien est dédié VoIP et le second sert de backup de la VoIP au cas où le premier lien ne serait plus disponible. Le lien de backup peut également servir de lien pour le transport des données. Il est à noter que les deux liens sont pris chez deux opérateurs différents, dans la mesure du possible. La passerelle est en cœ ur de réseau opérateur. Un plugin outlook permet un interfaçage des contacts téléphoniques avec la messagerie. Les coûts des communications sont attractifs.
4. Free Cet opérateur s’adresse essentiellement au grand public mais rien n’interdit d’installer plusieurs accès freebox en entreprise. Techniquement, une Freebox permet de disposer d’une offre tripleplay (Internet, téléphonie et télévision) grâce à des lignes trivc ("virtual channels" pour canaux virtuels). Le téléphone analogique se branche sur la box et la téléphonie locale et nationale est illimitée (hors mobiles). Le forfait de 29,99 euros/mois est attractif.
- 4-
© ENI Editions - All rigths reserved - educ hafa
Il est également possible d’utiliser le service Freephonie via un softphone SIP : cela permet, depuis n’importe quel ordinateur, d’émettre ou de recevoir des appels vers des fixes ou mobiles aux conditions de Free. L’interface de gestion du compte Free permet de paramétrer les informations relatives au compte SIP : ●
Nom d’utilisateur : il s’agit du numéro de téléphone Free
●
Identifiant : idem
●
Mot de passe : à définir par l’utilisateur
●
Domaine : freephonie.net
●
Rediriger les appels entrants vers le compte SIP : OUI/NON
●
Rediriger les appels entrants vers la Freebox : OUI/NON
●
Service activé : OUI/NON
Ces paramètres sont à renseigner dans les clients SIP comme XLite par exemple.
Exemple : la téléphonie Free
Chaque Freebox V5 représente potentiellement un point de connexion WiFi si la connexion Freephonie est autorisée. Cela permet à un téléphone/smartphone de se connecter en WiFi sur une Freebox "Freephonie" via une authentification à base de clé privée/clé publique à installer et disponible dans l’interface de gestion du compte Free.
5. Direct Centrex Frontier Software est une société qui commercialise des offres sous forme de forfaits (forfait conso, forfait de base, forfait international, forfait illimité, forfait liberté). L’utilisateur dispose d’un compte VoIP, un numéro de téléphone pour les appels entrants/sortants. Il suffit d’être connecté au serveur VoIP de Direct Centrex, via une connexion Internet. Les appels vers les mobiles, n° azur, n° vert font l’objet d’une tarification supplémentaire. Source : http://www.directcentrex.com
© ENI Editions - All rigths reserved - educ hafa
- 5-
6. De nouvelles offres a. Keyyo (ex Phonesystem) Keyyo propose des offres à destination des PME/TPE et des offres à destination des particuliers : ●
3 Offres business, à base de centrex ●
●
●
Libre Centrex à 5 euros/mois/poste : tarification à la consommation de 0.014 euro HT/min pour les appels France fixe et 0.10 euro HT/min vers les mobiles France. Illimité Centrex à 15 euros/mois/poste : appels illimités vers fixes France + 50 destinations internationales + tarif mobiles France à 0.10 euro HT/min. Illimité Mobile Centrex à 39 euros/mois/poste : appels illimités vers tous les fixes France + 50 destinations internationales + tous les mobiles en France de tous les opérateurs.
Les téléphones IP proposés sont des modèles Cisco Linksys SPA 922 au prix de 112 euros HT et des modèles (pour standard) Cisco Linksys SPA 942 au prix de 134,95 euros HT. Keyyo propose également des accès ADSL Pro et SDSL, soit dédiés à la téléphonie seule, soit mutualisés avec l’internet. Cijoint le tableau comparatif débit / nombre de postes indicatifs / nombre d’appels simultanés : Quel débit choisir ?
Accès dédié Téléphonie IP
Accès mutualisé Téléphonie IP + Internet
Nombre de postes indicatifs
Nombre d’appels simultanés
Nombre de postes indicatifs
Nombre d’appels simultanés
ADSL ProMax
15
5
SDSL 512 Kbps
30
10
SDSL 1 Mbps
60
20
40
12
SDSL 2 Mbps
150
40
100
30
SDSL 4 Mbps
400
80
200
60
Source : www.keyyo.fr
b. Ciel Telecom Cette société propose aux PME tout un ensemble de services de téléphonie qui est adapté à chaque type d’entreprises. Elle propose un audit gratuit des factures de téléphonie et annonce une réduction possible comprise entre 30 et 70% par rapport à l’existant (abonnements + consommations). Les services sont les suivants : Offres sans abonnement ●
Ciel National Gratuit, pour ne plus payer les appels nationaux C’est l’offre basique de présélection avec la grille tarifaire suivante :
- 6-
●
Local : 1 centime € HT/minute + coût de connexion de 7,5 centimes €.
●
National : gratuit.
●
Mobiles : 8 centimes € HT/minute + coût de connexion de 17,5 centimes €.
© ENI Editions - All rigths reserved - educ hafa
●
●
Ciel Liberté, pour en finir avec les coûts de connexion ●
●
Cette offre s’adresse aux clients passant beaucoup d’appels courts (moins de 2 minutes). Les prix vers les fixes sont de 2,3 centimes € HT/mn et vers les mobiles de 15,9 centimes € HT/mn.
Ciel Infini, pour bénéficier d’un forfait local/national illimité ●
●
International (Zone A, Europe, USA, Canada) : 6 centimes € HT/minute + coût de connexion de 10 centimes €.
L’offre est à 19,50 € HT/mois et les appels vers les mobiles sont à 10 centimes € HT/mn + 21 centimes € de coût de connexion.
Ciel Infini Global, pour un forfait local/national/mobiles illimité ●
L’offre est à 48 € HT/mois et s’adresse à des clients émettant beaucoup d’appels vers mobiles à partir des postes fixes.
Offres avec abonnement ●
Pack national gratuit : C’est une offre qui vient se substituer à l’abonnement classique de la ligne de téléphone (16 € HT/mois chez Orange). L’abonnement est à 12,95 € HT/mois et les communications sont facturées selon la grille de Ciel National Gratuit.
●
Pack Liberté : abonnement à 12,95 HT/mois + conditions de Ciel Liberté.
●
Pack Infini : abonnement et tous les appels illimités vers les fixes pour 29,99 € HT/mois.
●
Pack Infini Global : abonnement et tous les appels illimités vers les fixes et mobiles pour 59,99 € HT/mois.
Ciel Centrex Il s’agit d’une offre en mode Centrex où le téléphone IP, préconfiguré, est loué. La SDA est portée chez Ciel Telecom et les appels vers les fixes France sont illimités. La téléphonie s’effectue via le lien Internet du client. Chaque ligne est proposée à 13,50 euros HT/mois. Source : http://www.cieltelecom.fr
c. Poivy Il s’agit d’un fournisseur (basé à Cologne) de téléphonie sortante mais il est également possible de le voir comme un fournisseur de trunk SIP et ainsi de paramétrer l’autocom Asterisk pour émettre les appels sortants sur le trunk. Pour utiliser Poivy, il faut au préalable s’inscrire comme client (aucun frais) en téléchargeant le client SIP Poivy. 5 heures de communications sont offertes par semaine vers une trentaine de destinations pour les fixes dont la France, la Belgique, l’Allemagne, l’Italie, l’Angleterre, les USA (y compris les mobiles). Ensuite, les tarifs sont vraiment agressifs : 0,010 centime €/mn pour les fixes France. Les appels vers les mobiles France sont à 0,06 centime €/minute. Le compte doit ensuite être approvisionné soit en prépaiement (approvisionnement en manuel), soit en post paiement (prélèvement automatique). Source : www.poivy.com Configuration du trunk SIP Poivy sur Asterisk allow=ulaw&alaw authuser=username disallow=all fromuser=username host=sip.poivy.com insecure=very nat=yes
© ENI Editions - All rigths reserved - educ hafa
- 7-
qualify=yes secret=password type=peer username=username Le « username » et le « password » sont ceux créés chez Poivy et correspondent au compte de connexion. Il ne faut pas hésiter à surfer sur le site de gratostel (http://www.gratostel.com) afin de consulter les meilleures offres du marché.
7. Skype Skype fournit un softphone qui permet de passer et de recevoir des appels gratuitement entre utilisateurs skype. Techniquement, il suffit de disposer d’une connexion Internet, afin que le client skype s’enregistre avec le serveur skype. Il est possible de souscrire à l’offre "Skype In" afin de bénéficier d’un numéro (une SDA) et de recevoir des appels en provenance de téléphones fixes et mobiles. Le coût de la communication pour l’émetteur vers un numéro Skype In est celui d’une communication locale. L’offre "Skype Out" permet d’effectuer des appels sortants vers le réseau RTC. Skype offre d’autres fonctionnalités : sms, appels vidéo, transfert de fichiers, conférences téléphoniques, transfert des appels Skype vers une ligne fixe ou mobile. Source : http://www.skype.com
8. L’arrivée des registrars sur le marché OVH Le métier d’OVH est de fournir des noms de domaines, des hébergements de sites web, des serveurs en mode hébergé. Depuis 2009, OVH propose des solutions téléphoniques : ●
Solution DUO (Abonnement de 4,99 euros HT/mois) ●
●
Solution DECT IP (abonnement de 9,99 euros HT/mois) ●
●
Composé d’un téléphone IP Thomson ST2030 + extension 128 touches et d’une ligne SIP. Mêmes conditions que l’offre Solution DECT IP mais avec 10 heures de communications vers les mobiles France.
Solution standardiste + ●
- 8-
Composé d’un téléphone IP Thomson ST2030 et d’une ligne SIP. Mêmes conditions que l’offre Solution DECT IP.
Solution standardiste (abonnement de 29,99 euros HT/mois) ●
●
Composé d’un téléphone DECT Siemens C470 IP et d’une ligne SIP. Inclus les appels fixes en illimité et 3 heures vers les mobiles France.
Solution Office (abonnement de 9,99 euros HT/mois) ●
●
Composé d’un boîtier ATA Lynsys PAP2T permettant de raccorder un téléphone et un fax par exemple. Le boîtier est connecté à la box ADSL. OVH fournit donc 2 lignes (2 numéros géographiques ou non) et une téléphonie de type centrex SIP (via ADSL avec communication illimitée vers les fixes France et plus de 40 pays et une heure vers mobiles France).
Même offre que Solution Standardiste mais avec 2 modules d’extension de 128 touches.
© ENI Editions - All rigths reserved - educ hafa
Il existe également d’autres offres sans forfait mobile ; le récurrent est de l’ordre de 0,99 euro HT/mois : Un téléphone CISCO WIP310 + ligne SIP + appels fixe France illimités, engagement 1 mois, frais de mise en service de 9,99 euros HT, dépôt de garantie de 190 euros, appels intra OVH illimités, facturation à la seconde pour les mobiles et l’international. Enfin, une offre « Passerelle SIP/E1 » à 59,99 euros HT/mois permet de disposer de 30 canaux. Cette offre nécessite de disposer d’une ligne SDSL de 2Mb/s minimum. Attention, le dépôt de garantie est de 2300 euros, restitués en fin de contrat. Cette offre est basée sur la passerelle Epuygy Quadro E1/T1 (un port LAN, un port WAN, un port E1/T1, un port téléphonique pour un téléphone analogique ou un fax). Il semble évident que les registrars, bien connus du grand public, sont les mieux placés pour proposer des offres de type Centrex à bas coûts et toucher une cible importante. Ces offres sont à la base d’un bouleversement du marché et annoncent la disparition des acteurs historiques de la téléphonie à bas coûts sur Internet. Pour le moment, Gandi, 1&1, Nordnet… n’ont pas d’offres de téléphonie. Dans un monde où tout va vite, où tout doit aller vite, les outils de communications doivent être simples, fiables et bon marché. A ce jour, il n’existe pas d’outils fédérateurs pour la téléphonie, la vidéo, la webformation, la webconférence, la messagerie, la GED, le partage de documents… mais le besoin de convergence est bel et bien présent. Les registrars ont une longueur d’avance puisqu’ils ont l’infrastructure et le cloud va permettre de rendre disponible l’application de convergence dont tout le monde rêve. Les opérateurs télécom ont également de l’avance puisqu’ils ont les tuyaux.
© ENI Editions - All rigths reserved - educ hafa
- 9-
Les cartes de communications Digium, la société qui sponsorise le projet Asterisk, commercialise une multitude de cartes de communication et il existe principalement deux types de cartes : les cartes analogiques et les cartes numériques. Source http://www.digium.com (présence d’un configurateur)
1. Cartes analogiques Ces cartes permettent des connexions au réseau RTC et correspondent à des petits sites où le besoin en nombre de canaux simultanés est réduit. Il existe deux types de port : les ports FXS (Foreign eXchange Station) et les ports FXO (Foreign eXchange Office) : ●
●
Les ports FXS permettent de connecter des téléphones analogiques qui vont se connecter sur le serveur Asterisk. Les ports FXO permettent de connecter le serveur Asterisk au réseau commuté.
a. TDM410
PCI 2.2 bus PCI 3.3V ou 5V
Module FXS
Module FXO C’est la carte de base chez digium qui comprend 4 ports sur lesquels vont s’enficher des modules, des S110M FXS pour brancher des téléphones et des X100M FXO pour connecter des lignes analogiques (des POTS). La terminologie TDM400P signifie la carte générique mais en réalité, chaque combinaison de modules FXS/FXO permet d’obtenir une nomenclature de modèle. Exemple de combinaison possible : Modules FXO
Modules FXS
0
1
2
3
4
0
TDM410P
TDM401EF
TDM402EF
TDM403EF
TDM404EF
1
TDM410EF
TDM411EF
TDM412EF
TDM413EF
2
TDM420EF
TDM421EF
TDM422EF
© ENI Editions - All rigths reserved - educ hafa
- 1-
3
TDM430EF
4
TDM440EF
TDM431EF
La carte TDM412EF signifie qu’il s’agit d’une carte TDM410P équipée d’un module FXS et de deux modules FXO. Autrement dit, le serveur Asterisk disposera d’une carte avec 3 lignes RTC et un téléphone analogique.
b. TDM800P Cette carte, similaire à la TDM 400P, permet de connecter 8 modules FXS/FXO, à l’aide de modules S110M, X100M ou S400M (modules de 4 FXS), X400M (modules de 4 POTS). À noter que cette carte dispose de la technologie HPEC (High Performance Echo Canceller) afin d’améliorer les problèmes d’écho.
c. TDM2400P Cette carte permet de connecter jusqu’à 6 modules avec une combinaison de 4 FXS (S400P) et 4 FXO (X400M). La carte TDM2406E correspond à 6 modules quad FXO + antiécho, soit l’équivalent de 24 canaux vers le RTC.
d. Les modèles AEX Les modèles en version PCIX sont déclinés au travers des cartes suivantes : ●
AEX 2400 : 24 ports FXO/FXS maximum ;
●
AEX 800 : 8 ports FXO/FXS maximum ;
●
AEX 410 : 4 ports FXO/FXS maximum.
2. Les cartes numériques a. B410P Carte PCI fonctionnant en 3.3 V et 5 V avec antiécho, exclusivement pour 4 interfaces BRI (T0). Elle fonctionne en mode NT (Network Termination) ou TE (Terminal Equipment) grâce à un jumper.
b. TE122P/TE122B EC
C’est une carte PCI qui fonctionne en 3.3 V ou 5V. Elle fournit une interface T1/J1 ou E1. C’est un jumper qui permet de switcher entre le mode T1 ou J1 (24 canaux) et E1 (32 canaux). Le modèle TE122B dispose d’un module d’anti écho hardware (échocancellation). Les cartes en version PCI Express (PCIX) sont les modèles TE121P/TE121B.
c. TE205/TE207 EC Cette carte fournit deux interfaces T1/J1 (48 canaux) ou E1 (64 canaux). Uniquement sur slots PCI 5V. La TE207 EC dispose d’un module antiécho hardware.
- 2-
© ENI Editions - All rigths reserved - educ hafa
d. TE210/TE212EC Cette carte fournit deux interfaces T1/J1 (48 canaux) ou E1 (64 canaux), ainsi qu’un module antiécho hardware. Elle ne fonctionne que sur des slots PCI 3,3 V. La version PCIX est présente via les modèles TE220/TE220B EC.
e. TE410/TE412 EC Il s’agit de cartes quad span (4 interfaces de communication) en version PCI 3,3 V.
f. TE405/TE407 EC Il s’agit de cartes quad span en version PCI 5 V. Les slots PCI 5V ont tendance à disparaître chez les grands constructeurs d’ordinateurs et de serveurs. Ces cartes étant fragiles et coûteuses, il est recommandé de les manipuler avec précaution en utilisant des gants adaptés. D’autre part, les cartes PCIX ont tendance à se développer fortement en raison de la présence de plus en plus répandue des slots PCIExpress dans les serveurs. D’autres constructeurs de cartes analogiques et numériques sont présents sur le marché et ont des cartes compatibles avec le système Asterisk : ●
Sangoma (http://www.sangoma.com)
●
Junghanns (http://www.junghanns.net)
●
Diva Server (http://www.eicon.com)
Rappel : Afin de bien évaluer son besoin en cartes de communication, il faut prendre en compte : ●
le matériel (nous avons vu que certaines cartes ne fonctionnent que sur des slots PCI 3.3 V ou PCI 5 V ou PCIExpress) ;
●
le nombre de communications simultanées (le nombre de canaux) ;
●
le jumper de la carte Digium pour switcher en configuration E1 présente en France ;
●
le coût d’une solution analogique par rapport à une solution numérique : achat carte + modules + abonnement.
À titre d’information, un abonnement T2 30 canaux chez France Telecom coûte 504 euros HT/mois, un abonnement d’une ligne analogique coûte 12,54 euros HT/mois. Conseil : dans le cadre d’une entreprise, il est plus aisé de maintenir une seule ligne T2 que 30 lignes analogiques.
© ENI Editions - All rigths reserved - educ hafa
- 3-
Les routeurs VoIP 1. Cisco La plateforme de routeurs Cisco Integrated services (Cisco 2801, 2811, 2821, 2851, 3825, 3845), sont des routeurs VoIP s’ils sont correctement adaptés de façon matérielle. Par exemple, le routeur 2801 peut remplacer les cartes Digium et se positionner à la frontière entre le monde interne de l’entreprise et les liens T2. Principales caractéristiques du Cisco 2800 : ●
mémoire : 256 Mo (de base), 384 Mo maximum ;
●
mémoire flash : 128 Mo (de base), 128 Mo maximum ;
●
protocole réseaux : Ethernet, Fast Ethernet, IPSec, SNMP 3, firewall, MPLS, VLAN, 800 tunnels VPN ;
●
●
extensions : 2 slots HWIC (HighPerformance WIC), 1 WIC (Wan Interface Card), 1 VIC (Voice Interface Card), 2 PVDM (DSP) sur carte mère ; deux interfaces réseaux Ethernet 10 BaseT/100 BaseTX RJ45.
Afin de gérer correctement les problématiques de transcodage entre différents codecs, les PVDMs (Packet Voice DSP Module) sont indispensables ; ces modules permettent de fournir des fonctionnalités de transcodage, d’applications RTSP, de conférences, de voix analogiques et numériques. Il existe des PVDM de 8 canaux (par défaut) à 64 canaux (fax et voix). Ce routeur va être installé sur un site d’agence par exemple, sa connectique T2 permet de sortir vers le RTC local. On peut imaginer que les téléphones SIP locaux dialoguent avec un SIP Register primaire via une ligne SDSL et effectuent des appels entrants/sortants vers une passerelle centralisée au siège. En cas de coupure de la ligne SDSL, le téléphone SIP dialogue avec un petit serveur SIP register installé en local et qui va router les appels sortants vers le routeur CISCO 2801. Le chapitre Préparation du réseau présente une configuration détaillée d’un routeur 2801. Source : http://www.cisco.com
2. Bewan Bewan est un constructeur de modem, modemrouteur ADSL, de routeurs VPN et de routeurs hautedisponibilité. Il fournit des passerelles résidentielles (iBOX A5200, A5100) qui disposent des caractéristiques suivantes : ●
●
accès en READSL, ADSL ou ADSL 2+ ; 4 ports Ethernet, 1 borne WIFI 802.11b/g/m, 1 port USB, firewall SPI (Stateful Packet Inspection), VPN, NAT, 2 ports FXS pour connection téléphones analogiques ou DECT, 1 port mixte DSL/FXO (ligne ADSL+RTC).
Les codecs supportés sont G.729ab, G.711u, G.711a et le protocole VoIP est SIP. Exemple de téléphonie VoIP avec une iBOX A5100 :
© ENI Editions - All rigths reserved - educ hafa
- 1-
Le port FXO permet de déborder en cas de backup sur une ligne analogique et s’avère utile pour les appels vers les numéros d’urgence souvent non accessibles via Internet. Source : http://www.bewan.fr
- 2-
© ENI Editions - All rigths reserved - educ hafa
Les passerelles VoIP 1. Patton Nous l’avons vu dans les paragraphes précédents, il y plusieurs moyens d’interconnecter un autocom avec le réseau commuté : cartes internes à l’autocom, gateway Cisco pour les grosses configurations en raison du prix, modem routeurs bas de gamme avec port FXS. Il existe une dernière piste intéressante avec les passerelles VoIP. Les boîtiers Patton sont les plus répandus mais les prix sont dissuasifs dès lors qu’il s’agit de lien T2 ; aussi, ils sont intéressants pour de petites configurations jusqu’à 2 T0. Le tableau cidessous présente les différents modèles : Passerelles VoIP analogiques SmartLink MATA
Adaptateur ATA (RJ45 / FXX RJ11).
SmartNode 4110 Series
Boîtiers IP avec 8 ports FXS/FXO.
Routeurs VoIP analogiques SmartLink 4020 Series
Routeur SOHO avec 2 RJ45 / 1 FXS ou 2 RJ45 2FXS, firewall, NAT, DHCP, PPPoE.
SmartNode 2290 Series
Permet l’extension de lignes spécialisées sur Internet via 2 boîtiers. Jusqu’à 4 lignes peuvent ainsi être déportées.
SmartNode 4400 Series
IPChannelBank permettant de disposer de 12 à 32 ports FXS.
SmartNode 4520 Series
Routeur avec 2,4,6 ou 8 ports FXS et 2 ou 4 FXO.
SmartNode 4830 DSL Series
Modemrouteur DSL + 2,4,6 ou 8 ports FXS et 2 ou 4 FXO.
SmartNode 4830 Series
Routeur avec 2,4,6 ou 8 ports FXS et 2 ou 4 FXO + 2 RJ45 + interface V35 ou X21.
SmartNode 4900 Series
IPChannelBanck permettant de disposer de 12, 16, 24 ou 32 ports FXS ou FXS.
Passerelles VoIP numériques SmartNode 4554
2 ports BRI (2 T0) / RJ45.
SmartNode SDTA
Permet d’interconnecter un réseau Bri (des terminaux numériques ISDN) sur un réseau IP.
Routeurs VoIP numériques SmartNode 4552
Routeur Soho ISDN VoIP IAD avec 2 ports BRI.
SmartNode 4562
1 port NT, 1 port BRI So, 12 connexions VPN IPsecs (Voice Over VPN), routeur IP.
SmartNode 4630 Series
Multiports ISDN VOIP IAD, de 3 à 5 ports ISDN.
SmartNode 4650 ADSL
Multiports ISDN VOIP IAD avec interface ADSL2+, 3 à 5 ports ISDN.
© ENI Editions - All rigths reserved - educ hafa
- 1-
SmartNode 4650 G.SHDSL
Multiports ISDN VOIP IAD avec interface G.SHDSL.bis, 3 à 5 ports ISDN.
SmartNode 4960
Multiports T1/E1 (PRI) VoIP IAD.
SmartNode 4660 G.SHDSL
Multiports PRI VOIP IAD avec interface G.SHDSL.bis.
SmartNode 4961
Multiports T1/E1 VoIP IAD : 4 ports PRI.
Les modèles qui sont intéressants, dans le contexte de ce livre, sont le SmartNode 4554 et le SmartNode 4960. Il faut bien réfléchir à la notion de tout mettre dans le boîtier, c’estàdire les fonctions de voix et de routeur data car en cas de crash, cela peut vite devenir délicat à dépanner. Une description de l’interface de management d’un boîtier Patton4554 est présentée au chapitre Préparation du réseau.
2. Les autres constructeurs Nous ne pouvons pas présenter ici tous les matériels permettant de faire de la VoIP, mais nous pouvons citer quelques constructeurs intéressants :
- 2-
●
ZYXEL (http://www.zyxel.fr) ;
●
BILLION (http://www.billion.com/product/voip.html) ;
●
HUAWEI (http://www.huawei.com/fr/) ;
●
QUICK EAGLE (http://www.dataconnect.com/Quick_Eagle_Products.htm) ;
●
LINKSYS (www.linksys.fr) ;
●
Mediatrix (www.media5corp.com) ;
●
Draytec (www.draytec.com).
© ENI Editions - All rigths reserved - educ hafa
Introduction Ce chapitre présente les fondamentaux "réseaux" indispensables pour construire un réseau capable de supporter une implémentation complète de VoIP à base de serveur Asterisk, de téléphones SIP et de softphones XLite.
© ENI Editions - All rigths reserved - educ hafa
- 1-
État des lieux Considérons, par exemple, la société Evolution SA dont l’architecture avant installation de la VoIP est la suivante : ●
un LAN adressé en 192.168.1.0 / 24 ;
●
100 PC, 10 serveurs ;
●
une téléphonie totalement indépendante du réseau informatique, une sortie T2, un autocom local (non IP) ;
●
●
une liaison SDSL 1 Mb/s vers un opérateur permettant l’évasion Internet, la messagerie et l’interconnexion avec les agences ; un ensemble hétérogène de hubs et de switchs permettant l’interconnexion du réseau.
Cette société dispose de sept agences ayant chacune une architecture plus légère : ●
un LAN de 20 postes en 192.168.Y.0 / 24 où Y est un chiffre différent par agence (Y est compris entre 2 et 8) ;
●
des PC, pas de serveurs ;
●
téléphonie indépendante, une sortie ½ T2 ou plusieurs T0, autocom local non IP ;
●
une liaison de type SDSL 512 Kb/s avec GTR vers le réseau opérateur ;
●
quelques hubs et switchs hétérogènes pour l’interconnexion.
Étant donné qu’il n’y a pas d’autres accès Internet que l’accès centralisé fourni par l’opérateur, aucun équipement de type firewall n’est donc nécessaire. Nous pouvons penser, a priori, que c’est l’opérateur lui même qui gère ce type de problématique.
© ENI Editions - All rigths reserved - educ hafa
- 1-
Premier constat, premières modifications Il est possible de mettre en place une architecture VoIP au sein de cette société sans remettre en cause l’existant, mais des problèmes de qualité vont rapidement apparaître au niveau de la voix. Une modification profonde de l’architecture réseau s’impose et va passer par les changements suivants : ●
achat de switchs manageables pour le siège, dont un switch servira à desservir les autres (réseau en étoile) ;
●
achat de switchs manageables pour les agences ; migration des lignes SDSL 1 Mb/s en 2 Mb/s pour le siège et des lignes agences en SDSL 1 Mb/s, mise en place avec l’opérateur de mécanisme de QoS (réservation de bande passante pour la voix) ;
●
segmentation de chaque réseau en VLAN, achat d’un routeur par agence.
●
1. Notion de VLAN Les VLANs (LAN virtuel) permettent d’isoler les sousréseaux au sein d’une architecture et sont tout naturellement utilisés lors d’une cohabitation entre un réseau de données et un réseau voix ; en effet, les "parasitages" présents dans un VLAN ne se propageront pas dans un autre, donc, à priori, un gros téléchargement aura une incidence sur le réseau de données mais pas sur le réseau voix. Toutes les trames de niveau 2 sortiront du switch en étant tagguées avec l’identifiant (ID) du vlan associé. Les Vlans sont gérés au niveau des switchs L2 (Level 2 pour niveau 2) mais il est nécessaire de disposer d’un routeur (niveau 3) permettant de router les paquets au sein des différents Vlans. Afin d’être homogène pour une meilleure compréhension et exploitation ultérieure, il est fondamental d’avoir une vision cohérente, tout en étant évolutive, pour l’ensemble de la société. Au sens Vlans, chaque site sera donc traité de la même façon. Exemple : Tableau des Vlans de la nouvelle architecture Site
ID Vlan
Nom vlan
Subnet IP
Masque
Siège
1
LAN DATA
192.168.1.0
255.255.255.0
Siège
2
LAN VOIX IP
192.168.2.0
255.255.255.0
Siège
3
LAN VOIX IP Softphone
192.168.3.0
255.255.255.0
Siège
4
WAN opérateur
192.168.4.0
Masque opérateur
Ces quatre Vlans doivent être créés sur chaque switch mais certains constructeurs (Cisco par exemple) fournissent un puissant mécanisme appelé VTP (Vlan Trunk Protocol) simplifiant ce type de paramétrage. Le principe est de définir un VTP domain sur un switch de tête et de saisir tous les vlans sur ce switch. Ensuite, tous les autres éléments seront définis comme VTP client et, ainsi, tous les Vlans seront alors propagés automatiquement en temps réel.
2. Configuration des switchs Dans l’agence, le switch principal (24 ports 10/100/1000) sera configuré de la façon suivante : ●
port 1 à 12 : interconnexion avec les autres switchs.
●
port 13 : routeur interne, interface Fe0/0 en vlan 1+2+3, interface FE0/1 en vlan 4.
●
port 14 : routeur opérateur WAN (192.168.4.1), vlan 4.
© ENI Editions - All rigths reserved - educ hafa
- 1-
Ensuite, il y a plusieurs cas de figures : ●
Cas n°1 : les téléphones IP sont isolés et branchés en direct sur une prise du LAN.
Il s’agit du cas le plus simple ; encore fautil disposer de suffisamment de prises RJ45 dans les bureaux mais c’est rarement le cas. Il suffit alors de brancher le téléphone IP sur un port configuré en vlan 2. ●
Cas n°2 : les téléphones IP et les PC sont dépendants.
Le PC est branché sur le switch intégré du téléphone IP ; le port correspondant doit être en vlan 1+2. Dans le cas du softphone, il doit être en vlan 1+3. Il est intéressant de tagger les softphones dans un vlan à part car souvent, ces logiciels sont employés par des hotliners qui ont des clients presque toute la journée. La qualité de la voix est donc primordiale car elle représente une partie de l’image de la société. Schéma des ports du switch de tête 1 2 3 4 5 6 7 8 9 10 11 12 13
14
Vers les autres switchs du réseau
Vers le routeur opérateur Vlan 4
Vers le routeur interne Vlan 1+2+3
3. Configuration du routeur Un routeur vient souvent en complément des switchs. Il assure le routage des différents sousréseaux de l’architecture. Dans notre cas, un Cisco 1841 sera utilisé. Le 1841 dispose de deux interfaces physiques 10/100 Mb/s : ●
FE0/0 : nous allons l’utiliser pour la gestion du LAN : data, voix téléphones IP, voix softphones, en créant des interfaces logiques (sousinterfaces) : ●
FE0/0.1 : sous réseau « data » en 192.168.1.0
●
FE0/0/2 : sous réseau « voix téléphones » en 192.168.2.0
●
FE0/0.3 : sous réseau « voix softphones » en 192.168.3.0 La FE0/0.1 sera branchée sur le port 13 du switch de tête, en mode trunk vlan 1+2+3.
●
FE0/1 : nous allons utiliser cette interface pour la gestion du routeur WAN, en créant une interface logique : FE0/1.4.
FE0/1.4 fera référence au sousréseau "routeur WAN" en 192.168.4.0, avec une adresse du routeur en 192.168.4.2 par exemple (sousentendu que le routeur WAN est en 192.168.4.1). La FE0/1.4 sera branchée sur le port 14 du switch de tête, en mode trunk vlan 4. Le routeur WAN n’est plus physiquement branché sur le LAN. Il faut donc demander à l’opérateur de rajouter trois routes statiques : 192.168.1.0/24 via 192.168.4.2, 192.168.2.0/24 via 192.168.4.2 et 192.168.3.0/24 via 192.168.4.2 L’adresse LAN du routeur interne devient ainsi la passerelle TCP/IP de tous les éléments du LAN du siège (téléphones, PC, serveurs, imprimantes…). Les interfaces du routeur interne Interface FE 0/0 Sous interfaceFE 0/0.1
- 2-
Sous interfaceFE 0/0.2
Interface FE 0/1 Sous interfaceFE 0/0.3
© ENI Editions - All rigths reserved - educ hafa
Sous interfaceFE 0/1.4
VLAN 1
VLAN 2
VLAN 3
VLAN 4
Data
Voix téléphones
Voix softphones
WAN opérateur
192.168.1.1
192.168.2.1
192.168.3.1
192.168.4.2
Port 13 su switch
Port 14 du switch
Le numéro de VLAN choisi doit correspondre au dernier numéro de l’interface logique du routeur : FE 0/0.50 fera référence au Vlan 50 (non utilisé dans notre exemple).
4. Adressage des téléphones IP Le mode DHCP permet un déploiement plus rapide mais il est difficile d’administrer directement le téléphone via un navigateur, dans la mesure où l’adresse IP est dynamique. Le mode d’adressage statique présente les avantages et inconvénients de l’autre. Dans notre cas, les téléphones auront une adresse IP fixe dans le sousréseau 192.168.2.0/24. Si les téléphones sont nombreux, il sera utile d’utiliser un outil de provisioning.
5. Implémentation en agence Puisque les sousréseaux 192.168.2.0... ont été utilisés, il faut changer le plan de numérotation en agence. Agence n°1 Site
ID Vlan
Nom vlan
Subnet IP
Masque
Agence 1
1
LAN DATA
192.168.11.0
255.255.255.0
Agence 1
2
LAN VOIX IP
192.168.21.0
255.255.255.0
Agence 1
3
LAN VOIX IP Softphone
192.168.31.0
255.255.255.0
Agence 1
4
WAN opérateur
192.168.41.0
Masque opérateur
Agence n°2 Site
ID Vlan
Nom vlan
Subnet IP
Masque
Agence 2
1
LAN DATA
192.168.12.0
255.255.255.0
Agence 2
2
LAN VOIX IP
192.168.22.0
255.255.255.0
Agence 2
3
LAN VOIX IP Softphone
192.168.32.0
255.255.255.0
Agence 2
4
WAN opérateur
192.168.42.0
Masque opérateur
Chaque agence devra disposer de switchs permettant de faire des vlans. Le choix du routeur en agence peut être le même que pour le siège mais il est intéressant, en plus de la fonctionnalité de routage des flux intervlans, de le coupler avec une fonctionnalité de passerelle vers le RTC (voir le chapitre Les passerelles opérateurs). Schéma logique global du réseau © ENI Editions - All rigths reserved - educ hafa
- 3-
6. Configuration d’un switch CISCO 2960G C2960G#sh run Building configuration... Current configuration : 3099 bytes version 12.2 no service pad service timestamps debug uptime service timestamps log uptime no service password-encryption ! hostname C2960G ! logging buffered 8192 debugging enable secret 5 $1$Sn9M$6PkEbA3r75VffiFK5Y30T6 ! no aaa new-model clock summer-time UTC recurring last Sun Mar 1:00 last Sun Oct 2:00 ip subnet-zero ! ! ! no file verify auto spanning-tree mode pvst spanning-tree extend system-id ! vlan internal allocation policy ascending ! interface GigabitEthernet0/1 switchport trunk native vlan 1 switchport trunk allowed vlan 2,3 switchport mode trunk !
- 4-
© ENI Editions - All rigths reserved - educ hafa
interface GigabitEthernet0/2 switchport trunk native vlan 1 switchport trunk allowed vlan 2,3 switchport mode trunk ! interface GigabitEthernet0/3 switchport trunk native vlan 1 switchport trunk allowed vlan 2,3 switchport mode trunk ! interface GigabitEthernet0/4 switchport trunk native vlan 1 switchport trunk allowed vlan 2,3 switchport mode trunk ! interface GigabitEthernet0/5 switchport trunk native vlan 1 switchport trunk allowed vlan 2,3 switchport mode trunk ! interface GigabitEthernet0/6 switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/7 switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/8 switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/9 switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/10 switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/11 switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/12 switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/13 switchport trunk native vlan 1 switchport trunk allowed 2,3 switchport mode trunk ! interface GigabitEthernet0/14 switchport access vlan 4 switchport mode access speed 100 duplex full ! interface GigabitEthernet0/15 switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/16 switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/17
© ENI Editions - All rigths reserved - educ hafa
- 5-
switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/18 switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/19 switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/20 switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/21 switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/22 switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/23 switchport access vlan 1 switchport mode access ! interface GigabitEthernet0/24 switchport access vlan 1 switchport mode access ! interface Vlan1 ip address 192.168.1.1 255.255.255.0 no ip route-cache ! ip default-gateway 192.168.1.1 ip http server snmp-server community EVOLUTIONSA RO ! control-plane ! ! line con 0 line vty 0 4 password mypassword no login line vty 5 15 password mypassword no login ! ! monitor session 1 source interface Gi0/13 monitor session 2 destination interface Gi0/14 ntp clock-period 36028937 ntp server 192.168.1.99 end Il faut également penser à paramétrer un port du switch en VLAN 2 sur lequel est branché le routeur VoIP Cisco 1841.
7. Configuration d’un routeur CISCO 1841 C1841#sh run Building configuration...
- 6-
© ENI Editions - All rigths reserved - educ hafa
interface FastEthernet0/0 description LAN DATA et VOIX no ip address duplex auto speed auto no cdp enable no mop enabled ! interface FastEthernet0/0.1 description LAN DATA encapsulation dot1Q 1 native ip address 192.168.1.1 255.255.255.0 no snmp trap link-status ! interface FastEthernet0/0.2 description LAN VOIX TELEPHONES encapsulation dot1Q 2 ip address 192.168.2.1 255.255.255.0 no snmp trap link-status ! interface FastEthernet0/0.3 description LAN VOIX SOFTPHONES encapsulation dot1Q 3 ip address 192.168.3.1 255.255.255.0 no snmp trap link-status ! interface FastEthernet0/1 no ip address duplex auto speed auto no cdp enable ! interface FastEthernet0/1.4 encapsulation dot1Q 4 ip address 192.168.4.2 255.255.255.0 no snmp trap link-status ! ip classless ip route 0.0.0.0 0.0.0.0 192.168.4.1 ! ip http server ! snmp-server community EVOLUTIONSA RO ! control-plane ! ! line con 0 exec-timeout 0 0 line aux 0 line vty 0 4 password mypassword login ! no process cpu extended no process cpu autoprofile hog end
© ENI Editions - All rigths reserved - educ hafa
- 7-
Sécurisation de l’architecture Toute l’interconnexion de la société est basée sur un réseau opérateur avec des liens uniques sur chaque site. Ces liens vont permettre, avec la VoIP, de communiquer en interne et donc de faire des économies non négligeables s’il existe beaucoup d’appels intrasites. Ces liens servent aussi à véhiculer les connexions des agences au siège, pour l’accès aux applicatifs métiers, avec le relais de mails, le surf... Mais que se passetil si le lien tombe ? L’agence ou le siège (cas plus critique) sont coupés ? La production s’en ressent avec éventuellement une perte sèche de chiffre d’affaires. La GTR de 4 heures ne suffit parfois pas et les délais de rétablissement, en cas de problèmes techniques, peuvent être plus longs. La seule solution consiste à doubler tous les liens mais en les prenant chez un opérateur différent. Dans ce cas, le routeur interne prend alors tout son sens mais il devient inévitablement un SPOF (Single Point Of Failure). Il faudra donc le doubler ou alors approvisionner un petit routeur LAN/LAN qui sera utilisé à sa place (attention, si le routeur n’est pas VoIP, la voix intersites ne sera alors plus possible) en cas de défaillance, en attendant l’intervention liée au contrat de maintenance qu’il faut dans tous les cas souscrire en J+1 ou mieux en H+4.
1. Incidence sur les VLANS Nous avons un second lien WAN opérateur, il faut donc définir un nouveau VLAN par site. Site
ID Vlan
Nom vlan
Subnet IP
Masque
Siège
1
LAN DATA
192.168.1.0
255.255.255.0
Siège
2
LAN VOIX IP
192.168.2.0
255.255.255.0
Siège
3
LAN VOIX IP Softphone
192.168.3.0
255.255.255.0
Siège
4
WAN opérateur 1
192.168.4.0
Masque opérateur
Siège
5
WAN opérateur 2
192.168.5.0
Masque opérateur
2. Incidence sur le routeur interne Il faut créer une sousinterface FE0/1.5. Cette interface aura l’IP 192.168.5.2 (sousentendu que le routeur WAN opérateur 2 a comme adresse IP 192.168.5.1). Trois routes statiques sont à implémenter sur le routeur WAN de l’opérateur 2 : ●
192.168.1.0/24 via 192.168.5.2
●
192.168.2.0/24 via 192.168.5.2
●
192.168.3.0/24 via 192.168.5.2
Le routeur interne dispose désormais de deux connexions SDSL possibles. Il est alors possible de faire de l’aiguillage de flux : par exemple, les flux métiers sur le liens WAN 1, les flux VoIP sur le lien WAN 2, le reste des flux sur le lien WAN 2. Exemple : Routage vers deux agences sur deux liens WAN La route par défaut (évasion Internet) passe par le routeur 192.168.4.2. Les flux à destination du sousréseau de données de l’agence 1 (192.168.11.0/24) passent par le routeur WAN 1 (192.168.4.2). Les flux à destination du sousréseau de données de l’agence 2 (192.168.12.0/24) passent par le routeur WAN 2
© ENI Editions - All rigths reserved - educ hafa
- 1-
(192.168.5.2). ip route 0.0.0.0 0.0.0.0 192.168.4.2 ip route 192.168.11.0 255.255.255.0 192.168.4.2 ip route 192.168.12.0 255.255.255.255 192.168.5.2 Pour que cette configuration soit valide, il faut que l’agence 2 dispose d’un second lien chez l’opérateur qui fournit le lien WAN 2 du siège, sinon les flux ne pourront pas être routés. De cette façon, nous pouvons répartir la charge sur les deux liens, en les utilisant en même temps ensemble, contrairement au mode actif/passif. À noter que ce dernier mode est souvent mal perçu des Directions Générales puisqu’un seul lien est utilisé alors que les deux sont facturés par les opérateurs.
3. Configuration d’un routeur CISCO 2801 avec 2 cartes T0 Seules les commandes importantes sont présentées : network-clock-participate wic 0 network clock-participate wic 1 voice translation-rule 1 rule 1 rule 2 rule 3 voice translation-rule 11 rule 1 rule 2 voice translation-profile Prefix translate calling 1 voice translation-profile appels_sortants translate calling 11 interface FastEthernet0/0.1 description lien LAN data encapsulation dot1Q 1 native ip address 192.168.1.1 255.255.255.0 interface FastEthernet0/0.2 description lien LAN voix telephones encapsulation dot1Q 2 ip address 192.168.2.1 255.255.255.0 interface FastEthernet0/0.3 description lien LAN voix softphones encapsulation dot1Q 3 ip address 192.168.3.1 255.255.255.0 interface FastEthernet0/1.4 description lien WAN operateur 1 encapsulation dot1Q 4 ip address 192.168.4.2 255.255.255.0 interface FastEthernet0/1.5 description lien WAN operateur 2 encapsulation dot1Q 5 ip address 192.168.5.2 255.255.255.0 interface BRI0/0/1 no ip address isdn switch-type basic-net3 isdn point-to-point-setup isdn incoming-voice voice
- 2-
© ENI Editions - All rigths reserved - educ hafa
interface BRI0/0/1 no ip address isdn switch-type basic-net3 isdn point-to-point-setup isdn incoming-voice voice voice-port 0/1/0 translation-profile incoming Prefix translation-profile outgoing appels_sortants echo-cancel coverage 24 compand-type a-law cptone FR voice-port 0/1/1 translation-profile incoming Prefix translation-profile outgoing appels_sortants echo-cancel coverage 24 compand-type a-law cptone FR dial-peer voice 10 voip destination-pattern .... progress_ind setup 3 modem passthrough nse codec g711ulaw voice-class codec 1 session protocol sipv2 session target ipv4:192.168.2.100 incoming called-number T dtmf-relay h245-alphanumeric fac rate disable no vad L’opérateur présente au routeur les SDAs uniquement sur les quatre derniers chiffres. Ensuite, le routeur envoie les appels au serveur SIP (ici, l’adresse IP du serveur SIP est 192.168.2.100). Si les appels n’aboutissent pas, il faut avant tout essayer de définir où se situe le problème : ●
Estce que la ligne de l’opérateur fonctionne ?
●
Estce que le câble reliant l’accès opérateur au routeur est en état ?
●
Estce que le led de la carte du routeur est conforme à un état normal ?
●
Estce que les appels entrants arrivent bien sur le routeur ?
●
Estce que les appels sortants partent bien du routeur ?
●
Estce que les appels entrants arrivent bien sur le serveur Asterisk ?
Afin de debugger les appels sur le routeur Cisco, il convient de lancer les commandes suivantes : # term monitor # debug isdn q931
4. Configuration d’un routeur CISCO 2801 avec une carte comprenant deux ½ T2 C2801-T2#sh run Building configuration... Current configuration : 6172 bytes ! ## VERSION DE L’IOS
© ENI Editions - All rigths reserved - educ hafa
- 3-
version 12.4 ## AFFICHAGE DE L’HEURE ET DE LA DATE POUR LE DEBUG ET LES LOGS service timestamps debug datetime msec service timestamps log datetime msec ## PAS D’ENCRYPTION DES PASSWORDS SYSTEMS no service password-encryption ! ##NOM DU ROUTEUR hostname C2801-T2 ! boot-start-marker boot-end-marker ! ## PAS D’AUTHENTIFICATION (TACACS+ ou LOCAL) no aaa new-model ! network-clock-participate wic 2 mmi polling-interval 60 no mmi auto-configure no mmi pvc mmi snmp-timeout 180 ## ip ip ! ## ip
AUTORISATION DES RESEAUX TOUT A ZERO subnet-zero cef CONFIGURATION DU DNS domain name yourdomain.com
## DEFINITION DU PROTOCOLE ISDN UTILISE (Europe) isdn switch-type primary-net5 ! voice-card 0 dsp services dspfarm ! ! ## ACTIVATION DES FLUX VOIX RTP, DANS LES 2 SENS voice rtp send-recv ! ! voice class codec 1 codec preference 1 g711ulaw codec preference 2 g711alaw codec preference 3 g729r8 ! ## CREATION DE REGLES DE TRANSLATION voice translation-rule 1 rule 1 /\(^........$\)/ /00\1/ rule 2 /\(^.........$\)/ /00\1/ rule 3 /\(^..........$\)/ /000\1/ rule 4 /\(^...........$\)/ /000\1/ rule 5 /\(^............$\)/ /000\1/ rule 6 /\(^.............$\)/ /000\1/ rule 7 /\(^..............$\)/ /000\1/ rule 8 /\(^...............$\)/ /000\1/ ! translation-rule 5 Rule 1 ^00 0 Rule 2 ^01 1 ! voice translation-rule 11 rule 1 /^21..$/ /0820909090/ ! ! voice translation-profile Prefix translate calling 1 ! voice translation-profile appels_sortants
- 4-
© ENI Editions - All rigths reserved - educ hafa
translate calling 11 ! ## CONFIGURATION DES CONTROLEURS E1, SUPPRESSION DU CRC4 controller E1 0/2/0 framing NO-CRC4 pri-group timeslots 1-16 ! controller E1 0/2/1 framing NO-CRC4 pri-group timeslots 1-16 ! track 1 rtr 1 reachability ! ## CONFIGURATION DES INTERFACES ETHERNET interface FastEthernet0/0 description IP Ethernet en VLAN 2 (VoIP) ip address 192.168.2.99 255.255.0.0 duplex auto speed auto ! interface FastEthernet0/0.1 ! interface FastEthernet0/1 no ip address shutdown duplex auto speed auto ! ## CONFIGURATION DES INTERFACES SERIES DES CONTROLEURS E1 interface Serial0/2/0:15 no ip address isdn switch-type primary-net5 isdn incoming-voice voice no cdp enable ! interface Serial0/2/1:15 no ip address isdn switch-type primary-net5 isdn incoming-voice voice no cdp enable ! ## ON SUIT LES RECOMMENDATIONS SUR LES CLASSES IP ip classless ! ! ## ACTIVATION DU SEVEUR http ip http server ip http access-class 23 ip http authentication local ip http secure-server ip http timeout-policy idle 60 life 86400 requests 10000 ! disable-eadi ! ! ! control-plane ! ! ! ## CONFIGURATION DES PORTS VOIX EN MODE FR voice-port 0/2/0:15 translation-profile incoming Prefix translation-profile outgoing appels_sortants echo-cancel coverage 24 cptone FR ! voice-port 0/2/1:15 translation-profile incoming Prefix
© ENI Editions - All rigths reserved - educ hafa
- 5-
translation-profile outgoing appels_sortants echo-cancel coverage 24 cptone FR ! ! ! ! dspfarm profile 6 transcode codec g711ulaw codec g711alaw codec g729ar8 codec g729abr8 codec gsmfr codec g729br8 codec g729r8 maximum sessions 6 ! ! ## CONFIGURATION D’UN DIALPEER (numero) dial-peer voice 10 voip ## ON FAIT CORRESPONDRE LE NUMERO APPELANT AVEC CELUI-CI POUR EFFECTUER L’APPEL (4 DERNIERS CHIFFRES DE LA SDA) destination-pattern .... progress_ind setup enable 3 modem passthrough nse codec g711ulaw voice-class codec 1 ## DEFINITION DU PROTOCOLE SIP UTILISE session protocol sipv2 ## DEFINITION DU SERVEUR SIP POUR LES APPELS ENTRANTS session target ipv4:192.168.2.100 incoming called-number T ## CHOIX DU MODE DTMF dtmf-relay h245-alphanumeric fax rate disable no vad ! ## CREATION DU DIALPEER POTS dial-peer voice 1 pots ## LORS D’UN APPEL SORTANT, CORRESPONDANCE AVEC N’IMPORTE QUEL NUMERO destination-pattern T progress_ind alert enable 8 progress_ind progress enable 8 progress_ind connect enable 8 ## PAS DE MODIFICATION DE NUMERO no digit-strip direct-inward-dial port 0/2/0:15 ! dial-peer voice 2 pots destination-pattern T progress_ind alert enable 8 progress_ind progress enable 8 progress_ind connect enable 8 no digit-strip direct-inward-dial port 0/2/1:15 ! dial-peer hunt 1 ! ## DEFINTION DES PARAMETRES DE CONNEXION A DISTANCE line con 0 login local line aux 0 line vty 0 4 password mypassword login local transport input telnet ssh line vty 5 15
- 6-
© ENI Editions - All rigths reserved - educ hafa
access-class 23 in privilege level 15 password mypassword login transport input telnet ssh ! Le routeur 2801 dispose de 4 slots (slot 3 slot 2 slot 1 slot 0) pour installer des cartes additionnelles VoIP. Dans notre exemple, une carte 2T2 a été installée dans le slot numéro 2.
5. Configuration d’une passerelle Patton smartnode 4552, 2 ports Numéris Le boîtier est d’une petite taille et se présente de la façon suivante :
Façade avant
Façade arrière La partie BRI est assurée via 2 ports : ●
●
Line BRI 0/0 : connexion au réseau ISDN. Phone BRI 0/1 : connexion au réseau ISDN ou alors à un IPBX Numéris où sont raccordés des postes téléphoniques numériques.
Schéma d’interconnexion avec un boîtier Patton 2T0 :
© ENI Editions - All rigths reserved - educ hafa
- 7-
Le Patton 4552 peut aisément être utilisé pour acheminer les communications téléphoniques via le port WAN, donc en IP, grâce notamment à une fonction de cryptage et d’accélération matérielle. En cas de défaillance du lien Wan, le Patton bascule automatiquement les communications sortantes vers les liens Numéris, grâce à la fonction ClearConnect de surveillance du réseau. Sur les réseaux IP où la qualité de la VoIP n’est pas garantie (Internet par exemple), la fonction DownStream QoS, en cours de brevet, permet d’assurer la gestion et la continuité des communications voix. Paramétrage de la passerelle Le boîtier est à la fois un routeur Wan et une passerelle VoIP. Il dispose donc de fonctions classiques en tant que routeur : ●
Wan : PPPoE, DHCP, default gateway
●
Firewall / ACL
●
Nat (Network Adress Translation)
●
QoS
●
LAN/DHCP
●
DNS/DynDNS
●
Vlan
Le boîtier dispose également de fonction VoIP pour la connexion avec la téléphonie. L’accès peut également se faire via une CLI (Command Line Interface) : telnet 192.168.1.1 login: administrator
- 8-
© ENI Editions - All rigths reserved - educ hafa
password: 192.168.1.1> ? arp blink call clear debug dns-lookup enable mode exit fg help install jobs logout ping host show sniff su terminal test traceroute to a network
Manipulates the ARP database Reads/writes/erases data from/to Flash Manipulates local calls Clears the screen Enables debug monitor Look up the IP/hostname of a host/IP Enters ’administrator exec’ configuration Goes back to the parent configuration mode Resumes a suspended task Shows information on how to use help Installs system components Shows current running commands Terminates console / telnet session Sends icmp ping packets to a destination Shows system information Sniff packets Changes user Enables or configures terminal parameters Stimulates input of a system-part Prints routes which IP packets takes
host who Shows users logged into the system 192.168.1.1>enable 192.168.1.1>show running-config #----------------------------------------------------------------# # # # SN4552/2BIS/EUI # # R5.2 2009-07-09 H323 # # 1970-01-01T03:29:13 # # SN/00A0BA056410 # # Generated configuration file # # # #----------------------------------------------------------------# cli version 3.20 gui type basic dns-relay webserver port 80 language en sntp-client sntp-client server primary 129.132.2.21 port 123 version 4 system ic voice 0 profile acl ACL_WAN_PERMIT_ALL_MGMT permit 1 ip any any "" profile acl ACL_WAN_PERMIT_SEL_MGMT deny 1 tcp any any eq 23 "" deny 2 tcp any any eq 80 "" deny 3 udp any any eq 161 "" permit 4 ip any any "" profile acl ACL_WAN_BLOCK_ALL_MGMT deny 1 tcp any any eq 23 "" deny 2 tcp any any eq 80 "" deny 3 udp any any eq 161 "" permit 4 ip any any "" profile service-policy SP_WAN_OUT rate-limit 100000 header-length 18 voice-margin 0
© ENI Editions - All rigths reserved - educ hafa
- 9-
source traffic-class local-voice priority source traffic-class default priority profile service-policy SP_WAN_IN rate-limit 100000 header-length 18 voice-margin 200 source traffic-class local-voice priority source traffic-class default queue-limit 4 profile napt NAPT_WAN profile ppp default profile call-progress-tone US_DIAL_TONE play 1 10 350 -13 440 -13 profile call-progress-tone US_RB_TONE play 1 2000 440 -19 480 -19 pause 2 4000 profile call-progress-tone US_BUSY_TONE play 1 500 480 -24 620 -24 pause 2 500 profile call-progress-tone US_CONGESTION_TONE play 1 250 480 -24 620 -24 pause 2 250 profile tone-set default profile tone-set Europe profile tone-set UnitedStates map call-progress-tone dial-tone US_DIAL_TONE map call-progress-tone ringback-tone US_RB_TONE map call-progress-tone busy-tone US_BUSY_TONE map call-progress-tone release-tone US_BUSY_TONE map call-progress-tone congestion-tone US_CONGESTION_TONE profile voip default codec 1 g711alaw64k rx-length 20 tx-length 20 codec 2 g711ulaw64k rx-length 20 tx-length 20 profile voip VOIP codec 1 g729 rx-length 20 tx-length 20 codec 2 g711alaw64k rx-length 20 tx-length 20 codec 3 g711ulaw64k rx-length 20 tx-length 20 dejitter-mode static dejitter-max-delay 120 profile pstn default profile dhcp-server DHCPS_LAN network 192.168.1.0 255.255.255.0 include 1 192.168.1.10 192.168.1.19 lease 2 hours default-router 1 192.168.1.1 domain-name patton.com domain-name-server 1 192.168.1.1 profile aaa default method 1 local method 2 none context ip router
- 10 -
© ENI Editions - All rigths reserved - educ hafa
interface IF_IP_WAN ipaddress dhcp use profile acl ACL_WAN_PERMIT_ALL_MGMT in use profile service-policy SP_WAN_IN in use profile service-policy SP_WAN_OUT out use profile napt NAPT_WAN tcp adjust-mss rx 582 tcp adjust-mss tx 1440 interface IF_IP_LAN ipaddress 192.168.1.1 255.255.255.0 icmp router-discovery context ip router dhcp-server use profile DHCPS_LAN subscriber ppp SUB_PPPOE dial out no multilink authentication chap authentication pap bind interface IF_IP_WAN router context cs switch routing-table called-e164 RT_SPEED_DIAL route T dest-table RT_NR_BLOCKING MT_SPEED_DIAL routing-table called-e164 RT_NR_BLOCKING route default dest-table RT_CALL_ROUTING MT_SET_CNPN routing-table called-e164 RT_CALL_ROUTING route default dest-service SER_HG_PSTN_FALLBACK routing-table called-e164 RT_INCOMING route default dest-interface IF_S0_01 MT_NR_TRANSLATION mapping-table called-e164 to called-e164 MT_SPEED_DIAL mapping-table calling-e164 to calling-e164 MT_SET_CNPN mapping-table called-e164 to called-e164 MT_NR_TRANSLATION interface isdn IF_S0_00 route call dest-table RT_INCOMING interface isdn IF_S0_01 route call dest-table RT_SPEED_DIAL use profile tone-set Europe isdn-date-time interface isdn IF_DEV0 service hunt-group SER_HG_PSTN_FALLBACK timeout 6 drop-cause normal-unspecified drop-cause no-circuit-channel-available drop-cause network-out-of-order drop-cause temporary-failure drop-cause switching-equipment-congestion drop-cause access-info-discarded drop-cause circuit-channel-not-available drop-cause resources-unavailable drop-cause no-route-to-destination route call 1 dest-interface IF_H323 route call 2 dest-interface IF_S0_00 context cs switch no shutdown port ethernet 0 0
© ENI Editions - All rigths reserved - educ hafa
- 11 -
bind interface IF_IP_WAN router pppoe session SES_PPPOE bind subscriber SUB_PPPOE shutdown port ethernet 0 0 no shutdown port ethernet 0 1 bind interface IF_IP_LAN router no shutdown port bri 0 0 clock auto encapsulation q921 q921 uni-side auto encapsulation q931 q931 protocol dss1 uni-side user bchan-number-order ascending encapsulation cc-isdn bind interface IF_S0_00 switch port bri 0 0 no shutdown port bri 0 1 clock auto encapsulation q921 q921 uni-side auto encapsulation q931 q931 protocol dss1 uni-side net bchan-number-order ascending encapsulation cc-isdn bind interface IF_S0_01 switch port bri 0 1 no shutdown 192.168.1.1# Pour accéder à l’interface Web, il faut brancher la passerelle via un câble croisé à un PC et ensuite lancer un navigateur sur l’URL http://smart.node ou http://192.168.1.1. Le login par défaut est « administrator » et il n’y a pas de mot de passe. Il sera ensuite possible de modifier l’adresse IP de la passerelle et de désactiver le serveur DHCP, ceci afin de fixer une IP qui sera nécessaire d’utiliser dans le dialplan d’Asterisk.
- 12 -
© ENI Editions - All rigths reserved - educ hafa
Interface avancée du Patton SN4552 2T0
© ENI Editions - All rigths reserved - educ hafa
- 13 -
Configuration des ports BRI Les boîtiers Patton sont interopérables avec les principaux commutateurs logiciels du marché (Centile, Nortel, Siemens, Thomson…), ainsi qu’avec les principaux PBX également (Asterisk, Aastra, 3CX, Pingtel, SIP foundry…).
- 14 -
© ENI Editions - All rigths reserved - educ hafa
Définition Le plan de numérotation est le cœ ur logique du routage des appels du système Asterisk : il indique au système ce qu’il faut faire à chaque fois qu’il y a un appel entrant, sortant ou interne. Défini dans le fichier /etc/asterisk/extensions.conf, il fait appel au fichier /etc/asterisk/sip.conf qui contient la liste des terminaux SIP du système ou au fichier /etc/asterisk/iax.conf pour les téléphones et trunks IAX. À noter qu’une extension fait généralement allusion à un numéro de téléphone.
1. Le fichier sip.conf a. Syntaxe Le fichier sip.conf contient plusieurs sections : une section [general] et autant de sections qu’il y a de clients SIP. La section [general] contient les paramètres valables pour tous les clients SIP. Exemple Dans l’exemple cidessous, nous définissons deux clients SIP 1000 et 1010 avec leurs paramètres généraux et spécifiques. Ces deux clients sont utilisés dans le plan de numérotation (numéro de postes 1000 et 1010). Les téléphones SIP sont paramétrés avec ces deux numéros. [general] ; contexte par défaut des clients SIP (en lien avec extensions. conf) context=default ; permet de faire des appels basés sur des noms DNS srvlookup=yes ;port SIP port=5060 ; désactivation de tous les codecs disallow=all ;autorisation du codec GSM allow=gsm ;autorisation du codec G711 alaw allow=alaw ;autorisation du codec G711 ulaw allow=ulaw Les autres sections concernent les clients SIP : ; nom de l’extension [1000] username=1000 ; user pour appel entrant; peer pour appel sortant; friend pour les deux types d’appel type=friend ; permet de vérifier qu’un client est joignable : yes|no|millisecondes ; yes signifie un check toutes les 2000 ms (2 secondes) qualify=yes ; mot de passe pour l’authentification du client secret=3615 ; le client n’est pas derrière un firewall qui natte nat=no ; le client s’enregistre lui-même (dynamic|hostname|addresse IP) host=dynamic ; le client ne fait pas de SIP-reinvite (update|yes|no) et le flux RTP passe par Asterisk directmedia=no ; contexte du client 1000 context=appels_entrants L’attribut "directmedia" est le nouveau nom de l’ancien attribut "canreinvite".
© ENI Editions - All rigths reserved - educ hafa
- 1-
Si directmedia= yes, cela signifie que les flux RTP circulent directement entre les téléphones SIP et ne passent par Asterisk.
; nom de l’extension [Catherine] username=1010 type=friend qualify=yes secret=5768 nat=yes ; le client a pour IP 192.168.5.109 host=192.168.5.109 directmedia=yes context=default disallow=all allow=ulaw ; nom de l’utilisateur username=777 ...
b. Paramétrage du softphone XLite Le logiciel gratuit Xlite peut être téléchargé à partir du site de l’éditeur (www.counterpath.com). Il est disponible en version Windows, Linux ou Mac. La version payante EyeBeam permet de supporter la vidéo ; il suffit de brancher une webcam sur le PC de l’appelant et une sur le PC de l’appelé. Les paramètres principaux pour permettre la connexion du téléphone sont les suivants : ●
Display Name : utilisé pour la présentation du nom.
●
User name : utilisé pour l’authentification (numéro de téléphone).
●
Password : mot de passe pour l’authentification.
●
Autorisation user name : utilisé pour l’authentification (numéro de téléphone).
●
Domain : adresse IP du serveur Asterisk.
●
proxy Adress : adresse IP du serveur Asterisk.
Exemple de fenêtre de paramétrage de XLite 3.0
- 2-
© ENI Editions - All rigths reserved - educ hafa
XLite s’enregistre automatiquement auprès du serveur Asterisk en indiquant : Ready, Your username is : 1010 Exemple : Xlite 3.0 connecté
© ENI Editions - All rigths reserved - educ hafa
- 3-
Exemple : les différents boutons de Xlite
Counterpath propose également en version payante deux autres produits : EyeBeam 1.5 et Bria 3.0 qui apportent de nombreuses autres fonctionnalités (intégration Outlook, vidéo HD, LDAP, codec G729, support, lignes multiples...). EyeBeam est commercialisé à 45 $ l’unité et Bria à 49,95 $ l’unité.
2. Le fichier extensions.conf a. Syntaxe Le fichier extensions.conf est toujours composé de sections appelées des contextes : [general] ... [globals] ... [appels_entrants] ... [appels_internes] ... [contexte1] ... [contexte 2] ... Le contexte "general" est un contexte spécial défini en début de plan ; il permet de définir des informations qui seront valables dans l’ensemble du plan, par exemple : [general] ; concerne la commande save dialplan static=yes ; si static =yes et write protect = no, possibilité de sauvegarder le dialplan depuis la CLI (la CLI est la console d’affichage des événements d’Asterisk) writeprotect=no
- 4-
© ENI Editions - All rigths reserved - educ hafa
; permet de raccrocher automatiquement après l’appel autofallthrough=yes Le contexte "globals" est également un contexte spécial défini en début de plan ; il permet de définir des variables globales au plan, ceci permet d’en apporter une meilleure lisibilité, par exemple : [globals] DIRECTEUR=SIP/1001 SECRETAIRE=SIP/1000
[email protected] [email protected] Dans la suite du plan, ces variables pourront être utilisées sous la forme ${DIRECTEUR}, ${EMAIL_SECRETAIRE}.
b. Les contextes Chaque contexte définit une portion d’appels qui est ainsi cloisonnée ; ce qui se passe dans cette portion est indépendant des autres portions. Par exemple Le contexte appels_entrants concerne exclusivement le traitement des appels entrants : [appels_entrants] exten => 2409, 1, Answer() exten => 2409, 2, Dial(${DIRECTEUR}) Supposons ici que l’opérateur présente à Asterisk toutes ses SDA sur les 4 derniers chiffres ; un appel entrant vers la SDA 0383502409 va rentrer dans le contexte appels_entrants où les instructions Answer() puis Dial(${DIRECTEUR}) vont être appelées. Concrètement, c’est le poste 1001 qui va sonner (le contenu de la variable ${DIRECTEUR}). Il est important de noter que : ●
Les espaces sont à proscrire dans le nommage des contextes.
●
Le nom d’un contexte peut contenir des lettres minuscules ou majuscules, des chiffres, le tiret et le souligné.
●
Lors de l’installation du serveur Asterisk, un fichier extensions.conf est automatiquement créé mais il vaut mieux repartir d’un fichier vierge afin de bien comprendre le plan.
c. Les extensions Chaque contexte contient une ou plusieurs extensions ou instructions. La syntaxe d’une extension est la suivante : exten => numéro de l’appel, numéro de priorité, application( )
●
numéro de l’appel : c’est l’extension ;
●
numéro de priorité : une extension peut inclure plusieurs étapes donc il faut donner des priorités ;
●
application( ) : c’est la fonction qui est déclenchée lorsque l’extension est appelée.
Exemple : exten => 1000, 1, Dial(SIP/1000)
●
Le numéro de l’appel est 1000, la priorité est 1 (il n’y a pas d’autres étapes) et la fonction qui déclenche © ENI Editions - All rigths reserved - educ hafa
- 5-
l’action sur cet appel est Dial(SIP/1000). ●
Autrement dit, si un terminal interne compose le numéro 1000, et bien c’est le poste SIP 1000 qui sonnera.
Attention, le terme « extension » signifie « instruction » mais également "poste" (voir le fichier sip.conf).
d. Les extensions spéciales L’extension start s Cette extension est utilisée quand un appel inconnu arrive dans un contexte ; c’est le cas d’un appel entrant en provenance de l’extérieur. [appels_entrants] exten => s,1,application() L’extension invalid i Contrairement à ce que nous pouvons penser, cette extension n’est pas utilisée dans un cas de réponse invalide (cas où un appel ne trouve aucune correspondance dans un contexte) mais lors de la mise en place d’IVR (Interactif Voice Response ou Serveur Vocal Interactif). Elle est utilisée lorsqu’un utilisateur doit taper un chiffre sur le clavier du téléphone : tapez 1 pour le service client, 2 pour le service marketing. Si l’utilisateur tape une autre touche, il faut bien indiquer qu’il s’est trompé et qu’il doit à nouveau saisir un chiffre compréhensible. Exten => i,1,Playback(message_non_compris) L’extension t Cette extension permet de gérer la temporisation. Par exemple, dans le cas précédent, nous pouvons indiquer que si l’utilisateur ne tape pas sur une touche dans les 10 secondes, une action spécifique sera déclenchée. Par défaut, la temporisation est de 10 secondes. Exten => i,1,Playback(message_non_compris) Exten => t,1,Playback(message_fin_dialogue)
e. Les priorités Une extension peut avoir une ou plusieurs phases qui sont des priorités. Exemple d’un appel du poste 1000 qui déclenche les actions suivantes : ●
le poste sonne : application_1() ;
●
si personne ne répond, déclenchement de la boîte vocale : application_2() ;
●
l’appel se termine : application_3().
Le plan de numérotation sera donc le suivant : exten => 1000, 1,application_1() exten => 1000, 2,application_2() exten => 1000, 3,application_3()
●
Les priorités apparaissent toujours dans un ordre croissant, sous peine de voir l’extension inutilisable.
●
Il ne faut jamais sauter une extension.
●
- 6-
Il existe des priorités non numérotées, les priorités n (next) ; une priorité n permet en fait de prendre la priorité précédente et d’ajouter 1.
© ENI Editions - All rigths reserved - educ hafa
exten => 1000, 1,application_1() exten => 1000, n,application_2() exten => 1000, n,application_3() La priorité n est très utilisée lors de l’écriture de macros (voir le chapitre Amélioration du plan de numérotation).
f. Les applications Les applications ou fonctions font partie intégrante d’Asterisk et sont livrées lors de l’installation de celuici. Chaque nouvelle version d’Asterisk apporte de nouvelles fonctions ; certaines ayant même disparues ou disposant d’une nouvelle syntaxe. Avant toute mise en production de nouvelles applications, il convient donc de bien les tester dans le plan de numérotation. Answer() Répond à un canal qui sonne. On l’utilise très souvent comme première application pour une extension. exten => 1001, 1, Answer() Playback() Joue un fichier sonore à destination de l’interlocuteur. Attention à ne pas donner d’extension au fichier son. L’application Background() est similaire. Le fichier son est situé dans /var/lib/asterisk/sounds. exten => 1001, 1, Answer() exten => 1001, 2, Playback(fichier_son) Hangup() Permet de raccrocher le canal en cours. Cela permet de libérer un canal proprement. exten => 1001, 1, Answer() exten => 1001, 2, Dial(SIP/1001) exten => 1001, 3, Hangup() Echo() Permet d’émettre un écho à l’interlocuteur. L’appelant sort de ce mode en appuyant sur #. exten => 1001, 1, Answer() exten => 1001, 2, Echo() exten => 1001, 3, Dial(SIP/1001) Background() Permet de jouer un fichier son en attendant que l’utilisateur compose un numéro. exten => 1001, 1, Answer() exten => 1001, 2, Background(fichier_son) Goto() Application qui permet d’aller à une extension, une priorité ou à un contexte, fourni en paramètre. exten => 1001, 1, Background(fichier_son) exten => 1001, 2, Echo() exten => 1001, 3, Goto(1)
© ENI Editions - All rigths reserved - educ hafa
- 7-
Dial() Application fondamentale qui fait sonner l’extension passée en paramètre. exten => 1001, 1, Dial(SIP/1001) Congestion() Permet de signaler qu’un canal est encombré, jusqu’au raccrochage ; cette application ne diffuse pas la tonalité d’encombrement. Il faut pour cela utiliser l’application Playtones(congestion), où congestion est le fichier son joué. L’application Busy() est similaire. exten exten exten exten
=> => => =>
717, 717, 717, 717,
1, 2, 3, 4,
answer() Playtones(congestion) Congestion() Hangup()
Voicemail() Permet d’appeler la boîte vocale de l’appelé. L’appelant peut alors laisser un message (voir la section 2 du présent chapitre pour plus de détails). exten => 717, 1, Answer() exten => 717, 2, Voicemail(u717) Set() Affecte une valeur à une variable. exten => 717, 1, Set(SAV=SIP/700) exten => 717, 2, Dial(${SAV}) Exec() Permet d’exécuter une application. exten => 717, 1, Answer() exten => 717, 2, Set(appel=Dial(SIP/717)) exten => 717, 3, Exec(${appel}) MusicOnHold() Permet de jouer une musique d’attente dont la classe est passée en paramètre ; c’est le fichier /etc/asterisk/musiconhold.conf qui contient les paramétrages des musiques d’attente. Souvent utilisé avec une notion de délai (la musique d’attente est jouée pendant 25 secondes). Ici, le fichier mymusic au format MP3 doit être situé dans /var/lib/asterisk/mohmp3/mymusic. exten => 717, 1, Answer() exten => 717, 2, MusicOnHold(mymusic) exten => 717, 3, Dial(SIP/717) Playtones() Permet de jouer des tonalités qui sont définies dans le fichier etc/asterisk/indications.conf. exten => 717, 1, Playtones(congestion) Transfer() Permet de transférer l’appel vers une nouvelle extension. Cette application est présente également dans de nombreux terminaux SIP/IAX. exten => 717, 1, Transfert(SIP/700)
g. Les motifs
- 8-
© ENI Editions - All rigths reserved - educ hafa
Syntaxe Afin de faciliter l’écriture du plan de numérotation, les motifs (ou patterns) suivants peuvent être utilisés : ●
X représente tout chiffre compris entre 0 et 9.
●
Z représente tout chiffre compris entre 1 et 9.
●
N représente tout chiffre compris entre 2 et 9.
●
[123789] représente un chiffre parmi 1, 2, 3, 7, 8, 9.
●
[17] représente tout chiffre compris entre 1 et 7 : 1, 2, 3, 4, 5, 6 ou 7.
●
[346] représente un chiffre parmi 3,4, 5 ou 6.
●
. représente un ou plusieurs chiffres sans aucune restriction (à éviter pour des raisons de sécurité).
Un motif commence toujours par le caractère _ Exemple de motif : Les numéros de téléphones fixes en France Premier cas : _. Cette écriture est trop permissive ; tout type d’appels partout dans le monde est autorisé. Deuxième cas : _XXXXXXXXXX Cette écriture est certes meilleure que la première mais il est possible de passer tout type d’appels sur 10 chiffres : appels vers des mobiles, des numéros 08, 09. Troisième cas : _0[12345]XXXXXXXX Cette écriture représente les appels vers les fixes en France. Préfixe de sortie Il est commun d’utiliser un préfixe de sortie 0 ou 9 pour les appels sortants : _00[12345]XXXXXXXX, le préfixe ici est 0 suivi du motif permettant d’appeler tous les numéros fixes en France. Appels sortants vers l’International Un contexte spécifique peut être créé : [INTERNATIONAL] ; contexte accès aux appels Internationaux exten => _000X., 1,Answer() exten => _000X., n,Macro(appel_sortant,${EXTEN}:1) exten => _000X., n,Hangup() Appels vers les numéros 118 exten => _0118., 1,Answer() exten => _0118., n,Macro(appel_sortant,${EXTEN}:1) exten => _0118., n,Hangup()
●
●
●
Les motifs sont très utilisés dans les contextes gérant les appels sortants. Il est très important de spécifier des contextes à chaque type d’appel (fixes, mobiles, numéros verts, numéros surtaxés…). Cela permet de gérer les autorisations en fonction du profil de l’utilisateur. ${EXTEN} est une variable interne à Asterisk qui contient ce qui vient d’être tapé.
© ENI Editions - All rigths reserved - educ hafa
- 9-
●
- 10 -
${EXTEN}:x permet d’enlever x chiffres en partant de la gauche.
© ENI Editions - All rigths reserved - educ hafa
La messagerie unifiée 1. Principe La messagerie vocale est en quelque sorte un répondeur/enregistreur. Elle permet à un utilisateur interne du système Asterisk de disposer d’une boîte vocale, de la paramétrer à sa guise et de l’activer en cas d’absence. L’appelant pourra alors laisser un message. Mais, comme il est parfois fastidieux de faire la démarche de consulter sa messagerie vocale depuis un téléphone, Asterisk peut envoyer également le message laissé dans la boîte vocale vers la messagerie électronique de l’utilisateur ; le mail contenant alors le message vocal sous la forme d’un fichier joint en format .wav. En effet, de plus en plus d’utilisateurs cherchent à ce que l’information arrive dans un pot commun unique (mail, message vocaux, sms, fax...) et la messagerie électronique est tout à fait indiquée pour être l’outil permettant de fédérer tous les messages. La mise en œ uvre d’un tel système demande la présence d’un serveur SMTP sur le serveur Asterisk.
2. Boîte vocale La mise en place de boîte vocale se fait à l’aide du fichier spécifique/etc/asterisk/voicemail.conf. Ce fichier est composé de trois sections : ●
●
●
la section general qui contient les paramètres s’appliquant à l’ensemble des boîtes vocales. la section zonemessages qui permet de gérer des zones horaires et donc d’associer des décalages horaires aux utilisateurs (en fait l’annonce de la date et de l’heure des messages vocaux). La syntaxe est nom_de_la_zone = Pays/Ville |options. Les normalisations des couples Pays/Ville sont définies dans le fichier spécifique /usr/share/zoneinfo. la section « boites vocales » comprenant la définition des boîtes vocales en ellesmêmes.
Attention, les paramètres optionnels des boîtes vocales sont prioritaires sur les paramètres généraux. La syntaxe d’une boîte vocale est la suivante : numéro de la boîte => mot de passe, nom, email, email pager, options Si une composante ne doit pas être prise en compte, il faut en tenir compte dans le nombre de champs (ici, l’email pager n’est pas pris en compte) : numéro de la boîte => mot de passe, nom, email,, options Les options sont séparées par des | et doivent prendre des valeurs parmi : attach
Yes|No : Yes permet d’attacher le message vocal à l’email
serveremail
Adresse email du serveur qui envoie le message en mail
tz
Concerne la time zone
saycid
Yes|No : Yes indique le Caller ID (cid) avant le message. Si non, le cid est dans l’enveloppe
review
Yes|No : Yes permet à l’appelant de réentendre le message avant la validation par la touche #
operator
Yes|No : Yes permet à l’appelant de joindre un opérateur (extension ’o’) à la fin du message
© ENI Editions - All rigths reserved - educ hafa
- 1-
envelope
Yes|No : Yes permet de lire la date et l’heure du message
delete
Yes|No : Yes si le message vocal doit être supprimé du serveur
3. Fichiers de configuration a. Fichier voicemail.conf Ce fichier contient les informations suivantes : ●
●
Inclusion du contenu des fichiers vm_general.inc et vm_email.inc. Indication du serveur de mail d’émission des mails (attention, un serveur SMTP comme Postfix doit fonctionner pour permettre la gestion des mails).
●
Indication si le message vocal est joint à l’email.
●
Indication des paramètres de gestion des décalages horaires.
●
Une section Default qui définit les différentes boîtes vocales des utilisateurs : lou, zoe, solene, margaux.
●
Une section Nancy qui définit les boîtes vocales des utilisateurs : catherine et walter.
●
Une section Chicago qui définit la boîte vocale de l’utilisateur : john.
[general] #include vm_general.inc #include vm_email.inc ; adresse email qui envoie les messages en mail
[email protected] ; indique si le message vocal sera joint à l’email attach=yes [zonemessages] central=America/Chicago|’vm-received’ Q ’digits/at’ IMp [default] 1000 => 765, lou,
[email protected],,attach=no|saycid=no| envelope=no|delete=no 1001 => 346, zoe,
[email protected],attach=yes|saycid=no| envelope=no|delete=no 1002 => 615, solene,
[email protected],,attach=yes| saycid=no|envelope=no|delete=no 1003 => 325, margaux,
[email protected],,attach=yes saycid=no|envelope=no|delete=no [Nancy] 2000 => 167, catherine,
[email protected],,attach=yes| saycid=no|envelope=no|delete=no 2001 => 892, walter,
[email protected],,attach=yes| saycid=no|envelope=no|delete=no [Chicago] 8000 => 378, john,
[email protected],,attach=yes|saycid=no| envelope=no|delete=no|tz=central
b. Fichier vm_general.inc format=wav49|wav attach=yes - 2-
© ENI Editions - All rigths reserved - educ hafa
; [PBX] n’apparaîtra pas dans le sujet du mail pbxskip=yes ; émetteur du mail de notification
[email protected] fromstring=Messagerie Vocale MASOCIETE ; taille maximum du message vm maxmessage=180 ; taille minimum du message vm (en secondes) minmessage=3 ; attendre 5 secondes de silence à la fin du vm maxsilence=5 ; permettre à l’émetteur de réentendre ou de réenregistrer son message avant de le sauvegarder review=yes ; permet à l’appelant d’appuyer sur la touche 0 operator=yes
c. Fichier vm_email.inc emailbody = Utilisateur ${VM_NAME},\n\nVous avez un nouveau message sur votre boite vocale ${VM_MAILBOX}: \n\n\tDe:\t${VM_CALLERID}\n\tDuree:\t${VM_DUR} secondes\ n\tDate:\t${VM_DATE}\n\nComposez le 888 pour acceder a votre boite aux lettres.\ nAcces en mode Web : http://192.168.1.100/recordings/index.php.\n Exemple de mail reçu avec le système des voicemails Asterisk
4. La messagerie dans le plan de numérotation L’application VoiceMail() permet de laisser un message vocal dans la boîte vocale de l’appelé. L’application VoiceMailMain() permet d’interroger sa boîte vocale ; bien sûr, un mot de passe est demandé. ; Si Lou est indisponible pendant plus de 20 secondes, l’appelant entendra un message d’indisponibilité (u pour
© ENI Editions - All rigths reserved - educ hafa
- 3-
unavailable) exten => 1000, 1, Dial(${LOU},20,r) ; Si Lou est occupée par un autre appel, un saut à l’extension 102 (n+101) est effectué et l’appelant entendra un message d’occupation (b pour busy) exten => 1000, 2, VoiceMail(u1000@default) ; default correspond au contexte de messagerie vu dans voicemail.conf exten => 1000, 102, VoiceMail(b1000@default) ; Lou peut appeler le 888 pour accéder à son répondeur et lire ses messages vocaux exten => 888, 1, VoiceMailMain()
- 4-
© ENI Editions - All rigths reserved - educ hafa
Exemple de plan de numérotation simple Prenons le cas d’une petite PME. Le plan de numérotation est sur 3 chiffres : 4XX; les 10 SDA affectées par l’opérateur sont 03.83.57.14.00, 14.01, ..., 14.09. Cette société comprend plusieurs collaborateurs : ●
Standardiste, poste interne 400, SDA affectée 03.83.57.14.00
●
Claude, poste 401, SDA affectée 03.83.57.14.01
●
Eliane, poste 402, SDA affectée 03.83.57.14.02
●
René, poste 403, SDA affectée 03.83.57.14.03
●
Huguette, poste 404, SDA affectée 03.83.57.14.04
●
…
Un appel entrant sur le standard déclenche automatiquement une musique d’attente "masocieteattente". Les appels sortants vers les fixes "local/National" et vers les mobiles sont préfixés par le 0. Contenu du fichier sip.conf [general] srvlookup=yes port=5060 disallow=all allow=gsm allow=alaw allow=ulaw type=friend qualify=yes nat=no host=dynamic canreinvite=no context=appels_internes [400] username=400 secret=3615 [401] username=401 secret=5678 [402] username=402 secret=9021 ... Contenu du fichier extensions.conf [general] [globals] Standard=SIP/400 Claude=SIP/401 Eliane=SIP/402 Rene=SIP/403 Huguette=SIP/404 Gateway=Zap/g1
© ENI Editions - All rigths reserved - educ hafa
- 1-
[appels_entrants] exten => s, 1, Answer() exten => s, 2, Playback(Hello-world) exten => s, 3, Hangup() ; affectation des exten => 1400, 1, exten => 1400, 2, exten => 1400, 3,
SDA aux numeros internes Answer() Dial (${Standard},15,m(masociete-attente),r) Hangup()
exten => 1401, 1, Answer() exten => 1401, 2, Dial (${Claude},10,r) exten => 1401, 3, Hangup() exten => 1402, 1, Answer() exten => 1402, 2, Dial (${Eliane},10,r) exten => 1402, 3, Hangup() exten => 1403, 1, Answer() exten => 1403, 2, Dial (${Rene},10,r) exten => 1403, 3, Hangup() exten => 1404, 1, Answer() exten => 1404, 2, Dial (${Huguette},10,r) exten => 1404, 3, Hangup() [appel_internes] include => appels_sortants exten => 400, 1, Answer() exten => 400, 2, Dial(${Standard}) exten => 400, 3, Hangup() exten => 401, 1, Answer() exten => 401, 2, Dial(${Claude}) exten => 401, 3, Hangup() exten => 402, 1, Answer() exten => 402, 2, Dial(${Eliane}) exten => 402, 3, Hangup() exten => 403, 1, Answer() exten => 403, 2, Dial(${Rene}) exten => 403, 3, Hangup() exten => 404, 1, Answer() exten => 404, 2, Dial(${Huguette}) exten => 404, 3, Hangup() [appels_sortants] exten => _00[12345]XXXXXXXX, 1, Dial({$Gateway}/${EXTEN:1}) exten => _00[12345]XXXXXXXX, 2, Congestion() exten => _006XXXXXXXX, 1, Dial({$Gateway}/S{EXTEN:1}) exten => _006XXXXXXXX, 2, congestion() Ce premier plan de numérotation peut être enrichi et optimisé à l’aide d’utilisation de variables, de macros et de nouvelles applications. Ce plan est volontairement incomplet ; il ne permet pas par exemple d’effectuer des appels vers l’international, vers les numéros d’urgence, les numéros surtaxés…
- 2-
© ENI Editions - All rigths reserved - educ hafa
Introduction Dans le chapitre précédent, nous avons vu l’essentiel pour constituer rapidement un plan de numérotation fonctionnel. Cependant, dans le cas d’une structure plus importante comme une PME de 100 personnes, il faut apporter des améliorations nouvelles comme par exemple l’utilisation de variables, de macros ou fonctions qui permettent de simplifier le plan, l’utilisation de syntaxe comme les branchements conditionnels, la mise en place de conférences, la mise en base de données des comptes SIP, des boîtes vocales.
© ENI Editions - All rigths reserved - educ hafa
- 1-
Optimisation avec les macros Exemple : Considérons le plan de numérotation constitué de 3 fois 100 lignes [internal] exten => 400, 1, Answer() exten => 400, 2, Dial(SIP/400,10,r) exten => 400, 3, Hangup() ... exten => 499, 1, Answer() exten => 499, 2, Dial(SIP/499,10,r) exten => 499, 3, Hangup() Ce plan peut être amélioré en écrivant une macro Appel. Toute macro devra être mise entre crochets et le nom devra commencer par macro- : [macro-Appel] exten => s, 1, Answer() exten => s, 2, Dial(${ARG1},10,r) exten => s, 3, Hangup() La variable ${ARG1} contient le premier argument (ou paramètre) passé à la macro et dans le plan de numérotation, l’appel de la macro se fait à l’aide de l’application Macro(nom_de_la_macro, argument). Le même plan de numérotation peut donc s’écrire de la façon suivante : [macro-Appel] exten => s, 1, Answer() exten => s, 2, Dial(${ARG1},10,r) exten => s, 3, Hangup() [internal] exten => 400, 1, Macro(Appel, SIP/400) .. exten => 499, 1, Macro(Appel, SIP/499)
© ENI Editions - All rigths reserved - educ hafa
- 1-
Fonctions avancées 1. Variables et expressions a. Variables Les variables sont utilisées pour être passées en argument à des fonctions. La syntaxe d’une variable est la suivante : ${nom_de_la_variable:offset:longueur} où : ●
nom_de_la_variable est le nom de la variable.
●
offset est un champ optionnel qui définit un pointeur. Si l’offset est négatif, la lecture de la chaîne s’effectue de droite à gauche.
●
longueur est un champ optionnel qui définit le nombre de caractères qui seront retournés, à partir de l’offset.
Exemples : remerciements=Merci à Patrick et à Damien ${remerciements} : retourne Merci à Patrick et à Damien ${remerciements:1} : retourne erci à Patrick et à Damien ${remerciements:-2} : retourne en ${remerciements:8:19} : retourne Patrick et à Damien Nous supprimons ici le préfixe de sortie 0 : exten => _00XXXXXXXXX, 1, SetVar(numero=${EXTEN:1}) exten => _00XXXXXXXXX, 2, Dial(${numero}) Il existe trois types de variables : ●
●
●
variables globales : elles sont présentes dans la section [globals] du plan de numérotation ou peuvent être affectées en tant que telles par la commande SetGlobalVar(). variables de canaux : chaque canal dispose de ses propres variables qui sont détruites lorsque le canal se libère. Elles sont utilisées à l’aide de la commande Set(). Les variables de canaux sont déjà prédéfinies et il vaut mieux ne pas les utiliser en tant que variables globales : ${CONTEXT}, ${CALLERID(num}), ${EXTEN}... variables d’environnement : elles permettent d’accéder aux variables d’environnement du système d’exploitation.
Certaines applications retournent des variables de canaux (channel) : Dial retourne ${DIALSTATUS} qui est un code permettant de connaître l’état de l’appel (ANSWER, BUSY, NOANSWER, CANCEL, CONGESTION, CHANUNAVAIL,...). Les macros disposent de variables spécifiques comme : ${ARG1} : premier argument passé à la macro. ${ARGn} : énième argument passé à la macro. ${MACRO_CONTEXT} : contexte de l’extension d’où la macro a été appelée. ${MACRO_EXTEN} : extension d’où la macro a été appelée. ${MACRO_PRIORITY} : priorité dans l’extension d’où la macro a été appelée.
© ENI Editions - All rigths reserved - educ hafa
- 1-
b. Expressions Les expressions sont utilisées sous la forme $[expression] et utilisent des variables, des opérateurs et des valeurs. La syntaxe est $[expression1 opérateur expresssion2]. Les expressions doivent être conformes à la syntaxe du langage de programmation d’Asterisk. Les opérateurs peuvent être : ●
des opérateurs logiques (vrai ou faux) : | (ou), & (et), ! (négation) ;
●
des opérateurs de comparaison : =, >, =, 777, 1, Set(num1=777) exten => 777, 2, Set(num2=$[${num1} + 3] exten => 777, 3, Dial(${num2}) C’est le poste 780 qui va sonner. L’expression est $[${num1} + 3]. Attention à mettre des espaces entre l’opérateur " +". Que se passetil lorsque le poste 5555 est demandé ? exten => _555X,n,GotoIf($[${VAR1}=100] ? label100 : label200) exten => _5555X,n(label100), Set(VAR2=${VAR1}) exten => _5555X,n(label200), Set(VAR2=${VAR1}+100) Si la variable VAR1 est égale à 100, nous allons au label label100, sinon nous allons au label 200. Dans la priorité n(label100), la variable VAR2 est égale au contenu de la variable VAR1. Dans la priorité n(label200), la variable VAR2 est égale au contenu de la variable VAR1 + 100. Donc si VAR1 = 100 alors VAR2 = 100 sinon VAR2 = 200. Commande de débuggage.
La commande NoOp() (No Operation) permet d’afficher, dans la console Asterisk, ce qui se passe pendant le plan de numérotation. exten => 777, 1, Answer() exten => 777, 2, NoOp(${CALLERID}) Cela permet d’afficher le contenu de la variable CALLERID, donc le numéro de l’appelant.
- 2-
© ENI Editions - All rigths reserved - educ hafa
Les conférences MeetMe 1. Généralités Asterisk permet de mettre en place des conférences de façon très simple : chaque utilisateur interne ou externe peut donc entrer dans un espace de communication dédié. Chaque conférence peut être gérée par un administrateur qui peut rendre muets des participants et même les expulser. Cette fonctionnalité est très intéressante pour les entreprises, d’un point de vue financier, puisqu’il est donc possible de faire transiter les flux de conferencing via les liens intersites déjà en place, évitant ainsi de faire appel à un coûteux dispositif de "pont téléphonique" auprès d’un opérateur. Les déplacements peuvent également être réduits de façon conséquente. Exemple : Conférence MeetMe avec borne audio SIP
Les "MeetMe" sont mises en place à l’aide du fichier de configuration /etc/asterisk/meetme.conf et d’un appel à la fonction MeetMe() dans le plan de numérotation. Pour la gestion de l’audioconférence, il est préférable de dédier un serveur autre que l’autocom en luimême, afin de ne pas le surcharger. Le lien entre les deux serveurs se fera via un trunk SIP, par exemple.
2. Fichier de configuration meetme.conf Ce fichier permet de déclarer des conférences de type statiques. ; ; Configuration file for MeetMe simple conference rooms for Asterisk of course. ; ; This configuration file is read every time you call app meetme() [general] ;audiobuffers=32 ; The number of 20ms audio buffers to be used when feeding audio frames from non-Zap channels ; into the conference; larger numbers will allow for the conference to ’de-jitter’ audio that arrives at different timing than the conference’s timing source, but can also allow for latency in hearing the audio from the speaker.minimum value is 2, maximum value is 32. ; [rooms] ; ; Usage is conf => confno[,pin][,adminpin]
© ENI Editions - All rigths reserved - educ hafa
- 1-
; conf => 900 conf => 910,6678 Dans cette configuration, deux conférences sont définies : la 900 et la 910 accessibles via un mot de passe 6678. La syntaxe est : conf => numéro_conférence, options, mot_de_passe Les options sont nombreuses et les principales sont les suivantes : ●
i : permet d’annoncer quand les personnes entrent ou quittent la conférence.
●
c : annonce le nombre de personnes qui rejoignent la conférence.
●
p : permet aux personnes de quitter la conférence en appuyant sur #.
●
m : mode écoute impossibilité de parler.
●
t : mode discours impossibilité d’écouter.
●
d : permet d’ajouter une conférence de manière dynamique, à partir du plan de numérotation.
●
s: permet de présenter le menu utilisateur ou administrateur si la touche * est pressée.
●
-a : permet d’entrer en mode administrateur.
3. Exemple d’appel à une conférence statique exten => 900, 1, Answer() exten => 900, 2, MeetMe(900) Quand un utilisateur compose l’extension 900, Asterisk le place automatiquement dans la conférence 900. Si un autre utilisateur fait de même, il entrera dans la conférence 900 et, les deux utilisateurs pourront alors entrer en communication. Et ainsi de suite.
4. Exemple d’appel à une conférence dynamique ; conference utilisateur exten => 760, 1, Answer() exten => 760, 2, MeetMe(900,dpm,4044) ; conference orateur exten => 761, 1, Answer() exten => 761, 2, MeetMe(900,dt,4059) En composant le numéro de pont téléphonique 760, le système demande à l’utilisateur de saisir un mot de passe ; si 4044 est tapé, alors l’utilisateur rentre dynamiquement dans la conférence numéro 900 ; il peut en sortir en appuyant sur la touche # et il ne peut pas parler, seulement écouter. En composant le numéro de pont téléphonique 761, le système demande à l’orateur de la conférence de saisir son mot de passe (4059) ; celuici entre alors dynamiquement dans la conférence 900 ; il peut parler bien évidemment mais ne peut entendre les autres membres. La commande MeetMeAdmin() permet d’administrer la conférence. La syntaxe est MeetMeAdmin(numéro_de_conférence, commande, utilisateur) où commande permet d’effectuer une action sur la conférence : ●
- 2-
K : tous les utilisateurs sont sortis de la conférence.
© ENI Editions - All rigths reserved - educ hafa
●
k : un utilisateur est sorti de la conférence ; nécessite un numéro d’utilisateur.
●
L : la conférence est fermée.
●
l : la conférence est ouverte.
; l’utilisateur 1001 est sorti de la conférence MeetMeAdmin(900, k, 1001) La commande MeetMeCount() permet de compter le nombre de participants à une conférence. Cette fonctionnalité est bien souvent utile aux managers afin de mesurer les taux d’audience et ainsi reprogrammer une nouvelle séance de conférence, si le besoin s’en fait sentir.
5. Exemple récapitulatif ; numero pour utilisateur en écoute seule avec demande du mot de passe 4044 exten => 760, 1, Answer() exten => 760, 2, MeetMe(900,dpm,4044) ; numero pour orateur uniquement avec demande du mot de passe 4059 exten => 761, 1, Answer() exten => 761, 2, MeetMe(900,dt,4059) ; numero exten => exten => exten =>
pour 762, 762, 762,
administrer avec demande du mot de passe 9991 1, Answer() 2, Authenticate(9991) 3, MeetMeAdmin(900, K)
; numero uniquement pour manager avec demande du mot de passe 9984 exten => 763, 1, Answer() exten => 763, 2, Authenticate(9984) exten => 763, 3, MeetMeCount(900)
6. Gestion MeetMe à partir de la CLI # asterisk -rvvvvv meetme : liste les conférences actives au sein du système meetme kick : fait sortir tous les utilisateurs de la conférence meetme kick : idem mais pour un utilisateur précis meetme lock : permet de verrouiller la conférence meetme unlock : permet de dévérouiller la conférence meetme mute : permet de rendre muet un utilisateur précis dans la conférence meetme unmute : permet de rendre bavard un utilisateur précis dans la conférence
© ENI Editions - All rigths reserved - educ hafa
- 3-
Audio et vidéo L’utilisation des conférences audio est une application très intéressante d’Asterisk mais il faut bien constater que vouloir bâtir une réunion entre plusieurs personnes distantes de 1000 Kms, sans support visuel pour les documents ou sans vidéo, peut rapidement être rébarbatif et ainsi perdre en efficacité. Certaines fonctionnalités peuvent être ajoutées en périphérie de la plateforme Asterisk : ●
support de webconferencing via un logiciel adhoc, par (http://www.openmeetings.net) permet d’effectuer des réunions en ligne : ●
●
●
●
exemple,
OpenMeetings
Les utilisateurs se connectent à une conférence pour écouter l’orateur, celui qui présente le dernier document marketing par exemple, en diaporama. En même temps, les utilisateurs se connectent sur un lien URL afin de visualiser le document qui est commenté par l’orateur.
plateforme DIMDIM (http://www.dimdim.org) permet d’héberger un système de webconférence. DIMDIM existe en version SAAS (version payante) ou peut être installé en version Open Source sur un serveur au sein de l’entreprise (http://ebooks.zedl.fr). mise en place de communication via deux softphones équipés du support vidéo ; la version commerciale de X Lite EyeBeam permet d’obtenir une communication audio et vidéo, à l’aide de simple webcam. La fenêtre du bas présente la vidéo de l’utilisateur local et celle du haut la vidéo de l’utilisateur distant.
Le fichier sip.conf doit contenir l’information : videosupport=yes et les codecs h263 et h263p (allow=all). * La mise en œ uvre d’une véritable plateforme vidéo en mode multiutilisateurs n’est pas intégrée dans Asterisk ; il est cependant possible d’obtenir un résultat correct en prenant garde de prendre beaucoup de précautions : ●
Mettre en œ uvre des caméras motorisées IP de bonne qualité ou des caméras analogiques.
●
Mettre en place un véritable réseau de qualité avec de la QoS et suffisamment de bande passante car la vidéo,
© ENI Editions - All rigths reserved - educ hafa
- 1-
contrairement à la VoIP, est très consommatrice. ●
- 2-
Concevoir un système simple d’utilisation et facile à administrer.
© ENI Editions - All rigths reserved - educ hafa
Asterisk et les bases de données 1. La base de données AstDB Le stockage de données au sein même du plan de numérotation, à l’aide de fonction et de variables, atteint vite ses limites en terme d’exploitation. Asterisk permet de stocker des valeurs à l’aide d’une base de données interne, AstDB (Asterisk DataBase) qui est au format Berkeley. Les données sont sauvegardées dans des familles et sont identifiées par des clés. Cellesci sont uniques par famille. Il faut noter que les données de la base sont persistantes dans le sens où elles demeurent accessibles depuis n’importe où dans le plan de numérotation même après un reboot du serveur. La base est stockée dans /var/lib/asterisk/astdb. Les postes connectés sont stockés dans la base AstDB (clé SIP / Registry).
a. AstDB dans le plan de numérotation Exemple : Écriture d’une valeur dans la clé prenom de la famille utilisateur ${prenom}=Zoe exten => s, 1, Set(DB(utilisateur/prenom=${prenom}) Exemple : Lecture de la valeur de la clé prenom de la famille utilisateur exten => s, 1, Set(prenom=${DB(utilisateur/prenom)}) exten => s, 2, NoOP($prenom)
b. Commandes AstDB DBdel(famille/clé) : supprime une clé de la base. DBdeltree(famille) : supprime une famille de la base. DBget(variable=famille/clé) : recherche une valeur dans la base. DBput(famille/clé=valeur) : enregistre une valeur dans la base. Commandes CLI database show : affiche l’ensemble de la base AstDB. database get : recherche une valeur d’une clé d’une famille. database put : stocke une valeur dans une clé d’une famille. database del : supprime une clé. database deltree : supprime une famille. Exemple : nous souhaitons utiliser AstDB pour stocker les SDA des utilisateurs. Pour cela, nous allons créer une famille SDA avec autant de clés que l’on a de SDA et affecter les numéros de postes internes à chaque clé. De la même façon, nous allons créer une famille POSTE avec autant de clés que l’on a de postes internes et affecter les noms des utilisateurs. La mise en place de cette configuration se fait à l’aide de commandes CLI : CLI> CLI> CLI> CLI>
database database database database
put put put put
SDA 0383909010 777 SDA 0383909011 778 POSTE 777 P.DUPOND POSTE 778 J.DUPONT
Dans le plan de numérotation : exten => 9010, 1, Set(numinterne=${DB(SDA/0383909010)})
© ENI Editions - All rigths reserved - educ hafa
- 1-
exten => 9010, 2, Dial(SIP/${numinterne}) Cette base de données interne à Asterisk est efficace pour stocker des variables mais devient vite complexe à manipuler dans le cas de stockage de grosses quantités d’informations.
2. La base de données Realtime L’architecture Realtime d’Asterisk ARA (Asterisk Realtime Architecture), apparue avec la version 1.2, permet de stocker des informations diverses dans une base de données de type SQL ; cela peut être les informations des fichiers sip.conf, extensions.conf, voicemail.conf... La possibilité d’externaliser ce genre d’informations permet de disposer : ●
d’une meilleure mise à jour et d’une meilleure lisibilité des données ;
●
d’éviter de reloader une configuration statique en cas de changement ;
●
d’externaliser la base sur un serveur dédié, différent du serveur Asterisk.
3. Configuration de Realtime avec une base de données MySQL a. Prérequis ●
●
●
Il faut au préalable avoir installer tous les packages MySQL (voir le chapitre Installation d’un serveur Asterisk). L’accès à la base peut se faire à l’aide d’un outil de type phpMyadmin (http://www.phpMyAdmin.net), SQLiog (http://www.webyog.com) ou MySQL Admin (http://www.mysql.com) permettant de disposer d’une interface web : ajout, suppression, modification, interrogation. Le package asteriskaddons doit être installé.
b. Procédure d’installation 1. Vérifier le contenu du fichier /etc/asterisk/asterisk.conf qui contient le chemin des modules. /etc/asterisk/asterisk.conf [directories] astetcdir => /etc/asterisk astmoddir => /usr/lib/asterisk/modules astvarlibdir => /var/lib/asterisk astagidir => /var/lib/asterisk/agi-bin astspooldir => /var/spool/asterisk astrundir => /var/run/asterisk astlogdir => /var/log/asterisk ; Changing the following lines may compromise your security. ;[files] ;astctlpermissions = 0660 ;astctlowner = root ;astctlgroup = apache ;astctl = asterisk.ctl 2. Recopier le fichier res_mysql.conf.sample dans /etc/asterisk et apporter les modifications voulues. Le fichier res_mysql.conf contient les paramètres pour se connecter à la base : adresse du serveur, nom de la base realtime, numéro du port, nom de l’utilisateur de la base, mot de passe de l’utilisateur de la base. /etc/asterisk/res_mysql.conf - 2-
© ENI Editions - All rigths reserved - educ hafa
[general] dbhost = 127.0.0.1 dbname = asterisk dbuser = odbc dbpass = 123456789 dbport = 3306 3. Modifier le fichier /etc/asterisk/res_odbc.conf [asterisk] enabled => yes dsn => MySQL-asterisk username => odbc password => 123456789 pre-connect => yes
c. Modification du fichier extconfig.conf La syntaxe de /etc/asterisk/extconfig.conf est la suivante : nom de la famille => driver, nom de la base, nom de la table [settings] sipusers => mysql,asterisk,sip_conf sippeers => mysql,asterisk,sip_conf iaxusers => mysql,asterisk,iax_conf iaxpeers => mysql,asterisk,iax_conf queues => mysql,asterisk,queue_conf voicemail => mysql,asterisk,voicemail_conf ;extensions => mysql,asterisk,extensions_conf Cette configuration permet de mettre en base le contenu de sip.conf, iax.conf, queues.conf, voicemail.conf mais pas de extensions.conf (nous verrons pourquoi plus loin il est déconseillé de le faire).
d. Création des tables de la table asterisk_db Sous MySQL, les tables peuvent être créées directement avec phpMyAdmin. # structure de la table sip_conf CREATE TABLE `sip_conf` ( `id` int(11) NOT NULL auto_increment, `name` varchar(80) NOT NULLdefault", `host`varchar(31) NOT NULL default ", `nat` varchar(5) NOT NULL default ’no’, `type` enum(’user’,’peer’,’friend’) NOT NULL default ’friend’, `accountcode` varchar(20) default NULL, `amaflags` varchar(13) default NULL, `callgroup` varchar(10) default NULL, `callerid` varchar(80) default NULL, `cancallforward` char(3) default ’yes’, `canreinvite` char(3) default ’yes’, `context` varchar(80) default NULL, `defaultip` varchar(15) default NULL, `dtmfmode` varchar(7) default NULL, `fromuser` varchar(80) default NULL, `fromdomain` varchar(80) default NULL, `insecure` varchar(4) default NULL, `language` char(2) default NULL, ’mailbox` varchar(50) default NULL, `md5secret` varchar(80) default NULL, `deny` varchar(95) default NULL, `permit` varchar(95) default NULL, `mask` varchar(95) default NULL, `musiconhold` varchar(100) default NULL, `pickupgroup` varchar(10) default NULL, `qualify` char(3)default NULL, `regexten` varchar(80) default NULL, `restrictcid` char(3) default NULL, `rtptimeout` char(3)’default NULL, `rtpholdtimeout` char(3) default NULL, `secret` varchar(80)default NULL, `setvar` varchar(100) default NULL, `disallow` varchar(100) default ’all’, `allow` varchar(100) default ’g729;ilbc;gsm;ulaw;alaw’, `fullcontact` varchar(80) NOT NULL default ", `ipaddr` varchar(15) NOT NULL default ", `port` smallint(5) unsigned NOT NULL default ’0’, `regseconds`
© ENI Editions - All rigths reserved - educ hafa
- 3-
int(11) NOT NULL default ’0’, `username` varchar(80) NOT NULL default ’’, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), KEY `name_2` (`name`) ) TYPE=MyISAM ROW_FORMAT=DYNAMIC; Toutes ces colonnes ne sont pas indispensables et il convient d’adapter la structure de la table en fonction de ses besoins. Le fichier sip.conf est alors réduit au minimum : [general] context=default rtcachefriends=yes srvlookup=yes port=5060 bindaddr = 0.0.0.0 disallow=all allow=g729 allow=gsm allow=alaw allow=ulaw language=fr notifyringing=yes country=fr videosupport=yes La table sip_conf contient autant de lignes d’enregistrements que de comptes sip : Name
Host
Secret
Context
777
dynamic
8890
Default
g729 ;gsm ;alam;ulaw
780
dynamic
3618
Internal
g729 ;gsm ;alaw ;ulaw
#structure de la table voicemail_conf CREATE TABLE `voicemail_conf` ( `uniqueid` int(11) NOT NULL auto_increment, `customer_id` int(11) NOT NULL default ’0’, `context` varchar(50) NOT NULL default ", `mailbox` int(5) NOT NULL default ’0’, `password` varchar(4) NOT NULL default ’0’, `fullname` varchar(50) NOT NULL default ", `email` varchar(50) NOT NULL default ", `pager` varchar(50) NOT NULL default ", `stamp` timestamp(14) NOT NULL, `attach`varchar(3) NOT NULL default ’no’, `saycid` varchar(3) NOT NULL default ’yes’, PRIMARY KEY (`uniqueid`), KEY `mailbox_context` (`mailbox`,`context`) ) TYPE=MyISAM; # structure de la table iax_conf CREATE TABLE iax_conf ( name varchar(30) primary keyNOT NULL, username varchar(30), type varchar(6) NOT NULL, secret varchar(50), md5secret varchar(32), dbsecret varchar(100), notransfer varchar(10), inkeys varchar(100), outkey varchar(100), auth varchar(100), accountcode varchar(100), amaflags varchar(100),
- 4-
allow
© ENI Editions - All rigths reserved - educ hafa
callerid varchar(100), context varchar(100), defaultip varchar(15), host varchar(31) NOT NULL default ’dynamic’, language char(5), mailbox varchar(50), deny varchar(95), permit varchar(95), qualify varchar(4), disallow varchar(100), allow varchar(100), ipaddr varchar(15), port integer default 0, regseconds integer default 0 ); CREATE UNIQUE INDEX iax_conf_username_idx ON iax_conf(username); # Structure de la table extensions_conf CREATE TABLE `extensions_conf` ( `id` int(11) NOT NULL auto_increment, `context` varchar(20) NOT NULL default ", `exten` varchar(20) NOT NULL default ", `priority` tinyint(4) NOT NULL default ’0’, `app` varchar(20) NOT NULL default ", `appdata` varchar(128) NOT NULL default ", PRIMARY KEY (`context`,`exten`,`priority`), KEY `id` (`id`) ) TYPE=MyISAM; Pour activer la lecture du plan de numérotation dans Realtime, le fichier extensions.conf doit contenir la commande : switch => realtime/contexte@famille La commande switch extconfig.conf.
=>
realtime/@ s’applique au contexte courant et à la famille extensions du fichier
Pour démarrer le plan de numérotation, il va falloir lancer autant de commandes MySQL qu’il y aura de lignes dans le plan de numérotation : INSERT ’777’, INSERT ’777’,
INTO `extensions_conf` VALUES (1, ’appels_entrants’, 1, ’Answer’) INTO `extensions_conf` VALUES (2, ’appels_entrants’, 2, ’Dial’, ’SIP/777’)
Imaginons un plan de numérotation complexe composé d’appels macro ou de commandes qui en appellent d’autres ; cela devient vite fastidieux et illisible. Toutes les informations relatives aux utilisateurs d’Asterisk se mettent facilement en base de données, alors que le plan de numérotation extensions.conf doit être laissé sous forme statique.
Il est possible de créer au préalable un script "scriptasterisk.sql" au format SQL (create database...) et d’importer ce script dans MySQL à l’aide de la commande #mysqluodbcp 777, 1, Realtime(sipusers, name, 777, var_) Le contenu du champs n de l’enregistrement est obtenu dans la variable ${VAR_champs_n}. Par exemple, si nous souhaitons récupérer le contenu du champs Context, il faut affecter ${VAR_Context} à une nouvelle variable. exten => 777, 2, Set(Contexte=${VAR_Context}) Mise à jour Realtime L’application RealtimeUpdate() permet d’effectuer des mises à jour dans la base de données. L’exemple cidessous permet de lancer la commande SQL : Update asterisk_db SET username= ’William’ WHERE name = ’777’ exten => 777, 1, RealtimeUpdate(sipusers, name, 777, username, William)
- 6-
© ENI Editions - All rigths reserved - educ hafa
Introduction Nous avons vu au cours des chapitres précédents comment installer un serveur Asterisk monosite et c’est probablement ce qu’il faut déjà commencer par faire avant de se lancer dans le raccordement de sites distants. Un des intérêts d’une solution de VoIP et de pouvoir profiter du réseau de données privé pour faire passer les communications internes et il existe plusieurs façons de réaliser cette nouvelle infrastructure : ●
utiliser un système Asterisk centralisé ;
●
utiliser un système Asterisk de petite taille sur le site distant ;
●
utiliser les deux solutions précédentes avec un serveur primaire et un serveur secondaire.
Nous serions tenté de dire que tout dépend des contraintes budgétaires et surtout du réseau de données déjà en place. Cependant, une certitude demeure : il faut rester prudent en installant un serveur Asterisk sur les sites de taille importante et toujours avoir des solutions de secours.
© ENI Editions - All rigths reserved - educ hafa
- 1-
Interconnexion de serveurs Asterisk avec des trunks 1. Trunks SIP Supposons ici une entreprise disposant d’un siège à Paris, d’une usine de production à Nancy et d’un site de commercialisation à Bordeaux. Les trois sites ont respectivement 50, 250 et 30 personnes et disposent d’un réseau VPN avec QoS.
a. Site de Paris Le plan de numérotation est bâti sur trois chiffres : de 100 à 199. L’IP du serveur Asterisk est 192.168.1.100. ●
sip.conf
... [104] context=default host=dynamic type=friend username=104 [105] context=default host=dynamic type=friend username=105 ...
●
extensions.conf
Tout appel commençant par le chiffre 2, suivi de deux autres chiffres, est routé sur le canal SIP/192.168.2.100, donc
© ENI Editions - All rigths reserved - educ hafa
- 1-
envoyé vers le serveur SIP de Nancy. Tout appel commençant par le chiffre 1, suivi de deux autres chiffres, est routé sur le canal SIP/192.168.3.100, donc envoyé vers le serveur SIP de Bordeaux. ... exten => _2XX, 1, dial(SIP/192.168.2.100/${EXTEN}) exten => _3XX, 1, dial(SIP/192.168.3.100/${EXTEN})
b. Site de Nancy Le plan de numérotation est bâti sur trois chiffres : de 200 à 299. L’IP du serveur Asterisk est 192.168.2.100. ●
sip.conf
... [204] context=default host=dynamic type=friend username=204 [205] context=default host=dynamic type=friend username=205 ...
●
extensions.conf
Tout appel commençant par le chiffre 1, suivi de deux autres chiffres, est routé sur le canal SIP/192.168.1.100, donc envoyé vers le serveur SIP de Paris. Tout appel commençant par le chiffre 1, suivi de deux autres chiffres, est routé sur le canal SIP/192.168.3.100, donc envoyé vers le serveur SIP de Bordeaux. ... exten => _1XX, 1, dial(SIP/192.168.1.100/${EXTEN}) exten => _3XX, 1, dial(SIP/192.168.3.100/${EXTEN})
c. Site de Bordeaux Le plan de numérotation est bâti sur trois chiffres : de 300 à 399. L’IP du serveur Asterisk est 192.168.3.100. ●
sip.conf
... [304] context=default host=dynamic type=friend username=304 [305] context=default host=dynamic type=friend username=305 ...
●
extensions.conf
Tout appel commençant par le chiffre 1, suivi de deux autres chiffres, est routé sur le canal SIP/192.168.1.100, donc
- 2-
© ENI Editions - All rigths reserved - educ hafa
envoyé vers le serveur SIP de Paris. Tout appel commençant par le chiffre 2, suivi de deux autres chiffres, est routé sur le canal SIP/192.168.2.100, donc envoyé vers le serveur SIP de Nancy. ... exten => _1XX, 1, dial(SIP/192.168.1.100/${EXTEN}) exten => _2XX, 1, dial(SIP/192.168.2.100/${EXTEN})
2. Trunks IAX Lorsque plusieurs Asterisk doivent être interconnectés, il est préférable de les mettre en relation à l’aide du protocole IAX qui a été développé spécifiquement à cet effet. IAX permet de réaliser des trunks IAX mais aussi de connecter des clients IAX entreeux (téléphones et softphones). Le fichier /etc/asterisk/iax.conf permet de configurer les trunks IAX. Il comprend toujours une section [general] permettant de définir certains paramètres du protocole IAX (codecs, bande passante, mode trunk...) et autant de sections qu’il y aura d’utilisateurs IAX. Dans notre exemple, les utilisateurs IAX que sont Paris, Nancy et Bordeaux sont définis en tant que friend : ils peuvent donc émettre et recevoir des appels.
a. Site de Paris ●
iax.conf
[general] qualify = yes disallow = all allow = ulaw; gsm; ilbc port = 4569 trunk = yes context = internal [nancy] username = nancy type = friend secret = nancy_usine context = internal host = 192.168.2.100 [Bordeaux] username = bordeaux type = friend secret = bordeaux_com host = 192.168.3.100
●
extensions.conf
... ; gestion du trunk IAX vers Nancy exten => _2XX,1,Dial(IAX2/nancy:
[email protected]/${EXTEN}) ; gestion du trunk IAX vers Bordeaux exten => _3XX,1,Dial(IAX2/
[email protected]/${EXTEN}) Commandes CLI : ●
iax2 show registry permet de visualiser l’état des enregistrements IAX ;
●
iax2 show users permet de visualiser les utilisateurs IAX définis ;
© ENI Editions - All rigths reserved - educ hafa
- 3-
●
iax2 reload permet de recharger la configuration IAX ; à utiliser en cas de modification de iax.conf.
b. Site de Nancy ●
iax.conf
[general] qualify = yes disallow = all allow = ulaw; gsm; ilbc port = 4569 trunk = yes context = internal [paris] username = paris type = friend secret = paris_siege host = 192.168.1.100 [bordeaux] username = bordeaux type = friend secret = bordeaux_com host = 192.168.3.100
●
extensions.conf
exten => _1XX,1,Dial(IAX2/paris:
[email protected]/${EXTEN}) exten => _3XX,1,Dial(IAX2/bordeaux:
[email protected]/${EXTEN})
c. Site de Bordeaux ●
iax.conf
[general] qualify = yes disallow = all allow = ulaw; gsm; ilbc port = 4569 trunk = yes context = internal [paris] username = paris type = friend secret = paris_siege host = 192.168.1.100 [nancy] username = nancy type = friend secret = nancy_usine host = 192.168.2.100
●
extensions.conf
exten => _1XX,1,Dial(IAX2/paris:
[email protected]/${EXTEN}) exten => _2XX,1,Dial(IAX2/nancy:
[email protected]/${EXTEN})
- 4-
© ENI Editions - All rigths reserved - educ hafa
Interconnexion de serveurs Asterisk en mode primaire/secondaire 1. Généralités Dans la configuration précédente, chaque site dispose de son propre PBX et chaque client SIP et/ou IAX n’est enregistré qu’une fois sur le serveur de son site. Cette configuration est problématique en terme de sécurité car si le PBX local vient à ne plus fonctionner, les utilisateurs du site ne peuvent plus utiliser le service de téléphonie. Pour cette raison, nous allons préférer construire une architecture redondée avec un serveur Asterisk centralisé sur Nancy car c’est le plus gros site en terme d’utilisateurs ; ce serveur sera considéré comme étant le primaire. Les sites de Paris et de Bordeaux auront des serveurs locaux et seront considérés comme étant secondaires. Ces serveurs ne deviendront actifs que lorsque le primaire ne fonctionnera plus ou sera injoignable. Bien sûr, il faudra choisir des téléphones permettant de configurer un serveur primaire et un serveur secondaire.
2. Paramétrage a. Site primaire (Nancy) ●
extensions.conf
... ;gestion [paris] ... exten => exten => ... ;gestion exten =>
du site de Paris
104, 1, Dial(SIP/104) 105, 1, Dial(SIP/105) des appels sortants par le routeur passerelle de Paris _0[1-6]XXXXXXXX,1,Dial(SIP/192.168.1.253/${EXTEN})
;gestion du site de Bordeaux [bordeaux] ... exten => 304, 1, Dial(SIP/304) exten => 305, 1, Dial(SIP/305)
© ENI Editions - All rigths reserved - educ hafa
- 1-
;gestion des appels sortants par le routeur passerelle de Bordeaux exten => _0[1-6]XXXXXXXX,1,Dial(SIP/192.168.3.253/${EXTEN})
b. Site secondaire (Paris) ●
extensions.conf
... exten => 104, 1, Dial(SIP/104) ... exten => _0[1-6]XXXXXXXX,1,Dial(SIP/192.168.1.253/${EXTEN})
c. Site secondaire (Bordeaux) ●
extensions.conf
... exten => 104, 1, Dial(SIP/104) ... exten => _0[1-6]XXXXXXXX,1,Dial(SIP/192.168.3.253/${EXTEN})
3. Configuration du Thomson ST2030 Le téléphone THOMSON ST2030 permet un paramétrage d’un serveur SIP primaire et d’un serveur SIP secondaire. Cette configuration a été vue au chapitre Installation d’un serveur Asterisk.
- 2-
© ENI Editions - All rigths reserved - educ hafa
Interconnexion de PBX hétérogènes Dans beaucoup de cas, nous serons confrontés au besoin d’interconnecter des utilisateurs raccordés sur des autocoms IP de natures différentes. Le seul prérequis est que ces derniers soient IP et comprennent le protocole SIP ou QSIG (protocole de signalisation basé sur le protocole du RNIS).
1. Interconnexion entre un Asterisk et un Call Manager CISCO a. Schéma de principe
b. Configuration du côté Asterisk Le plan de numérotation du monde Asterisk est basé sur trois chiffres en 8XX. Afin de pouvoir passer des appels internes vers le monde Cisco, il va falloir définir un trunk SIP (en effet, le call Manager est capable de dialoguer en SIP) et indiquer un préfixe spécifique (le 5 par exemple) qui permettra à Asterisk de router les appels vers le site distant. Le plan de numérotation du monde Cisco est sur quatre chiffres en 6XXX. ●
extensions.conf
... exten => _56XXX, 1, Dial(SIP/192.168.54.10:5062/${EXTEN:1}) ... Tous les appels commençant par le préfixe 5, suivi du chiffre 6 puis suivi de trois chiffres seront routés vers le serveur dont l’IP est 192.168.54.10 (ici, considérons qu’il s’agit du serveur Call Manager) sur le port SIP 5062 (et non pas le port standard de SIP 5060); cela va permettre de ne pas entrer en conflit avec le fonctionnement interne du Call Manager dans son propre monde. Enfin, nous ne passons que le paramètre ${EXTEN} privé du premier chiffre, soit en réalité les 4 chiffres suivants 6XXX.
c. Configuration du côté Cisco Vocabulaire Cisco Un Device Phone correspond à un téléphone. Un Device Pool signifie un modèle. Un Calling search Space (CSS) définit les patterns autorisés ou non. Une Partition est un ensemble de patterns. Une Région représente une zone géographique qui permet de définir les codecs et la bande passante vidéo. © ENI Editions - All rigths reserved - educ hafa
- 1-
Accès au Call Manager Le Call Manager, installé sur une plateforme Windows, écoute le protocole SIP sur les ports 5060 et 5062. La configuration du PBX se fait à l’aide de paramétrage via la console d’administration du Call Manager (https://192.168.54.10/ccmadmin).
Paramétrage Prenons comme exemple les données suivantes. Nous allons définir une région R_SIEGE, un device pool DP_SIEGE, un calling search space CSS_SIEGE et des patterns. Création du trunk T_Asterisk : Device / trunk ●
Device Name : T_Asterisk
●
Description : trunk Asterisk
●
Device Pool : DP_SIEGE
●
Destination Adress : 192.168.1.100 (IP du serveur Asterisk)
●
Destination Port : 5060
●
Incoming Port : 5060
●
Outgoing Transport Type : UDP
Création d’une partition P_Asterisk : Route Plan / Class Of Control / Partition ●
Partition Name : P_Asterisk
●
Description : partition Asterisk
Création d’une CSS CCS_SIEGE : Route Plan / Class Of Control / Calling Search Space :
- 2-
© ENI Editions - All rigths reserved - educ hafa
●
●
Calling Search Space Name : CSS_SIEGE ●
Description : Droits d’appels pour membres du SIEGE
●
Available Partitions : ajouter P_Asterisk aux partitions existantes
Création d’une Route Pattern : Route Plan / Route Hunt / Route Pattern ●
Route Pattern : 5XXX
●
Partition : P_Asterisk
●
Description : RP_Asterisk
●
Gateway or Route List : T_Asterisk
●
Route Option : Route this pattern
●
Discard Digits : PreDot (permet de supprimer le 5)
●
Création de 2 téléphones : Device / Phone
●
Description : Directeur
●
Device Pool : DP_SIEGE
●
Calling Search Space : CSS_SIEGE ●
Directory Number Configuration
●
Directory Number : 6100
●
Partition : P_SIEGE
●
Calling Search Space : CCS_SIEGE
●
Device Pool : DP_SIEGE
●
Description : Directeur Adjoint
●
Device Pool : DP_SIEGE
●
Calling Search Space : CCS_SIEGE ●
Directory Number Configuration
●
Directory Number : 6101
●
Partition : P_SIEGE
●
Calling Search Space : CCS_SIEGE
●
Device Pool : DP_SIEGE
D’autres systèmes hétérogènes peuvent s’interconnecter à nos deux mondes Asterisk et Cisco Call Manager. Il
© ENI Editions - All rigths reserved - educ hafa
- 3-
faudra veiller à faire éventuellement migrer les autres PBXs en version SIP (point d’accès SIP), ce qui peut s’avérer coûteux s’ils sont nombreux. Il faudra alors faire un compromis entre une migration ou non et dans ce dernier cas, il faudra alors prendre en compte le facteur amortissement avant de remplacer purement et simplement l’autocom. Il est également possible de faire appel au protocole QSIG (signalisation au point Q) qui permet à des autocom divers de communiquer entre eux. La mise en œ uvre de cette architecture nécessite un routeur spécifique.
- 4-
© ENI Editions - All rigths reserved - educ hafa
Introduction Nous avons vu, au cours des chapitres précédents, les bases pour construire un serveur Asterisk mais il existe encore bien d’autres outils permettant d’améliorer le service de téléphonie sur IP et permettant les fonctionnalités suivantes : ●
avoir des statistiques des appels ;
●
disposer d’interfaces graphiques de management de la configuration ;
●
gérer les fax entrants ;
●
interconnecter des applications externes au système.
© ENI Editions - All rigths reserved - educ hafa
- 1-
Statistiques avec CDR Un des points importants d’un cahier des charges de TVoIP est de disposer d’outils permettant d’effectuer la taxation et donc la facturation ; autrement dit d’obtenir des rapports sur les appels émis et reçus : numéro appelant numéro appelé durée de l’appel date de l’appel heure de l’appel Un outil de taxation peut s’avérer très utile si le PBX est utilisé pour le compte de plusieurs sociétés et qu’un mécanisme de refacturation interne doit être mis en œ uvre. Il prend évidemment tout son sens si le PBX est un centrex à destination de clients finaux auprès desquels une facturation du service est évidente. Dans ce cas, le business model dépend fortement du contrat souscrit avec les opérateurs télécoms qui fournissent l’accès au réseau commuté. À ce jour, en France, aucun opérateur ne propose, en revente de type marque blanche et sous forme standardisée, un forfait illimité pour les appels vers les fixes en local et national.
1. Retrouver les CDR Le système Asterisk dispose de plusieurs moyens permettant de retrouver la liste des appels passés et/ou reçus. Ces appels sont en fait des tickets ou CDR pour Call Data Records. Pour cela, il ne faut pas oublier de charger les modules correspondants.
a. Outil de base Master.csv L’enregistrement des tickets s’effectue dans un fichier au format CSV, dans le fichier /var/log/asterisk/cdr csv/Master.csv, qui est un journal de logs de tous les appels du système. Ce mécanisme nécessite le chargement du module cdr_cvs.so et le paramétrage du fichier /etc/asterisk/cdr.conf. Les champs à enregistrer sont présents dans le fichier /etc/asterisk/cdr_custom.csv et nécessitent de charger le module cdr_custom.so. Contenu du fichier cdr_custom.conf ; ; Mappings for custom config file ; ; to get your csv output in a format tailored to your liking, uncomment the following ; and look for the output in the cdr-custom/Master.csv file (usually in /var/log/asterisk). ; ; [mappings] Master.csv => ${CSV_QUOTE(${CDR(clid)})},${CSV_QUOTE(${CDR(src)})}, ${CSV_QUOTE(${CDR(dst)})},${CSV_QUOTE(${CDR(dcontex t)})},${CSV_QUOTE(${CDR(channel)})},${CSV_QUOTE(${CDR(dstchannel)})}, ${CSV_QUOTE(${CDR(lastapp)})},${CSV_QUOTE(${CDR(la stdata)})},${CSV_QUOTE(${CDR(start)})},${CSV_QUOTE(${CDR(answer)})}, ${CSV_QUOTE(${CDR(end)})},${CSV_QUOTE(${CDR(duratio n)})},${CSV_QUOTE(${CDR(billsec)})},${CSV_QUOTE(${CDR(disposition)})}, ${CSV_QUOTE(${CDR(amaflags)})},${CSV_QUOTE(${CDR( accountcode)})},${CSV_QUOTE(${CDR(uniqueid)})},${CSV_QUOTE(${CDR (userfield)})} ;Simple.csv => ${CSV_QUOTE(${EPOCH})},${CSV_QUOTE(${CDR(src)})},$ {CSV_QUOTE(${CDR(dst)})} Le fichier est au format texte donc peu lisible; il convient de le traiter dans un tableur afin de récupérer des informations lisibles et exploitables pour effectuer des tris. Exemple de fichier de logs Master.csv non formaté :
© ENI Editions - All rigths reserved - educ hafa
- 1-
b. Enregistrement des tickets dans une base MySQL Ce mécanisme nécessite le chargement du module cdr_mysql.so et le paramétrage du fichier de configuration /etc/asterisk/cdr_addon_mysql.conf.
c. Envoi des tickets à l’AMI Cela s’effectue via le module cdr_manager.so et le paramétrage du fichier /etc/asterisk/cdr_manage.conf.
d. Envoi des tickets à un serveur d’authentification Radius (FreeRadius par exemple) Ce système nécessite de charger le module cdr_radius.so et le paramétrage du fichier /etc/asterisk/cdr.conf, section [radius]. Bien souvent, le serveur Radius, déjà présent dans l’entreprise, est différent de celui d’Asterisk (c’est d’ailleurs souhaitable). La gestion d’un radius en mode Web peut s’effectuer via l’outil PhpMyAdmin plutôt qu’en ligne de commande.
Pour charger un module, il faut le spécifier dans le fichier /etc/asterisk/modules.conf et penser à recharger le serveur Asterisk.
2. Champs CDR Les CDR peuvent être stockés dans une base MySQL ou sur un serveur Syslog. Les champs CDR par défaut d’Asterisk sont : ●
- 2-
accountcode (numéro de compte à utiliser pour la facturation ou l’analyse, lien avec l’accountcode de sip.conf) ;
●
src (numéro de l’appelant) ;
●
dst (numéro de l’appelé) ;
●
dcontext (contexte de destination du plan de numérotation utilisé) ;
●
clid (informations concernant l’appelant, caller ID) ;
●
channel (canal utilisé pour le routage de l’appel vers l’appelant) ;
●
dstchannel (canal utilisé pour le routage de l’appel vers l’appelé) ;
© ENI Editions - All rigths reserved - educ hafa
●
lastapp (Application Asterisk Dial, VoiceMail...) ;
●
lastdata (paramètres utilisés par l’application) ;
●
start (heure d’appel) ;
●
answer (heure de la réponse de l’appelé) ;
●
end (heure de fin d’appel) ;
●
duration (durée de l’appel en secondes) ;
●
billsec (durée utilisée pour la facturation en secondes) ;
●
disposition (dernier statut de l’appel) ;
●
amaflags (Indicateurs Answsered Machine Accounting : DEFAULT, OMIT, BILLING, DOCUMENTATION) ;
●
user field (voir la fonction SetCDRUserField()).
3. Applications de facturation (Billing) SetAMAflags(flags) : permet de positionner les flags AMA ; le compte 777 est positionné avec un flag de facturation exten => 777, 1, SetAMAFlags(billing) ForkCDR() : permet de créer un nouveau CDR pour l’appel en cours exten => 777, 1, ForkCDR() NoCDR() : permet de désactiver le CDR pour l’appel en cours exten => 777, 1, NoCDR() exten => 777, 2, Dial(SIP/777) ResetCDR() : permet de remettre le CDR à vierge ; avec l’option w, copie du CDR en cours exten => 777, 1, ResetCDR(w) ; efface le CDR en cours exten => 778, 1, ResetCDR() SetAccount(account) : permet de définir un compte pour le CDR ; pour chaque appel vers le 777, c’est le compte 1000 qui apparaîtra comme accountcode dans le CDR exten => 777, 1, Set(CDR(accountcode)=1000) exten => 777, 1, 2, dial(777) SetCDRUserField(value) : permet de spécifier une valeur personnalisée au champ userfield du CDR ; Chaque appel de 777 va enregistrer la valeur « promo 2007 » dans le champ userfield exten => 777, 1, Set(CDR(userfield)=promo 2007) AppendCDRUserField(value) : permet de mettre à jour le userfield du CDR exten => 777, 1, Set(CDR(userfield)=promo 2007) ...
© ENI Editions - All rigths reserved - educ hafa
- 3-
exten => 777, 2, Set(ufield=$cdr(userfield)}) ... exten => 777, 3, Set(CDR(userfield)=ufield prolongation) Le champ userfield aura donc comme valeur "promo 2007 prolongation"
4. Asterisk statistiques L’outil asteriskstat (http://www.areski.net/asteriskstatv2/asteriskstat v2_0_1.tar.gz) permet de fournir, en mode Web, différents rapports et graphiques concernant le trafic des appels sur Asterisk. Toutes les informations sont basées sur le fichier Master.csv.
a. Installation ●
Téléchargement du fichier asteriskstatv2_0_1.tar.gz dans le répertoire /usr/src
●
Installation du fichier : tar zxvf asteriskstatv2_0_1.tar.gz
●
Modification du fichier /usr/src/asteriskstatv2_0_1/lib/defines.php
WEBROOT : URL de l’application (Exemple: http://localhost/asteriskstat/). FSROOT : chemin qui contient l’application (Exemple: /usr/src/asteriskstat/v2). HOST : nom du serveur de base de données : (Exemple: localhost). PORT : port de la base de données : Exemple: 3306 (cas d’une base MySQL). USER : nom d’utilisateur pour accéder à la base (Exemple: root). PASS : mot de passe de l’utilisateur (Exemple: password). DBNAME : nom de la base de données (Exemple: asteriskcdr). DB_TYPE : type de base de données (support: mysql ou postgres). DB_TABLENAME : nom de la table contenant les CDR (Exemple: cdrtable).
b. Fonctionnalités L’outil Asteriskstat permet de : ●
rechercher tous les appels par date, par destination, par source, par durée (CDR REPORTS).
●
comparer des appels sur une période pouvant aller de 1 à 4 jours (CALLS COMPARE).
●
fournir un graphique par mois sur une période pouvant aller de 1 à 7 mois (MONTHLY traffic).
●
fournir la charge journalière en minutes par heure (DAILY LOAD).
Exemple de trafic mensuel sur le poste 714 (Monthly trafic)
- 4-
© ENI Editions - All rigths reserved - educ hafa
Exemple de recherche des appels émis par le poste 714 en Juin 2007
Exemple de liste des appels émis par le poste 714
© ENI Editions - All rigths reserved - educ hafa
- 5-
Exemple de statistiques pour exportation CDR
Asteriskstat ne semble plus guère évoluer. La dernière version date de 2005 mais reste néanmoins très opérationnelle.
- 6-
© ENI Editions - All rigths reserved - educ hafa
Outils graphiques de management Il existe de nombreux outils tiers permettant d’administrer Asterisk de façon graphique.
1. En complément d’Asterisk De nombreux outils plus ou moins graphiques permettent de gérer ou d’enrichir le système Asterisk, parmi lesquels, nous pouvons citer : ●
Druid ;
●
AstGUIclient / Vicidial ;
●
FreePBX (ex Asterisk@Home) ;
●
Asterisk GUI (inclus dans AsteriskNOW) ;
●
TrixBox (ex Asterisk@Home) ;
●
L’éditeur canadien ScopServ, avec sa puissante version Scoptel 2.0 distribuée par l’intégrateur belge EyePea.
a. DRUID Druid est une plateforme de gestion d’un serveur Asterisk, via une interface graphique (une GUI pour Graphical User Interface) permettant d’accéder à l’administration des services de téléphonie (ajout de téléphones, ajout d’utilisateurs, ajout de trunk, ajout de boîtes vocales…). C’est également un outil permettant la gestion de présence via le protocole Jabber. Druid existe principalement en version Open Source edition : Druid OSE en date de 2009 (Druid 2.0.0) Exemple d’interface pour Druid OSE :
Attention, la version de Druid est proposée en format ISO, autrement dit, en format « toutenun » et il est donc impossible d’ajouter seulement Druid comme GUI sur un serveur Asterisk existant au risque de tout casser. Nous conseillons donc de monter un serveur DRUID de test afin justement d’effectuer tout le maquettage indispensable avant la mise en production. Il est bien évidemment possible de modifier les fichiers de configurations d’AsteriskDruid à la main puisque le système s’appuie sur un noyau LinuxCentOS.
© ENI Editions - All rigths reserved - educ hafa
- 1-
Références : http://www.voiceroute.org/ Documentation (version Druid OSE 1.3.0) pour aller plus loin : http://www.myseez.eu/wpcontent/uploads/2009/04/doc_druid.pdf
b. AstGUIclient / Vicidial AstGUIclient est une alternative à GUI pour administrer Asterisk 1.2 et Asterisk 1.4 et Vicidial est un système permettant de gérer les centres d’appels. Vicidial utilise la technique de la chambre de conférence pour la gestion de la mise en relation agent / client : un client connecté est directement mis en relation avec cette chambre de conférence où l’agent l’y attend. Cette solution est très répandue pour la gestion de l’offshore. Les principales fonctionnalités de Vicidial sont les suivantes : ●
Gestion des appels entrants/sortants ;
●
Enregistrements de tous les appels ;
●
Système IVR avec configuration web ;
●
Reporting ;
●
Connexion d’agents distants via Internet ;
●
Transfert d’appels ;
●
Appels prédictifs (Mode de génération automatique d’appels sortants selon un algorithme anticipant la disponibilité d’agents) ;
●
Intégration CTI avec Vtiger (application CRM Open Source utilisable en mode Web) ;
●
Interface web agent/admin ;
●
Intégration avec Queuemetrics, outil de statistiques des files d’attente.
Avant de lancer l’installation du package AstGUIclient + Vicidial, il est indispensable d’avoir installé Asterisk. # cd /usr/src # mkdir astguiclient # cd astguiclient # wget http://sourceforge.net/projects/astguiclient/files/ astguiclient_2.2.1.zip/download # perl install.pl # wget http://astguiclient.sf.net/conf.gsm # cp conf.gsm /var/lib/asterisk/sounds/park.gsm L’installation nécessite ensuite de créer une base de données MySQL. L’accès aux différentes interfaces s’effectue en mode web : ●
http://10.10.10.15/agc/astguiclient.php.
●
http://10.10.10.15/vicidial/admin.php.
●
http://localhost/agc/vicidial.php.
Références :
- 2-
© ENI Editions - All rigths reserved - educ hafa
http://astguiclient.sourceforge.net/astguiclient.html. http://astguiclient.sourceforge.net/scratch_install.html. http://astguiclient.sourceforge.net/vicidial.html. http://www.vicidial.com/ (site de l’éditeur de la solution). Exemple d’écran agent Vicidial :
Exemple d’interface d’administration de Vicidial :
© ENI Editions - All rigths reserved - educ hafa
- 3-
L’utilisation de AstGUIclient n’a d’intérêt que si nous souhaitons utiliser le système Vicidial.
c. FreePBX FreePBX (anciennement AMP Portal pour Asterisk Management Portal) est une interface graphique permettant de piloter le serveur Asterisk. Référence : http://www.freepbx.org, version freepbx2.7.0
d. Asterisk GUI Cette interface de gestion graphique (Graphical Interface User) est uniquement disponible sur Asterisk 1.4. Elle permet de gérer la configuration du serveur à l’aide d’un menu convivial et non plus par l’intermédiaire des fichiers de commandes. Cet outil est inclus avec l’installation d’AsteriskNOW, la distribution de DIGIUM. Référence : http://www.asteriskguru.com/tutorials/asterisk_gui.html Il faut choisir au préalable entre une gestion du serveur via un outil graphique ou via les fichiers de commandes ; en pratique, les deux modes sont incompatibles car l’outil graphique ajoute ses propres instructions dans les fichiers et cela devient vite illisible.
2. Alternatives à Asterisk classique a. TrixBox TrixBox est ce que nous pouvons appelé un "intégré" dans le sens où il s’agit d’une véritable distribution comprenant système d’exploitation et logiciel Asterisk, le tout prêt à l’emploi. Depuis Mai 2006, Trixbox est le nouveau nom d’Asterisk@Home. Ce système est une bonne base pour les personnes désirant installer un premier serveur Asterisk,
- 4-
© ENI Editions - All rigths reserved - educ hafa
en bootant à partir du CD d’installation. TrixBox existe en version professionnelle (TrixBoxPro) et en version communautaire (TrixBoxCE, v.2.804 stable). Une appliance TrixBox est également commercialisée. Référence : http://www.trixbox.org/, http://www.trixbox.com
© ENI Editions - All rigths reserved - educ hafa
- 5-
Gestion des faxs Asterisk fournit un service de détection de fax entrants ; il va donc être possible, grâce à ce mécanisme, de gérer automatiquement la réception des fax : ●
détection d’un fax entrant ;
●
stockage du fax dans un fichier sur le serveur Asterisk ;
●
transformation du fichier en format TIFF ;
●
impression du fax ;
●
transformation du fichier TIFF en format PDF et transfert du fax en pièce jointe dans l’email d’un utilisateur.
Principe de réception de fax
1. Installation Pour qu’Asterisk puisse traiter le fax reçu en le transférant à l’extension spéciale "fax", il faut que les librairies SPANDSP soient installées : ■
Vérification que la librairie Libtiff est bien installée (voir le chapitre Installation d’un serveur Asterisk). Libtiff fournit l’applicatif tiff2ps permettant le traitement des fichiers TIFF.
■
Téléchargement du fichier spandsp0.0.6pre17.tgz (http://www.softswitch.org).
■
Décompactage du fichier et compilation.
La bibliothèque SPANDSP va fournir deux applications essentielles :
# # # # # #
●
SendFAX pour l’envoi de fax.
●
ReceiveFAX pour la réception de fax.
cd /usr/src tar zxvf /usr/src/spandsp-0.0.6pre17.tgz chown -R root:root spandsp-0.0.6/ cd spandsp-0.0.2/ ./configure make © ENI Editions - All rigths reserved - educ hafa
- 1-
# make install
■
■
Vérifier que le module appfax est bien installé dans le make menuselect en faisant un ./configure dans le répertoire d’installation d’Asterisk Recompilation d’Asterisk (indispensable).
# cd/usr/src/asterisk-1.6.2.8 # make clean; make; make install Cela permet à Asterisk de disposer des deux applications de réception (app_rxfax) et de transmission des faxs (app_txfax). Nous pouvons le vérifier dans la CLI en tapant la commande CLI> show applications
■
Activation de la détection de fax sur les canaux Zaptel dans le fichier /etc/asterisk/chan_dahdi.conf.
faxdetect=both both signifie que la détection est autorisée en entrant et en sortant.
■
Enfin, en relançant Asterisk (/etc/init.d/asterisk restart), il est possible de vérifier que les applications de fax sont présentes.
# asterisk-nvu CLI>core show applications : ReceiveFAX : Receive a Fax SendFAX : Send a Fax
2. Utilisation Cas n°1 : Tous les faxs détectés sont systématiquement envoyés à l’imprimante par défaut du serveur puis ensuite supprimés du serveur. [appels_entrants] ; l’application Answer() détecte un fax; si c’est le cas, elle passe la main à l’extension fax exten => s, 1, Answer() ... exten => fax, 1, Set(fax_tif=/var/spool/faxes/${CALLERIDNUM}.tif) exten => fax, 2, ReceiveFAX(${fax_tif}) exten => fax, 3, system(’tiff2ps ${fax_tif} | lpr’) exten => fax, 4, system(’rm ${fax_tif}) Cas n°2 : Tous les faxs sont envoyés en pièce jointe en format PDF à un email unique
[email protected] puis supprimés. [globals]
[email protected] [appels_entrants] exten => s, 1, Answer() ... exten => fax, 1, Set(fax_tif=/var/spool/faxes/${CALLERIDNUM}.tif) exten => fax, 2, ReceiveFAX(${fax_tif})
- 2-
© ENI Editions - All rigths reserved - educ hafa
exten => fax, 3, System(’tiff2ps -2eaz | ps2pdf ${fax_tif}.pdf -’) exten => fax, 4, System(’ps2pdf ${fax_tif}.ps ${fax_tif}.pdf’ exten => fax, 5, System(’mime-construct --to ${EMAIL_STANDARD} --subject "Fax de ${fax_tif}" --attachment fax.pdf --type application/pdf --file ${fax_tif}.pdf’) exten => fax, 6, system(’rm ${fax_tif}) La standardiste a accès à cette boîte email et redirige les mails de fax reçus vers les personnes destinataires. L’application ps2pdf permet de transformer le fichier en format PDF. Elle doit être installée sous Linux. Spandsp sait émettre et recevoir des faxs uniquement en G711.
Cas n°3 : Certains utilisateurs ont un numéro SDA qui va également servir à la réception directe de fax ; Walter dispose par exemple de la SDA 03.83.54.89.87 et du numéro de poste interne 779. S’il reçoit un fax sur cette SDA, Asterisk le transfèrera directement à sa boîte email mais s’il reçoit un appel téléphonique, c’est le poste 779 qui va sonner. [globals]
[email protected] [appels_entrants_walter] exten => 8947, 1, Answer() exten => 8947, 2, Dial(SIP/779,20,r) exten => fax, 1, Set(fax_tif=/var/spool/faxes/${CALLERIDNUM}.tif) exten => fax, 2, ReceiveFAX(${fax_tif}) exten => fax, 3, System(’tiff2ps -2eaz | ps2pdf ${fax_tif}.pdf -’) exten => fax, 4, System(’ps2pdf ${fax_tif}.ps ${fax_tif}.pdf’ exten => fax, 5, System(’mime-construct --to ${EMAIL_WALTER} --subject "Fax de ${fax_tif}" --attachment fax.pdf --type application/pdf --file ${fax_tif}.pdf’) exten => fax, 6, system(’rm ${fax_tif})
3. Émission de fax L’émission de fax est plus fastidieuse que la réception mais possible sous Asterisk : ; Nous souhaitons envoyer le fax « demande info produits » vers le numéro de fax 08805800820 ; le fichier «DIP_14062007_779 » a été créé en format TIFF et placé dans le répertoire /var/spool/faxes exten => 08805800820, 1, Setvar(fax_779=/var/spool/faxes/ DIP_14062007_779.tif) exten => 08805800820, 2, SendFAX(/var/spool/faxes/${fax_779})|caller Il est conseillé d’utiliser un vrai serveur de fax comme Hylafax (http://www.hylafax.org) pour effectuer la gestion de faxs. Certains routeurs CISCO (vu comme une gateway h323) savent détecter la réception de faxs et les router vers hylafax en T38 (protocole de Fax Over IP). T38 est en cours d’implémentation dans Asterisk.
4. Fax sans DAHDI avec NVFaxDetect Il est possible de gérer les fax sur des liens SIP/IAX sans passer par une interface "matérielle" DAHDI. Cela peut être le cas si le serveur Asterisk ne dispose pas de cartes internes mais uniquement de trunk SIP par exemple. Pour cela, il faut utiliser l’application NVFaxDetect() dont le module est à installer indépendamment. Exemple d’utilisation dans le dialplan :
© ENI Editions - All rigths reserved - educ hafa
- 3-
[macro-fax] exten => S, 1, Answer() exten => S, 2, Playtones(ring) exten => S, 3, NVFaxDetect() [Fax] exten => S,1, ReceiveFAX(${FAXFILE}.tif)
- 4-
© ENI Editions - All rigths reserved - educ hafa
Programmation AGI AGI (Asterisk Gateway Interface) est une interface permettant de faire communiquer le plan de numérotation (extensions.conf) avec des programmes extérieurs à Asterisk, écrits avec des langages de programmation aussi divers que PHP, Perl, Python, C, shell Linux.
1. Principe AGI est matérialisé par l’écriture de scripts qui sont exécutés dans le plan de numérotation. À chaque lancement d’un script AGI, Asterisk envoie au script un ensemble de variables avec leurs valeurs. Lorsque toutes les variables sont émises, Asterisk envoie une ligne vide pour préciser au script qu’il peut commencer ce pourquoi il a été écrit (suite d’instructions). Le script envoie les commandes et Asterisk renvoie au script, pour chaque commande émise, une réponse.
2. Appel du script AGI Par défaut, les scripts sont créés et stockés dans /var/lib/asterisk/agibin (cela permet de ne pas mentionner le chemin complet d’appel des scripts). Il faudra toujours que les scripts disposent du droit d’exécution (chmod ugo+x monscript.agi). Ensuite, le script se lance de la manière suivante : exten => 777, 1, Answer() exten => 777, 2, AGI(monscript.agi|argument1|argument2...) Les arguments sont optionnels.
3. Étapes dans la rédaction du script monscript.agi La syntaxe du script doit suivre le langage de programmation utilisé. a) Récupération des variables émises par Asterisk. Le plus simple est de les récupérer dans un tableau. b) Écriture du code et dialogue à l’aide de canaux de communication.
4. Interaction entre Asterisk et AGI Trois canaux de communications sont utilisés pour permettre le dialogue : STDIN : AGI lit le canal STDIN sur lequel Asterisk émet ses informations. STDOUT : AGI écrit ses informations (commandes, variables) sur le canal STDOUT, qui seront transmises à Asterisk. STDERR : AGI écrit des données sur le canal STDERR, à des fins essentiellement de debuggage. Le résultat s’affiche dans la CLI. Exemple d’interaction AGI / Asterisk
© ENI Editions - All rigths reserved - educ hafa
- 1-
5. Applications de type AGI AGI() : permet de contrôler le plan de numérotation. Seuls les canaux activés sont utilisables. EAGI() : permet en plus de lire le canal son. DeadAGI() : permet de contrôler les canaux désactivés (hangup). FastAGI() : permet au script d’être utilisé sur un serveur Asterisk distant. exten => 777, 1, AGI(agi://192.168.2.100/monscript.agi)
6. Variables émises par Asterisk Ces variables commencent toujours par agi_ : agi_channel : Zap/11 (canal) agi_callerid : 777 (numéro du callerid) agi_calleridname : sdeon (nom du callerid) agi_context : default (context dans lequel le script est appelé) agi_extension : 777 (extension dans lequel le script est appelé) agi_priority : 2 (priorité) agi_language : fr (language)
7. Liste des commandes AGI Cette liste peut être obtenue via la CLI en tapant la commande CLI > show agi Il existe une bonne trentaine de commandes AGI qui peuvent donc être utilisées dans les scripts : channel status, get data, get variable, send text, stream file, record file, say number...
8. Débogage des scripts Tout programmeur a besoin de contrôler le résultat de ses scripts et il peut le faire dans la CLI : CLI > agi debug
- 2-
© ENI Editions - All rigths reserved - educ hafa
9. Exemple de script AGI Ce script, écrit en langage C, permet à Asterisk de dire « un deux trois ». #include main() { char line[80]; /* use line buffering */ setinebuf(stdout); setinebuf(stderr); /* read and ignore AGI environment */ while (1) { fgets(line,80,stdin); if (strlen(line) show manager commands asterisk1*CLI> show manager commands Action
Privilege
Synopsis
--------------AbsoluteTimeout
-----------call,all
---------Set Absolute Timeout
AgentCallbackLo
agent,all
Sets an agent as logged in by callback
AgentLogoff
agent,all
Sets an agent as no longer logged in
Agents
agent,all
Lists agents and their status
ChangeMonitor
call,all
Change monitoring filename of a channel
Command
command,all
Execute Asterisk CLI Command
DBGet
system,all
Get DB Entry
DBPut
system,all
Put DB Entry
Events
Control Event Flow
ExtensionState
call,all
Check Extension Status
Getvar
call,all
Gets a Channel Variable
Hangup
call,all
Hangup Channel
IAXnetstats
Show IAX Netstats
IAXpeers
List IAX Peers
List available manager commands
Logoff
Logoff Manager
MailboxCount
call,all
Check Mailbox Message Count
MailboxStatus
call,all
Check Mailbox
Monitor
call,all
Monitor a channel
Originate
call,all
Originate Call
ParkedCalls
List parked calls
Ping
Keepalive command
QueueAdd
agent,all
Add interface to queue.
QueuePause
agent,all
Makes a queue member temporarily unavailable
QueueRemove
agent,all
Remove interface from queue.
Queues
Queues
QueueStatus
Queue Status
ListCommands
© ENI Editions - All rigths reserved - educ hafa
- 3-
Redirect
call,all
Redirect (transfer) a call
SetCDRUserField
call,all
Set the CDR UserField
Setvar
call,all
Set Channel Variable
SIPpeers
system,all
List SIP peers (text format)
SIPshowpeer
system,all
Show SIP peer (text format)
Status
call,all
Lists channel status
StopMonitor
call,all
Stop monitoring a channel
ZapDialOffhook
Dial over Zap channel while offhook
ZapDNDoff
Toggle Zap channel Do Not Disturb status OFF
ZapDNDon
Toggle Zap channel Do Not Disturb status ON
ZapHangup
Hangup Zap Channel
ZapShowChannels
Show status zapata channels
ZapTransfer
Transfer Zap Channel
5. Description détaillée des actions du Manager Pour visualiser en détail la syntaxe d’une action, nous pouvons lancer la commande suivante dans la CLI : CLI > show manager command, suivie du nom de l’action. Exemple : syntaxe de l’action “Command” du Manager asterisk*CLI> show manager command Command Action: Command Synopsis: Execute Asterisk CLI Command Privilege: command,all Description: Run a CLI command. Variables: (Names marked with * are required) *Command: Asterisk CLI command to run ActionID: Optional Action id for message matching. L’action Command du Manager permet de lancer une commande de la CLI.
6. Appel du Manager via un programme PHP a. Généralités Supposons que le programme test_channels.php, écrit en PHP, permette de visualiser les canaux utilisés. Les interactions entre ce programme et le manager vont donc être les suivantes : ●
émission (programme / manager)
Action: Command Command: show channels
- 4-
© ENI Editions - All rigths reserved - educ hafa
●
réception (manager / programme)
Response: Follows Privilege: Command Channel 0 active channels 0 active calls --END COMMAND--
Location
State
Application(Data)
b. Contenu du script test_channel.php #!/usr/bin/php -q
c. Résultat [root@asterisk]# php test_channel1.php Content-type: text/html X-Powered-By: PHP/4.3.9 Asterisk Call Manager/1.0 Response: Success Message: Authentication accepted
Response: Follows Privilege: Command Channel
Location
State
Application(Data)
0 active channels
© ENI Editions - All rigths reserved - educ hafa
- 5-
0 active calls --END COMMAND-Les scripts peuvent être écrits à l’aide de différents langage de programmation : MAC OS X, C#, C++, Java, Perl, PHP, Python, Ruby, Tcl. Enfin, citons l’application FOP (Front Operator Panel) qui est une des possibilités offertes par l’Asterisk manager.
- 6-
© ENI Editions - All rigths reserved - educ hafa
Festival 1. Généralités Festival est un moteur de traduction texttospeech (de l’écrit à l’oral) développé par l’Université d’Edimbourg au CSTR (The Centre for Speech Technology Research). Cette application Open Source permet donc de transformer du texte en parole et d’effectuer une lecture audio à l’interlocuteur au bout de la ligne. Il est envisageable d’installer Festival sur un serveur Asterisk afin de fournir des fonctionnalités supplémentaires comme par exemple : ●
lecture audio des emails.
●
lecture audio du chiffre d’affaires journalier, via un programme lancé par Festival...
2. Installation du serveur Festival Il existe essentiellement deux méthodes d’installation de Festival : par installation d’un paquet Debian (le plus simple) ou par compilation à partir des fichiers tar.gz (plus lourd). Cas d’une installation traditionnelle (cas le plus simple) ●
Installation à partir d’un paquet Debian (aptget).
# apt-get install festival Lecture des listes de paquets... Fait Construction de l’arbre des dépendances Lecture des informations d’état... Fait Les paquets supplémentaires suivants seront installés : esound-clients esound-common festlex-cmu festlex-poslex festvoxkallpc16k libaudiofile0 libesd0 libestools1.2 Paquets suggérés : festival-freebsoft-utils festival-gaim pidgin-festival esound Les NOUVEAUX paquets suivants seront installés : esound-clients esound-common festival festlex-cmu festlex-poslex festvox-kallpc16k libaudiofile0 libesd0 libestools1.2 0 mis à jour, 9 nouvellement installés, 0 à enlever et 6 non mis à jour. Il est nécessaire de prendre 7637ko dans les archives. Après cette opération, 20,8Mo d’espace disque supplémentaires seront utilisé s. Souhaitez-vous continuer [O/n] ?
●
Modification du fichier de configuration /usr/share/festival/festival.scm et ajout du contenu suivant à la fin du fichier.
;;; Command for Asterisk begin (define (tts_textasterisk string mode) "(tts_textasterisk STRING MODE) Apply tts to STRING. This function is specifically designed for use in server mode so a single function call may synthesize the string. This function name may be added to the server safe functions." utt.send.wave.client (utt.wave.resample (utt.wave.rescale (utt.synth (eval (list ’Utterance ’Text string))) 5) 8000))) ;;; Command for Asterisk end Les sons restitués sont en langue anglaise.
© ENI Editions - All rigths reserved - educ hafa
- 1-
3. Fichier de configuration Ce fichier est /etc/asterisk/festival.conf. ●
festival.conf
; Festival Configuration ; [general] ; ; Host which runs the festival server (default : localhost); ; host=localhost ; ; Port on host where the festival server runs (default : 1314) ; port=1314 ; ; Use cache (yes, no - defaults to no) ; ;usecache=yes ; ; If usecache=yes, a directory to store waveform cache files. ; The cache is never cleared (yet), so you must take care of cleaning it ; yourself (just delete any or all files from the cache). ; THIS DIRECTORY *MUST* EXIST and must be writable from the asterisk process. ; Defaults to /tmp/ ; ;cachedir=/var/lib/asterisk/festivalcache/ ; ; Festival command to send to the server. ; Defaults to: (tts_textasterisk "%s" ’file)(quit)\n ; %s is replaced by the desired text to say. The command MUST end with a ; (quit) directive, or the cache handling mechanism will hang. Do not ; forget the \n at the end. ; festivalcommand=(tts_textasterisk "%s" ’file)(quit)\n ;
4. Démarrage du serveur Festival Le serveur Festival doit être démarré de la façon suivante : # festival 2>&1 >/dev/null & La commande permettant de visualiser en temps réel le contenu de ce qui se passe sous Festival est : # festival -- server server Sun Jun 20 22:11:24 2010 : Festival server started on port 1314 Mais Festival dispose également d’un mode interactif qui peut être activé en lançant la commande : # festival Festival Speech Synthesis System 1.96:beta:release July 2004 Copyright (C) University of Edinburgh, 1996-2004. All rights reserved. For details type `(festival_warranty)’ Festival> (tts "fichier-exemple") festival> (SayText « Bonjour »)
- 2-
© ENI Editions - All rigths reserved - educ hafa
Dans le fichier festival.scm, dans les accesslist, il faut remplacer localhost par le nom de domaine complet du serveur (voir la commande hostname), sous peine d’un problème d’accès au serveur Festival.
5. Festival dans le plan de numérotation La commande Festival() permet d’exécuter le moteur texttospeech. Exemple n°1 : Sur appel au poste numéro 1000, le texte « Bonjour, vous êtes sur la messagerie de Monsieur L., veuillez laisser votre message » est synthétisé. En pressant sur la touche *, l’utilisateur met fin à la commande Festival(). exten => 1000, 1, Answer() exten => 1000, 2, Festival(Bonjour, vous êtes sur la messagerie de Monsieur L., veuillez laisser votre message, *) exten => 1000, 3, Hangup() Exemple n°2 : Le contenu de ${CALLERIDNAME} (numéro de l’appelant) est prononcé sur appel au poste numéro 1000. exten => 1000, 1, Answer() exten => 1000, 2, Festival(Bonjour ${CALLERIDNAME}) exten => 1000, 3, Hangup()
6. Restitution du son La commande Festival permet d’envoyer le texte à l’appelant mais n’effectue pas la restitution vers la carte son ; il faut utiliser une commande de redirection du son. exten => 1000, 1, Answer() ; la sortie texte de la commande echo est redirigée vers l’entrée standard de Festival exten => 1000, 2, System(echo "Bonjour, bienvenue en France" | Festival -tts) exten => 1000, 3, Dial(SIP/1000) exten => 1000, 4, Hangup() Le programme FranFest est un complément à Festival pour obtenir une restitution des sons en langue française. Source : http://www.pollocknageoire.net/esdffm/franfest.html.
© ENI Editions - All rigths reserved - educ hafa
- 3-
IVR IVR signifie « Interactive Voice Response ». En fait, il s’agit d’utiliser le serveur Asterisk en adaptant le plan de numérotation (extensions.conf) pour permettre une interaction entre le système et l’appelant ; l’interaction se faisant alors à l’aide des touches du téléphone. Pour mettre en œ uvre un serveur vocal interactif ou un service vocal interactif, il faut disposer de deux éléments essentiels : l’algorithme de l’IVR et les messages enregistrés sous forme de fichier. Exemple : scénario de mise en œuvre d’un IVR de hotline technique Le numéro d’appel national de la hotline est par exemple 0825 888 888. Lorsqu’un client compose ce numéro, il entend un message d’accueil lui invitant à presser la touche 1 s’il veut déclarer un incident data, la touche 2 s’il veut déclarer un incident voix et la touche 3 pour tout autre demande technique. Nous devons donc avoir plusieurs messages, sous forme de fichiers au format adéquat (idéalement en format .wav ou en format .gsm). ●
●
●
●
Message 1 (fichier acceuil_ivr.wav) : « Bonjour, bienvenue au service technique de la société MASOCIETE, pour déclarer un incident data, tapez 1, pour déclarer un incident voix, tapez 2, pour tout autre incident, tapez 3 » Message 2 (fichier incident_data.wav) : « Si vous souhaitez déclarer un nouvel incident data, tapez 5 ; si vous souhaitez connaître l’état d’avancement d’un incident data déjà enregistré, tapez 6 ». Message 3 (fichier incident_voix.wav) : « Si vous souhaitez déclarer un nouvel incident voix, tapez 7 ; si vous souhaitez connaître l’état d’avancement d’un incident voix déjà enregistré, tapez 8 ». Message 4 (fichier autre_incident.wav) : « Merci de patienter, un interlocuteur technique va prendre en charge votre appel ».
Les fichiers doivent être stockés sous /var/lib/asterisk/sounds pour qu’ils puissent être lus par Asterisk. Ensuite, il faut écrire la logique dans le plan de numérotation : Le numéro en 0825 a été routé en amont sur un numéro SDA local ; l’opérateur présentant ici les quatre derniers chiffres au serveur (3012 par exemple). exten => 3012, 1, Answer() exten => 3012, 2, Background(accueil_ivr) exten exten exten exten exten exten exten
=> => => => => => =>
1, 2, 3, 5, 6, 7, 8,
1, 1, 1, 1, 1, 1, 1,
Playback(incident_data) Playback(incident_voix) Playback(autre_incident) Dial(SIP/${poste_nouvel_incident_data}) Dial(SIP//${poste_ancien_incident_data}) Dial(SIP/${poste_nouvel_incident_voix}) Dial(SIP/${poste_ancien_incident_voix})
Il est possible d’utiliser des sousmenus, dans le plan de numérotation, afin de simplifier l’algorithme de l’IVR et réutiliser des numéros de touches pour déclencher des actions différentes. Ainsi, le Message 2 pourrait devenir « Si vous souhaitez déclarer un nouvel incident data, tapez 1 ; si vous souhaitez connaître l’état d’avancement d’un incident data déjà enregistré, tapez 2 ». exten => 3012, 1, Answer() exten => 3012, 2, Background(accueil_ivr) exten exten exten exten
=> => => =>
1, 2, 3, 3,
1, 1, 1, 2,
Goto(data, s, 1) Goto(voix, s, 1) Playback(autre_incident) Dial(SIP/${poste_autre_incident})
[data] exten => s, 1, Playback(incident_data) exten => 1, 1, Dial(SIP/${poste_nouvel_incident_data}) exten => 2, 1, Dial(SIP/${poste_ancien_incident_data}) [voix]
© ENI Editions - All rigths reserved - educ hafa
- 1-
exten => s, 1, Playback(incident_voix) exten => 1, 1, Dial(SIP/${poste_nouvel_incident_voix}) exten => 2, 1, Dial(SIP/${poste_ancien_incident_voix}) Bien évidemment, il est encore possible d’enrichir ce plan de numérotation en incluant les extensions spéciales t et i permettant de gérer les entrées invalides et les temporisations (voir le chapitre Conception du plan de numérotation). Il est également possible d’indiquer au plan de numérotation la possibilité d’enregistrer, via le téléphone, des messages. Dans notre exemple, l’appel au numéro 555 déclenche ce mécanisme. ; les fichiers d’enregistrements au format gsm (le format d’Asterisk) sont mis dans /temp/sounds Exten => 555,1,Wait(3) ; il faut presser sur la touche # pour stopper l’enregistrement Exten => 555,2,Record(/temp/sounds/message1:gsm) Exten => 555,3,Wait(3) ; le fichier est rejoué Exten => 555,4,Playback(/temp/sounds/message1) Exten => 555,5,wait(3) Exten => 555,6,Hangup() Le fichier /temp/sounds/message1.gsm doit être copié dans le dossier /var/lib/asterisk/ sounds, s’il veut être lu par Asterisk.
- 2-
© ENI Editions - All rigths reserved - educ hafa
ClickToDial La fonctionnalité Clicktodial est la possibilité de déclencher un appel téléphonique sans avoir à composer le numéro. Le meilleur exemple d’utilisation est l’appel de cette fonction via un navigateur qui présente une page web listant tous les numéros d’utilisateurs enregistrés sous Asterisk (les appelés). Un simple clic sur le numéro choisi déclenche une sonnerie sur le poste de l’appelant ainsi que sur le téléphone de l’appelé.
1. Installation ●
cd /temp/asterisk/clicktocall
●
wget http://downloads.voipjots.com/scripts/clicktocall.zip
●
unzip clicktocall.zip
●
cp clicktocall.php /var/www/html/clicktocall.php
●
cd /var/www/html
2. Fichier clicktocall.php Apportons les modifications adéquates (host, manager, channel, context) : Click-to-Call We are currently trying to call you. Please be patient, and wait for your phone to ring!If your phone does not ring after 2 minutes, we apologize, but must either be out, or already on the
- 2-
© ENI Editions - All rigths reserved - educ hafa
phone.