Evolution du domaine des télécommunications Création de Services Télécoms avec JAIN



Documents pareils
Session Initiation Protocol

Scripts et APIs pour la gestion de serveurs SIP

Programmation de services en téléphonie sur IP

SIP. Sommaire. Internet Multimédia

Information and Communication Networks. NGN VoIP

Messagerie asynchrone et Services Web

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

SIP A. Aoun - La Visioconférence SIP - 1

Mise en œuvre des serveurs d application

Plan. Department of Informatics

Evolutions futures et tendances de la téléphonie sur IP

JAVA APIs for INTEGRATED NETWORKS

La VOIP :Les protocoles H.323 et SIP

Configuration d'un trunk SIP OpenIP sur un IPBX ShoreTel

Téléphonie. sur IP. 2 e édition

Composants Logiciels. Le modèle de composant de CORBA. Plan

La VoIP et ToIP. - Les constructeurs de réseaux : Anciens : Alcatel, Ericsson, Nortel, Siemens, Lucent, NEC Nouveaux venus : NetCentrex, Cirpack

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

RFID: Middleware et intégration avec le système d'information Olivier Liechti

Voix sur IP Étude d approfondissement Réseaux

Développement d un service de messagerie sur une plateforme de service de nouvelles générations

Serveur d'application à la juste taille

Cedric Dumoulin (C) The Java EE 7 Tutorial

Mécanismes coopératifs de plan contrôle global pour des services de communications multi-fournisseurs et trans-réseaux

IP Exchange Network Architecture et Services. EFORT

Le modèle client-serveur

2 Chapitre 1 Introduction

(In)sécurité de la Voix sur IP [VoIP]

Introduction aux «Services Web»

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Cours CCNA 1. Exercices

Archises Nouvelle architecture pour la création de services à valeur ajoutée

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

Conception d un outil d aide au déploiement d un réseau EV-DO dans un concept IMS pour l opérateur CAMTEL

Pourquoi un SBC? Brique d interconnexion entre domaines IP. V. Durepaire - 6 mars

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Réunion du 1er Avril VoIP : théorie et réalité opérationnelle. info@ipercom.com

Calcul de la bande passante réelle consommée par appel suivant le codec utilisé

Auto-évaluation Aperçu de l architecture Java EE

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Travail collaboratif. Glossaire

La VoIP: Les protocoles SIP, SCCP et H323. Jonathan BRIFFAUT Alexandre MARTIN

SIP : Session Initiation Protocol

Plan. École Supérieure d Économie Électronique. Plan. Chap 9: Composants et systèmes de sécurité. Rhouma Rhouma. 21 Juillet 2014

Autorité de Régulation de la Poste et des Télécommunications. Direction de l Interconnexion et des Nouvelles Technologies.

Architecture Orientée Service, JSON et API REST

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Introduction de la Voix sur IP

1. Introduction à la distribution des traitements et des données

Protocole SIP et rc o d n o C ée yc L N E S ro P c a B

FOURNIR UN SERVICE DE BASE DE DONNÉES FLEXIBLE. Database as a Service (DBaaS)

Services Réseaux - Couche Application. TODARO Cédric

Présentation générale des différentes solutions libres. JTR ToIP Lyon

Voix sur IP. Généralités. Paramètres. IPv4 H323 / SIP. Matériel constructeur. Asterisk

Module BD et sites WEB

Prenez le train de l évolution maintenant pour gérer le stress des réseaux de demain

Vulgarisation Java EE Java EE, c est quoi?

La technologie Java Card TM

Stéphanie Lacerte. Document technique. Connextek. 31 mai Cloudtel

Oracle Fusion Middleware Concepts Guide 11g Release 1 (11.1.1) Figure 1-1 Architecture Middleware

Completed Projects / Projets terminés

Media Gateway Control and the softswitch architecture (MGCP) TFM Cours VoIP

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

SEMINAIRES & ATELIERS EN TÉLÉCOMMUNICATIONS RESEAUX

PLATE-FORME DE CLOUD COMPUTING SLAPOS. Intégration d applications

