Voix sur IP H248 H323 SIP IAX2
VOIP
VoIP Trois fonctions de base Contrôle de la communication ( établissement et relâchement) Négociation des possibilités audio et video Transport voix/vidéo/données D’autres fonctions plus ou moins développées Annuaire localisation Authentification Garantie de Qos
VoIP Contrôle d ’appel Généralement en TCP On connaît Q931 ISUP pour le téléphone ( Setup, call proceeding) Négociation de possibilités Audio :codec G.711, G723.1,G729 Video :codec H261,H263, H264 Données Fax T38 T120 Transport On utilise RTP sur UDP pour le transport ( et RTCP pour le contrôle de flux) On peut buffériser pour masquer les variations du réseau mais au dessus de 0,2 s il y a gène Pour garantir le service il faut de la Qos ou avoir de la bande passante toujours disponible.
RTP/RTCP RTP au dessus d’UDP va comporter les informations nécéssaires pour reconstituer le flux L’entête RTP comporte principalement les champs : Payload type ( audio,video,image, texte,html…) Sequence number Timestamp Ssrc : la source de synchronisation Csrc : la (les) source(s) de contribution Un flux RTP ne concerne qu’un payload type Un flux RTP peut être mixer par une SSRC pour comporter plusieurs fluxs de Csrc différentes Les paquets RTCP sont transmis périodiquement Ils comportent principalement des comptes rendus sur les fluxs ( jitter, taux de perte, délai)
H323 Ensemble de protocole de transport de la voix et de la vidéo sur un réseau IP ( H320 sur RNIS)
H323 Étapes d’un appel H.323 H.225-SIG (port TCP 1720) : ouverture d’un canal de signalisation initialisation des appels H.245 (port TCP > 1024) : ouverture d’un canal de contrôlenégociation des médias échangés entre terminaux RTP/RTCP (ports UDP > 1024) : ouverture des canaux logiques pourles données transport et contrôle de l’audio et de la vidéo T.120 (port TCP 1503) : ouverture d’un canal pour le partage d’applications L’information d’adresse et le numéro des ports sont transmis comme des données. Il y a donc un problème avec un NAT classique.
Voip > H323 dispositifs Une gateway est une passerelle qui fait l’interface entre le réseau téléphonique et le réseau IP Une gateway est donc plutôt un matériel Un gatekeeper assure la gestion des autorisations, la résolution des adresses, l’administration de la bande passante et la gestion des gateways Le gatekeeper remplace le PABX et peut n’être qu’un logiciel Adaptateur ATA : adapte un téléphone classique en téléphone IP Un MCU multipoint control unit : permet des conférences multipoint.
Voip > H323 gatekeeper Le gatekeeper est essentiel dans une installation importante On peut établir une liaison H323 Sans passer par le gatekeeper En s’en servant comme un annuaire En lui délégant toute la partie contrôle ( la communication s’effectuant toujours directement) Le terminal s’enregistre auprés du gatekeeper Il le découvre par multicast « gatekeeper request » 224.0.1.41 port1718 Demande GR, réponse GCF Ensuite il s’enregistre H.225-RAS (port UDP 1719) Demande RRQ fournissant l’IP du terminal, réponse RCF
Voip > H323 Gatekeeper Le terminal demande un appel au GK Demande ARQ( admission request ) Numéro de séquence Type d’appel ( point à point, multipoint Mode d’appel : direct, via le gatekeeper information sur la destination Une valeur à recopier dans le setup (CRV) Un identificateur d’appel (callid) Une estimation de la bande passante réponse ACF (admission confirm) Mode d ’appel retenu Adresse de transport Port de signalisation ( d’une passerelle ou du gatekeeper ) Bande passante
VoIP H323 Gatekeeper On peut maintenant faire l’appel Directement ( déjà vu) Soit via le gatekeeper Un gatekeeper est enregistré dans les tables du fournisseur. Entre domaines ce sont donc les gatekeepers qui effectuent la localisation. Appel Location request (LRQ) Demande de l’adresse Ip du correspondant Réponse Location confirm (LCF)
H323 exemple NAT Le gatekeeper maintient des associations adresse/alias 192.168.1.15 pierre@xx.com 192.16.1.10 valerie@xx.com …. Le dialogue des postes avec le gatekeeper se fait suivant RAS (registration, admission, status). Un poste externe 64.58.79.231 Joseph@yy.com assure une session netmeeting que veut joindre valerie.
H323 exemple NAT Appel H225 par un paquet TCP au gatekeeper qui relait vers le pare feu header(192.168.1.1/2427| 64.58.79.231/1720) Message 192.168.1.1/2427, valerie@xx.com Un pare feu classique se contente de modifier le header Header(205.10.10.10/10000|64.58.79.231/1720) Joseph tentera d’appeler suivant les indications du corps de message une adresse inatteignable. Il faut que le pare feu modifie aussi le corps des messages De même la transmission audio et vidéo va se faire en UDP avec les indications de retour contenues dans le message, le pare feu doit reconnaître qu’une communication est engagée, changer le corps du message, laisser le numéro de port choisi ouvert pour Joseph durant la communication.
SIP Session initiation protocol Protocole de haut niveau similaire à http faisant communiquer des agents d’adresse : nom@domaine ou E164 Commande Verbe + paramètres (façon http: param= valeur) Réponse Code ( ex 200 :OK) L’appel SIP est à l’origine très simple Message INVITE avec les caractéristiques de l’appel Réponse 180 ringing ( réponse provisoire) Réponse 200 OK ( réponse finale) Message ACK C’est tout, l’appel est établi Déconnexion : message bye, réponse OK Cette simplicité est apparente
SIP
Plus exactement le format de la commande est Verbe URIdestinataire versionSIP Paramètres d’entête Ligne vide Corps de message (contenu sdp de description de session par exemple) La réponse étant versionSIP code motifenclair Paramétres d’entête Corps de message
SIP paramètres Call-ID :corrélation entre demande et réponse Cseq (numéro de séquence + nom de méthode) :le numéro de séquence est incrémenté à chaque nouvelle requète From,to : obligatoires,recopiés dans les réponses Via :définition de route Content-Type :type de corps de message
SIP >SDP SDP n’est pas spécifique à SIP Il décrit la session parfois de façon redondante avec SIP v=0 Version = 0 o=titi 566665666 5 IN IP4 128.3.4.5 Origine = user num session version adresse S= superimportant Nom de session i= message intéressant Description de la session C=IN IP4 135.180.144/127 connexion= adresse/TTL M=audio 49710 RTP/AVP 0 Media = type, port, protocole, 0= codec audio log NB : RTP aura le port 49710 UDP et rtcp le port 49711 M=video 49232 RTP/AVP 31
SIP> SDP Proposition de l’appelant sur INVITE : m=audio 49170 RTP/AVP 0 8 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 m=video 49172 RTP/AVP 32 a=rtpmap:32 MPV/90000 L’appelant propose un codec audio avec deux attributs PCM loi µ ou PCM loi A et un codec video Réponse : m=audio 60000 RTP/AVP 0 8 m=video 0 RTP/AVP 32 D’accord pour le codec audio avec l’option PCM loi A Pas d’accord avec la video ( mise du port à 0)
SIP La commande ACQ n’a pas d’acquittement Introduction PRACK avec acquittement Il n’y a pas de négociation de caractéristiques Il faut un équivalent de H245 c’est la RFC3264 avec un modèle proposition/réponse utilisant SDP Renégociation, redirection SIP d’origine ne sait le faire qu’avec un nouvel INVITE ce qui change l’état de la communication Introduction d’une méthode UPDATE Notifications d’évenement Pour transporter les tonalités DTMF et la messagerie instantanée
SIP > messages Les messages de requête sont Register ( de l’adresse) Invite (setup) Bye ( d’un appel établi) Cancel ( d’une demande en cours) Ack ( réponse à invite) Options Prack Update Les messages de réponses sont similaires à http (ex : 200 OK, 404 not found) ou spécifiques ( 180 ringing). Ils sont divisés en 4 catégories Informational Successfull Redirection ( le destinataire a changé d’adresse) Failure ( client, server ou global)
SIP Sip distingue entre les clients (UAC) et les serveurs (UAS) Serveur de délégation ( proxy) Outbound proxy ( un peu le gatekeeper ) Proxy stateless (relais transparents) Proxy stateful ( garde la trace des transactions, gére les retransmissions et les acquitements) Location server ( DNS ou LDAP) Registrar server Un client s’enregistre (demande register) au registrar server NB : Découverte du registrar par 224.0.1.75 A partir de ce moment le client peut être joint ou qu’il soit grâce au mécanisme de redirect server Un client envoit au proxy une demande d’appel, celui-ci consulte le location server et route l’appel Sip utilise les ports 5060 en UDP et TCP, il pose problème derrière un NAT car il utilise l’adresse IP dans le message Intégre SIMPLE pour la messagerie instantanée mais aussi souvent jabber On reverra SIP avec IMS (ip media subsystem) perso.ens-lyon.fr/jean-patrick.gelas/education/exposes/04-sip.ppt
VoIP > MGCP MEGACO/H248 SI H323 et SIP sont comparables, MGCP répond à un besoin tout différent : la séparation physique de la fonction de commande et d’éxécution C’est un protocole client-serveur La passerelle entre téléphonie et voix IP est sans intelligence , celle-ci est reporté sur un controleur de passerelle Media gateway controler Le protocole MCCP MEGACO/H248 définit les échanges Une freebox est MGCP MGCP
VoIP > MGCP Un call agent contrôle une media gateway ( MG) ayant des endpoints et des « signaling gateway » dans le cas de la connexion au réseau téléphonique Habituellement sur UDP 2427, les datagrammes sont des messages en clair de commande ou de réponse Il y a 8 verbes de commande CRCX - Create Connection ( entre deux endpoints en utilisant SDP pour déterminer leurs caractéristiques) MDCX - Modify Connection DLCX - Delete Connection RQNT - Request for Notification ( requète de signaler un évenement) NTFY - Notify ( information sur un évenement de la part d’une MG) AUEP - Audit Endpoint (état ?) AUCX - Audit Connection ( paramètres ? ) RSIP - Restart In Progress ( Une MG signale que des endpoints sont hors service) Une commande est sous la forme Verbe, num de transaction, nom du endpoint, version de protocole Les réponses sont sous forme numérique 200 OK
MGCP > softswitch Dans la partie voix d’un réseau UMTS on préconise des softwtchies à partir de rel4 On découple softswitch (Mobile switch controler (MSC server)) et media gateway La MGW est commandée par le MSC server via H248/Megaco
MGCP > softswitch Pour la signalisation la commande se fait par SCTP (stream control transmission protocol)
SCTP Sctp ressemblerait à TCP mais permet le multihoming, (adresses IP multiples) à un mode de connexion en 4 temps distingue plusieurs flots (streams) dans une connexion ( association) est orienté message ( 1 write =1 envoi) À une déconnexion plus simple que TCP http://www-128.ibm.com/developerworks/linux/library/l-sctp/?ca=dgr-wikiaSCTP
SCTP > association Chaque chunk a un type (15 types de base) 0 payload data 1 init 2 init ack … 10 cookie echo 11 cookie ack Pour créer une association le client envoie un chunk init Le serveur l’acquitte avec un cookie qui contient une clé d’authentification (seul le client possède donc le cookie et pas un attaquant éventuel) Sur cookie écho vérifiée l’association est réalisée ( et c’est seulement à ce moment que les ressources sont réservées)
SCTP > multi-streaming Le chunk data comporte Un numéro de stream Un numéro de séquence Trois flags U unordered stream B fragment début E fragment fin
Asterisk logiciel libre PBX complet avec passerelle SIP et H323 Supporte aussi le protocole propriétaire CISCO SCCP ( cisco skynny client control protocol) A un protocole propre IAX qui utilise seulement le port UDP 4569 pour le contrôle et les données
Postes IP Les téléphones IP ( comme les bornes WIFI, les caméras de video surveillance ) doivent être alimentés en 48V DC Les commutateurs de l’entreprise doivent être PoE (power on ethernet) 802.3af Il faut aussi mettre des onduleurs partout
Bibliographie http://www.voipplanet.com/ http://www.tech-invite.com/ http://www.voip-info.org/