Asterisk, le futur de la téléphonie ? Actuellement, tout le monde entend un peu parler de la VoIP (Voice over IP) ou de la ToIP (Telephony over IP), au moins à travers les nombreuses publicités des fournisseurs d’accès à Internet comme Wanadoo, Free, Le Neuf, Cegetel … (d’ailleurs, nous recommandons la lecture du dossier de Romain Deletre et Aurélien Méchin sur ce thème). Depuis plusieurs années, ce secteur est en pleine croissance sur grâce à deux composantes essentielles : les utilisateurs (grand public comme entreprises) sont en majorité séduits et les constructeurs/éditeurs investissent énormément pour proposer des offres les plus complètes possibles. En 2002, le projet Asterisk sort au grand jour et fait son entrée dans un marché encore naissant. C’est un PBX (Private Branch eXchange) logiciel qui propose des fonctionnalités avancées pour une somme dérisoire car la (bonne) surprise est que sa licence GPL (donc projet libre et open-source). D’abord utilisé plus ou moins expérimentalement, il commence à convaincre peu à peu les entreprises de toute taille. I Généralités 1) Les différents types de téléphonie Malgré les avancés technologiques, la téléphonie classique (RTC) reste fortement présente notamment dans les foyers, la paire de cuivre entre l’abonné et la centrale a encore de beaux jours devant elle. La gestion de la signalisation s’effectue entre les centraux et les opérateurs auprès desquels il faut encore s’abonner (même dans le cas du dégroupage total). La téléphonie par ADSL, qu’il ne fait pas confondre avec la téléphonie par Internet car la technologie ADSL (par extension les technologies xDSL) peut transporter plusieurs types de données numériques qui sont prioritisés grâce à des systèmes de gestion de priorité : la téléphonie (voice), la télévision (video) et les paquets IP « standards » (data). Les protocoles de voix sur IP sont séparés en trois niveaux distincts : - établissement de sessions et signalisation : H.323, SIP, IAX … - transport de données : RTP, IAX … - codage de la voix : G.711, G.729, mp3 …
17
Embed
Asterisk, le futur de la téléphonie · PDF fileAsterisk, le futur de la téléphonie ? Actuellement, tout le monde entend un peu parler de la VoIP (Voice over IP) ou de...
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Asterisk, le futur de la téléphonie ?
Actuellement, tout le monde entend un peu parler de la VoIP (Voice over IP) ou de la
ToIP (Telephony over IP), au moins à travers les nombreuses publicités des fournisseurs
d’accès à Internet comme Wanadoo, Free, Le Neuf, Cegetel … (d’ailleurs, nous
recommandons la lecture du dossier de Romain Deletre et Aurélien Méchin sur ce thème).
Depuis plusieurs années, ce secteur est en pleine croissance sur grâce à deux composantes
essentielles : les utilisateurs (grand public comme entreprises) sont en majorité séduits et les
constructeurs/éditeurs investissent énormément pour proposer des offres les plus complètes
possibles.
En 2002, le projet Asterisk sort au grand jour et fait son entrée dans un marché encore
naissant. C’est un PBX (Private Branch eXchange) logiciel qui propose des fonctionnalités
avancées pour une somme dérisoire car la (bonne) surprise est que sa licence GPL (donc
projet libre et open-source). D’abord utilisé plus ou moins expérimentalement, il commence
à convaincre peu à peu les entreprises de toute taille.
I Généralités
1) Les différents types de téléphonie
Malgré les avancés technologiques, la téléphonie classique (RTC) reste fortement présente
notamment dans les foyers, la paire de cuivre entre l’abonné et la centrale a encore de
beaux jours devant elle. La gestion de la signalisation s’effectue entre les centraux et les
opérateurs auprès desquels il faut encore s’abonner (même dans le cas du dégroupage
total).
La téléphonie par ADSL, qu’il ne fait pas confondre avec la téléphonie par Internet car la
technologie ADSL (par extension les technologies xDSL) peut transporter plusieurs types de
données numériques qui sont prioritisés grâce à des systèmes de gestion de priorité : la
téléphonie (voice), la télévision (video) et les paquets IP « standards » (data).
Les protocoles de voix sur IP sont séparés en trois niveaux distincts :
- établissement de sessions et signalisation : H.323, SIP, IAX …
- transport de données : RTP, IAX …
- codage de la voix : G.711, G.729, mp3 …
Pour qu’il y ait communication entre deux correspondants, il faut que leurs systèmes
respectifs de téléphonie emploient les mêmes protocoles.
Enfin, une petite mise au point semble nécessaire sur les bons termes à utiliser :
- la voix sur IP (VoIP) correspond aux technologies de transport de la voix en mode
paquet via le protocole IP
- la téléphonie sur IP (ToIP) sont les applications et les offres de services qui
s’appuient sur la VoIP. Par exemple, les solutions IPBX et IP Centrex (centralisations
chez un prestataire de services de toute l’infrastructure « lourde » comme les IPBX,
passerelles et différents serveurs relatifs à la téléphonie) sont des solutions ToIP.
2) Un tour d’horizon des acteurs
Les acteurs sont très nombreux sur ce marché et se séparent en plusieurs grandes familles :
- les constructeurs :
o fournisseurs de PABX existants : Alcatel, EADS, Nortel, Siemens, Ericsson …
o nouveaux venus : Cisco
o acteurs de niche : Quescom, Boscom, Wellx …
o open sources : Asterisk …
- les constructeurs de réseaux :
o anciens : Alcatel, Ericsson, Nortel, Siemens, Lucent, NEC …
o nouveaux venus : NetCentrex, Cirpack …
- les intégrateurs :
o du monde de la téléphonie : Nextiraone, Amec Spie, Inéo …
o du monde des réseaux de données : Arche …
o du monde de l’informatique : IBM, Cap Gemini …
- les opérateux Centrex
3) Les problèmes et défauts d’une solution tout VoIP
Evidemment, si la VoIP était exempte de défauts, elle aurait déjà été adoptée par tout le
monde comme la solution idéale.
En cas de saturation de la ligne due à l’absence de contrôle de trafic, la qualité sonore est
très mauvaise. En cas de défaillance du réseau informatique ou électrique, les téléphones ne
sont plus opérationnels. Il existe aussi l’impossibilité de déterminer la provenance des appels
aux services d’urgence (d’ailleurs le décret 2005-862 contraint les opérateurs à pouvoir
géolocaliser ces appels).
Des problèmes surviennent également lors de l’interfaçage avec des lignes ou équipements
analogiques : l’annulation d’échos, la détection des tonalités (sensibilité à régler), le manque
de signalisation (en cours d’établissement, occupé, raccroché) …
4) Enjeux de la ToIP
Il faut ici séparer les utilisateurs finaux (entreprises) et les fournisseurs (opérateurs,
constructeurs …).
Pour les entreprises, la migration vers la ToIP permettra la convergence des réseaux de
données et de téléphonie en un réseau unique (triple play avec la vidéo). De cette
unification, des réductions de coûts (standardisations des équipements, maintenance
facilitée …) et des gains de productivité sont attendus.
Pour les fournisseurs, il s’agit d’achever la mutation le plus rapidement possible et de
proposer des services à haute valeur ajoutée car la téléphonie sur IP engendre moins de
revenus par exemple que les communications classiques pour un opérateur.
II Introduction à Asterisk
1) Présentation rapide
Asterisk est un PBX logiciel libre (sources disponibles) apparu en 2002 qui fournit toutes les
fonctionnalités et services voire plus qu’un PBX classique. Il supporte pratiquement tous les
protocoles de VoIP (voir plus loin), fonctionne sous plusieurs plate-formes (Linux, BSD et
MacOSX) et il est compatible avec la majorité des équipements de téléphonie numériques
ou analogiques. Il a été conçu dans ce sens, pour pouvoir interfacer n’importe quel hardware
ou software de téléphonie.
Créé à l’origine par Mark Spencer de la société américaine Digium Inc. (devenu le
« sponsor» d’Asterisk), ce projet a fortement évolué grâce à la contribution de nombreuses
personnes à travers le monde (esprit open source) : amélioration du code, création de
documentation (tout utilisateur expérimenté est invité à créer des tutoriaux de prise en main
rapide), support technique sur les forums, support financier …
Mais pourquoi le nom Asterisk ? Ce nom vient du symbole éponyme * qui sous les
environnement Unix joue le rôle de joker lors de la recherche ou de sélection de répertoires
ou de fichiers.
2) Les fonctionnalités d’appel
A ce jour, Asterisk est certainement la seule solution qui offre une telle richesse et flexibilité
de fonctionnalités. En plus des fonctionnalités classiques, il propose des services plus
avancés pour interconnecter les systèmes de téléphonie traditionnelle et de VoIP (donc rôle
de passerelle).
Dans les solutions matérielles, chaque option se paye au prix fort alors qu’ici, elles sont
toutes fournies en série (par analogie aux voitures).
• ADSI On-Screen Menu System
• Alarm Receiver
• Append Message
• Authentication
• Automated Attendant
• Blacklists
• Blind Transfer
• Call Detail Records
• Call Forward on Busy
• Call Forward on No Answer
• Call Forward Variable
• Call Monitoring : Enregistre la communication d'un canal.
• Call Parking
• Call Queuing
• Call Recording
• Call Retrieval
• Call Routing (DID & ANI)
• Call Snooping
• Call Transfer
• Call Waiting
• Caller ID
• Caller ID Blocking
• Caller ID on Call Waiting
• Calling Cards
• Conference Bridging : Pont de conférence.
• Database Store / Retrieve
• Database Integration
• Dial by Name
• Direct Inward System Access
• Distinctive Ring
• Distributed Universal Number Discovery (DUNDi™)
• Do Not Disturb
• E911
• ENUM : Le service ENUM permet d’associer un service de voix sur IP à un numéro
de téléphone classique. Si un autocommutateur utilise ce service, un appel vers un
numéro enregistré passera automatiquement en voix sur IP jusqu’au destinataire au
lieu d’emprunter le réseau téléphonique classique.
• Fax Transmit and Receive (3rd Party OSS Package)
• Flexible Extension Logic
• Interactive Directory Listing
• Interactive Voice Response (IVR)
• Local and Remote Call Agents
• Macros
• Music On Hold : Joue de la musique d'attente.
• Music On Transfer (Flexible Mp3-based System, Random or Linear Play, Volume
Control)
• Predictive Dialer
• Privacy
• Open Settlement Protocol (OSP)
• Overhead Paging
• Protocol Conversion
• Remote Call Pickup
• Remote Office Support
• Roaming Extensions
• Route by Caller ID
• SMS Messaging : envoie d'un SMS sur un mobile lorsqu’un message est laissé sur
un répondeur.
• Spell / Say
• Streaming Media Access
• Supervised Transfer
• Talk Detection
• Text-to-Speech (via Festival)
• Three-way Calling
• Time and Date
• Transcoding
• Trunking
• VoIP Gateways
• Voicemail (Visual Indicator for Message Waiting, Stutter Dialtone for Message
Waiting, Voicemail to email, Voicemail Groups, Web Voicemail Interface) : Gestion du
système de messagerie vocale.
• Zapateller
3) Les technologies supportées
En téléphonie, les produits sont généralement élaborés pour répondre à un besoin technique
spécifique au sein d’un réseau donné. Cependant, les applications partagent des
technologies communes, Asterisk est donc basé sur ces partages pour créer un
environnement unique et simple pouvant d’adapter à n’importe quelle application.
Les protocoles gèrent la communication et le transport entre les correspondants :
- H.323 : dérivé de l’architecture des télécoms, il est le plus implémenté mais souvent
critiqué pour sa complexité
- SIP (Session Initiation Protocol) : dérivé de l’architecture HTTP, il est très utilisé dans
les applications et softphones (émulation de téléphone sur PC), il est apprécié pour
sa simplicité (ses spécifications sont libres)
- IAX (Inter Asterisk eXchange) : protocole développé par Digium pour permettre le
dialogue entre serveurs Asterisk en toute simplicité et rapidité (port UDP unique,
utilisation de Real Time Protocol, en-tête léger (4 octects au lieu de 12 minimum pour
SIP), messages de contrôle plus petit, implémentation de l’internationalisation (un
PBX ou un téléphone peut recevoir du contenu dans sa langue native) …)
- MGCP (Media Gateway Control Protocol)
- SCCP (Skinny Client Control Protocol) : protocole propriétaire de Cisco
Les codecs permettent la compression de la voix et donc l’optimisation de la bande passante
nécessaire (et donc le nombre d’appels simultanés possibles) :
- ADPCM
- G.711 (A-Law et µ-Law)
- G.723.1
- G.726
- G.729 (licence vendue par Digium)
- GSM
- iLBC
- LPC-10
- Speex
- MP3
Asterisk n’est pas seulement compatible avec des technologies VoIP, il garde une grande
interopérabilité avec la téléphonie analogique :
- E&M et E&M Wink
- FXS
- FXO
- GR-303
- Loopstart
- Groundstart
- MF et DTMF
- MFC-R2
- …
et numérique (Primary Rate Interface) :
- 4ESS
- BRI (ISDN4Linux)
- DMS100
- EuroISDN
- …
4) Matériel nécessaire
Un ordinateur classique de type PC suffit amplement pour créer un serveur Asterisk : un
processeur cadencé à 500 Mhz et 256 Mo de mémoire sont néanmoins un minimum.
Ensuite, tout dépend de la charge que le serveur aura à écouler : plus il y aura d’appels
concurrents, plus de puissance sera demandée (problème de latence et donc de QoS). En
utilisation intensive, un processeur à 2.4Ghz et 1Go de mémoire vive sont recommandés
(avec 3 lignes E1 entrantes, un tel serveur peut gérer 40 appels simultanés vers l’extérieur et
5000 appels quotidiens), un serveur dédié (type Dell PowerEdge ou IBM OpenPower) n’est
nécessaire que dans les grandes infrastructures.
Si le serveur est interconnecté avec des connexions RTC ou RNIS (PSTN ou ISDN), des
cartes matérielles sont requises (commercialisées surtout par Digium et Intel) : en
analogique, on trouve la TDM400P et la X100P (cette dernière n’est plus produite) et en
numérique, on trouve les TE2xxP et TE4xxP. Au format PCI, elles fournissent des ports FXO
(Foreign eXchange Office, pour relier aux lignes analogiques ou PBX classiques) et des
ports FXS (Foreign eXchange Station, pour connecter les téléphones analogiques).
III Architecture
1) Architecture interne
Asterisk est un système flexible grâce à sa structure interne constitué de quatre APIs
(Application Programming Interface) spécifiques autour du « central core system ». Celui-ci
manie les connexions internes du PBX en faisant abstraction des protocoles, des codecs,
des interfaces téléphoniques et des applications (d’où la possibilité d’utiliser n’importe quel
hardware et n’importe quelle technologie).
Asterisk joue le rôle de middleware (intergiciel) entre les technologies de téléphonie (TDM,
SIP …) et les applications (conférence, messagerie vocale, IVR …) : il favorise le
déploiement d’environnements mixtes.
Le cœur contient 5 moteurs ayant chacun un rôle essentiel et critique dans les opérations :
- PBX Switching Core : fonction primaire, commute de manière transparente les appels
- Application Launcher : lance les applications qui exécutent des services pour les
utilisateurs
- Codec Translator : code et décode la voix, plusieurs codecs sont utilisés pour trouver
l’équilibre entre la qualité audio et l’usage de la bande passante
- Scheduler and I/O Manager : planifie en bas niveau et gère les entrées/sorties pour
des performances optimales
- Dynamic Module Loader : charge les pilotes (lors de la 1ère exécution d’Asterisk, il
initialise les pilotes et fait le lien avec les APIs appropriés)
Après que les pilotes soient chargés (DML), les appels commencent à être acceptés
(PBXSC) et redirigés en faisant sonner les téléphones (AL).
L’abstraction matérielle et protocolaire passe par l’utilisation de 4 APIs :
- Channel API : gère le type de connexion, des modules dynamiques sont chargés
pour travailler sur les couches basses de ces connexions
- Application API : accomplit de manière flexible toute fonction à la demande
- Codec Translator API : charge les modules pour supporter tous les formats (support
dynamique, c'est-à-dire qu’un codec peut être utilisé pour une communication et un
autre codec pour une autre communication suivant le débit de la ligne par exemple)
- File Format API : manie la lecture et l’écriture de formats de fichiers variés pour
stocker dans le système de fichiers
Enfin, Asterisk propose une AGI (Asterisk Gateway Interface) qui autorise la prise de
contrôle du dialplan (plan de numérotation, l’intelligence du système) par des programmes
extérieurs. Les scripts AGI peuvent être écrits dans n’importe quel langage de haut niveau
comme PHP, Perl, Python, Java, C …
2) Implémentations possibles
Grâce à sa souplesse et ses nombreuses fonctionnalités, il est envisageable d’utiliser des
serveurs Asterisk comme passerelles VoIP/RTC, serveurs vocaux (IVR), plateformes de
conférence et bien sûr comme IPBX …
Selon la taille du site, le nombre d’équipements, le nombre d’appels simultanés possibles,
les fonctionnalités nécessaires, l’infrastructure peut varier sensiblement. Cependant, le
schéma ci-dessous est l’architecture type d’une implémentation d’Asterisk :
Pour une entreprise qui a récemment investi dans un PABX classique, la migration peut se
faire en douceur en intercalant leur PABX entre le serveur Asterisk et les équipements
analogiques. Dans ce cas, le serveur ferait office de passerelle VoIP/RTC. Le basculement
en tout VoIP se ferait alors progressivement.
Pour des entreprises de plus grande taille (PME) avec plusieurs sites de petite taille, la
solution consiste à centraliser le serveur Asterisk au siège (on peut parler de solution IP
Centrex si on compare le siège au prestataire et le client aux petites agences).
Par contre, pour certaines raisons (sécurité, redondance ou s’il s’agit d’une grande
multinationale), les serveurs peuvent être dupliqués :
Dans cet exemple, chaque site possède donc son propre serveur Asterisk mais grâce au
protocole IAX, les serveurs dialoguent entre eux et peuvent se partager l’accès à la ligne
RTC via le serveur du site principal.
De nombreux autres scénarios sont possibles, Asterisk n’a en fin de compte que des
limitations liées souvent au réseau auquel il est connecté.
IV Installation, configuration et utilisation
1) Installation
Tout d’abord, une distribution Linux récente (un noyau récent résout de nombreux problèmes
de compatibilité et facilite les mises à jour) doit être installée sur le serveur avec aucun autre
service actif comme un serveur mail (pour des raisons de sécurité et de performance). Il n’y
a pas de distribution préconisée, autant garder celle qui est connue ou utilisée dans
l’entreprise (Debian, Fedora et SuSe généralement). Il existe également des Live CD
(Asterisk@Home 2.6, Asterisk Live CD !, AstBill Live CD ! 0.9.0.14, AstLinux 0.3.0,
Knopsterisk …) qui permettent de faire fonctionner ou d’installer un système quasiment prêt
à l’usage, cependant ces versions sont davantage destinés à l’initiation ou aux usages
domestiques.
Il faut ensuite récupérer les sources d’Asterisk (actuellement version 1.2.4), de Zaptel
(pilotes des matériels compatibles Zapata, version 1.2.4) et de libpri (gestion des PRI,
version 1.2.2) sur le serveur FTP de Digium (ftp.digium.com et nombreux miroirs) ou sur le
serveur SVN (SubVersion) qui remplace depuis Février 2006 le serveur CVS (Concurrent
Versions System).
Voilà les commandes à exécuter pour récupérer et installer es différentes sources depuis les
2 systèmes de gestion de versions (l’arbre CVS est encore mis à jour):