Compte Rendu d intégration d application

Chapitre 1: Introduction générale

Evolutions futures et tendances de la téléphonie sur IP

C a h p a i p tre e 4 Archi h t i ectur u e e t S i S g i n g a n li l s i atio i n o n SI S P

VoIP/ToIP Etude de cas

NFP111 Systèmes et Applications Réparties

Communications unifiées

Réseaux et Services de Télécommunication Concepts, Principes et Architectures

SOA : une brique de la 4 ième génération de l architecture informatique? Hervé Crespel Président du club urba-ea

EXALOGIC ELASTIC CLOUD MANAGEMENT

TAGREROUT Seyf Allah TMRIM

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

IP Multimedia Subsystem : Principes et Architecture

GSM : Global System for Mobile Communications Gestion de la mobilité et Contrôle d appel

Logiciel VOIP Annexe

LES APPROCHES CONCRÈTES POUR LE DÉPLOIEMENT D INFRASTRUCTURES CLOUD AVEC HDS & VMWARE

Lila Dorato Technical Sales

La sécurité des PABX Le point de vue d un constructeur Les mesures de sécurisation des équipements lors du développement et de l intégration

Téléphonie. sur IP. Module Voix et Téléphonie sur IP. Téléphonie sur IP. Sujet 4 Identification et localisation dans le protocole SIP

RTDS G3. Emmanuel Gaudin

Les Nouveaux Standards de la ToIP et de la Convergence

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Fiche Produit Desktop Popup

Spécifications de raccordement au service de Téléphonie sur IP (ToIP) de RENATER

ORACLE PAAS CLOUD MANAGEMENT

Java pour le Web. Cours Java - F. Michel

Keyyo Guide de mise en service CTI / API / TAPI Keyyo

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

Guide de configuration Aastra 5000 pour le raccordement d un trunk Sip OPENIP

Aastra MD Evolution» Évoluer à vos côtés

Guide de connexion Wi-Fi sur un hotspot ADP Télécom

Surveiller et contrôler vos applications à travers le Web

Le Réseau Sémaphore Numéro 7 : Principes, Architecture et Protocoles

Transcription:

Evolution du domaine des télécommunications Création de Services Télécoms avec JAIN Gilles Vanwormhoudt Au niveau architecture Concept de Next Generation Network (NGN) Intégration des réseaux : Packets, Circuits, Sans-fil Séparation des couches réseaux, signalisation et services Au niveau des services Services innovants: multimédia, multi-parties,... Intégration avec les technologies de l information Convergence IT/Telecom Elargissement des fournisseurs de service Network Provider <> Service Developer <> Service Provider Développement rapide, à cout réduit, similaire au développement dans d autres domaines => orientation composants => Besoin d API ouverts et standards => JAIN, Parlay 1 2 Java API for Integrated Networks 1 JAIN est un ensemble d API Java pour le développement rapide de produits/services de télécoms de la prochaine génération (25 API spécifiés par plus de 80 companies) Objectifs Portabilité des services (Write Once, Run anywhere) Abstraction des réseaux pour les applications: (Any network) réseaux paquets (IP), réseaux circuits (PSTN) et réseaux sans fils Accès réseau sécurisé : ouverture controlée et sécurisée des capacités du réseaux aux applications Java (By anynone) Vision de JAIN Faire évoluer le domaine des télécommunications qui repose sur une architecture de boites matérielles et logicielles propriétaires vers une architecture ouverte où les services peuvent être rapidement créés et déployés, peu importe la plateforme et le réseau 3 Des systèmes fermés aux environnements ouverts Circuit-Switched P R O P R I E T A R Y Services & Applications Call Control & Switching Transport Hardware Les applications sont liées aux équipements réseaux L'equipement réseau est un environnment clos Coûts importants pour les nouvelles applications Coûts importants pour les opérateurs multi-réseaux Soft-Switched Services, Applications & Features (Management, Provisioning and Back Office) Open Applications APIs Softswitch Call Control Open Protocols APIs Transport Hardware! Permet de créer des applications portables à travers les différents réseaux et protocoles! Offre un environnement ouvert et standard! Permet de réduire les coûts de développement et le temps de mise sur le marché grâce aux standards! Permet une utilisation et un dévelopement dans un environnement multi-vendeurs, multimarques 4

