30
COMUNICAŢII VoIP și SERVICII MULTIMEDIA DE REȚEA CURS IV – PROTOCOALE VoIP – SIP RCC CVoIPSMR - 2015 1

COMUNICAŢII VoIP și SERVICII MULTIMEDIA DE REȚEAstud.usv.ro/CVoIPSMR/Curs4/CVoIPSMR-IV.pdfServer proxy (Proxy Server) Ruter Terminale SIP (Agenţi SIP) DNS Arhitectura generică

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

COMUNICAŢII VoIP și

SERVICII MULTIMEDIA DE REȚEA

CURS IV – PROTOCOALE VoIP – SIP

RCC – CVoIPSMR - 2015 1

PROTOCOALE VoIP – SIP

Standard

Componente

Arhitectura

Semnalizare

2

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-

[email protected]

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-

[email protected]

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

Exemplu (I) semnalizare SIP

25

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

Exemplu (II) sesiune SIP (RFC 3261)

29

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