SIP-prezentacija

Download Report

Transcript SIP-prezentacija

SIP
Session Initiation Protocol
Dr Živko Bojović, dipl.inž.
12/5/2013
Svet IP komunikacija - VoIP
1
Zašto SIP?
 H.323 je složena i kompleksna arhtektura, sa ograničenom
funkcionalnošću posebno u saradnji sa Internet protokolima.
 IETF je oformio radnu grupu koja je predložila nov – SIP
protokol definisan RFC-om 3261.
 SIP je protokol aplikativnog sloja koji se koristi za
uspostavljanje, kontrolu i terminiranje multimedijalne sesije
dva ili više korisnika.
Svet IP komunikacija - VoIP
2
SIP – Osnovne karakteristike
 Termin SIP sesija, koristi se umesto poziv, jer se u toku jedne
sesije razmenjuju različiti tipovi medija: glas, video, podaci.
 SIP je klijent-server model koji se bavi zahtevima klijenta i
odgovorima servera:
zahtev klijenta + odgovor servera = transakcija
 SIP omogućava da se uspostavi sesija, ali tip sesije dogovorno
određuju učesnici.
 SIP je end to end signalizacioni protokol, sva logika (osim
rutiranja poruka) smeštena je na krajnjim uređajima čime se
ostvaruje distribuiranost, postiže skalabilnost, ali i veliki
overhead....
Svet IP komunikacija - VoIP
3
SIP – Osnovne karakteristike
 Nezavisan od transportnog sloja
– TCP, UDP, ATM...
 SIP entiteti se identifikuju pomoću jedinstvenog
identifikatora URI-Uniform Resource Identifier. SIP URI ima
oblik sip: korisničko_ime@domen
 Sarađuje sa sledećim protokolima:
 Real-time Transport Protocol,
 Real Time Control Protocol,
 Real Time Streaming Protocol,
 Media Gateway Control Protocol,
 Session Description Protocol.
Svet IP komunikacija - VoIP
4
SIP – 5 osnovnih funkcija
 Name translation and user location - translacija imena i
lociranje korisnika (da poziv stigne do pozvanog korisnika),
 Availability of user - raspoloživost korisnika (da li želi da
učestvuje u sesiji)
 Feature negotiation - dogovaranje učesnika u sesiji oko medija i
parametara medija neophodnih za komunikaciju,
 Call participant management - upravljanje pozivima učesnika