La communauté JAIN Architecture de JAIN 5 6 Couches d abstraction JAIN Vue d ensemble Telecomm. Wireless IP Couche service Service Control Point (SCP) Base station controller, Home Location Register,... Serveur d applications Internet Couche signalisation Signaling Service Point (SSP) Mobile Switching Center (MSC) Proxy, Redirect, H323 Gatekeeper,... Couche réseau Réseau intelligent, SS7, ISUP, TCAP SS7 avec applications mobiles (MAP) SIP,MGCP, Megaco, H323 7 8

Principaux composants Principaux composants SCE (Service Creation Environment) Outils pour la création, configuration, test d applications/services de télécoms à base de composants Déploiement dans les infrastructures SLEE Objectif: conception rapide de nouveaux services à un cout réduit SLEE (Service Logic Execution Environment) Infrastructure d exécution standard fournissant des fonctionnalités générales pour les applications/services télécoms Objectif : Portabilité des services (Write-once, Run-anywhere, indépendance des fonctionnalités et des protocoles de signalisation) Simplification du développment de nouveaux services (Concentration sur la logique métier) JCC (Java Call Control)/JCAT (Java Coordination & Transaction) Fournit un modèle d appel générique permettant de créer, gérer, manipuler, terminer des appels pour des réseaux PSTN, paquets et sans fils => Abstractions des réseaux/protocoles de signalisation Supporte l exécution des applications durant les appels ce qui permet d appeler des services intelligents. Protocol APIs Fournit des API permettant à une application développée en Java d établir des communications avec les protocoles des réseaux PSTN, paquets et sans fils 9 10 Développement de nouveaux services Types de services Numérotation abrégée Réseau privé virtuel (plan de numérotage privée) Renvoi d appel Répartition d appel Facturation automatique sur compte tiers Rappel automatique Filtrage d appels, Filtrage de sécurité Acheminement des appels Communication multi-parties Taxation à l arrivée, Taxation partagée Kiosque, Services prépayés, Messagerie instantanée,... 11 12

APIs JAIN 1 APIs JAIN 2 13 14 JAIN SCE : Service Creation Environment Développement de nouveaux services Environnement de développement pour des services fonctionnant dans SLEE Permet de créer des services à partir de composants déjà créés et testés (SBB: Service Building Block) Documents XML, Langage/Script de gestion d appel (Call Processing Language,), Javabeans, Outils graphiques Fournit aussi une gestion des services, vérification de leur compatibilité (version, dépendances) Empaquetage sous une forme déployable Test par simulation des différents services avant de les déployer. 15 16

SCE: Outil de création de services Service = Assemblage de composants Définition du service en assemblant des composants réutilisables indépendantes de tout service (comparable au Service Independant Building Block du réseau intelligent) Spécification du service Points d initiations -> Déclenchement des composants Enchainement de composants intéragissant les uns avec les autres (script) Types de composant Authentification, Algorithme,Comparateur, Taxation, Limit, Log Call, Queue, Traduction, Verification, 17 18 Composant SBB Composant logiciel écrit en Java Conçu pour les applications «!event driven!» Implémente la logique utile à un service Fonctionne sur réception d évènements Emission d appel, connexion, déconnexion, JAIN SLEE : Service Logic Execution Environnement 1 Environnement d exécution générique des services / applications JAIN(Gateway,Switch,Proxy,SCP, SSP) Rôle analogue aux serveurs d applications d entreprise (exemple conteneur EJB, conteneur Web) Conçu et optimisé pour ce type de services/applications Gestion des évènements très efficace, invocation asynchrones, transactions légères, haute disponibilité Fournit des fonctionnalités communes Transaction, persistence, régulation de charge, sécurité Facilite le déploiement dynamique de services, leur administration et leur maintenance Fournit une interface JAIN Parlay pour les services à l extérieur du réseau (untrusted services) 19 20

