I. Partie I : Présentation de la Voix sur IP Partie II : Présentation d
Transcription
I. Partie I : Présentation de la Voix sur IP Partie II : Présentation d
I. Partie I : Présentation de la Voix sur IP Définition de la VoIP Les protocoles utilisés par la VoIP Partie II : Présentation d’Asterisk Qu’est-ce que asterisk Installation d’asterisk Configuration d’asterisk Mise en place de la boite vocale ; Accéder à la boite vocale ; Musique d’attende ; La conférence téléphonique. Partie III : Etude avec deux serveurs Asterisk Trunk SIP Réalisation Configuration de trunk SIP Description horaire Trunk IAX Partie IV : Trunk entre CME et Asterisk Introduction Prérequis Composants d’occasion Le protocole SIP CME SIP Trunk Relais DMTF pour les Trunk SIP Codecs et transcodages Mise en oeuvre Conclusion Dimitri LEMBOKOLO 1 I. Présentation de la Voix sur IP 1. Définition de la VoIP La Voix sur IP ou VoIP (Voice Over Internet Protocol) est le transport de la voix sous forme de paquets IP. On parle également de Téléphonie sur IP (ToIP). Principe de fonctionnement : La voix qui est un signal analogique est d’abord échantillonnée. C’est ce qu’on appelle la numérisation de la voix. Puis, le signal numérique est compressé en utilisant des codecs. En téléphonie classique, la bande passante est de 64 kbps (codec G711). Le codec G729, par exemple, a une bande passante de 8 kbps. Certains mécanismes permettent de réduire la bande passante nécessaire en détectant les silences lors d’une conversation. Contrairement à la téléphonie traditionnelle qui utilise la commutation de circuits, le transport de la voix sur IP est à commutation de paquets. La voix est transformée en paquets qui vont transiter sur le réseau en utilisant le protocole UDP. UDP est un protocole de transport qui procure de meilleurs délais d’envoi des paquets que TCP car il n’utilise pas de contrôle de réception (pas d’acquittement). Le protocole RTP (Real Time Protocol) est utilisé pour les flux temps réel encapsulés dans des paquets UDP. RTP permet que la perte de quelques paquets voix soit compensée par des algorithmes de correction d’erreur. La VoIP implique des contraintes sur les performances du réseau telles que : Le délai de latence (RTD = Round Trip Delay) : c’est le temps que met un paquet IP pour traverser le réseau. (Valeur acceptable : inférieur ou égal à 200 ms) La gigue (ou Jitter): c’est la variation du délai de latence. (Valeur acceptable : inférieur ou égal à 75 ms) Le taux de perte de paquets : parfois, certains datagrammes UDP sont détruits (surtout à cause de l’engorgement du réseau). Pour qu’une conversation soit compréhensible, la dégradation du signal voix ne doit pas dépasser un certain seuil. (valeur acceptable : inférieur ou égal à 3%) Dans un réseau, la qualité de service (QoS) va permettre d’accorder une priorité aux flux voix par rapport aux flux datas. Le phénomène d’écho va également dégrader la qualité de la conversation téléphonique. Il est dû à des raisons techniques. Un problème de l’utilisation de la ToIP se pose lors de l’appel vers les numéros d’urgence. En effet, l’adresse IP est indépendante de la localisation géographique de l’utilisateur. Dans le cas de la téléphonie traditionnelle, l’appel sera envoyé vers le service d’urgence le plus proche car l’usager aura été localisé. Dimitri LEMBOKOLO 2 2. Les protocoles utilisés pour la VoIP Un protocole de signalisation est un protocole de la couche 5 (Session) du modèle OSI. Il gère une communication téléphonique IP ainsi : 1) L’appelant indique les coordonnées de la personne qu’il veut joindre (composition du numéro) 2) Indication au correspondant d’un appel (le téléphone du correspondant sonne) 3) Acceptation de l’appel par le correspondant (le correspondant décroche) 4) Information aux tiers cherchant à joindre les deux interlocuteurs de leur indisponibilité (occupé) 5) Fin de la communication et disponibilité des lignes (raccroché) Les principaux protocoles utilisés pour l'établissement de connexions en voix sur IP sont : H.323 ; SIP ; MGCP ; IAX (Asterisk); H.323 H.323 a été élaboré par l’UIT (Union Internationale des Télécommunications) en 1996. Il est donc issu du monde des télécoms. Cette norme est pénalisée par sa complexité et son manque d’évolutivité pour l’ouverture vers les systèmes d’information. SIP SIP (Session Initiation Protocol) est un protocole qui a été normalisé par l’IETF (Internet Engineering Task Force) en 1999. Il est issu du monde de l’internet. Il se charge de l’authentification et de la localisation des participants. Mais il ne transporte pas de données. SIP remplace progressivement H.323 car il est plus souple et plus évolutif. Fonctionnement de SIP : SIP est un protocole de type requête/réponse comme http. Une adresse SIP se présente sous cette forme : sip:[email protected] Dimitri LEMBOKOLO 3 100 est le numéro d’extension SIP et 192.168.1.130 l’adresse IP du serveur SIP. Les utilisateurs (clients SIP) vont s’enregistrer auprès de serveurs proxy. Schéma 1- Le Softphone A s'inscrit dans le proxy SIP il effectue une demande d'appel auprès de ce proxy SIP Le proxy SIP transfère la demande au téléphone SIP B. 2- Le téléphone SIP B sonne et demande à l'utilisateur s'il souhaite répondre. La réponse positive (200 OK) part alors vers le proxy et arrive sur le softphone A pour lui indiquer que l'appel est accepté. 3- Le softphone A renvoie directement au téléphone B un accusé de réception (ACK), et la communication est engagée. MGCP (Media Gateway Control Protocol) MGCP est implémenté dans les solutions de passerelle entre le monde de l’IP et le monde des télécoms. Il est complémentaire à H.323 et SIP. Il est surtout utilisé par les FAI (Fournisseur d’accès à Internet) IAX (Inter-Asterisk eXchange) L’IAX est un protocole de voix sur IP spécifique à Asterisk. Il permet la communication entre un client et serveur Asterisk ainsi qu’entre deux serveurs Asterisk. Il a été conçu pour la transmission de flux multimédia avec un débit plus faible (notamment pour la voix). Par exemple, avec le codec de compression G.729 et en utilisant l’IAX, on peut « faire passer » 103 appels à travers 1 Mbits de bande passante. Au lieu d’utiliser RTP (Real Time Protocol), IAX utilise UDP (User Datagram Protocol) et un seul port (le port 5036 pour IAX1 et le port 4569 pour IAX2). Contrairement à SIP, le protocole IAX2 peut s’implémenter simplement derrière un NAT et traverse facilement les firewalls. Il envoie constamment des requêtes pour savoir si la ligne est active. IAX2 est à apparu longtemps après SIP qui s’est vite avéré être le protocole de référence par les constructeurs et les fournisseurs de services VoIP. Avant le protocole SIP, il s’agissait du protocole H323 qui était le plus utilisé. Ce succès grandissant de IAX2 n’est cependant pas vraiment une menace pour SIP de la manière que SIP l’a été pour H323. SIP est bien installé, mais nul doute qu‟IAX2 va s’imposer comme une véritable alternative. II. Présentation d’Asterisk 1. Qu’est-ce qu’Asterisk ? Dimitri LEMBOKOLO 4 Asterisk est un logiciel qui, installé sur un PC, fait office de PABX. C’est un logiciel libre (Open Source), publié sous licence GPL et crée par Mark Spencer de la société Digium. Il tourne sur Linux, BSD et Mac OS X. Les caractéristiques Asterisk offre tous les services de téléphonie « classiques » d’un PBX ainsi que des fonctions avancées : Boîte vocale (avis par courriel de réception d’un message vocal, voyant indicateur de message en attente…) ; Conférence téléphonique ; Serveur vocal interactif ; Applications CTI (ex : possibilité de composer un numéro de téléphone à partir du carnet d’adresses d’Outlook) ; Visiophonie ; Rapport détaillé sur les appels Protocoles et codecs Asterisk effectue une interconnexion transparente entre les divers protocoles voix sur IP et l'équipement de téléphonie traditionnel. De plus, Asterisk effectue le transfert des appels d'un système à un autre au moyen du protocole IAX. Protocole IAX (Inter-Asterisk eXchange) H.323 Protocole SIP (Session Initiation Protocol) Protocole MGCP (Media Gateway Control Protocol) Fonctionne avec les systèmes de téléphonie traditionnels Signalisation RBS (Robbed-bit Signaling) FXS et FXO Prise par bouclage Déclenchement par la terre Kew start Émission-réception (E&M) Signalisation d'émission-réception (E&M Wink) Groupe de caractéristiques D Protocoles PRI 4ESS Lucent 5E DMS100 National ISDN2 EuroISDN BRI (ISDN4Linux) Codecs : Système GSM Dimitri LEMBOKOLO 5 G.729 (sur l'achat de licences) G.723.1 (fonction émulation) Linéaire Mu-Law A-Law ADPCM G.726 ILBC LPC-10 MP3 (décodage seulement) 2. Installer Asterisk Nous allons marcher à travers l'installation d'Asterisk à partir du code source. Beaucoup de gens répugnent à cette méthode, affirmant qu'il est trop difficile et de longue haleine. Notre objectif ici est de démontrer que l'installation d'Asterisk à partir des sources n'est pas réellement si difficile à faire. Plus important encore, nous voulons vous offrir la meilleure plate-forme Asterisk sur lequel d'apprendre. Installez les dépendances logicielles: # yum install gcc gcc-c++ libxml2-devel ncurses-devel Télécharment des paquets (tar.gz) http://www.asterisk.org/downloads Asterisk asterisk 1.x.xx.tar.gz Libpri libpri-1.x.xx.tar.gz DAHDI Linux / DAHDI Tools dahdi-linux-complete-2.6.0+2.6.0.tar.gz Asterisk Add-Ons asterisk-addons-1.x.x.tar.gz Dimitri LEMBOKOLO 6 Créer votre structure de répertoire: mkdir -p ~/src/asterisk-complete/asterisk cd ~/src/asterisk-complete/asterisk idem pour Libpri et Dahdi et asterisk add-ons Outre l’installation à partir des paquets tar.gz, on peut aussi installer asterisk par commande. commandes: #yum install Asterisk Manuellement: # cd ../libpri-1.4.x # make; make install #cd …/asterisk-1.4.x #tar -xvzf <nom_du_paquet> #./configure #make menuselect #make #make install &&make samples Présentation de l’installation d’asterisk add-ons # cd …/asterisk-addons-1.4.x #. /configure #make #make install 3. Configuration d’Asterisk Nous avons installé la version 1.4 d’Asterisk sur une Fedora 11 et Linux Mint 12 (pour le serveur secondaire d’Asterisk). Nous allons maintenant faire la configuration d’Asterisk. L'ensemble des fichiers de configuration se trouve dans le dossier /etc/asterisk/ # cd /etc/asterisk/ La configuration nécessite la compréhension du principe de routage. Chaque extension est manipulée depuis sa source (une ligne analogique ou numérique, un téléphone IP ou un softphone, l’appel en provenance d‟un autre PABX) vers une destination via des règles de routage qui s’enchaînent. On regroupe les règles dans des contextes permettant de séparer les utilisateurs, les usages ou les sources. La configuration de base comporte au minimum les fichiers asterisk.conf et extensions.conf. Les Dimitri LEMBOKOLO 7 sources sont dans différents fichiers en fonction de leur type: mgcp.conf, iax.conf, sip.conf (protocoles) ou encore zapata.conf (matériel). asterisk.conf Par défaut on positionne certains chemins de base au fonctionnement du moteur asterisk, la présence de ce fichier n’est pas obligatoire, mais voici un exemple de contenu: sip.conf Le fichier sip.conf, va définir l'ensemble de nos utilisateurs. Pour connaitre l'ensemble des fonctions utilisables, rendez-vous sur le site http://www.asteriskguru.com/tutorials/ et également sur le site http://www.voip-info.org/ Nous éditons le fichier sip.conf (avec vim, par exemple). A la fin du fichier nous allons créer deux utilisateurs ainsi : [general] Port=5060 Dimitri LEMBOKOLO 8 Port=5060 => port sur lequel Asterisk écoute pour recevoir les connexions SIP username=dimi => si Asterisk agit entre un client SIP et un serveur SIP distant, ce champ est utilisé pour authentifier le message INVITE envoyé par Asterisk au serveur Type=friend => il existe 3 types d’utilisateurs : user = peut appeler mais ne peut pas recevoir d’appel peer = peut recevoir des appels friend = peut appeler et recevoir des appels secret= passer => définit le mot de passe de l’utilisateur host=dynamic => permet de se connecter avec cet utilisateur depuis n'importe quelle adresse IP. context=brazza => l'option "context" sera ensuite utilisée dans le fichier extensions.conf, lorsque l'utilisateur émet un appel, il rentrera dans la zone "brazza", qu'on définira plus tard. language=fr => permet d'utiliser les fichiers audio français. callerid=”dimi” <1000> => permet d’afficher le nom de l’appelant sur le poste appelé mailbox=10 => numéro de la boîte vocale associée extensions.conf Le fichier extensions.conf permet de définir les règles de routage c’est-à-dire les actions à faire lors d'un appel sur un numéro de téléphone. Dans le contexte brazza, nous définissons comment joindre les différents postes. Chaque extension de Dimitri LEMBOKOLO 9 notre plan de numérotation interne va être interprété et acheminé vers des liens physiques (IAX ou SIP dans notre cas). Ajout d'extension [brazza] exten => 1000,1,Dial(SIP/dimi) exten => 1001,1,Dial(SIP/crea) Transfert d'appel On utilise la fonction tTr. Par exemple: exten => 1000,1,Dial(SIP/dimi,tTr) exten => 1001,1,Dial(SIP/crea,tTr) Le t permet à l’appelé de transférer l’appel et le T permet à l’appelant de transférer l’appel. Les commandes utilisées pour la définition des extensions ont la forme suivante : exten => <extension>,<priorité>,<application(paramètres)> extension : numéro composé pour contacter Asterisk. Ce paramètre peut également prendre la valeur d’une extension prédéfinie par Asterisk (a, i, s, t, etc.). priorité : permet de définir l’ordre dans lequel plusieurs commandes pour une même extension vont être exécutées. La priorité la plus élevée est 1, puis on incrémente de 1 pour la priorité des commandes suivantes (1, 2, 3, etc.) ; application : permet de définir l’action à réaliser pour l’extension en cours. L’application Dial est utilisée pour l’acheminement de l’appel dans le contexte brazza, le premier argument passé est la ligne préfixée par son type (IAX2 ou SIP). Mise en place d'une boite vocale La configuration se fait dans voicemail.conf. Par exemple: login => code,nom-utilisateur On fait une mise à jour dans le fichier extensions.conf pour attribuer la messagerie vocale. Par Exemple: Dimitri LEMBOKOLO 10 exten => 1000,1,Dial(SIP/dimi,10,tTr) exten => 1000,2,VoiceMail(10@dimi,u) exten => 1000,102,VoiceMail(10@dimi,b) Et la traduction est la suivante : on compose le numéro 1000 pour appeler dimi. S'il ne décroche pas après 10 secondes, transférer l'appel sur sa boite vocale. L'option u indique que le correspondant est indisponible et l'option b indique qu'il est occupé. Accéder à la boite vocale Pour accéder à sa messagerie vocale, l'utilisateur compose 710(pour dimi) et 720(pour crea) .Puis il entre son login et son mot de passe conformément à ceux qui lui sont fixer par le serveur dans voicemail.conf Musique d'attente 1) créer le dossier /var/lib/asterisk/mohmp3 Puis on copie une musique, pour notre cas c’est zik.mp3 2) éditer le fichier musiconhold.conf Dimitri LEMBOKOLO 11 3) créer une classe de musique m=option permettant de jouer la musique d'attente pn=la classe de la musique dans musiconhold.conf La visiophonie Elle est l’association de la téléphonie et la vidéo initiée par deux interlocuteurs. On passe à la notion de visioconférence lorsqu’un troisième interlocuteur se pressente. Pour activer la visiophonie on édite le fichier /etc/asterisk/sip.conf et on décommette videosupport=yes. Optionnellement, vous pouvez ajouter un certain nombre de codecs sur un compte SIP. Dans le fichier sip.conf Dimitri LEMBOKOLO 12 Idem pour les autres utilisateurs Teste Polycom X-Lite Remarque : lors des captures, je travaillais avec les numéros (5000), puis changea mon plan de numérotation en utilisant les numéros (2000). Dimitri LEMBOKOLO 13 La conférence téléphonique Dimitri LEMBOKOLO 14 Vous êtes en communication avec un collègue de travail et vous avez besoin d’obtenir rapidement une information d’un troisième collaborateur. La conférence de déclencher quand il a au moins trois interlocuteurs. Le softphone X-lite peut héberger des conférences sans aucune configuration des fichiers du serveur. Les conférences sur Asterisk sont configurées dans le fichier /etc/asterisk/meetme.conf. Toutes les conférences sont déclarées dans le context room. - Editer le fichier /etc/asterisk/meetme.conf III. Asterisk Etude avec deux serveurs Asterisk Dimitri LEMBOKOLO 15 1. Trunk SIP Introduction L’un des principaux arguments pour la migration d’un réseau RTC vers la VOIP est la réduction des coûts. L’une des méthodes pour réduire les coûts est d’abandonner l’opérateur historique et de souscrire un abonnement chez un provider SIP. Vous pourrez alors choisir un provider qui vous fournira des tarifs en fonction de vos besoins. Pour arriver à ce résultat, il faut mettre en place un trunk SIP. Un trunk SIP est une liaison entre deux serveurs VOIP. Une autre application de ce trunk SIP est la création d’un lien entre deux sites distants. Dans ce cas, les coûts de communication entre sites se réduisent aux coûts d’abonnement d’Internet. Dimitri LEMBOKOLO 16 2. Réalisation Dans un premier temps, il faut configurer les deux serveurs en local avec deux plans de numérotation distincts. En effet, il va falloir permettre aux serveurs de différencier les téléphones de l’agence A de ceux de l’agence B. Dans notre cas, les numéros compris entre 1000 et 1999 seront dans l’agence A et les numéros compris entre 2000 et 2999 seront dans l’agence B. Sur le serveur de l’agence A : - Modifiez le fichier sip.conf et ajouter les extensions de franck et dimi. - Configurez les téléphones pour qu’ils s’enregistrent sur le serveur. - Modifiez le fichier extensions.conf pour « router » les appels vers les téléphones. - Vérifiez la configuration en passant des appels de franck vers dimi et vice versa. Faites de même sur le serveur de l’agence B en respectant le plan de numérotation 3. Configuration de trunk SIP sip.conf sur Serveur A Dans un premier temps, il faut ajouter un utilisateur dans le fichier sip.conf sur le serveur A. Cet utilisateur est de la même forme que les autres utilisateurs. Sip.conf sur Serveur B Dimitri LEMBOKOLO 17 sip.conf sur Serveur B Une fois l’utilisateur créé sur le serveur A, il faut que le serveur B s’enregistre. Dans le fichier sip.conf du serveur B il faut ajouter la ligne suivante. Cette ligne permet au serveur B de s’enregistrer sur le serveur A à l’adresse 192.168.1.130 avec le login trunk_A_vers_B et le mot de passe passer. Sip.conf sur Serveur A Cette ligne permet au serveur A de s’enregistrer sur le serveur B à l’adresse 192.168.1.186 avec le login trunk_B_vers_A et le mot de passe passer. extentions.conf sur serveur A Quand le serveur B s’est bien enregistré, le serveur A pourra rediriger les appels compris entre 1000 et 1999, vers le serveur B avec cette ligne dans le fichier extentions.conf Dimitri LEMBOKOLO 18 extentions.conf sur serveur B Quand le serveur A s’est bien enregistré, le serveur B pourra rediriger les appels compris entre 2000 et 2999, vers le serveur A avec cette ligne dans le fichier extentions.conf Pour vérifier la bonne configuration, il faut afficher les utilisateurs enregistrés sur le serveur et l’état de la ligne avec les commandes suivantes : Dimitri LEMBOKOLO 19 Teste des appels (1000 vers 2000) Dimitri LEMBOKOLO 20 Teste des appels (2000 vers 1000) 4. Discrimination horaire La discrimination horaire permet d’autoriser les appels dans une plage de temps définie. On peut définir cette plage de temps en fonction : du jour de la semaine de l’heure du jour du mois du mois La syntaxe est la suivante : include => context|days|times|days of month|months of year Dans l’exemple suivant, les appels ne seront possible que du lundi au vendredi de 8h à 17h, peu importe le jour ou le mois. Dimitri LEMBOKOLO 21 On fait la même chose pour le context (pn) 5. Trunk IAX Coopération Dès qu'un utilisateur du serveur A composera un numéro entre 1000 et 1999 Il sera directement redirigé vers le serveur B. Dès qu'un utilisateur du serveur B composera un numéro entre 2000 et 2999 Il sera directement redirigé vers le serveur A. Sécurité de l’authentification : Le protocole IAX permet 3 types de mots de passe pour l'authentification des clients / serveurs Il n'est pas possible de crypter les données transmises via le protocole IAX, seul l'authentification permet plusieurs types de mots de passes plus ou moins sécurisés. Plain text Cette méthode est déconseillée, car les mots de passe sont écrits en clair dans les fichiers de configuration. MD5 Les mots de passe sont écrits cryptés à l'aide de la méthode MD5 dans les fichiers de configurations, donc difficilement décryptables (difficile mais pas impossible) RSA L'authentification RSA (Rivest Shamir Adleman) utilise deux clés partagées, une clé Dimitri LEMBOKOLO 22 publique ainsi qu'une clé privée. Généralement, ces clés ont une longueur entre 1024 et 2048 bits. Génération de clés RSA : Pour générer des clés de cryptage RSA, Asterisk nous fournit un utilitaire: astgenkey. Les clés RSA doivent se trouver dans le répertoire /var/lib/asterisk/keys. L'utilitaire "astgenkey" génère deux clés, une clé publique à mettre sur le(s) poste(s) client(s) et une clé privée à garder sur le serveur. Note: Il est important que la clé privée ne soit accessible que par Asterisk, car si quelqu'un arrive à prendre cette clé il pourra décrypter la clé plus facilement. Pour générer une clé il suffit de se déplacer dans le répertoire de stockage des clés d'Asterisk et de lancer l'application "astgenkey" # cd var/lib/asterisk/keys Lorsque nous lançons astgenkey nous mettons le paramètres "-n" car par défaut "astgenkey" demande une "passphrase" à chaque démarrage d'Asterisk. Avec le paramètres "-n"' il enregistre la clé sans "passphrase" # astgenkey -n Dimitri LEMBOKOLO 23 Nous avons créé 2 clefs dans le serveur B: dimi_iax.pub qui est la clef publique dimi_iax.key qui est la clef privée Maintenant, il faut transférer la clef publique dans l’autre serveur. Pour cela, nous allons nous positionner sur le serveur A et utiliser ssh avec la commande suivante : scp user@IPserveur:/répertoire/nom_du_fichier /destination/nom_du_fichier Dimitri LEMBOKOLO 24 Il faudra répéter l’opération dans l’autre sens afin de créer une interconnexion bidirectionnelle. Configuration des paramètres IAX sur chaque serveur La configuration des paramètres IAX se fait dans le fichier iax.conf se trouvant dans le répertoire /etc/asterisk/ Sur chaque serveur nous allons configurer un utilisateur IAX qui servira à l'authentification avec le serveur opposé. [VOIP1] et [VOIP2] Configuration du fichier iax.conf pour le serveur B : Note : le trunk entres clients IAX peut aussi se faire sans partage de clés, mais comme plus avec SIP en décommandant (register) et faire une configuration par mot de passer et host à dynamic. Dimitri LEMBOKOLO 25 On fait de même sur le serveur A Définition du “dialplan” Nous devons maintenant créer les contextes dans le fichier extensions.conf dans le serveur A. [pn] include => voip1 [voip2] exten => _1XX,1,Dial(IAX2/${EXTEN}) exten => _2XX,1,Dial(IAX2/voip2/${EXTEN}) Ce qui signifie que dans le contexte [pn] est inclus le contexte [voip1] qui définit que pour les extensions commençant par 1, l’appel sera acheminé en interne et pour les appels commençant par 2, l’appel sera transmis au serveur B. Nous faisons de même sur le serveur B. [brazza] include => voip2 [voip1] exten => _2XX,1,Dial(IAX2/${EXTEN}) exten => _1XX,1,Dial(IAX2/voip1/${EXTEN}) IV. Trunk entre un CME et Asterisk 1. Introduction Aujourd'hui, l'industrie des télécommunications est en train de faire la transition à long établissant Techonologies de commutation et de transport pour le transport basé sur IP et de dispositifs de bord. La révolution de la communication IP a commencé à créer un impact énorme commercial dans les entreprises petites et moyennes. Ces petites et moyennes entreprises se rendent compte que l'utilisation de la propriété intellectuelle est très efficace car la propriété intellectuelle peut utiliser les fonctions vocales, vidéo et données sur un réseau unique, au lieu d'utiliser les opérations distinctes à vocation spéciale réseaux. La figure montre un déploiement de téléphonie IP trunking IP tendre vers. Dimitri LEMBOKOLO 26 IPBX commencent à prédominer dans les affaires de la technologie vocale, et les PBX TDM ne sont plus la principale source de la liaison permanente entre deux réseaux vocaux. L'utilisation du PBX TDM a diminué au cours des deux dernières années, et l'utilisation de l'IPBX est de devenir un bon investissement dans IP LAN et WAN. Afin de se connecter au réseau PSTN, PBX besoin d'une sorte de goulotte tel que le TDM (T1/E1) ou des lignes analogiques. IPBX qui peuvent accéder au RTPC en utilisant ces types de troncs, mais il faut une passerelle multimédia qui convertit le trafic voix sur IP à RTC traditionnelle, qui peut parfois donner lieu à une traduction successive à partir du domaine IP TDM de domaine. Ces traductions successives d'augmenter les coûts de maintenance des passerelles, augmente la latence, et réduit la qualité de voix. Afin d'éviter ces problèmes, les IPBX utilisent des protocoles pour initiation de session et de gestion, le plus important est celui de Session Initiation Protocol (SIP). Ce document fournit une description de la SIP trunking et Cisco CallManager Express (CME), et une configuration à mettre en œuvre un système de téléphonie sur IP avec les MEC en utilisant SIP trunking pour les appels entrants et sortants. Prérequis Exigences Assurez-vous que vous répondez à ces exigences avant de tenter cette configuration: CME version 4.1 est installé Une image de Cisco IOS ® Software T sortie 12.4 (11) XJ ou IOS 12.4 (6e) est sur le routeur Un module NM-CUE est installé avec la version 2.3.4 CUE Dimitri LEMBOKOLO 27 Composants d'occasion Les informations contenues dans ce document sont basé sur ces versions logicielles et matérielles: Cisco 3825 routeur sur le logiciel Cisco IOS 12.4 de sortie (11) XJ Cisco Catalyst 3550 Commutateur sur le logiciel Cisco IOS Release 12.4 Téléphone IP Cisco 7960 Cisco CallManager Express 4.1 Cisco Unity Express 2.3.4 2. Le protocole SIP SIP est un ASCII basé sur le protocole de contrôle de la couche application qui peut être utilisé pour établir, maintenir et terminer les appels entre deux ou plusieurs points de terminaison. SIP a rapidement émergé comme le protocole standard utilisé dans les communications IP, car il est un protocole multimédia qui peut être utilisé pour les sessions vidéo et la messagerie instantanée, en plus de voix. En outre, SIP peut gérer des sessions de conférences et d'émissions, ainsi que d'une des séances individuelles. SIP a un grand potentiel dans la transformation et le développement de la façon de communiquer les gens. Pour cette raison, Cisco a été et continue à jouer un rôle important dans la prise d'un leadership pour créer de nouvelles technologies qui rendent SIP et ses applications à la norme de communications IP. SIP sont similaires à une ligne téléphonique, sauf que les SIP d'utiliser le réseau IP et non le RTPC. En outre, SIP permet la convergence de la voix et des données sur tous les courants-connexions IP. Afin d'accéder au réseau IP en utilisant une liaison SIP il est nécessaire que les configurations être faite au prestataire de services, ainsi que sur le côté client. Les clients ont besoin pour établir et configurer CME, qui est le PBX qui va interpréter le signal SIP de manière adéquate et passer le trafic avec succès. Le prestataire de services a besoin pour configurer un serveur proxy SIP. Cependant, SIP sont plus compliqués à établir que les troncs RTPC ordinaires. La raison en est que le client fait face à des défis dans le traitement de l'interprétation différente et les implémentations de SIP par les fournisseurs d'équipement, la prestation de sécurité, la qualité de gestion de service (QoS), ce qui permet la traduction d'adresses réseau (NAT) et de pare-feu de traversée, et d'assurer la fiabilité de classe transporteur et de la continuité de service. Ces points de décrire pourquoi SIP deviennent si apparente dans les entreprises petites et moyennes: Déploiement rapide et facile Amélioration de l'utilisation de la capacité de réseau Potentiel de consolidation et réduire les coûts de téléphonie Économique Direct Dial l'arrivée (SDA) business Continuity Dimitri LEMBOKOLO 28 3. CME SIP Trunk Cisco CME est une solution de téléphonie IP qui est intégré directement dans le logiciel Cisco IOS. CME permet aux entreprises petites et moyennes de déployer voix, données et vidéo sur une seule plate-forme. Un réseau de téléphonie IP est simple à installer, car CME fonctionne sur un seul routeur, qui offre une fonctionnalité PBX pour les entreprises. Par conséquent, en utilisant CME, petites et moyennes entreprises peuvent offrir la téléphonie IP et de données de routage à l'aide d'une solution unique convergé à un coût minime. 4. Relais DMTF pour les Trunks SIP CME supporte le protocole SIP à partir du CME 3.1 a été publié. Cependant, certains problèmes existaient déjà lorsque un téléphone SIP appelé un téléphone CSPC ou essayé d'accéder à la messagerie vocale. Le problème est que les téléphones SCCP connectés à CME nécessitent l'utilisation d'out-of-band relais DTMF au transport DTMF (chiffres) à travers les connexions VoIP, et les téléphones SIP utilisent dans la bande Transports. Une distorsion DTMF existait entre les deux appareils. Lorsque CME 3.2 a été publié, le soutien a été ajouté au relais DTMF. Chiffres DTMF de SCCP pourrait être converti en in-band mécanisme de relais DTMF par RFC2833 ou prévenir méthodes. CME prend actuellement en charge de cette liste de DTMF d'interconnexion pour les appels SIP SIP: Avertissez <---> Notify depuis 12.4 (4) T RFC2833 <---> Notify depuis 12.4 (4) T Avertissez <---> RFC2833 depuis 12.4 (4) T Intrabande G711 <---> depuis 12.4 (11) T [Nécessite Transcoder] CME prend actuellement en charge de cette interconnexion de réseaux DTMF pour les appels SIP SCCP: SCCP hors-bande SIP NOTIFY / RFC2833 depuis 12.4 (4) T 5. Codec et transcodage Un autre aspect important à considérer lorsque vous mis en place un réseau SIP est les codecs pris en charge. Codecs représentent l'échantillon de modulation d'impulsions de code pour les signaux à fréquences vocales. SIP soutenir ces codecs: G.711 et G.729. Toutefois, pour les différentes caractéristiques telles que Cisco Unity Express (CUE) et la musique d'attente (MOH), seulement codec G.711 est pris en charge. Cela signifie que les appels vocaux qui utilisent SIP en utilisant le codec G.729 ne peut pas accéder CUE, sauf si un transcodeur existe pour permettre à la compression et la décompression des flux de voix pour correspondre aux capacités CUE. Ministère de la Santé Dimitri LEMBOKOLO 29 peut également utiliser le codec G.729 pour économiser la bande passante, mais le codec ne contient pas suffisamment de flux de MS de qualité. Cela est dû au fait que G.729 est optimisée pour la parole. Par conséquent, vous devez forcer MS à utiliser G.711. 6. Mise en oeuvre Etape 1 : Configuration du CME Type de routeur CISCO utilisé est le C3700 avec l’IOS : c3745-ipvoicek9-mz.124-9.T Attribution d’une adresse IP à l’interface FastEternet 0/0 Configuration de l’interface R3>en #conf t #interface fa 0/0 #ip address 192.168.1.70 255.255.255.0 #no shutdown #exit Configuration DHCP #conf t #ip dhcp pool voip #network 192.168.1.0 //*ici on peut autorise tout comme on peut interdire exemple inter les adresses de 1 7 #ip dhcp excluded-address 192.168.1.1 192.168.1.7 #exit Configuration du routeur come serveur sip #voice service voip #allow-connection sip to sip #sip #registrar server expires max 3600 min 500 #exit #exit Dimitri LEMBOKOLO 30 Définir l'adresse et port d'écoute - nombre maximum de numéros et nombre maximum de téléphone - création de profil définition de type d'authentification voice register global mode cme source-address 192.168.1.70 port 5060 max-dn 10 max-pool 10 authenticate realm 192.168.1.70 create profile sync 0000819220144413 ! Création de numéros de téléphones voice register dn 1 number 4001 name charwel ! voice register dn 2 number 4002 name martial ! voice register dn 3 number 4003 name espoir ! Attribution des numéros aux téléphones et les codecs voice register pool 1 id mac 0000.0000.4001 number 1 dn 1 username 4001 password passer codec g711ulaw ! voice register pool 2 id mac 0000.0000.4002 number 1 dn 2 username 4002 password passer codec g711ulaw ! Dimitri LEMBOKOLO 31 voice register pool 3 id mac 0000.0000.4003 number 1 dn 3 username 4003 password passer codec g711ulaw exit ! ! ainsi de suite ! #copy running-config startup-config Étape 2: Trunk entre le CME et le serveur SIP Sur le serveur : 7. Création du compte CME Dans sip.conf Dans extensions.conf Dimitri LEMBOKOLO 32 Sur le routeur Cisco #voice service voip #sip #allow-connections sip to sip !---Active SIP et autorise les connections entre clients SIP--#exit #voice class codec 1 #codec preference 1 g711ulaw #codec preference 2 g711alaw #exit #sip-ua #authentication username cme-dimitri password passer #retry register 10 #retry invite 2 #no remote-party-id #timers register 100 #registrar ipv4:192.168.1.130 expires 3600 #sip-server ipv4:192.168.1.130!-- Permet de spécifier l’@ IP de l’interface du serveur Asterisk #exit Cas des Appels Entrants Dimitri LEMBOKOLO 33 #dial-peer voice 1 voip #description **Appels entrants du trunk SIP** # voice-class codec 1 # session protocol sipv2 # session target sip-server # incoming called-number .% # voice-class sip dtmf-relay force rtp-nte # dtmf-relay rtp-nte !--- Comme expliquer précèdement, cette commande permet de forcer CME à utiliser la RFC2833 pour les codes DTMF en mode « Inband », c'est-à-dire à transporter dans le même flux RTP que la voix les codes DTMF --#no vad !--- Beaucoup d’IP-Phone utilise en Voice Activity Detector (VAD) pour détecter les périodes de silence dans le signal voix. Ainsi le signal n’est plus transmis, temporairement, pendant la durée du signal. Pour nos test et capture de trames nous avons préféré, dans un premier temps, de désactiver cette fonctionnalité avec la commande ci-dessus. --- Cas des Appels Sortants #dial-peer voice 2 voip # description **Appel sortant trunk SIP** # destination-pattern 2[0-9]0 !--- Cette commande indique que ce dial-peer est utilisé pour les appels sortant dont les numéros sont # voice-class codec 1 # session protocol sipv2 # session target sip-server # voice-class sip dtmf-relay force rtp-nte # dtmf-relay rtp-nte # no vad Plan de numérotation pour acheminer les appels vers les utilisateurs de Asterisk et Dimitri LEMBOKOLO 34 activation de codec dial-peer voice 10 voip destination-pattern 2... session protocol sipv2 session target sip-server codec g711ulaw ! ! telephony-service max-ephones 5 max-dn 5 ip source-address 192.168.1.70 port 2000 auto assign 1 to 5 max-conferences 8 gain -6 transfer-system full-consult ! ! ephone-dn 1 number 3000 ! ! ephone-dn 2 number 3001 ! ! ephone-dn 3 number 3002 ! To be continued Dimitri LEMBOKOLO 35