(uključenje drugih korisnika u poziv, ili raskidanje konekcije),
 Call feature changes - izmene karakteristika poziva (npr. izmena
karakteristika poziva za vreme trajanja poziva pa npr. govorni
poziv, u toku razgovora dobija i video funkciju.
Svet IP komunikacija - VoIP
5
SIP – mrežni elementi
 User agent - aplikacija (na korisnikovom računaru, fiksnom ili
mobilnom telefonu, PDA uređaju, gateway-u...) koja služi
korisniku da pronađe željenog sagovornika i da se sa njime
dogovori oko parametara sesije. Ima dve komponente:
 User Agent Client (UAC) – inicira pozive, i
 User Agent Serever (UAS) – odgovara na pozive.
 Network servers:
 Registration server – sadrži informacije o trenutnim
lokacijama korisnika,
 Proxy server - prima zahtev, utvrđuje gde da ga pošalje i
prosleđuje ga sledećem serveru ili na više servera
istovremeno (forking) koristeći principe next hop rutiranja,
 Redirect server – prima zahtev, traži primaoca i njegovu
adresu vraća klientu koji je generisao zahtev.
Svet IP komunikacija - VoIP
6
Stateful i Stateless serveri
 Stateless serveri su jednostavni i brzi serveri koji:
– prosleđuje poruke i ne “pamte” informacije pa ne mogu da
izbegnu retransmisiju poruka, niti da izvršavaju složenije
vrste rutiranja kao što je “forking” ili rekurzivno prelaženje.
– se koriste kao load balanseri, translatori poruka i ruteri.
 Stateful proksi server je kompleksniji i on može da:
– Primi zahtev, kreira stanje i isto održava do završetka
transakcije,
– Vrši ”forking” (primi i pošalje poruku na dve ili više adresa).
– Nema potrebu za retransmisiju jer zna stanje transakcije
(npr. da li je već primio istu poruku),
– Obavi komplikovane načine za pronalaženje korisnika (ako
korisnika ne pronađe na njegovom telefonu u kancelariji,
poziv preusmerava na korisnikov mobilni telefon.
Svet IP komunikacija - VoIP
7
Vrste SIP poruka-Zahtev (Request)
 Dve vrste SIP poruka:
– Request (zahtev) koje šalje klijent i
– Response (odgovor) koje vraća server.
 Šest vrsta zahteva (zovu se metode):
 INVITE – zahtev za uspostavu veze uz podatke o vrsti medija,
 ACK – potvrda da je klijent primio završni odgovor na INVITE
zahtev (ova metoda se koristi samo sa INVITE zahtevom),
 BYE – User client “kaže” serveru da želi prekid komunikacije,
 CANCEL – poništava sledeći zahtev, ali ne utiče na već izvršene,
 OPTIONS – sadrži informacije o mogućnostima servera, ali ne
uspostavlja vezu,
 REGISTER – traži informacije o lokaciji korisnika u Registration
server-u i prenos ih do do SIP servera.
Svet IP komunikacija - VoIP
8
Vrste SIP poruka – Odgovor (Response)
 Postoji 6 (šest) različitih klasa odgovora:
 1xx – privremena klasa (kontaktirani server vrši obradu
primljenih zahteva i ne raspolaže odlukom o konačnoj akciji).
 2xx – ukazuje da je zahtev uspešno primljen ili prihvaćen.
 3xx – redirekcija (server informiše o novoj lokaciji korisnika ili
alternativnom servisu koji može da zadovolji poziv).
 4xx – server ne može da ispuni zahtev usled greške na
klijentu.
 5xx – opisuje greške servera koji ne može da odgovori na
validan zahtev, pa isti treba da obradi drugi server.
 6xx – zahtev je odbijen (server ima kompletnu siku) i da ga
ne treba slati drugom serveru.
 Prvi broj – klasa odgovora, ostala dva nemaju nikakvu ulogu.
Svet IP komunikacija - VoIP
9
SIP poruke – format
 Zahtev i odgovor imaju univerzalan format zapisa (RFC2822):
Poruke = početna linija “Start-line“ + zaglavlje + telo poruke
 Format početne linije je:
Request-line = Method _ Request-URI _ SIP -VERSION CRLF
Primer: INVITE sip:[email protected] SIP/2.0 (_ jedno prazno polje)
Status line = SIP-VERSION_STATUS-CODE_REASON-PHRASE-CRLF
Primer: SIP/2.0 200 OK
Svet IP komunikacija - VoIP
10
Zaglavlje SIP poruka
 Sadrži sledeća polja koja daju informacije o:
 To – SIP adresi pozvanog korisnika,
 From – SIP adresi pozivajućeg korisnika,
 Call-ID – identifikatoru sesije
 Content-Length – dužini tela poruke
 Content-Type – tipu informacija u telu poruke
 Cseq – rednom broju zahteva
 Via – “skokovima” poruke,
 Contact – prenosi URI kojim se identifikuje izvor ili primaoc,
 Subject – pruža informaciju o prirodi poziva,
 TAG – nasumičan broj od 32 bita koji je identifikator dijaloga.
 Najveći deo polja u zaglavlju sličan je sa onima u HTTP/1.1
Svet IP komunikacija - VoIP
11
SIP poruke – zaglavlja
 Neka zaglavlja se koriste u svim porukama, a neka samo
kada je potrebno. Postoje 4 vrste zaglavlja:
Svet IP komunikacija - VoIP
12
SIP zahtev - primer
Svet IP komunikacija - VoIP
13
SIP odgovori - primer
SIP/2.0 200 OK
Via: SIP/2.0/UDP sippo.example.se
Via: SIP/2.0/UDP science.fiction.com
From: Fingal <sip:[email protected]>
To: Patrik <sip:[email protected]>; tag=25443232
Call-ID: [email protected]
CSeq: 1 INVITE
Content-Type: application/sdp
Content-Length:...
v=0
o=pgn 4858949 4858949 IN IP4 198.7.6.5
s=Ok
c=IN IP4 pepperoni.example.se
m=audio 5004 RTP/AVP 0 3
Svet IP komunikacija - VoIP
14
Session Description Protocol
 Telo poruke sadri informacije kojima se opisuje sesija, a koristi se
SDP protokol kojim se prenose informacije o CODEC-ima,
portovima i protokolima (RTP) koji se koriste z slanje medija.
 SDP poruka se sastoji od sledećih podataka:
– Nivoa sesije (ime sesije, vreme, izvor saobraćaja i verzija
protokola),
– Nivou medija 1 (Tip i format medije koja se prenosi)
– Nivou medija 2 (Transportni protokol i broj porta protokola).
Svet IP komunikacija - VoIP
15
SDP poruke - polja
 v= (protocol version number, currently only 0)
 o= (originator and session identifier : username, id, version
number, network address)
 s= (session name : mandatory with at least one UTF-8-encoded
character)
 i=* (session title or short information) u=* (URI of description)
 e=* (zero or more email address with optional name of contacts)
 p=* (zero or more phone number with optional name of contacts)
 c=* (connection information—not required if included in all
media)
 b=* (zero or more bandwidth information lines) One or more
Time descriptions ("t=" and "r=" lines; see below)
 z=* (time zone adjustments)
 k=* (encryption key)
 a=* (zero or more session attribute lines)
Svet IP komunikacija - VoIP
16
SIP URI
 SIP ima dve vrste URI-a:
 Stalna adresa (Address Of Record) je vezana za
samog korisnika i služi da se on poziva nezavisno od
toga gde se trenutno nalazi.
 Privremena adresa je vezana za korisnički uređaj .
 ENUM baza je skup uređenh trojki:
(SIP adresa, IP adresa i E.164) koja omogućava da
se izvrši rutiranje poziva korisnika koji su na SIP i
PSTN mreži)
Svet IP komunikacija - VoIP
17
SIP mreža
P
UA
P
P
P: SIP PROXY
UA: SIP USER AGENT
R: REGISTER
UA
R
Svet IP komunikacija - VoIP
18
SIP – Elementi mreže
 SIP User Agent
– Krajnje tačke SIP mreže
– Softphones (PCs with phone capabilities), SIP
IP telefoni, UMTS mobilni telefoni
• Register
• Prihvata zahtev za registracijom i ažurira bazu
podataka o korisnicima
• Location service
• Baza podataka koja sadrži vezu između korisnikove
SIP adrese i njegove kontakt (fizičke adrese)
Svet IP komunikacija - VoIP
19
SIP – Registracija

Registracioni server funkcioniše tj. izvršava sledeće
aktivnosti:
– Prihvata SIP REGISTER zahtev,
– Analizira zahtev (To polje sadrži AOR – ime koje treba
registrovati, Contact polje – trenutna adresa uređaja na
kojoj se korisnik nalazi,
– Zahteva autentifikaciju od User Agenta koji je poslao
zahtev za registraciju,
– U zvisnosti od polja u REGISTER zahtevu UA može da
izvrši trenutnu registraciju ili da doda URI u registracionu
listu ili da obriše registraciju.
Svet IP komunikacija - VoIP
20
SIP – Registracija
SIP Proxy
[2] REGISTER
[1] REGISTER
(challenge response)
(challenge response)
[4] 401 Unauthorized
Register
[5] 401 Unauthorized
User Agent
[3] Database
access
Location service
Svet IP komunikacija - VoIP
21
SIP – Registracija
SIP Proxy
[7] REGISTER
[6] REGISTER
Register
[9] 200 OK
[10] 200 OK
User Agent
[8] Database
access
Location service
Svet IP komunikacija - VoIP
22
SIP – PSTN sesija
Svet IP komunikacija - VoIP
23
SIP – Terminiranje sesija
User Agent
SIP Proxy
[2] BYE
[1] BYE
[5] 200 OK
[3] BYE
[6] 200 OK
[4] 200 OK
RTP
SIP Proxy
User Agent
Location service
Svet IP komunikacija - VoIP
24
SIP – Zašto?
 Fleksibilnost
– Nezavisan od transportnog nivoa i vrste konferencijske
kontrole
– Arhitektura SIP poruka omogućava fleksibilnu upotrebu
elemenata protokola
– Laka implementacija novih E2E servisa i karakteristika
 Ekstenzibilnost
– Laka integracija novih metoda, zaglavlja poruka i tipova
događaja
– Dobro definisan framework za rukovanje eksteenzijama i
specifičnim implementacijama
– Omoguće razlikovanje u odnosu na konkurenciju
Svet IP komunikacija - VoIP
25
SIP – Zašto?
 Skalabilnost
– Omogućava implementaciju samo dela neophodnog za
specifični software
– Omogućava “preseljenje” funkcionalnosti sa klienta na
bazne stanice ili server
 IP based HTTP-like protokol
– Pristup velikoj zajednici HTTP / IP programera
– SIP radi odlično sa protokolima “Overall IETF media data
& control architecture” (RTP/RTCP, RTSP, RSVP …), ali ne
zavisi od njih
Svet IP komunikacija - VoIP
26
SIP – Primena
 Voice over IP
 Push-To-Talk (PTT)
 Message Chat and Conferences
 Gaming
 Active Phonebook
 Instant amd Multimedia Messaging
 Group Messaging
Svet IP komunikacija - VoIP
27