Voix sur IP

Transcription

Voix sur IP
Voix sur IP
André-Luc Beylot
Département Télécoms et Réseaux
ENSEEIHT
Plan
n
n
n
Introduction
RTP/RTCP
Les protocoles de signalisation :
u
u
u
n
SIP
H.323
MGCP/Megaco
Conclusion
2
Introduction : Que pourraitêtre la voix sur IP ?
n
Exemple :
u
u
John, devant son ordinateur, appelle Mary
([email protected]), en demandant les options audio et video.
L’appel atteint l’agent d’appel de Mary
F
u
u
Marie répond depuis l’ordinateur de son bureau
Durant l’appel, John décide d’ajouter Bob à la conversation
qui répond avec son téléphone cellulaire
F
u
L’agent d’appel “sonne” sur l’ordinateur de Mary, son téléphone
cellulaire et son téléphone fixe
L’agent d’appel de Bob doit trouver une passerelle entre le
réseau IP et le réseau Téléphonique commuté (RTC)
Par la suite, Bob décide d’envoyer un document video
F
Il utilise le serveur Web pour diffuser (multicast) la séquence
video
3
Introduction : Que pourraitêtre la voix sur IP ?
n
Services et Protocoles mis en jeu dans le scénario
précédent :
u
Protocoles de Transport supports de communications
F
F
F
pour la voix
pour la video en temps réel
pour la video stockée
• Solution : RTP diffusion en direct - RTSP données stockées
u
Protocoles de signalisation
F
F
F
F
F
mise en place de connexion
trouver les correspondants (pages blanches)
multicast
negotiations des formats des médias (audio ; audio et video)
contrôle des passerelles entre Internet et RTC
• Nombreuses solutions : H323, SIP, MGCP
4
Introduction : RTC
n
Le RTC a de nombreux avantages :
u
u
u
u
n
Une bonne qualité de voix
Grande robustesse (système de signalisation : SS7)
Très sûr
Services efficaces (réseau intelligent, fax)
Mais le RTC a atteint ses limites : introduction de
nouveaux services (de données) trop cher :
u
u
u
le dernier km constitue un goulot d’étranglement
les connexions Web ne sont pas bien adaptées pour un circuit
de voix (le SS7 a été prévu pour le trafic de voix)
ATM, qui était “la solution”, est arrivé trop tard pas
d’applications ATM natives)
5
Introduction : Internet
n
n
Internet offre une base réelle pour une intégration de
service efficace (orienté paquet)
Mais le transport de la voix ne s’accomode pas bien :
F
F
u
n
d’1 délai trop important
d’1 gigue trop importante (service isochrone)
Solutions possibles : DiffServ, MPLS, IntServ
Conclusion : dans un premier temps, la voix sur IP devra
coexister avec le RTC
6
Problèmes liés à la transmission
de la voix
n
Délai et gigue dans le RTC :
u
u
n
Gigue négligeable (Commutation de Circuits)
Délai ~ Propagation. Faible sauf satellite (acoustic echo
problem)
Dans VoIP : 2 problèmes : partie fixe et variable.
u
Partie Fixe :
F
Système d’Exploitation :
• la carte son
– échantillonne le signal provenant du micro
– accumule les échantillons dans un buffer
– demande à l’OS de les récupérer par des interruptions
• Pb : pour la plupart des OS, période des interruptions >= 60 ms
• Conséquence : arrivées groupées.
• Solution : OS temps réel ou hardware dédié
7
Transmission de la voix
n
Délai Partie Fixe :
u
Codeur :
F
F
F
u
beaucoup de codeurs sont orientés trames (plutôt
qu’échantillon)
Accumulation d’échantillons prend un certain temps
de +, certains codeurs utilisent la technique “plus on en sait,
mieux on compresse”
Politique de redondance :
F
F
F
F
limiter l’impact des pertes de paquets
méthode proactive. E.g. : à chaque paquet, on ajoute une copie
(codée avec une qualité moindre) du paquet précédent
Nécessaire parce que les retransmissions ne sont pas possibles
(les paquets arriveraient trop tard !)
Problème : en cas de congestion, participe à la congestion !8
Problèmes liés à la transmission
de la voix
n
Partie Fixe (suite) :
u
Protocoles de Transport (RTP, UDP, IP) :
F
F
n
ils ajoutent des délais en accolant les en-têtes
pour réduire l’overhead, on pourrait envisager de regrouper les
“trames”. Le multiplexage RTP n’est pas encore standardisé
Partie Variable (gigue) :
u
u
u
due aux variations de délai dans le réseau
Solution : utiliser un buffer de réception
Principle : à la réception du premier paquet, le bufferiser
pendant une période fixe L puis lire de façon continue.
F
Difficulté : dimensionner L
• trop petit => trop de paquets perdus (arrivent trop tard)
• trop grand => delai inacceptable (la voix = signal temps réel !)9
RTP/RTCP
u
u
u
RTP solution communément acceptée pour transférer de la
voix sur un réseau de type paquet (Internet).
RTP envoie des données au-dessus de TCP ou de UDP
RTP permet de numéroter pour reséquencer et de compenser
la gigue due au multiplexage statistique (< routers) :
F
F
F
u
u
estampille : synchronisation
numérotation (pas fait par UDP)
type de données (e.g : PCM, H.263)
RTP permet des sessions unicast ou multicast
Une session RTP par flux (port UDP / adresse Multicast).
F
Flux synchronisés par RTCP
10
RTCP - RTP Control Protocol
n
n
RTCP port # = RTP port # +1
RTCP a pour but :
u
u
n
n
n
distribuer des statistiques (Evaluation de la QoS) entre les
participants (émetteurs et récepteurs)
Synchronisation entre les médias en comparant les
estampilles RTP (media relative time)
RTP et RTCP permettent un contrôle de niveau applicatif
de le connexion téléphonique
RTP/RTCP n’ont pas d’influence sur le réseau lui-même
l’Internet n’est pas capable de garantir des délais/gigue/
pertes faibles : problème pour la voix
u
RTP permet de compenser une gigue modérée et RTCP
permet d’effectuer des adaptations au niveau des terminaux
11
SDP : Session
Description Protocol
SDP : Session Description
Protocol
n
n
RFC 2237
Pas vraiment un protocole - les données sont véhiculées par
d’autres protocoles
n
Utilisé SIP, RTSP, H.332, MGCP
n
Décrit les sessions multimédia :
u
u
u
codeurs audio et vidéo utilisés (payload type)
information sur la session (nom, description courte)
adresse multicast à utiliser (en cas de conférence multiparties)
13
Protocoles de
signalisation:
SIP
Introduction
n
n
SIP (RFC 2543) issu du groupe de travail MMUSIC
(Multiparty Multimedia Session Control) de l’IETF
MMUSIC :
u
u
SIP : Session Initiation Protocol
SDP : Session Description Protocol
F
u
n
(type de format échangé, adresses, nom de la session …)
RTSP : Real-time Streaming Protocol
Objectifs de SIP
u
u
u
u
u
Localisation
Etablissement d’appel
(Re)-Négotiation des paramètres de session
Gestion des participants de l’appel
Fin et transferts d’appels
15
Transactions et messages SIP
n
Entités SIP communiquent via des ‘transactions’ :
u
u
n
SIP fonctionne sur TCP ou UDP
u
n
1 transaction = 1 requête + 1 ou plusieurs réponses
Transactions numérotées, mode client/serveur
Rem : les flux sont eux véhiculés par RTP/RTCP sur UDP
2 types de messages : Requêtes et Réponses
u
En-tête :
F
F
F
F
F
Call-ID. E.g. [email protected]
Cseq : numéro de séquence
From : e.g. From: ‘Mydisplayname’ <sip:[email protected]>
To : e.g. To: ‘Helpdesk’ <sip:[email protected]>;
Via : e.g. Via : [email protected];
16
SIP Requêtes et Réponses
n
Requêtes
u
u
u
u
u
n
INVITE : mises en place de connexion
ACK
BYE
CANCEL : arrêter la recherche d’un utilisateur
REGISTER : pour s’enregistrer auprès d’un serveur
Réponses
u
u
u
u
Traitement en cours
Succès
Redirection
Echec (du client, du serveur)
17
Appel Téléphonique entre
utilisateurs Internet
Mary
John
INVITE
[email protected]
c=IN IP4 192.190.132.20
m=audio 49170 RTP/AVP 0
192.190.132.20
RTP/AVP 0
Audio = Loi µ
192.190.132.31
port UDP où le flux
RTP est attendu
µ law
Port # 49170
200 OK
c=IN IP4 192.190.132.31
m=audio 12345 RTP/AVP 3
GSM
John peut recevoir
des données GSM
sur le port 12345
Port # 12345
ACK
18
Entités SIP
n
Annuaire :
u
u
u
u
u
n
garde la trace de la correspondance = SIP @ / IP @
utilise la requête ‘Register’
Découverte de l’annuaire : Groupe multicast dédié :
sip.mcast.net:224.0.1.75 (TTL=1)
Communication possible en unicast si on connaît sa
localisation
Enregistrement non permanent (timeout)
Serveur de redirection:
u
u
répond à des demandes de connexions par des réponses 3xx
en donnant d’autres adresses ...
19
Entités et adresses SIP
n
Agent d’appel (Call Agent) :
u
u
proxy (doit se trouver sur le chemin de chaque appel)
pas situé sur la machine de l’usager
• qui peut être éteinte /utiliser une adresse IP temporaire
u
Tâches :
F
F
F
n
doit trouver l’utilisateur en lui redirigeant les messages
implante les règles de redirection (call forward on busy …)
filtrage d’appel
SIP addresses = URL
u
u
pas une adresse de transport, le plus souvent @mail
Localisation en 2 temps :
F
F
Trouver le serveur SIP à partir de SIP URL, en utilisant le DNS
(en retrouvant des enregistrements ‘sip.udp’ or ‘sip.tcp’)
20
Envoyer un INVITE au Serveur qui redirige l’appel
Conférence
n
n
n
n
SIP fait pour utiliser IP multicast : flux de données et de
sig peuvent être envoyés en utilisant le multicast
URL Destination = nom de la conférence
Réponses aux requêtes SIP envoyées à la même adresse
multicast.
Le passage d’une communication entre 2 utilisateurs à une
conférence entre n utilisateurs se fait en envoyant un
“INVITE” à une @ à tous les participants en utilisants le
même CallID
21
Protocole de
signalisation
H.323
H.323
u
H.323 : standard ITU-T.
• Début des travaux sur H.323v1 Mai 1995
• Version 2 - Février 1998
• Version 3 - utilisation possible d’UDP
u
u
H.323 : vidéo-conférence sur des réseaux de paquets (IP,
ATM, IPX)
Video-conférence existe déjà sur l’Internet avec le Mbone :
• Media transportés par RTP/RTCP
• arbre MC construit avec DVMRP
u
Solution fruste :
•
•
•
•
u
DVMRP ne permet pas le passage à l’échelle
on ne peut pas négocier le codec
pas de possibilité de contacter un utilisateur du RTC
Pas de service de “pages blanches”
H.323 a pour objectif de résoudre ces problèmes
23
Différentes phases de H.323
n
n
n
n
n
n
n
Gatekeeper (contrôleur) : contrôle la session : traduction
d’adresse, contrôle d’admission/BP, gère une zone
Gateway: passerelle H.323/RTC
Initialisation: enregistrement auprès du GK
GK admission: obtenir l’autorisation - GK résout les @
Signalisation d’appel:
F
initialisation et mise en place/rejet de la demande (cnx sig)
F
échange du type de données que les entités peuvent traiter
Négotiation/configuration:
Echange de données:
configuration et ouverture de canaux logiques
F envoyer et recevoir des flux de données
Re-négotiation: changer participants/ médias/ paramètres
Fin:terminer l’appel/conférence ; supprimer un utilisateur référencé
F
n
n
24
Composants et Canaux H.323
n
Utilisateur – contrôleur GK (H.225.0)
u
n
Signalisation : H.225 (Q.931)
u
u
u
n
Contrôle d’appel
service supplémentaires
TCP; depuis la v3: éventuellement UDP
contrôle (H.245):
u
u
u
u
n
UDP
Négociation type de données et capacités des intervenants ;
ouverture des “canaux logiques”
Reste ouverte pendant toute la durée des échanges
Utilise TCP
Canaux logiques : transporte flux audio, video (UDP)
25
1ère Phase : Initialisation de l’appel (H.225)
Terminal A : John
Call Signal Channel
(Q.931 Channel)
TCP port # 1720
H.225: SETUP
Call Identifier : 45442345
Email-ID of A : [email protected]
Source type : PC
Call Type : Point to Point
Destination @ : [email protected]
IP address : 10.2.3.4
Terminal B : Mark
Setup
Alerting
Connect
Call Signal Channel
(Q.931 Channel)
TCP port # 1720
H.225: CONNECT
Call Identifier : 45442345
Dedicated port #
H.245 address : 10.2.3.4:8741
26
1ère Phase : Initialisation (H.225)
n
@ H.323v2
F
F
F
F
F
n
E.164
H.323-ID (chaîne de catactères)
url-ID
transport-ID (ex:10.2.3.4:1720)
E-mail ID : [email protected]
Identifiants :
F
H.225.0 :
• Référence de l’appel (unique entre A et B)
F
H.323 :
• Identifiant d’appel
• Identifiant de conférence (CID) : unique pour tous les participants
27
2ème Phase : Canal de contrôle (H.245)
Terminal A : John
H.245: TerminalCapabilitySet
Multiplex Capability
Capability Table :
H.261 Video
G711 A law 64k
G729
IP address : 10.2.3.4
Terminal B : Mark
Term. Cap. Set
H.245 Control Channel
TCP port #
Term. Cap. Set Ack
H.245 Control Channel
TCP port # 8741
Term. Cap. Set
Term. Cap. Set Ack
H.245: TerminalCapabilitySet
Multiplex Capability
Capability Table :
H.261 Video
G711 A law 64k
28
3ème phase : Mise en place du Dialogue
Terminal A : John
H.245: OpenLogicalChannel
Logical Channel 1,
RTCP RR port 7771
G711, A law 64k
Session #, RTP payload type
silence suppression
IP address : 10.2.3.4
Terminal B : Mark
Open logical channel
H.245 Control Channel
TCP port #
Open logical channel Ack
H.245 Control Channel
TCP port # 8741
Open logical channel
Open logical channel Ack
Mise en place de 2 canaux
unidirectionnels
H.245: OpenLogicalChannelAck
Logical Channel 1,
RTCP SR port 9345
RTP port 9344
29
4ème phase : Dialogue
IP address : 10.2.3.4
Terminal A : John
Terminal B : Mark
Audio Channel =
logical channel 1
Audio Channel =
logical channel 1
RTP Flow from A to B
RTP : UDP
RTCP :UDP 7771
RTCP :UDP
RTCP RR
RTP : UDP 9344
RTCP :UDP
RTCP :UDP 9345
RTCP SR
...
H.245 Control Channel
TCP port #
RTP Flow from B to A
...
...
H.245 Control Channel
TCP port # 8741
Logical Channel 0
30
Dernière Phase : Fin
n
Sur le canal H.245, fermeture de tous les canaux de
données
u
u
n
Initié par le premier qui raccroche
CloseLogicalChannel et CloseLogicalChannel Ack
Si le canal H.225 n’a pas été fermé, Release Complete
message est envoyé
31
Appel RTC/Internet
n
Gatekeepers (GK):
u
u
u
gère une zone locale (contrôle des appels entrants/sortants)
enregistre les utilisateurs locaux
joue le rôle d’agent d’appel (redirection si appelé occupé ...)
F
n
Communication entre utilisateur et GK défini dans RAS
(Registration, administration and status) inclus dans H.225.0 ⇒
Canal RAS
Gateways (GW):
u
u
gérés par les GK
interface entre Internet et RTC
F
accès RNIS :
F
liaisons analogiques :
• GW envoie directement les messages Q.931 (SETUP, ALERTING)
• numérotation DTMF
• envoie un message “ALERTING” quand il détecte une sonnerie
32
1ère étape : Localisation du GK et
Enregistrement
n
Localisation GK :
u
u
n
Configuration Manuelle
Configuration Dynamique (roaming users)
Enregistement :
u
Utilisateur vers GK : RRQ (Registration ReQuest)
F
u
contient les ports à utiliser pour le canal de signalisation de
l’appel (H.245)
GK vers Utilisateur : RCF (Registration Confirm)
F
GK renvoie:
• un identifiant unique d’utilisateur (à utiliser dans les msg RAS)
• alias
33
2ème phase : Requête
d’autorisation d’appel
n
Utilisateur vers GK : ARQ (Admission ReQuest - msg RAS)
u
u
u
u
u
n
type d’appel (e.g. point to point)
modèle d’appel (direct ou routé = de zone en zone - GK to GK)
destination E.g. numéro E.164 +33 123456789
CallId
Estimation de la bande passante requise
GK vers utilisateur : ACF (Admission Confirm)
u
u
Adresse IP + # port pour le canal Q.931. Pour les num. E.164,
adresse d’une GW (ou d’un GK pour le modèle “routé”)
Bande Passante autorisée
34
3ème phase : Sig. d’appel
2ème
phase
GK
ARQ
(number=+33 123456789)
GW
GW peut changer le numéro
(e.g. enlever +33 s’il est localisé
en France)
RAS Channel
ACF
(Q.931=10.1.2.3:1720)
SETUP (number=+33 1 93 26 00 00)
ARQ
Q.931 Channel
GW demande la
permission au GK
ACF
↓
ALERTING
CONNECT
35
Fin d’appel
GK
GW
EndSessionCommand (H.245 level)
EndSessionComplete (H.245 level)
ReleaseComplete (Q.931 level)
DRQ (disengage request)
DRQ
DCF (disengage confirm)
Confirmation envoyée
à DCF
la GW et à l’utilisateur
36
Numérotation H.323
n
Problème : comment atteindre un téléphone IP à partir
d’un téléphone du RTC ?
u
n
Besoin d’une procédure automatique. Plusieurs solutions :
u
u
u
n
n
1 préfixe spécial par pays
1 code spécial (comme les numéros 800)
1 code de pays pour les téléphones IP
1ère solution pose un vrai pb :
u
n
Appeler une passerelle interactive qui demande une adresse
IP ou un e-mail => Problème de passage à l’échelle
atteindre un téléphone IP dans un autre pays conduira à
router l’appel via le RTC jusqu’au pays considéré !
Objectif rentrer le plus tôt possible dans l’Internet.
Pas de solution largement acceptée pour l’instant ...
37
H.323 versus SIP
n
Avantages de SIP :
u
u
n
Rapidité : établissement de connexion beaucoup plus simple
(H.323 impose de nombreux échanges)
Multicast : SIP est prévu pour fonctionner au-dessus d’un
backbone IP multicast pour le transport des données et de la
signalisation (H.323 fait du multi-unicast)
Avantages de H.323 :
u
Canaux logiques : distinction claire entre les canaux de
données et les canaux de contrôle alors qu’avec SIP le
terminal doit être prêt à recevoir des données d’annonce de
capacités
38
MGCP/Megaco
Analyse de H.323
Gatekeeper
Gatekeeper
H.225 - multiplexing
RAS - registration, admissions, status
Call Signaling
H.245 - channels, capabilities/preferences, flow control
GW
Call
n
n
RTP - audio data
S’occupe uniquement de la mise en place des connexions
Autres fonctionnalités implantées dans les GW
u
u
n
GW
autorisations, paiements
collecte de la sig
Le GK ne pilote pas vraiment la GW
40
D’H.323 à MGCP/Megaco
n
Inefficace pour les grandes passerelles d’opérateurs
u
u
n
Trop complexe pour des petites passerelles d’accès
u
u
n
n
Nombreuses Connexions (H.225, H.245, RTP)
Traitements Longs (message en ASN.1)
Passerelle très impliquée dans la mise en place des cnx
Implantation de services cher
Idée de base MGCP/MEGACO: Séparer physiquement le
contrôle d’appel du contrôle des média et des “tuyaux”
La GW a suffisamment à faire avec les conversions
MIC/RTP
41
Media gateway control et sig.
d’appel
ISUP over SIGTRAN
SG
SIP-T, ISUP in H.323
MGC
SG
MGC
SIP
SIP
User Agent
H.323 call
signaling
PSTN
Gateway
control
protocol
PSTN
Gateway
control
protocol
Internet
H.323
Endpoint
MG
MG
SS7
Network
Call signaling
Media gateway control signaling
Media flows
SG: Signaling Gateway, MG: Media Gateway, MGC: Media Gateway Controller
SS7
Network
42
MGCP
Media Gateway Control Protocol
(MGCP)
n
n
RFC 2705 (Avril 2000)
MGCP utilisé pour contrôler des passerelles téléphoniques (de cœur ou
résidentielles) par des éléments de contrôle d’appel externes appelés
media gateway controllers ou call agents.
n
MGCP au-dessus d’UDP : passage à l’échelle, delai
n
MGCP utilise SDP pour décrire les connexions:
F
v=0
F
c=IN IP4 128.16.59.1
F
m=audio 3456 RTP/AVP 0 96
F
a=rtpmap:96 G726/4
44
Architecture MGCP
n
Residential Gateways (RGW):
u
Connexions des usagers téléphoniques IP
u
Pas de modification du téléphone
u
RGW détecte les événements et les notifie à l’agent d’appel
(MGCP)
u
RGW supporte RTP
u
RGW connecté à l’Internet via le RTC, l’ADSL ou des liaisons
ATM (…)
45
Architecture MGCP
n
Trunk Gateway (TGW):
u
Interconnexion Internet-RTC : convertit les formats
TDM/RTP - RTP/TDM
u
Supporte MGCP (contrôlé par un Call Agent)
u
Doit aussi supporter (côté RTC):
F
Signalisation dans la bande (liaisons analogiques)
46
MGCP Architecture
n
n
Call Agent (CA) ou Media Gateway Controller:
u Contrôle RGW et TGW
u Supporte la signalisation SS7 (TGW est simple: s’occupe de la
conversion TDM/RTP)
u 1 CA contrôle plusieurs GWs
Pas de protocole normalisé pour les échanges entre CA :
u Pas critique dans un premier temps, les CA peuvent interopérer via
le SS7
u Ils peuvent utiliser SIP qui peut encapsuler des données SS7
u A terme utiliser les solutions SS7 over IP (STCP) issues du groupe
de travail IETF Sigtran.
47
Configurations MGCP (1/3)
PSTN signaling
protocols
SS7/ISUP
STP
Call
agent
SS7/ISUP
STP
MGCP/UDP
IP Network
CO
TGW
TGW
CO
RTP
TGW : Trunk Gateway
CO : Central Office
STP : Switching Transfer Point
48
Configurations MGCP (2/3)
SS7/ISUP
STP
Call
agent
MGCP/UDP
IP Network
CO
RGW
TGW
RTP
49
Configurations MGCP (3/3)
Le CA met en œuvre de nombreux
protocoles (SS7,H.323 ou SIP), utilise
MGCP pour contrôler les GWs
SS7/ISUP
Call
agent
H.323
MGCP/UDP or SIP
STP
RTP
IP Network
CO
TGW
RGW
RGW : Residential Gateway
50
Communication MGCP/RTC
L’agent d’appel
peut maintenant
chercher 1 TGW
pour cet appel
(Initial Address Message)
(Address Complete Message)
(Answer Message)
51
Communication MGCP/SIP
52
MGCP vs. SIP
n
Ne pourrait-on pas utiliser uniquement H.323?
F
n
Ou SIP ?
F
n
Etablissement des appels très long.
SIP protocole “peer to peer” qui ne convient pas à un contrôle
des gateways
MGCP doit-il remplacer H.323 ou SIP?
F
F
Apparemment non. SIP et H.323 offrent un grand nombre de
services non couverts par MGCP (conférences multimedia,
règles de redirection)
SIP et H.323 permet la mise en œuvre de services ‘intraInternet’ alors que MGCP se concentre sur les liaisons
Internet/RTC
53
Conclusion
n
Pour remplacer le RTC, VoIP a besoin d’un vrai protocole de
signalisation efficace
u
u
Cela prend beaucoup de temps ⇒ la coexistence RTC/VoIP va
durer encore longtemps
Besoin d’une proposition globale
F
F
n
A l’heure actuelle, bataille entre SIP et H.323
Groupe de travail MEGACO IETF (commun ITU-T/IETF/ETSI)
essaye de proposer un rapprochement MGCP - H.323 ; inclus
dans H.323 (H.248) modélisation des communications
multimédia.
Les protocoles de signalisation ont besoin d’une bonne
disponibilité (pour le RTC 99.999 %), délai raisonnable +
transfert de la voix contraignant
F
solutions DiffServ/MPLS
54

Documents pareils