JAIN SLEE : Service Logic Execution Environnement 2 JAIN SLEE : Service Logic Execution Environnement 3 21 22 Activation des SBB JSLEE vs J2EE J2EE Les implémentations J2EE sont utilisées pour fournir de hautes performances dans des réseaux d'entreprise Aujourd'hui, les implémentations J2EE ne sont pas capables de fournir les performances requises pour un réseau de communication 23 JSLEE Les implémentations JSLEE sont utilisées pour fournir de hautes performances dans les réseaux de communication Aujourd'hui, les implémentations JSLEE ne sont pas capables de fournir les performances requises pour un réseau d'entreprises 24

Interconnexions JSLEE - J2EE JAIN JCC/JCAT API JCC (Java Call Control) API API pour le contrôle d appel en Java Création, observation, manipulation, traitement des appels Basé sur un modèle d appel générique supportant des sessions multi-médias, multi-parties et multi-protocoles JCAT (Java Coordination and Transaction) API API pour l invocation des services/applications avant, durant et après les appels ainsi que pour le traitement des paramètres d appels => Traitement / Contrôle d appels Intégration: périphérie et coeur du réseau (switches, call agent, end-office switches,...) Applications: first-party call, third party call, redirection d appel, mise en attente, Click-to-Dial, Voice-Activated-Dialing, Conference,... 25 26 Relations entre JCC, JCP, JTAPI JAIN JCC/JCAT API JAIN space Java Call Processing (JCP) Based on Parlay 2.1 MPCCS JTAPI Core Java Call Control (JCC) JTAPI Extensions Java Coordination & Transactions (JCAT) Parlay Extensions CTI space 3 rd Party space Mobility space 3GPP Extensions 27 28

Concepts de JCC/JCAT 1 Concepts de JCC/JCAT 2 Provider (JccProvider) abstraction représentant le fournisseur de services. Ildissimule les aspects spécifiques au service du sous système et permet aux applications java d interagir avec celui-ci est ce indépendamment du protocole et de l implémentation utilisée. Call (JccCall) représente un appel (voix, data ou multimédia), il représente aussi uneconnexion dynamique entre les entités physiques et logiques. Address (JccAddress) cet objet représente l adresse logique d un terminal (ex. n de téléphone,adresse IP) Connection (JccConnection) cet objet représente la liaison dynamique entre l objet Address et l objetcall JCC/JCAT API 29 30 JccProvider & JccCall JccConnection JccProvider JccConnection createcall() getstate() addxxxlistener() createeventfilter() JccCall createconnection() connect() routecall() answer() routeconnection() release() continueprocessing() getaddress() getcall() isblocked() release() 31 32

Contrôle des appels La plate-forme qui implémente l API peut informer les applications qu un événement c est produit (exemple, nouvel appel ) en utilisant les événements JAVA Les applications doivent fournir des listeners correspondant aux événements qui les intéressent Les objets peuvent générer des événements qui peuvent être interceptés par différents Listners. ProviderEvent : changement d état intervenu dans JcpProvider CallEvent : changement d état intervenu dans JcpCall ConnectionEvent : changement intervenu dans JcpConnection Les évènements sont transmis à leur listener respectif Traitement applicatif => Recording, Blocking, Forwarding,... 33 34 Gestion des évènements 35 36

JAIN Protocol API JAIN SS7 API Fournit des API pour permettre à une application développée en Java (ex. SCP et SSP) d accéder aux services fournis par SS7 Protocoles supportés: TCAP, ISUP, MAP, INAP JAIN IP API Fournit des API pour permettre à une application développée en Java (ex: Media gateway, Call Agent, Proxy, Gateway controller) d établir des communications avec différents protocoles IP Protocoles supportés : H323, MGCP, SIP 37 38 Principes Architecturaux de JAIN Protocol API JAIN et SIP Stack Application Listener Event JAIN Protocol Layer JAIN-SIP API de bas niveau basée sur le RFC 2543 JAIN-SIP Lite API de haut niveau pour créér un agent SIP JAIN-SIP Servlet Provider API pour programmer des servlets SIP Protocol Stack 39 40

