1 Session Initiation Protocol G.Vanwormhoudt 2 Préambule (1) • Evolution RTC (1ère gen) vers Réseaux Intelligents • Réseaux Intelligents – Introduction de l’informatique dans les réseaux téléphoniques avec pour objectif création de services à valeur ajoutée – Même fonctions dans le réseau téléphonique globale que le CTI (Computer Telephony Integration) dans l’entreprise • Centre d’appel, gestion téléphonie personnelle, messagerie unifié, filtrage des appels, … – Signalisation puissante et sophistiquée (SS7)
49
Embed
Pr ambule (1)snight.free.fr/r%E9visions%20bastien/R%E9seaux/R%E9seaux/A45/... · Signalisation sur IP ¥Ç La signalisation concerne lÕ ensemble des informations ... ÐR seau intelligent
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Session Initiation Protocol
G.Vanwormhoudt
2
Préambule (1)
• Evolution RTC (1ère gen) vers RéseauxIntelligents
• Réseaux Intelligents– Introduction de l’informatique dans les réseaux
téléphoniques avec pour objectif création de services àvaleur ajoutée
– Même fonctions dans le réseau téléphonique globaleque le CTI (Computer Telephony Integration) dansl’entreprise
•Centre d’appel, gestion téléphonie personnelle, messagerieunifié, filtrage des appels, …
– Signalisation puissante et sophistiquée (SS7)
3
Préambule (2)
• Irruption de la téléphonie sur les réseaux de données (IP)
• Quid des procédures de signalisations dans le monde IP ?
=> Next Generation Network
RéseauxIntelligents
RéseauxIP
Circuits Paquets
?
Applications Telecoms
4
Signalisation sur IP
• « La signalisation concerne l’ensemble des informationséchangés par les terminaux, les entités de contrôle et lesgateways participant à toutes les phase d’établissementde contrôle et de rupture de la connexion » [Susbielle99]
• Protocoles de signalisation existants– Réseau intelligent : SS7
– Réseau IP : H323, SIP, MEGACO, SIGTRAN
Sur IP, les échanges de signalisation se font au niveauapplicatif
=> pas de participations des routeurs et commutateurs
5
Généralités SIP
• Session Initiation Protocol– Internet Engineering Task Force
– RFC2543, RFC3261, RFC3262, RFC3263, RF3264, …
– Historique: 1997 (Columbia university), 1999 (SIP Working group)
• Protocole de signalisation applicatif (niveau 7) utilisé pourl’établissement, la modification et la terminaison de sessionsmultimédias sur Internet
• Applications– Téléphonie IP (fonctions analogues à SS7)
utilisateur, adresse contact) enregistrées dans le service delocalisation
– Egalement utilisé pour interroger le service de liaison (serveurproxy, redirection)
– L’agent utilisateur doit indiquer la durée de vie de la liaison
– L’agent utilisateur est également responsable du rafraichissementde la liaison
• Méthode OPTIONS– Permet d’obtenir des informations sur les capacités d’un agent
utilisateur ou d’un serveur sans avoir besoin d’établir une session
– Informations : méthodes supportées, extension, type contenu, ..
– Peut être émis en dehors ou à l’intérieur d’une session
21
Méthodes de requête2
• Méthode INVITE– Initie une session en invitant un agent utilisateur à une conférence
ou à simple appel
– Le corps du message contient généralement une description de lasession (utilisation de SDP: type de média audio, vidéo, data,format, codage en vigueur)
• Méthode ACK– Indique que l’appelant a reçu une réponse finale à l’invitation
– Le corps du message peut contenir la description finale de lasession (négociation des capacités)
– Un corps vide indique que la description du message Invite serautilisée
22
Méthodes de requête3
• Méthode CANCEL– Annule un requête (Invite) émise par l’appelant
– Requête « Hop-by-hop »
– Doit être utilisé après la réception d’une première réponse
– Utilisé par les serveurs proxy lors de recherches parallèles delocalisation
• Méthode BYE– indique à l’autre participant que la session doit se terminer
• Autres méthodes– UPDATE - mise à jour de la Session
– PRACK (RFC3262) - ACK for Provisional Responses
– SUBSCRIBE & NOTIFY (RFC3265) - Service de présence
23
Réponse SIP
Via:
From:
To:
Call-ID:
Cseq:
Content-Length
Content-Type:
Champ:
SIP/2.0/protocole hôte:port
username <sip:from_user@source>
username <sip:to_user@destination>
localid@hôte
numéro_seq méthode
longueur du corps
type de média du corps
paramètre ;par1=valeur; par2= valeur
ligne vide
V=0
o= user_origine timestamp timestamp IN IP4 hôte
c=IN IP4 média adresse_destination
t=0 0
m= type_média port RTP/AVP types_payload
typeréponse
en-têtemessage
corpsmessage
SIP/2.0 status reason-phrase
24
Statut des réponses
• 1xx : information sur le traitement des requêtes– 100 trying, 180 ringing
• 2xx : succès– 200 Ok
• 3xx : redirection– 300 multiples choices, 302 moved temporarily
• 4xx : erreur client– 401 unauthorized, 404 not found
• 5xx : erreur serveur– 501 not implemented, 503 service unavailable
– Le jour suivant, Bob configure son poste de labo pour qu’il redirigeautomatiquement l’appel vers son adresse chez lucent, oubliant lesenregistrements précédents
– Le serveur SIP de Lucent localise l’adresse courante de bob (5) etretransmet donc l’appel à [email protected] (6)
– Le Service SIP de Columbia détermine qu’il existe deux adressespossibles (7) et diffuse l’appel (i.e « fork ») vers celles-ci (8,9)
– Le poste de labo selon sa configuration redirige l’appel vers leserveur SIP de Lucent qui détecte une boucle et retourne une erreur(10,11)
– L’erreur est propagée par le poste au serveur SIP de Columbia (12)
– Dans le même temps, Bob a répondu à l’appel depuis son bureau(13)
44
Exemple de scénario possibleavec SIP4
– Le serveur SIP de Columbia a maintenant les deux réponses etpeut retourné l’acceptation de l’appel au Serveur SIP de Lucent(14) qui fait de même vers l’agent de jack (15)
– A ce stade, Les serveurs peuvent détruire les états liés à l’appelJack et Bob communique directement sans passer par les serveursintermédiaires (16)
• Caractéristiques de SIP mises en évidence par ce scénario– Forking
– Mobilité utilisateur
– Détection de boucle
45
Programmation de services SIP1
" Solutions suggérées par l’IETF– SIP Call Processing Language ( SIP – CPL )
• Langage de scripts pour décrire des services d’appels
• Syntax XML, extensible, éditable// Script qui intercepte les appels anonymes
– SIP Servlet– similaire aux servlets HTTP - même propriété
– Encapsulation des messages SIP dans des objets Java, Multi-threading
– Portabilité entre les OS et les serveurspublic class RejectServlet extends SipServletAdapter {
public boolean doInvite(SipRequest req) {
SipResponse res = req.createResponse();
res.setStatus(603);
res.send();
return true;
}
}
– Autre effort : JAIN (cf suite du cours)
48
Passerelle PSTN <-> SIP (1)
Telephone
networkSIP/PSTN gateway
SIP server IP endpointTelephonesubscriber
+1 212 9397063
#Traduction audio (PCMU/PCMA)
#Traduction du signal (PRI/T1,ISUP)#Overlap signaling
#Perte des caractéristiques avancées de SIP in PSTN
#Traduction des identifiers (numéro tel.)#1-212-939xxxx => @itgw1.cs.columbia.edu
49
Passerelle PSTN <-> SIP (2)
Au debut de la communication lapasserelle reçoit ISUP (Protocole designalisation) du PSTN et emploiel'encapsulation et la traduction dans
les messages SIP envoyés au traversdu réseau VoIP. Pour le proxyl’utilisation du contenu de l'ISUP estdonc ignoré et seulement le contenude SIP est transféré au téléphone
SIP.
50
Agents SIP existants
EZ-Phone Ubiquity SIP Phone
51
Conclusion sur SIP
• Autres aspects de SIP non abordés– Sécurity (Authentification, cryptage d’entête, du contenu)
– Qualité de services• Pas de réservation des ressources
• Combinaison avec d’autres protocoles: RSVP, COPS (SDP)
– Présence (SUBSCRIBE, NOTIFY méthodes, ...)
– Préférences d’appels• Essayer vidéophone d’abord, ensuite le téléphone, enfin la
messagerie
• Extension du champ CONTACT
– Conference, Facturation
• Plus d’infos sur– http://www.cs.columbia.edu/sip
– http://www.sipcenter.com
52
JAIN - SIP
Gilles Vanwormhoudt
53
Java API for IntegratedNetworks1
• JAIN est un ensemble d’API Java pour le développementrapide de produits/services de télécoms de la prochainegé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 descapacités du réseaux aux applications Java
• 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 unearchitecture ouverte où les services peuvent être rapidement créés etdéployés, peu importe la plateforme et le réseau
54
JAIN2
55
Architecture de JAIN
56
Couches d’abstraction JAIN
IPWirelessTelecomm.
SS7 avecapplications
mobiles (MAP)
Mobile SwitchingCenter (MSC)
Base stationcontroller, Home
LocationRegister,...
SIP,MGCP,
Megaco, H323
Réseauintelligent, SS7,
ISUP, TCAP
Couche
réseau
Proxy, Redirect,H323
Gatekeeper, ...
Signaling ServicePoint (SSP)
Couche
signalisation
Serveurd’applications
Internet
Service
Control Point(SCP)
Couche service
57
APIs JAIN1
58
APIs JAIN2
59
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 auxservices 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 descommunications avec différents protocoles IP
– Protocoles supportés : H323, MGCP, SIP
60
Principes Architecturauxde JAIN Protocol API
Application
Listener
Event
Provider
Stack
Protocol Stack
JAIN
Protocol
Layer
61
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 dessessions 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 traitementdes paramètres d’appels
• 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, …
• Fournit des fonctionnalités communes– Transaction, persistence, régulation de charge, sécurité …
• Facilite le déploiement dynamique de services, leuradministration et leur maintenance
• Fournit une interface JAIN Parlay pour les services àl’extérieur du réseau (untrusted services)
66
JAIN SLEE : Service LogicExecution Environnement2
67
JAIN SLEE : Service LogicExecution Environnement3
68
JAIN et SIP
• 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– API pour programmer
des servlets SIP
69
JAIN-SIP
• Interface JAVA standard qui encapsule une pilede signalisation SIP
• Spécification JSR - SUN
• Historique: JSR Approval 1999, Final Aout
• Spécification actuelle : 1.2
• Offre les abstractions du protocole SIP sous-forme d’objets JAVA
• Permet à une application/une servlet ou un beand’embarquer un pile SIP et d’accéder à desfonctionnalités d’appel de bas niveau.
70
JAIN-SIP
• Simplifie la construction des entités SIP– Agents Utilisateurs,
– Serveurs Proxy, Serveur de redirection
• JAIN SIP peut être utilisé dans un agentutilisateur ou un proxy
• Garantit la portabilité des applications entre pileJAIN-SIP via la définition des interfaces et lecomportement à l’exécution (TCK test suite)
71
Architecture de JAIN-SIP
SIPListeners
SIPProvider SIPProvider
SIPStack SIPStack
SIPListeners
Réseau
EvénementsMessages SIP Messages SIP Evénements
Agent Client Agent Serveur
72
Responsabilités de l’application
• L’application doit utiliser l’interface du provider pour tousaccès à la pile (pas d’accès directe aux couches sous-jacentes)
• L’application doit enregistrer auprès de la pile un ouplusieurs objets implantant l’interface SipListener
• L’application est notifiée de l’arrivée de message SIP, elleest responsable des réponses
• Pour une mode sans état, l’application est responsable dutraitement de retransmission en cas de timeout lié à unmessage
73
Responsabilités de la pile
• Offre des méthodes pour formater et envoyer desmessages SIP
• Analyse les messages SIP entrants et en construit unreprésentation sous forme objets que l’application peutaccéder et modifier à travers des interfaces Javastandardisés
• Invoque les gestionnaires d’événements de l’applicationquand un événement intéressant se produit
• Fournit le support des transactions
• Gère les transactions et les dialogues pour l’application