270 likes | 467 Views
SIP S ession I nitiation P rotocol. Dr Živko Bojović, dipl.inž. 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.
E N D
SIP Session Initiation Protocol Dr Živko Bojović, dipl.inž. Svet IP komunikacija - VoIP
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
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
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
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
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
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 serverje 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
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
Vrste SIP poruka – Odgovor (Response) • Postoji6 (š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 nikakvuulogu. Svet IP komunikacija - VoIP
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:bob@biloxi.com 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
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
SIP poruke – zaglavlja • Neka zaglavlja se koriste u svim porukama, a neka samo kada je potrebno. Postoje 4 vrste zaglavlja: Svet IP komunikacija - VoIP
SIP zahtev - primer Svet IP komunikacija - VoIP
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:ffl@fiction.com> To: Patrik <sip:pgn@example.se>; tag=25443232 Call-ID: 1234567890@science.fiction.com 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
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
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
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
SIP mreža P UA UA P P P: SIP PROXY UA: SIP USER AGENT R R: REGISTER Svet IP komunikacija - VoIP
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
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
[2] REGISTER (challenge response) [1] REGISTER (challenge response) [4] 401 Unauthorized [5] 401 Unauthorized [3] Database access SIP – Registracija SIP Proxy Register User Agent Location service Svet IP komunikacija - VoIP
[7] REGISTER [6] REGISTER [9] 200 OK [10] 200 OK [8] Database access SIP – Registracija SIP Proxy Register User Agent Location service Svet IP komunikacija - VoIP
SIP – PSTN sesija Svet IP komunikacija - VoIP
[2] BYE [5] 200 OK [3] BYE [1] BYE [6] 200 OK [4] 200 OK SIP – Terminiranje sesija User Agent SIP Proxy RTP SIP Proxy User Agent Location service Svet IP komunikacija - VoIP
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 frameworkza rukovanje eksteenzijama i specifičnim implementacijama • Omoguće razlikovanje u odnosu na konkurenciju Svet IP komunikacija - VoIP
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-likeprotokol • 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
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