JAIN-SIP JAIN-SIP Interface JAVA standard qui encapsule une pile de signalisation SIP Spécification JSR - SUN Historique: JSR Approval 1999, Final Aout Spécification actuelle : 1.2 Offre les abstractions du protocole SIP sousforme d objets JAVA Permet à une application/une servlet ou un bean d embarquer un pile SIP et d accéder à des fonctionnalités d appel de bas niveau. Simplifie la construction des entités SIP Agents Utilisateurs, Serveurs Proxy, Serveur de redirection JAIN SIP peut être utilisé dans un agent utilisateur ou un proxy Garantit la portabilité des applications entre pile JAIN-SIP via la définition des interfaces et le comportement à l exécution (TCK test suite) 41 42 Architecture de JAIN-SIP Responsabilités de l application SIPListeners SIPProvider SIPStack SIPListeners Messages SIP Evénements Messages SIP Evénements Réseau SIPProvider SIPStack L application doit utiliser l interface du provider pour tous accès à la pile (pas d accès directe aux couches sousjacentes) L application doit enregistrer auprès de la pile un ou plusieurs objets implantant l interface SipListener L application est notifiée de l arrivée de message SIP, elle est responsable des réponses Pour une mode sans état, l application est responsable du traitement de retransmission en cas de timeout lié à un message Agent Client Agent Serveur 43 44

Responsabilités de la pile Vue interne de la Pile SIP Offre des méthodes pour formater et envoyer des messages SIP Analyse les messages SIP entrants et en construit un représentation sous forme objets que l application peut accéder et modifier à travers des interfaces Java standardisés Invoque les gestionnaires d événements de l application quand un événement intéressant se produit Fournit le support des transactions Gère les transactions et les dialogues pour l application 45 46 Paquetages JAIN-SIP Abstractions JAIN-SIP 1 jain.protocol.ip.sip SipStack, SipProvider, SipListener,... jain.protocol.ip.sip.header: Fabrique d entêtes, interfaces pour chaque entête SIP supportée jain.protocol.ip.sip.message Fabrique de messages : Message, Request, Response jain.protocol.ip.sip.address Fabrique d adresses : Analyse et construction d adresses URL jain.protocol.ip.sip.sipfactory: Fabrique pour construire l objet implantant la Pile et les autres fabriques d objets jain.protocol.ip.sip.sipstack Analyse les messages entrants et génère les évènements associés Gère les transactions et génére des événements timeout associés Les objets transactions ne sont pas directement accessibles par l application 47 48

Abstractions JAIN-SIP 2 Fabriques d objets jain.protocol.ip.sip.listeningpoint Correspond à l adresse de la pile (UDP/TCP) C est l adresse IP et le port à partir desquels la pile recoit et envoie les messages La pile peut être configurée pour un ou plusieurs Listeningpoint jain.protocol.ip.sip.provider Fournit des facilités pour le programme d application (sendrequest, sendresponse, sendack ) 49 SipFactory +getinstance +setpathname +createsipstack +createaddressfactory +createheaderfactory AddressFactory +createsipurl +createnameaddress crée MessageFactory +createrequest SipStack +createsipprovider +getlisteningpoints HeaderFactory crée +createfromheader +createtoheader +createviaheader +createcontenttypeheader +createcseqheader * SipProvider +addsiplistener +getnewcallidheader +sendack +sendrequest +sendresponse ListeningPoint +gethost +getport 50 JAIN SIP Object Architecture Abstractions JAIN-SIP 3 Fonction Initialisation Pile SIP createlistener() Event Registration Réseau SIP Listener SIP SIP Provider Stack Pile SIP Propriétaire getinstance() createprovider() SIP Factory createstack() jain.protocol.ip.sip.message.message Représente un message SIP Interface pour extraire le type, les entêtes et le contenu du message Interface pour construire un message jain.protocol.ip.header.header Représente une entête d un message SIP Entête général : inclus dans requête ou réponse Entête de requête Entête de réponse Entête d entité : decrit le corps du message SIP 51 52

