voip et toip asterisk la téléphonie ip d'entreprise

302
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 dentreprises : 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 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. VoIP et ToIP Asterisk La téléphonie IP d'entreprise [2ième édition] Sébastien DÉON Résumé 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. - 1 - © ENI Editions - All rigths reserved - educ hafa

Upload: yaniss

Post on 12-Aug-2015

7.756 views

Category:

Documents


66 download

TRANSCRIPT

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

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

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.

VoIP et ToIP ­ Asterisk La téléphonie IP d'entreprise [2ième édition]

Sébastien DÉON

Résumé

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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMykqIull5PzYgLAA==-enidentnumber

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

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’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.

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.

L’écosystème de la VoIP

Stratégie d’architectures VoIP

Installation d’un serveur Asterisk

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyHKSAnV5PzYgLAA==-enidentnumber

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

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.

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.

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.

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.

L’objectif de ce chapitre est de vous aider à :

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.

Les passerelles opérateurs

Préparation du réseau

Conception du plan de numérotation

Amélioration du plan de numérotation

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyHKSAnV5PzYgLAA==-enidentnumber

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

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.

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

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.

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.

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.

Entreprise multisites

Les outils complémentaires

Applications connexes

Implémentation d’un centre d’appels

Outils périphériques tiers

Annexe A : Plan de numérotation commenté

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyHKSAnV5PzYgLAA==-enidentnumber

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

Annexe B : Liste des applications Asterisk

Annexe C : Principaux fichiers de configuration

Annexe D : Bibliographie

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyHKSAnV5PzYgLAA==-enidentnumber

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

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 ”.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyTVtnpF5PzYgLAA==-enidentnumber

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

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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyrGBcq15PzYgLAA==-enidentnumber

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

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 sont pas compatibles Asterisk (voir http://www.voip­info.org/wiki/view/Asterisk+hardware).

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

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

aisé.

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

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyhx+JsV5PzYgLAA==-enidentnumber

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

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 :

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)

Besoin Matériel Prix

1 T0 Patton 1 T0 250 euros

2 T0 Patton 2 T0 400 euros

4 T0 Digium B410P 500 euros

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyhx+JsV5PzYgLAA==-enidentnumber

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

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

1 T2 Digium TE120P 500 euros

2 T2 Digium TE207P 1000 euros

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyhx+JsV5PzYgLAA==-enidentnumber

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

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

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.

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyhx+JsV5PzYgLAA==-enidentnumber

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

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.

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyhx+JsV5PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyhx+JsV5PzYgLAA==-enidentnumber

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

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

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.

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

- 7 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyhx+JsV5PzYgLAA==-enidentnumber

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

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.

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 Protocole Désignation 1 192.168.1.12 192.168.1.50 SIP Request:REGISTER sip:192.168.1.50 2 192.168.1.50 192.168.1.12 SIP Status : 100 Trying 3 192.168.1.50 192.168.1.12 SIP Status : 200 Ok 4 192.168.1.50 192.168.1.12 SIP Request:NOTIFY sip:[email protected]:5060 5 192.168.1.12 192.168.1.50 SIP Status : 200 Ok

1 : le client tente de s’enregistrer auprès du serveur ; il lui envoie une requête (REGISTER).

Les trois composants de SIP

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyTH2Ut15PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyTH2Ut15PzYgLAA==-enidentnumber

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

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.

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyTH2Ut15PzYgLAA==-enidentnumber

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

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 ==> <== message ACCEPT <== ==> message ACK ==> <== message RINGING <== ==> message ACK ==> <== message ANSWER <== ==> message ACK ==> <====== Communication full-duplex =====>

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyTH2Ut15PzYgLAA==-enidentnumber

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

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

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyTH2Ut15PzYgLAA==-enidentnumber

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

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

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyRAcrvV5PzYgLAA==-enidentnumber

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

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

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.

Codec Débits (Kb/s) MOS

G.711 64 4,1

G.723.1 6,4 3,9

G.726 32 3,85

G.729 8 3,92

GSM 13 3,5

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyRAcrvV5PzYgLAA==-enidentnumber

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

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

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 :

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 :

HTTP

SMTP

FTP

VOIP

SIP/RTP

Lien ADSL avec une bande passante de 1Mb/s en download 256 Kb/s en upload

FTP

Autres flux

Délai de transmission de la voix Qualité d’écoute

< à 300 ms Excellente

Entre 300 et 500 ms Moyenne

Entre 500 ms à 1 s Faible

> à 1 s Impossible

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyvxGkw15PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyvxGkw15PzYgLAA==-enidentnumber

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

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.

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyvxGkw15PzYgLAA==-enidentnumber

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

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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyfD+Byl5PzYgLAA==-enidentnumber

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

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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyhIbW0F5PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyhIbW0F5PzYgLAA==-enidentnumber

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

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

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKcfG115PzYgLAA==-enidentnumber

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

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 :

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.

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKcfG115PzYgLAA==-enidentnumber

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

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

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKcfG115PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKcfG115PzYgLAA==-enidentnumber

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

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é

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKcfG115PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKcfG115PzYgLAA==-enidentnumber

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

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 :

- 7 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKcfG115PzYgLAA==-enidentnumber

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

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 :

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.

- 8 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKcfG115PzYgLAA==-enidentnumber

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

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 !

- 9 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKcfG115PzYgLAA==-enidentnumber

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

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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy/uGQ3l5PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy/uGQ3l5PzYgLAA==-enidentnumber

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

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

Achat de serveurs redondés habilement négociés.

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.

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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJd195l5PzYgLAA==-enidentnumber

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

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.

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.

Media5­fone VoIP SIP Phone

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJd195l5PzYgLAA==-enidentnumber

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

Accès au paramétrage d’un compte SIP

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJd195l5PzYgLAA==-enidentnumber

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

Configuration d’un compte SIP

Définition manuelle du nouveau compte SIP

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJd195l5PzYgLAA==-enidentnumber

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

Renseignement des informations sur le compte SIP

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJd195l5PzYgLAA==-enidentnumber

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

Définition des paramètres du serveur SIP

Déverrouillage de la version Media5­fone Free

- 6 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJd195l5PzYgLAA==-enidentnumber

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

Clavier de Media5

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

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.

Asteriskc2d / Asteriskc2dPro

- 7 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJd195l5PzYgLAA==-enidentnumber

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

- 8 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJd195l5PzYgLAA==-enidentnumber

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

Source : http://www.rho.cc

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.

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.

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

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.

Asterisk VM

AstCallBack Lite

Fring, "your friends mobile"

Acrobits softphone

- 9 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJd195l5PzYgLAA==-enidentnumber

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

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 4e 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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJd195l5PzYgLAA==-enidentnumber

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

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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyR/rt7l5PzYgLAA==-enidentnumber

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

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 Genmask Indic Metric Ref Use Iface localnet * 255.255.255.0 U 0 0

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyPDLT9F5PzYgLAA==-enidentnumber

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

0 eth0 default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 # 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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyPDLT9F5PzYgLAA==-enidentnumber

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

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 :

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyie49+15PzYgLAA==-enidentnumber

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

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 relay:[192.168.1.50] domaine2.com relay:[ 192.168.1.50] domaine3.fr 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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyie49+15PzYgLAA==-enidentnumber

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

À 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

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyie49+15PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyie49+15PzYgLAA==-enidentnumber

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

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

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyie49+15PzYgLAA==-enidentnumber

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

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-linux- complete/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/ ###################################################

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy5mdnAl9PzYgLAA==-enidentnumber

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

### ### 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-linux- complete-2.3.0+2.3.0/tools » # make config make[1]: quittant le répertoire « /home/sdeon/dahdi-linux- complete-2.3.0+2.3.0/tools » make -C tools config make[1]: entrant dans le répertoire « /home/sdeon/dahdi-linux- complete-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-linux- complete-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 wcte12xp- d161: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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy5mdnAl9PzYgLAA==-enidentnumber

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

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

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy5mdnAl9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy5mdnAl9PzYgLAA==-enidentnumber

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

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]

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy5mdnAl9PzYgLAA==-enidentnumber

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

[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 9384 0 dahdi 190728 2 dahdi_dummy,wctdm crc_ccitt 6337 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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy5mdnAl9PzYgLAA==-enidentnumber

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

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/libpri- 1.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.2- current.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

- 7 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy5mdnAl9PzYgLAA==-enidentnumber

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

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: Package configured for: configure: OS type : linux-gnu configure: Host CPU : i686 configure: build-cpu:vendor:os: i686 : pc : linux-gnu : configure: 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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy5mdnAl9PzYgLAA==-enidentnumber

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

scroll => up/down arrows toggle selection => Enter select => y deselect => n select all => F8 deselect all => F7 back => left arrow quit => q save and quit => 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 -------+ + +

- 9 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy5mdnAl9PzYgLAA==-enidentnumber

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

+ 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 <http://wiki.debian.org/LSBInitScripts> 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 00:00:00 grep asterisk root 25469 1 0 21:43 ? 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 <[email protected]> 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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy5mdnAl9PzYgLAA==-enidentnumber

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

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 -R asterisk:asterisk /var/lib/asterisk # chown -R asterisk:asterisk /var/log/asterisk/ # chown -R asterisk:asterisk /var/run/asterisk/ # chown -R asterisk:asterisk /var/spool/asterisk/ # chown -R asterisk:asterisk /dev/dahdi

- 11 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy5mdnAl9PzYgLAA==-enidentnumber

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

# 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

- 12 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy5mdnAl9PzYgLAA==-enidentnumber

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

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 :

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy3k5gCl9PzYgLAA==-enidentnumber

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

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy3k5gCl9PzYgLAA==-enidentnumber

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

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é.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyy1YXEV9PzYgLAA==-enidentnumber

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

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

2 0

1 1

0 2

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyHfH+Fl9PzYgLAA==-enidentnumber

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

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

0 0

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyHfH+Fl9PzYgLAA==-enidentnumber

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

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

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyHfH+Fl9PzYgLAA==-enidentnumber

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

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyHfH+Fl9PzYgLAA==-enidentnumber

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

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

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyGCqpHl9PzYgLAA==-enidentnumber

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

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

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.

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyGCqpHl9PzYgLAA==-enidentnumber

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

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 :

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyGCqpHl9PzYgLAA==-enidentnumber

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

Téléphonie directe

Installation de fibre optique ou SDSL en remplacement des liens T0/T2, GTR de 4h.

Téléphonie indirecte

Gestion des appels sortants (pré­sélection).

Passerelle ToIP

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyGCqpHl9PzYgLAA==-enidentnumber

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

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

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyGCqpHl9PzYgLAA==-enidentnumber

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

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 :

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 :

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 €.

Quel débit choisir ? Accès dédié Téléphonie IP Accès mutualisé Téléphonie IP + Internet

Nombre de postes indicatifs

Nombre d’appels simultanés

Nombre de postes indicatifs

Nombre d’appels simultanés

ADSL ProMax 15 5 ­ ­

SDSL 512 Kbps 30 10 ­ ­

SDSL 1 Mbps 60 20 40 12

SDSL 2 Mbps 150 40 100 30

SDSL 4 Mbps 400 80 200 60

- 6 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyGCqpHl9PzYgLAA==-enidentnumber

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

International (Zone A, Europe, USA, Canada) : 6 centimes € HT/minute + coût de connexion de 10 centimes €.

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é

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

- 7 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyGCqpHl9PzYgLAA==-enidentnumber

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

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)

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

Solution DECT IP (abonnement de 9,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 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 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 +

Même offre que Solution Standardiste mais avec 2 modules d’extension de 128 touches.

- 8 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyGCqpHl9PzYgLAA==-enidentnumber

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

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.

- 9 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyGCqpHl9PzYgLAA==-enidentnumber

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

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

0 1 2 3 4

0 TDM410P TDM401EF TDM402EF TDM403EF TDM404EF

Modules FXS 1 TDM410EF TDM411EF TDM412EF TDM413EF

2 TDM420EF TDM421EF TDM422EF

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyY1pIJV9PzYgLAA==-enidentnumber

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

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.

3 TDM430EF TDM431EF

4 TDM440EF

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyY1pIJV9PzYgLAA==-enidentnumber

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

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.

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyY1pIJV9PzYgLAA==-enidentnumber

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

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 :

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyN68sLF9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyN68sLF9PzYgLAA==-enidentnumber

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

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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyzr4pMl9PzYgLAA==-enidentnumber

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

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 :

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

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.

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyzr4pMl9PzYgLAA==-enidentnumber

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

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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyXZ74OF9PzYgLAA==-enidentnumber

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

É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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyl0vzPl9PzYgLAA==-enidentnumber

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

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

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.

Site ID Vlan Nom vlan Subnet IP Masque

Siège 1 LAN DATA 192.168.1.0 255.255.255.0

Siège 2 LAN VOIX IP 192.168.2.0 255.255.255.0

Siège 3 LAN VOIX IP Softphone

192.168.3.0 255.255.255.0

Siège 4 WAN opérateur 192.168.4.0 Masque opérateur

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyW+MYRV9PzYgLAA==-enidentnumber

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

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

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Vers les autres switchs du réseau Vers le routeur interne Vlan 1+2+3 Vers le routeur opérateur Vlan 4

Interface FE 0/0 Interface FE 0/1

Sous interfaceFE 0/0.1 Sous interfaceFE 0/0.2 Sous interfaceFE 0/0.3 Sous interfaceFE 0/1.4

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyW+MYRV9PzYgLAA==-enidentnumber

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

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

Agence n°2

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

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

Site ID Vlan Nom vlan Subnet IP Masque

Agence 1 1 LAN DATA 192.168.11.0 255.255.255.0

Agence 1 2 LAN VOIX IP 192.168.21.0 255.255.255.0

Agence 1 3 LAN VOIX IP Softphone

192.168.31.0 255.255.255.0

Agence 1 4 WAN opérateur 192.168.41.0 Masque opérateur

Site ID Vlan Nom vlan Subnet IP Masque

Agence 2 1 LAN DATA 192.168.12.0 255.255.255.0

Agence 2 2 LAN VOIX IP 192.168.22.0 255.255.255.0

Agence 2 3 LAN VOIX IP Softphone

192.168.32.0 255.255.255.0

Agence 2 4 WAN opérateur 192.168.42.0 Masque opérateur

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyW+MYRV9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyW+MYRV9PzYgLAA==-enidentnumber

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

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

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyW+MYRV9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyW+MYRV9PzYgLAA==-enidentnumber

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

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

- 7 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyW+MYRV9PzYgLAA==-enidentnumber

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

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.

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

Site ID Vlan Nom vlan Subnet IP Masque

Siège 1 LAN DATA 192.168.1.0 255.255.255.0

Siège 2 LAN VOIX IP 192.168.2.0 255.255.255.0

Siège 3 LAN VOIX IP Softphone

192.168.3.0 255.255.255.0

Siège 4 WAN opérateur 1 192.168.4.0 Masque opérateur

Siège 5 WAN opérateur 2 192.168.5.0 Masque opérateur

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyBV/oTV9PzYgLAA==-enidentnumber

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

(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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyBV/oTV9PzYgLAA==-enidentnumber

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

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

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyBV/oTV9PzYgLAA==-enidentnumber

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

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 ## AUTORISATION DES RESEAUX TOUT A ZERO ip subnet-zero ip cef ! ## CONFIGURATION DU DNS ip 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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyBV/oTV9PzYgLAA==-enidentnumber

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

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

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyBV/oTV9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyBV/oTV9PzYgLAA==-enidentnumber

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

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 :

- 7 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyBV/oTV9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyBV/oTV9PzYgLAA==-enidentnumber

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

password: 192.168.1.1> ? arp Manipulates the ARP database blink Reads/writes/erases data from/to Flash call Manipulates local calls clear Clears the screen debug Enables debug monitor dns-lookup Look up the IP/hostname of a host/IP enable Enters ’administrator exec’ configuration mode exit Goes back to the parent configuration mode fg Resumes a suspended task help Shows information on how to use help install Installs system components jobs Shows current running commands logout Terminates console / telnet session ping Sends icmp ping packets to a destination host show Shows system information sniff Sniff packets su Changes user terminal Enables or configures terminal parameters test Stimulates input of a system-part traceroute Prints routes which IP packets takes to a network 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

- 9 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyBV/oTV9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyBV/oTV9PzYgLAA==-enidentnumber

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

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

- 11 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyBV/oTV9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyBV/oTV9PzYgLAA==-enidentnumber

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

Interface avancée du Patton SN4552 ­ 2T0

- 13 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyBV/oTV9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyBV/oTV9PzYgLAA==-enidentnumber

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

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 (up- date|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".

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy1cmDY19PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy1cmDY19PzYgLAA==-enidentnumber

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

X­Lite s’enregistre automatiquement auprès du serveur Asterisk en indiquant :

Ready, Your username is : 1010

Exemple : X­lite 3.0 connecté

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy1cmDY19PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy1cmDY19PzYgLAA==-enidentnumber

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

; 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

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy1cmDY19PzYgLAA==-enidentnumber

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

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

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

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)

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.

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.

L’extension start s

L’extension invalid i

L’extension t

- 6 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy1cmDY19PzYgLAA==-enidentnumber

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

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.

Répond à un canal qui sonne. On l’utilise très souvent comme première application pour une extension.

exten => 1001, 1, Answer()

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)

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

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)

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)

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)

Answer()

Playback()

Hangup()

Echo()

Background()

Goto()

- 7 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy1cmDY19PzYgLAA==-enidentnumber

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

Application fondamentale qui fait sonner l’extension passée en paramètre.

exten => 1001, 1, Dial(SIP/1001)

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 => 717, 1, answer() exten => 717, 2, Playtones(congestion) exten => 717, 3, Congestion() exten => 717, 4, Hangup()

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)

Affecte une valeur à une variable.

exten => 717, 1, Set(SAV=SIP/700) exten => 717, 2, Dial($SAV)

Permet d’exécuter une application.

exten => 717, 1, Answer() exten => 717, 2, Set(appel=Dial(SIP/717)) exten => 717, 3, Exec($appel)

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)

Permet de jouer des tonalités qui sont définies dans le fichier etc/asterisk/indications.conf.

exten => 717, 1, Playtones(congestion)

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

Dial()

Congestion()

Voicemail()

Set()

Exec()

MusicOnHold()

Playtones()

Transfer()

- 8 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy1cmDY19PzYgLAA==-enidentnumber

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

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.

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.

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

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é.

Syntaxe

Préfixe de sortie

Appels sortants vers l’International

Appels vers les numéros 118

- 9 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy1cmDY19PzYgLAA==-enidentnumber

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

$EXTEN:x permet d’enlever x chiffres en partant de la gauche.

- 10 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy1cmDY19PzYgLAA==-enidentnumber

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

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

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy01Tfal9PzYgLAA==-enidentnumber

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

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

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

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy01Tfal9PzYgLAA==-enidentnumber

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

; [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

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy01Tfal9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy01Tfal9PzYgLAA==-enidentnumber

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

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.

[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 ...

[general] [globals] Standard=SIP/400 Claude=SIP/401 Eliane=SIP/402 Rene=SIP/403 Huguette=SIP/404 Gateway=Zap/g1

Contenu du fichier sip.conf

Contenu du fichier extensions.conf

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy4HmxcF9PzYgLAA==-enidentnumber

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

[appels_entrants] exten => s, 1, Answer() exten => s, 2, Playback(Hello-world) exten => s, 3, Hangup() ; affectation des SDA aux numeros internes exten => 1400, 1, Answer() exten => 1400, 2, Dial ($Standard,15,m(masociete-attente),r) exten => 1400, 3, 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/SEXTEN: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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy4HmxcF9PzYgLAA==-enidentnumber

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

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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyZZ2GeF9PzYgLAA==-enidentnumber

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

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)

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyiq9Ffl9PzYgLAA==-enidentnumber

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

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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyPP7gg19PzYgLAA==-enidentnumber

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

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 : =, >, <, >=, <=, != ;

des opérateurs arithmétiques : +, ­, *, /, % ;

des expressions régulières : expression 1 : expression 2 ;

des opérateurs conditionnels : GotoIf(condition?destination1:destination2).

GotoIf évalue l’expression condition. Si c’est vrai, elle va à destination1, sinon à destination2.

Exemples :

Que se passe­t­il lorsque le poste 777 est demandé ?

exten => 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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyPP7gg19PzYgLAA==-enidentnumber

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

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]

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyzKOVil9PzYgLAA==-enidentnumber

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

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

