Asterisk

61
DIMENSIONNEMENT ET SECURISATION D'UNE SOLUTION DE COMMUNICATION UNIFIEE (A STERISK)

description

Installation et réalisation d'une solution de communication unifièe Sécurisé ( Asterisk)

Transcript of Asterisk

Page 1: Asterisk

DIMENSIONNEMENT

ET SECURISATION

D'UNE SOLUTION DE

COMMUNICATION UNIFIEE

(ASTERISK)

Réalisé par :

M. EL IMAMI AbdellatifM. MERZOUK Mouhsine

Encadré par : [email protected]

Page 2: Asterisk

A. El Imami & M. Merzouk Page 2

Page 3: Asterisk

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 IMAMIMouhsine MERZOUK

Table des matières

Introduction 5

A. El Imami & M. Merzouk Page 3

Page 4: Asterisk

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

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

4. Matériel nécessaire 11

5. Dimensionnement du serveur Asterisk 11

A. El Imami & M. Merzouk Page 4

Page 5: Asterisk

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

Introduction

A. El Imami & M. Merzouk Page 5

Page 6: Asterisk

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

Chapitre 1 : Communication unifiée

A. El Imami & M. Merzouk Page 6

Page 7: Asterisk

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

A. El Imami & M. Merzouk Page 7

Page 8: Asterisk

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/unified-communications/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

Page 9: Asterisk

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

A. El Imami & M. Merzouk Page 9

Page 10: Asterisk

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

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

A. El Imami & M. Merzouk Page 10

Page 11: Asterisk

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

Figure 3 : Encodage et décodage de la voix (Source : http://blog.wikimemoires.com/2011/03/protocole-de-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

A. El Imami & M. Merzouk Page 11

Page 12: Asterisk

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)TerminauxUtilisé 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 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.PasserellesUne 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èresUn 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.MCUMCUs 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 )

A. El Imami & M. Merzouk Page 12

Page 13: Asterisk

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.

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’utilisateurLes 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 serveurProxy 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'utilisateurServeur de redirectionUn 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'enregistrementUn 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.

A. El Imami & M. Merzouk Page 13

Page 14: Asterisk

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 messageChaque 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.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êteDes 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 :

A. El Imami & M. Merzouk Page 14

Page 15: Asterisk

- 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

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

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.

A. El Imami & M. Merzouk Page 15

Page 16: Asterisk

Figure 6 : Schéma sur l'implantation de MGCP (Source : http://www.testeur-voip.com/technologie-voip-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.

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,

A. El Imami & M. Merzouk Page 16

Page 17: Asterisk

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 CS-ACELP(Conjugate Structure Algebraic CELP) 8 kbpsG.723.1 MP-MLQ(Multi-Pulse Maximum Likelihood

Quantization)ACELP(Algebraic Code Excited Linear Prediction)

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

Chapitre 2

A. El Imami & M. Merzouk Page 17

Page 18: Asterisk

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 18

Page 19: Asterisk

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

Editeur Aastra Alcatel-Lucent Cisco avaya

Couplage serveur/suite de gestion des appels

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 € Environ 3 979,45 € pour 20 users Environ 8000 € pour 20 users

A. El Imami & M. Merzouk Page 19

Page 20: Asterisk

20 users pour 20 users

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

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

A. El Imami & M. Merzouk Page 20

Page 21: Asterisk

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

A. El Imami & M. Merzouk Page 21

Page 22: Asterisk

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 :

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

A. El Imami & M. Merzouk Page 22

Page 23: Asterisk

2.5. Synthèse

Tableau 3 : Comparaison des solutions Open Source

A. El Imami & M. Merzouk Page 23

Page 24: Asterisk

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

1. Architecture interne

A. El Imami & M. Merzouk Page 24

Page 25: Asterisk

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)

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

A. El Imami & M. Merzouk Page 25

Page 26: Asterisk

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é

- 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

A. El Imami & M. Merzouk Page 26

Page 27: Asterisk

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

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.

A. El Imami & M. Merzouk Page 27

Page 28: Asterisk

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.

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

Page 29: Asterisk

Chapitre 4 

A. El Imami & M. Merzouk Page 29

Page 30: Asterisk

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 clandestineAttaques 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 servicesAttaques permettant d'utiliser un service sans avoir à rémunérer son fournisseur.

Communications indésiréesAttaques permettant à une personne illégitime d'entrer en communication avec un utilisateur légitime.

A. El Imami & M. Merzouk Page 30

Page 31: Asterisk

Catégorie Sous-catégories Méthode

A. El Imami & M. Merzouk Page 31

Page 32: Asterisk

DoS

Interruption de la communication en cours Spoofed messages

Empêcherl'établissement de la

communication

Spoofed messages

Dégradation QoS

Rendre la communicationInaudible Flux RTP parasite

