HiPath 3000V6/ 2000V1 Février 2006 1 P.1
Introduction Session Initiation Protocol (dont le sigle est ) est un protocole normalisé et standardisé par l'ietf (décrit par le RFC 3261 qui rend obsolète le RFC 2543) qui a été conçu pour établir, modifier et terminer des sessions multimédia. Il se charge de l'authentification et la localisation des multiples participants, de la négociation sur les types de média utilisables par les différents participants en encapsulant des messages SDP (Session Description Protocol). ne transporte pas les données échangées durant la session comme la voix ou la vidéo. étant indépendant de la transmission des données, tout type de données et de protocoles peut être utilisé pour cet échange. Cependant le protocole RTP (Real-time Transport Protocol) assure le plus souvent les sessions audio et vidéo. remplace progressivement H323. est le standard ouvert de VoIP (Voice Over IP, voix sur IP) interopérable le plus étendu et vise à devenir LE standard des télécommunications multimedia (son, image, etc.). n'est donc pas seulement destiné à la VoIP mais pour de nombreuses autres applications telles que la visiophonie, la messagerie instantanée, la réalité virtuelle ou même les jeux vidéo. HiPath 3000V6/ 2000V1 Février 2006 2 P.2
Introduction Couches ISO Application Équipement Audio/vidéo Niveau 7 Call transfert Call control Audio Vidéo Niveau 6 SDP Session Description Protocol Niveau 5 Session Initiation Protocol RTP Real-Time Transport Protocol Niveau 4 TCP / TLS Transmission Control Protocol Transport Layer Security Protocol UDP User Datagram Protocol Niveau 3 IP Internet Protocol Niveau 2 HiPath 3000V6/ 2000V1 Février 2006 3 P.3
Introduction - Architecture Server Gateway ISDN Proxy Server Location Server Gateway GSM UMTS Redirect Server Registrar Server Gateway H323 Réseau UA Téléphone UA PC UA Media Server HiPath 3000V6/ 2000V1 Février 2006 4 P.4
Bases Les codes de réponse sont similaires à HTTP. L architecture des messages est basée sur SMTP. Les contenus de message sont de type MIME. Enfin l adressage est de type URL. HiPath 3000V6/ 2000V1 Février 2006 5 P.5
Les codes de réponse 1xx = Information - La requête a été reçue et continue à être traitée 100 Trying 180 Ringing 181 Call is being Forwarding 2xx = Succès - L action a été reçue avec succès, comprise et acceptée 200 Ok 3xx = Redirection - Une autre action doit être menée afin de valider la requête 300 Multiple choices 301 Moved Permanently 302 Moved Temporarily 4xx = Erreur du client - La requête contient une syntaxe éronnée et ne peut pas être traitée 400 Bad Request 401 Unauthorized 403 Forbiden 407 Authentication Required 408 Request timeout 480 Unavailable 482 Loop detected 486 Busy 5xx = Erreur du serveur - Le serveur n a pas réussi à traiter une requête apparemment correcte 500 Internal Server Error 6xx = Echec général - La requête ne peut être traitée par aucun serveur 600 Busy everywhere 603 Decline 606 Not Acceptable HiPath 3000V6/ 2000V1 Février 2006 6 P.6
User Agents Les User Agents désignent les agents que l'on retrouve dans les téléphones : Les softphones (logiciels de téléphonie sur IP) des ordinateurs PDA Les passerelles En théorie, on peut établir des sessions directement entre deux User Agents, deux téléphones par exemple. Mais cela nécessite de connaître l'adresse IP du destinataire. Cela n'est pas l'idéal car une adresse IP peut ne pas être publique (derrière un NAT) ou changer et elle est bien plus compliquée à retenir qu'une URI. Les User Agents peuvent donc s'enregistrer auprès de Registrars pour signaler leur emplacement courant, c'est à dire leur adresse IP. HiPath 3000V6/ 2000V1 Février 2006 7 P.7
Le registrar Le Registrar est un serveur qui gère les requêtes REGISTER envoyées par les Users Agents pour signaler leur emplacement courant. Ces requêtes contiennent donc une adresse IP, associée à une URI, qui seront stockées dans une base de données. Les URI sont très similaires à des adresses email : sip:utilisateur@domaine.com Généralement, des mécanismes d'authentification permettent d'éviter que quiconque puisse s'enregistrer avec n'importe quelle URI. Base de données ( Location server) HiPath 3000V6/ 2000V1 Février 2006 8 P.8
Le Proxy Un Proxy sert d'intermédiaire entre deux User Agents qui ne connaissent pas leurs emplacements respectifs (adresse IP). En effet, l'association URI-Adresse IP a été stockée préalablement dans une base de données par un Registrar. Le Proxy peut donc interroger cette base de données pour diriger les messages vers le destinataire. Le Proxy se contente de relayer uniquement les messages pour établir, contrôler et terminer la session. Une fois la session établie, les données, par exemple un flux RTP pour la VoIP, ne transitent pas par le serveur Proxy. Elles sont échangées directement entre les User Agents. HiPath 3000V6/ 2000V1 Février 2006 9 P.9
Le proxy HiPath 3000V6/ 2000V1 Février 2006 10 P.10
Le Redirect Server Un Redirect Server est en général intégré au proxy. Lorque le Proxy recoit une demande de connection vers utilisateur_b@domaine.com, il va interroger le Location Server afin de déterminer l adresse IP de B, mais le Location Server renverra ne renverra pas l adresse IP de B, mais une autre adresse où le joindre. Le Redirect Server renverra à l utilisateur B l adresse de B; un message 302 Moved Temporarily, par exemple, avec l adresse la nouvelle adresse. HiPath 3000V6/ 2000V1 Février 2006 11 P.11
Le Redirect Server HiPath 3000V6/ 2000V1 Février 2006 12 P.12
Appel direct simple HiPath 3000V6/ 2000V1 Février 2006 13 P.13
Requête PRACK Sans accusé de réception des message intermédiaires A invite B. B envoi un «180» mais sera perdu. A recoit un OK mais sans message «180». La sonnerie est perdue. A B Avec accusé de réception des message intermédiaires A invite B. A recoit un OK mais sans message «180». A n ayant pas envoyé de «PRACK», B renvoi «180». A envoi «PRACK» pour accusé réception du «180». A B HiPath 3000V6/ 2000V1 Février 2006 14 P.14
Requête INFO Cette requête est destinée à pouvoir envoyer des message à titre informatif durant une conversation sans altérer celle-ci. Par exemple, si on souhaite faire de la supervision, le PABX peut envoyer ces type de requêtes. HiPath 3000V6/ 2000V1 Février 2006 15 P.15
Requête MESSAGE Cette requête est destinée à pouvoir envoyer des message textuels, de la messagerie instantanée, par exemple. Cette requête n altère en rien la communication. Bonjour HiPath 3000V6/ 2000V1 Février 2006 16 P.16
Négociation des fonctionnalités Il s agit d une négociation sur les fonctionnalités de chacun, afin de déterminer si l établissement d une communication est possible. Les fonctionnalités peuvent concerner aussi bien des codecs pour une communication vocale ou vidéo que la présence de logiciels adéquates pour un jeu, etc Require : Fontionnalité obligatoires Supported : fonctionnalités optionnelles HiPath 3000V6/ 2000V1 Février 2006 17 P.17
Détail entête de message INVITE sip:w.h@200.201.202.203 /2.0 Via: /2.0/UDP proxy.munich.de:5060;branch=82.1 Via: /2.0/UDP 100.101.102.103:5060 Max-Forwards: 70 To: Heisenberg <sip:w.heisenberg@munich.de> From: E. Schroedinger <sip:schroed5244@aol.com> Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:schroed5244@100.101.102.103 Content-Type: application/sdp Content-Length: 159 Il s agit de la première ligne d un mesage qui contient : la méthode ou le type de requête : INVITE : requête d invitation, le destinataire : sip:wh@200.201.202.203 et la version du protocole : /2.0 HiPath 3000V6/ 2000V1 Février 2006 18 P.18
Détail entête de message INVITE sip:w.h@200.201.202.203 /2.0 Via: /2.0/UDP proxy.munich.de:5060;branch=82.1 Via: /2.0/UDP 100.101.102.103:5060 Max-Forwards: 70 To: Heisenberg <sip:w.heisenberg@munich.de> From: E. Schroedinger <sip:schroed5244@aol.com> Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:schroed5244@100.101.102.103 Content-Type: application/sdp Content-Length: 159 L entête VIA permet de préciser par quelle route le message doit revenir. Le retour se fera dans l ordre inverse de la liste des VIA HiPath 3000V6/ 2000V1 Février 2006 19 P.19
Détail entête de message INVITE sip:w.h@200.201.202.203 /2.0 Via: /2.0/UDP proxy.munich.de:5060;branch=82.1 Via: /2.0/UDP 100.101.102.103:5060 Max-Forwards: 70 To: Heisenberg <sip:w.heisenberg@munich.de> From: E. Schroedinger <sip:schroed5244@aol.com> Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:schroed5244@100.101.102.103 Content-Type: application/sdp Content-Length: 159 C est le nombre maximum de Proxy que le message doit traverser Ce nombre est décrémenté à chaque passage dans un proxy, ainsi, lorsque le nombre arrive à 0, le proxy renvoi un message «483 Too many hops». Utilisé pour la détection de boucles. HiPath 3000V6/ 2000V1 Février 2006 20 P.20
Détail entête de message INVITE sip:w.h@200.201.202.203 /2.0 Via: /2.0/UDP proxy.munich.de:5060;branch=82.1 Via: /2.0/UDP 100.101.102.103:5060 Max-Forwards: 70 To: Heisenberg <sip:w.heisenberg@munich.de> From: E. Schroedinger <sip:schroed5244@aol.com> Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:schroed5244@100.101.102.103 Content-Type: application/sdp Content-Length: 159 Comme dans un mail, To et From correspondent à l adresse et nom du destinataire et le l envoyeur Call-ID est un identifieur de l appel, c est un numéro unique suivi de l adresse IP ou du nom d hôte (hostname) de le personne qui a initié l invitation. HiPath 3000V6/ 2000V1 Février 2006 21 P.21
Détail entête de message INVITE sip:w.h@200.201.202.203 /2.0 Via: /2.0/UDP proxy.munich.de:5060;branch=82.1 Via: /2.0/UDP 100.101.102.103:5060 Max-Forwards: 70 To: Heisenberg <sip:w.heisenberg@munich.de> From: E. Schroedinger <sip:schroed5244@aol.com> Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:schroed5244@100.101.102.103 Content-Type: application/sdp Content-Length: 159 CSeq est un numéro de séquence, à chaque message le nombre est incrémenté. Utilisé pour distingué si c est une nouvelle requête. HiPath 3000V6/ 2000V1 Février 2006 22 P.22
Détail entête de message INVITE sip:w.h@200.201.202.203 /2.0 Via: /2.0/UDP proxy.munich.de:5060;branch=82.1 Via: /2.0/UDP 100.101.102.103:5060 Max-Forwards: 70 To: Heisenberg <sip:w.heisenberg@munich.de> From: E. Schroedinger <sip:schroed5244@aol.com> Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:schroed5244@100.101.102.103 Content-Type: application/sdp Content-Length: 159 Contact contient l URI pour une communication directe entre les deux UA HiPath 3000V6/ 2000V1 Février 2006 23 P.23
Détail entête de message INVITE sip:w.h@200.201.202.203 /2.0 Via: /2.0/UDP proxy.munich.de:5060;branch=82.1 Via: /2.0/UDP 100.101.102.103:5060 Max-Forwards: 70 To: Heisenberg <sip:w.heisenberg@munich.de> From: E. Schroedinger <sip:schroed5244@aol.com> Call-ID: 105637921@100.101.102.103 CSeq: 1 INVITE Contact: sip:schroed5244@100.101.102.103 Content-Type: application/sdp Content-Length: 159 Content-Type correspond au type de contenu du body, exemple : application/sdp : donnée de communication text/plain : texte brut (message instantané) file/jpg : image Content-Length est la taille en octet du «body» HiPath 3000V6/ 2000V1 Février 2006 24 P.24
SDP Session Description Protocol Décrit la session de média (codecs utilisés, etc ) Apparaît dans le «body» du message tel un mail Protocol basé sur du texte Défini par la RFC 2327 v=0 o=tesla 289084526 28904526 IN IP4 lab.high-voltage.org s=c=in IP4 100.101.102.103 t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 HiPath 3000V6/ 2000V1 Février 2006 25 P.25
Détail corps de message v=0 o=tesla 289084526 28904526 IN IP4 lab.high-voltage.org s=c=in IP4 100.101.102.103 t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 V O S C T M A Numéro de version (non utilisé par ) Origine (utilisé que par ) Sujet (ignoré par ) Données de connection (adresse IP) Heure (ignoré par ) Media (type, port, RTP/AVP Profile) Attribute (profile, codec, sampling rate) HiPath 3000V6/ 2000V1 Février 2006 26 P.26
Sécurité permet d utiliser des protocoles d encryption standard : Authentification HTTP : Sécurisation de la signalisation IPsec : Encryption niveau 2; tunnel VPN monté entre chaque entité : les adresse IP sont encryptées. TLS : Encryption niveau 3; hormis les adresses IP, toutes les couches supérieures sont encryptées SRTP : Encryption niveau 4, cryptage des flux audio/vidéo S/MIME : Encryption niveau 5; cryptage du contenu des messages HiPath 3000V6/ 2000V1 Février 2006 27 P.27
avec SRTP et S/MIME Exemple de requête encrypté S/MIME : Requête INVITE sip:bob@biloxi.example.com /2.0... Content-Type: application/pkcs7-mime Content-Disposition: session $ Content-Type: application/sdp $ $ < encrypted SDP with key for SRTP > Réponse 200 OK... Content-Type: application/pkcs7-mime Content-Disposition: session $ Content-Type: application/sdp $ $ < encrypted SDP with key for SRTP > Le flux média est direct entre chaque UA, SRTP encryptera ce flux. HiPath 3000V6/ 2000V1 Février 2006 28 P.28
Services de base Conversations vocales Fonctionnalités avancées : Renvoi d appel, transfert, autorisation, black/white lists Conférences vidéo, messagerie instantanée, jeux, etc Applications sans limites HiPath 3000V6/ 2000V1 Février 2006 29 P.29
Comparaison / H323 Nombre échanges pour établir la connexion Maintenance du code protocolaire Evolution du protocole Fonction de conférence Fonction de téléservices Détection d'un appel en boucle Signalisation multicast 1,5 aller-retour Distribuée Oui, par défaut Oui Oui, par défaut Simple par sa nature textuelle à l'exemple de Http Protocole ouvert à de nouvelles fonctions Complexe et nécessitant un compilateur Ajout d'extensions propriétaires sans concertation entre vendeurs Centralisée par l'unité MC H.323 v2 + H.450 Inexistante sur la version 1 un appel routé sur l'appelant provoque une infinité de requêtes Non H323 6 à 7 aller-retour HiPath 3000V6/ 2000V1 Février 2006 30 P.30
Programmation d un OptiPoint HiPath 3000V6/ 2000V1 Février 2006 31 P.31
Programmation d un OptiPoint Paramètres de base - HiPath HiPath 3000V6/ 2000V1 Février 2006 32 P.32
Programmation d un OptiPoint Paramètres de base - HiPath A cocher seulement si le poste IP a une adresse IP qui ne change jamais HiPath 3000V6/ 2000V1 Février 2006 33 P.33
Programmation d un OptiPoint Paramètres de base - OptiPoint HiPath 3000V6/ 2000V1 Février 2006 34 P.34
Programmation d un OptiPoint Paramètres de base - OptiPoint HiPath 3000V6/ 2000V1 Février 2006 35 P.35
Programmation d un OptiPoint Paramètres avancés - OptiPoint HiPath 3000V6/ 2000V1 Février 2006 36 P.36
Programmation d un OptiPoint Paramètres avancés - OptiPoint HiPath 3000V6/ 2000V1 Février 2006 37 P.37
Programmation d un client HiPath 3000V6/ 2000V1 Février 2006 38 P.38
Programmation d un client Activer Username = Authorization = N interne Facultatif Proxy = HG1500 Supprimer le serveur STUN HiPath 3000V6/ 2000V1 Février 2006 39 P.39