Messages SIP L interface SipListener 1 Message +getcallidheader() +getbodyasstring() CallIdHeader +getcallid() : String Tout programme d applications JAIN-SIP doit implanter l interface jain.protocol.ip.sip.siplistener Un programme peut être client et serveur (proxy) Request +getmethod() : String MessageFactory +createrequest(uri, method, ) +createresponse(status, request,..) Response +getstatuscode() : int 53 public interface SipListener extends java.util.eventlistener { public void processresponse(sipevent responsereceivedevent); public void processrequest(sipevent requestreceivedevent); public void processtimeout(sipevent transactiontimeoutevent); } SipEvent représente une événement transmis à tous les listeners (accès identifiant transaction + message) 54 L interface SipListener 2 Séquence de messages <<interface>> SipListener +processrequest( :SipEvent ) +processresponse( :SipEvent ) +processevent( :SipEvent ) Abonné Notifie SipProvider +addsiplistener( :SipListener ) MonApplicationSip +processrequest( :SipEvent ) +processresponse( :SipEvent ) +processevent( :SipEvent ) SipEvent +gettransactionid() : long +getmessage() : Message 55 56

Squelette d applications JAIN-SIP 1 Squelette d applications JAIN-SIP 2 1. Creation d une instance de SIPFactory sipfactory = SipFactory.getInstance(); sipfactory.setpathname("gov.nist"); 2. Creation d une instance de pile SIP try { sipstack = sipfactory.createsipstack(); } catch(sippeerunavailableexception e) { System.exit(-1); } catch(sipexception e) { System.exit(-1); } 57 3. Création des fabriques d entête et de messages HeaderFactory headerfactory = sipfactory.createheaderfactory(); AddressFactory addressfactory = sipfactory.createaddressfactory(); MessageFactory messagefactory = sipfactory.createmessagefactory(); 4 Création d un provider associé à un port Listening listeningpoint = sipstack.createlisteningpoint(port,format); SipProvider sipprovider = sipstack.createsipprovider(listeningpoint); 58 Squelette d applications JAIN-SIP 3 Squelette d applications JAIN-SIP 3 5 Construction & envoi des messages 5.1 Construction des entêtes du message fromaddress = addressfactory.createsipurl("caller", sipprovider.getlisteningpoint().gethost()); fromaddress.setport(sipprovider.getlisteningpoint().getport()); fromnameaddress = addressfactory.createnameaddress ("Caller", fromaddress); fromheader = headerfactory.createfromheader(fromnameaddress); contenttypeheader = headerfactory.createcontenttypeheader("application", "sdp");... 59 5.2 Construction du message callidheader = sipprovider.getnewcallidheader(); cseqheader = headerfactory.createcseqheader(1,request.invite); invite = messagefactory.createrequest(requesturi, Request.INVITE, callidheader,cseqheader, fromheader, toheader, viaheaders); invite.setbody("b=32000", contenttypeheader); 60

