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: xyz@yahoo.com 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 Terminale SIP (Agenţi SIP) Server de înregistrare (Registrar Server) SI Server DNS (DNS Server) DNS IP Phone Ruter Internet Reţea IP R Server de redirectare (Redirect Server) SR Proxy Server proxy (Proxy Server) SL Server de localizare (Location Server) Arhitectura generică a unei reţele SIP 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 Registrar Redirect Location Database SIP Servers/ Services Where is this name/phone#? REGISTER Here I am 3xx Redirection They moved, try this address INVITE I want to talk to another UA SIP Proxy Proxied INVITE I ll handle it for you SIP User Agents SIP User Agents SIP-GW 10
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:20000@192.168.0.100:5060> Call-ID: ED9A8038-A29D-40AB-95B1-0F5F5E905574@192.168.0.100 CSeq: 36 REGISTER From: <sip:20000@192.168.0.101>;tag=910033437093 Max-Forwards: 70 To: <sip:20000@192.168.0.101> 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:20100@192.168.0.100:5060> Call-ID: ED9A8038-A29D-40AB-95B1-0F5F5E905574@100.100.100.16 CSeq: 36 REGISTER From: <sip:20000@192.168.0.101>;tag=910033437093 Max-Forwards: 70 To: <sip:20000@192.168.0.101:5060> Authorization:Digest username="20100",realm="192.168.0.101",nonce="43c52e9d29317c0bf1f885 b9aaff1522d93c7692",uri="sip:192.168.0.101", 19 response="f69463b8d3efdb87c388efa9be1a1e63"
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-61B294636E88@192.168.0.100 CSeq: 1 ACK From: "Prueba"<sip:20000@miasterisk.com>;tag=8922404614682 Max-Forwards: 70 Route: <sip:20001@192.168.0.1> To: <sip:20001@miasterisk.com>;tag=as0a27b928 User-Agent: SJphone/1.60.289a (SJ Labs) Contact: <sip:20100@192.168.0.100: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