VOIX ET TÉLÉPHONIE
SUR IP
Introduction
Boom de la voix/téléphonie sur IP
Qu’est-ce qui a lancé la machine ?
Logiciels de téléphonie sur IP
Skype
Viber
imo
Amélioration des services de voix sur IP dans les
logiciels de messagerie instantanée
Les centraux téléphoniques se convertissent à l’IP
40,5% des communications voix sur IP – postes
fixes
100 millions d’utilisateurs pour Skype
Différences
Voix sur IP
Faire passer un signal audio dans le monde
IP
Téléphonie sur IP
Application de la VoIP
Fonctions et services téléphoniques autour
de la VoIP
Equipements qui permettent la téléphonie
sur IP
Architecture de téléphonie sur IP
Voix sur IP
Téléphonie sur IP
Principes identiques à du streaming audio
Numérisation / compression
Transport des paquets
Mais des contraintes d’interactivité plus fortes
Délai de bout-en-bout petit
Entre 150 et 400 ms
Gigue petite
On peut utiliser un buffer mais il faut que la
communication reste interactive
On peut perdre quelques paquets, mais pas trop
quand même
Entre 10 et 20%
ToIP – Architecture
Les composants:
Terminal « utilisateur »: ordinateur « multimédia »/
Téléphone IP / …
Passerelle ( Gateway ): transformation du signal pour son
transport sur IP et vice versa ( i.e. format, signalisation,
codecs audio) si nécessaire.
Garde-Barrière (Gatekeeper): Contrôle des appels, gestion
de la bande passante, translation d’adresse,
authentification, résolution d’adresses, etc… ( facultatif )
MCU : gestion de sessions multicasts
Les différents éléments peuvent être matériels ou
logiciels et peuvent être combinés sous forme de «
boites noires ».
Architecture générale
Equipements pour la ToIP
Téléphones
Softphones
Logiciels
à installer sur un système
informatique
Hardphones
Téléphones classiques disposant d’une prise
Ethernet
Fichiers de configuration
Equipements pour la ToIP
Autocommutateurs
Gestion et interconnexion des postes
Fourniture de services téléphoniques
Définition des droits d’appels
Gestion des appels entrants
Etc.
IP-PBX (PABX – Private Automatic Branch
eXchange)
Matériel / logiciel
Architecture tout IP
Architecture hétérogène
Actuellement, tout n’est pas téléphonie sur
Internet
Passerelle
Digital Subscriber Line Access Multiplexer », soit
en français, « Multiplexeur d'Accès à la Ligne
d'Abonné Numérique ».
Principe de la téléphonie sous IP
Communication téléphonique : parole, silence, parole...
Normalement : il faut 64 kb/s pendant la phase de parole
Les paquets sont générés uniquement pendant les phases de
parole
Message = un morceau de parole (de 160 octets de données) + entête
Chaque message est encapsulé dans un segment UDP.
L’application envoie des segments UDP via le socket-UDP toutes
les 20 ms durant les phases de parole. Le débit d’envoi est de 8
kb/s.
Jusqu’à 10% (voire 20%) de perte de paquets est tolérable.
Les paquets qui affichent un retard supérieur à 400 ms sont
rejetés à la réception.
La gigue est gérée par l’utilisation d’estampilles de paquets, des
numéros de séquence et en retardant certains paquets avant
d’être écoutés par le récepteur.
Exigences des applications
multimédia
Exigences des applications multimédia
Exigences : délai, gigue, débit
Les valeurs exigées changent avec l’évolution
de l’offre technologique
On ne demande pas les mêmes choses pour une
connexion Internet à 56 kb/s qu’à une connexion à
10 Mb/s.
L’utilisateur (humain) sait à la fois être exigeant
et s’adapter à ce qu’on lui offre.
Tendance actuelle de la demande : des délais de
plus en plus courts, des débits de plus en plus
élevés, des taux de perte de plus en plus faibles.
Exigences des applications Internet
Exigences des applications multimédia
Téléphonie et audio conférence
Faible débit (~ 64 Kb/s), mais les délais doivent être courts (< 250
ms)
Vidéo à la demande
Débit élevé (~ 10 Mb/s), latence non critique
Vidéo conférence
Débit élevé pour chaque participant (~1.5 Mb/s), délai faible (<
100 ms), états synchronisés.
Répétition musicale distribuée
Débit élevé (~1.4 Mb/s), très faible latence (< 100 ms), haute
synchronisation de média (dérive entre son et image < 50 ms)
Jeux (selon une étude faite par ITU-T)
Un délai maximum de 70 ms est plus apprécié par les joueurs
qu’un délai de 200 ms.
La gigue devra être de 20 ms maximum, car le joueur adapte sa
stratégie à un délai fixe (en tirant sur les cibles par exemple). La
gigue élevée conduit à un jeu ennuyeux.
Exigences des applications multimédia
Exigences des applications multimédia
Session Initiation Protocol
(SIP)
SIP
IETF RFC 3261
Remplace RFC 2543
Protocole d’application qui permet
d’établir, modifier et terminer des sessions
multimédia avec utilisateurs mobiles
Utilisent plusieurs terminaux pour communiquer
Nom d’utilisateur n’indique pas la localisation
Fonctions principales
Localisation des utilisateurs
Négociation des paramètres de la session
Généralités
Mécanismes pour l’établissement d’appel sur un
réseau IP
Prévenir l’appelé de la communication
Se mettre d’accord sur l’encodage
Mécanismes pour déterminer l’adresse IP de
l’appelé à utiliser
Adresse IP non nécessairement fixe
Mobilité
Multi-terminaux
Gestion des appels
Changement d’encodage en cours d’appel
Différents services
SIP dans la pile protocolaire
SDP codecs
Application
RTSP SIP RTP DNS(SRV)
Transport TCP UDP
Network IP
Ethernet
Physical/Data Link
SIP: Architecture
Eléments de SIP
Les utilisateurs
User agent
Téléphones SIP
Server agent
Les serveurs
SIP registrar
Pour s’enregistrer
Joue le rôle de serveur de
localisation
SIP proxy
Transfère et traite les
requêtes et les réponses SIP
SIP redirect
Redirige les appelants vers
d’autres serveurs
Permet la répartition de
charge
Moins utilisé
Location server :
SIP: Les terminaux
Terminologie SIP
UAC (User Agent Client) : Terminal qui initie
une session
UAS (User Agent Server) : Terminal qui
reçoit la demande
Clients typiques
Téléphones IP avec SIP
Softphones sur PC
Téléphones analogiques avec adaptateur
(ATA, Analogue Terminal Adapter)
Serveurs SIP: Registrar : serveur
d’enregistrement
Le Registrar est un serveur qui gère les requêtes
REGISTER envoyées par les Users Agents pour
signaler leur emplacement courant.
Elément essentiel d’un réseau SIP qui permet la
mobilité des utilisateurs
Chaque utilisateur s’enregistre périodiquement avec
son nom d’utilisateur et son adresse IP actuelle
Le registrar transmet ces informations au serveur de
localisation
Proxy SIP
Un Proxy SIP sert d'intermédiaire entre deux User
Agents qui ne connaissent pas leurs emplacements
respectifs (ex. adresse IP).
L'association identificateur-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 SIP 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.
Proxy SIP
Location server : serveur de localisation
Base de données qui gère les
enregistrements des utilisateurs
Utilise souvent LDAP, une base de données
SQL ou un fichier texte simple
Redirect server
Redirect server : serveur de redirection
Fonction similaire à un proxy
Reçoit les messages SIP des terminaux
Utilise le serveur de localisation pour déterminer la localisation actuelle
du destinataire
Renvoie un message de redirection au terminal avec la localisation
actuelle du destinataire
Serveurs SIP
Gateway : passerelle SIP - PSTN
Interconnecte un réseau SIP avec le réseau
téléphonique public
Typiquement avec interface ISDN
Convertit la signalisation et les flux média
Permet de recevoir des appels du PSTN et
d’appeler sur le PSTN
Fonctionnement
Principe:
Tous les appels téléphoniques et tous les
visioconférences vont avoir lieu dans Internet.
On identifie les participants par nom ou par
Email, non par numéro de téléphone seulement.
On peut toujours joindre son correspondant
n’importe où il se trouve
n’importe lequel adresse IP il utilise.
SIP Methods
INVITE Requests a session
ACK Final response to the INVITE
OPTIONS Ask for server capabilities
CANCEL Cancels a pending request
BYE Terminates a session
REGISTER Sends user’s address to server
SIP Responses
1XX Provisional 100 Trying
2XX Successful 200 OK
3XX Redirection 302 Moved Temporarily
4XX Client Error 404 Not Found
5XX Server Error 504 Server Time-out
6XX Global Failure 603 Decline
Les services SIP
Etablissement de Recherche de l’adresse
connexion IP du correspondant
Mappage entre
Signalisation au l’identifiant
correspondant mnémonique et
qu’on veut l’adresse IP actuelle
l’appeler Gestion de l’appel
Signalisation Ajout de nouveaux flux
pour se mettre de media en cours
d’appel
d’accord sur les Changement
medias et d’encodage en cours
l’encodage d’appel
Signalisation Invitations aux autres
pour la Transfert d’appel, mise
terminaison d’un en garde 35
Appel direct entre deux
téléphones
User User
A B
“Calls”
INVITE: sip:[Link]
[Link]
180 - Ringing Rings
200 - OK Answers
ACK
Talking RTP Talking
Hangs up BYE
200 - OK
SIP INVITE
INVITE sip:[Link] SIP/2.0
From: "Dennis Baron"<sip:6172531000@[Link]>;tag=1c41
To: sip:[Link]
Call-Id: call-1096504121-2@[Link]
Cseq: 1 INVITE
Contact: "Dennis Baron"<sip:6172531000@[Link]>
Content-Type: application/sdp
Content-Length: 304
Accept-Language: en
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, REGISTER, SUBSCRIBE
Supported: sip-cc, sip-cc-01, timer, replaces
User-Agent: Pingtel/2.1.11 (WinNT)
Date: Thu, 30 Sep 2004 [Link] GMT
Via: SIP/2.0/UDP [Link]
Exemple
Bob
Alice
Alice invite Bob à
38
communiquer (port
5060)
[Link] [Link]
son message SIP
invite contient son
Bob's numéro de port et
terminal rings
son adresse IP
il indique qu’Alice
préfère recevoir
l’encodage PCM ulaw
Le message 200 OK de
port 38060
Law audio
Bob indique
son adresse IP et
numéro de port pour
G SM
port 48753 la communication
sa préférence pour
l’encodage GSM
time time
Exemple d’un message SIP
39
• Dans ce cas, Alice ne
INVITE sip:bob@[Link] SIP/2.0
Via: SIP/2.0/UDP [Link]
connaît pas l’adresse IP
de Bob.
From: sip:alice@[Link] •Des serveurs
To: sip:bob@[Link]
intermédiaires sont
Call-ID: a2e3a@[Link] nécessaires.
Content-Type: application/sdp
Content-Length: 885 •Alice envoie et reçoit
des messages SIP sur
c=IN IP4 [Link] le numéro de port par
m=audio 38060 RTP/AVP 0 défaut 5060.
A noter: • Alice indique dans
syntaxe HTTP l’entête que son
sdp = session description protocol client SIP envoie et
unicité d’identifiants Call-ID reçoit par UDP.
Etablissement d’appel bis
40
Négociation de Rejet d’appel
l’encodage: Bob peut rejeter des
Supposons que Bob ne appels avec les
dispose pas de réponses replies
l’encodeur PCM ulaw. « occupé », « absent »,
« crédit insuffisant »,
Bob répond par 606 Not
ou « interdit ».
Acceptable Reply. Il
fournit la liste des
encodeurs dont il peut
s’en servir.
Alice peut ensuite
envoyer un nouveau
message INVITE,
proposant un encodeur
adapté.
Annuaire et localisation
Comment appeler si L’information fournie
on connaît seulement peut varier selon :
le nom ou l’adresse l’horaire (travail,
Email ? maison)
celui qui appelle (éviter
Comment connaître
qu’un appel
l’adresse IP actuel du professionnel est dirigé
correspondant ? vers le foyer)
le correspondant se l’état du correspondant
déplace (quand il est occupé, on
il utilise le protocole dirige les appels vers le
DHCP répondeur)
il a plusieurs appareils Les serveurs SIP :
IP (PC, PDA, voiture)
SIP registrar
41
SIP Registrar
42
Quand un utilisateur allume son client SIP, le client envoie un
message SIP REGISTER message au Registrar Server (comme dans
la messagerie instantanée)
message REGISTER :
REGISTER sip:[Link] SIP/2.0
Via: SIP/2.0/UDP [Link]
From: sip:bob@[Link]
To: sip:bob@[Link]
Expires: 3600
SIP: Enregistrement
User Registrar Location
B [Link] [Link]
REGISTER: sip:dbaron@[Link]
401 - Unauthorized
REGISTER: (add credentials)
sip:dbaron@[Link]
Contact [Link]
200 - OK
SIP: Registrar
REGISTER sip:[Link] SIP/2.0
From: "Dennis Baron"<sip:6172531000@[Link]>;tag=4561c4561
To: "Dennis Baron"<sip:6172531000@[Link]>;tag=324591026
Call-Id: 9ce902bd23b070ae0108b225b94ac7fa
Cseq: 5 REGISTER
Contact: "Dennis Baron"<sip:6172531000@[Link];LINEID=05523f7a97b54dfa3f0c0e3746d73a24>
Expires: 3600
Date: Thu, 30 Sep 2004 [Link] GMT
Accept-Language: en
Supported: sip-cc, sip-cc-01, timer, replaces
User-Agent: Pingtel/2.1.11 (WinNT)
Content-Length: 0
Via: SIP/2.0/UDP [Link]
SIP: Registrar– 401
Response
SIP/2.0 401 Unauthorized
From: "Dennis Baron"<sip:6172531000@[Link]>;tag=4561c4561
To: "Dennis Baron"<sip:6172531000@[Link]>;tag=324591026
Call-Id: 9ce902bd23b070ae0108b225b94ac7fa
Cseq: 5 REGISTER
Via: SIP/2.0/UDP [Link]
Www-Authenticate: Digest realm="[Link]",
nonce="f83234924b8ae841b9b0ae8a92dcf0b71096505216", opaque="reg:change4"
Date: Thu, 30 Sep 2004 [Link] GMT
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, REGISTER, NOTIFY, SUBSCRIBE, INFO
User-Agent: Pingtel/2.2.0 (Linux)
Accept-Language: en
Supported: sip-cc-01, timer
Content-Length: 0
SIP: Registrar : avec authentification
REGISTER sip:[Link] SIP/2.0
From: "Dennis Baron"<sip:6172531000@[Link]>;tag=4561c4561
To: "Dennis Baron"<sip:6172531000@[Link]>;tag=324591026
Call-Id: 9ce902bd23b070ae0108b225b94ac7fa
Cseq: 6 REGISTER
Contact: "Dennis Baron"<sip:61725231000@[Link];LINEID=05523f7a97b54dfa3f0c0e3746d73a24>
Expires: 3600
Date: Thu, 30 Sep 2004 [Link] GMT
Accept-Language: en
Supported: sip-cc, sip-cc-01, timer, replaces
User-Agent: Pingtel/2.1.11 (WinNT)
Content-Length: 0
Authorization: DIGEST USERNAME="6172531000@[Link]", REALM="[Link]",
NONCE="f83234924b8ae841b9b0ae8a92dcf0b71096505216", URI="sip:[Link]",
RESPONSE="ae064221a50668eaad1ff2741fa8df7d", OPAQUE="reg:change4"
Via: SIP/2.0/UDP [Link]
SIP Proxy
47
User A envoie un message INVITE à son serveur
proxy
il contient l’adresse sip:UserB@[Link]
Le proxy est responsable de l’acheminement des
messages SIP vers le correspondant
les messages peuvent passer par plusieurs serveurs
proxy
Le correspondant envoie sa réponse via le même
ensemble de serveurs proxy.
Le proxy fournit la réponse SIP à User A
la réponse contient l’adresse IP du destinataire
A noter : un proxy se ressemble à un serveur DNS
SIP Via Proxy
User Proxy User
A [Link] B
“Calls” userB
INVITE: sip:userB@[Link]
@[Link]
INVITE: sip:userB@[Link]
100 - Trying
180 - Ringing Rings
180 - Ringing
200 - OK Answers
200 - OK
ACK
Talking RTP Talking
Hangs up BYE
200 - OK
Exemple
Appel
49
de jim@[Link] SIP registrar
[Link]
vers keith@[Link]
(1) Jim envoie un message SIP
INVITE à SIP proxy SIP proxy
2 registrar
eurecom .fr
de umass. um [Link] 3
4
(2) Le proxy
renvoie le message vers 1 7 5
le SIP registrar de upenn. 8
6
(3) Le registrar de upenn
répond avec un message 9
SIP client
REDIRECT, indiquant qu’il SIP client [Link]
faut contacter [Link]
keith@[Link]
Exemple
SIP registrar
(4) Le proxy umass [Link]
envoie un INVITE au SIP
registrar eurecom. SIP proxy
2 registrar
eurecom .fr
(5) Le registrar um [Link] 3
4
eurecom renvoie le
message INVITE à 1 7 5
[Link], sur 8
6
lequel tourne le client
9
SIP de keith. SIP client
[Link]
(6-8) réponse SIP SIP client
[Link]
(9) media envoyé
directement entre les
clients.
A noter: il y a aussi
des acquittements SIP
Exemple
INVITE
Lookup
Reply
INVITE
OK
OK
ACK
ACK
Exchanging audio
BYE
SIP via Gateway
User Proxy Gateway
A [Link] 30161
“Calls” joe
INVITE: sip:joe@[Link]
@[Link]
INVITE: sip:38400@[Link]
100 - Trying Rings
180 - Ringing
180 - Ringing
Answers
200 - OK
200 - OK
ACK
ACK
Talking RTP Talking
Hangs up BYE
BYE
200 - OK
200 - OK
SIP INVITE with Record-
Route
INVITE sip:37669@[Link] SIP/2.0
Record-Route: <sip:[Link]:5080;lr;a;t=2c41;s=b07e28aa8f94660e8545313a44b9ed50>
From: \"Dennis Baron\"<sip:6172531000@[Link]>;tag=2c41
To: sip:37669@[Link]
Call-Id: call-1096505069-3@[Link]
Cseq: 1 INVITE
Contact: \"Dennis Baron\"<sip:6172531000@[Link]>
Content-Type: application/sdp
Content-Length: 304
Accept-Language: en
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, REGISTER, SUBSCRIBE
Supported: sip-cc, sip-cc-01, timer, replaces
User-Agent: Pingtel/2.1.11 (WinNT)
Date: Thu, 30 Sep 2004 [Link] GMT
Via: SIP/2.0/UDP [Link]:5080;branch=z9hG4bK2cf12c563cec06fd1849ff799d069cc0
Via: SIP/2.0/UDP [Link];branch=z9hG4bKd26e44dfdc2567170d9d32a143a7f4d8
Via: SIP/2.0/UDP [Link]
Max-Forwards: 17
Session Description Protocol
IETF RFC 2327
“SDP is intended for describing multimedia sessions for the
purposes of session announcement, session invitation, and
other forms of multimedia session initiation.”
SDP includes:
The type of media (video, audio, etc.)
The transport protocol (RTP/UDP/IP, H.320, etc.)
The format of the media (H.261 video, MPEG video,
etc.)
Information to receive those media (addresses, ports,
formats and so on)
SDP
v=0
o=Pingtel 5 5 IN IP4 [Link]
s=phone-call
c=IN IP4 [Link]
t=0 0
m=audio 8766 RTP/AVP 96 97 0 8 18 98
a=rtpmap:96 eg711u/8000/1
a=rtpmap:97 eg711a/8000/1
a=rtpmap:0 pcmu/8000/1
a=rtpmap:8 pcma/8000/1
a=rtpmap:18 g729/8000/1
a=fmtp:18 annexb=no
a=rtpmap:98 telephone-event/8000/1