COMUNICAŢII VoIP și
SERVICII MULTIMEDIA DE REȚEA
CURS IV – PROTOCOALE VoIP – SIP
RCC – CVoIPSMR - 2015 1
Dezvoltare SIP
Session Initiation Protocol (SIP)
protocol dezvoltat de IETF, in 1996, RFC 2543,
înlocuit de RFC 3261 in 2002
SIP poate fi folosit pentru comunicații de sesiuni
audio/videoconferințe, jocuri interactive, telefonie IP
Comunicația între dispozitive multimedia.
Protocoale asociate:
RTP/RTCP (transportul datelor in timp real) și
SDP negocierea capacitaților, codecurilor etc.
Protocol nivel Aplicație
protocol de semnalizare a telefoniei IP
3
Funcții specifice SIP
a fost proiectat pentru a asigura funcţii de control avansat a comunicaţiilor vocale
se pot localiza într-o manieră scalabilă resursele dintr-o reţea şi, indiferent de amplasarea fizică a acestora, se pot iniţia şi negocia caracteristicile sesiunii de comunicaţie
domeniile care suportă acest protocol sunt aplicaţiile de telefonie IP şi videoconferinţă IP
protocol de control care oferă servicii similare cu cele oferite în cazul aplicaţiilor de telefonie clasică, însă implementate IP
nu necesită alocarea de resurse din cele ale reţelei şi nici nu stabileşte circuite virtuale sau reale pe infrastructura de reţea
destinat pentru asigurarea sesiunilor de comunicaţie între utilizatori adresaţi prin identificatori de tip user_name, e-mail sau număr de telefon.
orice echipament care are asignat un nume de gazdă într-o reţea poate lua parte la o sesiune SIP.
4
Arhitectura SIP
Se bazează pe entităţi hardware sau software tipice.
Există patru entităţi care pot participa la comunicaţie: Agenţi SIP: sunt cei care iniţiază o cerere de comunicaţie
şi reprezintă de obicei şi destinaţia finală a acestei cereri; agenţii SIP pot fi telefoanele IP sau aplicaţiile software de telefonie şi video conferinţă;
Registratori: sunt servere de înregistrare care monitorizează utilizatorii în interiorul domeniului de reţea asignat acestora. De exemplu toţi utilizatorii care au un identificator de tipul: [email protected] sunt urmăriţi de registratorul care are gestionează domeniul yahoo.com;
Servere proxy SIP: sunt rutere care lucrează pe ultimul nivel OSI (nivelul aplicaţie) având ca sarcină direcţionarea spre destinaţie a cererilor şi răspunsurilor SIP;
Servere de redirectare: recepţionează cererile şi le redirectează spre un agent sau un nou server până când mesajul ajunge la destinaţia finală.
5
Arhitectură generică SIP
Server proxy
(Proxy Server)
Ruter
Terminale SIP
(Agenţi SIP)
Arhitectura generică a unei reţele SIP
R
Reţea IP
Internet
SR Server de
redirectare
(Redirect Server)
IP Phone
Proxy
SI
Server de
înregistrare
(Registrar Server)
SL
Server de localizare
(Location Server)
DNS
Server DNS
(DNS Server)
6
Comunicație SIP
SIP
Proiectat ca un modul in cadrul unei soluții de
comunicație IP.
Proiectarea modulara a protocolului a permis
integrarea ușoara si folosirea altor protocoale
existente.
folosește UDP-ul ca protocol de transport, dar,
in funcție de aplicație, poate folosi si protocolul
TCP.
Portul SIP utilizat atât in cazul TCP cat si UDP
este 5060.
7
Componente SIP
Componente specifice SIP
1. User Agent (UA):
User Agent Client (UAC) (apelează)
User Agent Server (UAS) (răspunde)
2. sunt 3 tipuri de SIP Server:
- Proxy Server
Stateful Proxy
Stateless Proxy
- Registrar Server
- Redirect Server
8
Agenți utilizator - SIP
Un UA (User Agent) cuprinde următoarele
componente funcționale:
· UAC (User Agent Client) – o aplicație client care inițiază o
cerere de sesiune SIP.
· UAS (User Agent Server) – o aplicație server care
răspunde la cererile SIP.
Pe durata unei sesiuni, un UA va funcționa fie ca un
UAC, fie ca un UAS, dar niciodată nu va îndeplini
simultan ambele funcții.
Funcționarea unui punct terminal ca UAC sau UAS
depinde de UA-ul care a inițiat cererea. UA-ul de
origine al cererii va folosi UAC, iar UA-ul destinație va
folosi UAS.
9
Diagramă SIP
10
SIP User
Agents
Registrar Redirect Location
Database
SIP Proxy
SIP
Servers/
Services
REGISTER
“Here I am”
INVITE
“I want to talk
to another UA
Proxied INVITE
“I’ll handle it for
you”
“Where is this
name/phone#?”
3xx Redirection
“They moved,
try this address”
SIP User
Agents SIP-GW
Componente SIP - User agents
1. Componente User agents:
a. Telefoane IP (pot fi UAC sau UAS)
În funcție de rolul lor in cadrul sesiunii.
Pot fi aparate telefonice IP sau computere ce
rulează o aplicație SIP (software phones).
b. Gateway (pot fi UAC sau UAS)
asigură controlul apelului pe durata sesiunii.
Rolul sau este de a asigura funcția de legătură
dintre UA si alte tipuri de terminale.
Presupune operarea cu diferite tipuri de conținut
media (audio, video), dar si inițierea si încheierea
apelului pentru rețeaua IP
11
Componente SIP - Server
2. Componente Server SIP:
a. Server proxy
componentă intermediară care recepționează cereri SIP
de la un client si le trimite mai departe în numele
clientului la următorul server SIP din rețea.
Următorul server poate fi tot un server proxy sau un UAS.
funcții: autentificarea, autorizarea, controlul accesului la
rețea, rutarea si securitatea in rețea.
Stateful Proxy: reține starea tranzacției în timpul
prelucrării cererilor. Acesta permite diviziunea un
mesaj de solicitare în mai multe mesaje, cu scopul
de a găsi în paralel locația apelată, pentru a obține
cea mai bună cale.
Stateless Proxy: nu reține starea tranzacției în timpul
prelucrării cererilor, doar retrimite mesajele.
12
Componente SIP - Server (continuare)
b. Server de redirectare
informează un UA in legătură cu următorul element din rețea
cu care ar trebui sa stabilească o legătura. UA va redirecționa
invitația către elementul identificat de către server-ul redirectă
c. Server de localizare
asigura rezoluția adreselor pentru serverele proxy si redirect.
constă intr-o bază de date cu înregistrări anterioare
d. Server de înregistrare (registrar)
primește cereri de la UAC-uri pentru înregistrarea poziției
poate fi inclus ca o subcomponentă a unui server de localizare
aprovizionarea bazei de date asociate serverului de localizare
e. B2BUA (Back-to-back user agent)
acționează ca un server si client UA simultan
rolul de a încheia procesul de semnalizare in partea UA-ului
apelant si inițiază semnalizarea către UA-ul apelat. 13
Funcții SIP
Pentru stabilirea sesiunilor de comunicație
SIP îndeplinește următoarele funcții de bază:
· Localizarea utilizatorilor, traducând adresa SIP a
acestora in adresa IP.
· Negocierea capabilităților intre toți participanții la
o sesiune
· Modificarea parametrilor sesiunii in timpul
desfășurării apelului.
· Realizarea proceselor de stabilire si încheiere a
apelului pentru toți participanții la sesiune
14
Mesaje SIP
SIP
este un protocol bazat pe mesaje de tip text,
folosește o sintaxă similară cu HTTP
UAC face cererea iar
UAS returnează răspunsurile la cererile clienților
Definește comunicația prin 2 tipuri de mesaje
(format conform RFC2822)
Cererile (metodele) și
Răspunsurile (coduri de stare)
15
Metodele (cererile) SIP
Prima linie (Request-Line) este definitorie, conținând:
numele metodei,
Identificatorul adresă cerere (Request-URI)
Versiunea de protocol SIP
Există 6 metode de bază (RFC 254) pentru cererile
clienților:
- INVITE: permite apelarea unui utilizator sau a unui serviciu
intr-o nouă sesiune sau modificarea parametrilor unei sesiuni
existente
- ACK: Confirmarea stabilirii sesiunii de comunicație
- OPTION: cereri de informații privind capabilitățile unui server
- BYE: sfârșitul unei sesiuni
- CANCEL: întreruperea unei cereri în așteptare.
- REGISTER: înregistrarea unui agent utilizator.
16
Exemplu – metodă de înregistrare
Via: SIP/2.0/UDP
192.168.0.100:5060;rport;branch=z9hG4bK646464100000000b
43c52d6c00000d1200000f03
Content-Length: 0
Contact: <sip:[email protected]:5060>
Call-ID: ED9A8038-A29D-40AB-95B1-
CSeq: 36 REGISTER
From: <sip:[email protected]>;tag=910033437093
Max-Forwards: 70
To: <sip:[email protected]>
User-Agent: SJphone/1.60.289a (SJ Labs)
Authorization: Digest
username="20000",realm="192.168.0.101",nonce="43c52e9d29
317c0bf1f885b9aaff1522d93c7692"
,uri="192.168.0.101",response="f69463b8d3efdb87c388efa9be1
a1e63"
17
Coduri de stare (răspunsuri) SIP
Răspunsul la o cerere SIP conține pe prima line
(Status-Line)
Versiunea SIP
Codul răspuns (Status-Code)
O scurtă descriere(Reason-Phrase).
Codul răspuns este din 3 caractere, primul număr
definind clasa de cod răspuns (Class Code)
1xx - Provisional Messages.
2xx - Success Answers.
3xx - Redirection Answers.
4xx - Method Failures.
5xx - Server Failures.
6xx - Global Failures.
18
Exemplu răspuns succes 200 Internet Protocol, Src Addr: 192.168.0.101 (192.168.0.101), Dst Addr:
192.168.0.100 (192.168.0.100)
User Datagram Protocol, Src Port: 5060 (5060), Dst Port: 5060 (5060)
Session Initiation Protocol
Status-Line: SIP/2.0 200 OK
Status-Code: 200
Resent Packet: False
Via: SIP/2.0/UDP
192.168.0.100:5060;rport;branch=z9hG4bK646464100000000b43c52d6c0000
0d1200000f03
Content-Length: 0
Contact: <sip:[email protected]:5060>
Call-ID: [email protected]
CSeq: 36 REGISTER
From: <sip:[email protected]>;tag=910033437093
Max-Forwards: 70
To: <sip:[email protected]:5060>
Authorization:Digest
username="20100",realm="192.168.0.101",nonce="43c52e9d29317c0bf1f885
b9aaff1522d93c7692",uri="sip:192.168.0.101",
response="f69463b8d3efdb87c388efa9be1a1e63"
19
Antete SIP
Antetul este utilizat pentru transportul de informație
către entitățile SIP, principalele câmpuri fiind:
- Via: arată protocolul de transport folosit, fiecare proxy
adaugă o linie în acest câmp
- From:adresa apelantului
- To: adresa apelatului
- Call-Id: identificator unic pentru fiecare apel call și
adresa de host, va fi același pentru toate mesajele unei
tranzacții.
- Cseq: începe cu un număr aleatoriu și identifică
secvențial fiecare mesaj
- Contact : una sau mai multe adrese ce pot fi folosite
pentru contact
- User Agent: agentul client care realizează
comunicația
20
Exemplu antet
Message Header
Via: SIP/2.0/UDP
192.168.0.100:5060;rport;branch=z9hG4bK6464641000000073
43c52679000020a600000e45
Content-Length: 0
Call-ID: 911D32E5-EEDF-4572-B0B2-
CSeq: 1 ACK
From:
"Prueba"<sip:[email protected]>;tag=8922404614682
Max-Forwards: 70
Route: <sip:[email protected]>
To: <sip:[email protected]>;tag=as0a27b928
User-Agent: SJphone/1.60.289a (SJ Labs)
Contact: <sip:[email protected]:5060>;expires=3600
21
Adresarea SIP
Serverele SIP trebuie sa realizeze localizarea și
rezolvarea numelor
De obicei agentul client nu știe adresa IP a persoanei
apelate, ci doar adresa de email
Entitățile SIP identifică un utilizator prin identificatorul
SIP URI (Uniform Resource Identifiers)
Formatul este similar unei adrese de email,
user@domeniu, un nume DNS
user@machine, un nume de echipament
user@ip_address, adresa IP a unui echipament
numar_telefon@gateway, gateway către numărul apelat
22
SIP și DNS
Comunicațiile SIP apelează la serviciul DNS
Pentru aflarea listelor de servere SIP disponibile într-un
domeniu (similar cu MX pentru email)
prin intermediul înregistrărilor SRV specifice
23
Protocolul SDP
SDP (Session Description Protocol)
Este utilizat pentru descrierea sesiunilor
multicast in timp real, fiind utilizat pentru invitații,
anunțuri și alte tipuri de mesaje de stabilire a
unei sesiuni
Inițial a fost destinat anunțării informațiilor
necesare participanților dar este utilizat atât
pentru anunțuri cât și pentru negocierea sesiunii
multimedia
Mesajele SDP pot fi transportate de diferite
protocoale (SIP, SAP, RTSP, HTTP-like)
Utilizează codificări text
24
Inițiere apel SIP - direct
Inițierea apelului printr-o legătura directă
UAC poate iniția direct (intr-o legătură UAC – UAS)
1. UAC-ul origine trimite o invitație (INVITE) către
UAS-ul destinație. Mesajul include descrierea UAC din
perspectiva punctului terminal.
2. Dacă UAS-ul destinație este de acord cu parametrii
apelului, va răspunde pozitiv către UAC-ul origine in
vederea stabilirii legăturii.
3. UAC-ul origine trimite un mesaj ACK.
In acest punct al procedurii, UAC si UAS au la
dispoziție informațiile necesare pentru a stabili o
sesiune RTP.
26
Inițiere apel SIP - proxy
Inițierea apelului prin un server proxy
elimină problemele metodei directe de stabilire a legăturii
prin centralizarea funcțiilor de control si management apel
rezoluția adreselor este realizată dinamic,
folosirea unui server proxy,
comunicația cu un UA destinație este posibilă fără ca UA-ul
origine sa fie nevoit să acumuleze si să stocheze informații
legate de localizarea destinației
Dezavantaje:
va creste numărul de mesaje schimbate intre participanți pe
durata unei sesiuni
se creează o dependenta a UA-urilor față de server-ul proxy.
27
Procedura de inițiere a apelului prin proxy
1. UAC-ul origine trimite o invitație (INVITE) serverului proxy.
2. Dacă este necesar, serverul proxy va apela la serverul de
localizare pentru a determina calea către destinație si adresa
IP a acesteia.
3. Serverul proxy trimite invitația către UAS-ul destinație.
4. Daca UAS-ul destinație consideră parametrii apelului ca
fiind acceptabili, răspunde pozitiv serverului proxy in vederea
continuării procedurii.
5. Serverul proxy răspunde UAC-ului origine.
6. UAC-ul origine trimite un mesaj ACK.
7. Serverul proxy înaintează mesajul ACK către UAS-ul
destinație.
In acest moment, UAC si UAS au la dispoziție informațiile
necesare pentru a stabili o sesiune RTP.
28
Avantaje si dezavantaje ale SIP
Avantaje
Flexibilitate în utilizare, operează independent de tipul sesiunii,
sau de conținutul media.
Este un standard deschis, având sprijinul mai multor producători
care implementează SIP
Mesajele SIP sunt de tip text, făcând mai ușoară identificarea si
rezolvarea eventualelor probleme
Operarea simultana a mai multor utilizatori cu capabilități diferite.
Dezavantaje
Procesarea mesajelor text impune o încărcătură pe gateway
Router-ul trebuie sa traducă textul, iar codul pentru aceasta
operație trebuie să fie inclus in sistemul de operare
O parte din funcțiile sale fiind in curs de dezvoltare, unii
producători preferă să implementeze o variante proprii.
30