Epuisement de ressources Flooding

Détournement du trafic

D'appel Rerouting

De signalisation Man in the Middle

Identité

Usurpation d'identité Spoofed messages

Dissimulation d'identité

Vols de services Tromper la taxationTunneling RTP

Usurpation d'identité

Communications in désirées

Appel spam

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.

A. El Imami & M. Merzouk Page 32

Page 33: Asterisk

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.

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.

A. El Imami & M. Merzouk Page 33

Page 34: Asterisk

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.

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.

Identifier en détail les risques associés.  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

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.

Garder à l’esprit que la sécurité est un processus.  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.

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

A. El Imami & M. Merzouk Page 34

Page 35: Asterisk

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

 

A. El Imami & M. Merzouk Page 35

Page 36: Asterisk

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.

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

A. El Imami & M. Merzouk Page 36

Page 37: Asterisk

Protocoles propriétaire

Voici le format d’un paquet SRTP :

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 permet 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 37

Page 38: Asterisk

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 :

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

Hhhhh

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.

A. El Imami & M. Merzouk Page 38

Page 39: Asterisk

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.

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

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

A. El Imami & M. Merzouk Page 39

Page 40: Asterisk

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 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 Dyn Nat ACL Port Statustrunck_A_vers_B 192.168.2.202 D 5060 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 Refresh State Reg.Time 192.168.1.101:5060 trunck_A_vers_B 105 Registered Sun, 22 Apr 2007 19:13:20

A. El Imami & M. Merzouk Page 40

Page 41: Asterisk

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 ; context par défaut pour les utilisateursbindport=5060 ; port UDP du protocole SIPbindaddr=0.0.0.0 ; adresse IP de l’interface sur lequel le serveur va écouter le ; trafic 0.0.0.0 pour toutes les interfaces language=fr ; 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

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] ; obligatoire ; login SIPsecret=azerty ; obligatoire ; mot de passe SIP callerid="John" <200> ; facultatif ; nom affiche et numéro affiche sur le ; telephone de l'appelercontext=local ; obligatoire ; les appels que fait l'utilisateur ; seront gérés dans le context "local" du fichier ; extension.conf mailbox=200@default ; facultatif ; compte de messagerie vocal, voir ; voicemail.conf type=friend ; obligatoire ; autorise les appels entrant et sortant host=dynamic ; obligatoire ; adresse IP du client nat=yes ; facultatif ; résoud le pb de l'enregistrement SIP ; quand le téléphone est derrière un NAT

A. El Imami & M. Merzouk Page 41

Page 42: Asterisk

canreinvite=yes ; facultatif ; résoud le problème du flux RTP quand le ; 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 :

Numéro appelé

Ordre d’instruction

Action effectuée Temps en seconde avant de passer à l’instruction suivante (en fonction de l’action)

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

A. El Imami & M. Merzouk Page 42

Page 43: Asterisk

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 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) ; appel du standard automatique [Menu] ; standard automatiqueexten => s, 1, Background(/var/msg/Menu) ; le message audio enregistré ; /var/msg/Menu.gsm et joue exten => s, 2, WaitExten(2) ; on attend 2 sec exten => s, 3, Goto(Menu,s,1) ; on recommence le tout exten => 1, 1,SayNumber(1) exten => 1, 2, goto(local,200, 1) ; 1 Appel John exten => 2, 1, SayNumber(2) exten => 2, 2, Goto(local,201, 1) ; 2 Appel Fred exten => 9, 1, SayNumber(9)exten => 9, 2, Hang up() ; 9 On raccroche

A. El Imami & M. Merzouk Page 43

Page 44: Asterisk

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

A. El Imami & M. Merzouk Page 44

Page 45: Asterisk

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

Voilà notre serveur Asterisk est opérationnel. Il ne nous reste plus qu’à configurer nos téléphones et nos passerelles.

Annexe 2

A. El Imami & M. Merzouk Page 45

Page 46: Asterisk

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/srcwget http://sourceforge.net/projects/sipp/files/sipp/3.1/sipp.3.1.src.tar.gz/downloadtar –zxvf sipp.3.1.src.tar.gzrm –f sipp.3.1.src.tar.gzcd sipp.svnmake

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 => 7447,1,Answerexten => 7447,2,SetMusicOnHold(default)exten => 7447,3,WaitMusicOnHold(20)exten => 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=friendcontext=sipphost=dynamicport=6000user=sippcanreinvite=nodisallow=allallow=ulaw

Maintenant, n’oublions pas de recharger la configuration d’Asterisk en exécutant la ligne de commande suivante :

asterisk -rx reload

3.3 Essai pratique

Maintenant, effectuons le test en exécutant la ligne de commande suivante :

A. El Imami & M. Merzouk Page 46

Page 47: Asterisk

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