March 8, 2017 | Author: Mohsine Merzouk | Category: N/A
Installation et réalisation d'une solution de communication unifièe Sécurisé ( Asterisk)...
DIMENSIONNEMENT ET SECURISATION D'UNE SOLUTION DE COMMUNICATION UNIFIEE (ASTERISK)
Réalisé par : M. EL IMAMI Abdellatif M. MERZOUK Mouhsine
Encadré par :
[email protected]
A. El Imami & M. Merzouk
Page 2
Remerciements Au terme de ce travail, on tient à remercier, tout d’abord notre encadrant M. EL AROUSSI pour son soutien et ses conseils au cours de l’élaboration de ce présent projet. Nous remercions également nos professeurs qui nous ont soutenus durant toute l’année académique afin de mettre en évidence et en pratique les différents cours qui nous ont aidés à bien effectuer ce travail. Plus que des remerciements pour les membres de la direction pour leur compréhension et leurs soutiens tout au long de l’année. Enfin, nos parents pour leur appui financier et moral indéfectible pendant cette année universitaire.
Abdellatif EL IMAMI Mouhsine MERZOUK
A. El Imami & M. Merzouk
Page 3
Table des matières Introduction .......................................................................................................................... 5 Chapitre 1 : Communication unifiée ..................................................................................... 6 1. Définition et importance des communications unifiées ........................................................................................ 6 2. L’évolution de la communication unifiée (UC) ....................................................................................................... 7 3. Avantages des communications unifiées ............................................................................................................... 8 4. La dualité VoIP et communication unifiée ............................................................................................................. 8 5. VoIP et protocoles associés .................................................................................................................................... 9 5.1 Comment fonctionne la VoIP? ...................................................................................................................... 9 5.2 Les protocoles de la VoIP ............................................................................................................................ 10 5.2.1
Le protocole H.323 ............................................................................................................... 10
5.2.2
Le protocole SIP .................................................................................................................... 11
5.2.3
Le protocole MGCP ............................................................................................................... 13
5.2.4
Le protocole IAX/IAX2 ........................................................................................................... 14
5.2.5
Les protocoles RTP et RTCP ................................................................................................... 15
5.3 Codec ........................................................................................................................................................... 15
Chapitre 2 : Etude comparative des plateformes de communication unifiée ..................... 11 1. Solutions commerciales ......................................................................................................................................... 12 1.1 Unified Communication Plateform (UCP) ................................................................................................... 13 1.2 Alcatel Omnitouch Unified Communication (Otuc) .................................................................................... 13 1.3 Cisco Unified Communications Manager (CUCM) ....................................................................................... 13 1.4 Avaya one-X ................................................................................................................................................. 13 1.5 Synthèse ..................................................................................................................................................... 13 3. Solutions open sources .......................................................................................................................................... 13 2.1 Asterisk ........................................................................................................................................................ 13 2.2 FreeSwitch .................................................................................................................................................. 13 2.3 Bayonne ....................................................................................................................................................... 13 2.4 YATE ............................................................................................................................................................. 13 2.5 Synthèse ...................................................................................................................................................... 13
Chapitre 3 : Solution de communication unifiée à base d’Asterisk .................................... 11 1. Architecture interne ............................................................................................................................................ 11 2. Fonctionnalités .................................................................................................................................................... 11 3. Les technologies supportées ............................................................................................................................... 11
A. El Imami & M. Merzouk
Page 4
4. Matériel nécessaire ............................................................................................................................................. 11 5. Dimensionnement du serveur Asterisk ............................................................................................................... 11 5.1 Outils de test de performance SIPp de HP .................................................................................................. 11 5.2 Caractéristiques ............................................................................................................................................ 11
Chapitre 4 : Les risques et les différents moyens de sécurité VoIP .................................... 11 1. Les principaux risques ........................................................................................................................................ 11 1.1 Les Menaces protocolaires .......................................................................................................................... 11 1.2 Vulnérabilités de l’infrastructure ................................................................................................................. 11 2. Eléments de sécurité ......................................................................................................................................... 11 2.1 Solutions pour sécuriser la VoIP .................................................................................................................. 11 2.1.1
Politique de sécurité ...................................................................................................................... 11
2.1.2
La sécurité physique ...................................................................................................................... 11
2.1.3
La sécurisation des serveurs ........................................................................................................... 11
2.1.4
L’authentification des utilisateurs .................................................................................................. 11
2.2 La séparation et sécurisation des flux ......................................................................................................... 11
A. El Imami & M. Merzouk
Page 5
Introduction Le monde du travail actuel dispose de multiples outils de communication avec ses collègues, ses clients, ses partenaires ou ses fournisseurs : téléphone de bureau, téléconférences, boîte vocale, e-mail, fax, téléphone portable, messagerie du téléphone portable, fax via Internet, messagerie instantanée, SMS, services de notification, solutions sans fil, appels téléphoniques via Internet, sans même mentionner des solutions haut de gamme comme les téléconférences vidéo et Web. En surface, cela peut donner l’impression que les entreprises, devant un tel panel de technologies, vivent dans un nirvana de communications. Mais c’est exactement l’inverse qui est vrai. Un tel maillage de technologies offre certes bien plus de moyens de communiquer, mais sans qu’il y ait dans tout cela la moindre cohérence, ce qui, ironie de l’histoire, accroît les risques de manquer la personne que vous chercher à joindre... En effet, il faut de plus en plus de temps pour établir le contact entre employés (clients ou encore partenaires) car ceux-ci doive nt essayer une méthode après l’autre, consulter des tas d’annuaires, d’agendas ou de répertoires, sans pratiquement jamais savoir si le correspondant recherché est joignable, en déplacement ou tout simplement en congé. Le but d’un système de Communications Unifiées est de transformer tout ce chaos en une chaîne cohérente. Les communications unifiées peuvent être comprises comme un ensemble de communications sur IP. Les outils sur IP, tels que la conférence web, la conférence audio et la visioconférence, la messagerie unifiée et la messagerie instantanée sont utilisés depuis déjà quelque temps. Les communications unifiées sont l’ensemble de tous ces outils accessibles via une méthode unifiée. De plus, selon les produits, les communications unifiées peuvent proposer la prise en compte de la mobilité et du nomadisme à partir de terminaux avec interface radio data GPRS, UMTS ou WiFi.
A. El Imami & M. Merzouk
Page 6
Chapitre 1 : Communication unifiée 1. Définition et importance des communications unifiées : Les communications unifiées constituent une possibilité majeure dans le contexte économique actuel, dans la mesure où elles permettent de réduire les coûts immédiatement et, à plus long terme, de gagner en efficacité. Au premier niveau, les communications unifiées sont la convergence de plusieurs technologies de communication en une solution unique. Sources d'économies, elles consolident des services et systèmes jusqu'alors séparés en un ensemble efficace pour les communications textuelles, audio et vidéo, accessible par ordinateur ou terminaux mobiles, où que se trouve l'utilisateur. Ces technologies incluent : La messagerie électronique. La messagerie instantanée. Les conversations de groupe. Les appels et conférences audio et vidéo. Les annuaires, calendriers et tâches.
Figure 1 : Communication unifiée (Source : http://www.microsoft.com/switzerland/uc/fr/1_0_whatisuc.aspx) On peut également retrouver ces fonctionnalités dans des applications spécialisées comme les logiciels de mobilité ou les espaces de travail collaboratifs. Au second niveau, ces fonctionnalités logicielles peuvent s'intégrer aux processus d'affaires des utilisateurs et des groupes pour éviter les tâches inutiles, multipliées ou répétées dans les activités à forte communication et ainsi améliorer la productivité. Dans une perspective de réduction immédiate des coûts grâce aux communications unifiées, les communications sont presque toujours un poste de dépenses variable et conséquent, qui augmente à mesure que l'entreprise s'internationalise. Les frais de téléphonie fixe et mobile, les services de conférence, de déplacement et de réunion sont autant de dépenses que les solutions de communications unifiées peuvent rapidement réduire. De même, la consolidation de multiples systèmes de A. El Imami & M. Merzouk
Page 7
communication obsolètes en une seule plateforme unifiée et intégrée permet souvent de substantielles économies. Cet article détaille ces deux catégories d'économies. Pour ce qui est des réductions des ressources, l'amélioration des communications grâce aux solutions de communications unifiées peut générer des gains de productivité, en réduisant le temps et les efforts consacrés aux tâches de communication, mais aussi en éliminant le travail retardé, multiplié ou répété lié aux communications. Bien que plusieurs mois ou trimestres puissent être nécessaires pour en voir les résultats, la modification de ces processus induit généralement des économies très substantielles puisqu'elle a un effet sur le fonctionnement de l'entreprise et non sur les coûts d'infrastructure uniquement.
2. L’évolution de la communication unifiée (UC)
Figure 2 : L’évolution de la communication unifiée (Source : http://www.avst.com/unifiedcommunications/interoperability/modernize-to-voip.asp) Le développement d’un Internet à Très Haut Débit avec l’amélioration des infrastructures LAN et WAN pour les entreprises s’est traduit par la migration d’une téléphonie dite traditionnelle à une téléphonie IP. Les « Centrex IP » apparus il y a une dizaine d’année consistaient à mettre en place des téléphonies sur IP basiques, offrant des services équivalents, voire inférieurs à la téléphonie traditionnelle. L'IP apportait une approche différente en termes d'architecture (PABX centralisé ou externalisé) ce qui offrait un véritable avantage aux opérateurs, mais pas d’apport fonctionnel réel pour les entreprises et les utilisateurs. L'IP n'était pas forcément exploité car ces solutions nécessitaient souvent un réseau LAN dédié ainsi qu’une connexion vers le Centrex IP de l’opérateur.
A. El Imami & M. Merzouk
Page 8
Depuis, les choses ont bien évolué. Les fonctionnalités apportées sont sans commune mesure : outre les fonctions dites standards, les nouvelles solutions de communication et collaboration unifiées intègrent une multitude d'outils qui apportent une réelle productivité et correspondent au mode de travail actuel. Ces dernières années, les entreprises ont compris les bénéfices des solutions en mode « As a Service » qui ont été démocratisées grâce à une large communication et un lancement massif d’applications « dans le nuage » par les plus grands éditeurs de logiciels et services. Grâce au cloud, les entreprises peuvent :
Passer cette charge en mode charges d’exploitation (Opex) et obtenir une meilleure prédictibilité des coûts Bénéficier de l’intégration des services de support et maintenance et des mises à jour techniques et fonctionnelles de la solution Disposer d’un engagement contractuel sur la disponibilité des applications. Ces avantages prennent toute leur valeur dans le domaine de la communication unifiée, en particulier du côté technique. Le RSSI va en effet se libérer des contraintes opérationnelles et se concentrer sur l'évolution des services offerts aux utilisateurs plutôt que de passer du temps à les maintenir. Bien souvent, on oublie le coût que représente l'exploitation interne, dans laquelle il faut intégrer la formation des collaborateurs et le temps passé à administrer un système. Parfois, cette expertise repose sur une seule personne.
3. Les avantages des Communications Unifiées
Une productivité améliorée Initier une communication via un PC, consulter ou envoyer des fax depuis un ordinateur, organiser des réunions à distance, connaître la présence de collaborateurs sans devoir se déplacer… quelques exemples concrets d’une organisation plus efficace dans l’entreprise.
Un investissement rapidement rentabilisé Alors qu’il fallait auparavant faire appel à de nombreuses compétences différentes pour installer des services (téléphonie, informatique bureautique, serveurs, …), un seul métier est à présent requis pour remplir ces missions.
Une vraie souplesse des et mobilité Des employés qui peuvent travailler n’importe où sont plus productifs et peuvent mieux concilier travail et vie personnelle.
Un reporting précis Une gestion financière et technologique efficace commence par une bonne information. La présence des services de communication sur le réseau IT permet de générer des rapports précis d’activité des différentes unités. Ainsi l’optimisation de l’infrastructure et apporter les corrections nécessaires pour un meilleur fonctionnement et une rentabilité optimale.
4. La dualité VoIP et communication unifiée La clé de réussite d’une entreprise passe par les moyens de communication dont elle dispose et les coûts engendrés (Internet, téléphonie, messagerie). Dans toutes les entreprises l’on cherche à diminuer sa facture de communication en préservant la haute disponibilité et la meilleure qualité de service possible. La VoIP est le point d’entrée vers les solutions de communication unifiée tant recherchées par les entreprises. Ainsi, pour accéder à la communication unifiée, les entreprises font évoluer leur A. El Imami & M. Merzouk
Page 9
infrastructure IP en demandant aux opérateurs et aux éditeurs de leur proposer des solutions ouvertes qui pourront aisément communiquer avec l’environnement informatique. Cette profonde révolution s’explique aussi par l’évolution des usages comme la mobilité des collaborateurs. Les entreprises petites et moyennes ainsi que des utilisateurs individuels envisagent les solutions de téléphonie IP pour leurs communications au jour le jour. En fait, on peut dire qu'ils vont de l'avant sur les traces de la grande entreprise. Donc la voix sur IP est le pivot essentiel du développement des applications de communications unifiées pour entreprises. Elle fait sortir la téléphonie de son isolement pour en faire une fonction de communication qui s’intègre et se fond dans les applications de communications collaboratives et les applications métier. Elle a un impact sur les méthodes de mise en œuvre de la téléphonie en abandonnant la vision système pour aller vers une vision entièrement orientée vers les services.
5. VoIP et protocoles associés 5.1
Comment fonctionne la VoIP?
La voix sur IP utilise plusieurs protocoles afin de faire transiter la voix d'un équipement à un autre. Le premier étant évidemment le protocole IP sur lequel se basent internet et les réseaux locaux. On distingue aussi plusieurs protocoles de transports et de connexions comme le RTP,RTCP, H.323, SIP et MGCP. On distingue aussi des normes de compressions de la voix appelées 'codecs'. Tous ces termes techniques seront détaillés dans la partie suivante de ce chapitre afin de nous concentrer ici sur le fonctionnement de la VoIP et l'utilisation de ces protocoles et codecs.
Le cheminement de la voix : Lorsque l'on parle dans un téléphone classique, notre voix transite analogiquement jusqu'au destinataire via le réseau commuté. Pour la téléphonie sur IP, la voix est numérisée pour être transmise sur un réseau de données. On utilise donc un codec qui échantillonne la voix.
Echantillonnage : Il
s'agit d'enregistrer à des intervalles très rapprochés la valeur d'un signal afin de pouvoir disposer d'un enregistrement proche de la valeur réelle de ce signal. Plus l'intervalle est petit, plus la qualité de l'échantillonnage est bonne. La mesure de l'échantillonnage est l’Hertz. Un Hz correspond à un enregistrement par seconde. Pour information, les cds audios sont échantillonnés en 44100Hz.
Une fois la voix échantillonnée, il faut la compresser pour que le flux d'informations soit moins important. On utilise donc un codec qui permet de réduire significativement la taille du flux.
Codec : Codec
est une abréviation pour Codeur/Décodeur. Un codec est basé sur un algorithme qui permet la compression des données qu'on lui donne. On distingue les codecs à pertes des codecs sans pertes. Un codec à pertes distingue les parties moins importantes des informations et les supprime pour gagner en taille.
Une fois le signal numérisé et encodé, il est prêt à être transmis. Le transport des données peut se faire par l'intermédiaire de plusieurs protocoles dont notamment RTP et RTCP, le contrôle du flux se faisant via les autres protocoles nommés plus haut. Arrivé du coté du récepteur, le signal est décodé en utilisant le même codec et ensuite restitué. A. El Imami & M. Merzouk
Page 10
Figure 3 : Encodage et décodage de la voix (Source : http://blog.wikimemoires.com/2011/03/protocolede-transport-de-voip-codecs/ )
Commutation par paquets Lors d'un transfert d'informations sur un réseau IP, ces informations sont découpées en paquets qui peuvent suivre des chemins différents de l'émetteur vers le destinataire. Cela s'appelle la commutation par paquets qui s'oppose à la commutation par circuits (un circuit physique ou logique relie l'émetteur au destinataire). Découper les données en paquets permet de multiplexer le flux. Les paquets provenant de plusieurs sources différentes sont mélangés sur le réseau afin de pouvoir offrir plusieurs connections sur un seul lien. Le principal inconvénient du multiplexage est la gigue qu'il peut engendrer. Si tous les créneaux créés par le multiplexage sont occupés, la source doit attendre qu'un de ces créneaux soit libre. Dans le cadre d'une application comme la VoIP, cette attente se traduit par un retard baptisé gigue (jitter en anglais). Ce délai peut être variable mais doit être faible pour garantir une bonne qualité dans une conversation VoIP. Lorsque la gigue devient trop importante, les conversations deviennent hachées voire inintelligible. Les protocoles utilisés pour le transport de la VoIP se doivent donc de prévoir et corriger cette gigue. Le RTP (pourReal Time Protocole) dispose d'un mécanisme pour palier à ce défaut.
5.2
Les protocoles de la voix sur IP
Il y a plusieurs protocoles qui permettent de transmettre et de contrôler la voix dans le réseau d’IP inclut H.323, SIP, MGCP, SCCP, … Deux protocoles les plus répandus aujourd’hui ce sont le protocole H.323 et le protocole SIP.
5.2.1
Le protocole H.323
La norme H.323 a été développée par ITU-T (International Telecommunications Union-Technology Standardization Sector) pour transmettre audio et la vidéo sur Internet. Au cours des 10 dernières années, cette norme est passée par plusieurs révisions et additions plus de dispositifs, et de stabilité.
Composants H.323
La norme H.323 indique quatre types de composants qui unissant ensemble, fournir les services de communication de multimédia bout à bout et les services bout en multi bout: - Terminal - Passerelle (gateway) - garde-barrière (gatekeepers) - MCUs(Multipoint control units) Terminaux Utilisé pour des communications bidirectionnelles en temps réel de multimédia, un terminal H.323 peut être un PC (PC) ou un seul dispositif autonome courant un H.323 et les applications de multimédia. Il soutient des communications audio, des communications de vidéo ou des données. Puisque le service de A. El Imami & M. Merzouk
Page 11
base fourni par un terminal H.323 est la communication audio, un terminal H.323 joue un rôle principal dans le service d'IP-téléphonie. Le but primaire de H.323 est de réagir réciproquement avec d'autres terminaux de multimédia. Les terminaux H.323 sont compatibles avec les terminaux H.324 sur SCN et réseaux sans fil, les terminaux H.310 sur B-ISDN, les terminaux H.320 sur le ISDN, les terminaux H.321 sur ISDN, et les terminaux H.322 sur QoS garanti LANs. Les terminaux H.323 peuvent être utilisées dans des conférences multipoint. Passerelles Une passerelle relie deux réseaux différents. Une passerelle H.323 fournit la connectivité entre un réseau H.323 et un réseau non-H.323. Par exemple, une passerelle peut relier et fournir la communication entre un terminal H.323 et les réseaux de SCN. Cette connectivité des réseaux différents est réalisée en traduisant des protocoles pour l'installation et le dégagement d'appel, en convertissant des formats de médias entre différents réseaux, et en transférant l'information entre les réseaux reliés par la passerelle. Une passerelle n'est pas exigée pour la communication entre deux terminaux sur un réseau H.323. Garde-barrières Un garde-barrière peut être considéré comme le cerveau du réseau H.323. C'est le point focal pour tous les appels dans le réseau H.323. Bien qu'ils ne soient pas exigés, les garde-barrières fournissent des services importants comme l'adressage, l'autorisation et l'authentification des terminaux et des passerelles, gestion de largeur de bande, comptabilité, facturation, et remplissage. Les portiers peuvent également fournir des services de call-routing. MCU
MCUs fournissent l'appui pour des conférences de trois terminaux H.323 ou plus. Tous les terminaux participant à la conférence établissent un raccordement avec le MCU. Le MCU contrôle des ressources de conférence, négocie entre les terminaux afin de déterminer le codeur/décodeur audio ou visuels (CODEC) pour employer, et peut manipuler le flux de médias. Les garde-barrières, les passerelles, et le MCUs sont les composants logiquement séparés de la norme H.323 mais peuvent être mis en application comme dispositif physique simple.
Figure 4 : Architecture H.323 (Source : http://www.protocols.com/pbook/architecture.htm )
5.2.2
Le protocole SIP
SIP (Session Initiation Protocole) est conçu pour contrôler et établir des sessions de multimédia, comme vidéo conférence, les appels de voix, et le partage des données. SIP est encore dans la première étape de déploiement et devient un norme de protocole. C'est la norme que beaucoup de fabricants d'élément emploient pour développer des produits.
Il a des caractéristiques principales qui le rendent si attrayant :
Système d’adressage d’URL – Il permet de la portabilité de nombre qui est indépendant d'endroit physique. L'adressage peut être un nombre de téléphone, un IP adresse, ou une adresse d'email. Les messages sont très semblables à ceux employés par l'Internet (HTTP). Multimédia – Le SIP peut d’avoir des sessions multiples de média pendant un appel.
A. El Imami & M. Merzouk
Page 12
C’est un protocole « léger » et facilement déployer
5.2.2.1
Entités de SIP
Un réseau de SIP se compose de quatre types d'entités de SIP. Chaque entité a des fonctions spécifiques et participe à la communication de SIP comme le client (demandes d'initiés), le serveur (répond aux demandes), ou tous les deux. Un « dispositif physique » peut avoir plus de fonctionnalités qu’une entité logique de SIP. Par exemple, un serveur de réseau fonctionne comme proxy serveur peut également fonctionner comme serveur d’enregistrement en même temps. Il y a quatre types d’entités logiques de SIP:
Agents d’utilisateur Les agents d'utilisateur représentent le téléphone (client d'agent d'utilisateur) et le serveur (serveur d'agent d'utilisateur). Le client d'agent d'utilisateur (UAC) lance des appels de médias. Le serveur d'agent d'utilisateur (UAS) répond à ces demandes d'installation au nom de l'UAC. L'UAS est également responsable de trouver la destination UAC ou UAS intermédiaire.
Proxy serveur Proxy server contiennent des caractéristique du client et du serveur. Le proxy server peut recevoir des messages de demandes et des messages de réponse. Il peut ajuster l'information d'en-tête avant d’expédier la demande sur le prochain proxy server ou de rentrer au client d'utilisateur
Serveur de redirection Un serveur de redirection est un serveur qui accepte une demande de SIP, projette l'adresse de SIP de la partie appelée en zéro (s'il n'y a aucune adresse connue) ou des nouvelles adresses et les renvoie au client. Différence des proxys serveurs, les serveurs de redirections ne transmettent pas la demande à d'autres serveurs.
Serveur d'enregistrement Un serveur d’enregistrement est un serveur qui accepte des demandes de REGISTRE afin de mettre à jour une base de données d'endroit avec l'information de contact de l'utilisateur indiqué dans la demande.
Figure 5 : Architecture SIP (Source: http://www.protocols.com/pbook/architecture.htm)
5.2.2.2
Messages
Comme HTTP, des messages de SIP contiennent deux catégories principales, incluant des messages des clients aux serveurs et des messages des serveurs aux clients.
En-têtes de message Chaque message a un en-tête de message. L'en-tête de message identifie le type de message, la partie appelante et la partie appelée. Il y a quatre types de message: En-têtes généraux : cet en-tête de message s'applique aux messages de demande et de réponse. En-têtes d'entité : cet en-tête de message fournit des informations du type de corps de message et de la longueur. A. El Imami & M. Merzouk
Page 13
En-têtes de demande : cet en-tête de message permet à des clients d'inclure l'information additionnelle de demande. En-têtes de réponse : cet en-tête de message permet au serveur d'inclure l'information additionnelle de réponse.
Message de requête Des messages de requête sont lancés par un client à un serveur. SIP, un protocole « léger », a seulement quelques messages de requête qu'il emploie pour relier des appels. La section suivante définit les messages de requête de SIP. - INVITE : cette requête indique que l’application (ou utilisateur) correspondante à l’URL SIP spécifié est invité à participer à une session. Le corps du message décrit cette session (par ex : média supportés par l’appelant). En cas de réponse favorable, l’invité doit spécifier les médias qu’il supporte. - ACK : permet de confirmer que le terminal appelant a bien reçu une réponse définitive à une requête INVITE. - OPTIONS : un proxy server en mesure de contacter un terminal appelé, doit répondre à une requête OPTIONS en précisant ses capacités à contacter le même terminal. - BYE : cette requête est utilisée par le terminal de l’appelé à fin de signaler qu’il souhaite mettre un terme à la session. - CANCEL : cette requête est envoyée par un terminal ou un proxy server à fin d’annuler une requête non validée par une réponse finale : Si une machine ayant été invitée à participer à une session, et ayant accepté l’invitation ne reçoit pas de requête ACK, alors elle émet une requête CANCEL. - REGISTER : cette méthode est utilisée par un client pour enregistrer son adresse auprès du serveur auquel il est relié. -
Message de réponse Les messages de réponse contiennent des codes numériques de réponse. Les codes de réponse de SIP sont en partie basés sur des codes de réponse de HTTP. Il y a deux types des réponses et de six classes : -
-
5.2.3
Types de réponse : Provisional (classe 1xx) – des réponses provisionnelles sont employées par le serveur pour indiquer le progrès, mais elles ne terminent pas des transactions de SIP. Final (classes 2xx, 3xx, 4xx, 5xx, 6xx) - les réponses finales terminent des transactions de SIP. Classes : 1xx – Message d’information 2xx – Message de succès 3xx – Message de redirection 4xx – Message d’erreur sur le client 5xx – Message d’erreur sur le serveur 6xx – Destination occupée, non accessible ou refusant la communication
Le protocole MGCP
Le protocole MGCP n'est pas un concurrent de H.323 ou SIP. Au contraire, ce protocole est complémentaire dans les services qu'il offre. Il permet entre autre de piloter les terminaux non intelligents. Pour cela, MGCP utilise un protocole à stimulus. Ce type de signalisation utilise des instructions de bas niveau contrairement aux instructions du RNIS, du SIP et de H.323. Dans un protocole à stimulus, le terminal est contrôlé par le protocole. MGCP est donc un protocole client/serveur car une machine contrôle les terminaux et H.323 et SIP sont peer to peer car ils traitent d'égaux à égaux.
A. El Imami & M. Merzouk
Page 14
L'avantage principal d'un protocole à stimulus est la simplification des terminaux. Le besoin de terminaux intelligents est donc inferieur.
Interconnexion avec les autres réseaux téléphoniques MGCP peut servir en deux endroits d'un réseau de téléphonie sur IP. Le premier est à l'interconnexion entre le réseau et les téléphones pilotés en mode stimulus. Le deuxième est à la passerelle avec le réseau RTC. Le système se compose d'un Call-Agent, une passerelle pour transformer les paquets du réseau pour circuler sur un circuit commuté et vice versa. Pour l'interconnexion avec le réseau RTC, il est nécessaire de disposer enplus d'une passerelle pour la signalisation. Le call-Agent agit comme un commutateur logiciel avec le réseau VoIP. Il contrôle de plus les passerelles. Ce contrôle s'exerce par un mécanisme de suscription : Le call-agent prévient les passerelles des événements l'intéressant et celles ci le contactent à chaque fois qu'un événement surveillé apparaît.
Figure 6 : Schéma sur l'implantation de MGCP (Source : http://www.testeur-voip.com/technologievoip-explication.php?numpage=5)
5.2.4
Le Protocole IAX/IAX2
Le protocole IAX (Inter-Asterisk eXchange) est issu du projet d'IPBX open source et de la communauté « Asterisk », tout comme le SIP, c'est un protocole de la téléphonie IP qui permet de communiquer entre client et serveur . La différence avec le SIP et le point fort de l'IAX, se base sur l'utilisation d'un port UDP unique qui est le port « 4569 » qui permet de s'affranchir a des problématiques de NAT dans le système de télécommunication. Le protocole IAX L'IAX2 support maintenant l'authentification par certificat (PKI), le mode « Trunking » et possède aussi un « JitterBuffer » plus évolué que SIP, plus adapte aux boucles locales ADSL des particuliers, ce qui permet d'obtenir une légère augmentation du niveau de qualité que le SIP dans ces conditions.
A. El Imami & M. Merzouk
Page 15
Ce protocole trouve ses contraintes dans le fait qu'il n'est pas encore standardise donc le nombre d'équipement supportant ce protocole reste faible.
5.2.5
Les protocoles RTP et RTCP
Dans les réseaux VoIP, la synchronisation de bout en bout doit être garantie. Cette tâche est confiée aux protocoles RTP et RTCP. Le RTP (Real-time Transport Protocol) permet d'assurer un service de remise bout en bout pour les
données ayant des caractéristiques de temps réel, telles que les données audio et vidéo interactives. Ce service inclut l'indication du type de codage de l'information transportée, la numérotation des séquences, l'ajout des marqueurs de temps et le contrôle de la remise. Par contre, il ne garantit pas le bon acheminement des paquets, ni une quelconque qualité de service. Le RTCP (Real-Time Transport Control Protocol) est le protocole de contrôle des flux RTP. Il transmet périodiquement des informations de contrôles entre les participants à une session comme les statistiques de réception et d'émission, informations indicatives de la qualité de service.
5.3
CODEC
Avant que la voix analogue puisse être transmise sur un réseau IP, d’abord, elle doit être digitalisée. Les normes communes de codage sont énumérées dans la table suivante : Le codec
Algorithme
Débit
G.711
PCM (Pulse Code Modulation)
64 kbps
G.728
LD-CELP(Low Delay Code Excited Linear Prediction) 16 kbps
G.729 G.723.1
CS-ACELP(Conjugate Structure Algebraic CELP) MP-MLQ(Multi-Pulse Maximum Likelihood Quantization) ACELP(Algebraic Code Excited Linear Prediction)
8 kbps 6.3 kbps 5.3 kbps
Tableau 1 : les différents codecs de la VoIP
L'algorithme G.711 est basé sur la modulation de code d'impulsion fonctionnant à un taux d'échantillon de 8 kHz, avec 8 bits par un échantillon. Il y a une corrélation générale entre la qualité de voix et le débit : plus le débit est
haut, plus la qualité de voix est haute.
A. El Imami & M. Merzouk
Page 16
Chapitre 2 Etude comparative des plateformes de communication unifiée Plusieurs plateformes de communication unifiée existent, différentes selon qu'elles ont été crée et les services qu'elles offrent. Le choix d'une plateforme pour les entreprises s'appui généralement sur les avantages de ses services ainsi que leur possibilité de déploiement. Dans la suite de ce chapitre nous énumérerons quelques plateformes, leurs services offert, leurs avantages et inconvénients.
1. Solutions commerciales 1.1. Unified communication plateform (UCP) UCP est une plateforme aussi puissante des applications de messagerie multimédia, facilitant l'accès et la gestion des messages voix, e-mail ou fax de n'importe oft, et compatible avec une large gamme de media. UCP offre les services tels que Text-to speech (TTS) et permettent de concevoir une nouvelle interface d'accès aux messages, avec une distribution des appels simplifies grâce a la technologie de reconnaissance vocale. Les services supplémentaires de cette plateforme sont : la Messagerie vocale (message en attente), Standard automatique (Appel par nom via une touche ou vocale), Messagerie unifiee (UCP est comme un point d'accès unique pour les messages, fax et e-mail..) ; Client UC ( gère tout ce qui est numéro, l'historique, journaux, statut, messagerie instantanée...), Client web ( gère les paramètres web des utilisateurs a travers une interface web), Administration du serveur, Module LDAP Convergence mobile, Statistique, etc. L'inconvénient de UCP est d'abord qu'il est purement commerciale donc privée, le déploiement nécessite l'acquisition d'un certain nombre varie de connaissances : Certification (domaine de compétence silver) et le cout de la licence relativement élevé par apport a d'autres plateformes.
1.2. Alcatel Omnitouch Unified Communication (Otuc) Cette plateforme est une suite de la prochaine génération des applications IP de communications unifiées pour les entreprises, et la première dans le monde de communication unifiée a implémenté les technologies ressentes de l'internet (XML, SOAP, SIP et VXML) permettant aux utilisateurs de s'adapter, de contrôler et de gérer les appels, messages, annuaires outils de travail collaboratif et de l'information depuis n'importe quel endroit. Par ailleurs, elle gère comme les autres plateformes plusieurs services tels que messagerie, ToIP, fax etc. Plusieurs version de cette plateforme ont été mise à jour la dernière est le OmniPCX Entreprise. A. El Imami & M. Merzouk
Page 17
1.3. Cisco Unified Communications Manager (CUCM) C'est une propriété de CISCO, qui permet de gérer les services de communication Voix, Vidéo, des services de présence téléphonique et de mobilité, des services de messagerie vocale et/ou unifiée et des services d'intégration, d'application ainsi que des applications métiers (outil informatique pour les utilisateurs). Elle entièrement prise en charge par CISCO ceci implique qu'elle fonctionne parfaitement avec les équipements Cisco, aussi avec une assez bonne mesure de sécurité.
1.4. Avaya one-X® Avaya one-X® est une famille d'applications de communication et d'outils de collaboration conçue pour les utilisateurs finaux. Cette solution prend en charge les communications unifiées sur une multitude de plateformes, et notamment sur les ordinateurs de bureau et ordinateurs portables, les terminaux mobiles et les téléphones IP professionnels dédiés. Les produits Avaya one-X permettent aux professionnels de travailler de n'importe où en se connectant à divers réseaux publics ou privés. Développés selon des normes industrielles, comme SIP ou H.323, les produits one-X offrent un accès simple et intuitif aux outils quotidiens de communication et de collaboration. Les Communications Unifiées d'Avaya garantissent la convergence des applications de communications professionnelles temps réel et standard telles que la téléphonie, la téléconférence, la messagerie électronique, la messagerie vocale, la messagerie instantanée, la vidéo et la collaboration à travers des interfaces diverses, que celles-ci soient des clients PC ou basé-Web, des téléphones et des appareils portables ou la reconnaissance vocale. Et bien d'autres plateformes comme Microsoft, Avaya, IBM, ...
1.5. Synthèse UCP
Alcatel Otch
CUCM
Avaya
Aastra
Alcatel-Lucent
Cisco
avaya
optionnel
optionnel
Nativement intégré
optionnel
Principales applications natives prises en charge
VoIP, messagerie unifiée, centre de contacts..
VoIP, centre de contact, Unified Communication, messagerie vocale intégrée...
VoIP, messagerie unifiée, centre de contacts, conférence Web, analyse/monitoring/surveillance, Fax sur IP.
VoIP, messagerie unifiée, centre de contacts, conférence Web...
Nombre de postes IP
4 000
50 000
30 000
36 000
Coût (serveur seulement)
Entre 3000 et 5000 € pour
Environ 1100 € pour 20 users
Environ 3 979,45 € pour 20 users
Environ 8000 € pour 20 users
Editeur Couplage serveur/suite de gestion des appels
20 users
A. El Imami & M. Merzouk
Page 18
Tableau 2 : Comparaison des solutions commerciales
2. Solutions open sources 2.1. Asterisk Asterisk est la solution IPBX Open source la plus utilisée sur le marché de la téléphonie sur IP à l'heure actuelle. Cette solution a notamment donnée naissance à plusieurs projets dont le but était la conception d'IPBX Open source, même les leaders des télécommunications se sont mis à développer des solutions autour de ce produit. Il est possible de citer certains projets Open Source dont Asterisk a permit de donner naissance comme Bayonne, Callweaver, Freeswitch et d'autres encore. Ce produit doit sa conception au fondateur de la société Digium Mark Spencer en 1999. Le résultat de cette conception s'appelle Asterisk, outil qui connaît aujourd'hui un grand succès dans son domaine. Le projet initial a été développé autour d'une GNU/Linux sur une plate-forme de type x/86, actuellement cette solution est désormais disponible sur une plus grande quantité de plates-formes. Asterisk est un PBX Open Source qui est basé actuellement sur la licence GPL 2.0. Asterisk permet de mettre en œuvre un certain nombre de fonctionnalités dont certaines sont citées cidessous.
Fournit un grand nombre de fonctionnalités lié à la gestion des appels comme les transferts, interception, mise en attente des appels, musique d'attente... Permet de réaliser des conférences vocales à plusieurs. Service d'identification de l'appelant. Fournit des services vocaux interactifs (IVR ) Interconnexion au réseau téléphonique traditionnel (FXS/FXO, ISDN) Cartes Digium. Gère plusieurs protocoles de Voix sur IP (H.323, IAX, IAX2, MGCP and SIP). Compatibilité avec plusieurs modèles de téléphones IP (Cisco, Nortel, Polycom). Utilisation de l'Inter-Asterisk eXchange (IAX) pour la communication entre deux serveurs Asterisk. Ne nécessite pas de plate-forme matérielle spécifique Possibilité d'intégrer du développement JAVA.
2.2. Bayonne Le projet d’IPBX Bayonne est un projet jeune mais basé sur le projet ACS (Adjunct Communication Server) plus ancien. Le projet ACS a été repris par le GNU project qui œuvre pour développer un système d’exploitation et des logiciels complètements gratuits basés sur Unix. Le nom Bayonne vient du nom du célèbre pont qui relie la ville de Bayonne dans le New Jersey avec l’île de Staten Island dans l’état de New York. L’auteur a ainsi voulu montrer que son logiciel était un « pont » entre le monde de l’informatique et le monde de la téléphonie. Bayonne ne possède pas de fonction IP-PBX dans sa version 1. La version 2, prend en compte cette fonctionnalité. Ce projet étant peu suivi par la communauté Internet, il est très difficile donc de trouver A. El Imami & M. Merzouk
Page 19
de la documentation. Actuellement GNU Bayonne est un projet de petite envergure mais il a le mérite d'avoir fait partie des précurseurs dès 1998. Bayonne possède pour le moment beaucoup trop d’inconvénients, notamment parce que le logiciel n’est pas complet. Ce projet étant très peu suivi par la communauté Internet, il est très difficile de trouver de la documentation. On sait que depuis la version 2, Bayonne supporte SIP et H323. Les autres caractéristiques de Bayonne sont difficilement trouvables. Certains utilisateurs de Bayonne avouent que sa configuration est un véritable cauchemar.
2.3. FreeSwitch FreeSWITCH est une solution open source de téléphonie sur IP, sous une licence MPL, développé en C. Elle permet la mise en place de communications vers un téléphone virtuel via un commutateur virtuel. Freeswitch peut être utilisé comme un simple commutateur, un PBX, une passerelle ou un serveur d'applications IVR utilisant des scripts ou des fichiers XML permettant d'automatiser certaines tâches et de développer de nouveaux services. FreeSWITCH c’est l’autre géant de la téléphonie Open source. Cette plateforme est évolutive et permet de relier entre eux plusieurs moyens de communication (audio, vidéo, texte…). La gamme d’outils Open source de FreeSWITCH permet un développement d’applications quasi infini. L’initiateur de ce projet est Anthony Minessale avec l’aide de Brian West et Michael Jerris qui étaient tout les trois développeurs chez le cousin Asterisk. Les maîtres mots de ce projet sont l’adaptabilité et la stabilité et pour y arriver c’est un grand nombre de développeurs qui travaillent dessus. FreeSWITCH fonctionne sur plusieurs systèmes d'exploitation, notamment Windows, Mac OS X, Linux, BSD et sur les deux plates-formes Solaris (32 bits et 64 bits). Une Interface Web pour FreeSWITCH est disponible sous le nom Wiki PBX. FreeSWITCH supporte les caractéristiques standards et avancées du protocole SIP, permettant de mettre en place un serveur de conférence, un serveur de Voicemail,... Il utilise aussi les protocoles IAX2, Jingle et H323.
2.4. YATE YATE est un logiciel créé par une communauté originaire de Roumanie, le nom donné à la solution est un acronyme signifiant « Yet Another Telephony Engine ». Il a été développé en C++ par la société Null Team qui a été fondée en 2004, après quelques années d'expérience dans le domaine de la téléphonie et de la création de logiciel. Yate se distingue sous deux versions : YATE 1 et YATE 2. YATE peut être utilisé à la fois en tant que client ou serveur. Le mode client est un softphone développé en java. Il peut réaliser la fonction de passerelle entre le réseau public et le réseau IP ou entre un PC et un téléphone, afin de réaliser l'acheminement des communications vers le réseau de l'opérateur. YATE a été conçu de sorte à permettre son exploitation sur les OS Windows, Linux et Unix. Ce logiciel accepte les scripts dans différents langages de programmation, tel que le PHP, Perl, Python. Yate supporte les protocoles :
A. El Imami & M. Merzouk
Page 20
H323 (basé sur OpenH323) SIP (basé sur une pile SIP propre à YATE) IAX et IAX2 (basé sur une partie de libIAX). RTP
Se décline sous différentes fonctionnement comme :
Serveur de téléphonie sur IP Client VoIP PSTN VoIP Gateway PC2Phone et Phone2PC Gateway Gardien H.323 Proxy H.323 SIP Routeur SIP Serveur d'enregistrement SIP Serveur et/ou client IAX Call center serveur
2.5. Synthèse
Tableau 3 : Comparaison des solutions Open Source A. El Imami & M. Merzouk
Page 21
Chapitre 3 Solution de communication unifiée à base d’Asterisk Asterisk est un PABX open source pour systèmes UNIX originellement crée en 1999 par Mark Spencer fondateur de la société Digium. Asterisk est publié sous licence GPL. Asterisk permet, entre autres, la messagerie vocale, les conférences, les files d'attente, les agents d'appels, les musiques d'attente et les mises en garde d'appels ainsi que la distribution des appels. Toutes ces fonctionnalités standards sont intégrées directement au logiciel. Asterisk implémente les protocoles H.320, H.323 et SIP, ainsi qu'un protocole spécifique nommé IAX (Inter-Asterisk eXchange). Ce protocole IAX permet la communication entre deux serveurs Asterisk ainsi qu'entre client et serveur Asterisk. Asterisk peut également jouer le rôle de registrar et passerelle avec les réseaux publics (RTC, GSM, etc.). Asterisk est extensible par des scripts ou des modules en Perl, en C, en Python, en PHP...
A. El Imami & M. Merzouk
Page 22
1. Architecture interne
Figure 7 : architecture interne d’Asterisk. 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 coeur 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) A. El Imami & M. Merzouk
Page 23
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. Fonctionnalités Asterisk comprend un nombre très élevé de fonctions permettant l'intégration complète pour répondre à la majorité des besoins en téléphonie. Il permet de remplacer totalement, par le biais de cartes FXO/FXS, un PABX propriétaire, et d'y adjoindre des fonctionnalités de VoIP pour le transformer en PBX IP. Il permet également de fonctionner totalement en VoIP, par le biais de téléphones SIP ou IAX du marché. Enfin, des fonctionnalités de routage d'appel, menu vocal et boîtes vocales -- entre autres -- le placent au niveau des PBX les plus complexes. Au sein des grandes installations d'Asterisk, il est courant de déployer les fonctionnalités sur plusieurs serveurs. Une unité centrale ou plus seront dédiées au traitement des appels et seront épaulées par des serveurs auxiliaires traitant les tâches secondaires (comme une base de données, les boîtes vocales, les conférences). Des modules tiers permettent de visualiser ou paramétrer le PBX via une interface Flash ou via un client léger. Enfin, notez qu'une distribution particulière d'Asterisk, Asterisk NOW, est dédiée au PBX léger sur un réseau domestique.
Figure 8 : Fonctionnalités d'Asterisk (source : http://www.netsystem.be/tags/voix/ )
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é A. El Imami & M. Merzouk
Page 24
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 A. El Imami & M. Merzouk
Page 25
lignes analogiques ou PBX classiques) et des ports FXS (Foreign eXchange Station, pour connecter les téléphones analogiques).
5. Dimensionnement du serveur Asterisk Si les techniques de mise en œuvre d’IP permettent théoriquement de transporter la voix avec un bon niveau de qualité, encore faut il que les choix d’architecture, de dimensionnement et de paramétrage permettent d’atteindre l’un des objectifs visé qui est le partage des ressources d’infrastructures entre les données et la voix. En effet des choix inadaptés en terme d’ingénierie de l’infrastructure et du trafic rendront impossible la cohabitation voix/données. Pour s’assurer que le dimensionnement effectué ne dépasse pas les capacités de notre serveur en termes de possibilité de traitement d’appel SIPp est un outil de test ainsi qu’un générateur de trafic basé sur le protocole SIP.
5.1 Outils de test de performance SIPp de HP SIPp est une plate-forme logicielle Open Source de test fonctionnant sur un système Linux, ainsi qu’un générateur de trafic basé sur le protocole SIP. Il utilise des scénarios d’agent utilisateur de base SipStone (UAC et UAS) et permet d’établir et de terminer des appels à l’aide des méthodes SIP standard INVITE et BYE.
5.2 Caractéristiques -
SIPp offre un affichage dynamique sur les statistiques à l’exécution de tests. Par exemple, on peut voir le taux d’appel en cours, le délai aller-retour entre le client et le serveur, ainsi que les statistiques sur les messages SIP. De plus, l’outil permet l’utilisation de TCP et d’UDP sur de multiples connexions, ainsi que la gestion dynamique du taux d’appel en cours.
-
Ses fonctionnalités avancées incluent le soutien de IPV6, la transmission sécurisée TLS, l’authentification SIP, l’utilisation de scénarios conditionnels, la retransmission UDP, les expressions régulières pour l’extraction et la réinjection des données de protocole, des actions sur les messages reçus tels que les journaux, appels système et l’arrêt des appels, ainsi que l’injection de données permettant d’émuler des utilisateurs réels.
-
Vous pouvez aussi avec l’outil effectuer la transmission de médias RTP par le biais de relecture audio avec « ECHO RTP » et « RTP pcap ». Les médias peuvent être audio seulement ou encore audio et vidéo.
-
Conçues pour les essais de trafic, de stress et de performance, SIPp peut aussi être utilisée pour l’exécution d’un seul appel, fournissant un résultat d’échec ou de succès instantané.
-
La description des scénarios de test est faite en language XML. SIPp inclut des scénarios de test par défaut. SIPp peut également interpréter des scénarios externes définis dans le language XML ou via un script Shell.
A. El Imami & M. Merzouk
Page 26
-
La sortie des statistiques (taux d'appels et statistiques sur les messages des protocoles échangés) du trafic généré est listée dynamiquement sur la console. Ces statistiques peuvent également être stockées dans des fichiers au format CVS. Ces statistiques étant assez globales, celles ci ne sont pas suffisamment significatives pour être collectées.
Nous utiliserons donc SIPp afin d’émuler un nombre d’agents utilisateur appelant notre serveur Asterisk.
A. El Imami & M. Merzouk
Page 27
Chapitre 4 Les risques et les différents moyens de sécurité VoIP(Asterisk) La VoiP, dont le développement est exponentiel, est de plus en plus convoitée par les hackers et autres pirates informatiques. Ces derniers produisent différents types d’attaques. Outre les divers virus, et attaques spécifiques aux réseaux IP, la VoiP connaît ses propres attaques. Et c’est contre ces dernières que nous allons protéger notre serveur VoiP. La sécurité d’un réseau VoiP s’appuie sur deux types de sécurités : La sécurité traditionnelle des réseaux informatiques (firewall, antivirus, etc…), La sécurité spécifique VoiP.
1. Principaux risques 1.1 Menaces protocolaires L'énumération suivante propose un premier niveau de classification des principaux risques connus liés aux protocoles utilisés dans la VoIP :
DoS (Denial of service)
Attaques entraînant l'indisponibilité d'un service/système pour les utilisateurs légitimes.
Ecoute clandestine
Attaques permettant d'écouter l'ensemble du trafic de signalisation et/ou de données. Le trafic écouté n'est pas modifié.
Détournement d’appel (Call Hijacking)
Attaques permettant de détourner le trafic au profit de l'attaquant. Le détournement peut consister à rediriger un appel vers une personne illégitime ou à inclure une personne illégitime dans la conversation.
Identité
Attaques basées sur la manipulation d'identité (usurpation, …).
Vols de services
Attaques permettant d'utiliser un service sans avoir à rémunérer son fournisseur.
Communications indésirées
Attaques permettant à une personne illégitime d'entrer en communication avec un utilisateur légitime.
A. El Imami & M. Merzouk
Page 28
Catégorie
Sous-catégories
Méthode
Interruption de la communication en cours
Spoofed messages
Empêcher l'établissement de la communication DoS
Spoofed messages
Dégradation QoS
Rendre la communication Inaudible
Flux RTP parasite
Epuisement de ressources
Flooding
D'appel
Rerouting
De signalisation
Man in the Middle
Usurpation d'identité
Spoofed messages
Détournement du trafic
Identité Dissimulation d'identité
Tunneling RTP Vols de services
Tromper la taxation Usurpation d'identité
Appel spam Communications in désirées
IM spam inscriptions dans la liste blanche
Tableau 4 : les risques existants avec la méthode utilisée.
1.2 Vulnérabilités de l’infrastructure Une infrastructure VoIP est composée de téléphones IP, Gateway, serveurs (proxy, register, etc.). Chaque élément, que ce soit un système embarqué ou un serveur standard tournant sur un système d'exploitation, est accessible via le réseau comme n'importe quel ordinateur. Chacun comporte un processeur qui exécute des logiciels qui peuvent être attaqués ou employés en tant que points de lancement d’une attaque plus profonde.
Faiblesses dans la configuration des dispositifs de la VoIP Plusieurs dispositifs de la VoIP, dans leur configuration par défaut, peuvent avoir une variété de ports TCP et UDP ouverts. Les services fonctionnant sur ces ports peuvent être vulnérables aux attaques DoS. A. El Imami & M. Merzouk
Page 29
Les téléphones IP
Un pirate peut compromettre un dispositif de téléphonie sur IP, par exemple un téléphone IP, un softphone et autres programmes ou matériels clients. Généralement, il obtient les privilèges qui lui permettent de commander complètement la fonctionnalité du dispositif. Compromettre un point final (téléphone IP) peut être fait à distance ou par un accès physique au dispositif. Le pirate pourrait modifier les aspects opérationnels d'un tel dispositif: La pile du système d'exploitation peut être changée. Ainsi la présence de l'attaquant ne sera pas remarquée. Les softphones ne réagissent pas de la même façon aux attaques comparés à leur homologues téléphones IP. Ils sont plus susceptibles aux attaques dues au nombre de vecteurs inclus dans le système, à savoir les vulnérabilités du système d'exploitation, les vulnérabilités de l’application, les vulnérabilités du service, des vers, des virus, etc. En plus, le softphone demeure sur le segment de données, est ainsi sensible aux attaques lancées contre ce segment et pas simplement contre l’hôte qui héberge l’application softphone. Les téléphones IP exécutent quant à eux leurs propres systèmes d’exploitation avec un nombre limité de services supportés et possèdent donc moins de vulnérabilités. Les serveurs Un pirate peut viser les serveurs qui fournissent le réseau de téléphonie sur IP. Compromettre une telle entité mettra généralement en péril tout le réseau de téléphonie dont le serveur fait partie. Par exemple, si un serveur de signalisation est compromis, un attaquant peut contrôler totalement l'information de signalisation pour différents appels. Ces informations sont routées à travers le serveur compromis. Avoir le contrôle de l'information de signalisation permet à un attaquant de changer n'importe quel paramètre relatif à l’appel. Si un serveur de téléphonie IP est installé sur un système d'exploitation, il peut être une cible pour les virus, les vers, ou n’importe quel code malveillant.
Vulnérabilités du système d’exploitation Ces vulnérabilités sont pour la plupart relatives au manque de sécurité lors de la phase initiale de développement du système d'exploitation et ne sont découvertes qu’après le lancement du produit. Une des principales vulnérabilités des systèmes d'exploitation est le buffer overflow. Il permet à un attaquant de prendre le contrôle partiel ou complet de la machine. Les dispositifs de la VoIP tels que les téléphones IP, Call Managers, Gateway et les serveurs proxy, héritent les mêmes vulnérabilités du système d'exploitation sur lequel ils tournent. Il existe une centaine de vulnérabilités exploitables à distance sur Windows et même sur Linux. Un grand nombre de ces exploits sont disponibles librement et prêts à être téléchargés sur l'Internet. Peu importe comment, une application de la VoIP s'avère être sûre, celle ci devient menacé si le système d'exploitation sur lequel elle tourne est compromis.
A. El Imami & M. Merzouk
Page 30
2. Eléments de sécurité
2.3
Des solutions pour sécuriser la VoIP
2.3.1
Politique de sécurité
Une politique de sécurité repose essentiellement sur quatre piliers : Décrire clairement votre modèle métier .
Il serait absurde de concevoir ou de déployer une solution de sécurité qui ne serait pas fondée sur la nature de vos objectifs métiers. Qu’il faut les identifiez clairement en y incluant le type de services et d’accès qui vous sont nécessaires pour les atteindre. Si vous prévoyez d’héberger un segment de services au public (encore appelé zone démilitarisée ou DMZ) et d’offrir des activités de commerce électronique, vous devez comprendre toutes les manières dont les pirates chercheront à exploiter vos systèmes et vos services Identifier en détail les risques associés.
Adopter une démarche systématique de limitation de ces risques.
Tout dans un réseau peut constituer une cible, qu’il s’agisse des routeurs, des commutateurs, des hôtes, des applications, des réseaux et des systèmes d’exploitation. Pour être efficace, une politique de sécurité doit tenir compte de chacune de ces composantes. La mise en œuvre des solutions de sécurité repose sur les trois “P” : les Personnes, les Produits et les Procédures. Une politique de sécurité n’est pas une solution “gravée dans le marbre”. La sécurité exige des études, des analyses et des améliorations régulières pour offrir le niveau de protection dont votre entreprise a besoin. Garder à l’esprit que la sécurité est un processus.
2.3.2
La sécurité physique
La sécurité physique est une partie essentielle de tout environnement sécurisé. Sa mise en œuvre permet, entre autres, de diminuer fortement les risques d’écoutes clandestines et les risques de DoS dus, par exemple, au débranchement de l’alimentation d’un Switch ou d’un serveur. Elle doit permettre la limitation des accès aux bâtiments et équipements (ainsi qu’à toutes les informations qu’ils contiennent) évitant ainsi les intrusions inopportunes, le vandalisme, les catastrophes naturelles, et les dommages accidentels (pic d’intensité électrique, température trop élevée…). Lors de la mise en place d’un système de ToIP, l’alimentation électrique doit être étudiée en détail pour éviter toute interruption de service due à une coupure de courant. Deux possibilités peuvent être utilisées pour alimenter le poste IP :
brancher le téléphone sur le secteur via un transformateur, utiliser le protocole PoE (P ower over Ethernet – alimentation électrique du poste via le réseau informatique).
2.3.3
La sécurisation des serveurs
L’ensemble des serveurs participant à une solution de ToIP doit respecter une procédure de mise en place standard et être sécurisé avant toute connexion au réseau. Une seule équipe au sein de l’entreprise doit être en charge de la rédaction des procédures d’installation et de sécurisation des serveurs et cela A. El Imami & M. Merzouk
Page 31
quel que soit le type de système (Windows, Linux, Unix propriétaire, etc.). La sécurisation des serveurs comprend notamment :
la suppression des comptes inutiles, la vérification du bon niveau de droit des différents comptes, la suppression des services inutiles, la suppression des logiciels ou modules inutiles, le bon niveau de correction par rapport aux publications des éditeurs/constructeurs.
Par ailleurs, nous recommandons un audit régulier des serveurs en production par la même équipe. Celle-ci vérifiera le bon fonctionnement des serveurs et s’assurera que les utilisateurs ne détournent pas les serveurs de leurs fonctionnalités initiales, provoquant alors une baisse du niveau de sécurité de l’entreprise.
2.3.4
L’authentification des utilisateurs
L’une des méthodes les plus importantes pour anticiper une attaque sur un système de téléphonie est de déterminer clairement l’identité des périphériques ou des personnes participant à la conversation. On parlera d’authentification. L’authentification est généralement basée sur un secret partagé par les différentes parties (vous êtes authentifié(e) si vous connaissez le secret) ou sur un système de clés publiques et de certificats (vous êtes authentifié(e) si vous possédez la clé correcte).
2.4
La séparation et la sécurisation des flux
Une fois numérisé, le trafic voix n’est plus identifiable comme tel et se confond avec les flux data sur le réseau. Il devient ainsi victime des problèmes rencontrés couramment en data. Si l’on réussit à séparer les flux avant d’en arriver à cette situation, un traitement particulier peut alors être mis en place et permettre de réduire autant que possible ce type d’inconvénients (broadcast, congestions, DoS, …). La séparation des flux voix et data peut être réalisée via l’utilisation de techniques comme les VLAN, la mise en place de qualité de service ou encore de filtrage. VLAN
La séparation logique des flux voix et data à l’aide de VLAN est une mesure fortement recommandée. Elle doit permettre d’éviter que les incidents rencontrés sur l’un des flux ne puissent perturber l’autre. Les VLAN ou réseaux locaux virtuels, peuvent être représentés comme une séparation logique d’un même réseau physique. Cette opération se fait au niveau 2 du modèle OSI. A. El Imami & M. Merzouk
Page 32
De plus, Un renforcement de la sécurité peut être réalisé en mettant en place un filtrage inter-VLAN, n’autorisant que les utilisateurs d’un VLAN à y accéder. Le risque de DoS peut ainsi être réduit. Qualité de service
Un réseau de données travaille par défaut en mode “Best Effort”. Concrètement, cela signifie que l’ensemble du trafic possède la même priorité et le même nombre de chances d’arrivée sans être supprimé. Ainsi, si un encombrement de réseau survient, le trafic à supprimer pour rétablir le service sera sélectionné au hasard. Ceci n’est pas acceptable sur un trafic contenant de la voix : une dégradation importante de la qualité ne peut être tolérée par l’utilisateur. Il est donc nécessaire de mettre en place un système de priorité donnée au trafic voix sur les trafics moins sensibles. Chiffrement du flux de signalisation : SIPS,…
Le chiffrement du flux de signalisation permet de garantir la confidentialité et l’intégrité des données échangées. Les écoutes clandestines sur ce type de flux sont donc prévenues. Les protocoles pouvant être mis en œuvre sont :
SIPS (en remplacement de SIP) Protocoles propriétaires
Il est toutefois important de remarquer que le chiffrement du flux va introduire un overhead. Cet overhead peut devenir important pour les serveurs VoIP si le nombre d’appels simultanés devient important. Il est donc important de tester la charge générée par la mise en place du chiffrement de manière à connaître les limites de l’infrastructure VoIP et à permettre de dimensionner les équipements VoIP. Concernant SIPS : SIPS est basé sur TLS (Transport Layer Security). L’intégrité des données est garantie grâce aux MACs (Message Authentification Code) basé sur les fonctions de hachage MD5 (16 octets) ou SHA-1 (20 octets). Chiffrement du flux média : SRTP,…
Le chiffrement du flux média permet de garantir la confidentialité et l’intégrité des données échangées. Les écoutes clandestines sur ce type de flux sont donc prévenues. De plus, ce chiffrement fournit l’authentification mutuelle entre les IP Phones. Les protocoles pouvant être mis en œuvre sont :
SRTP (en remplacement de RTP) H.235 pour H.323 Protocoles propriétaire
Voici le format d’un paquet SRTP :
A. El Imami & M. Merzouk
Page 33
Chiffrement avec IPSec (ou VPN)
Le chiffrement des flux avec IPSec (ou VPN) permet de garantir la confidentialité et l’intégrité des flux échangés. L’authentification mutuelle des protagonistes est également assurée. Les protocoles pouvant être mis en œuvre sont :
IPSec Autre technologie VPN
IPSec est basé sur un assortiment de mécanismes protégeant les données échangées sur le réseau. Il fonctionne à la couche IP et traite tous les paquets IP. Ainsi, il protège toutes les applications et peut être implémenté dans tous les appareils utilisant le réseau de manière point au point voir lien à lien. Son but est donc d’éviter l’espionnage du flux de données et l’accès illicite aux ressources. Il permet de garantir la confidentialité et l’authenticité des données échangées. Il fournit également une protection contre les replays-attacks. Il est bon de remarquer qu’il permet un haut niveau de protection s’il est utilisé avec des algorithmes forts et dans un environnement sécurisé. Ces fonctionnalités sont fournies par des mécanismes cryptographiques :
Message Authentication Code (MAC) = Authenticité des données Chiffrement des données = Confidentialité des données Numéro de séquence = protection contre les replays -attacks
Ces mécanismes sont implémentés à l’aide de deux extensions du protocole IP:
AH (Authentification Header) qui perme t d’assurer l’authenticité des datagrammes IP ESP (Encapsulating Security Payload) qui assure la confidentialité des données et/ou leur authenticité AH et ESP peuvent fonctionner avec plusieurs algorithmes cryptographiques, toutefois l’IETF préconise l’utilisation de triple DES (128 bits) pour le chiffrement et HMAC -MD5 ou HMAC-SHA1 pour l’authenticité.
A. El Imami & M. Merzouk
Page 34
Une architecture de VoIP repose sur trois éléments essentiels : les serveurs, le réseau et enfin les IP Phones. Pour obtenir une infrastructure sécurisée, il sera nécessaire de travailler sur chacun de ses éléments tout en gardant la cohérence globale du système à l’esprit. Ainsi, il sera nécessaire de respecter les best practices sécurité sur les serveurs pour renforcer l’OS supportant les services de VoIP. Une énumération rapide nous donnera les points suivants :
Suppression de tous les packages inutiles aux services rendus, Désactivation ou suppression de tous les comptes inutiles, Utilisation de protocoles sécurisés pour les accès distants (SSH, HTTPS, SFTP), Mise en place systématique des différents correctifs de sécurité publiés.
Les IP Phones quant à eux commencent à avoir certains paramètres de sécurité configurables : Hhhhh
GARP Disable (blocage de l’attaque en Man In The Middle via le protocole ARP), Gestion du port PC avec interdiction de communiquer dans le VLAN Voix (cela ne fait pas tout comme nous avons pu le voir avec VoipHopper, mais cela demande malgré tout une étape supplémentaire au pirate), Supplicant 802.1X (version entreprise), L’utilisation d’un protocole sécurisé pour la configuration, Utilisation de protocoles sécurisés pour la signalisation (TLS) et le flux média (SRTP).
A. El Imami & M. Merzouk
Page 35
Le réseau quant à lui permettra de sécuriser les couches basses. Ceci est extrêmement important puisqu’il est facile de remonter
au niveau applicatif une fois le réseau corrompu. Le réseau pourra être divisé en deux grandes familles : le LAN et le WAN ou plus généralement internet. Pour sécuriser le LAN, nous pourrons employer les méthodes suivantes : • Séparation des flux (VLAN), • Filtrage (Access-list et Firewall), • Mise en place d’authentification sur le routage dynamique et le protocole HSRP, • Utilisation des commandes permettant de sécuriser le spanning-tree (type BPDU Guard et root Guard), • Utilisation des commandes permettant de gérer les problématiques DHCP (blocage des attaques d’épuisement de pool avec le port-security, blocage des DHCP pirates avec le DHCP Snooping), • Utilisation des commandes bloquant les Man In The Middle de type ARP ou IP (Dynamic ARP Inspector et IP SPoof Guard), • Mise en place du contrôle d’admission et de conformité (802.1X), etc. Il est nécessaire de bien garder à l’esprit que chaque protocole utilisé sur le LAN possède des options de sécurité qu’il faut mettre en place. Ne pas procéder ainsi, c’est créer soi même des failles de sécurité dans son installation. Le WAN quant à lui nous offre moins d’options pour le sécuriser car il se trouve souvent chez des opérateurs et n’est donc pas maîtrisable (ce qui est encore plus vrai pour internet). Dans ce cas, la seule solution disponible, c’est le chiffrement. Ceci pourra être réalisé soit en utilisant les possibilités natives du téléphone (TLS + SRTP), soit en montant des tunnels IPSec entre ses différents sites ou plus généralement éléments actifs de la solution de VoIP.
Conclusion Cette expérience dans le monde de la VoIP et en particulier d'Asterisk s'est montrée très enrichissante pour chacun d'entre nous. En effet, nous ne connaissions absolument pas ce domaine et n'avions pas la moindre idée des technologies mises en œuvre. Nous avons pris conscience aux cours de nos recherches dans les livres et sur internet de l'ampleur qu'à pris la VoIP et il nous semble difficile maintenant d'imaginer qu'un informaticien ne soit pas un minimum aux faits de cette technologie (au point où nous nous sommes dit que cela pourrait faire l'objet de quelques heures de cours dans le cadre de la licence). Nous nous sommes vus confortés dans le choix que nous avions fait concernant le sujet du projet tuteuré. Comme nous l'avions imaginé, cette expérience sera valorisable par la suite car elle correspond à un véritable besoin sur le monde du travail. Il n'en reste pas moins que les possibilités offertes par la VoIP et en particulier par Asterisk et ses modules sont extrêmement vastes et que leur maîtrise demande un temps d'apprentissage et d'adaptation assez long. Pour cette raison, aucun de nous quatre n'a pu résister à la tentation d'installer chez lui son propre serveur Asterisk pour continuer à mener ses propres expériences. Paradoxalement, la documentation en français n'est pas très fournie sur internet. Plus précisément, les cas de figure sont tellement nombreux qu'il est assez difficile de trouver des informations répondant exactement au besoin que l'on peut avoir. Pour cette raison entre autre, nous avons fait le choix de rendre ce rapport disponible à la communauté et l'avons remis à l'administrateur du site 'générationLinux' qui le mettra en ligne prochainement. Pour conclure, Asterisk présente l'avantage d'être opensource. Cet avantage donne la possibilité de pouvoir le modifier à son grès pour l'adapter finement à ses besoins. Un grand nombre d'applications elles aussi opensource sont développées autour d'Asterisk. Il ne fait pas de doute que cet outil est suffisamment abouti pour être déployé dans des environnements d'envergure. Il n'en reste pas moins assez difficile à prendre en main car il n'est pas très intuitif ni très convivial. Les modules de paramétrage via interface web (freePBX par exemple) peuvent être un plus pour découvrir les capacités de cet outil. A. El Imami & M. Merzouk
Page 1
Annexe1 Configuration d’Asterisk 1. Installation L’installation d’un serveur Asterisk se verra simplifiée grâce à l’outil : apt sous debian. Mise à jour de la liste des paquets disponibles. Asterisk#apt-get update
Installation du serveur Asterisk et de toutes ces dépendances.
Asterisk#apt-get install asterisk
Installation des voix françaises d’Asterisk.
Asterisk#apt-get install asterisk-prompt-fr
Pour finir l’installation il faut autoriser le démarrage du service. Il faut modifier un ficher à l’aide de l’éditeur de texte pico ou autre.
Asterisk# pico /etc/default/asterisk
Et modifier le champ. RUNASTERISK=yes
Voilà notre serveur Asterisk est installé. Nous allons apprendre à démarrer le service.
2. Démarrage Comme pour tous services sous debian nous avons la possibilité de le démarrer arrêter ou autres avec l’une des commandes suivantes… /etc/init.d/asterisk stop /etc/init.d/asterisk start /etc/init.d/asterisk restart
3. Diagnostique Le serveur Asterisk permet d’interagir directement avec le système sans avoir à modifier les fichiers de configuration avec la CLI « Interface de ligne de commande ». Nous utiliserons cette interface uniquement
A. El Imami & M. Merzouk
Page 2
pour afficher et vérifier la configuration et l’état des téléphones. Cette CLI est exécutée en tapant la commande suivante : Asterisk:~# asterisk –r Ou bien Asterisk:~# rasterisk
Une fois la CLI ouverte nous pouvons afficher l’état des téléphones avec la commande suivante : *CLI> sip show peers Name/username Host trunck_A_vers_B 192.168.2.202
Dyn D
Nat
ACL
Port 5060
Status Unmonitored
Nous pouvons également afficher l’état des lignes quand le serveur Asterisk se comporte comme un client SIP avec la commande suivante : *CLI> sip show registry Host Username 192.168.1.101:5060 trunck_A_vers_B
Refresh 105
State Registered
Reg.Time Sun, 22 Apr 2007 19:13:20
4. Fichiers de configuration d’Asterisk 4.1 sip.conf Le fichier sip.conf est utilisé pour configurer les logins et mots de passe de tous les périphériques. Ces périphériques peuvent être des téléphones, des passerelles analogiques ou encore d’autres serveurs. Ce fichier est organisé en différentes zones appelées « context ».
Context general Le context general définit : le context par défaut des comptes créés.
les paramètres TCP/IP du serveur.
le langage des messages vocaux.
Voici un exemple opérationnel : [general] context=local bindport=5060 bindaddr=0.0.0.0 le language=fr
; context par défaut pour les utilisateurs ; port UDP du protocole SIP ; adresse IP de l’interface sur lequel le serveur va écouter ; trafic 0.0.0.0 pour toutes les interfaces ; messages vocaux en français
Context utilisateur D’autres contexts sont utilisés pour créer des comptes utilisateur. Les paramètres des comptes peuvent être : le login
A. El Imami & M. Merzouk
Page 3
le mot de passe
context, ce paramètre permet de gagner de la souplesse dans le routage des appels
mailbox, ce paramètre est utile pour la messagerie vocale
c’est avec les paramètres nat et canreinvite que l’on peut contrer le problème du routage NAT
[John] secret=azerty callerid="John"
; obligatoire ; login SIP ; obligatoire ; mot de passe SIP ; facultatif ; nom affiche et numéro affiche sur le ; telephone de l'appeler ; obligatoire ; les appels que fait l'utilisateur ; seront gérés dans le context "local" du fichier ; extension.conf ; facultatif ; compte de messagerie vocal, voir ; voicemail.conf ; obligatoire ; autorise les appels entrant et
context=local mailbox=200@default type=friend sortant host=dynamic nat=yes
; ; ; ;
canreinvite=yes le
obligatoire ; adresse IP du client facultatif ; résoud le pb de l'enregistrement SIP quand le téléphone est derrière un NAT facultatif ; résoud le problème du flux RTP quand
; telephone est derrière un NAT
Context pour les passerelles Il existe différentes passerelles. Ces passerelles permettent les communications vers le réseau France Télécom analogique ou numérique mais aussi GSM. Pour pouvoir fonctionner, ces passerelles doivent avoir des comptes. Ces comptes se configurent de la même façon que les comptes utilisateurs, exemple : [SPA-3102-PSTN] secret=azerty context=local type=friend host=dynamic
4.2 extension.conf Le fichier extension.conf est utilisé pour router les appels vers un utilisateur ou vers sa messagerie. Par exemple, les appels provenant de comptes SIP dont le context est « local » seront traités dans l’extension « local » du fichier extension.conf. Les instructions exten sont utilisées comme suit :
exten =>
Numéro appelé
Ordre d’instruction
Action effectuée
Temps en seconde avant de passer à l’instruction suivante (en fonction de l’action)
200,
1,
Dial(SIP/John,
10)
Routage d’appel vers un utilisateur Dans l’exemple suivant, les appels arrivant sur le serveur Asterisk à destination du numéro 200 sont envoyés vers le téléphone de John pendant 10 secondes puis sont envoyés sur la messagerie de John. [local]
A. El Imami & M. Merzouk
Page 4
exten => 200, 1, Dial(SIP/John, 10) exten => 200, 2, VoiceMail(200)
Routage d’appel vers un groupe d’utilisateurs
Dans l’exemple suivant, les appels arrivant sur le serveur Asterisk à destination du numéro 205 sont envoyés vers le téléphone de John puis vers le téléphone de Fred. Remarque : l’instruction Goto() permet de renvoyer l’appel où l’on veut dans le fichier extension.conf. Dans notre cas, l’appel basculera du téléphone de John au téléphone de Fred jusqu’à ce qu’un des deux décroche. [local] exten => 205, 1, Dial(SIP/John, 10) exten => 205, 2, Dial(SIP/Fred, 10) exten => 205, 3, Goto(local,205, 1)
Routage vers plusieurs téléphones en même temps L’exemple suivant montre comment faire sonner deux téléphones en même temps. Quand on compose le 206, les téléphones de John et de Fred sonnent. [local] exten => 206, 1, Dial(SIP/John&SIP/Fred, 10)
Accès à la messagerie vocale Voici deux exemples d’accès à la messagerie. Dans le premier cas, l’utilisateur doit composer sur son clavier numérique son login et son code pin. Dans le second exemple, le login correspond au numéro de l’appelant. L’utilisateur doit juste composer son code pin. exten => 298, 1, VoiceMailMain() exten => 299, 1, VoiceMailMain(${CALLERIDNUM})
Routage d’appel vers une passerelle analogique Dans l’exemple suivant, tous les appels commençant par quatre cent sont envoyés vers la passerelle. La passerelle va composer le numéro sur la ligne analogique. exten => _4xx, 1, Dial(SIP/SPA-3102-PSTN/${EXTEN})
Dans l’exemple suivant, les appels commençant par 01, 02, 03, 04 ou 05 composés de 10 chiffres sont envoyés vers la passerelle. La passerelle va composer le numéro sur la ligne analogique. exten => _0[1-5]xxxxxxxx, 1, Dial(SIP/SPA-3102-PSTN/${EXTEN})
Dans l’exemple suivant, quand on compose le zéro, l’appel est envoyé vers la passerelle et l’on obtient la tonalité. Nous pouvons ensuite composer le numéro vers l’extérieur. exten => 8, 1, Dial(SIP/SPA-3102-PSTN)
Standard automatique Le standard automatique permet à un utilisateur d’écouter un message lui indiquant les choix possibles. Après, il lui suffit de presser une des touches pour effectuer l’action voulue. Il est possible de combiner les menus pour développer une architecture plus complexe. Dans l’exemple suivant, quand l’utilisateur compose A. El Imami & M. Merzouk
Page 5
le 210, il entend un message vocal qui l’invite à taper 1, 2 ou 9 sur son clavier. S’il tape 1, l’appel est envoyé à John. S’il tape 2, l’appel est envoyé à Fred. S’il tape 9, Asterisk raccroche. Si l’utilisateur ne fait rien, le message est joué en boucle. [local] exten => 210, 1, Goto(Menu,s,1) [Menu] exten => s, 1, Background(/var/msg/Menu) exten => s, 2, WaitExten(2) exten => s, 3, Goto(Menu,s,1) exten => 1, 1,SayNumber(1) exten => 1, 2, goto(local,200, 1) exten => 2, 1, SayNumber(2) exten => 2, 2, Goto(local,201, 1) exten => 9, 1, SayNumber(9) exten => 9, 2, Hang up()
; ; ; ; ; ;
appel du standard automatique standard automatique le message audio enregistré /var/msg/Menu.gsm et joue on attend 2 sec on recommence le tout
; 1 Appel John ; 2 Appel Fred ; 9 On raccroche
Astuce : pour enregistrer le message vocal au bon format, il vous suffit de laisser un message sur la boîte vocal d’un utilisateur et de copier le fichier dans le répertoire /var/msg/ avec la commande suivante. cp /var/spool/asterisk/voicemail/default/200/INBOX/msg0000.gsm /var/msg/Menu.gsm
Horloge parlante
Dans l’exemple suivant le serveur Asterisk décroche, annonce la date et l’heure, attend 3 secondes et recommence. exten => 211, 1, Answer ; horloge parlante exten => 211, 2, SayUnixTime(,CET,AdbY \'digits/at\' kM) exten => 211, 3, Wait(3) exten => 211, 4, Goto(local,211, 2)
Outil de test de flux Dans l’exemple suivant Asterisk décroche et joue un message expliquant le fonctionnement de la fonction de test. C’est ensuite à l’utilisateur de parler dans le combiné et de vérifier que le serveur Asterisk renvoie le son vers le combiné avec un petit décalage. exten => 212, 1, Answer ; permet de tester les flux entrant et sortant exten => 212, 2, Playback(demo-echotest) exten => 212, 3, Echo()
4.3 voicemail.conf Le fichier voicemail.conf permet de configurer la messagerie vocale d’Asterisk. Nous pourrons y paramétrer la notification par email des messages et les logins des utilisateurs de la boîte vocale. Context general
Le context general permet de spécifier :
Le format des fichiers audio enregistrés Si l’on veut attacher le fichier audio à l’email
A. El Imami & M. Merzouk
Page 6
L’objet de l’email Le corps de l’email
[general] format=gsm attach=yes emailsubject=Nouveau message vocal provenant de ${VM_CIDNAME} emailbody=\n\tBonjour ${VM_NAME},\n\n\t Tu as un message de la part de ${VM_CIDNAME} d'une durée de ${VM_DUR} datant du ${VM_DATE}
Voici une liste des variables utilisables dans l’objet et le corps des emails : VM_NAME nom d'utilisateur VM_DUR durée du message VM_MSGNUM numéro du message VM_MAILBOX numéro de l'utilisateur VM_CIDNUM numéro du l'appelant VM_CIDNAME nom de l'appelant VM_DATE date du message \n retour à la ligne \t tabulation Context default
Voici un exemple de context defaut, on y retrouve
Le numéro de boîte vocale
Le code pin de la boîte vocale
Le nom de l’utilisateur
L’adresse email de l’utilisateur
[default] 200 = 123, John,
[email protected] 201 = 456, Fred 202 = 789, Mike
Le nom des contexts utilisateurs n’est pas important. Il faut toutfois faire attention à utiliser le même nom dans les extensions utilisateurs du fichier sip.conf et le fichier voicemail.conf sip.conf [John] mailbox=200@default
Notification par email Pour qu’Asterisk puisse envoyer les emails aux utilisateurs, il faut installer un serveur SMTP sur le serveur Debian. Nous allons utiliser installer postfix avec la commande : Asterisk:~# apt-get install postfix
Il faut maintenant configurer le relais SMTP, en spécifiant l’adresse du serveur SMTP de votre FAI. Avec l’éditeur de texte pico, nous allons modifier le champ relayhost dans le fichier /etc/postfix/main.cf relayhost = smtp.free.fr
A. El Imami & M. Merzouk
Page 7
Voilà notre serveur Asterisk est opérationnel. Il ne nous reste plus qu’à configurer nos téléphones et nos passerelles.
Annexe 2 5.3 Installation et mise en œuvre 3.1 Installation de SIPp Téléchargement du code source de la dernière version « 3.1 » en exécutant les lignes de commandes suivantes : cd /usr/src wget http://sourceforge.net/projects/sipp/files/sipp/3.1/sipp.3.1.src.tar.gz/download tar –zxvf sipp.3.1.src.tar.gz rm –f sipp.3.1.src.tar.gz cd sipp.svn make
3.2 Configuration Nous devons maintenant ajouter un peu de code qui permettra de recevoir les appels en provenance de SIPp et de les traiter. Pour cela, nous définirons une extension 7447, soit SIPP sur le clavier téléphonique, qui répondra à l’appel, jouera la musique en attente pour 20 secondes et finalement terminera l’appel. Pour ce faire, simplement éditer le fichier /etc/asterisk/extensions_custom.conf et ajouter les lignes suivantes : [sipp] exten => exten => exten => exten =>
7447,1,Answer 7447,2,SetMusicOnHold(default) 7447,3,WaitMusicOnHold(20) 7447,4,Hangup
Pour permettre à SIPp de se connecter à votre serveur et de traiter les appels. Pour ce faire, simplement éditer le fichier /etc/asterisk/sip_custom.conf et ajouter les lignes suivantes : [sipp] type=friend context=sipp host=dynamic port=6000 user=sipp canreinvite=no disallow=all allow=ulaw
Maintenant, n’oublions pas de recharger la configuration d’Asterisk en exécutant la ligne de commande suivante : asterisk -rx reload
A. El Imami & M. Merzouk
Page 8
3.3 Essai pratique Maintenant, effectuons le test en exécutant la ligne de commande suivante : ./sipp -sn uac -d 20000 -s 7447 127.0.0.1 -l 120
Ce test utilisera un agent utilisateur afin de se connecter à l’extension 7447 sur l’interface locale (127.0.0.1) de notre serveur Asterisk pour une période de 20 secondes (20000 millisecondes). La limite maximale fixée en terme d’appels simultanés sera de 120 appels. Vous pouvez utiliser les touches suivantes afin de contrôler le déroulement du test :
0 à 9 : Pour passer d’un écran à l’autre + , – , * , / : Pour ajuste la quantité d’appels q : Pour quitter p : Pour effectuer une pause
Pour voir les résultats du test en analysant les données des divers écrans de SIPp et pour passer d’un écran à l’autre, simplement appuyez sur les chiffres de 1 à 9.
A. El Imami & M. Merzouk
Page 9