VoIP et ToIP Asterisk La téléphonie IP d'entreprise

April 7, 2017 | Author: Yanis.S | Category: N/A
Share Embed Donate


Short Description

Download VoIP et ToIP Asterisk La téléphonie IP d'entreprise...

Description

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-

Avant­propos  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 T­VoIP ; 



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 X­Lite ; 



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 click­to­dial. 

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 T­VoIP  La T­VoIP (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  inter­sites,  protocole de communication. La VoIP répond ainsi à la question de "que se passe­t­il 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  (Zoiper­Idefisk,  X­Lite,  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  mini­PC  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’anti­virus, 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 CV763A­4R10C (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 (Alcatel­Lucent). 



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 ready­to­use.  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. Alcatel­Lucent  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  Alcatel­Lucent).  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.alcatel­lucent.com/wps/portal 

b. Aastra­Matra (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.0­beta 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 



Wisp­e pour sa solution Fonisk  Wisp­e 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. 

Wisp­e  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.wisp­e.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  Flash­to­sip  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, e­diatonis 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@sip­serveur.societe.com 



sip:7114@sip­serveur.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. 



RE­INVITE : 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 en­tê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  Inter­Asterisk  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 peer­to­peer 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 (Real­Time 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  T­VoIP,  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 T­VoIP 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  T­VoIP. 

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 



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 inter­sites 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 mono­VC et apporter de la QoS IP : 

© ENI Editions - All rigths reserved - educ hafa

- 1-





par défaut, une ligne ADSL est mono­VC : un canal unique de transmission des données et de la voix. 



utilisation de modem­routeur 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 bi­VC :  ●

Un lien bi­VC 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 multi­VC. 

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 T­VoIP (Telephony and Voice Over IP) qui sont  réalisables à ce jour, compte­tenu 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  sont­elles  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  raz­de­maré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,  fut­elle  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é  ?  Est­il  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  mini­switch,  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 ?  ●





Est­ce que la nouvelle architecture s’adresse à des utilisateurs internes ou à seulement une partie (un service  help­desk, une hotline, une agence, une filiale, des utilisateurs nomades...) ?  Est­ce qu’il s’agit d’une offre à destination de clients internes et/ou externes ? De quelles tailles : TPE ou PME ?  Est­ce  que  les  utilisateurs  sont  technophiles  ?  Doivent­ils  disposer  d’éléments  technologiques  évolués  (messagerie unifiée, supervision de postes, call center...) ? 

Les architectures présentées ci­aprè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 mono­site  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 T­VoIP. 



Le serveur sous Linux devra disposer au minimum de 2 Go de mémoire, sera bi­processeurs. 



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 : 1­4, 2­5, 4­1 et 5­2.  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  sous­traité  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  hors­service  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 sous­traite la fourniture d’une offre "dual­play" 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 routeurs­modems 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. Load­balancer  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 non­IP 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 à Hong­Kong 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 lui­mê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 plate­forme 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 plate­forme 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 :  ●

"Est­ce que je vais économiser de l’argent ? " 



"Est­ce 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’eux­mê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 T­VoIP 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 add­ons. 



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 call­centers. 

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 e­mail.  © 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 Open­LDAP (http://www.openldap.org) avec mise en œ uvre de fonctionnalité de click­to­dial. 

1. Architectures « X­phones »  Par le terme « X­phones », 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.  Media5­fone 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 Media5­fone Free 

- 6-

© ENI Editions - All rigths reserved - educ hafa

Clavier de Media5    À noter que l’application Media5­fone est également disponible sur plate­forme Nokia Symbian S­60.

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/45­asteriskc2d/53­setting­up­the­server­side),  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 ceux­ci, 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 ci­dessus). 

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 plate­forme 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 sous­ré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 apt­get  L’utilitaire apt­get 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 apt­get :  # 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 apt­get :  # 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 apt­get.  # 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 Post­install  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  dahdi­linux  et  dahdi­tools  sont  inclus  dans  le  fichier  proposé  par  Digium  (dahdi­linux­complete­2.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  (apt­get  install  make)  et  du  kernel­headers  (apt­get  ­y  install  linux­headers­`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/dahdi­channels.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’ex­fichier /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 dahdi­channels.conf n’existe pas et son contenu est directement dans chan_dahdi.conf.  Contenu de dahdi­channels.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 Dahdi­tools  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  "dahdi­tools".  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 libxml2­dev  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/asterisk­core­sounds­fr­wav­1.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 Asterisk­perl  Le module asterisk­perl 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 Asterisk­sounds  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 Asterisk­Addons  Le module Asterisk­Addons permet de stocker les enregistrements CDR (Call Detail Record) dans une base de données  MySQL. 

a. Téléchargement du fichier asterisk­addons­1.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 T­VoIP 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 













© ENI Editions - All rigths reserved - educ hafa

- 1-





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  Au­delà, 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 intra­site 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 États­Unis 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 (ex­France 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  (Multi­Protocol  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  plate­forme  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 plate­forme 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, clisk­to­dial…) 



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.orange­business.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 SFR­9T. 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  ●

B­Centrex  ●



Il s’agit ni plus ni moins que de l’offre B­Centrex 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 triple­play (Internet, téléphonie et télévision)  grâce à des lignes tri­vc ("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 X­Lite par exemple. 

Exemple : la téléphonie Free 

Chaque Freebox V5 représente potentiellement un point de connexion Wi­Fi si la connexion Freephonie est  autorisée. Cela permet à un téléphone/smartphone de se connecter en Wi­Fi 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. Ci­joint 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 



­ 

­ 

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 













TDM410P 

TDM401EF 

TDM402EF 

TDM403EF 

TDM404EF 



TDM410EF 

TDM411EF 

TDM412EF 

TDM413EF 



TDM420EF 

TDM421EF 

TDM422EF 

© ENI Editions - All rigths reserved - educ hafa

- 1-



TDM430EF 



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 PCI­X 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 (écho­cancellation).    Les cartes en version PCI Express (PCI­X) 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 PCI­X 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 PCI­X ont tendance à se développer fortement en raison de la présence  de plus en plus répandue des slots PCI­Express 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  PCI­Express) ; 



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 plate­forme 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 (High­Performance WIC), 1 WIC (Wan Interface Card), 1 VIC (Voice Interface Card), 2  PVDM (DSP) sur carte mère ;  deux interfaces réseaux Ethernet 10 Base­T/100 Base­TX ­ 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,  modem­routeur  ADSL,  de  routeurs  VPN  et  de  routeurs  haute­disponibilité.  Il  fournit des passerelles résidentielles (iBOX A5200, A5100) qui disposent des caractéristiques suivantes :  ●



accès en RE­ADSL, 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 ci­dessous présente les différents modèles :  Passerelles VoIP analogiques  SmartLink M­ATA 

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 

Modem­routeur 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 S­DTA 

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.data­connect.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 X­Lite. 

© 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  sous­ré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 



LAN DATA 

192.168.1.0 

255.255.255.0 

Siège 



LAN VOIX IP 

192.168.2.0 

255.255.255.0 

Siège 



LAN VOIX IP  Softphone 

192.168.3.0 

255.255.255.0 

Siège 



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  faut­il  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  sous­ré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 (sous­interfaces) :  ●

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 sous­réseau "routeur WAN" en 192.168.4.0, avec une adresse du routeur en 192.168.4.2  par  exemple  (sous­entendu  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 sous­ré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 sous­ré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 



LAN DATA 

192.168.11.0 

255.255.255.0 

Agence 1 



LAN VOIX IP 

192.168.21.0 

255.255.255.0 

Agence 1 



LAN VOIX IP  Softphone 

192.168.31.0 

255.255.255.0 

Agence 1 



WAN opérateur 

192.168.41.0 

Masque opérateur 

Agence n°2  Site 

ID Vlan 

Nom vlan 

Subnet IP 

Masque 

Agence 2 



LAN DATA 

192.168.12.0 

255.255.255.0 

Agence 2 



LAN VOIX IP 

192.168.22.0 

255.255.255.0 

Agence 2 



LAN VOIX IP  Softphone 

192.168.32.0 

255.255.255.0 

Agence 2 



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 inter­vlans, 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 intra­sites.  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  passe­t­il  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 



LAN DATA 

192.168.1.0 

255.255.255.0 

Siège 



LAN VOIX IP 

192.168.2.0 

255.255.255.0 

Siège 



LAN VOIX IP  Softphone 

192.168.3.0 

255.255.255.0 

Siège 



WAN opérateur 1 

192.168.4.0 

Masque opérateur 

Siège 



WAN opérateur 2 

192.168.5.0 

Masque opérateur 

2. Incidence sur le routeur interne  Il  faut  créer  une  sous­interface  FE0/1.5.  Cette  interface  aura  l’IP  192.168.5.2  (sous­entendu  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  sous­ré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  sous­ré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 :  ●

Est­ce que la ligne de l’opérateur fonctionne ? 



Est­ce que le câble reliant l’accès opérateur au routeur est en état ? 



Est­ce que le led de la carte du routeur est conforme à un état normal ? 



Est­ce que les appels entrants arrivent bien sur le routeur ? 



Est­ce que les appels sortants partent bien du routeur ? 



Est­ce 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  ci­dessous,  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 X­Lite  Le logiciel gratuit X­lite 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 Eye­Beam 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 X­Lite 3.0 

- 2-

© ENI Editions - All rigths reserved - educ hafa

  X­Lite s’enregistre automatiquement auprès du serveur Asterisk en indiquant :  Ready, Your username is : 1010  Exemple : X­lite 3.0 connecté 

 

© ENI Editions - All rigths reserved - educ hafa

- 3-

Exemple : les différents boutons de X­lite 

  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 celui­ci.  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. 



[1­7] représente tout chiffre compris entre 1 et 7 : 1, 2, 3, 4, 5, 6 ou 7. 



[34­6] 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 elles­mê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’e­mail  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’e­mail. 



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 "masociete­attente".  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 passe­t­il 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 Meet­Me  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 "Meet­Me"  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 lui­mê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) ; celui­ci 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 plate­forme Asterisk :  ●

support  de  web­conferencing  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. 

plate­forme 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  plate­forme vidéo en mode multi­utilisateurs 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. Celles­ci 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 re­loader 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 asterisk­addons 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  "script­asterisk.sql"  au  format  SQL  (create  database...)  et  d’importer ce script dans MySQL à l’aide de la commande #mysql­uodbc­p 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 ci­dessous 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  mono­site  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 entre­eux (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  plate­forme  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 T­VoIP 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  re­facturation  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 asterisk­stat (http://www.areski.net/asterisk­stat­v2/asterisk­stat­ 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 asterisk­stat­v2_0_1.tar.gz dans le répertoire /usr/src 



Installation du fichier : tar ­zxvf asterisk­stat­v2_0_1.tar.gz 



Modification du fichier /usr/src/asterisk­stat­v2_0_1/lib/defines.php 

WEBROOT : URL de l’application (Exemple: http://localhost/asterisk­stat/).  FSROOT : chemin qui contient l’application (Exemple: /usr/src/asterisk­stat/­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 Asterisk­stat 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 

  Asterisk­stat 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 plate­forme 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 « tout­en­un » 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’Asterisk­Druid à la main puisque le système s’appuie sur un noyau Linux­CentOS. 

© 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/wp­content/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 freepbx­2.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.8­0­4 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’e­mail 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 spandsp­0.0.6pre17.tgz (http://www.soft­switch.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  app­fax  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  e­mail  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 e­mail 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 e­mail 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/agi­bin  (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/1­1 (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 text­to­speech (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 e­mails. 



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 (apt­get). 

# 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 access­list, 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 text­to­speech.  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.pollock­nageoire.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  sous­menus,  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

Click­To­Dial  La fonctionnalité Click­to­dial 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/click­to­call 



wget http://downloads.voipjots.com/scripts/click­to­call.zip 



unzip click­to­call.zip 



cp click­to­call.php /var/www/html/click­to­call.php 



cd /var/www/html 

2. Fichier click­to­call.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.
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF