SIP (Session Initiation Protocol)
Osnovne informacije
SIP (Session Initiation Protocol) je signalizacioni i kontrolni protokol poziva široko korišćen za uspostavljanje, modifikaciju i prekidanje multimedijalnih sesija, uključujući glas, video i trenutne poruke, preko IP mreža. Razvijen od strane Internet Engineering Task Force (IETF), SIP je definisan u RFC 3261 i postao je de facto standard za VoIP i ujedinjene komunikacije.
Neke ključne karakteristike SIP-a uključuju:
Tekstualni protokol: SIP je tekstualni protokol, što ga čini čitljivim za ljude i lakšim za otklanjanje grešaka. Baziran je na modelu zahteva-odgovora, sličnom HTTP-u, i koristi metode poput INVITE, ACK, BYE i CANCEL za kontrolu poziva.
Povećana skalabilnost i fleksibilnost: SIP je visoko skalabilan i može se koristiti u malim implementacijama kao i u velikim preduzećima i nosačkim okruženjima. Može se lako proširiti novim funkcijama, što ga čini prilagodljivim različitim slučajevima upotrebe i zahtevima.
Interoperabilnost: Široka upotreba i standardizacija SIP-a osiguravaju bolju interoperabilnost između različitih uređaja, aplikacija i pružalaca usluga, promovišući besprekornu komunikaciju na različitim platformama.
Modularni dizajn: SIP radi sa drugim protokolima poput RTP (Real-time Transport Protocol) za prenos medija i SDP (Session Description Protocol) za opisivanje multimedijalnih sesija. Ovaj modularni dizajn omogućava veću fleksibilnost i kompatibilnost sa različitim tipovima medija i kodeka.
Proxy i Redirect serveri: SIP može koristiti proxy i redirect servere za olakšavanje rutiranja poziva i pružanje naprednih funkcija poput preusmeravanja poziva, transfera poziva i usluga glasovne pošte.
Prisustvo i trenutne poruke: SIP nije ograničen samo na glasovnu i video komunikaciju. Takođe podržava prisustvo i trenutne poruke, omogućavajući širok spektar aplikacija za ujedinjenu komunikaciju.
I pored mnogih prednosti, SIP može biti kompleksan za konfigurisanje i upravljanje, posebno kada se suočavate sa problemima prolaska kroz NAT i sa firewall-om. Međutim, njegova svestranost, skalabilnost i obimna podrška u industriji čine ga popularnim izborom za VoIP i multimedijalnu komunikaciju.
SIP Metode
Osnovne SIP metode definisane u RFC 3261 uključuju:
INVITE: Koristi se za iniciranje nove sesije (poziva) ili modifikaciju postojeće. Metoda INVITE nosi opis sesije (obično koristeći SDP) kako bi obavestila primaoca o detaljima predložene sesije, poput tipova medija, kodeka i transportnih protokola.
ACK: Poslat da potvrdi prijem konačnog odgovora na zahtev INVITE. Metoda ACK osigurava pouzdanost INVITE transakcija pružanjem potvrde o kraju do kraja.
BYE: Koristi se za prekidanje uspostavljene sesije (poziva). Metoda BYE se šalje od strane bilo koje strane u sesiji kako bi naznačila da žele da završe komunikaciju.
CANCEL: Poslat da otkaže čekajući INVITE zahtev pre nego što sesija bude uspostavljena. Metoda CANCEL omogućava pošiljaocu da prekine INVITE transakciju ako promeni mišljenje ili ako nema odgovora od primaoca.
OPTIONS: Koristi se za upit o sposobnostima SIP servera ili korisničkog agenta. Metoda OPTIONS može biti poslata da zatraži informacije o podržanim metodama, tipovima medija ili drugim proširenjima bez stvarnog uspostavljanja sesije.
REGISTER: Koristi ga korisnički agent da registruje svoju trenutnu lokaciju sa SIP registrar serverom. Metoda REGISTER pomaže u održavanju ažuriranog mapiranja između korisnikovog SIP URI-ja i njegove trenutne IP adrese, omogućavajući rutiranje i dostavu poziva.
Imajte na umu da za pozivanje nekoga nije neophodno koristiti REGISTER za bilo šta.
Međutim, moguće je da kako bi izvršio INVITE pozivač mora autentifikovati prvo ili će primiti 401 Unauthorized
odgovor.
Pored ovih osnovnih metoda, postoje nekoliko SIP ekstenzija metoda definisanih u drugim RFC-ovima, kao što su:
SUBSCRIBE: Definisana u RFC 6665, metoda SUBSCRIBE se koristi za zahtevanje obaveštenja o stanju određenog resursa, poput prisustva korisnika ili statusa poziva.
NOTIFY: Takođe definisana u RFC 6665, metoda NOTIFY se šalje od strane servera da obavesti pretplaćenog korisničkog agenta o promenama u stanju praćenog resursa.
REFER: Definisana u RFC 3515, metoda REFER se koristi za zahtev da primalac izvrši transfer ili uputi na treću stranu. Ovo se obično koristi za scenarije transfera poziva.
MESSAGE: Definisana u RFC 3428, metoda MESSAGE se koristi za slanje trenutnih poruka između SIP korisničkih agenata, omogućavajući tekstualnu komunikaciju unutar SIP okvira.
UPDATE: Definisana u RFC 3311, metoda UPDATE omogućava modifikaciju sesije bez uticaja na stanje postojećeg dijaloga. Ovo je korisno za ažuriranje parametara sesije, poput kodeka ili tipova medija, tokom aktivnog poziva.
PUBLISH: Definisana u RFC 3903, metoda PUBLISH se koristi od strane korisničkog agenta da objavi informacije o stanju događaja serveru, čineći ih dostupnim drugim zainteresovanim stranama.
Kodovi odgovora SIP-a
1xx (Provizorni odgovori): Ovi odgovori ukazuju da je zahtev primljen i da server nastavlja da ga obrađuje.
100 Trying: Zahtev je primljen i server radi na njemu.
180 Ringing: Pozvani se obaveštava i preuzeće poziv.
183 Session Progress: Pruža informacije o napretku poziva.
2xx (Uspešni odgovori): Ovi odgovori ukazuju da je zahtev uspešno primljen, razumljen i prihvaćen.
200 OK: Zahtev je uspešan i server ga je ispunio.
202 Accepted: Zahtev je prihvaćen za obradu, ali još nije završen.
3xx (Odgovori preusmeravanja): Ovi odgovori ukazuju da je potrebna dalja akcija da bi se ispunio zahtev, obično kontaktiranjem alternativnog resursa.
300 Multiple Choices: Postoje više opcija dostupnih, i korisnik ili klijent mora odabrati jednu.
301 Moved Permanently: Traženi resurs je dodeljen novom trajnom URI-ju.
302 Moved Temporarily: Traženi resurs je privremeno dostupan na drugom URI-ju.
305 Use Proxy: Zahtev se mora poslati određenom proksi serveru.
4xx (Odgovori greške klijenta): Ovi odgovori ukazuju da zahtev sadrži lošu sintaksu ili ga server ne može ispuniti.
400 Bad Request: Zahtev je loše formiran ili nevažeći.
401 Unauthorized: Zahtev zahteva autentifikaciju korisnika.
403 Forbidden: Server je razumeo zahtev ali odbija da ga ispuni.
404 Not Found: Traženi resurs nije pronađen na serveru.
408 Request Timeout: Server nije primio kompletan zahtev u vreme koje je bio spreman da čeka.
486 Busy Here: Pozvani je trenutno zauzet i nije u mogućnosti da preuzme poziv.
5xx (Odgovori greške servera): Ovi odgovori ukazuju da server nije uspeo da ispuni validan zahtev.
500 Internal Server Error: Server je naišao na grešku prilikom obrade zahteva.
501 Not Implemented: Server ne podržava funkcionalnost potrebnu za ispunjenje zahteva.
503 Service Unavailable: Server trenutno nije u mogućnosti da obradi zahtev zbog održavanja ili preopterećenosti.
6xx (Globalni odgovori neuspeha): Ovi odgovori ukazuju da zahtev ne može biti ispunjen od strane bilo kog servera.
600 Busy Everywhere: Svi mogući odredišta za poziv su zauzeta.
603 Decline: Pozvani ne želi da učestvuje u pozivu.
604 Does Not Exist Anywhere: Traženi resurs nije dostupan nigde u mreži.
Primeri
Primer SIP INVITE-a
Primer SIP REGISTRACIJE
Metod REGISTER se koristi u Protokolu za inicijaciju sesije (SIP) kako bi omogućio korisničkom agentu (UA), kao što je VoIP telefon ili softver za telefoniranje, da registruje svoju lokaciju sa SIP registrar serverom. Ovaj proces omogućava serveru da zna gde da usmeri dolazne SIP zahteve namenjene registrovanom korisniku. Registrar server obično čini deo SIP proxy servera ili posebnog serverskog registra.
Evo detaljnog primera SIP poruka uključenih u proces autentifikacije REGISTRACIJE:
Početni REGISTER zahtev od UA ka registrar serveru:
Ova početna REGISTER poruka se šalje od strane UA (Alice) registrar serveru. Uključuje važne informacije poput željenog trajanja registracije (Expires), SIP URI korisnika (sip:alice@example.com), i korisničku kontakt adresu (sip:alice@192.168.1.100:5060).
Odgovor 401 Unauthorized od registrar servera:
Registrar server odgovara sa porukom "401 Unauthorized", koja uključuje zaglavlje "WWW-Authenticate". Ovo zaglavlje sadrži informacije potrebne UA da se autentifikuje, kao što su realm autentikacije, nonce i algoritam.
REGISTER zahtev sa autentifikacionim podacima:
UA šalje još jedan REGISTER zahtev, ovog puta uključujući "Authorization" zaglavlje sa potrebnim pristupnim podacima, kao što su korisničko ime, realm, nonce, i vrednost odgovora izračunata koristeći pružene informacije i korisnikovu lozinku.
Ovako se računa Authorization odgovor:
Uspešan odgovor na registraciju od servera registrar:
Nakon što registrar server proveri pružene akreditive, šalje "200 OK" odgovor da označi da je registracija uspešna. Odgovor uključuje registrovane kontakt informacije i vreme isteka registracije. U ovom trenutku, korisnički agent (Alice) je uspešno registrovan sa SIP registrar serverom, i dolazni SIP zahtevi za Alice mogu biti usmereni ka odgovarajućoj kontakt adresi.
Primer poziva
Nije pomenuto, ali korisnik B mora da pošalje REGISTER poruku ka Proxy 2 pre nego što može primati pozive.
Last updated