K : tous les utilisateurs sont sortis de la conférence.

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyzKOVil9PzYgLAA==-enidentnumber

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

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 pour administrer avec demande du mot de passe 9991 exten => 762, 1, Answer() exten => 762, 2, Authenticate(9991) exten => 762, 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 <numéro_de_conférence> : fait sortir tous les utilisateurs de la conférence meetme kick <numéro_de_conférence> <numéro_utilisateur> : idem mais pour un utilisateur précis meetme lock <numéro_de_conférence> : permet de verrouiller la conférence meetme unlock <numéro_de_conférence> : permet de dévérouiller la conférence meetme mute <numéro_de_conférence> <numéro_utilisateur> : permet de rendre muet un utilisateur précis dans la conférence meetme unmute <numéro_de_conférence> : permet de rendre bavard un utilisateur précis dans la conférence

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyzKOVil9PzYgLAA==-enidentnumber

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

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 exemple, OpenMeetings (http://www.openmeetings.net) permet d’effectuer des réunions en ligne :

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,

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyElMalF9PzYgLAA==-enidentnumber

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

contrairement à la VoIP, est très consommatrice.

Concevoir un système simple d’utilisation et facile à administrer.

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyElMalF9PzYgLAA==-enidentnumber

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

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.

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> database put SDA 0383909010 777 CLI> database put SDA 0383909011 778 CLI> database put POSTE 777 P.DUPOND CLI> database put POSTE 778 J.DUPONT

Dans le plan de numérotation :

exten => 9010, 1, Set(numinterne=$DB(SDA/0383909010))

Commandes CLI

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy7/p0nF9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy7/p0nF9PzYgLAA==-enidentnumber

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

[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`

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy7/p0nF9PzYgLAA==-enidentnumber

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

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 :

#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),

Name Host Secret Context allow

777 dynamic 8890 Default g729 ;gsm ;alam;ulaw

780 dynamic 3618 Internal g729 ;gsm ;alaw ;ulaw

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy7/p0nF9PzYgLAA==-enidentnumber

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

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 => realtime/@ s’applique au contexte courant et à la famille extensions du fichier extconfig.conf.

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 INTO `extensions_conf` VALUES (1, ’appels_entrants’, ’777’, 1, ’Answer’) INSERT INTO `extensions_conf` VALUES (2, ’appels_entrants’, ’777’, 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</.../script­asterisk.sql.

e. Application Realtime()

Realtime peut être utilisé dans extensions.conf à l’aide de l’application Realtime() qui permet d’interagir avec le contenu de la base de données.

Realtime(<famille>, <colonne>, <valeur>, <prefix>)

Famille : nom de la table de la base de données (voir extconfig.conf)

Colonne : champs sur lequel la requête est effectuée

Syntaxe

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy7/p0nF9PzYgLAA==-enidentnumber

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

Valeur : valeur qui est recherchée dans le champs Colonne

Prefix : nom du tableau de retour

Lors d’un appel au poste 777, la commande SQL exécutée est : Select * from sip_conf where name=777. La variable $var_name contient le résultat de cette requête, sous forme de tableau.

exten => 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)

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)

Interrogation Realtime

Mise à jour Realtime

- 6 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy7/p0nF9PzYgLAA==-enidentnumber

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

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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMywubVpV9PzYgLAA==-enidentnumber

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

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

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyTOgnrV9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyTOgnrV9PzYgLAA==-enidentnumber

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

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 ;

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyTOgnrV9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyTOgnrV9PzYgLAA==-enidentnumber

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

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 du site de Paris [paris] ... exten => 104, 1, Dial(SIP/104) exten => 105, 1, Dial(SIP/105) ... ;gestion des appels sortants par le routeur passerelle de Paris exten => _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)

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKG06s19PzYgLAA==-enidentnumber

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

;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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKG06s19PzYgLAA==-enidentnumber

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

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

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.

Vocabulaire Cisco

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyiDgVul9PzYgLAA==-enidentnumber

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

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

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 :

Accès au Call Manager

Paramétrage

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyiDgVul9PzYgLAA==-enidentnumber

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

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

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyiDgVul9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyiDgVul9PzYgLAA==-enidentnumber

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

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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy2/VEwl9PzYgLAA==-enidentnumber

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

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

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKXiVyF9PzYgLAA==-enidentnumber

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

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 :

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é) ;

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKXiVyF9PzYgLAA==-enidentnumber

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

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

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKXiVyF9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKXiVyF9PzYgLAA==-enidentnumber

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

Exemple de recherche des appels émis par le poste 714 en Juin 2007

Exemple de liste des appels émis par le poste 714

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKXiVyF9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKXiVyF9PzYgLAA==-enidentnumber

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

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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy+bTiz19PzYgLAA==-enidentnumber

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

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 <... Répondre par Y pour la plupart des fonctions ...> <... téléchargement de fichier de sons / musique classique ...> # 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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy+bTiz19PzYgLAA==-enidentnumber

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

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 :

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy+bTiz19PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy+bTiz19PzYgLAA==-enidentnumber

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

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

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy+bTiz19PzYgLAA==-enidentnumber

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

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

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyV/Tx1l9PzYgLAA==-enidentnumber

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

# 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

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)

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)

Cas n°1 :

Cas n°2 :

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyV/Tx1l9PzYgLAA==-enidentnumber

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

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.

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 :

Cas n°3 :

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyV/Tx1l9PzYgLAA==-enidentnumber

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

[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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyV/Tx1l9PzYgLAA==-enidentnumber

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

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

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyNQXQ3F9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyNQXQ3F9PzYgLAA==-enidentnumber

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

9. Exemple de script AGI

Ce script, écrit en langage C, permet à Asterisk de dire « un deux trois ».

#include <stdio.h> 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) <= 1) break; /* Send asterisk a command */ printf("SAY DIGITS 123 \"\"\n"); /* Read response from Asterisk and show on console */ fgets(line,80,stdin); fputs(line,stderr);

Source : http://www.bitflipper.ca/Documentation/agi.html

10. Exemples d’utilisation d’AGI

Recherche de la personne qui appelle, en fonction de son numéro.

Pour cela, il faut constituer au préalable un annuaire LDAP ou une base de données MySQL permettant d’avoir la correspondance Numéro de téléphone <­> prénom­nom.

Chaque appel interne déclenche un script AGI qui va effectuer la recherche et présenter le nom de l’appelant.

Routage d’un fax vers une boîte aux lettres.

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyNQXQ3F9PzYgLAA==-enidentnumber

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

Introduction

Ce chapitre présente quelques applications incontournables d’Asterisk qui viendront enrichir les fonctionnalités déjà présentées :

Asterisk Manager

Synthétiseur vocal Festival

Système de serveur vocal interactif IVR

Click­to­Dial

Asterisk dispose également d’autres fonctionnalités intéressantes comme DUNDI (http://www.dundi.com), le système d’annuaire peer­to­peer qui permet de trouver un numéro de téléphone par interrogation de serveurs.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyOG6o419PzYgLAA==-enidentnumber

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

MANAGER

1. Généralités

Asterisk Manager est une fonctionnalité intéressante pour les développeurs car le "manager" fournit une API (Application Program Interface) permettant à des programmes externes de se connecter à Asterisk et ainsi de pouvoir lancer des commandes, lire des événements d’Asterisk au travers de sockets TCP/IP.

Avant de pouvoir utiliser les fonctionnalités du manager, il est nécessaire de paramétrer le fichier /etc/asterisk/manager.conf qui contient les informations relatives à la connexion à l’interface.

2. Fichier de configuration

manager.conf

; Asterisk Call Management support [general] ; activation du service Manager enabled = yes ; port TCP par défaut port = 5038 bindaddr = 0.0.0.0 ; Each user has a section labeled with the username ; so this is the section for the user named "asterisk_user" and « asterisk_user_bis » [asterisk_user] secret = 3615 ; blocage de toutes les adresses pouvant accéder au manager deny=0.0.0.0/0.0.0.0 ; autorisation des adresses pouvant accéder au manager permit=209.16.236.73/255.255.255.0 permit=127.0.0.1/255.255.255.0 ; attribution des permissions de lecture à l’utilisateur read = system,call,log,verbose,command,agent,user ; attribution des permissions d’écriture à l’utilisateur write = system,call,log,verbose,command,agent,user [asterisk_user_bis] secret = 8982 deny=0.0.0.0/0.0.0.0 permit=209.16.236.73/255.255.255.0 permit=127.0.0.1/255.255.255.0 read = system,call,log,verbose,command,agent,user write = system,call,log,verbose,command,agent,user

3. Connexion au Manager

Il est nécessaire d’arrêter et de redémarrer Asterisk afin de lancer la connectivité au manager. Afin de tester le bon fonctionnement, au sens réseau, nous pouvons lancer la commande telnet localhost 5038.

Le principe est le suivant :

création d’une socket ;

connexion au port TCP 5038 du manager ;

envoi de la commande au travers de la socket ;

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy/cuz6V9PzYgLAA==-enidentnumber

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

attente de la réponse du manager ;

traitement des données.

Si l’utilisateur asterisk_user souhaite accéder au manager, il va donc devoir établir une connexion en établissant un accès via le port TCP 5038 et se connecter en utilisant l’action "Login".

Pour envoyer des commandes au Manager, il faut utiliser la syntaxe suivante :

Action: <action type> <Key 1>: <Value 1> <Key 2>: <Value 2> ... Variable: <Variable 1>=<Value 1><CRLF> Variable: <Variable 2>=<Value 2><CRLF> ... <CRLF>

Dans notre exemple de login, le jeu de commande est donc le suivant :

Action: login Username: asterisk_user Secret: 3615

Exemple : échec de la connexion

[root@asterisk]# telnet localhost 5038 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is ’^]’. Asterisk Call Manager/1.0 Action: login Username: Pierre Secret: 3615 Response: Error Message: Authentication Required

Exemple : succès de la connexion

[root@asterisk]# telnet localhost 5038 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is ’^]’. Asterisk Call Manager/1.0 Action: login Username: asterisk_user Secret: 3615 Response: Success Message: Authentication accepted

Lorsque l’utilisateur est correctement authentifié et connecté, il va pouvoir lancer d’autres actions et visualiser les événements d’Asterisk.

Attention, Asterisk Manager ne dispose pas d’interface de commande telle que la CLI et il a été conçu pour que ce soit un programme externe qui lance les actions.

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy/cuz6V9PzYgLAA==-enidentnumber

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

4. Les actions du Manager

Nous pouvons visualiser l’ensemble des commandes du Manager depuis la CLI en lançant la commande :

CLI> 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 <none> Control Event Flow ExtensionState call,all Check Extension Status Getvar call,all Gets a Channel Variable Hangup call,all Hangup Channel IAXnetstats <none> Show IAX Netstats IAXpeers <none> List IAX Peers ListCommands <none> List available manager commands Logoff <none> 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 <none> List parked calls Ping <none> 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 <none> Queues QueueStatus <none> Queue Status

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy/cuz6V9PzYgLAA==-enidentnumber

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

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 <none> Dial over Zap channel while offhook ZapDNDoff <none> Toggle Zap channel Do Not Disturb status OFF ZapDNDon <none> Toggle Zap channel Do Not Disturb status ON ZapHangup <none> Hangup Zap Channel ZapShowChannels <none> Show status zapata channels ZapTransfer <none> 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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy/cuz6V9PzYgLAA==-enidentnumber

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

réception (manager / programme)

Response: Follows Privilege: Command Channel Location State Application(Data) 0 active channels 0 active calls --END COMMAND--

b. Contenu du script test_channel.php

#!/usr/bin/php -q <?php $asterisk_server = "127.0.0.1"; // Port utiliser par le manager asterisk (manager.conf) $asterisk_manager_port = "5038"; // User pour le manager asterisk (manager.conf) $asterisk_manager_user = "asterisk_user"; // Mot de passe pour le manager asterisk (manager.conf) $asterisk_manager_pass = "3615"; // Commande CLI a passer pour afficher la version d’* $agent_command = "show channels"; $socket = sockopen($asterisk_server,$asterisk_manager_port); fputs($socket, "Action: Login\r\n"); fputs($socket, "UserName: $asterisk_manager_user\r\n"); fputs($socket, "Secret: $asterisk_manager_pass\r\n\r\n"); fputs($socket, "Action: Command\r\n"); fputs($socket, "Command: ".$agent_command."\r\n\r\n"); do $line = fgets($socket, 4096); echo $line. "\n"; while ( !eregi("—END COMMAND—",$line) ); fputs($socket,"Action: Logoff\r\n\r\n"); fclose($socket); ?>

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

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy/cuz6V9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy/cuz6V9PzYgLAA==-enidentnumber

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

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 festvox- kallpc16k 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.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyu7928F9PzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyu7928F9PzYgLAA==-enidentnumber

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

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.

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyu7928F9PzYgLAA==-enidentnumber

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

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 => 1, 1, Playback(incident_data) exten => 2, 1, Playback(incident_voix) exten => 3, 1, Playback(autre_incident) exten => 5, 1, Dial(SIP/$poste_nouvel_incident_data) exten => 6, 1, Dial(SIP//$poste_ancien_incident_data) exten => 7, 1, Dial(SIP/$poste_nouvel_incident_voix) exten => 8, 1, 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 => 1, 1, Goto(data, s, 1) exten => 2, 1, Goto(voix, s, 1) exten => 3, 1, Playback(autre_incident) exten => 3, 2, 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]

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyvdbyAGBPzYgLAA==-enidentnumber

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

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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyvdbyAGBPzYgLAA==-enidentnumber

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

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

<html> <head> <title>Click-to-Call</title> </head> <body> <? #Click-To-Call script brought to you by VoipJots.com #--------------------------------------------------------- ---------------------- #edit the below variable values to reflect your system/information #--------------------------------------------------------- ---------------------- #specify the name/ip address of your asterisk box #if your are hosting this page on your asterisk box, then you can use #127.0.0.1 as the host IP. Otherwise, you will need to edit the following #line in manager.conf, under the Admin user section: #permit=127.0.0.1/255.255.255.0 #change to: #permit=127.0.0.1/255.255.255.0,xxx.xxx.xxx.xxx ;(the ip address of the server this page is running on)

$strHost = "127.0.0.1";

#specify the username you want to login with (these users are defined in /etc/asterisk/manager.conf) #this user is the default AAH AMP user; you shouldn’t need to change, if you’re using AAH. #$strUser = "admin";

$strUser = "asterisk_user";

#specify the password for the above user #$strSecret = "amp111";

$strSecret = "3615";

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyhxJ7BmBPzYgLAA==-enidentnumber

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

#specify the channel (extension) you want to receive the call requests with #e.g. SIP/XXX, IAX2/XXXX, ZAP/XXXX, etc #$strChannel = "IAX2/250";

# Poste qui effectue l’appel

$strChannel = "SIP/1000";

#specify the context to make the outgoing call from. By default, AAH uses from-internal #Using from-internal will make you outgoing dialing rules apply #$strContext = "from-internal";

# Context qui figure dans extensions.conf

$strContext = "internal";

#specify the amount of time you want to try calling the specified channel before hangin up $strWaitTime = "30"; #specify the priority you wish to place on making this call $strPriority = "1"; #specify the maximum amount of retries $strMaxRetry = "2"; #-------------------------------------------------------------- ------------------ #Shouldn’t need to edit anything below this point to make this script work #---------------------------------------------------- --------------- #get the phone number from the posted form

# Numéro de l’appelé saisi dans la page Web

$strExten = $_POST[’txtphonenumber’];

#specify the caller id for the call $strCallerId = "Web Call <$strExten>"; $length = strlen($strExten); if ($length == 4 && is_numeric($strExten)) $oSocket = fsockopen($strHost, 5038, $errnum, $errdesc) or die("Connection to ho st failed"); fputs($oSocket, "Action: login\r\n"); fputs($oSocket, "Events: off\r\n"); fputs($oSocket, "Username: $strUser\r\n"); fputs($oSocket, "Secret: $strSecret\r\n\r\n"); fputs($oSocket, "Action: originate\r\n"); fputs($oSocket, "Channel: $strChannel\r\n"); fputs($oSocket, "WaitTime: $strWaitTime\r\n"); fputs($oSocket, "CallerId: $strCallerId\r\n"); fputs($oSocket, "Exten: $strExten\r\n"); fputs($oSocket, "Context: $strContext\r\n"); fputs($oSocket, "Priority: $strPriority\r\n\r\n"); fputs($oSocket, "Action: Logoff\r\n\r\n"); fclose($oSocket); ?> <p> <table width="300" border="1" bordercolor="#630000" cellpadding="3" cellspacing= "0"> <tr><td> <font size="2" face="verdana,georgia" color= "#630000">We are currently trying to call you. Please be patient, and wait for your phone to ring!<br>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

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyhxJ7BmBPzYgLAA==-enidentnumber

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

phone.<br><a href="<? echo $_SERVER[’PHP_SELF’] ?>">Try Again</a></font> </td></tr> </table> </p> <? else ?> <p> <table width="300" border="1" bordercolor="#630000" cellpadding="3" cellspacing= "0"> <tr><td> <font size="2" face="verdana,arial,georgia" color= "#630000">Entrer un numero de telephone</font> <form action="<? echo $_SERVER[’PHP_SELF’] ?>" method="post"> <input type="text" size="20" maxlength= "11" name="txtphonenumber "><br> <input type="submit" value="APPEL"> </form> </td></tr> </table> </p> <? ?> </body> </html>

3. Résultat

Dans un navigateur, le site http://192.168.1.100/click­to­call.php affiche l’écran suivant (ici, le serveur qui héberge la page web est en 192.168.1.100).

Il suffit alors de saisir le numéro d’appel souhaité. Le poste 1000 (notre poste) va alors sonner puis au décrochage de celui­ci, le poste 1002 va alors sonner également. Cette fonctionnalité est réalisée à l’aide du Manager et de sa commande Originate qui effectue l’appel.

4. Click­to­Dial en direct avec le Manager

Les commandes suivantes permettent d’effectuer la même chose que le fichier ci­dessus :

# telnet 127.0.0.1 5038 Action: Login Username: asterik_user Secret: 3615 Action: Originate Channel: SIP/1000 Exten: SIP/1002 Context: internal Priority: 1

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyhxJ7BmBPzYgLAA==-enidentnumber

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

5. Commentaires

Cet exemple n’est certes pas parfait car le numéro d’appelant (1000) est codé en dur dans le programme mais nous pouvons imaginer quelques améliorations possibles du code click­to­dial.php couplé avec un annuaire LDAP. Cela permettrait par exemple de fournir, sur une page Web, l’ensemble des utilisateurs d’une société, d’effectuer un login utilisateur (numéro d’appelant) avec enregistrement dans un cookie pour éviter de refaire cette manipulation à longueur de journée, puis de lancer le click­to­dial vers l’appelé sélectionné.

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyhxJ7BmBPzYgLAA==-enidentnumber

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

Introduction

Un centre d’appel (call­center en anglais) permet d’apporter une assistance aux utilisateurs. Il se matérialise par différents éléments :

une plate­forme matérielle et logicielle permettant de traiter en masse les appels entrants de la part des clients ;

un ou des numéros d’appel de type 08X (souvent payant pour le client et rémunérateur pour le titulaire de ces numéros) ;

plusieurs hotliners, équipés de micro casques et utilisant une ou des applications de type CTI ;

des outils de monitoring des appels entrants, à des fins de statistiques et d’amélioration de la qualité du service client.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKsefDWBPzYgLAA==-enidentnumber

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

Les besoins fonctionnels

Avant tout, il est très important de savoir comment les appels entrants seront traités :

Lors de l’appel, le client expose son problème et la personne qui a pris l’appel est celle qui va traiter son problème directement ; cette méthode a l’avantage que la résolution de la demande peut s’effectuer rapidement mais a l’inconvénient que c’est au client de supporter le coût de la communication. Dans ce cas, aucun système de filtrage n’est prévu en amont par un standard. Ce cas est généralement utilisé par les hotlines à destination du grand public (FAI, opérateurs de mobilité...).

Lors de l’appel, le client expose son problème qui est saisi en base et référencé par un numéro de ticket. Le hotliner qui prend l’appel n’est pas à même de répondre "techniquement" à l’appel et il se contente de dire qu’un autre interlocuteur va rappeler très rapidement. Ce cas est plutôt réservé pour les entreprises qui, bien souvent, financent le SAV en prenant les services associés.

Mais au­delà de l’aspect technique, un projet de call­center est avant tout un projet organisationnel :

Combien de personnes faut­il dans le call­center ?

Comment sont gérés les pics d’activités ?

Est­ce que toutes les personnes sont physiquement au même endroit ?

Est­ce que tous les appels arrivent au même endroit ?

Faut­il mettre en place des numéros spécialisés (commercial, technique, information...) ?

Est­ce qu’il faut assurer une présence de service 24/24 ou uniquement en jours ouvrés ?

Faut­il mettre en place un serveur vocal interactif en amont ?

Comment sera mesurée la satisfaction client ?

Dans ce chapitre, nous allons voir deux types d’utilisation d’un call­center :

Call­center mono­site et mono numéro d’appel ;

Call­center virtuel, réparti géographiquement en France et multi numéros d’appels. Nous employons le terme de virtuel, en référence au fait que peu importe où arrive l’appel client et peu importe qui le traite, il sera toujours pris en compte dans le système.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyG+ftE2BPzYgLAA==-enidentnumber

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

Organisations possibles

1. Premier cas : call center local

Asterisk dispose d’une fonctionnalité permettant de mettre en œuvre un call center : ce mécanisme s’appelle les files d’attente (queues en anglais). Dans cet exemple, un seul numéro sera communiqué au client et il faudra donc que les appels arrivent sur un standard composé par exemple de trois téléphones SIP et donc de trois standardistes dont le rôle sera de saisir l’appel de façon informatique puis de transférer l’appel à une personne ressource.

Exemple d’un call center local

Dans cet exemple, le numéro unique doit être redirigé vers un numéro de file d’attente interne (809 par exemple). Les trois standardistes vont se connecter à la file d’attente 809 en utilisant un numéro d’entrée dans la file (806 par exemple). Ensuite, deux paramètres sont importants pour la file 809 : la stratégie de réception des appels (les trois postes sonnent en même temps, à la suite, de façon aléatoire...) et le nombre de sonnerie. Lorsqu’une standardiste souhaite sortir de la file, elle va composer un autre numéro (le 807).

La mise en œuvre concrète est vue plus loin dans ce chapitre.

2. Deuxième cas : call­center virtuel

Dans certaines entreprises, le centre d’appel peut être tenu par des personnes se trouvant sur des sites géographiques différents et ne travaillant pas forcément toutes en même temps. Cependant, le service doit toujours être disponible pour les clients.

Dans l’exemple qui suit, l’architecture est basée sur un centre d’appel avec deux serveurs Asterisk répartis sur deux sites différents. Trois files d’attente sont définies, une par numéro d’appel entrant.

Dans chaque file, plusieurs agents s’enregistrent tous les matins ; certains agents sont un jour dans une file, un jour

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyai8kGmBPzYgLAA==-enidentnumber

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

dans une autre. Le gestionnaire du centre d’appel peut décider certains jours de faire entrer des agents d’un site et d’autres jours des agents d’autres sites. Enfin, un agent peut faire partie de plusieurs files d’attente.

Cette architecture s’appuie sur un réseau Télécom performant, redondant et sécurisé.

Cette organisation, totalement flexible et redondée, ne dépend ni d’aléas géographiques, ni d’aléas liés aux ressources humaines, sous réserve que les compétences fonctionnelles soient présentes chez les agents.

En outre, le client ne sait pas forcément où est traité son appel.

Exemple d’un call­center virtuel

3. Cas d’un « one number » avec centralisation de 2 centres d’appels disjoints

Qu’est­ce qu’un one number ? C’est tout simplement un numéro unique pour les appels entrants, numéro qui sera communiqué aux clients et qui, souvent, est représenté par un numéro de type 0820 XX XX XX.

Ce one number est routé vers un numéro noir (un numéro géographique) qui est routé directement sur une plate­forme d’accueil Asterisk. Toutes les standardistes (les agents au sens Asterisk), de France ou d’autres pays, sont connectés via une file d’attente sur ce serveur, il suffit d’un lien IP de bonne qualité (un VPN MPLS par exemple).

Ensuite, le serveur centralisé distribue les appels vers les serveurs Asterisk de chaque centre d’appels. Les hotliners utilisent alors ces derniers, de façon transparente, pour effectuer les appels sortants.

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyai8kGmBPzYgLAA==-enidentnumber

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

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyai8kGmBPzYgLAA==-enidentnumber

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

La gestion des files d’attente

1. Distribution simple d’appels à des postes enregistrés

a. Généralités

L’utilisateur peut utiliser n’importe quel poste mais il doit faire en sorte que le poste s’enregistre dans la file d’attente. Les appels entrants sont alors routés vers le poste.

Dans notre exemple, la file d’attente dispose du numéro 809. Pour qu’un utilisateur entre dans cette file, il lui faut composer le 806 et pour en sortir le 807. La stratégie adoptée est de faire sonner tous les postes correspondants aux utilisateurs enregistrés dans la file, mais les uns après les autres (stratégie round robin).

Récapitulatif :

809 : numéro de la file d’attente.

806 : numéro à composer pour entrer dans la file d’attente 809.

807 : numéro à composer pour sortir de la file d’attente 809.

b. Fichiers de configuration

Les queues sont définies dans le fichier /etc/asterisk/queues.conf et sont gérées dans le plan de numérotation :

/etc/astererisk/queues.conf

[general] persistentmembers = yes [hotline-sav] ; taille de la file = nombre maximum d’agent dans la file maxlen = 15 ; lorsque la file est vide d’agent joinempty = yes leavewhenempty = no ; stratégie de sonnerie strategy = roundrobin ;durée de la sonnerie lorsque l’appel est présenté à l’agent timeout = 10 retry = 15 ; délai accordé à l’agent avant un nouvel appel wrapuptime=30 musiconhold = support ;announce = default ; indique le délai d’attente de l’appelant reportholdtime = yes ; informations données à l’appelant : toutes les 30 secondes, on lui annonce sa place dans la file announce-frequency = 30 ;estimation du temps d’attente à 15 secondes près announce-holdtime = yes announce-frequency=15

/etc/asterisk/extensions.conf

exten => 806,1,AddQueueMember(hotline-sav) exten => 806,2,Playback(agent-loginok) exten => 806,3,Hangup()

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyszBaI2BPzYgLAA==-enidentnumber

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

exten => 807,1,RemoveQueueMember(hotline-sav) exten => 807,2,Playback(agent-loggedoff) exten => 807,3,Hangup() exten => 809,1,Goto(queue-hotline,s,1) [queue-hotline] exten => s,1,Answer() ; la file d’attente s’appelle hotline-sav exten => s,2,Queue(hotline-sav) exten => s,102,PlayBack(hello-world)

c. Stratégie de distribution des appels entrants

Il existe six stratégies possibles :

ringall : fait sonner tous les téléphones disponibles jusqu’à ce que l’un réponde (cas pour un centre traitant des urgences) ;

roundrobin : fait sonner les téléphones de façon tournante ;

leastrecent : fait sonner le téléphone qui a été le moins récemment appelé (le plus longtemps libre) ;

fewestcalls : fait sonner le téléphone qui a pris le moins d’appels ;

random : fait sonner les téléphones de façon aléatoire ;

rrmemory : round robin avec mémoire ;

2. Gestion par agents

a. Généralités

Un agent doit pouvoir entrer dans des files d’attente (et en sortir) avec un mécanisme d’authentification depuis n’importe quel téléphone.

Dans la mesure où un agent n’est pas relié à un téléphone, il faut donc définir deux types de numérotation : une pour les téléphones (de 700 à 750) et une pour les agents (de 900 à 950).

En effet, un agent peut être utilisateur d’un poste à un instant t et le lendemain utiliser un autre poste.

Un téléphone est donc défini dans les fichiers sip.conf et extensions.conf :

exten => 717, 1, Dial(SIP/717)

b. Fichiers de configuration

La configuration des agents est effectuée dans le fichier /etc/asterisk/agents.conf dont la syntaxe est la suivante :

agent => numéro_agent, password_agent, nom

/etc/asterisk/agents.conf

[general] persistentagents = yes [agents] agent => 912, 3678, nathalie agent => 913, 8976, anne-sophie

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyszBaI2BPzYgLAA==-enidentnumber

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

agent => 914, 3289, fred agent => 915, 1298, audrey

c. Les deux types d’agents

Il existe deux types d’agents : l’agent décroché et l’agent en rappel.

Lorsque l’agent s’est enregistré dans la file d’attente, sa ligne est décrochée et il peut recevoir de la musique d’attente. Un bip l’informe qu’un appel arrive sur sa ligne ; il peut alors le prendre en pressant sur #. À la fin de l’appel, il revient dans l’état décroché en pressant à nouveau sur #.

Cette technique est adaptée pour les agents disposant de micro­casques et devant traiter beaucoup d’appels. Lorsque la ligne est raccrochée, l’agent n’est plus dans la file d’attente.

C’est la fonction AgentLogin() qui permet de faire rentrer un opérateur sur le système des files d’attente.

Exemple d’agent décroché

L’agent 912 entre dans le système des files d’attente en composant le 555 ; il dispose du statut d’opérateur de files. Lorsqu’un appel arrive sur la file 515, un bip va alors être émis sur la ligne de l’agent 912.

queues.conf

[queue-agent-decroche]

member => Agent/912

member => Agent/913

extensions.conf

exten => 555, 1, AgentLogin(912)

exten => 515, 1, Queue(queue-agent-decroche)

Cette méthode est plus traditionnelle puisque le téléphone reste libre. L’agent fait simplement partie de la file d’attente et lorsque le poste sonne, il décroche et prend l’appel. Mais lorsqu’il raccroche son téléphone, l’agent fait toujours partie de la file d’attente.

C’est la fonction AgentCallbackLogin() qui permet de faire entrer un opérateur sur le système des files d’attente.

Exemple d’agent en rappel

L’agent 914 va se référencer dans la file d’attente des appels, sans l’émission d’un bip sonore (option s). Lors d’un appel pour l’agent 914, c’est le poste SIP/717 qui va sonner.

queues.conf

[queue-agent-en-rappel]

member => Agent/914

member => Agent/915

extensions.conf

exten => 555, 1, AgentCallbackLogin(914,s,SIP/717)

exten => 515, 1, Queue(queue-agent-en-rappel)

3. Autres fonctions des queues

AddQueueMember()

Permet d’ajouter un membre à une file d’attente.

exten => 515, 1, AddQueueMember(queue-test, SIP/717, 1)

Lorsque l’on appelle l’extension 515, le poste SIP/717 est placé dans la file d’attente queue­test avec une pénalité de 1. La pénalité permet d’indiquer au système quel est le membre à appeler avant un autre ; plus la pénalité est faible,

Agent décroché

Agent en rappel

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyszBaI2BPzYgLAA==-enidentnumber

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

plus le membre sera appelé vite.

PauseQueueMember()

Permet temporairement à un membre de ne pas recevoir d’appel.

exten => 515, 1, PauseQueueMember(queue-test, SIP/717)

Le téléphone SIP/717 sort temporairement de la queue queue­test.

UnpauseQueueMember()

Inverse de PauseQueueMember()

exten => 516, 1, UnpauseQueueMember(queue-test, SIP/717)

Le téléphone SIP/717 est remis dans la queue queue­test.

RemoveQueueMember()

Permet à un membre d’être supprimé d’une file d’attente

exten => 514, 1, RemoveQueueMember(queue-test, SIP/717)

Le téléphone SIP/717 est supprimé de la queue queue­test.

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyszBaI2BPzYgLAA==-enidentnumber

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

Les outils de monitoring

Il existe plusieurs outils permettant de monitorer les files d’attente et ainsi d’établir des statistiques.

1. Utilisation de la CLI

CLI > show queue hotline-sav

2. QueueMetrics ­ http://queuemetrics.com/

QueueMetrics est un analyseur de logs de file d’attente qui fonctionne en temps réel et permet entre autres de fournir des informations essentielles comme le nombre d’appels pris, le nombre d’appels perdus, les agents en ligne, le nombre d’appels dans les files...

Ce produit commercial nécessite l’acquisition de licence et le mode de tarification est lié au nombre d’agents par serveur. Jusqu’à deux agents, le produit est libre d’utilisation.

La dernière version de l’outil QueueMetrics 1.6.0.1 date de mars 2010.

a. Installation

QueueMetrics est une application Java et nécessite l’installation d’un serveur de type Apache Tomcat ou Jetty.

Sur une distribution à base de RPM Linux, l’installation peut se faire de façon automatique :

# wget -P /etc/yum.repos.d http://yum.loway.ch/loway.repo # yum install queuemetrics # cd /usr/local/queuemetrics/webapps/queuemetrics-1.6.0.1/WEB-INF/README # ./installDb.sh (Ce script permet de créer la base MySQL QueueMetrics et ses 10 tables) L’accès à l’application se fait via l’url http://localmachine:8080/queuemetrics Pour un accès en visualisation, saisir le login demouser et le mot de passe demo Pour un accès en administration, saisir le login demoadmin et le mot de passe demo (à changer par la suite)

Téléchargement

# cd /usr/src/ # wget http://queuemetrics.com/download/QueueMetrics-1.6.0.1-trial.tar.gz # wget http://mirrors.uol.com.br/pub/mysql/Downloads/Connector- J/mysql-connector-java-5.0.5.tar.gz

Configuration des dépôts Debian

# vi etc/apt/sources.list Ajouter les lignes suivantes : deb http://ftp.hk.debian.org/debian/ lenny main contrib non-free deb-src http://ftp.hk.debian.org/debian/ lenny main contrib non-free # apt-get update

Installation de Java

# apt-get install sun-java5-jdk

Installation sur CentOS

Installation sur Debian

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy0TUzLGBPzYgLAA==-enidentnumber

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

# update-alternatives --config java Il n’y a qu’un programme fournissant java (/usr/lib/jvm/java-1.5.0- sun/jre/bin/java). # update-alternatives --config javac Il n’y a qu’un programme fournissant javac (/usr/lib/jvm/java-1.5.0- sun/bin/javac). # export JAVA_HOME="/usr/lib/jvm/java-1.5.0-sun" When you run: # java -version java version "1.5.0_17" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_17-b04) Java HotSpot(TM) Client VM (build 1.5.0_17-b04, mixed mode, sharing)

Installation de Tomcat

# apt-get install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps # vi /etc/ init.d/tomcat5.5 Modifier la ligne : TOMCAT5_SECURITY=yes par no

Configuration de la base MySQL et création de la base de données Queuemetrics

Mysql> CREATE DATABASE queuemetrics; Query OK, 1 row affected (0.00 sec) Ajout utilisateur queuemetrics avec droits d’accès Mysql> GRANT ALL PRIVILEGES ON queuemetrics.* TO ’queuemetrics’@ ’localhost’ IDENTIFIED BY ’javadude’; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) Mysql> quit

Installation de Queuemetrics

# cd /var/lib/tomcat5.5/webapps # tar -xvzf /usr/src/QueueMetrics-1.6.0.1-trial.tar.gz # mv queuemetrics-1.6.0.1 queuemetrics

Installation du connecteur java MySQL

# cd /usr/src/ # tar xvzf /download/mysql-connector-java-5.0.0.tar.gz # cp /usr/src/mysql-connector-java-5.0.5/mysql-connector-java-5.0.5- bin.jar /var/lib/tomcat5.5/webapps/queuemetrics/WEB-INF/lib/

À l’issue de l’installation, il est conseillé de redémarrer le serveur par la commande suivante :

# init 6

L’accès au produit s’effectue à partir d’un navigateur, accéder à l’url :

http//localhost:8180/queuemetrics

Les identifiants par défaut sont :

Login : demoadmin.

Password : demo.

Lors de la première utilisation, il est possible de récupérer les informations sur la configuration du serveur Asterisk, en sélectionnant « Setup Wizard » de la rubrique « Edit QueueMetrics settings ». Il sera ainsi possible de récupérer les informations des fichiers suivants :

/etc/asterisk/agents.conf ;

/etc/asterisk/queues.conf ;

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy0TUzLGBPzYgLAA==-enidentnumber

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

/etc/asterisk/users.conf.

b. Contenu fonctionnel

L’outil dispose de plus de 150 informations quantitatives (totaux, moyenne, pourcentage…) portant essentiellement sur les points suivants :

Appels totaux ;

Appels répondus ;

Appels perdus ;

Distribution des appels ;

Agents ;

Détail des appels ;

Détails des appels perdus ;

Analyse du call­center en temps réel.

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy0TUzLGBPzYgLAA==-enidentnumber

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

Exemple : interface QueueMetrics

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy0TUzLGBPzYgLAA==-enidentnumber

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

Exemple : Analyse des appels répondus

Exermple d’appels non répondus et causes de déconnexion

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy0TUzLGBPzYgLAA==-enidentnumber

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

3. Autres outils de monitoring Open Source

a. QUEUE­TIP

Queue­Tip est également un outil de monitoring et de reporting des files d’attente présentes sur un serveur Asterisk. Il nécessite les paquets Ruby on Rails pour fonctionner.

Référence : http://queue­tip.rubyforge.org/

b. OrderlyStats

Le produit est un logiciel de statistiques pour centre d’appels ; il est même utilisé par Digium pour monitorer l’activité de son propre call­center. Il est décliné en deux modes : l’édition « server edition » que nous pouvons installer en local sur notre propre serveur Asterisk ou alors l’édition « mode managé » dans lequel le produit est accessible via Internet.

Référence : http://www.orderlyq.com/asteriskcallcenterstatistics.html

c. Flash Operator Panel (FOP)

FOP est le panneau d’affichage temps réel permettant de disposer, en mode web, de l’état de l’ensemble des communications en cours sur le système :

Les extensions (poste téléphonique ou softphone) utilisées

Les conférences en cours

Les Queues monopolisées

Les lignes externes occupées

Il est également possible d’intervenir sur les communications en cours, notamment de raccrocher un canal, de transférer un appel via un drag&drop, effectuer un click­to­dial depuis une page web, agir sur les participants d’une conférence.

FOP fonctionne en mode Client/Server. Le client Flash se connecte au serveur FOP (op_server.pl) via le port TCP 4445. Le serveur FOP se connecte à l’Asterisk Manager sur le port TCP 5038, permettant ainsi au

serveur FOP de jouer un rôle de proxy entre le client FOP et le serveur Asterisk.

Référence : http://www.asternic.org

- 6 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy0TUzLGBPzYgLAA==-enidentnumber

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

Attention à bien respecter la législation française avant d’installer ce type d’outil qui permet de rendre visible certaines informations confidentielles.

Au préalable, FOP nécessite de disposer du module Perl sur le serveur Asterisk sur lequel il sera installé.

TELECHARGEMENT # cd /usr/src/ # wget http://www.asternic.org/files/op_panel-0.30.tar.gz # tar zxvf op_panel-0.30.tar.gz CREATION DIRECTORY D’ACCES WEB # mkdir /var/www/htm/panel/ COPIE DES SOURCES HTTP # cp -r /usr/src/op_panel-0.30/flash/ /var/www/html/panel/ CREATION DIRECTORY DE CONFIGURATION # mkdir /etc/op-panel # cp /usr/src/op_panel /*.cfg /etc/op-panel/ COPIE FICHIER EXECUTABLE # cp op_server.pl /usr/sbin # cp init/op_panel_debian.sh /etc/init.d/op-panel update-rc.d op-panel defaults update-rc.d: warning: /etc/init.d/op-panel missing LSB information update-rc.d: see <http://wiki.debian.org/LSBInitScripts> Adding system startup for /etc/init.d/op-panel ... /etc/rc0.d/K20op-panel -> ../init.d/op-panel /etc/rc1.d/K20op-panel -> ../init.d/op-panel /etc/rc6.d/K20op-panel -> ../init.d/op-panel /etc/rc2.d/S20op-panel -> ../init.d/op-panel /etc/rc3.d/S20op-panel -> ../init.d/op-panel /etc/rc4.d/S20op-panel -> ../init.d/op-panel /etc/rc5.d/S20op-panel -> ../init.d/op-panel CREATION DIRECTORY DE LOGS # mkdir /var/log/op-panel

Installation de FOP sur Debian

- 7 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy0TUzLGBPzYgLAA==-enidentnumber

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

EDITION DU FICHIER DE DEMARRAGE # vi /etc/init.d/op-panel Modification emplacement fichier executable DAEMON=/usr/sbin/op_server.pl Modification emplacements fichiers de configurations et logs OPTIONS="-d -p $PIDFILE -c /etc/op-panel -l /var/log/op-panel"

Asterisk Manager

Afin de pouvoir utiliser Flash Operator Panel, il est nécessaire d’ajouter un nouvel utilisateur dans Asterisk Manager.

# vi /etc/asterisk/manager.conf Ajouter les éléments suivants en fin de fichier [oppanel] secret =motdepasse deny=0.0.0.0/0.0.0.0 permit=127.0.0.1/255.0.0.0 read = system,call,log,verbose,command,agent,user write = system,call,log,verbose,command,agent,user

L’ajout de cet utilisateur nécessite le redémarrage du service Asterisk.

# /etc/init.d/asterisk restart

La configuration de Flash Operator Panel s’appuie sur plusieurs fichiers :

Op_server.cfg : fichier de configuration générale du serveur FOP.

Op_style.cfg : fichier de configuration du style de page affichée.

Op_buttons.cfg : configuration des postes (comptes SIP, Queues…) Asterisk.

Fichier op_server.cfg

# vi /etc/op-panel/op_server.cfg Modifier les paramètres suivants :

manager_host=127.0.0.1

manager_user=oppanel (au lieu de user)

manager_secret=motdepasse (renseigner le mot de passe défini dans

le fichier /etc/asterisk/manager.conf)

flash_dir=/var/www/html/panel

poll_interval=60 (au lieu de 12000 - valeur exprimé en secondes)

;parkexten=700 (paramètre à commenter en ajoutant un ; en début de ligne) ;parktimeout=30 (paramètre à commenter en ajoutant un ; en début de ligne) language=fr (au lieu de en)

Fichier op_style.cfg

Le fichier op_style.cfg va nous permettre de personnaliser la page visible par les utilisateurs :

Taille des boutons ;

Taille des icônes.

# vi etc/op-panel/op_style.cfg Définition des paramètres pour les boutons

Configuration de FOP

Les fichiers de configuration

- 8 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy0TUzLGBPzYgLAA==-enidentnumber

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

btn_width=105 (au lieu de 246) btn_height=35 (au lieu de 70) btn_padding=2 (au lieu de 4) btn_line_width=1 (au lieu de 2) label_font_size=10 (au lieu de 20) label_margin_top=10 (au lieu de 20) label_margin_left=19 (au lieu de 38) clid_font_color=ff0000 (au lieu de 00dd00) clid_font_size=9 (au lieu de 13) clid_margin_top=1 (au lieu de 0) clid_margin_left=3 (au lieu de 25) timer_font_size=9 (au lieu de 13) timer_margin_top=24 (au lieu de 48) timer_margin_left=3 (au lieu de 6) led_scale=45 (au lieu de 90) led_margin_top=17 (au lieu de 34) led_margin_left=10 (au lieu de 20) arrow_margin_top=24 (au lieu de 10) arrow_margin_left=95 (au lieu de 15) Définition de la taille des icônes icon1_margin_top=22 (au lieu de 43) icon1_margin_left=-17 (au lieu de 34) icon1_scale=8 (au lieu de 17) icon2_margin_top=23 (au lieu de 46) icon2_margin_left=-14 (au lieu de 29) icon2_scale=7 (au lieu de 14) icon3_margin_top=17 (au lieu de 34) icon3_margin_left=-18 (au lieu de 36) icon3_scale=10 (au lieu de 20) icon4_margin_top=16 (au lieu de 33) icon4_margin_left=-17 (au lieu de 34) icon4_scale=8 (au lieu de 16) icon5_margin_top=16 (au lieu de 32) icon5_margin_left=-16 (au lieu de 33) icon5_scale=8 (au lieu de 16) icon6_margin_top=16 (au lieu de 32) icon6_margin_left=-16 (au lieu de 33) icon6_scale=8 (au lieu de 16) Définition de la barre de statuts show_clid_info=6 (au lieu de 0) show_status=0 (au lieu de 4)

Fichier op_buttons.cfg

Le fichier op_buttons.cfg va nous permettre de définir les éléments suivants :

Boutons (Postes Utilisateurs, Postes Opérateurs de standard, Queues) ;

Titres ;

Arrière­Plans.

Concernant la position des boutons, la page est divisée en x lignes et y colonnes (dépendant de la définition de la taille des boutons).

- 9 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy0TUzLGBPzYgLAA==-enidentnumber

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

La page de FOP peut être schématisée par le tableau suivant :

La gestion de la page FOP peut être définie de la manière suivante :

Définition d’un bouton

[SIP/198765] Position=25 (Position du bouton sur l’écran) Label="Poste Compta" (nom affiché sur le bouton) Extension=198765 Privacy=true (La valeur true signifie que le numéro appelé/appelant ne sera pas affiché) Context=default

Définition du bouton « Queue »

[QUEUE/198000] Position=122 Label="Queue Technique" Extension=-1

Définition de la Zone de Titres

[LEGEND] x=300 y=40 text= IPBX AGENCE font_size=22 font_color=000000 font_family=Arial use_embed_fonts=1

Définitions de l’Arrière­Plan

[rectangle] x=-1 y=35 width=860 height=555 line_width=3 #line_color=1010ff #fade_color1=10ff10 #fade_color2=10ff00 rnd_border=2 alpha=10 layer=top

Démarrage de FOP

N° 1 N° 7 N° 13 N° 19 N° 25 N° 31 N° 37 N° 43 N° 49 N° 55

N° 2 N° 8 N° 14 N° 20 N° 26 N° 32 N° 38 N° 44 N° 50 N° 56

N° 3 N° 9 N° 15 N° 21 N° 27 N° 33 N° 39 N° 45 N° 51 N° 57

N° 4 N° 10 N° 16 N° 22 N° 28 N° 34 N° 40 N° 46 N° 52 N° 58

N° 5 N° 11 N° 17 N° 23 N° 29 N° 35 N° 41 N° 47 N° 53 N° 59

N° 6 N° 12 N° 18 N° 24 N° 30 N° 36 N° 42 N° 48 N° 54 N° 60

Zone de Titre

Zone réservée Postes utilisateurs Zone réservée

Postes Standard

Zone réservée

Queue(s)

- 10 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy0TUzLGBPzYgLAA==-enidentnumber

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

# chmod +x /usr/bin/op_server.pl # ./op_server.pl

- 11 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy0TUzLGBPzYgLAA==-enidentnumber

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

Outils périphériques tiers

Nous avons vu, au cours des chapitres précédents, tout un ensemble de fonctionnalités du serveur Asterisk tout à fait satisfaisantes pour bien démarrer un site en production. Nous allons aborder dans ce chapitre deux technologies permettant de faire de réelles économies : l’évasion des flux de type GSM avec une passerelle de type Quescom (il en existe beaucoup d’autres) et la gestion des fax avec le serveur Hylafax.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyINvLNGBPzYgLAA==-enidentnumber

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

Passerelle GSM Quescom

1. Généralités

Quescom (http://www.quescom.com) est un fabricant de passerelles GSM/VoIP/FAX.

Autrement dit, le boîtier possède, d’un côté, une connexion LAN RJ45 de base et, de l’autre, des connecteurs GSM permettant de placer des puces SIM opérateur.

Tout l’intérêt de la maquette est de concentrer les flux téléphoniques (en provenance du réseau interne) vers les mobiles, via cette passerelle et non via l’accès T2 classique.

Mais pourquoi donc ? Essentiellement pour quatre raisons :

Les coûts des communications des cartes SIM sont moindres puisque les communications se résument alors être des communications de mobiles vers mobiles ; alors que dans le cas classique, il s’agit de communications fixes vers mobiles. Et il n’est pas rare de pouvoir prétendre économiser 50% sur les communications vers mobiles.

La gestion centralisée des appels vers les mobiles avec journal des appels passés.

La mise en œuvre d’un véritable trunk GSM permettant de délester le serveur Asterisk du traitement des appels vers mobiles.

La simplicité de mise en œuvre et d’utilisation.

Quescom propose plusieurs produits dont ceux­ci :

Quescom 312, 4 accès GSM.

Quescom 412, 8 accès GSM.

Quescom 412 12 accès GSM.

À titre d’information, les prix de ces passerelles varient entre 4 ke et 12 ke, prix publics.

Au préalable de tout achat de ce type de passerelle, il faut effectuer une analyse fine des factures télécom et tenter de produire un ROI.

2. Interfaces Quescom

Ci­dessous, nous proposons une copie des principaux écrans utilisés pour la gestion des appels GSM entre un serveur Asterisk et une passerelle Quescom 4 SIM :

Accueil principal.

Création du serveur d’appels externe (Asterisk).

Paramétrage du serveur Asterisk et lien avec le dialplan.

Lien entre la Quescom et les ports de communication.

Création des services Quescom / Asterisk et Asterisk/ Quescom.

Paramétrage du service Voix su IP.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyXTfaPGBPzYgLAA==-enidentnumber

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

État du parc de SIM.

Paramétrage du profil de VoIP.

L’accès se fait via une interface web http://IP_passerelle:8000

Une extension SIP est nécessaire pour faire le lien entre Asterisk et la passerelle.

Accueil principal

Création du serveur d’appels externe (Asterisk)

Paramétrage du serveur Asterisk et lien avec le dialplan

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyXTfaPGBPzYgLAA==-enidentnumber

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

Lien entre la Quescom et les ports de communication

Création des services Quescom / Asterisk et Asterisk/ Quescom

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyXTfaPGBPzYgLAA==-enidentnumber

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

Paramétrage du service Voix sur IP

État du parc de SIM

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyXTfaPGBPzYgLAA==-enidentnumber

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

La passerelle Quescom est relativement simple à configurer à condition de bien comprendre les concepts ; tout se fait en mode Web (cas le plus simple).

Il est possible que les appels sortants GSM ne fonctionnent pas la première fois en raison d’une non reconnaissance ou d’un dysfonctionnement de la SIM. Il faut alors parfois sortir les SIM de leurs slots et

effectuer une permutation.

La passerelle est équipée en standard d’une antenne GSM (un câble d’une longue courte). En fonction de l’emplacement de la salle machine, il peut être opportun d’installer un câble d’antenne d’une longueur plus

importante (20 mètres) afin d’obtenir un bon signal GSM.

3. Dialogue entre la passerelle Quescom et le serveur Asterisk

Il est nécessaire que la passerelle puisse s’enregistrer en tant que client SIP auprès du serveur Asterisk ; cela se fait via une extension (la 150099 dans notre exemple) à créer dans le fichier sip.conf ou dans la base de données MySQL le cas échéant.

Configuration du plan de numérotation Asterisk

Supposons que les appels vers les mobiles soient gérés dans le contexte GSM et que la passerelle Quescom ait pour adresse IP 192.168.1.253.

[GSM] exten => _00[6-7]XXXXXXXX,1,Answer() exten => _00[6-7]XXXXXXXX,n,Macro(appel_gsm,$EXTEN) exten => _00[6-7]XXXXXXXX,n,Macro(appel_sortant,$EXTEN)

Paramétrage du profil de VoIP

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyXTfaPGBPzYgLAA==-enidentnumber

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

exten => _00[6-7]XXXXXXXX,n,Hangup() [macro-appel_gsm] exten => s,1,Answer() exten => s,n,Dial(SIP/192.168.1.253/$MACRO_EXTEN,,of) exten => s,n,Goto(s-$DIALSTATUS,1) exten => s-BUSY,1,hangup() exten => s-CHANUNAVAIL,1,MacroExit() exten => s-CONGESTION,1,MacroExit() exten => s-NOANSWER,1,hangup() exten => s-ANSWER,1,hangup() exten => s-CANCEL,1,hangup()

Les opérateurs ne sont pas favorables à l’utilisation d’une telle passerelle car cela constitue une perte non négligeable de leur trafic mobile. Ils vont souvent proposer une alternative afin de conserver le trafic fixe vers

mobiles sur les liens classiques T2, en proposant une tarification avantageuse. Le fait d’expliquer à son opérateur mobile la volonté d’installer une passerelle va permettre au moins d’entamer des négociations tarifaires forcément intéressantes.

- 6 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyXTfaPGBPzYgLAA==-enidentnumber

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

Visual Dialplan

Même si nous préférons de loin créer manuellement le plan de numérotation du serveur Asterisk, il existe des outils graphiques permettant de créer, de valider et de déployer un dialplan. Parmi ceux­là, nous pouvons citer le produit Visual Dialpan de la société Apstel (http://www.apstel.com).

Visual Dialplan existe en deux versions :

Standard (prix de 69,99 $) permettant de couvrir les fonctions classiques d’Asterisk (dialplan, dialout, IVR, voicemail, meetme, moh, voice recording…).

Professionnelle (prix de 149,99 $) permettant une intégration avec des logiciels tiers, la gestion des files d’attente, la gestion de la facturation…

Lors de l’installation, il est possible de connecter l’outil Visual Dialplan avec un serveur Asterisk :

Mais il n’est pas possible de récupérer un dialplan existant à partir du serveur. Donc, attention à bien veiller à effectuer des sauvegardes au préalable.

Visual Dialplan permet de « maquetter » un plan de numérotation, de le tester et de le déployer sur le serveur cible.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyVuS4RGBPzYgLAA==-enidentnumber

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

Exemple de création du context Incoming

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyVuS4RGBPzYgLAA==-enidentnumber

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

Extensions.conf après déploiement

# more extensions.conf ; Generated by Visual Dialplan Standard. ; Creation date: 2010-06-26 17:04:11.665 ; Created from: C:\Program Files\Apstel\Visual Dialplan Standard\samples\Plain A sterisk\02_simple_dialplan.vdp [general] static=yes writeprotect=no priorityjumping=no autofallthrough=yes clearglobalvars=no [globals] [incoming] exten => s,1,Answer() exten => s,n(lbl_incoming_0),Background(enter-ext-of-person) exten => s,n,WaitExten(10) exten => s,n,Hangup() exten => i,1,Playback(pbx-invalid) exten => i,n,Goto(s,lbl_incoming_0) exten => t,1,Playback(pbx-goodbye) exten => t,n,Hangup() exten => 100,1,Dial(SIP/john,10) exten => 100,n,GotoIf($["$DIALSTATUS" = "CHANUNAVAIL"]?lbl_incoming_1:) exten => 100,n,GotoIf($["$DIALSTATUS" = "NOANSWER"]?lbl_incoming_1:) exten => 100,n,GotoIf($["$DIALSTATUS" = "BUSY"]?lbl_incoming_2:) exten => 100,n(lbl_incoming_1),VoiceMail(john,su) exten => 100,n(lbl_incoming_3),Hangup() exten => 100,n(lbl_incoming_2),VoiceMail(john,sb) exten => 100,n,Goto(lbl_incoming_3)

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyVuS4RGBPzYgLAA==-enidentnumber

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

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyVuS4RGBPzYgLAA==-enidentnumber

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

Fax avec Hylafax

1. Généralités

Hylafax (http://www.hylafax.org) est une solution libre en mode client/serveur permettant d’envoyer et de recevoir des fax via un réseau IP. Le point fort d’Hylafax, par rapport à des solutions propriétaires qui s’appuient sur des cartes modems physiques, est la gestion de modems virtuels sur le serveur de fax. Tout utilisateur IP peut donc envoyer des fax au serveur Hylafax qui les route vers les destinataires grâce à ces modems virtuels. Adieu donc les batteries de modems physiques ! Egalement, tout utilisateur peut recevoir des fax à l’aide de ce système (cette gestion étant plus délicate en raison du routage fax / sda / mails).

Nous parlons de trois fonctionnalités essentielles :

Mail to fax : envoi de fax à partir d’un email

L’utilisateur envoie un fax à partir de son client de messagerie, en précisant le destinataire du fax sous la forme <user>@<fax_number>.fax. Le corps du message et les pièces jointes éventuelles seront acheminés en fax au destinataire. Les formats des pièces jointes sont des .pdf, .tiff ou .postcript.

Print to fax : envoi d’un fax vers une imprimante virtuelle

Les faxs à destination d’un utilisateur distant sont envoyés via un client d’envoi de fax installé en local sur un PC. Les documents (tout format) sont imprimés directement vers une imprimante virtuelle de fax connectée au serveur Hylafax (l’adresse IP de ce serveur est demandée lors de la configuration de l’outil). Il est demandé dans ce cas explicitement le numéro du fax du destinataire lors de l’impression. Nous préconisons l’utilisation de Winprint Hylafax 1.0.

Source : http://winprinthylafax.sourceforge.net/

Fax to mail : réception de fax dans un email

Tous les fax entrants arrivent, par défaut, à un utilisateur nommé faxmaster mais en fonction de la configuration, il est tout à fait possible de router les fax vers un autre utilisateur.

Hylafax peut permettre d’éviter d’acheter des machines de fax physiques.

2. Installation du serveur Hylafax sous Debian

La mise en œuvre d’un fax sur IP repose sur la nécessité de disposer de modems virtuels et non de modems physiques. Il faut donc utiliser une application spécifique appelée T38modem qui fournit une interface entre des modems virtuels et une application de VoIP. T38modem nécessite de disposer de deux bibliothèques : pwlib et openh323.

Nous proposons une installation via l’utilitaire CVS (Concurrent Version System).

# apt-get install cvs # cd ~ # cvs -d:pserver:[email protected]:/cvsroot/t38modem login Logging in to :pserver:[email protected]:2401/ cvsroot/t38modem CVS password: (appuyer sur Enter) # cvs -z3 -d:pserver:[email protected]:/cvsroot/ t38modem co -P -r RELEASED t38modem # cvs -z3 -d:pserver:[email protected]:/cvsroot/ openh323 co -P openh323 # cvs -z3 -d:pserver:[email protected]:/cvsroot/ openh323 co -P ptlib_unix

Installation des librairies pwlib, openh323 et T38modem

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyXJ9CS2BPzYgLAA==-enidentnumber

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

# apt-get install flex bison build-essential

# cd ~/pwlib # ./configure --prefix /usr # make # make install

# cd ~/openh323 # ./configure --prefix /usr # make # make install

cd ~/t38modem export OPENH323DIR=/usr/share/openh323 export PWLIBDIR=/usr/lib/pwlib make NO_PBOOLEAN=1 USE_UNIX98_PTY=1 opt make NO_PBOOLEAN=1 USE_UNIX98_PTY=1 install

Nous utilisons l’option USE_UNIX98_PTY=1 dans la compilation de H323.

# apt-get install hylafax-server cu minicom hylafax-client

#!/bin/sh # Check for missing binaries t38modem_BIN=/usr/local/bin/t38modem test -x $t38modem_BIN || echo "$t38modem_BIN not installed"; if [ "$1" = "stop" ]; then exit 0; else exit 5; fi; PIDFILE="/var/run/t38modem.pid" # Load the rc.status script for this service. . /lib/lsb/init-functions case "$1" in start) echo -e "Starting t38modem " ## Start daemon with smetartproc(8). If this fails ## the return value is set appropriately by startproc. echo "$ARGS" > /tmp/t38modem_start.txt start-stop-daemon --start --background --name t38modem --pid $PIDFILE --startas $t38modem_BIN log_end_msg $? ;; stop) echo -e "Shutting down t38modem " ## Stop daemon with killproc(8) and if this fails ## killproc sets the return value according to LSB. start-stop-daemon -K -q --exec $t38modem_BIN log_end_msg $? ;; restart) ## Stop the service and regardless of whether it was ## running or not, start it again. $0 stop

Installation des outils de parsing indispensables

Installation de la bibliothèque pwlib

Installation de la bibliothèque openh323

Installation de T38modem

Installation du serveur de fax Hylafax

Script de démarrage de T38modem

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyXJ9CS2BPzYgLAA==-enidentnumber

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

$0 start ;; *) ## If no parameters are given, print which are avaiable. echo "Usage: $0 start|stop|restart" exit 1 ;; Esac

# t38modem --trace --output /var/log/t38modem.log --ptty +/dev/ttyx0, +/dev/ttyx1, +/dev/ttyx2, +/dev/ttyx3, +/dev/ttyx4, +/dev/ttyx5, +/dev/ttyx6, +/dev/ttyx7, +/dev/ttyx8

Cette commande permet d’enregistrer la configuration dans le “home directory” de l’utilisateur courant (cas de root dans ~/.pwlib_config/.ini).

Désormais, nous pouvons démarrer le(s) modem(s) avec le script d’initialisation de t38 modem via la commande /etc/init.d/t38modem start/stop.

# faxsetup

La commande faxsetup permet d’effectuer, de façon interactive, le paramétrage du serveur Hylafax. Ce script stocke les informations dans deux fichiers sous /etc/hylafax :

setup.cache ;

setup.modem.

# cp ~/t38modem/HylaFAX/config.ttyx /etc/hylafax/config.ttyx # vi /etc/hylafax/config.ttyx

# # HylaFAX configuration for a T38FAX Pseudo Modem # SessionTracing: 0x2FFF RingsBeforeAnswer: 1 ModemType: Class1 # use class 1 interface ModemFlowControl: rtscts # default ModemRate: 19200 ModemRevQueryCmd: AT+FREV? # # AT#CID=10 enables ANI/DNIS reporting between the # first and second RINGs in the form: # # RING # NMBR = <calling number> # NDID = <called number> # RING # ModemResetCmds: "AT#CID=10" # enable ANI/DNIS reporting RingsBeforeAnswer: 3 # collect info between two RINGs #QualifyCID: etc/cid # CID access control list file CIDNumber: "NMBR = " # pattern string for calling number CIDName: "NDID = " # pattern string for called number # # T.38 dial modifiers # # F - enable T.38 mode request after dialing # V - disable T.38 mode request after dialing (remote host should do it)

Création des options du modem virtuel

Paramétrage d’Hylafax

Déclaration des modems virtuels dans Hylafax

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyXJ9CS2BPzYgLAA==-enidentnumber

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

# # calling/called number dial modifiers # # L - reset and begin of calling number # D - continue of called number # #ModemDialCmd: ATDF%s # user can override F by dial V #ModemDialCmd: ATDV%s # user can override V by dial F #ModemDialCmd: ATD%sF # user can’t override F #ModemDialCmd: ATD%sV # user can’t override V #ModemDialCmd: ATD%sVL # user can’t override V or calling number

# ln -s /etc/hylafax/config.ttyx /etc/hylafax/config.ttyx0 # ln -s /etc/hylafax/config.ttyx /etc/hylafax/config.ttyx1 ... # /etc/init.d/hylafax restart

# apt-get install sendmail-bin # apt-get install sendmail #vi /etc/mail/sendmail.cd modify : # "Smart" relay host (may be null) DSmonrelais.mondomaine.com

C’est le serveur relais de mail monrelais.mondomaine.com qui sera alors utilisé dans cet exemple. Hylafax enverra alors tous les fax vers ce serveur de mails.

# sendfax -n -D -d 150601 /tmp/allo2.pdf # sendfax -m -n -D -d 0383202020 /tmp/allo2.pdf

Dans cet exemple, nous envoyons le document « allo2.pdf » en fax à deux types de destinataires :

Un numéro privé 150601 (cas d’une extension interne d’Asterisk).

Un numéro public 0383202020 (cas d’une SDA).

faxstat -r

Ne pas hésiter à utiliser l’outil Webmin qui dispose d’un module Hylafax pour l’administration de premier niveau du serveur de fax.

3. Partie cliente

Bien évidemment, l’utilisation d’un serveur de fax doit se faire via un client logiciel. Il en existe un certain nombre parmi lesquels, nous pouvons citer :

WHFC (Windows Hyla Fax Client), http://whfc.uli­eckhardt.de/ ;

Winprint Hylafax, http://winprinthylafax.sourceforge.net/ ;

Autres produits : http://hylafax.sourceforge.net/howto/faxing.php ;

Création des « config.ttyx » de chaque modem virtuel

Configuration des mails sur le serveur Hylafax

Test d’envoi de fax depuis le serveur Hylafax en mode console

Affichage du statut des files d’attente

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyXJ9CS2BPzYgLAA==-enidentnumber

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

Une solution d’envoi de fax en mode web peut également être développée en Php.

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyXJ9CS2BPzYgLAA==-enidentnumber

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

Hylafax­Asterisk­Cisco

1. Fonctionnalités recherchées

Partons du principe qu’une SDA d’un utilisateur peut être à la fois une ligne téléphonique et une ligne de fax. Pour mettre ce dispositif en œuvre, il est nécessaire d’avoir cinq éléments dans l’architecture :

Un serveur de téléphonie Asterisk ;

Un serveur de fax Hylafax ;

Un serveur de mail Postfix/Zimbra ;

Un routeur VoIP de type Cisco permettant de « trier » les appels voix des appels fax et de les router vers le bon serveur ;

Une ou n ligne(s) physique(s) de type T2.

C’est le routeur Cisco qui va détecter, par écoute du message électrique de la porteuse, l’arrivée d’un fax et l’envoi au serveur de fax via le protocole T38. Le serveur de fax gère des modems fax virtuels T38modem qui reçoivent ces fax.

2. Schéma d’architecture

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy7ET3UWBPzYgLAA==-enidentnumber

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

3. Configuration d’une passerelle VoIP Cisco 2801

Il est nécessaire d’installer une application tierce sur le routeur, permettant de détecter l’arrivée d’un fax : DM_FullT38_2.1_app_fax_detect.2.1.2.2.tcl, à télécharger sur le site de Cisco (http://www.cisco.com/pcgi­bin/tablebuild.pl/tclware) après authentification avec un login/password.

Configuration sur le routeur Cisco 28XX

application service T38_fax_detect_DM flash:DM_FullT38_2.1_app_fax_detect.2.1.2.2.tcl paramspace french language fr param mode listen-first param account-id-method any param prompt flash:ringback.wav param voice-dtmf 1 param fax-dtmf 2 !

Appel de l’application pour les appels RTC

dial-peer voice 2 pots trunkgroup trunkT2 description appels rtc preference 1 service t38_fax_detect_dm destination-pattern T progress_ind alert enable 8 progress_ind progress enable 8 progress_ind connect enable 8 incoming called-number 2... no digit-strip direct-inward-dial

Si un fax est détecté sur la porteuse, un “5” est ajouté devant le numéro

dialpeer 52… dial-peer voice 21 voip description appels voip vers Hylafax destination-pattern 52... session target ipv4:192.168.1.222 dtmf-relay h245-signal codec g711ulaw fax rate 14400 fax protocol t38 ls-redundancy 0 hs-redundancy 0 fallback cisco no vad

Dans notre exemple, le serveur de fax dispose de l’adresse IP 192.168.1.222.

4. Configuration du fax to mail avec FaxDispatch

Lorsque nous recevons un fax sur une SDA, notre routeur CISCO aiguille le fax sur le serveur Hylafax mais nous ne savons pas vraiment sur quelle boîte de messagerie il faut le router. Nous allons utiliser, pour cela, une table de correspondance n° SDA / email que nous stockerons dans une base MySQL.

Cette base est stockée sur le serveur Asterisk et contient une table faxmail où sont faites les correspondances.

Il faut déclarer l’utilisateur hylafax en lecture sur la table faxmail du serveur Asterisk (192.168.1.100).

# apt-get install mysql-client # vi /etc/hylafax/FaxDispatch ## ## Default FaxDispatch file - routes all inbound faxes to FaxMaster as PDF ## ## Consult the faxrcvd(8C) man page for more information ## #!/bin/sh

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy7ET3UWBPzYgLAA==-enidentnumber

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

# FILETYPE=pdf; # in PDF format #On recupere l’email associe a la sda dans la base mysql asterisk #$CALLID1 num appelant 383102030 #$CALLID2 num dest 52002 sdaclean=`echo $CALLID2#*5`; routmail=`echo "use asterisk;select email_device from faxmail where sda=$sdaclean;" | mysql -h 192.168.1.100 -uhylafax -p*** | grep ’@’`; SENDTO=$routmail; #SENDTO=FaxMaster;

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy7ET3UWBPzYgLAA==-enidentnumber

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

Liens avec Zimbra, SugarCRM

D’autres applications essentielles peuvent être couplées au serveur Asterisk, notamment :

À l’aide d’un programme spécifique (Zimlet Asterisk) sur le serveur Zimbra, il est possible d’effectuer un appel téléphonique depuis le webmail Zimbra, en effectuant un drag and drop du contact vers le serveur Asterisk, matérialisé sous la forme d’une icône sur le webmail.

Ce principe est décrit dans le livre « Zimbra, messagerie collaborative Open Source », Sébastien DEON, Editions ENI dans la collection Epsilon.

Par rebond, Zimbra peut communiquer avec Alfresco pour stocker des mails, pièces jointes dans la GED. Il est possible de développer un service permettant depuis Alfresco, et notamment un document, d’appeler directement un destinataire dont le nom ou le numéro de téléphone apparaît dans le document.

Source : http://www.voicerd.com/VoiceRD_integration_modules_alfresco.php

SugarCRM est une solution de Gestion de la Relation Client qui existe en version commerciale mais aussi en version Open Source. Comme toute application de CRM, il est indispensable de pouvoir y coupler le serveur de téléphonie de manière à pouvoir effectuer deux choses très simples (entre autres) :

Appeler automatiquement un client depuis la fiche client de SugarCRM ;

Afficher automatiquement la fiche d’un client dans SugerCRM lors de l’appel de ce client.

De très nombreux modules permettent à SugarCRM de s’interfacer avec l’extérieur :

Web­conférence

Ged

Messagerie

Calendrier

ERP

Annuaires

Asterisk

L’idée est simple : à partir de l’outil de CRM qui gère la relation client (mais aussi tout type de relation), il est possible d’enrichir le système lorsqu’un appel est reçu ou émis. Combien de fois utilisons­nous une feuille vierge ou un post­it pour noter des informations lors d’une conversation téléphonique ? Souvent n’est­ce pas ? Et que deviennent ces informations si elles ne sont pas associées à un contact, à un projet, à une tâche ou à une société ?

En ce qui concerne Asterisk, nous pouvons citer les modules suivants :

Liz, interface de gestion des appels entrants et sortants, des logs d’appels, des transferts d’appels et, par voie de conséquence, administration des appels Asterisk dans SugarCRM. Log de tous les appels dans SugarCRM.

Source : http://www.sugarforge.org/projects/liz/

Kinamu / abcona Open Asterisk Connector, module permettant d’effectuer un clic­to­dial depuis les contacts, comptes… de Sugar CRM vers Asterisk. Le module YAAI (Yet Another Asterisk Integration) nécessite le

Le serveur de messagerie Zimbra

Le serveur de GED Alfresco

Le CRM SugarCRM

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyWLX5WWBPzYgLAA==-enidentnumber

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

paramétrage d’un lien entre le module et l’AMI.

Source : http://www.sugarforge.org/projects/yaai

Asterisk SugarDirector, module permettant d’afficher la page du contact de l’appelant (callerID), directement dans SugarCRM.

Source : http://www.sugarforge.org/projects/sugardirector

Asterisk VoiceRD Integration, permettant de lancer un appel depuis SugarCRM, d’enregistrer des notes sur des appels…

Source : http://www.voicerd.com/VoiceRD_integration_modules.php

# cd /usr/src # wget http://www.sugarforge/org/frs/download.php/7016/SugarCE-5.5.4.zip # unzip SugarCE* # mkdir /var/www/crm # cd SugarCE-Full-5.5.4 # mv * /var/www/crm # chown -R www-data:www-data /var/www/crm # mysql -u root -p Myqsl> CREATE DATABASE sugarcrm; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON sugarcrm.* TO ’sugarcrm’@’localhost’ IDENTIFIED BY ’sugarpasswd’; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON sugarcrm.* TO ’sugarcrm’@’localhost.localdomain’ IDENTIFIED BY ’sugarpasswd’; FLUSH PRIVILEGES; QUIT; # /etc/init.d/apache2 restart

http://localhost/crm

Installation de SugarCRM sur le serveur Debian

Accès à l’interface d’installation de Sugar CRM

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyWLX5WWBPzYgLAA==-enidentnumber

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

Choisir l’installation en langue française.

Accepter la licence.

Choisir une installation standard (pour les nouveaux utilisateurs de SugarCRM).

Choisir le type de base de données : MySQL (MySQLo detected).

Configurer la base de données.

Procédure d’installation

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyWLX5WWBPzYgLAA==-enidentnumber

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

Saisir le mot de passe pour l’administrateur Sugar.

Renseigner les paramétrages des variables locales (format de date par défaut, format de l’heure par défaut, devise par défaut…).

Si tout est correct, un écran de résumé affiche les informations suivantes :

Configuration de la base de données

Nom de la base de données sugarcrm (va pas à créer)

Utilisateur admin de la base de données sugarcrm

Remplir la base de données avec des données de Démo? Oui

Supprimer les tables Oui

Paramètrages des variables Locales

Format de date par défaut 23­12­2010

Format de l’heure par défaut 23:00

Devise par défaut Euro

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyWLX5WWBPzYgLAA==-enidentnumber

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

La connexion s’effectue à l’aide du login admin :

Symbole de la devise €

Code de la devise (ISO 4217) EUR

Chiffres significatifs 2

Séparateur des milliers ,

Séparateur décimal .

Droits Système

Utilisateur de la base de données sugarcrm

Mot de passe de base de données (caché) 123456789

Nom de l’utilisateur admin de Sugar Admin

Mot de passe Admin de Sugar (caché) sugar

Environnement Système

Version PHP 5.2.6­1+lenny8

Parsage du XML OK

Module MB Strings OK

Ecriture dans le fichier de config de SugarCRM (config.php) OK

Ecriture possible dans le répertoire utilisateur OK

Ecriture possible dans les sous­répertoires des modules et les fichiers OK

Ecriture possible dans les sous­répertoires de données OK

Ecriture possible dans les sous­répertoires de cache OK

Limite Mémoire PHP >= OK (128M)

Module ZLIB Compression OK

IMAP Module OK

Librairie cURL OK

Taille des fichiers d’upload OK

nOTE: Votre fichier de configuration php (php.ini) est situé ici : /etc/php5/apache2/php.ini

Installation de Sugar (bouton Installer)

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyWLX5WWBPzYgLAA==-enidentnumber

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

Cas de l’installation de Liz (Administration des appels Asterisk dans SugarCRM)

Au préalable, il faut effectuer l’installation des packages suivants : perl, libsoap­lite­perl, libasterisk­agi­perl, libossp­uuid­perl, à l’aide de la commande « apt­get install ».

Il est nécessaire de placer le fichier cid.agi dans le dossier /var/lib/asterisk/cgi­bin et de lui donner les droits d’exécution (chmod +x) : le fichier peut être téléchargé à l’adresse suivante :

(http://dl.sugarforge.org/liz/liz/LizCallerIDLookupv0.91/cid.agi).

Il faut créer un compte SugarCRM dans le fichier extensions.conf.

[globals] SUGAR_HOST=http://localhost/SugarCRM SUGAR_USER=username_sugar SUGAR_PASS=password_sugar

Le script cid.agi est appelé dans le dialplan par la commande :

Exten => s, n, AGI(cid.agi)

Lorsqu’un appel entrant se présente, il faut lancer l’ouverture de la fiche « contact » dans SugarCRM et faire sonner le téléphone appelé.

[incoming] exten => _X.,1, Set(SUGAREXTENSION=$EXTEN) exten => _X.,n,AGI(cid.agi) exten => _X.,n,Dial(SIP/$EXTEN,,t) exten => _X.,n,Hangup

Packages nécessaires

Script AGI

Configuration dans Asterisk

Appel du script

Cas des appels entrants

- 6 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyWLX5WWBPzYgLAA==-enidentnumber

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

Introduction

L’objectif de cette annexe est de présenter un plan de numérotation d’une architecture de PME. Les deux fichiers extensions.conf et extensions_macro.conf nécessaires sont présentés et commentés.

Les commentaires sont précédés du caractère ; et permettent d’apporter un commentaire au dial­plan.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyIYj+YWBPzYgLAA==-enidentnumber

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

Fichier Extensions.conf

1. Contexte [general]

[general] static=yes writeprotect=no autofalltrough=yes clearglobalvars=no proirityjumping=no ; les fichiers externes extensions_supervision.conf et extensions_macro.conf sont inclus dans le dial plan #include extensions_supervision.conf #include extensions_macro.conf

2. Contexte [CONTEXT_BASIC]

Le contexte [CONTEXT_BASIC] est le contexte par défaut déclaré dans la définition des clients SIP de la table clients_sip de la base de données MySQL asterisk_db.

[CONTEXT_BASIC] include => CONTEXT_SUPERVISION include => CONTEXT_INTERNAL include => CONTEXT_CONTROLE_MESSAGERIE include => CONTEXT_CONTROL_FORWARD include => CONTEXT_AGENCE_1 include => CONTEXT_AGENCE_2 include => CONTEXT_NATIONAL include => CONTEXT_GSM include => CONTEXT_MONACO include => CONTEXT_BELGIQUE include => CONTEXT_MESSAGES include => CONTEXT_QUEUES include => CONTEXT_TRUNK include => CONTEXT_INTERCEPTION include => CONTEXT_NUMEROS_ABREGES include => CONTEXT_NUMEROS_BOX include => CONTEXT_NUMEROS_URGENCES include => CONTEXT_NUMEROS_VERTS include => CONTEXT_NUMEROS_SURTAXES

3. Contexte [CONTEXT_MANAGERS]

Le contexte [CONTEXT_MANAGERS] est destiné aux responsables de service.

[CONTEXT_MANAGERS] include => CONTEXT_BASIC include => CONTEXT_NUMEROS_SURTAXES_RESTREINTS

Il inclut [CONTEXT_BASIC] et [CONTEXT_NUMEROS_SURTAXES_ RESTREINTS] qui sont présentés ci­après.

4. Contexte [CONTEXT_CODIR]

Le contexte [CONTEXT_CODIR] est destiné aux postes téléphoniques des membres du Comité de Direction.

[CONTEXT_CODIR] include => CONTEXT_MANAGERS include => CONTEXT_INTERNATIONAL

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJPHWaGBPzYgLAA==-enidentnumber

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

Il inclut [CONTEXT_MANAGERS] et [CONTEXT_INTERNATIONAL] qui sont présentés ci­après.

5. Contexte [CONTEXT_INCOMING]

Le contexte [CONTEXT_INCOMING] est le contexte qui a été déclaré dans le fichier de configuration /etc/zaptel.conf. Tous les appels en provenance de l’extérieur y sont gérés.

Chaque SDA est définie sur ses quatre derniers chiffres (choix de l’opérateur qui présente les numéros). Chaque appel vers une SDA déclenche la fonction Macro().

[CONTEXT_INCOMING] exten => 5750,1,Macro(appel_sda,$EXTEN) exten => 5751,1,Macro(appel_sda,$EXTEN) exten => 5752,1,Macro(appel_sda,$EXTEN) exten => 5753,1,Macro(appel_sda,$EXTEN) exten => 5754,1,Macro(appel_sda,$EXTEN) exten => 5755,1,Macro(appel_sda,$EXTEN) exten => 5756,1,Macro(appel_sda,$EXTEN) exten => 5757,1,Macro(appel_sda,$EXTEN) exten => 5758,1,Macro(appel_sda,$EXTEN) exten => 5759,1,Macro(appel_sda,$EXTEN) exten => 5780,1,Macro(appel_sda,$EXTEN) exten => 5781,1,Macro(appel_sda,$EXTEN) exten => 5782,1,Macro(appel_sda,$EXTEN) exten => 5783,1,Macro(appel_sda,$EXTEN) exten => 5784,1,Macro(appel_sda,$EXTEN) exten => 5785,1,Macro(appel_sda,$EXTEN) exten => 5786,1,Macro(appel_sda,$EXTEN) exten => 5787,1,Macro(appel_sda,$EXTEN) exten => 5788,1,Macro(appel_sda,$EXTEN) exten => 5789,1,Macro(appel_sda,$EXTEN) exten => 5790,1,Macro(appel_sda,$EXTEN) exten => 5791,1,Macro(appel_entrant_queue,$EXTEN) exten => 5792,1,Macro(appel_entrant_queue,$EXTEN) exten => 5793,1,Macro(fax,$EXTEN) exten => 5794,1,Macro(appel_sda,$EXTEN) exten => 5795,1,Macro(appel_entrant_queue,$EXTEN) exten => 5796,1,Macro(appel_sda,$EXTEN) exten => 5797,1,Macro(appel_sda,$EXTEN) exten => 5798,1,Macro(appel_sda,$EXTEN) exten => 5799,1,Macro(appel_entrant_queue_alc,$EXTEN) exten => 1800,1,Macro(appel_entrant_queue,$EXTEN) exten => 1840,1,Macro(appel_sda,$EXTEN) exten => 1841,1,Macro(appel_sda,$EXTEN) exten => 1842,1,Macro(appel_sda,$EXTEN) exten => 1843,1,Macro(appel_entrant_queue,$EXTEN) exten => 1844,1,Macro(appel_sda,$EXTEN) exten => 1845,1,Macro(appel_sda,$EXTEN) exten => 1846,1,Macro(appel_sda,$EXTEN) exten => 1847,1,Macro(appel_sda,$EXTEN) exten => 1848,1,Macro(appel_sda,$EXTEN) exten => 1849,1,Macro(appel_sda,$EXTEN) exten => 1851,1,Macro(appel_sda,$EXTEN) exten => 1852,1,Macro(appel_sda,$EXTEN) exten => 1853,1,Macro(appel_sda,$EXTEN) exten => 1854,1,Macro(appel_sda,$EXTEN)

6. Contexte [CONTEXT_INTERNAL]

Le contexte [CONTEXT_INTERNAL] contient toutes les applications concernant un appel interne.

[CONTEXT_INTERNAL] ; Ouverture d’un canal de communication exten => _1XXX,1,Answer()

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJPHWaGBPzYgLAA==-enidentnumber

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

; Requête Sql "Select * from asteriskdb.numeros where num like ’1XXX’. Le résultat de la requête sera précédé de var_. Ensuite, nous testons si le numéro interne composé est présent dans la table asteriskdb.numeros ;Si Vrai, aller à l’extension numeropresent ;Si Faux, aller l’extension numeroabsent exten => _1XXX,n,Realtime(numero_info, num, $EXTEN, var_) exten => _1XXX,n,GotoIf($[test$var_num != test]?numeropresent:numeroabsent)

; extension numeroabsent "le numéro composé est inconnu", ; le fichier audio num-not-in-db.gsm (numéro inconnu dans notre base ; de données) est diffusé, puis le canal de communication est fermé. exten => _1XXX,n(numeroabsent),playback(num-not-in-db) exten => _1XXX,n,hangup()

; extension numeropresent, affectation de la valeur type (issue de la requête précédente) à la variable TYPE_DESTINATAIRE. exten => _1XXX,n(numeropresent), Set(TYPE_DESTINATAIRE=$var_type) exten => _1XXX,n,GotoIf($[$TYPE_DESTINATAIRE=POSTE]? appelposte:appelqueue) ; Ensuite, le contenu de la variable TYPE_DESTINATAIRE est testé ; Si POSTE, aller à l’extension appelposte ; Si QUEUE, aller à l’extension appelqueue

; extension nommée appelposte, requête SQL du type Select *..... Affectation des variables CFIM (Renvois Imediat : Call Forward Immediate) et CFDND (Fonctions Ne pas Déranger : Call Forward Do Not Distrub). Ensuite est-ce que le poste est en CFIM ? Si Vrai, execution de la macro cfimediat, puis fermeture du canal de communication. ; Si Faux, est-ce que le poste est en CFDND, ; Si Vrai, l’appel est envoyé sur le voicemail INDISPONIBLE du ; destinataire puis fermeture du canal de communication. ; Si Faux, exécution de la macro appel_poste_interne puis ; fermeture du canal de communication. exten => _1XXX,n(appelposte),Realtime(device_info, num,$EXTEN,var_) exten => _1XXX,n,Set(CFIM=$var_cfim_int) exten => _1XXX,n,Set(CFDND=$var_cfdnd_int) exten => _1XXX,n,Gotoif($[$CFIM=0]?STEP:CFIM) exten => _1XXX,n,Macro(cfimediat,$EXTEN,$CFIM) exten => _1XXX,n,Hangup() exten => _1XXX,n(STEP),Gotoif($[$CFDND=0]?NEXT:CFDND) exten => _1XXX,n,VoiceMail(u$EXTEN@default) exten => _1XXX,n,Hangup() exten => _1XXX,n(NEXT),Macro(appel_poste_interne,$EXTEN) exten => _1XXX,n,Hangup()

; Extension appelqueue, le poste appelé est une queue. Execution de la macro appel_queue_interne puis fermeture du canal de communication. exten => _1XXX,n(appelqueue),Macro(appel_queue_interne,$EXTEN) exten => _1XXX,n,Hangup()

7. Contexte [AGENCE_1]

Le contexte [AGENCE_1] contient l’ensemble des procédures liées à un appel interne d’un poste de l’agence

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJPHWaGBPzYgLAA==-enidentnumber

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

AGENCE_1 (2XXX). Ce contexte est similaire au contexte précédent.

[CONTEXT_AGENCE_1] ; ouverture d’un Canal de communication ; requête SQL du type Select * from... ; test si le numéro interne composé est stocké dans la table asterisk.device ; Si Vrai, se rendre à l’extension nommée numok ; Si Faux, se rendre à l’extension nommée erreur ; diffusion du message num-not-indb.gsm et raccrochage du canal de communication Extension nommée numok, on teste le contenu de la variable TYPE_DESTINATAIRE. Si POSTE, se rendre à l’extension nommée appelposte Si QUEUE, se rendre à l’extension nommée internequeue exten => _2XXX,1,Answer() exten => _2XXX,n,Realtime(device_info,num,$EXTEN,var_) exten => _2XXX,n,GotoIf($[test$var_num != test]?numok:erreur) exten => _2XXX,n(erreur),playback(num-not-in-db) exten => _2XXX,n,hangup() exten => _2XXX,n(numok),Set(TYPE_DESTINATAIRE=$var_type) exten => _2XXX,n,GotoIf($[$TYPE_DESTINATAIRE=POSTE]?appelposte: internequeue)

Extension nommée appelposte, requête SQL du type Select *..... Affectation de variables CFIM (Renvois Imediat) et CFDND (Fonctions Ne pas Déranger). Ensuite test si le poste est en CFIM, Si Vrai, exécution de la macro cfimediat, puis fermeture du canal de communication. Si Faux, test si le poste est en CFDND, Si Vrai, envoi de l’appel sur le voicemail INDISPONIBLE du destinataire puis fermeture le canal de communication. Si Faux, execution de la macro appel_poste_interne puis fermeture du canal de communication. exten => _2XXX,n(appel_poste),Realtime(device_info,num, $EXTEN,var_) exten => _2XXX,n,Set(CFIM=$var_cfim_int) exten => _2XXX,n,Set(CFDND=$var_cfdnd_int) exten => _2XXX,n,Gotoif($[$CFIM=0]?STEP:CFIM) exten => _2XXX,n(CFIM),Macro(cfimediat,$EXTEN,$CFIM) exten => _2XXX,n,Hangup() exten => _2XXX,n(STEP),Gotoif($[$CFDND=0 ]?NEXT:CFDND) exten => _2XXX,n(CFDND),VoiceMail(u$EXTEN@default) exten => _2XXX,n,Hangup() exten => _2XXX,n(NEXT),Macro(appel_poste_interne,$EXTEN) exten => _2XXX,n,Hangup()

Extension nommée internequeue, le poste appel est une queue. On exécute la macro appel_queue_interne puis fermeture du canal de communication exten => _2XXX,n(internequeue),Macro(appel_queue_interne, $EXTEN) exten => _2XXX,n,Hangup()

8. Contexte AGENCE_2 [CONTEXT_AGENCE_2]

Ce contexte correspond à l’agence AGENCE_2 qui a pour plan de numérotation 3XXX. Il est identique au contexte AGENCE_1.

9. Contexte [CONTEXT_NATIONAL]

Le contexte [CONTEXT_NATIONAL] traite l’ensemble des appels commençant par 01, 02, 03, 04 ou 05.

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJPHWaGBPzYgLAA==-enidentnumber

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

[CONTEXT_NATIONAL] ; ouverture d’un canal de communication. Exécution de la macro appel_sortant auquel est passé en argument le numéro composé puis fermeture du canal de communication. exten => _00[1-5]XXXXXXXX,1,Answer() exten => _00[1-5]XXXXXXXX,n,Macro(appel_sortant,$EXTEN) exten => _00[1-5]XXXXXXXX,n,Hangup()

10. Contexte [CONTEXT_BOX]

Le contexte [CONTEXT_BOX] traite l’ensemble des appels à destination des numéros attribués aux produits de type FreeBox, LiveBox...

[CONTEXT_BOX] Le principe est le même que pour le contexte [CONTEXT_INTERNAL]. Ouverture d’un canal de communication. Exécution de la macro appel_sortant auquel est passé en argument le numéro composé puis fermeture du canal de communication. exten => _009XXXXXXXX,1,Answer() exten => _009XXXXXXXX,n,Macro(appel_sortant,$EXTEN) exten => _009XXXXXXXX,n,Hangup() exten => _00870XXXXXX,1,Answer() exten => _00870XXXXXX,n,Macro(appel_sortant,$EXTEN) exten => _00870XXXXXX,n,Hangup() exten => _00871XXXXXX,1,Answer() exten => _00871XXXXXX,n,Macro(appel_sortant,$EXTEN) exten => _00871XXXXXX,n,Hangup() exten => _00873XXXXXX,1,Answer() exten => _00873XXXXXX,n,Macro(appel_sortant,$EXTEN) exten => _00873XXXXXX,n,Hangup() exten => _00874XXXXXX,1,Answer() exten => _00874XXXXXX,n,Macro(appel_sortant,$EXTEN) exten => _00874XXXXXX,n,Hangup() exten => _00875XXXXXX,1,Answer() exten => _00875XXXXXX,n,Macro(appel_sortant,$EXTEN) exten => _00875XXXXXX,n,Hangup() exten => _00876XXXXXX,1,Answer() exten => _00876XXXXXX,n,Macro(appel_sortant,$EXTEN) exten => _00876XXXXXX,n,Hangup() exten => _00877XXXXXX,1,Answer() exten => _00877XXXXXX,n,Macro(appel_sortant,$EXTEN) exten => _00877XXXXXX,n,Hangup() exten => _00878XXXXXX,1,Answer() exten => _00878XXXXXX,n,Macro(appel_sortant,$EXTEN) exten => _00878XXXXXX,n,Hangup() exten => _00879XXXXXX,1,Answer() exten => _00879XXXXXX,n,Macro(appel_sortant,$EXTEN) exten => _00879XXXXXX,n,Hangup()

11. Contexte [CONTEXT_NUMEROS_ABREGES]

Le contexte [CONTEXT_NUMEROS_ABREGES] traite l’ensemble des appels émis via la numérotation abrégés. Les numéros abrégés sont stockés dans la table asterisk.abrégés de MySql.

[CONTEXT_NUMEROS_ABREGES]

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJPHWaGBPzYgLAA==-enidentnumber

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

; Même principe que pour le contexte [CONTEXT_INTERNAL] : ; ouverture d’un canal de communication ; Exécution de la macro appel_abreges auquel est passé en argument ; le numéro composé puis fermeture du canal de communication exten => _8XXXXX,1,Answer() exten => _8XXXXX,n,Macro(appel_abrege,$EXTEN) exten => _8XXXXX,n,Hangup()

12. Contexte [CONTEXT_GSM]

Le contexte [CONTEXT_GSM] traite l’ensemble des appels à destination des numéros de téléphones mobiles commençant par 06.

[CONTEXT_GSM] ; Même principe que pour le contexte [CONTEXT_INTERNAL] : ouverture d’un canal de communication. ; Exécution de la macro appel_sortant auquel est passé en argument le numéro composé puis fermeture du canal de communication. exten => _006XXXXXXXX,1,Answer() exten => _006XXXXXXXX,n,Macro(appel_sortant,$EXTEN) exten => _006XXXXXXXX,n,Hangup()

13. Contexte [CONTEXT_MONACO]

Le contexte [CONTEXT_MONACO] traite l’ensemble des appels à destination de la principauté de Monaco.

Ce contexte est accessible à tous, du fait que la PME compte des clients sur MONACO.

[CONTEXT_MONACO] ; Même principe que pour le contexte [CONTEXT_INTERNAL]: ; Ouverture d’un canal de communication. Execution de la macro ; appel_sortant auquel est passé en argument le numéro ; composé puis fermeture du canal de communication. exten => _000377X.,1,Answer() exten => _000377X.,n,Macro(appel_sortant,$EXTEN) exten => _000377X.,n,Hangup()

14. Contexte [CONTEXT_BELGIQUE]

Le contexte [CONTEXT_BELGIQUE] traite l’ensemble des appels à destination de la Belgique.

Ce contexte est accessible à tous, du fait que la PME compte des fournisseurs et clients sur la BELGIQUE.

[CONTEXT_BELGIQUE] ; Même principe que pour le contexte [CONTEXT_INTERNAL]: ; Ouverture d’un canal de communication. Execution de la macro ; appel_sortant auquel est passé en argument le numéro ; composé puis fermeture du canal de communication. exten => _00032X.,1,Answer() exten => _00032X.,n,Macro(appel_sortant,$EXTEN) exten => _00032X.,n,Hangup()

15. Contexte [CONTEXT_INTERNATIONAL]

Le contexte [CONTEXT_INTERNATIONAL] traite l’ensemble des appels à destination de l’international.

Ce contexte est accessible uniquement au poste dépendant du contexte [CONTEXT_CODIR].

[CONTEXT_INTERNATIONAL]

- 6 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJPHWaGBPzYgLAA==-enidentnumber

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

; Même principe que pour le contexte [CONTEXT_INTERNAL]: ; Ouverture d’un canal de communication. Execution de la macro ; appel_sortant auquel est passé en argument le numéro ; composé puis fermeture du canal de communication. exten => _000X.,1,Answer() exten => _000X.,n,Macro(appel_sortant,$EXTEN) exten => _000X.,n,Hangup()

16. Contexte [CONTEXT_URGENCY]

Le contexte [CONTEXT_URGENCY] traite l’ensemble des appels d’URGENCE : Pompiers, Police...

Ce contexte est accessible à tous les utilisateurs.

[CONTEXT_URGENCY] ; Même principe que pour le contexte [CONTEXT_INTERNAL]: ; Ouverture d’un canal de communication. Execution de la macro ; appel_sortant auquel est passé en argument le numéro ; composé puis fermeture du canal de communication. exten => _01X,1,Answer() exten => _01X,n,Macro(appel_sortant,$EXTEN) exten => _01X,n,Hangup() exten => _0112,1,Answer() exten => _0112,n,Macro(appel_sortant,$EXTEN) exten => _0112,n,Hangup()

17. Contexte [CONTEXT_VERT]

Le contexte [CONTEXT_VERT] traite l’ensemble des appels dits Gratuits.

Ce contexte est accessible à tous les utilisateurs.

[CONTEXT_VERT] ; Même principe que pour le contexte [CONTEXT_INTERNAL]: ; Ouverture d’un canal de communication. Execution de la macro ; appel_sortant auquel est passé en argument le numéro ; composé puis fermeture du canal de communication. exten => _010XX,1,Answer() exten => _010XX,n,Macro(appel_sortant,$EXTEN) exten => _010XX,n,Hangup() exten => _00800.,1,Answer() exten => _00800.,n,Macro(appel_sortant,$EXTEN) exten => _00800.,n,Hangup() exten => _00805.,1,Answer() exten => _00805.,n,Macro(appel_sortant,$EXTEN) exten => _00805.,n,Hangup()

18. Contexte [CONTEXT_SURTAXE­RESTREINT]

Le contexte [CONTEXT_SURTAXE­RESTREINT] traite l’ensemble des appels surtaxés sans restrictions.

Ce contexte est réservé aux utilisateurs des contextes [CONTEXTE_MANAGERS] et [CONTEXT_CODIR].

[CONTEXT_SURTAXE-RESTREINT] ; Même principe que pour le contexte [CONTEXT_INTERNAL]: ; Ouverture d’un canal de communication. Execution de la macro ; appel_sortant auquel est passé en argument le numéro ; composé puis fermeture du canal de communication. exten => _03XXX,1,Answer()

- 7 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJPHWaGBPzYgLAA==-enidentnumber

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

exten => _03XXX,n,Macro(appel_sortant,$EXTEN) exten => _03XXX,n,Hangup() exten => _00801.,1,Answer() exten => _00801.,n,Macro(appel_sortant,$EXTEN) exten => _00801.,n,Hangup() exten => _00803.,1,Answer() exten => _00803.,n,Macro(appel_sortant,$EXTEN) exten => _00803.,n,Hangup() exten => _00810.,1,Answer() exten => _00810.,n,Macro(appel_sortant,$EXTEN) exten => _00810.,n,Hangup() exten => _00820.,1,Answer() exten => _00820.,n,Macro(appel_sortant,$EXTEN) exten => _00820.,n,Hangup() exten => _00825.,1,Answer() exten => _00825.,n,Macro(appel_sortant,$EXTEN) exten => _00825.,n,Hangup() exten => _00836.,1,Answer() exten => _00836.,n,Macro(appel_sortant,$EXTEN) exten => _00836.,n,Hangup() exten => _0089.,1,Answer() exten => _0089.,n,Macro(appel_sortant,$EXTEN) exten => _0089.,n,Hangup() exten => _0118.,1,Answer() exten => _0118.,n,Macro(appel_sortant,$EXTEN) exten => _0118.,n,Hangup()

19. Contexte [CONTEXT_SURTAXE]

Le contexte [CONTEXT_SURTAXE] traite l’ensemble des appels surtaxés avec restrictions.

Ce contexte est accessible à tous les utilisateurs. Les numéros autorisés sont stockés dans la table asterisk.surtaxe de MySql.

[CONTEXT_SURTAXE] ; Même principe que pour le contexte [CONTEXT_INTERNAL]: ; Ouverture d’un canal de communication. Execution de la macro ; appel_sortant auquel est passé en argument le numéro ; composé puis fermeture du canal de communication. exten => _008XXXXXXXX,1,Answer() exten => _008XXXXXXXX,n,Macro(appel_surtaxe,$EXTEN) exten => _008XXXXXXXX,n,Hangup()

20. Contexte [CONTEXT_QUEUE]

Le contexte [CONTEXT_QUEUE] englobe les procédures de connexions et déconnexions des membres actifs des queues. Ce contexte est accessible à tous les utilisateurs.

Règles :

*11XXX permet d’ajouter un membre à la queue XXXX.

*01XXX permet de déconnecter un membre de la queue XXXX.

- 8 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJPHWaGBPzYgLAA==-enidentnumber

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

[CONTEXT_QUEUE] ; Ouverture d’un canal de communication. Exécution de la macro inqueue auquel est passé en argument le numéro de la queue d’où l’on ajoute le membre (le poste qui a composé *11XXX), puis fermeture du canal de communication. exten => _*11XXX,1,Answer() exten => _*11XXX,n,Macro(inqueue,$EXTEN) exten => _*11XXX,n,Hangup()

; Ouverture d’un canal de communication. Exécution de la macro outqueue auquel est passé en argument le numéro de la queue d’où l’on déconnecte le membre (le poste qui a composé *01XXX), puis fermeture du canal de communication. exten => _*01XXX,1,Answer() exten => _*01XXX,n,Macro(outqueue,$EXTEN) exten => _*01XXX,n,Hangup()

21. Contexte [CONTEXT_TRUNK]

Le contexte [CONTEXT_TRUNK] traite l’ensemble des appels à destination de serveurs Asterisk ou d’autres types de serveurs SIP distants.

[CONTEXT_TRUNK] ; En composant 5XX, présentation du numéro composé au serveur distant (192.168.1.100) via le protocole IAX2. exten => _5.,1,Dial(IAX2/siege:[email protected]/$EXTEN) ; En composant un numéro commençant par 6, l’appel est dirigé vers un serveur SIP via le protocole SIP. exten => _6XXXX,1,Answer() exten => _6XXXX,n,Dial(SIP/192.168.45.100/$EXTEN:1) exten => _6XXXX,n,Hangup()

22. Contexte [CONTEXT_CONTROLE­MESSAGERIE]

Le contexte [CONTEXT_CONTROLE­MESSAGERIE] englobe les procédures de connexion au service voicemail pour la consultation des messages vocaux. Ce contexte est accessible à tous les utilisateurs.

Deux options sont accessibles :

*98 permet de consulter ses messages depuis n’importe quel poste du réseau ;

*99 permet de consulter ses messages uniquement depuis le poste destinataire des messages.

[CONTEXT_CONTROLE_MESSAGERIE] ; Explication : ouverture d’un canal de communication ; Attente d’1 seconde, puis exécution de l’application voicemail sans option. De ce fait, il sera demandé à l’utilisateur de saisir son numéro de poste, puis son mot de passe de messagerie. ; Puis fermeture du canal de communication. exten => _*98,1,Answer() exten => _*98,n,Wait(1) exten => _*98,n,VoiceMailMain() exten => _*98,n,Hangup() ; Explication : ouverture d’un canal de communication ; Attente d’1 seconde, puis exécution de l’application voicemail avec en option $CALLERIDNUM@default. Avec cette option, l’utilisateur ne devra saisir que son mot de passe. Puis fermeture du canal de communication. exten => _*99,1,Answer()

- 9 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJPHWaGBPzYgLAA==-enidentnumber

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

exten => _*99,n,Wait(1) exten => _*99,n,VoiceMailMain($CALLERIDNUM@default) exten => _*99,n,Hangup()

23. Contexte [CONTEXT_CONTROL­FORWARD]

Le contexte [CONTEXT_CONTROL­FORWARD] englobe les procédures de gestion des renvois sur Non Réponse, Occupation, Immédiat ou la fonction Ne Pas Déranger. Ce contexte est accessible à tous les utilisateurs.

Règles :

*8XXXX : Gère les renvois pour les appels en provenance des postes internes.

*9XXXX : Gère les renvois pour les appels externes (valable uniquement pour les titulaires de SDA).

[CONTEXT_CONTROL-FORWARD] *80XXXX permet de programmer un renvoi sur non reponse pour les appels internes vers un autre poste du réseau. ; Explication : ouverture d’un canal de communication. ; Attente de 0.5 secondes puis lancement d’une requête SQL du type " Update asterisk.device Set cfnr_int =numero_du poste_de_renvoi where num = numéro_de_l_appelant ". ; Puis diffusion à l’utilisateur d’un message disant que le renvoi sur non réponse est activé. ; Enfin, fermeture du canal de communication. exten => _*80XXXX,1,Answer() exten => _*80XXXX,n,Wait(0.5) exten => _*80XXXX,n,RealTimeUpdate(device_info,num, $CALLERIDNUM,cfnr_int,$EXTEN:3) exten => _*80XXXX,n,Playback(call-fwd-no-ans) exten => _*80XXXX,n,Playback(activated) exten => _*80XXXX,n,Hangup() ; *81 permet d’annuler un renvoi sur non reponse pour les appels internes. ; Explication : ouverture d’un canal de communication. ; Attente de 0.5 secondes puis lancement d’une requête SQL du type " Update asterisk.device Set cfnr_int= 0 where number = numéro_de_l_appelant ". ; Puis diffusion à l’utilisateur d’un message disant que le renvoi sur non réponse est désactivé. ; Enfin, fermeture du canal de communication. exten => _*81,1,Answer() exten => _*81,n,Wait(0.5) exten => _*81,n,RealTimeUpdate(device_info,num, $CALLERIDNUM,cfnr_int,0) exten => _*81,n,Playback(call-fwd-no-ans) exten => _*81,n,Playback(de-activated) exten => _*81,n,Hangup() ;*82XXXX permet de programmer un renvoi sur occupation pour les appels internes vers un autre poste du réseau. ; Explication : Même Principe que pour l’extension *80, seul le champs à mettre à jour de la requête change ainsi que le message diffusé à l’appelant. exten => _*82XXXX,1,Answer() exten => _*82XXXX,n,Wait(0.5) exten => _*82XXXXXX,n,RealTimeUpdate(device_info,num, $CALLERIDNUM,cfbus_int,$EXTEN:3) exten => _*82XXXX,n,Playback(call-fwd-on-busy) exten => _*82XXXX,n,Playback(activated) exten => _*82XXXX,n,Hangup() ; *83 permet d’annuler un renvoi sur occupation pour les appels internes vers un autre poste du réseau. ; Explication: Même Principe que pour l’extension *81, seul le champs à mettre à jour de la requête change

- 10 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJPHWaGBPzYgLAA==-enidentnumber

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

ainsi que le message diffusé à l’appelant. exten => _*83,1,Answer() exten => _*83,n,Wait(0.5) exten => _*83,n,RealTimeUpdate(device_info,num, $CALLERIDNUM,cfbus_int,0) exten => _*83,n,Playback(call-fwd-on-busy) exten => _*83,n,Playback(de-activated) exten => _*83,n,Hangup() ; *84XXXXXX permet de programmer un renvoi immédiat pour tous les appels internes. ; Explication : Même Principe que pour l’extension *80, seul le champs à mettre à jour de la requête change ainsi que le message diffusé à l’appelant. exten => _*84XXXX,1,Answer() exten => _*84XXXX,n,Wait(0.5) exten => _*84XXXXXX,n,RealTimeUpdate(device_info,num, $CALLERIDNUM,cfim_int,$EXTEN:3) exten => _*84XXXX,n,Playback(call-fwd-unconditional) exten => _*84XXXX,n,Playback(activated) exten => _*84XXXX,n,Wait(5) exten => _*84XXXX,n,Hangup() ; *85 permet d’annuler un renvoi immédiat pour les appels internes. ; Explication : Même Principe que pour l’extension *81, seul le champs à mettre à jour de la requête change ainsi que le message diffusé à l’appelant. exten => _*85,1,Answer() exten => _*85,n,Wait(0.5) exten => _*85,n,RealTimeUpdate(device_info,num, $CALLERIDNUM,cfim_int,0) exten => _*85,n,Playback(call-fwd-unconditional) exten => _*85,n,Playback(de-activated) exten => _*85,n,Hangup() ; *86 permet de programmer la fonction Ne Pas Deranger pour tous les appels internes. ; Les appels seront transmis au voicemail Unavailable du poste. ; Explication: ouverture d’un canal de communication. ; Attente de 0.5 secondes puis lancement d’une requête SQL du type " Update asterisk.device Set cfdnd_int = 1 where number = numéro_de_l_appelant ". ; Puis diffusion à l’utilisateur d’un message disant que le renvoi indisponibilité est activé. ; Enfin, fermeture du canal de communication. exten => _*86,1,Answer() exten => _*86,n,RealTimeUpdate(device_info,num, $CALLERIDNUM,cfdnd_int,1) exten => _*86,n,Playback(call-forward) exten => _*86,n,Playback(unavailable) exten => _*86,n,Playback(activated) exten => _*86,n,Hangup() ; *87 permet d’annuler la fonction Ne Pas Deranger pour les appels internes. ; Explication : ouverture d’un canal de communication. ; attente de 0.5 secondes puis lancement d’une requête SQL du type " Update asterisk.device Set cfdnd_int= 0 where number = numéro_de_l_appelant ". ; Puis diffusion à l’utilisateur d’un message disant que le renvoi indisponibilité est désactivé. ; Enfin, fermeture du canal de communication. exten => _*87,1,Answer() exten => _*87,n,RealTimeUpdate(device_info,num, $CALLERIDNUM,cfdnd_int,0) exten => _*87,n,Playback(call-forward) exten => _*87,n,Playback(unavailable) exten => _*87,n,Playback(de-activated) exten => _*87,n,Hangup()

- 11 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJPHWaGBPzYgLAA==-enidentnumber

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

; *90XXXX permet de programmer un renvoi sur non réponse pour les appels externes vers un autre poste du réseau. ; Explication : ouverture d’un canal de communication. ; Attente de 0.5 secondes puis lancement d’une requête SQL du type " Update asterisk.device Set cfnr_int =numero_du poste_de_renvoi where number = numéro_de_l_appelant ". ; Puis diffusion à l’utilisateur d’un message disant que le renvoi sur non réponse est activé. ; Enfin, fermeture du canal de communication. exten => _*90XXXX,1,Answer() exten => _*90XXXX,n,Wait(0.5) exten => _*90XXXX,n,RealTimeUpdate(device_info,num, $CALLERIDNUM,cfnr_ext,$EXTEN:3) exten => _*90XXXX,n,Playback(call-fwd-no-ans) exten => _*90XXXX,n,Playback(activated) exten => _*90XXXX,n,Hangup() ; *91 permet d’annuler un renvoi sur non réponse pour les appels externes. ; Explication : ouverture d’un canal de communication. ; Attente de 0.5 secondes puis lancement d’une requête SQL du type " Update asterisk.device Set cfnr_ext= 0 where number = numéro_de_l_appelant ". ; Puis diffusion à l’utilisateur d’un message disant que le renvoi sur non réponse est désactivé. Enfin, fermeture du canal de communication. exten => _*91,1,Answer() exten => _*91,n,Wait(0.5) exten => _*91,n,RealTimeUpdate(device_info,num,$CALLERIDNUM,cfnr_ext,0) exten => _*91,n,Playback(call-fwd-no-ans) exten => _*91,n,Playback(de-activated) exten => _*91,n,Hangup() ; *92XXXX permet de programmer un renvoi sur occupation pour les appels externes vers un autre poste du réseau. ; Explication : ouverture d’un canal de communication. ; Attente de 0.5 secondes puis lancement d’une requête SQL du type " Update asterisk.device Set cfbus_ext = numero_du poste_de_renvoi where number = numéro_de_l_appelant ". ; Puis diffusion à l’utilisateur d’un message disant que le renvoi sur occupation est activé. ; Enfin, fermeture du canal de communication. exten => _*92XXXX,1,Answer() exten => _*92XXXX,n,Wait(0.5) exten => _*82XXXXXX,n,RealTimeUpdate(device_info, num,$CALLERIDNUM,cfbus_int,$EXTEN:3) exten => _*92XXXX,n,Playback(call-fwd-on-busy) exten => _*92XXXX,n,Playback(activated) exten => _*92XXXX,n,Hangup() ; *93 permet d’annuler un renvoi sur occupation pour les appels externes. ; Explication : ouverture d’un canal de communication. ; Attente de 0.5 secondes puis lancement d’une requête SQL du type " Update asterisk.device Set cfbus_ext= 0 where number = numéro_de_l_appelant ". ; Puis diffusion à l’utilisateur d’un message disant que le renvoi sur occupation est désactivé. ; Enfin, fermeture du canal de communication. exten => _*93,1,Answer() exten => _*93,n,Wait(0.5) exten => _*93,n,RealTimeUpdate(device_info,num, $CALLERIDNUM,cfbus_ext,0) exten => _*93,n,Playback(call-fwd-on-busy) exten => _*93,n,Playback(de-activated) exten => _*93,n,Hangup() ; *94XXXX permet de programmer un renvoi immédiat pour tous les appels internes.

- 12 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJPHWaGBPzYgLAA==-enidentnumber

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

; Explication : ouverture d’un canal de communication. ; On attend 0.5 secondes puis on effectue une requête SQL du type " Update asterisk.device Set cfim_ext = numero_du poste_de_renvoi where number = numéro_de_l_appelant ". ; Puis diffusion à l’utilisateur d’un message disant que le renvoi immédiat est activé. ; Enfin, fermeture du canal de communication. exten => _*94XXXX,1,Answer() exten => _*94XXXX,n,Wait(0.5) exten => _*94XXXXXX,n,RealTimeUpdate(device_info,num, $CALLERIDNUM,cfim_ext,$EXTEN:3) exten => _*94XXXX,n,Playback(call-fwd-unconditional) exten => _*94XXXX,n,Playback(activated) exten => _*94XXXX,n,Wait(5) exten => _*94XXXX,n,Hangup() *95 permet d’annuler un renvoi immédiat pour les appels externes. ; Explication : ouverture d’un canal de communication. ; Attente de 0.5 secondes puis lancement d’une requête SQL du type " Update asterisk.device Set cfim_ext = 0 where number = numéro_de_l_appelant ".

; Puis, diffusion à l’utilisateur d’un message disant que le renvoi immédiat est désactivé. ; Enfin, fermeture du canal de communication. exten => _*95,1,Answer() exten => _*95,n,Wait(0.5) exten => _*95,n,RealTimeUpdate(device_info,num, $CALLERIDNUM,cfim_ext,0) exten => _*95,n,Playback(call-fwd-unconditional) exten => _*95,n,Playback(de-activated) exten => _*95,n,Hangup() ; *96 permet de programmer la fonction Ne Pas Deranger pour tous les appels externes. ; Les appels seront transmis au voicemail Unavailable du poste. ; Explication : ouverture d’un canal de communication. ; Attente de 0.5secondes puis lancement d’une requête SQL du type " Update asterisk.device Set cfdnd_ext = 1 where number = numéro_de_l_appelant ". ; Puis, diffusion à l’utilisateur d’un message disant que le renvoi pour indisponibilité est activé. ; Enfin, fermeture du canal de communication. exten => _*96,1,Answer() exten => _*96,n,RealTimeUpdate(device_info,num, $CALLERIDNUM,cfdnd_ext,1) exten => _*96,n,Playback(call-forward) exten => _*96,n,Playback(unavailable) exten => _*96,n,Playback(activated) exten => _*96,n,Hangup() ; *97 permet d’annuler la fonction Ne Pas Deranger pour les appels externes. ; Explication : ouverture d’un canal de communication. ; Attente de 0.5 secondes puis lancement d’une requête SQL du type " Update asterisk.device Set cfdnd_ext= 0 where number = numéro_de_l_appelant ". ;Puis, diffusion à l’utilisateur d’un message disant que le renvoi pour indisponibilité est désactivé. ; Enfin, fermeture du canal de communication. exten => _*97,1,Answer() exten => _*97,n,RealTimeUpdate(device_info,num,$CALLERIDNUM,cfdnd_ext,0) exten => _*97,n,Playback(call-forward) exten => _*97,n,Playback(unavailable) exten => _*97,n,Playback(de-activated) exten => _*97,n,Hangup()

- 13 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJPHWaGBPzYgLAA==-enidentnumber

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

24. Contexte [CONTEXT_MESSAGE]

Le contexte [CONTEXT_MESSAGE] permet d’enregistrer un message. Ce message sera ensuite diffusé en lieu et place du traditionnel voicemail. Le message enregistré est surtout utilisé lorsque qu’il n’y a plus aucun membre dans les queues. Ce contexte est accessible à tous les utilisateurs.

Règle : *2 suivi du numéro de poste offre la possibilité d’enregistrer un message pour le poste XXXX

[CONTEXT_MESSAGE] ; Explication : ouverture d’un canal de communication. ; Diffusion à l’utilisateur d’un message l’invitant à enregistrer son message après la tonalité. ; Exécution de l’application Record avec en option le nom du fichier à sauvegarder. ; Enfin, fermeture du canal de communication. exten => _*2XXXXXX,1,Answer() exten => _*2XXXXXX,n,Playback(pls-rcrd-name-at-tone) exten => _*2XXXXXX,n,Record(/var/lib/asterisk/sounds/ message_$EXTEN:2.gsm) exten => _*2XXXXXX,n,HangUp()

25. Contexte [CONTEXT_from­trunk]

Le contexte [CONTEXT_from­trunk] est le contexte par défaut des serveurs asterisk distants.

On y inclut les contextes [CONTEXTE_INTERNAL], [CONTEXT_AGENCE_1] et [CONTEXT_AGENCE2].

Ceci signifie qu’un utilisateur d’un serveur distant pourra contacter toutes les extensions gérées par les contextes [INTERNES], [AGENCE_1] et [AGENCE_2].

[CONTEXT_from-trunk] include => CONTEXT_INTERNAL include => CONTEXT_AGENCE_1 include => CONTEXT_AGENCE_2

- 14 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyJPHWaGBPzYgLAA==-enidentnumber

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

Extensions_macro.conf

1. appel_sda

La macro appel_sda est utilisée par le contexte [context_incoming] et est appelée chaque fois qu’un appel se présente sur une SDA affectée à un compte SIP.

[macro-appel_sda] ;*********************** ;Explication: ;On ouvre un canal de communication ;Requête du Type Sql " select * from... " ;Affectation de la variable DEST_CFDND = champ cfdnd_ext issu de la requête. ;Affectation de la variable DEST_CFIM = champ cfim_ext issu de la requête. ;On vérifie que le poste titulaire de la SDA n’est pas en renvoi immédiat (CFIM) ou en fonction " Ne pas Déranger " (CFDND) exten => s,1,Answer() exten => s,n,Realtime(device_info,sda,$MACRO_EXTEN,var_) exten => s,n,set(DEST_CFDND=$var_cfdnd_ext) exten => s,n,set(DEST_CFIM=$var_cfim_ext) ;*********************** ;Explication: ;On teste si le poste est en CFDND ;[ Si Vrai, se rendre à l’extension nommée next. ;[ Si Faux, se rendre à l’extension nommée cfdnd-sda (fonction Ne pas Déranger activée sur le poste). ;Extension nommée next. ;On teste si le poste en CFIM. [ Si Vrai, se rendre à l’extension nommée sda-ok. [ Si Faux, se rendre à l’extension nome cfim-sda (renvoi immédiat activée sur le poste). exten => s,n,GotoIf($[$DEST_CFDND =0]?next:cfdnd-sda) exten => s,n(next),GotoIf($[$DEST_CFIM =0]?sda-ok:cfim-sda) exten => s,n(sda-ok),Realtime(device_info,sda, $MACRO_EXTEN,var_) exten => s,n,set(DEVICE_DESTINATAIRE=$var_number) exten => s,n,set(DESTINATAIRE=$var_cid_name) ;*********************** ;Extension nommée sda-ok. ;Explication: ;Requête du Type Sql " select * from... " ;Affectation de la variable DEVICE_DESTINATAIRE = champ number issu de la requête. ;Affectation de la variable DESTINATAIRE = champ cid_name issu de la requête. ;Requête du Type Sql " select * from... " ;Test pour voir si le numéro appelant est dans la table asterisk.abreges ;[ Si Vrai, se rendre à l’extension nommée know. ;[ Si Faux, se rendre à l’extension nommée unknow. exten => s,n(sda-ok),Realtime(device_info,sda, $MACRO_EXTEN,var_) exten => s,n,set(DEVICE_DESTINATAIRE=$var_number) exten => s,n,set(DESTINATAIRE=$var_cid_name) exten => s,n,Realtime(abreges,numero,0$CALLERIDNUM,var_) exten => s,n,GotoIf($[test$var_num_abr != test]?know:unknow) ;*********************** ;Extension nommée know. Le numéro de l’appelant est présent

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

dans la table asterisk.abreges ;Explication: ;Affectation variable CALLERIDNUM = champ num_abregé issu de la requête. ;Affectation variable CALLERIDNAME = champ affichage issu de la requête. ;Se rendre à l’extension nommée appel. ;Extension nommée unknow. Le numéro de l’appelant est inconnu dans la table asterisk.abreges ;Explication: ;Test pour vérifier si l’appelant présente son numéro. ;[ Si Vrai, se rendre à l’extension nommée num-presente. ;[ Si Faux, se rendre à l’extension nommée num-non-presente. ;Extension nommée num-presente. L’appelant présente son numéro. ;Explication: Affectation variable CALLERIDNUM = 00numero_presente ;en ajoutant 00 au numéro présent, on permet à l’utilisa- teur de pouvoir rappeler son correspondant le cas échant (le premier 0 correspond à la sortie du réseau, le deuxième correspond au 0 de France Télécom). ;Affectation variable CALLERIDNAME = Exterieur. ;Exterieur s’affichera sur les postes, les utilisateurs sauront que c’est un appel externe. ;Se rendre à l’extension nommée appel. ;Extension nommée num-non-presente. L’appelant ne présente pas son numéro. ;Explication: ;Affectation variable CALLERIDNUM = Numero-Absent. ;Affectation variable CALLERIDNAME = Exterieur. ;C Exterieur s’affichera sur les postes, les utilisateurs sauront que c’est un appel externe. ;Se rendre à l’extension nommée appel. exten => s,n(know),Set(CALLERID(Number)=$var_num_abr) exten => s,n,Set(CALLERID(name)=$var_affichage) exten => s,n,goto(appel) exten => s,n(unknow),GotoIf($[test$CALLERIDNUM != test]?num-presente:num-non-presente) exten => s,n(num-presente),Set(CALLERID(Number)=00$CALLERIDNUM) exten => s,n,Set(CALLERID(name)=Exterieur) exten => s,n,goto(appel) exten => s,n(num-non-presente),Set(CALLERID(Number)= Numero-Absent) exten => s,n,Set(CALLERID(name)=Exterieur) exten => s,n,goto(appel) ;*********************** ;Extension nommée appel. ;Explication: ;Requête du Type Sql " select * from... " ;Affectation variable DEST_TECHNOLOGY = champ technology issu de la requête. ;en stockant le type de client (Sip, Iax...) dans la base, nous ne limitons pas notre dialplan au seul client sip. ;Affectation variable DEST_DEVICE = champ number issu de la requête. ;Affectation variable DEST_MOH_PREDECROCHE = champ moh_predecroche issu de la requête. ;correspond à la musique de predecroche qui sera diffusée à l’appelant. ;Affectation variable DEST_MOH_ATTENTE = champ moh_attente issu de la requête. ;correspond à la musique d’attente qui sera éventuellement diffusée à l’appelant. ;Définition de la musique d’attente pour le canal.

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

;Appel du destinataire en fonction des variables préalablement initialisées, on laisse le poste distant sonner pendant 25 secondes (5 sonneries). ;Suivant le status de l’appel, se rendre à l’extension nommée correspondante. ;On ferme le canal de communication. exten => s,n(appel),realtime(device_info,sda,$MACRO_EXTEN,var_) exten => s,n,set(DEST_TECHNOLOGY=$var_technology) exten => s,n,set(DEST_DEVICE=$var_number) exten => s,n,set(DEST_MOH_PREDECROCHE=$var_moh_predecroche) exten => s,n,set(DEST_MOH_ATTENTE=$var_moh_attente) exten => s,n,SetMusicOnHold($DEST_MOH_ATTENTE) exten => s,n,Dial($DEST_TECHNOLOGY/$DEST_DEVICE, 25,m($DEST_MOH_PREDECROCHE),r) exten => s,n,Goto(s-$DIALSTATUS,1) exten => s,n,Hangup() ;*********************** ;Extension nommée cfdnd-sda. Le poste destinataire a activé la fonction " Ne Pas Déranger ". ;Explication: ;Requête du Type Sql " select * from... " ;Test pour voir si le numéro appelant est dans la table asterisk.abreges ;[ Si Vrai, se rendre à l’extension nommée cfdnd-sda-know. ;[ Si Faux, se rendre à l’extension nommée cfdnd-sda-unknow. ;Extension nommée cfdnd-sda-know. ;Le numéro de l’appelant est présent dans la table asterisk.abreges ;Affectation variable CALLERIDNUM = champ num_abrege issu de la requête. ;Affectation variable CALLERIDNAME = champ affichage issu de la requête. ;Se rendre à l’extension nommée cfdnd-sda-suite. ;Extension nommée cfdnd-sda-unknow. ;Le numéro de l’appelant est inconnu dans la table asterisk.abreges ;Explication: ;Affectation variable CALLERIDNUM = 00numero_présent ;Affectation variable CALLERIDNAME = Exterieur. ;Se rendre à l’extension nommée cfdnd-sda-suite. ;Extension nommée cfdnd-sda-suite. ;Explication: ;Requête du Type Sql " select * from... " ;Appel de l’application Voicemail avec message Unavailable du poste destinataire. ;On ferme le canal de communication. exten => s,n(cfdnd-sda),Realtime(abreges,numero, 0$CALLERIDNUM,var_) exten => s,n,GotoIf($[test$var_num_abr != test]?cfdnd-sda-know:cfdnd-sda-unknow) exten => s,n(cfdnd-sda-know),Set(CALLERID(Number)=$var_num_abr) exten => s,n,Set(CALLERID(name)=$var_affichage) exten => s,n,goto(cfdnd-sda-suite) exten => s,n(cfdnd-sda-unknow),Set(CALLERID(Number)= 00$CALLERIDNUM) exten => s,n,Set(CALLERID(name)=Exterieur) exten => s,n,goto(cfdnd-sda-suite) exten => s,n(cfdnd-sda-suite),Realtime(device_info, sda,$MACRO_EXTEN,var_) exten => s,n,VoiceMail(u$var_number@default) exten => s,n,Hangup() ;*********************** ;Extension nommée cfim-sda. Le poste destinataire a activé

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

le renvoi immédiat vers un autre poste du réseau. ;Explication: ;Requête du Type Sql " select * from... " ;Affectation variable CFIM_DEST = champ cfim_ext issu de la requête ;Requête du Type Sql " select * from... " ;Affectation variable CFIM_TYPE = champ type issu de la requête ;Test pour vérifier si le poste destinataire du renvoi est un poste. ;[ Si Vrai, se rendre à l’extension nommée cfim-sda-poste. ;[ Si Faux, se rendre à l’extension nommée cfim-sda-queue. exten => s,n(cfim-sda),Realtime(device_info,sda, $MACRO_EXTEN,var_) exten => s,n,Set(CFIM_DEST=$var_cfim_ext) exten => s,n,Realtime(device_info,number,$CFIM_DEST,var_) exten => s,n,Set(CFIM_TYPE=$var_type) exten => s,n,GotoIf($[$CFIM_TYPE = POSTE]?cfim-sda-poste:cfim-sda-queue) ;*********************** ;Extension nommée cfim-sda-poste. Le poste destinataire est un poste ;Explication: ;Requête du Type Sql " select * from... " ;Test pour voir si le numéro appelant est dans la table asterisk.abreges ;[ Si Vrai, se rendre à l’extension nommée cfim-sda-poste-know. ;[ Si Faux, se rendre à l’extension nommée cfim-sda-poste-unknow. ;Extension nommée cfim-sda-poste-know. Le numéro de l’appelant est présent dans la table asterisk.abreges ;Affectation variable CALLERIDNUM = champ num_abr issu de la requête. ;Affectation variable CALLERIDNAME = champ affichage issu de la requête. ;Se rendre à l’extension nommée cfim-sda-poste-suite. ;Extension nommée cfim-sda-poste-unknow. Le numéro de l’appelant est inconnu dans la table asterisk.abreges ;Explication: ;Affectation variable CALLERIDNUM = 00numero_présent ;Affectation variable CALLERIDNAME = Exterieur. ;Se rendre à l’extension nommée cfim-sda-poste-suite. ;Extension nommée cfim-sda-poste-suite. ;Explication: ;Requête du Type Sql " select * from... " ;Affectation variable CFIM_DEST_TECHNO = champ type issu de la requête. ;Requête du Type Sql " select * from... " ;Affectation variable DEST_DEVICE = champ number issu de la requête. ;Affectation DEST_MOH_PREDECROCHE = champ moh_predecroche issu de la requête. ;Affectation DEST_MOH_ATTENTE = champ moh_attente issu de la requête. ;Definition de la musique d’attente pour le canal. ;Le but est de transférer l’appel vers un autre poste du réseau tout en gardant les musiques du poste titulaire de la SDA. ;Appel du destinataire en fonction des variables préalablement initialisées, on laisse le poste distant sonner pendant 25 secondes (5 sonneries). ;Si le poste de renvoi n’a pas répondu dans les 25 secondes, on transfère l’appel vers le voicemail du poste initiateur du renvoi.

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

;On ferme le canal de communication. exten => s,n(cfim-sda-poste),Realtime(abreges,numero, 0$CALLERIDNUM,var_) exten => s,n,GotoIf($[test$var_num_abr != test]?cfim-sda-poste-know: cfim-sda-poste-unknow) exten => s,n(cfim-sda-poste-know),Set(CALLERID(Number)= $var_num_abr) exten => s,n,Set(CALLERID(name)=$var_affichage) exten => s,n,goto(cfim-sda-poste-suite) exten => s,n(cfim-sda-poste-unknow),Set(CALLERID (Number)=00$CALLERIDNUM) exten => s,n,Set(CALLERID(name)=Exterieur) exten => s,n,goto(cfim-sda-poste-suite) exten => s,n(cfim-sda-poste-suite),Realtime(device_info, number,$CFIM_DEST,var_) exten => s,n,Set(CFIM_DEST_TECHNO=$var_technology) exten => s,n,Realtime(device_info,sda,$MACRO_EXTEN,var_) exten => s,n,Set(DEST_DEVICE=$var_number) exten => s,n,Set(DEST_MOH_PREDECROCHE=$var_moh_predecroche) exten => s,n,set(DEST_MOH_ATTENTE=$var_moh_attente) exten => s,n,setMusicOnHold($DEST_MOH_ATTENTE) exten => s,n,Dial($CFIM_DEST_TECHNO/$CFIM_DEST, 25,m($DEST_MOH_PREDECROCHE),r) exten => s,n,VoiceMail(u$DEST_DEVICE@default) exten => s,n,hangup() ;*********************** ;Extension nommée cfim-sda-queue. Le poste destinataire est une queue ;Explication: ;Requête du Type Sql " select * from... " ;Test pour voir si le numéro appelant est dans la table asterisk.abreges ;[ Si Vrai, se rendre à l’extension nommée cfim-sda-queue-know. ;[ Si Faux, se rendre à l’extension nommée cfim-sda-queue-unknow. ;Extension nommée cfim-sda-queue-know. Le numéro de l’appelant est présent dans la table asterisk.abreges ;Affectation variable CALLERIDNUM = champ num_abr issu de la requête. ;Affectation variable CALLERIDNAME = champ affichage issu de la requête. ;Se rendre à l’extension nommée cfim-sda-queue-suite. ;Extension nommée cfim-sda-queue-unknow. Le numéro de l’appelant est inconnu dans la table asterisk.abreges ;Explication: ;Affectation variable CALLERIDNUM = 00numero_présent ;Affectation variable CALLERIDNAME = Exterieur. ;Se rendre à l’extension nommée cfim-sda-queue-suite. ;Extension nommée cfim-sda-queue-suite. ;Explication: ;Requête du Type Sql " select * from... " ;Affectation variable CFIM_QUEUE_MESSAGE= champ message issu de la requête. ;Application QUEUE. ;Si pas d’agents Actifs dans la Queue, on logue l’appel. ;Test pour vérifier si le type de message pour la queue est enregistreur ;[ Si Vrai, se rendre à l’extension nommée cfim-queue-record. ;[ Si Faux, se rendre à l’extension nommée cfim-queue-mesg. ;Extension nommée cfim-sda-queue-record. ;Transfert de l’appel au voicemail associé à la queue. ;On ferme le canal de communication.

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

;Extension nommée cfim-sda-queue-mesg. ;Diffusion l’appelant du message enregistré pour la queue. ;On ferme le canal de communication. exten => s,n(cfim-sda-queue),Realtime(abreges,numero, 0$CALLERIDNUM,var_) exten => s,n,GotoIf($[test$var_num_abr != test]?cfim-sda-queue-know:cfim-sda-queue-unknow) exten => s,n(cfim-sda-queue-know),Set(CALLERID(Number)= $var_num_abr) exten => s,n,Set(CALLERID(name)=$var_affichage) exten => s,n,goto(cfim-sda-queue-suite) exten => s,n(cfim-sda-queue-unknow),Set(CALLERID(Number)= 00$CALLERIDNUM) exten => s,n,Set(CALLERID(name)=Exterieur) exten => s,n,goto(cfim-sda-queue-suite) exten => s,n(cfim-sda-queue-suite),Realtime(device_info,number, $DEST_CFIM,var_) exten => s,n,Set(CFIM_QUEUE_MESSAGE=$var_message) exten => s,n,Queue($DEST_CFIM,t) exten => s,n,System( echo "$EPOCH| $UNIQUEID|$DEST_CFIM|NONE| EXITWITHTIMEOUT|1" > /var/log/asterisk/queue_log ) exten => s,n,GotoIf($[$CFIM_QUEUE_MESSAGE =enregistreur]? cfim_queue_record:cfim_queue_mesg) exten => s,n(cfim_queue_record),Voicemail(u$DEST_CFIM@default) exten => s,n,hangup() exten => s,n(cfim_queue_mesg),Playback(/var/lib/asterisk/ sounds/message_$DEST_CFIM) exten => s,n,hangup() ;*********************** ;S-BUSY : Le poste destinataire est déjà en Ligne, on vérifie si un renvoi sur Occupation est programmé, sinon on transfère l’appel au voicemail Busy du destinataire. ;Explication: ;Requête du Type Sql " select * from... " ;Test pour voir si un renvoi sur Occupation est programmé ;[ Si Vrai, se rendre à l’extension nommée cfbus-sda. ;[ Si Faux, se rendre à l’extension nommée cfbus-sda-no. ;Extension nommée cfbus-sda. Un renvoi sur Occupation est programme ;Explication: ;Affectation variable CFBUS-SDA-DEST = champ cfbus_ext issu de la requête. ;Requête du Type Sql " select * from... " ;Affectation variable CFBUS-SDA-TECHNO = champ technology issu de la requête. ;Requête du Type Sql " select * from... " ;Affectation variable DEST-DEVICE = champ number issu de la requête. ;Affectation variable DEST-MOH-PREDECROCHE = champ moh_predecroche issu de la requête. ;Affectation variable DEST-MOH-ATTENTE = champ moh_attente issu de la requête. ;Définition de la musique d’attente pour le canal. ;Le but est de transférer l’appel vers un autre poste du réseau tout en gardant les musiques du poste titulaire de la SDA. ;Appel du destinataire en fonction des variables préalablement initialisées, on laisse le poste distant sonner pendant 25 secondes (5 sonneries). ;Si le poste de renvoi n’a pas répondu dans les 25 secondes, on transfère l’appel vers le voicemail du poste initiateur du renvoi. ;On ferme le canal de communication. ;Extension nommée cfbus-sda-no. Aucun renvoi sur Occupation

- 6 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

de programme. ;Explication: ;Appel du Voicemail Busy du poste destinataire ;On ferme le canal de communication. exten => s-BUSY,1,Realtime(device_info,sda,$MACRO_EXTEN,var_) exten => s-BUSY,n,GotoIf($[test$var_cfbus_ext != test]? cfbus-sda:cfbus-sda-no) exten => s-BUSY,n(cfbus-sda),Set(CFBUS-SDA-DEST=$var_cfbus_ext) exten => s-BUSY,n,Realtime(device_info,number, $CFBUS-SDA-DEST,var_) exten => s-BUSY,n,set(CFBUS-SDA-TECHNO=$var_technology) exten => s-BUSY,n,Realtime(device_info,sda,$MACRO_EXTEN,var_) exten => s-BUSY,n,Set(DEST-DEVICE=$var_number) exten => s-BUSY,n,Set(DEST-MOH-PREDECROCHE= $var_moh_predecroche) exten => s-BUSY,n,set(DEST-MOH-ATTENTE=$var_moh_attente) exten => s-BUSY,n,setMusicOnHold($DEST-MOH-ATTENTE) exten => s-BUSY,n,Dial($CFBUS-SDA-TECHNO/$CFBUS-SDA-DEST, 25,m($DEST-MOH-PREDECROCHE),r) exten => s-BUSY,n,VoiceMail(b$DEST-DEVICE@default) exten => s-BUSY,n,hangup() exten => s-BUSY,n(cfbus-sda-no),VoiceMail(b$DEST-DEVICE @default) exten => s-BUSY,n,hangup() ;*********************** ;S-NOANWSER : Le poste destinataire n’a pas répondu dans le délai imparti, on vérifie si un renvoi sur Non Réponse est programmé, sinon on transfère l’appel au voicemail Unavailable du destinataire. ;Explication: ;Requête du Type Sql " select * from... " ;Test pour voir si un renvoi sur Occupation est programmé ;[ Si Vrai, se rendre à l’extension nommée cfnr-sda. ;[ Si Faux, se rendre à l’extension nommée cfnr-sda-no. ;Extension nommée cfnr-sda. Un renvoi sur Non Reponse est programmé ;Explication: ;Affectation variable CFNR-SDA-DEST = champ cfnr_ext issu de la requête. ;Requête du Type Sql " select * from... " ;Affectation variable CFNR-SDA-TECHNO = champ technology issu de la requête. ;Requête du Type Sql " select * from... " ;Affectation variable DEST-DEVICE = champs number issu de la requête. ;Affectation variable DEST-MOH-PREDECROCHE = champ moh_predecroche issu de la requête. ;Affectation variable DEST-MOH-ATTENTE = champ moh_attente issu de la requête. ;Définition de la musique d’attente pour le canal. ;Le but est de transférer l’appel vers un autre poste du réseau tout en gardant les musiques du poste titulaire de la SDA. ;Appel du destinataire en fonction des variables préalablement initialisées, on laisse le poste distant sonner pendant 25 secondes (5 sonneries). ;Si le poste de renvoi n’a pas répondu dans les 25 secondes, on transfère l’appel vers le voicemail du poste initiateur du renvoi. ;On ferme le canal de communication. ;Extension nommée cfnr-sda-no. Aucun renvoi sur Non Réponse de programmé ;Explication: ;Appel du Voicemail Unavailable du poste destinataire ;On ferme le canal de communication.

- 7 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

exten => s-NOANSWER,1,Realtime(device_info,sda,$MACRO_EXTEN,var_) exten => s-NOANSWER,n,GotoIf($[$var_cfnr_ext != 0]?cfnr-sda:cfnr-sda-no) exten => s-NOANSWER,n(cfnr-sda), Set(CFNR-SDA-DEST=$var_cfnr_ext) exten => s-NOANSWER,n,Realtime(device_info,number, $CFNR-SDA-DEST,var_) exten => s-NOANSWER,n,set(CFNR-SDA-TECHNO=$var_technology) exten => s-NOANSWER,n,Realtime(device_info,sda,$MACRO_EXTEN,var_) exten => s-NOANSWER,n, Set(DEST-DEVICE=$var_number) exten => s-NOANSWER,n,Set(DEST-MOH-PREDECROCHE= $var_moh_predecroche) exten => s-NOANSWER,n,set(DEST-MOH-ATTENTE=$var_moh_attente) exten => s-NOANSWER,n,setMusicOnHold($DEST-MOH-ATTENTE) exten => s-NOANSWER,n,Dial($CFNR-SDA-TECHNO/ $CFNR-SDA-DEST,25,m($DEST-MOH-PREDECROCHE),r) exten => s-NOANSWER,n,VoiceMail(b$DEST-DEVICE@default) exten => s-NOANSWER,n,hangup() exten => s-NOANSWER,n(cfnr-sda-no),Realtime(device_info, sda,$MACRO_EXTEN,var_) exten => s-NOANSWER,n,VoiceMail(u$var_number@default) exten => s-NOANSWER,n,hangup()

2. appel_entrant_queue

La macro appel_entrant_queue est utilisée par le contexte [CONTEXT_INCOMING] et est appelée à chaque fois qu’un appel se présente à destination d’une SDA affectée à une queue (hormis pour celle de la hotline de la semaine).

[macro-appel_entrant_queue] ;*********************** Explication: On ouvre un canal de communication. Requête du Type Sql " select * from... " Test pour voir si le numéro appelant est dans la table asterisk.abreges [ Si Vrai, se rendre à l’extension nommée queue-poste-know. [ Si Faux, se rendre à l’extension nommée queue-poste-unknow. exten => s,1,Answer() exten => s,n,Realtime(abreges,numero,0$CALLERIDNUM,var_) exten => s,n,GotoIf($[test$var_num_abr != test]? queue-poste-know:queue-poste-unknow) ;*********************** Extension nommée queue-poste-know. Le numéro appelant est stocké dans la table asterisk.abreges Explication: Affectation variable CALLERIDNUM = champ num_abr issu de la requête. Affectation variable CALLERIDNAME = champ affichage issu de la requête. Se rendre à l’extension nommée queue-suite. exten => s,n(queue-poste-know),Set(CALLERID(Number)= $var_num_abr) exten => s,n,Set(CALLERID(name)=$var_affichage) exten => s,n,goto(queue-suite) ;*********************** Extension nommée queue-poste-unknow. Le numéro appelant est stocké dans la table asterisk.abreges Explication: Test si l’appelant présente son numéro [ Si Vrai, se rendre à l’extension nommée num-presente. [ Si Faux, se rendre à l’extension nommée num-non-presente. Extension nommée num-presente, l’appelant présente son numéro. Explication:

- 8 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

Affectation variable CALLERIDNUM = 00+ numero de l’appelant. Affectation variable CALLERIDNAME = Exterieur. Se rendre à l’extension nommée queue-suite. Extension nommée num-non-presente, l’appelant présente son numéro. Explication: Affectation variable CALLERIDNUM = Numero-Absent. Affectation variable CALLERIDNAME = Exterieur. Se rendre à l’extension nommée queue-suite. exten => s,n(queue-poste-unknow),GotoIf($[test$CALLERIDNUM != test]?num-presente:num-non-presente) exten => s,n(num-presente),Set(CALLERID(Number)=00$CALLERIDNUM) exten => s,n,Set(CALLERID(name)=Exterieur) exten => s,n,goto(queue-suite) ;*********************** Extension nommée queue-suite. Explication: Requête du Type Sql " select * from... " Affectation variable QUEUE_DESTINATION = champ number issu de la requête. Affectation variable TYPE_MESSAGE = champ message issu de la requête. Application QUEUE Si pas d’agents Actifs dans la Queue, on logue l’appel. Test pour vérifier si le type de message pour la queue est enregistreur [ Si Vrai, se rendre à l’extension nommée enregistreur. [ Si Faux, se rendre à l’extension nommée message. Extension nommée enregistreur. L’appelant pourra laisser un message sur répondeur Explication: Appel transfert au voicemail Unavailable associée à la queue. On ferme le canal de communication. Extension nommée message. Un simple message sera diffusé à l’appelant, pas d’enregistrement possible. Explication: Diffusion à l’appelant du message enregistré pour la queue. On ferme le canal de communication. exten => s,n(queue-suite),Realtime(device_info,sda, $MACRO_EXTEN,var_) exten => s,n,set(QUEUE_DESTINATION=$var_number) exten => s,n,set(TYPE_MESSAGE=$var_message) exten => s,n,Queue($QUEUE_DESTINATION,t) exten => s,n,System( echo "$EPOCH|$UNIQUEID| $QUEUE_DESTINATION|NONE| EXITWITHTIMEOUT|1" > /var/log/asterisk/queue_log ) exten => s,n,GotoIf($[$TYPE_MESSAGE =enregistreur] ?enregistreur:message) exten => s,n(enregistreur),Voicemail(u$QUEUE_DESTINATION @default) exten => s,n,Hangup() exten => s,n(message),Playback(/var/lib/asterisk/sounds/ message_$QUEUE_DESTINATION) exten => s,n,Hangup()

3. appel_entrant_queue_hotline

La macro appel_entrant_queue_hotline est utilisée par le contexte [CONTEXT_INCOMING] et est appelée à chaque fois qu’un appel se présente à destination de la SDA XX XX XX XX XX.

- 9 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

[macro-appel_entrant_queue_hotline] ;*********************** Explication: On ouvre un canal de communication. Test pour que le jour et l’heure ne soit pas un samedi entre 8h30 et 17h00 [ Si Vrai, se rendre à l’extension nommée semaine. [ Si Faux, se rendre à l’extension nommée samedi. exten => s,1,Answer() exten => s,n,set(HEURE= $IFTIME(08:29-16:59,sat,*,*?FERME:OUVERT)) exten => s,n,GotoIf($[$HEURE=OUVERT]?semaine:samedi) ;*********************** Extension nommée semaine. Explication: Test pour voir si le numéro appelant est dans la table asterisk.abreges [ Si Vrai, se rendre à l’extension nommée hotline-poste-know. [ Si Faux, se rendre à l’extension nommée hotline-poste-unknow. exten => s,n(semaine),Realtime(abreges,numero, 0$CALLERIDNUM,var_) exten => s,n,GotoIf($[test$var_num_abr != test]? hotline-poste-know:hotline-poste-unknow) ;*********************** Extension nommée hotline-poste-know. Le numéro appelant est stocké dans la table asterisk.abreges Explication: Affectation variable CALLERIDNUM = champ num_abr issu de la requête. Affectation variable CALLERIDNAME = champ affichage issu de la requête. Se rendre à l’extension nommée alc-suite. exten => s,n(hotline-poste-know),Set(CALLERID(Number)= $var_num_abr) exten => s,n,Set(CALLERID(name)=$var_affichage) exten => s,n,goto(hotline-suite) ;*********************** Extension nommée hotline-poste-unknow. Le numéro appelant n’est pas stocké dans la table asterisk.abreges Explication: Affectation variable CALLERIDNUM = 00+numero de l’appelant. Affectation variable CALLERIDNAME = Exterieur. Se rendre à l’extension nommée hotline-suite. exten => s,n(hotline-poste-unknow),Set(CALLERID(Number)= 00$CALLERIDNUM) exten => s,n,Set(CALLERID(name)=Exterieur) exten => s,n,goto(hotline-suite) ;*********************** Extension nommée hotline-suite. Explication: Requête du Type Sql " select * from... " Affectation variable QUEUE_DESTINATION = champ number issu de la requête. Affectation variable TYPE_MESSAGE = champ message issu de la requête. Application QUEUE Si pas d’agents Actifs dans la Queue, on logue l’appel. Test pour vérifier si le type de message pour la queue est enregistreur

- 10 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

[ Si Vrai, se rendre à l’extension nommée enregistreur. [ Si Faux, se rendre à l’extension nommée message. Extension nommée enregistreur. L’appelant pourra laisser un message sur répondeur Explication: Appel transféré au voicemail Unavailable associée à la queue. On ferme le canal de communication. Extension nommée message. Un simple message sera diffusé à l’appelant, pas d’enregistrement possible. Explication: Diffusion l’appelant du message enregistré pour la queue. On ferme le canal de communication. exten => s,n(hotline-suite),Realtime(device_info,sda, $MACRO_EXTEN,var_) exten => s,n,set(QUEUE_DESTINATION=$var_number) exten => s,n,set(TYPE_MESSAGE=$var_message) exten => s,n,Queue($QUEUE_DESTINATION,t) exten => s,n,System( echo "$EPOCH|$UNIQUEID| $QUEUE_DESTINATION|NONE|EXITWITHTIMEOUT|1" > /var/log/asterisk/ queue_log ) exten => s,n,GotoIf($[$TYPE_MESSAGE = enregistreur]?enregistreur:message) exten => s,n(enregistreur),Voicemail(u$QUEUE_DESTINATION @default) exten => s,n,Hangup() exten => s,n(message),Playback(/var/lib/asterisk/sounds/ message_$QUEUE_DESTINATION) exten => s,n,Hangup()

4. appel_sortant

La macro appel_sortant est utilisée par les contextes [CONTEXT_NATIONAL], [CONTEXT_GSM], [CONTEXT_BOX], [CONTEXT_MONACO], [CONTEXT_ BELGIQUE], [CONTEXT_INTERNATIONAL], [CONTEXT_URGENCY] et [CONTEXT_SURTAXE­RESTREINT]. Comme son nom l’indique, elle sert aux appels sortants du réseau.

[macro-appel_sortant] ;*********************** Explication: On ouvre un canal de communication. Requête du Type Sql " select * from... " Affectation variable NUM_PRESENTE= champ calleridnum issu de la requête. Test pour voir si le numéro appelant doit être présenté [ Si Vrai, se rendre à l’extension nommée secret. [ Si Faux, se rendre à l’extension nommée presentation. Extension nommée secret. Le numéro appelant ne sera pas présenté. Explication: On ouvre un canal de communication. Affectation variable CALLERIDNUM = private. Composition du numéro Appel sur le groupe de canaux g1. Suivant l’état du canal, se rendre à l’extension nommée correspondante. Extension nommée presentation. Le numéro appelant sera présenté. Explication: On ouvre un canal de communication. Affectation variable CALLERIDNUM = champs calleridnum issu de la requête. Composition du numéro Appel sur le groupe de canaux g1. Suivant l’état du canal, se rendre à l’extension nommée correspondante. On ferme le canal de communication. exten => s,1,Answer() exten => s,n,Realtime(device_info,number,$CALLERIDNUM,var_)

- 11 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

exten => s,n,set(NUM_PRESENTE=$var_calleridnum) exten => s,n,GotoIf($[$NUM_PRESENTE= 0]?SECRET:PRESENTATION) exten => s,n(SECRET),Set(CALLERID(NUM)=<private>) exten => s,n,Dial(Zap/g1/$MACRO_EXTEN,,of) exten => s,n,Goto(s-$DIALSTATUS,1) exten => s,n,Hangup() exten => s,n(PRESENTATION),set(CALLERID(number)=$NUM_PRESENTE) exten => s,n,Dial(Zap/g1/$MACRO_EXTEN,,of) exten => s,n,Goto(s-$DIALSTATUS,1) exten => s,n,Hangup() ;*********************** s-BUSY, le canal est occupée. Explication: Recomposition du numéro appel sur le groupe de canaux g2. Suivant l’état du canal, se rendre à l’extension nommée -DEBORD correspondante. On ferme le canal de communication. exten => s-BUSY,n,Dial(Zap/g2/$MACRO_EXTEN:1,,of) exten => s-BUSY,n,Goto(s-$DIALSTATUS-DEBORD,1) exten => s-BUSY,n,Hangup() ;*********************** s-CHANUNAVAIL, le canal est indisponible. Explication: Recomposition du numéro appel sur le groupe de canaux g2. Suivant l’état du canal, se rendre à l’extension nommée -DEBORD correspondante. On ferme le canal de communication. exten => s-CHANUNAVAIL,1,Dial(Zap/g2/$MACRO_EXTEN:1,,of) exten => s-CHANUNAVAIL,n,Goto(s-$DIALSTATUS-DEBORD,1) exten => s-CHANUNAVAIL,n,Hangup() ;*********************** s-CONGESTION, le canal est saturé. Explication: Recomposition du numéro appel sur le groupe de canaux g2. Suivant l’état du canal, se rendre à l’extension nommée -DEBORD correspondante. On ferme le canal de communication. exten => s-CONGESTION,1,Dial(Zap/g2/$MACRO_EXTEN:1,,of) exten => s-CONGESTION,n,Goto(s-$DIALSTATUS-DEBORD,1) exten => s-CONGESTION,n,Hangup() ;*********************** s-NOANSWER, le canal ne répond pas. Explication: On ferme le canal de communication. exten => s-NOANSWER,1,Hangup() ;*********************** s-ANSWER, le canal a répondu. Explication: On ferme le canal de communication. exten => s-ANSWER,1,Hangup() ;*********************** s-CANCEL, le canal a été annulé. Explication: On ferme le canal de communication. exten => s-CANCEL,1,Hangup() ;***********************

- 12 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

s-BUSY-DEBORD, le canal est toujours occupé. Explication: Diffusion de la tonalité occupée. Durée de la diffusion 20 secondes. Arrêt de la diffusion. On ferme le canal de communication. exten => s-BUSY-DEBORD,1,playtones(busy) exten => s-BUSY-DEBORD,n,wait(20) exten => s-BUSY-DEBORD,n,StopPlaytones() exten => s-BUSY-DEBORD,n,Hangup() ;*********************** s-CHANUNAVAIL-DEBORD, le canal est toujours indisponible. Explication: Diffusion de la tonalité congestion. Durée de la diffusion 20 secondes. Arrêt de la diffusion. On ferme le canal de communication. exten => s-CHANUNAVAIL-DEBORD,1,playtones(congestion) exten => s-CHANUNAVAIL-DEBORD,n,wait(20) exten => s-CHANUNAVAIL-DEBORD,n,StopPlaytones() exten => s-CHANUNAVAIL-DEBORD,n,Hangup() ;*********************** s-CONGESTION-DEBORD, le canal est toujours saturé. Explication: Diffusion de la tonalité congestion. Durée de la diffusion 20 secondes. Arrêt de la diffusion. On ferme le canal de communication. exten => s-CONGESTION-DEBORD,1,playtones(congestion) exten => s-CONGESTION-DEBORD,n,wait(20) exten => s-CONGESTION-DEBORD,n,StopPlaytones() exten => s-CONGESTION-DEBORD,n,Hangup() ;*********************** s-NOANSWER-DEBORD, le canal ne répond toujours pas. Explication: On ferme le canal de communication. exten => s-NOANSWER-DEBORD,1,Hangup() ;*********************** s-ANSWER-DEBORD, le canal a répondu. Explication: On ferme le canal de communication. exten => s-ANSWER-DEBORD,1,Hangup() ;*********************** s-CANCEL-DEBORD, le canal a été annulé. Explication: On ferme le canal de communication. exten => s-CANCEL-DEBORD,1,Hangup()

5. appel_abreges

La macro appel_abreges est utilisée par le contexte [CONTEXT_ABREGES]. Elle sert à composer les appels à destination des numéros abrégés.

[macro-appel_abrege] ;*********************** Explication:

- 13 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

On ouvre un canal de communication. Requête du Type Sql " select * from... " Affectation variable NUM_PRESENTE= champ calleridnum issu de la requête. Requête du Type Sql " select * from... " Affectation variable NUM_APPELE= champ num_abr issu de la requête. Test pour voir si le numéro appelant doit être présenté [ Si Vrai, se rendre à l’extension nommée secret. [ Si Faux, se rendre à l’extension nommée presentation. Extension nommée secret. Le numéro appelant ne sera pas présenté. Explication: On ouvre un canal de communication. Affectation variable CALLERIDNUM = private. Composition du numéro Appel sur le groupe de canaux g1. Suivant l’état du canal, se rendre à l’extension nommée correspondante. Extension nommée presentation. Le numéro appelant sera présenté. Explication: On ouvre un canal de communication. Affectation variable CALLERIDNUM = champ calleridnum issu de la requête. Composition du numéro Appel sur le groupe de canaux g1. Suivant l’état du canal, se rendre à l’extension nommée correspondante. On ferme le canal de communication. exten => s,1,Answer() exten => s,n,Realtime(device_info,number,$CALLERID(num),var_) exten => s,n,Set(NUM_PRESENTE=$var_calleridnum) exten => s,n,Realtime(abreges,num_abr,$MACRO_EXTEN,var_) exten => s,n,set(NUM_APPELE=$var_numero) exten => s,n,GotoIf($[$NUM_PRESENTE= 0]?SECRET:PRESENTATION) exten => s,n(SECRET),SetCallerPres(unavailable) exten => s,n,Dial(Zap/g1/0$NUM_APPELE) exten => s,n,Goto(s-$DIALSTATUS,1) exten => s,n,Hangup() exten => s,n(PRESENTATION),set(CALLERID(number)=$NUM_PRESENTE) exten => s,n,Dial(Zap/g1/0$NUM_APPELE) exten => s,n,Goto(s-$DIALSTATUS,1) exten => s,n,Hangup() ;*********************** s-BUSY, le canal est occupé. Explication: Recomposition du numéro appel sur le groupe de canaux g2. Suivant l’état du canal, se rendre à l’exten- sion nommée -DEBORD correspondante. On ferme le canal de communication. exten => s-BUSY,1,Dial(Zap/g2/$NUM_APPELE) exten => s-BUSY,n,Goto(s-$DIALSTATUS-DEBORD,1) exten => s-BUSY,n,Hangup() ;*********************** s-CHANUNAVAIL, le canal est indisponible. Explication: Recomposition du numéro appel sur le groupe de canaux g2. Suivant l’état du canal, se rendre à l’extension nommée -DEBORD correspondante. On ferme le canal de communication. exten => s-CHANUNAVAIL,1,Dial(Zap/g2/$NUM_APPELE) exten => s-CHANUNAVAIL,n,Goto(s-$DIALSTATUS-DEBORD,1) exten => s-CHANUNAVAIL,n,Hangup() ;***********************

- 14 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

s-CONGESTION, le canal est saturé. Explication: Recomposition du numéro appel sur le groupe de canaux g2. Suivant l’état du canal, se rendre à l’extension nommée -DEBORD correspondante. On ferme le canal de communication. exten => s-CONGESTION,1,Dial(Zap/g2/$NUM_APPELE) exten => s-CONGESTION,n,Goto(s-$DIALSTATUS-DEBORD,1) exten => s-CONGESTION,n,Hangup() ;*********************** s-NOANSWER, le canal ne répond pas. Explication: On ferme le canal de communication. exten => s-NOANSWER,1,Hangup() ;*********************** s-ANSWER, le canal a répondu. Explication: On ferme le canal de communication. exten => s-ANSWER,1,Hangup() ;*********************** s-CANCEL, le canal a été annulé. Explication: On ferme le canal de communication. exten => s-CANCEL,1,Hangup() ;*********************** s-BUSY-DEBORD, le canal est toujours occupé. Explication: Diffusion de la tonalité occupée. Dure de la diffusion 20 secondes. Arrêt de la diffusion. On ferme le canal de communication. exten => s-BUSY-DEBORD,1,playtones(busy) exten => s-BUSY-DEBORD,n,wait(20) exten => s-BUSY-DEBORD,n,StopPlaytones() exten => s-BUSY-DEBORD,n,Hangup() ;*********************** s-CHANUNAVAIL-DEBORD, le canal est toujours indisponible. Explication: Diffusion de la tonalité congestion. Dure de la diffusion 20 secondes. Arrêt de la diffusion. On ferme le canal de communication. exten => s-CHANUNAVAIL-DEBORD,1,playtones(congestion) exten => s-CHANUNAVAIL-DEBORD,n,wait(20) exten => s-CHANUNAVAIL-DEBORD,n,StopPlaytones() exten => s-CHANUNAVAIL-DEBORD,n,Hangup() ;*********************** s-CONGESTION-DEBORD, le canal est toujours saturé. Explication: Diffusion de la tonalité congestion. Dure de la diffusion 20 secondes. Arrêt de la diffusion. On ferme le canal de communication. exten => s-CONGESTION-DEBORD,1,playtones(congestion) exten => s-CONGESTION-DEBORD,n,wait(20) exten => s-CONGESTION-DEBORD,n,StopPlaytones() exten => s-CONGESTION-DEBORD,n,Hangup()

- 15 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

;*********************** s-NOANSWER-DEBORD, le canal ne répond toujours pas. Explication: On ferme le canal de communication. exten => s-NOANSWER-DEBORD,1,Hangup() ;*********************** s-ANSWER-DEBORD, le canal a répondu. Explication: On ferme le canal de communication. exten => s-ANSWER-DEBORD,1,Hangup() ;*********************** s-CANCEL-DEBORD, le canal a été annulé. Explication: On ferme le canal de communication. exten => s-CANCEL-DEBORD,1,Hangup()

6. appel_surtaxe

La macro appel_surtaxé est utilisée par le contexte [CONTEXTE_SURTAXE]. Elle sert à composer les appels à destination des numéros surtaxés.

[macro-appel_surtaxe] ;*********************** Explication: On ouvre un canal de communication. Requête du Type Sql " select * from... " Affectation variable NUM_APPELE= champ num_surtaxe issu de la requête. Test pour voir si le numéro appelé est présent dans la table asterisk.surtaxe. [ Si Vrai, se rendre à l’extension nommée OK. [ Si Faux, se rendre à l’extension nommée INTERDIT. Extension nommée OK. Le numéro composé existe dans la table asterisk.abreges. Explication: Composition du numéro Appel sur le groupe de canaux g1. Suivant l’état du canal, se rendre à l’extension nommée correspondante. On ferme le canal de communication. exten => s,1,Answer() exten => s,n,Realtime(surtaxe,num_surtaxe,$MACRO_EXTEN:1),var_) exten => s,n,Set(NUM_APPELE=$var_num_surtaxe) exten => s,n,GotoIf($[$NUM_APPELE= $MACRO_EXTEN:1)]?OK:INTERDIT) exten => s,n(OK),Dial(Zap/g1/0$NUM_APPELE) exten => s,n,Goto(s-$DIALSTATUS,1) exten => s,n,Hangup() ;*********************** Extension nommée INTERDIT. Le numéro composé n’existe pas dans la table asterisk.abreges. Explication: Diffusion à l’appelant du message "numérotation interdite ". On ferme le canal de communication. exten => s,n(INTERDIT),playback(not-auth-pstn) exten => s,n,Hangup() ;***********************

- 16 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

s-BUSY, Le canal est occupé. Explication: Composition du numéro appel sur le groupe de canaux g2. Si le canal est toujours occupé, diffusion de la tonalité occupée. Dure de la diffusion 20 secondes. Arrêt de la diffusion. On ferme le canal de communication. exten => s-BUSY,1,Dial(Zap/g2/$NUM_APPELE) exten => s-BUSY,n,playtones(busy) exten => s-BUSY,n,wait(20) exten => s-BUSY,n,StopPlaytones() exten => s-BUSY,n,Hangup() ;*********************** s-CHANUNAVAIL, Le canal est indisponible. Explication: Composition du numéro appel sur le groupe de canaux g2. Si le canal est toujours indisponible, diffusion de la tonalité congestion. Dure de la diffusion 20 secondes. Arrêt de la diffusion. On ferme le canal de communication. exten => s-CHANUNAVAIL,1,Dial(Zap/g2/$NUM_APPELE) exten => s-CHANUNAVAIL,n,playtones(congestion) exten => s-CHANUNAVAIL,n,wait(20) exten => s-CHANUNAVAIL,n,StopPlaytones() exten => s-CHANUNAVAIL,n,Hangup() ;*********************** s-CONGESTION, Le canal est saturé. Explication: Composition du numéro appel sur le groupe de canaux g2. Si le canal est toujours saturé, diffusion de la tonalité congestion. Durée de la diffusion 20 secondes. Arrêt de la diffusion. On ferme le canal de communication. exten => s-CONGESTION,1,Dial(Zap/g2/$NUM_APPELE) exten => s-CONGESTION,n,playtones(congestion) exten => s-CONGESTION,n,wait(20) exten => s-CONGESTION,n,StopPlaytones() exten => s-CONGESTION,n,Hangup() ;*********************** s-NOANSWER, le canal ne répond pas. Explication: On ferme le canal de communication. exten => s-NOANSWER,1,Hangup() ;*********************** s-ANSWER, le canal a répondu. Explication: On ferme le canal de communication. exten => s-ANSWER,1,Hangup() ;*********************** s-CANCEL, le canal a été annulé. Explication: On ferme le canal de communication. exten => s-CANCEL,1,Hangup()

- 17 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

7. inqueue

La macro inqueue est appelée par le contexte [CONTEXT_QUEUE]. Elle sert aux agents pour la connexion aux queues.

[macro-inqueue] ;*********************** Explication: On ouvre un canal de communication. Ajout en tant que membre de la queue, du poste ayant appelé la macro. Loggue de l’opération dans le fichier /var/log/asterisk/queue_log. Diffusion du message "vous êtes actuellement connecté". Fermeture du canal de communication exten => s,1,Answer() exten => s,n,AddQueueMember($MACRO_EXTEN:2) exten => s,n,System( echo "$EPOCH|$UNIQUEID |NONE|$CALLERIDNUM|AGENTLOGIN|-" > /var/log/asterisk/ queue_log ) exten => s,n,Playback(agent-loginok) exten => s,n,Hangup()

8. outqueue

La macro outqueue est appelée par le contexte [CONTEXTE_QUEUE]. Elle sert aux agents pour se déconnecter des queues.

[macro-outqueue] ;*********************** Explication: On ouvre un canal de communication. Suppression en tant que membre de la queue du poste ayant appelé la macro. Loggue de l’opération dans le fichier /var/log/asterisk/queue_log. Diffusion du message "Vous êtes actuellement déconnecté". fermeture du canal de communication. exten => s,1,Answer() exten => s,n,RemoveQueueMember($MACRO_EXTEN:2) exten => s,n,Sys- tem( echo "$EPOCH|$UNIQUEID|NONE|$CALLERIDNUM|AGENTLOGOFF|- " > /var/log/asterisk/queue_log ) exten => s,n,Playback(agent-loggedoff) exten => s,n,Hangup()

- 18 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMymVftb2BPzYgLAA==-enidentnumber

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

Introduction

Cette annexe présente la liste des applications utilisables dans le plan de numérotation.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyMYoyeGBPzYgLAA==-enidentnumber

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

Utilisation de la CLI

La console Asterisk permet d’obtenir la liste des applications disponibles sur le système.

asterisk1*CLI> core show applications

La syntaxe de chaque application est fournie également à l’aide d’une commande de la CLI.

Exemple de la syntaxe de la commande VoiceMail (Messagerie vocale) ( ) :

asterisk1*CLI> show application VoiceMail asterisk1*CLI> -= Info about application ’VoiceMail’ =- [Synopsis] Leave a Voicemail message [Description] VoiceMail(mailbox[@context][&mailbox[@context]][...] [|options])( ) : This application allows the calling party to leave a message for the specified list of mail- boxes. When multiple mailboxes are specified, the greeting will be taken from the first mailbox specified. Dialplan execution will stop if the specified mail- box does not exist. The Voicemail application will exit if any of the follo- wing DTMF digits are received( ) : 0 - Jump to the ’o’ extension in the current dialplan context. * - Jump to the ’a’ extension in the current dialplan context. This application will set the following channel variable upon completion( ) : VMSTATUS - This indicates the status of the execution of the VoiceMail application. The possible values are( ) : SUCCESS | USEREXIT | FAILED Options( ) : b - Play the ’busy’ greeting to the calling party. g(#) - Use the specified amount of gain when recording the voicemail message. The units are whole-number decibels (dB). s - Skip the playback of instructions for leaving a message to the calling party. u - Play the ’unavailable greeting. j - Jump to priority n+101 if the mailbox is not found or some other error occurs.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyMNtzf2BPzYgLAA==-enidentnumber

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

Signification des applications

Asterisk 1.6 propose par défaut 173 applications.

AbsoluteTimeout( ) : positionnement de la durée maximale d’un appel.

AddQueueMember( ) : ajout dynamique de membres dans une file d’attente.

ADSIProg( ) : chargement de script ADSI (Analog Display Service Interface) dans un téléphone ADSI.

AgentCallbackLogin( ) : enregistrement d’un agent dans une file d’attente afin qu’il soit rappelé.

AgentLogin( ) : enregistrement d’un agent.

AgentMonitorOutgoing( ) : enregistrement des appels sortants d’un agent.

AGI( ) : exécution d’une application AGI.

AlarmReceiver( ) : réception et décodage des alarmes émises par les tableaux d’alarmes (effraction, incendie).

Answer( ) : réponse à un canal qui sonne.

AppendCDRUserField( ) : affectation d’une valeur au champ utilisateur du CDR.

Authenticate( ) : authentification de l’appelant par mot de passe.

BackGround( ) : lecture d’un fichier audio en attendant que l’appelant compose un numéro.

BackgroundDetect( ) : lecture d’un fichier audio avec détection de la voix.

Busy( ) : indication au canal de sonner occupé.

ChangeMonitor( ) : changement du nom du fichier de monitoring d’un canal.

ChanIsAvail( ) : vérification de la disponibilité d’un canal.

CheckGroup( ) : vérification du nombre de canaux pour un groupe.

Congestion( ) : indication de l’état d’encombrement d’un canal.

ControlPlayback( ) : lecture d’un fichier audio avec des fonctions d’avancement (forward) ou de retour arrière (rewind).

Cut( ) : affectation d’une partie d’une variable à une autre variable.

DateTime( ) : énoncé de la date dans un format personnalisé.

DBdel( ) : suppression d’une clé dans la base de données Asterisk.

DBdeltree( ) : suppression d’une famille dans la base de données Asterisk.

DBget( ) : recherche d’une valeur d’une clé dans la base de données Asterisk.

DBput( ) : enregistrement d’une valeur dans la base de données Asterisk.

DeadAGI( ) : exécution d’un script AGI sur un canal raccroché.

Dial( ) : connexion d’un appel sur le canal courant.

DigitTimeout( ) : définition du délai maximum entre la frappe des numéros.

Directory( ) : fourniture d’un répertoire des extensions de boîtes vocales.

DISA( ) : autorisation, des utilisateurs effectuant des appels entrants, à effectuer des appels sortants (Direct Inward System Access).

DumpChan( ) : affichage des informations concernant un canal d’appel.

DUNDiLookup( ) : recherche d’un numéro de téléphone avec le système DUNDI.

EAGI( ) : exécution d’une application EAGI.

Echo( ) : retour d’un écho du flux audio à l’appelant.

EndWhile( ) : fin d’une boucle while.

EnumLookup( ) : recherche d’un numéro de téléphone avec le système ENUM.

Eval( ) : évaluation de variables dans une expression.

Exec( ) : exécution d’une application interne.

ExecIf( ) : exécution conditionnelle d’une application interne.

Festival( ) : énoncé d’un texte à l’utilisateur, à l’aide de l’outil de traduction écrit /oral Festival.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyIDXchWBPzYgLAA==-enidentnumber

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

Flash( ) : envoie d’un signal flash sur un canal Zap.

ForkCDR( ) : duplication du CDR.

GetCPEID( ) : récupération de l’identifiant CPE d’un téléphone ADSI.

GetGroupCount( ) : obtention du nombre de personnes dans un groupe donné.

GetGroupMatchCount( ) : obtention du nombre de personnes dans tous les groupes correspondant au motif donné.

Goto( ) : saut à une priorité particulière, une extension ou un contexte.

GotoIf( ) : saut à une priorité particulière, une extension ou un contexte, de façon conditionnelle.

Hangup( ) : raccrochage du canal en cours.

HasNewVoicemail( ) : saut à la priorité n + 101 si présence d’un nouveau message dans la boîte vocale.

HasVoicemail( ) saut à la priorité n + 101 si présence d’un message dans la boîte vocale.

IAX2Provision( ) : provision d’un appareil IAXy avec un descriptif donné.

ImportVar( ) : importation dans une variable d’une autre variable d’un canal donné.

LookupBlacklist( ) : recherche dans une blacklist (liste noire) du nom et du numéro d’une personne appelante d’après son Caller.

LookupCIDName( ) : recherche de l’identifiant d’une personne dans la base de données AstDB (CallerID).

Macro( ) : implémentation d’une macro. Fonction conservée sous Asterisk 1.6 mais il est conseillé d’utiliser les applications Gosub() / Return().

MacroExit( ) : sortie d’une Macro.

MacroIf( ) : implémentation d’une macro conditionnelle.

MailboxExists( ) : saut vers la priorité n+101 si la boîte vocale existe.

Math( ) : traitement de fonctions mathématiques.

MD5( ) : calcul du checksum MD5.

MD5Check( ) : recherche du checksum MD5.

MeetMe( ) : introduction de l’appelant dans une conférence.

MeetMeAdmin( ) : administration d’une conférence.

MeetMeCount( ) : compte le nombre de participants d’une conférence.

Milliwatt( ) : génération d’une tonalité de 1000 Hz à 0 dbm.

Monitor( ) : surveillance d’un flux audio du canal en cours.

MP3Player( ) : lecture d’un fichier MP3.

MusicOnHold( ) : lecture d’une musique d’attente de façon indéfinie.

MYSQL( ) : fait référence à diverses fonctionnalités MySQL.

NBScat( ) : lecture d’un flux NBS local (Network Broadcast Sound).

NoCDR( ) : désactivation des enregistrements CDR pour l’appel en cours.

NoOp( ) : ne fait rien. Utilisé à des fins de débogage.

Park( ) : mise en parc de l’appel en cours.

ParkAndAnnounce( ) : mise en parc de l’appel en cours et annonce l’appel sur le canal donné.

ParkedCall( ) : réponse à un appel mis en parc.

PauseQueueMember( ) : mise en pause d’un membre d’une file d’attente.

Pickup( ) : supervision d’appel.

Playback( ) : lecture d’un fichier.

PlayTones( ) : lecture d’une liste de tonalités.

PrivacyManager( ) : demande à l’appelant d’entrer un numéro de téléphone si le CallerID n’est pas émis.

Progress( ) : indication de l’avancement d’un appel.

Queue( ) : mise en file d’attente de l’appel en cours.

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyIDXchWBPzYgLAA==-enidentnumber

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

Random( ) : saut conditionnel basé sur une probabilité donnée.

Read( ) : récupération des chiffres tapés par l’appelant et stockage dans une variable donnée.

ReadFile( ) : lecture d’un fichier donné en paramètre.

RealTime( ) : recherche d’informations sur les données Realtime.

RealTimeUpdate( ) : mise à jour d’une donnée Realtime.

Record( ) : enregistrement d’un fichier.

RemoveQueueMember( ) : suppression dynamique de membres d’une file d’attente.

ResetCDR( ) : réinitialisation de l’enregistrement CDR.

ResponseTimeout( ) : positionnement d’un délai maximum avant de recevoir une réponse de l’appelant.

RetryDial( ) : lancement d’un appel et nouvel essai si échec.

Return( ) : retour d’une routine gosub.

Ringing( ) : indication de la tonalité de sonnerie.

RxFAX( ) : réception d’un FAX dans un fichier.

SayAlpha( ) : énonce l’expression donnée.

SayDigits( ) : énonce le chiffre donné.

SayNumber( ) : énonce le nombre donné.

SayPhonetic( ) : énonce en phonétique l’expression donnée.

SayUnixTime( ) : énonce l’heure et la date dans un format spécifique.

SendDTMF( ) : émission de tonalités de chiffres.

SendImage( ) : émission d’un fichier image sur le canal en cours.

SendText( ) : émission d’un texte sur le canal en cours.

SendURL( ) : demande à l’appareil téléphonique client d’aller à une URL (si celui­ci supporte le HTML).

Set( ) : affecte une donnée à une variable.

SetAccount( ) : définition du code de comptabilité CDR.

SetAMAFlags( ) : définition des flags AMA dans le CDR.

SetCallerID( ) : définition du CallerID (identifiant de l’appelant).

SetCallerPres( ) : définition des indicateurs de présentation du CallerID, remplacé par Callerpres().

SetCDRUserField( ) : définition du champ utilisateur dans le CDR.

SetCIDName( ) : définition du nom de l’appelant selon le CallerID.

SetCIDNum( ) : définition du numéro de l’appelant selon le CallerID.

SetGlobalVar( ) : affecte une donnée à une variable globale.

SetGroup( ) : affecte une donnée au groupe du canal en cours.

SetLanguage( ) : définition du langage utilisé par le canal en cours.

SetMusicOnHold( ) : définition de la classe par défaut de la musique d’attente, remplacé par SetChannel(music class=...).

SetRDNIS( ) : définition du numéro RDNIS (Redirect Dial Number ID Service).

SetTransferCapability( ) : définition de la capacité de transfert ISDN.

SetVar( ) : affecte une donnée à une variable.

SIPAddHeader( ) : ajout d’un en­tête SIP à l’appel sortant.

SIPDtmfMode( ) : changement du dtmfmode pour un appel SIP.

SIPGetHeader( ) : obtention de l’en­tête SIP à partir d’un appel entrant.

SMS( ) : communication avec un centre de service de SMS et avec des téléphones compatibles.

SoftHangup( ) : raccrochage (logiciel) d’un canal donné.

Sort( ) : tri d’une liste de mots­clés et de valeurs.

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyIDXchWBPzYgLAA==-enidentnumber

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

StartMusicOnHold( ) : démarrage de la lecture d’une musique d’attente.

StopMonitor( ) : arrêt de la surveillance d’un canal.

StopMusicOnHold( ) : arrêt de la lecture d’une musique d’attente.

StopPlayTones( ) : arrêt de la lecture d’une liste de tonalités.

System( ) : exécution d’une commande du système d’exploitation.

Transfer( ) : transfert de l’appelant vers une extension distante.

TrySystem( ) : essai d’exécution d’une commande du système d’exploitation.

TxFAX( ) : émission d’un fichier FAX.

TXTCIDName( ) : recherche du nom de l’appelant dans l’enregistrement TXT (DNS).

UnpauseQueueMember( ) : sortie du mode pause d’un membre de la file d’attente.

UserEvent( ) : émission d’un événement à l’interface de l’Asterisk Manager.

Verbose( ) : émission d’un texte sur la sortie des commentaires (verbose output).

VMAuthenticate( ) : authentification de l’appelant à l’aide des mots de passé de la boîte aux lettres.

VoiceMail( ) : demande à l’appelant de laisser un message dans la boîte vocale donnée.

VoiceMailMain( ) : entrée dans le système de boîte vocale.

Wait( ) : attente du nombre donné (en seconde).

WaitExten( ) : attente de la fourniture d’une extension.

WaitForRing( ) : attente durant la sonnerie d’un appel (laisse sonner un appel).

WaitForSilence( ) : attente d’une durée de silence.

WaitMusicOnHold( ) : lecture d’une musique d’attente pendant le nombre donné (en seconde), remplacé par MusicOnHold().

While( ) : démarrage d’une boucle while.

Zapateller( ) : gestion d’une tonalité spécifique (SIT) en vue de bloquer les appels publicitaires.

ZapBarge( ) : écoute d’un canal Zap.

ZapRAS( ) : exécution du serveur d’accès distant ISDN de Zaptel.

ZapScan( ) : scan des canaux Zap en vue de la surveillance des appels.

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyIDXchWBPzYgLAA==-enidentnumber

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

Quelques nouvelles commandes introduites par la 1.6

Bridge() : permet de connecter deux canaux dans le dialplan.

Originate() : existe depuis la version 1.6.2 d’Asterisk. Permet d’initier un appel sortant.

Jack() : kit de connexion Jack audio. Permet de connecter un canal Asterisk à une entrée ou une sortie Jack.

Mset() : permet de paramétrer plusieurs variables en une seule commande (ex : Mset(param1 = valeur1, param2 = valeur2...)).

ConfBridge() : même fonctionnalité que MeetMe() mais l’audio est traitée en interne dans Asterisk et non par DAHDI (ou Zaptel).

MiniVM() : MiniVoiceMail est un nouveau système de Voice Mail constitué de petites applications et fonctions (MiniVMAccMess, MiniVMDelete, MiniVMGreet, MiniVMNotify, MiniVMRecord).

Source : http://www.voip­info.org/wiki/index.php?page=Asterisk+­+documentation+of+application+commandes

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy6EH7jWBPzYgLAA==-enidentnumber

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

Introduction

Comme tout système logiciel, Asterisk a besoin d’un certain nombre de fichiers de configuration pour son fonctionnement.

Il existe plus de soixante fichiers de configuration qui se trouvent tous sous /etc/asterisk et sont caractérisés par un suffixe en .conf.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyZvuHlmBPzYgLAA==-enidentnumber

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

Asterisk.conf

Le fichier de configuration principal est asterisk.conf ; il indique trois types d’informations :

Emplacement des répertoires de travail [directories] ;

fichiers de configuration ;

fichiers de logs ;

fichiers de librairies ;

scripts ;

modules ;

programme du serveur ;

spool (transfert des données).

Permissions et propriétés [files] ;

Comportement des options de démarrage [options].

Ce fichier est généré de façon automatique lors de l’installation d’Asterisk (après le lancement de la commande make samples).

[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

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy6MyrnmBPzYgLAA==-enidentnumber

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

Configuration des canaux

1. agents.conf

Ce fichier permet la configuration des postes d’opérateurs de centre d’appel : les agents. Voir le chapitre Implémentation d’un centre d’appels. La section [general] permet de spécifier qu’un agent peut être de type persistant, c’est­à­dire stocké dans la base de données locale à Asterisk (AstDB) et toujours présent même après un redémarrage d’Asterisk. Les agents sont définis dans la section [agents].

[general] ; ; Define whether callbacklogins should be stored in astdb for ; persistence. Persistent logins will be reloaded after ; Asterisk restarts. ; persistentagents=yes ; ; Agent configuration ; ; [agents] ; ; Define autologoff times if appropriate. This is how long ; the phone has to ring with no answer before the agent is ; automatically logged off (in seconds) ; ;autologoff=15 ; ; Define ackcall to require an acknowledgement by ’#’ when ; an agent logs in using agentcallbacklogin. Default is "no". ; ;ackcall=no ; ; Define wrapuptime. This is the minimum amount of time when ; after disconnecting before the caller can receive a new call ; note this is in milliseconds. ; ;wrapuptime=5000 ; ; Define the default musiconhold for agents ; musiconhold => music_class ; ;musiconhold => default ; ; Define updatecdr. This is whether or not to change the source ; channel in the CDR record for this call to agent/agent_id so ; that we know which agent generates the call ; ;updatecdr=no ; ; Group memberships for agents (may change in mid-file) ; ;group=3 ;group=1,2 ;group= ; ; -------------------------- ; This section is devoted to recording agent’s calls ; The keywords are global to the chan_agent channel driver ; ; Enable recording calls addressed to agents. It’s turned off by default. ;recordagentcalls=yes ; ; The format to be used to record the calls: wav, gsm, wav49. ; By default its "wav".

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyFKYVpmBPzYgLAA==-enidentnumber

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

;recordformat=gsm ; ; Insert into CDR userfield a name of the the created recording ; By default it’s turned off. ;createlink=yes ; ; The text to be added to the name of the recording. Allows forming a url link. ;urlprefix=http://localhost/calls/ ; ; The optional directory to save the conversations in. The default is ; /var/spool/asterisk/monitor ;savecallsin=/var/calls ; ; An optional custom beep sound file to play to always-connected agents. ;custom_beep=beep ; ; ---------------------- ; ; This section contains the agent definitions, in the form: ; ; agent => agentid,agentpassword,name ; ;agent => 1001,4321,Mark Spencer ;agent => 1002,4321,Will Meadows

2. iax.conf

Ce fichier concerne la configuration des canaux de type IAX. Voir le chapitre Entreprise multisites.

3. mgcp.conf

Ce fichier concerne la configuration des canaux de type MGCP. Les téléphones doivent supportés MGCP.

4. sip.conf

Ce fichier concerne la configuration des canaux de type SIP. Voir le chapitre Conception du plan de numérotation.

5. sip_notify.conf

Une fonctionnalité intéressante d’Asterisk est de pouvoir redémarrer à distance des téléphones de type SIP en lui faisant parvenir un message NOTIFY, défini dans le fichier sip_notify.conf. Chaque message est propre à chaque constructeur.

[polycom-check-cfg] Event=>check-sync Content-Length=>0 ; Untested [sipura-check-cfg] Event=>resync Content-Length=>0 ; Untested [grandstream-check-cfg] Event=>sys-control ; Untested [cisco-check-cfg]

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyFKYVpmBPzYgLAA==-enidentnumber

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

Event=>check-sync Content-Length=>0 ; Untested - from Snom docs [reboot-snom] Event=>reboot Content-Length=>0

6. skinny.conf

Ce fichier permet la configuration des canaux utilisés par le protocole skinny et permet donc d’utiliser des téléphones Cisco de type SCCP.

7. chan_dahdi.conf

Ce fichier permet de configurer des canaux Zap ; il sert à lier Asterisk avec le pilote Zaptel. Voir le chapitre Installation d’un serveur Asterisk.

[trunckgroups] [channels] switchtype=euroisdn pridialplan=unknown ;prilocaldialplan=local ;internationalprefix=00 ;nationalprefix=0 ;usecallingpres=yes ;busydetect=no ; not need on pri ;callprogress=no ; was yes but wiki says experima- tley could be produce hangups ;callwaitingcallerid=yes ; show callerid on callwaitingcalls echotraining=yes echocancel=yes ;echocancelwhenbridged=yes faxdetect=both ;overlapdial=yes ;immediate=no ;callerid=asreceived language=fr ;rxgain=0.0 ;txgain=0.0 ;threewaycalling=yes ;idecallerid=yes ;usecallingpres=yes ;callwaiting=no ;transfert=yes ;cancallforward=yes ;callreturn=yes ;callprogress=no signalling=pri_cpe musiconhold=default context=incoming group=1 channel => 1-15

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyFKYVpmBPzYgLAA==-enidentnumber

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

Configuration du plan de numérotation

1. extensions.conf

Ce fichier est le cœur d’Asterisk et contient le plan de numérotation. Voir les chapitres Conception du plan de numérotation et Amélioration du plan de numérotation relatifs à ce sujet.

2. extensions.ael

Ce fichier fait référence à AEL (Asterisk Extensions Language) qui est un langage d’extension à la syntaxe classique habituelle que nous pouvons trouver dans extensions.conf.

// // Example AEL config file // macro std-exten-ael( ext , dev ) Dial($dev/$ext,20); switch($DIALSTATUS) case BUSY: Voicemail(b$ext); break; default: Voicemail(u$ext); ; catch a VoiceMailMain($ext); return; ; ; context ael-demo s => Wait(1); Answer(); TIMEOUT(digit)=5; TIMEOUT(response)=10; restart: Background(demo-congrats); instructions: for (x=0; $x < 3; x=$x + 1) Background(demo-instruct); WaitExten(); ; ; 2 => Background(demo-moreinfo); goto s|instructions; ; 3 => LANGUAGE()=fr; goto s|restart; ; 500 => Playback(demo-abouttotry); Dial(IAX2/[email protected]); Playback(demo-nogo); goto s|instructions; ; 600 => Playback(demo-echotest); Echo(); Playback(demo-echodone); goto s|instructions;

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyitIRrWBPzYgLAA==-enidentnumber

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

; _1234 => &std-exten-ael($EXTEN, "IAX2"); # => Playback(demo-thanks); Hangup(); ; t => jump #; i => Playback(invalid); ;

3. features.conf

Ce fichier fait référence au parcage des appels (ou rangement) ; il comprend les informations principales suivantes :

Numéro de l’extension à composer pour parquer l’appel.

Numéro des extensions où les appels sont parqués.

Contexte utilisé pour les appels parqués.

Durée (en secondes) pendant laquelle un appel peut être parqué.

Fichier de type audio joué à l’appelant dont l’appel est parqué.

; Sample Parking configuration ; [general]

parkext => 700 ; What extension to dial to park

parkpos => 701-720 ; What extensions to park

calls on. These needs to be ; numeric, as Asterisk starts from the start position ; and increments with one for the next parked call.

context => parkedcalls ; Which context parked calls are in

;parkingtime => 45 ; Number of seconds a call

can be parked for ; (default is 45 seconds) ;transferdigittimeout => 3 ; Number of seconds to wait between digits when transfering a call

;courtesytone = beep ; Sound file to play to

the parked caller ; when someone dials a parked call ;xfersound = beep ; to indicate an attended transfer is complete ;xferfailsound = beeperr ; to indicate a failed transfer ;adsipark = yes ; if you want ADSI parking announcements ;findslot => next ; Continue to the ’next’ free parking space. ; Defaults to ’first’ available ;pickupexten = *8 ; Configure the pickup extension. Default is *8 ;featuredigittimeout = 500 ; Max time (ms) between digits for ; feature activation. Default is 500 [featuremap] ;blindxfer => #1 ; Blind transfer ;disconnect => *0 ; Disconnect ;automon => *1 ; One Touch Record

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyitIRrWBPzYgLAA==-enidentnumber

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

;atxfer => *2 ; Attended transfer [applicationmap] ; Note that the DYNAMIC_FEATURES channel variable must be set to use the features ; defined here. The value of DYNAMIC_FEATURES should be the names of the features ; to allow the channel to use separated by ’#’. For example: ; Set(DYNAMIC_FEATURES=myfeature1#myfeature2#myfeature3) ; ;testfeature => #9,callee, Playback,tt-monkeys ;Play tt-monkeys to ;callee if #9 was pressed

4. extconfig.conf

Ce fichier est utilisé pour la configuration des tables de base de données (MySQL par exemple) via le moteur Realtime. Voir le chapitre Amélioration du plan de numérotation.

[settings] sipusers => mysql,asterisk_rt,sip_table sippeers => mysql,asterisk_rt,sip_table iaxusers => mysql,asterisk_rt,iax_table iaxpeers => mysql,asterisk_rt,iax_table queues => mysql,asterisk_rt,queue_table queue_members => mysql,asterisk_rt,queue_members_table voicemail => mysql,asterisk_rt,voicemail_table ;extensions => mysql,asterisk_rt,extensions_table

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyitIRrWBPzYgLAA==-enidentnumber

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

Configuration de commandes spécifiques du plan de numérotation

1. festival.conf

Ce fichier permet la configuration de l’application Festival. Voir le chapitre Applications connexes.

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

2. indications.conf

La définition des tonalités de sonnerie (liste de sons) est définie dans ce fichier ; il est possible de définir des tonalités par pays. L’exemple ci­dessous ne traite que des tonalités en France.

; indications.conf ; Configuration file for location specific tone indications ; used by the pbx_indications module. ; ; NOTE: ; When adding countries to this file, please keep them in alphabetical ; order according to the 2-character country codes! ; ; The [general] category is for certain global variables. ; All other categories are interpreted as location specific indications ;

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMye/Jfs2BPzYgLAA==-enidentnumber

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

; [general] country=us ; default location ; [example] ; description = string ; The full name of your country, in English. ; alias = iso[,iso]* ; List of other countries 2-letter iso codes, which have the same ; tone indications. ; ringcadence = num[,num]* ; List of durations the physical bell rings. ; dial = tonelist ; Set of tones to be played when one picks up the hook. ; busy = tonelist ; Set of tones played when the receiving end is busy. ; congestion = tonelist ; Set of tones played when there is some congestion (on the network?) ; callwaiting = tonelist ; Set of tones played when there is a call waiting in the background. ; dialrecall = tonelist ; Not well defined; many phone systems play a recall dial tone after hook ; flash. ; record = tonelist ; Set of tones played when call recording is in progress. ; info = tonelist ; Set of tones played with special information messages (e.g., "number is ; out of service") ; ’name’ = tonelist ; Every other variable will be available as a shortcut for the "PlayList" command ; but will not be used automatically by Asterisk. ; ; ; The tonelist itself is defined by a comma-separated sequence of elements. ; Each element consist of a frequency (f) with an optional duration (in ms) ; attached to it (f/duration). The frequency component may be a mixture of two ; frequencies (f1+f2) or a frequency modulated by another frequency (f1+f2) ; The implicit modulation depth is fixed at 90%, though. ; If the list element starts with a !, that element is NOT repeated, ; therefore, only if all elements start with !, the tonelist is time-limited, ; ; concisely: ; element = [!]freq[+|*freq2][/duration] ; tonelist = element[,element]* ; ; Please note that SPACES ARE NOT ALLOWED in tone lists! ;

[fr]

description = France ; Reference: http://www.itu.int/ITU-T/inr/forms/files/to- nes-0203.pdf ringcadence = 1500,3500 ; Dialtone can also be 440+330 dial = 440 busy = 440/500,0/500 ring = 440/1500,0/3500

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMye/Jfs2BPzYgLAA==-enidentnumber

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

; CONGESTION - not specified congestion = 440/250,0/250 callwait = 440/300,0/10000 ; DIALRECALL - not specified dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/10 0,350+440 ; RECORDTONE - not specified record = 1400/500,0/15000 info = !950/330,!1400/330,!1800/330 stutter = !440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0 /100,!440/100,!0/100,!440/100,!0/100,440

3. meetme.conf

Les conférences MeetMe peuvent être configurées de manière dynamique via l’application Dial() ou statique à l’aide du fichier de configuration Meetme.conf.

Voir le chapitre Amélioration du plan de numérotation.

; ; Configuration file for MeetMe simple conference rooms for Aste- risk of course. ; ; This configuration file is read eve- ry 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] ; ;conf => 1234 ;conf => 2345,9938 conf => 600

4. musiconhold.conf

Ce fichier contient tous les paramètres de configuration des musiques d’attente, notamment les classes de musique d’attente et l’emplacement des fichiers des musiques d’attente.

; Music on Hold -- Sample Configuration ; [default] mode=files directory=/var/lib/asterisk/mohmp3 ; valid mode options: ; quietmp3 -- default ; mp3 -- loud ; mp3nb -- unbuffered ; quietmp3nb -- quiet unbuffered

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMye/Jfs2BPzYgLAA==-enidentnumber

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

; custom -- run a custom application ; files -- read files from a directory in any Asterisk supported format [beatles] mode=files ;mode=quietmp3 directory=/var/lib/asterisk/mohmp3/beatles [beethoven] mode=quietmp3 directory=/var/lib/asterisk/mohmp3/beethoven ;[manual] ;mode=custom ; Note that with mode=custom, a directory is not requi- red, such as when reading ; from a stream. ;directory=/var/lib/asterisk/mohmp3 ;application=/usr/bin/mpg123 -q -r 8000 -f 8192 -b 2048 --mono -s ;[ulawstream] ;mode=custom ;application=/usr/bin/streamplayer 192.168.100.52 888 ;format=ulaw ; mpg123 on Solaris does not always exit properly; madplay may be a better ; choice ;[solaris] ;mode=custom ;directory=/var/lib/asterisk/mohmp3 ;application=/site/sw/bin/madplay -Q -o raw:- —mono -R 8000 -a -12 ; ; ; File-based (native) music on hold ; ; This plays files directly from the specified directory, no external ; processes are required. Files are played in normal sorting order ; (same as a sorted directory listing), and no volume or other ; sound adjustments are available. If the file is available in ; the same format as the channel’s codec, then it will be played ; without transcoding (same as Playback would do in the dialplan). ; Files can be present in as many formats as you wish, and the ; ’best’ format will be chosen at playback time. ; ; NOTE: ; If you are not using "autoload" in modules.conf, then you ; must ensure that the format modules for any formats you wish ; to use are loaded _before_ res_musiconhold. If you do not do ; this, res_musiconhold will skip the files it is not able to ; understand when it loads. ; ;[native] ;mode=files ;directory=/var/lib/asterisk/moh-native ; ;[native-random] ;mode=files ;directory=/var/lib/asterisk/moh-native ;random=yes ; Play the files in a random order [siege-attente] mode=files directory=/var/lib/asterisk/mohmp3/siege/attente

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMye/Jfs2BPzYgLAA==-enidentnumber

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

random=no [siege-predecroche] mode=files directory=/var/lib/asterisk/mohmp3/siege/predecroche random=no [agence1-attente] mode=files directory=/var/lib/asterisk/mohmp3/agence1/attente random=no [agence2-predecroche] mode=files directory=/var/lib/asterisk/mohmp3/agence2/predecroche random=no

5. queues.conf

Ce fichier permet la configuration des files d’attentes (fonction de centre d’appels).

Une file d’attente est définie entre crochet ([file_number1] par exemple).Voir le chapitre Implémentation d’un centre d’appels.

[general] ; ; Global settings for call queues ; ; Persistent Members ; Store each dynamic agent in each queue in the astdb so that ; when asterisk is restarted, each agent will be automatically ; readded into their recorded queues. Default is ’yes’. ;

persistentmembers = yes

; ; Note that a timeout to fail out of a queue may be passed as part of ; an application call from extensions.conf: ; Queue(queuename|[options]|[optionalurl]|[announceoverride]| [timeout]) ; example: Queue(dave|t|||45) ;[markq] ; ; A sample call queue ; ; Musiconhold sets which music applies for this particular ; call queue (configure classes in musiconhold.conf) ; ;musiconhold = default ; ; An announcement may be specified which is played for the ; member as soon as they answer a call, typically to indicate to them which queue ; this call should be answered as, so that agents or members who are ; listening to more than one queue can differentiated how they should ; engage the customer ; ;announce = queue-markq ; ; A strategy may be specified. Valid strategies include: ; ; ringall - ring all available channels until one answers (default) ; roundrobin - take turns ringing each available interface

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMye/Jfs2BPzYgLAA==-enidentnumber

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

; leastrecent - ring interface which was least recently called by this queue ; fewestcalls - ring the one with fewest completed calls from this queue ; random - ring random interface ; rrmemory - round robin with memory, remember where we left off last ring pass ; ;strategy = ringall ; ; Second settings for service level (default 0) ; Used for service level statistics (calls answered within service level time ; frame) ;servicelevel = 60 ; ; A context may be specified, in which if the user types a SINGLE ; digit extension while they are in the queue, they will be taken out ; of the queue and sent to that extension in this context. ; ;context = qoutcon ; ; How long do we let the phone ring before we consider this a timeout... ; ;timeout = 15 ; ; How long do we wait before trying all the members again? ; ;retry = 5 ; ; Weight of queue - when compared to other queues, higher weights get ; first shot at available channels when the same channel is included in ; more than one queue. ; ;weight=0 ; ; After a successful call, how long to wait before sending a potentially ; free member another call (default is 0, or no delay) ; ;wrapuptime=15 ; ; Maximum number of people waiting in the queue (0 for unlimited) ; ;maxlen = 0 ; ; ; How often to announce queue position and/or estimated holdtime to caller (0=off) ; ;announce-frequency = 90 ; ; ; How often to make any periodic announcement (see periodic-announce) ; ;periodic-announce-frequency=60 ; ; Should we include estimated hold time in position announcements? ; Either yes, no, or only once. ; Hold time will be announced as the estimated time, ; or "less than 2 minutes" when appropriate. ; ;announce-holdtime = yes|no|once

- 6 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMye/Jfs2BPzYgLAA==-enidentnumber

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

; ; What’s the rounding time for the seconds? ; If this is non-zero, then we announce the seconds as well as the minutes ; rounded to this value. ; ; announce-round-seconds = 10 ; ; Use these sound files in making position/holdtime announcements. The ; defaults are as listed below — change only if you need to. ; ; ;queue-youarenext = queue-youarenext ; ("You are now first in line.") ;queue-thereare = queue-thereare ; ("There are") ;queue-callswaiting = queue-callswaiting ; ("calls waiting.") ;queue-holdtime = queue-holdtime ; ("The current est. holdtime is") ;queue-minutes = queue-minutes ; ("minutes.") ;queue-seconds = queue-seconds ; ("seconds.") ;queue-thankyou = queue-thankyou ; ("Thank you for your patience.") ;queue-lessthan = queue-less-than ; ("less than") ;queue-reporthold = queue-reporthold ; ("Hold time") ;periodic-announce = queue-periodic-announce ; ("All reps busy / wait for next") ; ; Calls may be recorded using Asterisk’s monitor resource ; This can be enabled from within the Queue application, starting recording ; when the call is actually picked up; thus, only successful calls are ; recorded, and you are not recording while people are listening to MOH. ; To enable monitoring, simply specify "monitor-format"; it will be disabled ; otherwise. ; ; You can specify the monitor filename with by calling ; Set(MONITOR_FILENAME=foo) ; Otherwise it will use MONITOR_FILENAME=$UNIQUEID ; ; monitor-format = gsm|wav|wav49 ; ; If you wish to have the two files joined together when the call ends, set this ; to yes. ; ; monitor-join = yes ; ; This setting controls whether callers can join a queue with no members. There ; are three choices: ; ; yes - callers can join a queue with no members or only una- vailable members ; no - callers cannot join a queue with no members ; strict - callers cannot join a queue with no members or only unavailable ; members ; ; joinempty = yes ; ; If you wish to remove callers from the queue when new callers cannot join, ; set this setting to one of the same choices for ’joinempty’

- 7 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMye/Jfs2BPzYgLAA==-enidentnumber

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

; ; leavewhenempty = yes ; ; ; If this is set to yes, the following manager events will be generated: ; AgentCalled, AgentDump, AgentConnect, AgentComplete ; (may generate some extra manager events, but probably ones you want) ; ; eventwhencalled = yes ; ; If this is set to no, the following manager events will be generated: ; QueueMemberStatus ; (may generate a WHOLE LOT of extra manager events) ; ; eventmemberstatusoff = no ; ; If you wish to report the caller’s hold time to the member before they are ; connected to the caller, set this to yes. ; ; reportholdtime = no ; ; ; If you wish to have a delay before the member is connected to the caller (or ; before the member hears any announcement messages), set this to the number of ; seconds to delay. ; ; memberdelay = 0 ; ; If timeoutrestart is set to yes, then the timeout for an agent to answer is ; reset if a BUSY or CONGESTION is received. This can be useful if agents ; are able to cancel a call with reject or similar. ; ; timeoutrestart = no ; ; Each member of this call queue is listed on a separate line in ; the form technology/dialstring. "member" means a normal member of a ; queue. An optional penalty may be specified after a comma, such that ; entries with higher penalties are considered last. ; ;member => Zap/1 ;member => Zap/2 ;member => Agent/1001 ;member => Agent/1002 ; ; Note that using agent groups is proba- bly not what you want. Strategies do ; not propagate down to the Agent system so if you want round robin, least ; recent, etc, you should list all the agents in this file individually and not ; use agent groups. ; ;member => Agent/@1 ; Any agent in group 1 ;member => Agent/:1,1 ; Any agent in group 1, wait for first ; available, but consider with penalty [support-produit] ;strategy = leastrecent

- 8 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMye/Jfs2BPzYgLAA==-enidentnumber

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

strategy = ringall ;strategy = roundrobin timeout = 10 retry = 15 wrapuptime=30 musiconhold = support maxlen = 10 joinempty = yes leavewhenempty = no ;announce = default reportholdtime = yes announce-frequency = 10 periodic-announce-frequency=10 announce-holdtime = yes [5768] wrapuptime=0 timeout=15 strategy=ringall retry=5 queue-youarenext= queue-thereare= queue-thankyou=queue-thankyou queue-callswaiting= music=beatles monitor-join=yes monitor-format= member=Local/754,0 maxlen=0 leavewhenempty=no joinempty=Yes context= announce-holdtime=no announce-frequency=0

6. voicemail.conf

Ce fichier indique les paramètres de configuration des boîtes vocales.Voir le chapitre Conception du plan de numérotation.

[general] #include vm_general.inc #include vm_email.inc ;externnotify=/usr/local/bin/setperm ;language=fr searchcontexts=yes [zonemessage] ;france=Europe/Paris|’vm-received’ q ’digits/at’ k ’digits/hundred’ M ’hours’ france=Europe/Paris|’vm-received’ q k ’digits/hundred’ M ’hours’ ;[default] ;searchcontexts=yes ;#include vm_general.inc ;#include vm_email.inc ;language=fr 1000 => 3615,1000,[email protected],,attach=yes|saycid=no| envelope=no|delete=no 1001 => 3615,1001,[email protected],,attach=yes|saycid=no| envelope=no|delete=no

- 9 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMye/Jfs2BPzYgLAA==-enidentnumber

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

1002 => 3615,1002,[email protected],,attach=yes| saycid=no|envelope=no|delete=no ;1004 => 3615,1004,[email protected],,attach=yes|saycid=no| envelope=no|delete=no ;1005 => 3615,1005,[email protected],,attach=yes| saycid=no|envelope=no|delete=no [agence1] language=fr include vm_general.inc include vm_email.inc 2001 => 3615,2001,[email protected],,attach=yes|saycid=no|en velope=no|delete=no

- 10 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMye/Jfs2BPzYgLAA==-enidentnumber

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

Autres fichiers de configuration

1. codecs.conf

Ce fichier concerne certains paramétrages de codecs en vue d’une amélioration des performances. Seul le codec open­source speex (http://www.speex.org) peut être paramétré. Un paramètre intéressant pour les autres codecs est le Packet Loss Concealment (PLC) qui permet de dissimuler la perte de paquets.

[speex] ; CBR encoding quality [0..10] ; used only when vbr = false quality => 3 ; codec complexity [0..10] ; tradeoff between cpu/quality complexity => 2 ; perceptual enhancement [true / false] ; improves clarity of decoded speech enhancement => true ; voice activity detection [true / false] ; reduces bitrate when no voice detected, used only for CBR ; (implicit in VBR/ABR) vad => true ; variable bit rate [true / false] ; uses bit rate proportionate to voice complexity vbr => true ; available bit rate [bps, 0 = off] ; encoding quality modulated to match this target bit rate ; not recommended with dtx or pp_vad - may cause bandwidth spikes abr => 0 ; VBR encoding quality [0-10] ; floating-point values allowed vbr_quality => 4 ; discontinuous transmission [true / false] ; stops transmitting completely when silence is detected ; pp_vad is far more effective but more CPU intensive dtx => false ; preprocessor configuration ; these options only affect Speex v1.1.8 or newer ; enable preprocessor [true / false] ; allows dsp functionality below but incurs CPU overhead preprocess => false ; preproc voice activity detection [true / false] ; more advanced equivalent of DTX, based on voice frequencies pp_vad => false ; preproc automatic gain control [true / false] pp_agc => false pp_agc_level => 8000 ; preproc denoiser [true / false] pp_denoise => false ; preproc dereverb [true / false] pp_dereverb => false pp_dereverb_decay => 0.4 pp_dereverb_level => 0.3

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy+U6KuWBPzYgLAA==-enidentnumber

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

[plc]

; for all codecs which do not support native PLC ; this determines whether to perform generic PLC ; there is a minor performance penalty for this

genericplc => true

2. logger.conf

Ce fichier permet d’indiquer les paramètres relatifs aux logs, et notamment la verbosité de la CLI. Les logs sont situés dans /var/log/asterisk.

; ; Logging Configuration ; ; In this file, you configure logging to files or to ; the syslog system. ; ; "logger reload" at the CLI will reload configuration ; of the logging system.

[general]

; Customize the display of debug message time stamps ; this example is the ISO 8601 date format (yyyy-mm-dd HH:MM:SS) ; see strftime(3) Linux manual for format specifiers

dateformat=%F %T

; ; This appends the hostname to the name of the log files. ;appendhostname = yes ; ; This determines whether or not we log queue events to a file ; (defaults to yes).

;queue_log = no

; ; This determines whether or not we log generic events to a file ; (defaults to yes).

;event_log = no

; ; ; For each file, specify what to log. ; ; For console logging, you set options at start of ; Asterisk with -v for verbose and -d for debug ; See ’asterisk -h’ for more information. ; ; Directory for log files is configures in asterisk.conf ; option astlogdir ;

[logfiles]

; ; Format is "filename" and then "levels" of debugging to be included: ; debug ; notice ; warning ; error ; verbose ; dtmf ; ; Special filename "console" represents the system console ; ; We highly recommend that you DO NOT turn on debug mode if you are simply ; running a production system. Debug mode turns on a LOT of extra messages, ; most of which you are unlikely to understand without an understanding of

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy+U6KuWBPzYgLAA==-enidentnumber

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

; the underlying code. Do NOT report debug messages as code issues, unless ; you have a specific issue that you are attempting to debug. They are ; messages for just that — debugging — and do not rise to the level of ; something that merit your attention as an Asterisk administrator. Debug ; messages are also very verbose and can and do fill up logfiles quickly; ; this is another reason not to have debug mode on a production system unless ; you are in the process of debugging a specific issue. ; ;debug => debug

console => notice,warning,error

;console => notice,warning,error,debug

messages => notice,warning,error

;full => notice,warning,error,debug,verbose ;syslog keyword : This special keyword logs to syslog facility ; ;syslog.local0 => notice,warning,error ;

3. manager.conf

Ce fichier permet de configurer l’Asterisk Manager. Voir le chapitre Applications connexes.

[general]

enabled=yes port=5038 bindaddr=192.168.1.100 [user1] secret=454545 read=system,call,log,verbose,command,agent,user write=system,call,log,verbose,command,agent,user ;deny=0.0.0.0/0.0.0.0 permit=10.0.0.0/8 [manager] secret=secret read=system,call,log,verbose,command,agent,user write=system,call,log,verbose,command,agent,user [asterisk_user] secret=3615 read=system,call,log,verbose,command,agent,user write=system,call,log,verbose,command,agent,user ;deny=0.0.0.0/0.0.0.0 permit=127.0.0.1/255.255.255.255

4. modules.conf

Ce fichier indique au serveur Asterisk les modules à charger au démarrage.

Les modules sont situés dans /usr/lib/asterisk/modules et sont suffixés par .so.

Il existe plusieurs types de modules : ressources (res_xxx.so), applications (app_xxx.so), enregistrements CDR (cdr_xxx.so), canaux (chan_xxx.so), codecs (codec_xxx.so), formats (format_xxx.so), moteur Asterisk (pbx_xxx.so), fonctions autonomes (func_xxx.so), pont conférence (bridge_xxx.so).

Le paramètre autoload = yes permet d’effectuer un chargement automatique de tout fichier présent dans le répertoire des modules ; bien que cette méthode soit la plus simple à gérer, il est cependant possible d’exclure des

- 3 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy+U6KuWBPzYgLAA==-enidentnumber

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

modules à l’aide du paramètre unload.

Il est également possible d’utiliser autoload=no et de faire appel au paramètre load pour chaque module que nous souhaitons charger.

; ; Asterisk configuration file ; ; Module Loader configuration file ;

[modules]

autoload=yes

; ; Any modules that need to be loaded before the Asterisk core has been ; initialized (just after the logger has been initialized) can be loaded ; using ’preload’. This will frequently be needed if you wish to map all ; module configuration files into Realtime storage, since the Realtime ; driver will need to be loaded before the modules using those configuration ; files are initialized. ; ; An example of loading ODBC support would be: ;preload => res_odbc.so ;preload => res_config_odbc.so ; ; If you want, load the GTK console right away. ; Don’t load the KDE console since ; it’s not as sophisticated right now. ; noload => pbx_gtkconsole.so ;load => pbx_gtkconsole.so noload => pbx_kdeconsole.so ; ; Intercom application is obsoleted by ; chan_oss. Don’t load it. ; noload => app_intercom.so ; ; The ’modem’ channel driver and its subdrivers are ; obsolete, don’t load them. ; noload => chan_modem.so noload => chan_modem_aopen.so noload => chan_modem_bestdata.so noload => chan_modem_i4l.so ; load => res_musiconhold.so ; ; Load either OSS or ALSA, not both ; By default, load OSS only (automatically) and do not load ALSA ; noload => chan_alsa.so ;noload => chan_oss.so ; ; Module names lis- ted in "global" section will have symbols globally ; exported to modules loaded after them. ; ; [global]

5. res_odbc.conf

- 4 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy+U6KuWBPzYgLAA==-enidentnumber

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

Ce fichier permet de définir les informations relatives à l’accès aux bases de données. Il fonctionne en complémentarité avec le fichier extconfig.conf.

;;; odbc setup file ; ENV is a global set of environmental varia- bles that will get set. ; Note that all environmental varia- bles can be seen by all connections, ; so you can’t have different values for different connections. [ENV] INFORMIXSERVER => my_special_database INFORMIXDIR => /opt/informix ; All other sections are arbitrary names for database connections. [asterisk] enabled => yes dsn => asterisk ;username => myuser ;password => mypass pre-connect => yes [mysql2] enabled => no dsn => MySQL-asterisk username => myuser password => mypass pre-connect => yes

6. rtp.conf

Ce fichier permet de configurer les ports RTP (Real­time Transport Protocol). Les ports RTP par défaut utilisés par Asterisk sont compris entre 10000 et 20000.

; ; RTP Configuration ; [general] ; ; RTP start and RTP end configure start and end addresses ; ; Defaults are rtpstart=5000 and rtpend=31000 ;

rtpstart=10000

rtpend=20000

; ; Whether to enable or disable UDP checksums on RTP traffic ; ;rtpchecksums=no ; ; The amount of time a DTMF digit with no ’end’ marker should be ; allowed to continue (in ’samples’, 1/8000 of a second) ; ;dtmftimeout=3000

- 5 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy+U6KuWBPzYgLAA==-enidentnumber

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

Enregistrements CDR

1. cdr.conf

Ce fichier permet l’enregistrement des détails d’un appel dans une base de donnés.

; ; Asterisk Call Detail Record engine configuration ; ; CDR is Call Detail Record, which provides logging services via a variety of ; pluggable backend modules. Detailed call information can be recorded to ; databases, files, etc. Useful for billing, fraud prevention, compliance with ; Sarbanes-Oxley aka The Enron Act, QOS evaluations, and more. ; [general] ; Define whether or not to use CDR logging. Setting this to "no" will override ; any loading of backend CDR modules. Default is "yes". ;enable=yes ; Define the CDR batch mode, where instead of pos- ting the CDR at the end of ; every call, the data will be stored in a buffer to help alleviate load on the ; asterisk server. Default is "no". ; ; WARNING WARNING WARNING ; Use of batch mode may result in data loss after unsafe asterisk termination ; ie. software crash, power failure, kill -9, etc. ; WARNING WARNING WARNING ; ;batch=no ; Define the maximum number of CDRs to accumulate in the buffer before posting ; them to the backend engines. ’batch’ must be set to ’yes’. Default is 100. ;size=100 ; Define the maximum time to accumulate CDRs in the buffer before posting them ; to the backend engines. If this time limit is reached, then it will post the ; records, regardless of the value defined for ’size’. ’batch’ must be set to ; ’yes’. Note that time is in seconds. Default is 300 (5 minutes). ;time=300 ; The CDR engine uses the internal asterisk scheduler to determine when to post ; records. Posting can either occure inside the scheduler thread, or a new ; thread can be spawned for the submission of every batch. For small batches, ; it might be acceptable to just use the scheduler thread, so set this to "yes". ; For large batches, say anything over size=10, a new thread is recommended, so

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy0PUfwGBPzYgLAA==-enidentnumber

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

; set this to "no". Default is "no". ;scheduleronly=no ; When shutting down asterisk, you can block until the CDRs are submitted. If ; you don’t, then data will likely be lost. You can always check the size of ; the CDR batch buffer with the CLI "cdr statu"s command. To enable blocking on ; submission of CDR data during asterisk shutdown, set this to "yes". Default ; is "yes". ;safeshutdown=yes

2. cdr_manager.conf

Ce fichier permet de définir si l’Asterisk Manager doit générer ou non des événements CDR.

; ; Asterisk Call Management CDR ; [general] enabled = yes

3. cdr_odbc.conf

Les enregistrements CDR peuvent être stockés dans une base de données via ODBC.

; ; cdr_odbc.conf ; ;[global] ;dsn=MySQL-test ;username=username ;password=password ;loguniqueid=yes ;dispositionstring=yes ;table=cdr ;"cdr" is default table name ;usegmtime=no ; set to "yes" to log in GMT

- 2 - © ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMy0PUfwGBPzYgLAA==-enidentnumber

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

Sites

http://www.voip­info.org/wiki­Asterisk

http://www.asterisk.org

http://www.asterisk­france.net

http://www.asteriskdocs.org

http://www.asterisktutorials.com

http://www.asteriskguru.com

http://www.digium.com

Application iphone : AsteriskRef (liste des applications, fonctions) pour versions 1.2, 1.4, 1.6.0, 1.6.1 et 1.6.2.

- 1 -© ENI Editions - All rigths reserved - educ hafa

enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAA5NDQ5MDc5IC0gZWR1YyBoYWZhIC0gNDdiZDkzNTgtOTBkZC00N2Y3LTk5OGYtMWNkZTgzYWUyNmMyKh2Yx2BPzYgLAA==-enidentnumber