Squelette d applications JAIN-SIP 4 5.3 Envoi de messages Squelette d applications JAIN-SIP 5 Traitement des requêtes (serveur, proxy) transactionid = sipprovider.sendrequest(invite); // Le résultat d une émission de requête est un identifiant de transaction. Une transaction est un échange de messages sipprovider.sendresponse( transactionid, Response.OK, strbody, «application!», «!sdp!»); // L émission d une réponse nécessite un identifiant de transaciton, le code statut de la réponse, le corps de la réponse, le type mime sipprovider.sendack( clienttransactionid ); // L emission d un accusé de réception nécessite un identifiant 61 public void processrequest(sipevent requestreceivedevent) { Request request = (Request)requestReceivedEvent.getMessage(); long servertransactionid = requestreceivedevent.gettransactionid(); try { if (request.getmethod().equals(request.invite)) processinvite(request,servertransactionid); else if (request.getmethod().equals(request.ack)).. } catch (SipParseException ex) { ex.printstacktrace(); } } 62 Squelette d applications JAIN-SIP 6 Transactions JAIN-SIP Traitement des réponses (client, proxy) public void processresponse(sipevent responsereceivedevent) { Response response = (Response)responseReceivedEvent.getMessage(); long clienttransactionid = responsereceivedevent.gettransactionid(); try { String method = response.getcseqheader().getmethod(); int statuscode = response.getstatuscode(); if((statuscode == Response.OK) && (method.equals(request.invite))) { sipprovider.sendack(clienttransactionid); } else... } catch(sipexception e) { } } 63 Une transaction SIP est constitué (RFC 2543) d une seule requête de zero, une ou plusieurs réponses provisionnelles D une ou plusieurs réponses finales Le protocole SIP fournit suffisamment d éléments dans les messages SIP pour extraire l identifiant de transaction JAIN-SIP identifie les transactions par un entier long Les transactions sont associés : En émission avec toutes les méthodes sipprovider.sendxxx En réception avec les évènements SipEvent des méthodes SipListener.processRequest(SipEvent) SipListener.processResponse(SipEvent) SipListener.processTimeout(SipEvent) 64

Transactions Client/Serveur Exemple : Third Party Call Control Server transaction Client transaction Server transaction Client transaction UAC Statefull proxy UAS 65 66 Conclusion Références Une technologie d avenir pour le développement de services de télécoms Communauté de développeurs en pleine expansion ( Mobicents, Open Cloud,...) Succés d implémentation chez de grands opérateurs (Vodafone, NTT DoCoMo, Telco, ) Articles sur JAIN dans IEEE Communications Magazine Programming Converged Network, John&Wiley Site de référence sur JAIN http://java.sun.com/products/jain/ Portail sur SIP http://www.sipcenter.org JAIN SIP Specification: http://jcp.org/jsr/detail/032.jsp NIST IP-Telephony Project page (NIST-SIP): http://is2.antd.nist.gov/proj/iptel 67 68

Travaux Pratiques (1) Etablissement d un circuit de transport voix sur IP Négociation de débit, calcul de durée de la com Travaux pratiques (2) : Déploiement Déployer et tester l architecture SIP en mode direct (sans proxy) en mode indirect (avec proxy) Proxy Sip Rtp Sip Sip UAC UAS Rtp 69 UAC UAS 70 Travaux pratiques (3) : Programmation Implanter la négociation de débit et le calcul de durée Groupe 1 de binômes développement de l Agent Utilisateur Client Groupe 2 de binômes développement de l Agent Utilisateur Serveur Implantation NIST de l API Jain-SIP Squelette de code JAVA à compléter Wapiti - Module A45 - Travaux Pratiques Voir afas.pdf pour Challenges et SLEE => MiddleWare Telecom API vs Protocol Définir Services de Telecom 71 72

Des systèmes fermés aux environnements ouverts Comparaison des conteneurs Circuit-Switched Soft-Switched Communications Enterprise P R O P R I E T A R Y Services & Applications Call Control & Switching Transport Hardware Solutions come from a single vendor that supplied everything in one proprietary box: software, hardware and applications Customers are locked-in to their vendor no room for innovation, expensive to implement and maintain Services, Applications & Features (Management, Provisioning and Back Office) Open Applications APIs Softswitch Call Control Open Protocols APIs Transport Hardware Solutions can come from multiple vendors, at all levels who supply open standards-based products Customers are free to choose bestin-class products to build their network. Open standards enable innovation and reduce costs 73 Invocations Components Data Sources Transactions Computation Mostly asynchronous Events, messages, protocol triggers Mapped to method invocations Light-weight fine-grained objects Short transient lifetimes Rapid creation, deletion Multiple data sources location, context information Provisioned data, cached from master copy Light-weight transactions For state replication demarcation Faster completion and more frequent Compute-intensive Main input and output are resource invocations, messages, events Mostly synchronous invocations Heavy weight data access objects Long persistent lifetimes Database servers Definitive master copy Back-end systems Database transactions Slower completion and less frequent Database access intensive 74