You are on page 1of 18

Infrastructure IMS Exemple dune 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

Infrastructure IMS open source

Eric Macioszczyk

SOMMAIRE

Page 1 2 2.1 2.2 2.3 2.4 3 3.1 3.2 3.3 3.4 4 4.1 4.2 4.3 4.4 5 5.1 5.2 5.3 6 6.1 6.2 6.3 6.4 6.5 6.6 6.7 7 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 8 8.1 8.2 8.3 INTRODUCTION ......................................................................................................... 4 DESCRIPTION DES COMPOSANTS ............................................................................... 5 LE CUR DE RESEAU OPEN IMS................................................................................................ 5 LES TERMINAUX ..................................................................................................................... 5 LE SERVICE DE PRESENCE .......................................................................................................... 6 LA PLATEFORME DE DEVELOPPEMENT DE SERVICE ......................................................................... 6 ARCHITECTURE .......................................................................................................... 8 INTRODUCTION ...................................................................................................................... 8 FONCTIONS ........................................................................................................................... 8 LES SERVEURS ...................................................................................................................... 10 LES OPERATING SYSTEM ........................................................................................................ 10 LE CUR DE RESEAU ............................................................................................... 12 OPENIMS .......................................................................................................................... 12 LES ELEMENTS DU CUR DE RESEAU ......................................................................................... 12 LA CONFIGURATION .............................................................................................................. 13 TRACING ............................................................................................................................ 14 LES TERMINAUX ...................................................................................................... 15 UCTIMSCLIENT ..................................................................................................................... 15 MERCURO .......................................................................................................................... 15 MONSTER........................................................................................................................... 15 LE SERVICE DE PRESENCE ......................................................................................... 16 LARCHITECTURE .................................................................................................................. 16 LE SERVEUR SIP OPENSIPS ..................................................................................................... 16 LE SERVEUR XDMS OPENXCAP ............................................................................................... 16 LINTERFACE OPENSIPS-OPENXCAP .......................................................................................... 16 LINTERFACE AVEC UN CLIENT SIP ............................................................................................ 16 LINTEGRATION AVEC OPENIMS ............................................................................................. 16 LALTERNATIVE MOBICENTS JAIN ........................................................................................... 16 LA PLATEFORME DE DEVELOPPEMENT ..................................................................... 17 LARCHITECTURE DE LA PLATEFORME ........................................................................................ 17 LINTEGRATION DECLIPSE COMME IDE .................................................................................... 17 LENVIRONNEMENT JAVA EE .................................................................................................. 17 LE SERVEUR JBOSS .............................................................................................................. 17 LES SIP SERVLETS MOBICENTS ................................................................................................ 17 LINTERFACE DIAMETER MOBICENTS ........................................................................................ 17 LA PUBLICATION DUN SERVICE ................................................................................................ 17 LINTEGRATION AVEC OPENIMS ............................................................................................. 17 LES SCENARIIS ......................................................................................................... 18 ENREGISTREMENT DUN CLIENT IMS ........................................................................................ 18 ETABLISSEMENT DUNE SESSION ENTRE CLIENTS .......................................................................... 18 INFORMATIONS DE PRESENCE ................................................................................................. 18
Page 2 sur 18

C@TIS EURL http://www.catis.fr Copyright C@TIS 2010

Infrastructure IMS open source

Eric Macioszczyk

8.4 8.5 8.6

MESSAGERIE INSTANTANEE .................................................................................................... 18 EXEMPLE DE SERVICE : NOTIFICATION DAPPEL MANQUE............................................................... 18 UTILISATION DU SERVEUR XDMS ............................................................................................ 18

C@TIS EURL http://www.catis.fr Copyright C@TIS 2010

Page 3 sur 18

Infrastructure IMS open source

Eric Macioszczyk

1 Introduction

C@TIS EURL http://www.catis.fr Copyright C@TIS 2010

Page 4 sur 18

Infrastructure IMS open source

Eric Macioszczyk

2 Description des composants


