Infrastructure IMS
Exemple d’une solution à
base de composants
open source
Version : Draft
Date : 1er
Avril 2010
V1.0
Mars...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 2 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
SOMMAI...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 3 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
8.4 ME...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 4 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
1 Intr...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 5 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
2 Desc...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 6 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
framew...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 7 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
Serveu...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 8 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
3 Arch...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 9 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
Une fo...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 10 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
Un de...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 11 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
sourc...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 12 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
4 Le ...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 13 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
l’enr...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 14 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
Avoir...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 15 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
5 Les...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 16 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
6 Le ...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 17 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
7 La ...
Infrastructure IMS open source Eric Macioszczyk
C@TIS EURL Page 18 sur 18
http://www.catis.fr
Copyright © C@TIS 2010
8 Les...
Prochain SlideShare
Chargement dans…5
×

Doc draft

643 vues

Publié le

Important

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
643
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
48
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Doc draft

  1. 1. Infrastructure IMS Exemple d’une solution à base de composants open source Version : Draft Date : 1er Avril 2010 V1.0 Mars 2010 Eric Macioszczyk 1, rue de Comboire 38170 Seyssinet-Pariset 06.88.69.70.10 Email : eric.macioszczyk@catis.fr
  2. 2. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 2 sur 18 http://www.catis.fr Copyright © C@TIS 2010 SOMMAIRE Page 1 INTRODUCTION......................................................................................................... 4 2 DESCRIPTION DES COMPOSANTS............................................................................... 5 2.1 LE CŒUR DE RESEAU OPEN IMS................................................................................................5 2.2 LES TERMINAUX .....................................................................................................................5 2.3 LE SERVICE DE PRESENCE..........................................................................................................6 2.4 LA PLATEFORME DE DEVELOPPEMENT DE SERVICE .........................................................................6 3 ARCHITECTURE.......................................................................................................... 8 3.1 INTRODUCTION......................................................................................................................8 3.2 FONCTIONS...........................................................................................................................8 3.3 LES SERVEURS......................................................................................................................10 3.4 LES OPERATING SYSTEM........................................................................................................10 4 LE CŒUR DE RESEAU ............................................................................................... 12 4.1 OPENIMS ..........................................................................................................................12 4.2 LES ELEMENTS DU CŒUR DE RESEAU.........................................................................................12 4.3 LA CONFIGURATION ..............................................................................................................13 4.4 TRACING ............................................................................................................................14 5 LES TERMINAUX ...................................................................................................... 15 5.1 UCTIMSCLIENT.....................................................................................................................15 5.2 MERCURO ..........................................................................................................................15 5.3 MONSTER...........................................................................................................................15 6 LE SERVICE DE PRESENCE......................................................................................... 16 6.1 L’ARCHITECTURE ..................................................................................................................16 6.2 LE SERVEUR SIP OPENSIPS ..................................................................................................... 16 6.3 LE SERVEUR XDMS OPENXCAP...............................................................................................16 6.4 L’INTERFACE OPENSIPS-OPENXCAP..........................................................................................16 6.5 L’INTERFACE AVEC UN CLIENT SIP............................................................................................16 6.6 L’INTEGRATION AVEC OPENIMS .............................................................................................16 6.7 L’ALTERNATIVE MOBICENTS JAIN ...........................................................................................16 7 LA PLATEFORME DE DEVELOPPEMENT..................................................................... 17 7.1 L’ARCHITECTURE DE LA PLATEFORME........................................................................................17 7.2 L’INTEGRATION D’ECLIPSE COMME IDE ....................................................................................17 7.3 L’ENVIRONNEMENT JAVA EE .................................................................................................. 17 7.4 LE SERVEUR JBOSS ..............................................................................................................17 7.5 LES SIP SERVLETS MOBICENTS................................................................................................17 7.6 L’INTERFACE DIAMETER MOBICENTS........................................................................................17 7.7 LA PUBLICATION D’UN SERVICE................................................................................................17 7.8 L’INTEGRATION AVEC OPENIMS .............................................................................................17 8 LES SCENARIIS ......................................................................................................... 18 8.1 ENREGISTREMENT D’UN CLIENT IMS........................................................................................18 8.2 ETABLISSEMENT D’UNE SESSION ENTRE CLIENTS..........................................................................18 8.3 INFORMATIONS DE PRESENCE .................................................................................................18
  3. 3. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 3 sur 18 http://www.catis.fr Copyright © C@TIS 2010 8.4 MESSAGERIE INSTANTANEE.................................................................................................... 18 8.5 EXEMPLE DE SERVICE : NOTIFICATION D’APPEL MANQUE...............................................................18 8.6 UTILISATION DU SERVEUR XDMS............................................................................................18
  4. 4. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 4 sur 18 http://www.catis.fr Copyright © C@TIS 2010 1 Introduction
  5. 5. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 5 sur 18 http://www.catis.fr Copyright © C@TIS 2010 2 Description des composants 2.1 Le cœur de réseau Open IMS Open IMS (http://www.openimscore.org/) est un cœur de réseau IMS basé sur la solution open source SIP Express Router (SER). Il a été développé par l’institut Fraunhofer FOKUS en Allemagne et les premières versions sont apparues à partir de 2006 et sont destinées à des plateformes du monde Linux. Cette solution fournit toutes les fonctions élémentaires d’un cœur de réseau IMS, à savoir : P-CSCF, I-CSCF et S-CSCF. Il fournit également la fonction HSS permettant donc de provisionner un certain nombre d’utilisateurs et de leur associer un profil de service permettant la mise en œuvre de l’invocation de services si chers à l’architecture IMS. 2.2 Les terminaux Uctimsclient Le client IMS Uctimsclient (http://uctimsclient.berlios.de/) a été conçu pour être utilisé en conjonction avec Open IMS. C’est donc une solution intéressante pour compléter notre réseau cœur car elle a été de ce fait testée et validée avec ce dernier. Le client Uct a été développé par un groupe de recherche de l'Université du Cap en Afrique du Sud. La dernière version présente encore quelques disfonctionnements, notamment dans la gestion des informations de présence, mais permet une émulation très correcte des caractéristiques principales d’un terminal IMS. Seule une version Linux existe à ma connaissance. Mercuro Mercuro (http://www.mercuro.net/) n’est pas un produit open source mais une des toutes premières solutions commerciales d’un client IMS. Ses caractéristiques sont plutôt riches incluant notamment une gestion de serveurs XDMS (XCAP Document Management server) dès sa version gratuite d’évaluation (version Bronze). Je regrette cependant que cette même version ne supporte les mécanismes de pré-condition (dit QoS) et que par conséquent son interopérabilité avec le client Uct nécessite de désactiver cette fonction. Son usage est toutefois globalement agréable et son support de Windows et Windows mobile permet de mixer les environnements (Windows + Linux). Monster Monster (http://www.monster-the-client.org/) n’est a proprement parler pas un simple client mais plutôt un réel
  6. 6. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 6 sur 18 http://www.catis.fr Copyright © C@TIS 2010 framework permettant de développer des applications clientes destinées au monde mobile (IMS en autre). Il a également été développé par l’institut Fraunhofer FOKUS. Je n’ai pour l’instant fais un usage très restreint de cette solution qui adresse un grand nombre d’environnement (Windows, Linux, Android, etc..). 2.3 Le service de présence Le serveur applicatif OpenSIPS OpenSIPS (Open SIP Server, http://www.opensips.org/ ) est une implémentation Open Source d'un serveur SIP. Il s’agit en fait d’une instanciation de la solution OpenSER rebaptisé pour l’occasion. OpenSIPS est plus qu'un simple proxy SIP car il inclut des fonctionnalités de niveau applicatif et c’est justement dans ce cadre que je l’utilise dans ma solution. Grâce à son moteur de routage très souple et à une conception très modulaire (mais de configuration un peu obscure ... on ne peut pas tout avoir), il peut être utilisé comme un vrai serveur de présence. Il remplit donc ce rôle dans mon infrastructure et sera perçu par notre cœur de réseau IMS comme un serveur applicatif dont les caractéristiques (d’invocation et droits d’accès) seront configurées dans le HSS. Le serveur de document XML OpenXCAP OpenXCAP (http://openxcap.org/) est une implémentation open source d’un serveur XCAP. Grâce au protocole XCAP un client IMS peut lire, écrire et modifier des données de configuration de service stockées au format XML sur un serveur (de type XDMS). Un serveur XCAP peut donc être utilisé par des clients IMS pour gérer des listes de contacts et la politique d’autorisation d’accès à des informations de type présence (presence rules). Le serveur OpenXCAP a été développé pour fonctionner de pair avec le serveur OpenSIPS utilisé en tant que serveur de présence (Presence Agent PA). 2.4 La plateforme de développement de service L’IDE Eclipse Le but de notre cette plateforme étant de pouvoir développer et tester des nouveaux services, il est de ce fait nécessaire de pouvoir bénéficier d’un environnement couvrant ces deux fonctionnalités et s’intégrant parfaitement à notre environnement. La plateforme Eclipse remplit parfaitement ce rôle et grâce à ses nombreux plug-ins apporte une réelle valeur ajoutée dans la simplification du processus de développement.
  7. 7. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 7 sur 18 http://www.catis.fr Copyright © C@TIS 2010 Serveur Java EE JBoss JBoss est un serveur d’application Java du monde open source permettant d’exécuter des applications développées avec des technologies web de type Servlets, JSP, etc … Il constituera donc le moteur exécutif de notre serveur applicatif. SIP Servlets Mobicents La solution SIP servlets de Mobicents est une plate-forme ouverte permettant de développer et déployer des applications SIP portables et des services Web Java EE convergents . Il s'agit de la première implémentation open source certifiée conforme de la Servlet SIP 1.1 (JSR 289 Spec). La plateforme Mobicents peut utiliser à la fois les conteneurs JBoss et Tomcat. Mobicents Diameter Mobicents propose une stack Diameter permettant de compléter notre environnement afin de permettre à notre AS de pouvoir s’interfacer avec le HSS (Interface Sh). Celle-ci est fournie pré-intégrée avec l’environnement JBoss et SIP Servlets. Cette interface nous permettra de développer des services nécessitant un accès à la base de données HSS.
  8. 8. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 8 sur 18 http://www.catis.fr Copyright © C@TIS 2010 3 Architecture 3.1 Introduction L’architecture que je propose ici est évidemment une vue simplifiée d’une architecture IMS telle qu’elle serait vue par un opérateur dans le cadre d’un déploiement car elle ne tient compte ni des problèmes d’interconnexion avec le réseau RTC existant (et de ses services) ni des problématiques d’accès, de QoS ou de facturation. Elle adresse donc principalement les mécanismes de routage de cœur de réseau mais permet cependant d’y intégrer des services et d’adresser les problématiques de plateforme de développement (SDP). Je souhaite m’appuyer sur cette infrastructure afin de mettre en place de façon concrète les nouvelles approches et concepts dans le développement et l’intégration de nouveaux services chez un opérateur. 3.2 Fonctions Le but de cette infrastructure est de reproduire aussi fidèlement que possible une architecture IMS telle que représentée dans le schéma ci-dessous avec ses 4 couches distinctes, accès, média, contrôle et services. L’implémentation proposée reprend donc cette vision en couche en satisfaisant les fonctions suivantes :
  9. 9. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 9 sur 18 http://www.catis.fr Copyright © C@TIS 2010 Une fois encore, le but n’est pas ici de faire un cours sur l’architecture IMS mais de présenter une instanciation concrète de celle-ci au travers l’utilisation de composants logiciels open source (ou gratuits). De ce fait j’ai regroupé au sein d’un même bloc (couche de service) des fonctions qui doivent respecter néanmoins une certaine hiérarchie. Par exemple les « services enablers » peuvent être vus comme des ressources vis-à-vis des serveurs applicatifs, de même le bloc SDP (Service Development Platform) n’est pas une fonction en soi mais plutôt un concept permettant d’intégrer l’aspect développement de services à l’architecture. Lorsque l’on rattache des composants logiciels aux fonctions décrites ci-dessus on obtient la solution globale suivante :
  10. 10. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 10 sur 18 http://www.catis.fr Copyright © C@TIS 2010 Un des objectifs de cette infrastructure étant de pouvoir intégrer aisément un nouvel élément, par exemple un AS, un client ou une fonction périphérique (ex : BGCF), il est important de répartir ces différentes fonctions de façon judicieuse. C’est le point du chapitre suivant. 3.3 Les serveurs L’implémentation et la répartition des différentes fonctions décrites précédemment a été défini de la façon suivante : • Le cœur de réseau IMS (Open IMS), le serveur XCAP et le serveur de présence sont hébergés par un seul et même serveur (OS : Ubuntu 9.x) • Le serveur applicatif SIP (SIP AS Mobicents JBoss) et le SDP (Eclipse) tournent sur un autre PC Linux Ubuntu 9.x • Les clients IMS Mercuro sont hébergés par des PCs Windows distincts des autres éléments de la plateforme • Les clients UCT tournent sur des PCs Linux hébergeant également le cœur de réseau OpenIMS Ceci nous donne donc la figure suivante : 3.4 Les Operating System Comme déjà précisé dans le chapitre précédent l’infrastructure utilise des operating system différents suivant les fonctions représentées. Cependant on note une forte dominance de l’OS Linux (Ubuntu 9.x), plateforme cible privilégiée pour les solutions open
  11. 11. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 11 sur 18 http://www.catis.fr Copyright © C@TIS 2010 source. Seul le client Mercuro sera donc hébergé par une plateforme Windows (seul OS supporté à ce jour par le produit Mercuro).
  12. 12. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 12 sur 18 http://www.catis.fr Copyright © C@TIS 2010 4 Le cœur de réseau 4.1 OpenIMS Comme évoqué précédemment OpenIMS constitue le cœur de réseau de notre solution. Il nous apporte les fonctions de contrôle élémentaires d’un réseau IM permettant d’enregistrer des utilisateurs et d’établir des appels. Toutes les fonctions fournies (P/I/S- CSCFs, HSS) sont hébergées par un serveur unique. Celui-ci fonctionne cependant de manière ouverte et l’ensemble des messages échangés sont tout autant visibles que si les fonctions avaient été réparties sur des serveurs différents. Il a fallut cependant, afin de permettre d’établir des appels avec des clients distants, configurer chacune des fonctions de façon spécifique pour que les messages puissent être routés correctement. Ainsi l’ensemble des fonctions sont en écoute sur l’interface système externe et non pas uniquement sur le « localhost » comme cela aurait pu être le cas si les clients avaient été locaux eux-aussi. De la même façon le HSS doit être configuré afin de permettre un accès externe par un AS via l’interface Sh. 4.2 Les éléments du cœur de réseau Le P-CSCF Premier élément SIP traversé par les requêtes en provenance des clients IMS il est responsable en premier lieu de déterminer le point d’entrée du réseau home (I-CSCF) lors de
  13. 13. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 13 sur 18 http://www.catis.fr Copyright © C@TIS 2010 l’enregistrement d’un utilisateur. Pour cela il s’appuie sur le DNS (ici local). Si l’on veut pouvoir s’enregistrer à partir d’un serveur distant le P-CSCF doit donc forcément être en écoute sur l’interface réseau externe du serveur l’hébergeant. De la même façon le DNS doit être configuré de façon à permettre la résolution d’adresse SIP du domaine d’enregistrement de l’utilisateur. L’ICSCF Principalement responsable de déterminer le S-CSCF de l’utilisateur concerné lors des requêtes entrantes dans son domaine pour lequel il constitue un point d’entrée. Doit donc être configuré dans le DNS. Le SCSCF Son rôle est fondamental et se divise en 2 parties distinctes : • Implémente la fonction SIP Registrar • Invoque les services de l’abonné Contrairement à un réseau SIP il n’est cependant pas nécessaire de le provisionner avec les informations des utilisateurs puisque celles-ci seront directement récupérées par le SCSCF auprès du HSS lors de l’enregistrement. En plus des informations d’authentification, le SCSCF récupère également le profil de service de l’abonné, ce qui lui permettra d’invoquer les AS respectifs en fonctions des critères exprimés dans ce même profil. J’ai cependant modifié son comportement par défaut tel que configuré dans OpenIMS afin de forcer l’envoi des messages au ICSCF du réseau distant lors de l’établissement d’appel par exemple. Le HSS Il joue le rôle de bas de données du réseau et doit donc être provisionné avec l’ensemble des informations utilisateurs. On doit également y déclarer l’ensemble des plateformes de services utilisées dans notre infrastructure (par exemple service de présence). 4.3 La configuration Un serveur unique Le choix d’un serveur unique est un choix de simplicité et d’économie matériel. Chacune des fonctions doit donc être connues du DNS, lui-même configuré sur le serveur commun. Le choix d’avoir un cœur de réseau gérant un domaine particulier implémenté sur une seule machine peut me permettre de dupliquer aisément cette configuration afin d’étendre mon infrastructure à d’autres domaines IMS. Des appels distants
  14. 14. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 14 sur 18 http://www.catis.fr Copyright © C@TIS 2010 Avoir l’ensemble des fonctions sur une seule et même machine n’empêche pas d’y connecter de façon indifférente des clients externes ou internes à ce serveur. Ainsi je peux aussi bien enregistrer un client IMS local (par exemple Uctimsclient) ou distant (par exemple de type Mercuro) sans avoir à modifier la configuration de la plateforme OpenIMS. Les services Des profils de service pourront être créés (dans le HSS) et alloués aux utilisateurs en fonction des besoins. L’infrastructure permettra tout aussi bien d’invoquer des services de type « service enabler » (ex: Presence), des service de téléphonie classique ou bien des services en phase de développement (voir rôle du SDP) de type SIP servlet ou web service (ex : SOAP, REST). Le service de Presence Chaque utilisateur aura via son profile de service une redirection des requêtes SIP correspondantes vers l’AS de Presence (ex : SUBSCRIBE, PUBLISH) Les services en développement En fonction des services en cours de développement et test des règles d’invocations (SPT, iFC) seront créées afin de mettre le service en action. Ces règles permettront de router les messages SIP correspondant vers l’AS hébergeant le service (par exemple plateforme Mobicents SIP servlet + Eclipse + JBoss) 4.4 Tracing Comme évoqué plus tôt la plateforme OpenIMS est une plateforme ouverte conforme aux standards de l’architecture IMS et l’ensemble des messages échangés entre les fonctions (ex : SIP, Diameter) sont visibles via des outils de type Wireshark. Ceci reste vrai même si l’ensemble des fonctions résident sur un même serveur comme c’est notre cas.
  15. 15. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 15 sur 18 http://www.catis.fr Copyright © C@TIS 2010 5 Les terminaux 5.1 Uctimsclient 5.2 Mercuro 5.3 Monster
  16. 16. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 16 sur 18 http://www.catis.fr Copyright © C@TIS 2010 6 Le service de présence 6.1 Rôle du service Son rôle est de permettre aux utilisateurs du réseau de publier (presentity agent) des informations de Presence et d’être notifié (watcher agent) des informations de Presence de leurs contacts respectifs. Le service de Presence a cependant une fonction un peu spécifique puisqu’il constitue également une ressource applicative (« service enabler ») disponible pour l’ensemble des autres AS de notre infrastructure. Ainsi, un service implémenté sur un serveur indépendant (par exemple au dessus d’une API de type SIP servlet) pourra souscrire auprès du service de Presence pour être notifié des informations de présence de l’ensemble (ou une partie) des utilisateurs du réseau. 6.2 L’architecture 6.3 Le serveur SIP Opensips 6.4 Le serveur XDMS Openxcap 6.5 L’interface Opensips-Openxcap 6.6 L’interface avec un client SIP 6.7 L’intégration avec OpenIMS 6.8 L’alternative Mobicents JAIN
  17. 17. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 17 sur 18 http://www.catis.fr Copyright © C@TIS 2010 7 La plateforme de développement 7.1 L’architecture de la plateforme 7.2 L’intégration d’Eclipse comme IDE 7.3 L’environnement Java EE 7.4 Le serveur JBOSS 7.5 Les SIP servlets Mobicents 7.6 L’interface Diameter Mobicents 7.7 La publication d’un service 7.8 L’intégration avec OpenIMS
  18. 18. Infrastructure IMS open source Eric Macioszczyk C@TIS EURL Page 18 sur 18 http://www.catis.fr Copyright © C@TIS 2010 8 Les scénariis 8.1 Enregistrement d’un client IMS 8.2 Etablissement d’une session entre clients 8.3 Informations de Presence 8.4 Messagerie Instantanée 8.5 Exemple de service : notification d’appel manqué 8.6 Utilisation du serveur XDMS Gestion des listes de contact Gestion des authorisations

×