2.1 Le cur de rseau Open IMS
Open IMS (http://www.openimscore.org/) est un cur de rseau IMS bas sur la solution open source SIP Express Router (SER). Il a t dvelopp par linstitut Fraunhofer FOKUS en Allemagne et les premires versions sont apparues partir de 2006 et sont destines des plateformes du monde Linux. Cette solution fournit toutes les fonctions lmentaires dun cur de rseau IMS, savoir : P-CSCF, I-CSCF et S-CSCF. Il fournit galement la fonction HSS permettant donc de provisionner un certain nombre dutilisateurs et de leur associer un profil de service permettant la mise en uvre de linvocation de services si chers larchitecture IMS.

2.2 Les terminaux


Uctimsclient

Le client IMS Uctimsclient (http://uctimsclient.berlios.de/) a t conu pour tre utilis en conjonction avec Open IMS. Cest donc une solution intressante pour complter notre rseau cur car elle a t de ce fait teste et valide avec ce dernier. Le client Uct a t dvelopp par un groupe de recherche de l'Universit du Cap en Afrique du Sud. La dernire version prsente encore quelques disfonctionnements, notamment dans la gestion des informations de prsence, mais permet une mulation trs correcte des caractristiques principales dun terminal IMS. Seule une version Linux existe ma connaissance.
Mercuro

Mercuro (http://www.mercuro.net/) nest pas un produit open source mais une des toutes premires solutions commerciales dun client IMS. Ses caractristiques sont plutt riches incluant notamment une gestion de serveurs XDMS (XCAP Document Management server) ds sa version gratuite dvaluation (version Bronze). Je regrette cependant que cette mme version ne supporte les mcanismes de pr-condition (dit QoS) et que par consquent son interoprabilit avec le client Uct ncessite de dsactiver cette fonction. Son usage est toutefois globalement agrable et son support de Windows et Windows mobile permet de mixer les environnements (Windows + Linux).
Monster

Monster (http://www.monster-the-client.org/) nest a proprement parler pas un simple client mais plutt un rel

C@TIS EURL http://www.catis.fr Copyright C@TIS 2010

Page 5 sur 18

Infrastructure IMS open source

Eric Macioszczyk

framework permettant de dvelopper des applications clientes destines au monde mobile (IMS en autre). Il a galement t dvelopp par linstitut Fraunhofer FOKUS. Je nai pour linstant fais un usage trs restreint de cette solution qui adresse un grand nombre denvironnement (Windows, Linux, Android, etc..).

2.3 Le service de prsence


Le serveur applicatif OpenSIPS

OpenSIPS (Open SIP Server, http://www.opensips.org/ ) est une implmentation Open Source d'un serveur SIP. Il sagit en fait dune instanciation de la solution OpenSER rebaptis pour loccasion. OpenSIPS est plus qu'un simple proxy SIP car il inclut des fonctionnalits de niveau applicatif et cest justement dans ce cadre que je lutilise dans ma solution. Grce son moteur de routage trs souple et une conception trs modulaire (mais de configuration un peu obscure ... on ne peut pas tout avoir), il peut tre utilis comme un vrai serveur de prsence. Il remplit donc ce rle dans mon infrastructure et sera peru par notre cur de rseau IMS comme un serveur applicatif dont les caractristiques (dinvocation et droits daccs) seront configures dans le HSS.
Le serveur de document XML OpenXCAP

OpenXCAP (http://openxcap.org/) est une implmentation open source dun serveur XCAP. Grce au protocole XCAP un client IMS peut lire, crire et modifier des donnes de configuration de service stockes au format XML sur un serveur (de type XDMS). Un serveur XCAP peut donc tre utilis par des clients IMS pour grer des listes de contacts et la politique dautorisation daccs des informations de type prsence (presence rules). Le serveur OpenXCAP a t dvelopp pour fonctionner de pair avec le serveur OpenSIPS utilis en tant que serveur de prsence (Presence Agent PA).

2.4 La plateforme de dveloppement de service


LIDE Eclipse

Le but de notre cette plateforme tant de pouvoir dvelopper et tester des nouveaux services, il est de ce fait ncessaire de pouvoir bnficier dun environnement couvrant ces deux fonctionnalits et sintgrant parfaitement notre environnement. La plateforme Eclipse remplit parfaitement ce rle et grce ses nombreux plug-ins apporte une relle valeur ajoute dans la simplification du processus de dveloppement.

C@TIS EURL http://www.catis.fr Copyright C@TIS 2010

Page 6 sur 18

Infrastructure IMS open source

Eric Macioszczyk

Serveur Java EE JBoss

JBoss est un serveur dapplication Java du monde open source permettant dexcuter des applications dveloppes avec des technologies web de type Servlets, JSP, etc Il constituera donc le moteur excutif de notre serveur applicatif.
SIP Servlets Mobicents

La solution SIP servlets de Mobicents est une plate-forme ouverte permettant de dvelopper et dployer des applications SIP portables et des services Web Java EE convergents . Il s'agit de la premire implmentation open source certifie 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 complter notre environnement afin de permettre notre AS de pouvoir sinterfacer avec le HSS (Interface Sh). Celle-ci est fournie pr-intgre avec lenvironnement JBoss et SIP Servlets. Cette interface nous permettra de dvelopper des services ncessitant un accs la base de donnes HSS.

C@TIS EURL http://www.catis.fr Copyright C@TIS 2010

Page 7 sur 18

Infrastructure IMS open source

Eric Macioszczyk

3 Architecture
3.1 Introduction
Larchitecture que je propose ici est videmment une vue simplifie dune architecture IMS telle quelle serait vue par un oprateur dans le cadre dun dploiement car elle ne tient compte ni des problmes dinterconnexion avec le rseau RTC existant (et de ses services) ni des problmatiques daccs, de QoS ou de facturation. Elle adresse donc principalement les mcanismes de routage de cur de rseau mais permet cependant dy intgrer des services et dadresser les problmatiques de plateforme de dveloppement (SDP). Je souhaite mappuyer sur cette infrastructure afin de mettre en place de faon concrte les nouvelles approches et concepts dans le dveloppement et lintgration de nouveaux services chez un oprateur.

3.2 Fonctions
Le but de cette infrastructure est de reproduire aussi fidlement que possible une architecture IMS telle que reprsente dans le schma ci-dessous avec ses 4 couches distinctes, accs, mdia, contrle et services.

Limplmentation propose reprend donc cette vision en couche en satisfaisant les fonctions suivantes :

C@TIS EURL http://www.catis.fr Copyright C@TIS 2010

Page 8 sur 18

Infrastructure IMS open source

Eric Macioszczyk

Une fois encore, le but nest pas ici de faire un cours sur larchitecture IMS mais de prsenter une instanciation concrte de celle-ci au travers lutilisation de composants logiciels open source (ou gratuits). De ce fait jai regroup au sein dun mme bloc (couche de service) des fonctions qui doivent respecter nanmoins une certaine hirarchie. Par exemple les services enablers peuvent tre vus comme des ressources vis--vis des serveurs applicatifs, de mme le bloc SDP (Service Development Platform) nest pas une fonction en soi mais plutt un concept permettant dintgrer laspect dveloppement de services larchitecture. Lorsque lon rattache des composants logiciels aux fonctions dcrites ci-dessus on obtient la solution globale suivante :

C@TIS EURL http://www.catis.fr Copyright C@TIS 2010

Page 9 sur 18

Infrastructure IMS open source

Eric Macioszczyk

Un des objectifs de cette infrastructure tant de pouvoir intgrer aisment un nouvel lment, par exemple un AS, un client ou une fonction priphrique (ex : BGCF), il est important de rpartir ces diffrentes fonctions de faon judicieuse. Cest le point du chapitre suivant.

3.3 Les serveurs


Limplmentation et la rpartition des diffrentes fonctions dcrites prcdemment a t dfini de la faon suivante : Le cur de rseau IMS (Open IMS), le serveur XCAP et le serveur de prsence sont hbergs par un seul et mme 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 hbergs par des PCs Windows distincts des autres lments de la plateforme Les clients UCT tournent sur des PCs Linux hbergeant galement le cur de rseau OpenIMS

Ceci nous donne donc la figure suivante :

3.4 Les Operating System


Comme dj prcis dans le chapitre prcdent linfrastructure utilise des operating system diffrents suivant les fonctions reprsentes. Cependant on note une forte dominance de lOS Linux (Ubuntu 9.x), plateforme cible privilgie pour les solutions open
C@TIS EURL http://www.catis.fr Copyright C@TIS 2010 Page 10 sur 18

Infrastructure IMS open source

Eric Macioszczyk

source. Seul le client Mercuro sera donc hberg par une plateforme Windows (seul OS support ce jour par le produit Mercuro).

C@TIS EURL http://www.catis.fr Copyright C@TIS 2010

Page 11 sur 18

Infrastructure IMS open source

Eric Macioszczyk

4 Le cur de rseau
4.1 OpenIMS

Comme voqu prcdemment OpenIMS constitue le cur de rseau de notre solution. Il nous apporte les fonctions de contrle lmentaires dun rseau IM permettant denregistrer des utilisateurs et dtablir des appels. Toutes les fonctions fournies (P/I/SCSCFs, HSS) sont hberges par un serveur unique. Celui-ci fonctionne cependant de manire ouverte et lensemble des messages changs sont tout autant visibles que si les fonctions avaient t rparties sur des serveurs diffrents. Il a fallut cependant, afin de permettre dtablir des appels avec des clients distants, configurer chacune des fonctions de faon spcifique pour que les messages puissent tre routs correctement. Ainsi lensemble des fonctions sont en coute sur linterface systme 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 mme faon le HSS doit tre configur afin de permettre un accs externe par un AS via linterface Sh.

4.2 Les lments du cur de rseau


Le P-CSCF

Premier lment SIP travers par les requtes en provenance des clients IMS il est responsable en premier lieu de dterminer le point dentre du rseau home (I-CSCF) lors de
C@TIS EURL http://www.catis.fr Copyright C@TIS 2010 Page 12 sur 18

Infrastructure IMS open source

Eric Macioszczyk

lenregistrement dun utilisateur. Pour cela il sappuie sur le DNS (ici local). Si lon veut pouvoir senregistrer partir dun serveur distant le P-CSCF doit donc forcment tre en coute sur linterface rseau externe du serveur lhbergeant. De la mme faon le DNS doit tre configur de faon permettre la rsolution dadresse SIP du domaine denregistrement de lutilisateur.
LICSCF

Principalement responsable de dterminer le S-CSCF de lutilisateur concern lors des requtes entrantes dans son domaine pour lequel il constitue un point dentre. Doit donc tre configur dans le DNS.
Le SCSCF

Son rle est fondamental et se divise en 2 parties distinctes : Implmente la fonction SIP Registrar Invoque les services de labonn

Contrairement un rseau SIP il nest cependant pas ncessaire de le provisionner avec les informations des utilisateurs puisque celles-ci seront directement rcupres par le SCSCF auprs du HSS lors de lenregistrement. En plus des informations dauthentification, le SCSCF rcupre galement le profil de service de labonn, ce qui lui permettra dinvoquer les AS respectifs en fonctions des critres exprims dans ce mme profil. Jai cependant modifi son comportement par dfaut tel que configur dans OpenIMS afin de forcer lenvoi des messages au ICSCF du rseau distant lors de ltablissement dappel par exemple.
Le HSS

Il joue le rle de bas de donnes du rseau et doit donc tre provisionn avec lensemble des informations utilisateurs. On doit galement y dclarer lensemble des plateformes de services utilises dans notre infrastructure (par exemple service de prsence).

4.3 La configuration
Un serveur unique

Le choix dun serveur unique est un choix de simplicit et dconomie matriel. Chacune des fonctions doit donc tre connues du DNS, lui-mme configur sur le serveur commun. Le choix davoir un cur de rseau grant un domaine particulier implment sur une seule machine peut me permettre de dupliquer aisment cette configuration afin dtendre mon infrastructure dautres domaines IMS.
Des appels distants

C@TIS EURL http://www.catis.fr Copyright C@TIS 2010

Page 13 sur 18

Infrastructure IMS open source

Eric Macioszczyk

Avoir lensemble des fonctions sur une seule et mme machine nempche pas dy connecter de faon indiffrente 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 crs (dans le HSS) et allous aux utilisateurs en fonction des besoins. Linfrastructure permettra tout aussi bien dinvoquer des services de type service enabler (ex: Presence), des service de tlphonie classique ou bien des services en phase de dveloppement (voir rle 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 requtes SIP correspondantes vers lAS de Presence (ex : SUBSCRIBE, PUBLISH)
Les services en dveloppement

En fonction des services en cours de dveloppement et test des rgles dinvocations (SPT, iFC) seront cres afin de mettre le service en action. Ces rgles permettront de router les messages SIP correspondant vers lAS hbergeant le service (par exemple plateforme Mobicents SIP servlet + Eclipse + JBoss)

4.4 Tracing
Comme voqu plus tt la plateforme OpenIMS est une plateforme ouverte conforme aux standards de larchitecture IMS et lensemble des messages changs entre les fonctions (ex : SIP, Diameter) sont visibles via des outils de type Wireshark. Ceci reste vrai mme si lensemble des fonctions rsident sur un mme serveur comme cest notre cas.

C@TIS EURL http://www.catis.fr Copyright C@TIS 2010

Page 14 sur 18

Infrastructure IMS open source

Eric Macioszczyk

5 Les terminaux
5.1 Uctimsclient 5.2 Mercuro 5.3 Monster

C@TIS EURL http://www.catis.fr Copyright C@TIS 2010

Page 15 sur 18

Infrastructure IMS open source

Eric Macioszczyk

6 Le service de prsence
6.1 Rle du service
Son rle est de permettre aux utilisateurs du rseau de publier (presentity agent) des informations de Presence et dtre notifi (watcher agent) des informations de Presence de leurs contacts respectifs. Le service de Presence a cependant une fonction un peu spcifique puisquil constitue galement une ressource applicative ( service enabler ) disponible pour lensemble des autres AS de notre infrastructure. Ainsi, un service implment sur un serveur indpendant (par exemple au dessus dune API de type SIP servlet) pourra souscrire auprs du service de Presence pour tre notifi des informations de prsence de lensemble (ou une partie) des utilisateurs du rseau.

6.2 Larchitecture 6.3 Le serveur SIP Opensips 6.4 Le serveur XDMS Openxcap 6.5 Linterface Opensips-Openxcap 6.6 Linterface avec un client SIP 6.7 Lintgration avec OpenIMS 6.8 Lalternative Mobicents JAIN

C@TIS EURL http://www.catis.fr Copyright C@TIS 2010

Page 16 sur 18

Infrastructure IMS open source

Eric Macioszczyk

7 La plateforme de dveloppement
7.1 Larchitecture de la plateforme 7.2 Lintgration dEclipse comme IDE 7.3 Lenvironnement Java EE 7.4 Le serveur JBOSS 7.5 Les SIP servlets Mobicents 7.6 Linterface Diameter Mobicents 7.7 La publication dun service 7.8 Lintgration avec OpenIMS

C@TIS EURL http://www.catis.fr Copyright C@TIS 2010

Page 17 sur 18

Infrastructure IMS open source

Eric Macioszczyk

8 Les scnariis
8.1 Enregistrement dun client IMS 8.2 Etablissement dune session entre clients 8.3 Informations de Presence 8.4 Messagerie Instantane 8.5 Exemple de service : notification dappel manqu 8.6 Utilisation du serveur XDMS
Gestion des listes de contact Gestion des authorisations

C@TIS EURL http://www.catis.fr Copyright C@TIS 2010

Page 18 sur 18

You might also like