# Osnovni VoIP protokoli {{#include ../../../banners/hacktricks-training.md}} ## Protokoli signalizacije ### SIP (Protokol za inicijaciju sesije) Ovo je industrijski standard, za više informacija pogledajte: {{#ref}} sip-session-initiation-protocol.md {{#endref}} ### MGCP (Protokol za kontrolu medijskih prolaza) MGCP (Protokol za kontrolu medijskih prolaza) je **protokol za signalizaciju** i **kontrolu poziva** opisan u RFC 3435. Deluje u centralizovanoj arhitekturi, koja se sastoji od tri glavne komponente: 1. **Agent za pozive ili Kontroler medijskog prolaza (MGC)**: Glavni prolaz u MGCP arhitekturi odgovoran je za **upravljanje i kontrolu medijskih prolaza**. Rukuje procesima postavljanja, modifikacije i prekida poziva. MGC komunicira sa medijskim prolazima koristeći MGCP protokol. 2. **Medijski prolazi (MG) ili Robusni prolazi**: Ovi uređaji **konvertuju digitalne medijske tokove između različitih mreža**, kao što su tradicionalna telefonija sa preklapanjem krugova i IP mreže sa preklapanjem paketa. Njima upravlja MGC i izvršavaju komande koje od njega dobijaju. Medijski prolazi mogu uključivati funkcije kao što su transkodiranje, pakovanje i poništavanje eha. 3. **Signalizacijski prolazi (SG)**: Ovi prolazi su odgovorni za **konvertovanje signalizacijskih poruka između različitih mreža**, omogućavajući nesmetanu komunikaciju između tradicionalnih telefonskih sistema (npr. SS7) i IP mreža (npr. SIP ili H.323). Signalizacijski prolazi su ključni za interoperabilnost i osiguranje da se informacije o kontroli poziva pravilno komuniciraju između različitih mreža. Ukratko, MGCP centralizuje logiku kontrole poziva u agentu za pozive, što pojednostavljuje upravljanje medijskim i signalizacijskim prolazima, pružajući bolju skalabilnost, pouzdanost i efikasnost u telekomunikacionim mrežama. ### SCCP (Protokol za kontrolu tankih klijenata) Protokol za kontrolu tankih klijenata (SCCP) je **proprietarni protokol za signalizaciju i kontrolu poziva** u vlasništvu Cisco Systems. Primarno se **koristi** za komunikaciju između **Cisco Unified Communications Manager** (ranije poznatog kao CallManager) i Cisco IP telefona ili drugih Cisco glasovnih i video uređaja. SCCP je lagan protokol koji pojednostavljuje komunikaciju između servera za kontrolu poziva i krajnjih uređaja. Naziva se "Tanki" zbog svog minimalističkog dizajna i smanjenih zahteva za propusnost u poređenju sa drugim VoIP protokolima kao što su H.323 ili SIP. Glavne komponente sistema zasnovanog na SCCP su: 1. **Server za kontrolu poziva**: Ovaj server, obično Cisco Unified Communications Manager, upravlja procesima postavljanja, modifikacije i prekida poziva, kao i drugim telefonskim funkcijama kao što su preusmeravanje poziva, prebacivanje poziva i zadržavanje poziva. 2. **SCCP krajnji uređaji**: Ovi uređaji, kao što su IP telefoni, jedinice za video konferencije ili drugi Cisco glasovni i video uređaji, koriste SCCP za komunikaciju sa serverom za kontrolu poziva. Registruju se kod servera, šalju i primaju signalizacijske poruke i prate uputstva koja im pruža server za kontrolu poziva za upravljanje pozivima. 3. **Prolazi**: Ovi uređaji, kao što su glasovni prolazi ili medijski prolazi, odgovorni su za konvertovanje medijskih tokova između različitih mreža, poput tradicionalne telefonije sa preklapanjem krugova i IP mreža sa preklapanjem paketa. Mogu takođe uključivati dodatne funkcionalnosti, kao što su transkodiranje ili poništavanje eha. SCCP nudi jednostavnu i efikasnu metodu komunikacije između Cisco servera za kontrolu poziva i krajnjih uređaja. Međutim, vredi napomenuti da je **SCCP proprietarni protokol**, što može ograničiti interoperabilnost sa ne-Cisco sistemima. U takvim slučajevima, drugi standardni VoIP protokoli kao što je SIP mogu biti pogodniji. ### H.323 H.323 je **skup protokola** za multimedijalnu komunikaciju, uključujući glas, video i konferencije podataka preko mreža sa preklapanjem paketa, kao što su IP mreže. Razvila ga je **Međunarodna telekomunikaciona unija** (ITU-T) i pruža sveobuhvatan okvir za upravljanje multimedijalnim komunikacionim sesijama. Neki ključni sastavni delovi H.323 skupa uključuju: 1. **Terminali**: Ovi su krajnji uređaji, kao što su IP telefoni, sistemi za video konferencije ili softverske aplikacije, koji podržavaju H.323 i mogu učestvovati u multimedijalnim komunikacionim sesijama. 2. **Prolazi**: Ovi uređaji konvertuju medijske tokove između različitih mreža, poput tradicionalne telefonije sa preklapanjem krugova i IP mreža sa preklapanjem paketa, omogućavajući interoperabilnost između H.323 i drugih komunikacionih sistema. Mogu takođe uključivati dodatne funkcionalnosti, kao što su transkodiranje ili poništavanje eha. 3. **Upravljači**: Ovi su opcioni sastavni delovi koji pružaju usluge kontrole i upravljanja pozivima u H.323 mreži. Izvršavaju funkcije kao što su prevođenje adresa, upravljanje propusnošću i kontrola pristupa, pomažući u upravljanju i optimizaciji mrežnih resursa. 4. **Jedince za kontrolu više tačaka (MCU)**: Ovi uređaji olakšavaju višepointne konferencije upravljanjem i mešanjem medijskih tokova iz više krajnjih tačaka. MCU omogućavaju funkcije kao što su kontrola rasporeda videa, prebacivanje aktivirano glasom i kontinuirana prisutnost, omogućavajući organizovanje velikih konferencija sa više učesnika. H.323 podržava niz audio i video kodeka, kao i druge dodatne usluge kao što su preusmeravanje poziva, prebacivanje poziva, zadržavanje poziva i čekanje poziva. I pored široke primene u ranim danima VoIP-a, H.323 je postepeno zamenjen modernijim i fleksibilnijim protokolima kao što je **Protokol za inicijaciju sesije (SIP)**, koji nudi bolju interoperabilnost i lakšu implementaciju. Ipak, H.323 se i dalje koristi u mnogim nasleđenim sistemima i nastavlja da ga podržavaju različiti dobavljači opreme. ### IAX (Inter Asterisk eXchange) IAX (Inter-Asterisk eXchange) je **protokol za signalizaciju i kontrolu poziva** koji se primarno koristi za komunikaciju između Asterisk PBX (Privatna centralna telefonska centrala) servera i drugih VoIP uređaja. Razvio ga je Mark Spencer, tvorac Asterisk open-source PBX softvera, kao alternativu drugim VoIP protokolima kao što su SIP i H.323. IAX je poznat po svojoj **jednostavnosti, efikasnosti i lakoći implementacije**. Neke ključne karakteristike IAX-a uključuju: 1. **Jedan UDP port**: IAX koristi jedan UDP port (4569) za signalizaciju i medijski saobraćaj, što pojednostavljuje prolaz kroz vatrozid i NAT, olakšavajući implementaciju u različitim mrežnim okruženjima. 2. **Binarni protokol**: Za razliku od protokola zasnovanih na tekstu kao što je SIP, IAX je binarni protokol, što smanjuje njegovu potrošnju propusnosti i čini ga efikasnijim za prenos signalizacijskih i medijskih podataka. 3. **Trunking**: IAX podržava trunking, što omogućava kombinovanje više poziva u jednu mrežnu vezu, smanjujući preopterećenje i poboljšavajući korišćenje propusnosti. 4. **Prirodna enkripcija**: IAX ima ugrađenu podršku za enkripciju, koristeći metode kao što su RSA za razmenu ključeva i AES za enkripciju medija, pružajući sigurnu komunikaciju između krajnjih tačaka. 5. **Peer-to-Peer komunikacija**: IAX se može koristiti za direktnu komunikaciju između krajnjih tačaka bez potrebe za centralnim serverom, omogućavajući jednostavnije i efikasnije usmeravanje poziva. I pored svojih prednosti, IAX ima neka ograničenja, kao što je primarni fokus na Asterisk ekosistem i manja rasprostranjenost u poređenju sa etabliranim protokolima kao što je SIP. Kao rezultat, IAX možda neće biti najbolji izbor za interoperabilnost sa ne-Asterisk sistemima ili uređajima. Međutim, za one koji rade unutar Asterisk okruženja, IAX nudi robusno i efikasno rešenje za VoIP komunikaciju. ## Protokoli prenosa i transporta ### SDP (Protokol za opis sesije) SDP (Protokol za opis sesije) je **format zasnovan na tekstu** koji se koristi za opisivanje karakteristika multimedijalnih sesija, kao što su glas, video ili konferencije podataka, preko IP mreža. Razvila ga je **Internet Engineering Task Force (IETF)** i definisan je u **RFC 4566**. SDP ne upravlja stvarnim prenosom medija ili uspostavljanjem sesije, već se koristi u kombinaciji sa drugim signalizacijskim protokolima, kao što je **SIP (Protokol za inicijaciju sesije)**, za pregovaranje i razmenu informacija o medijskim tokovima i njihovim atributima. Neki ključni elementi SDP-a uključuju: 1. **Informacije o sesiji**: SDP opisuje detalje multimedijalne sesije, uključujući naziv sesije, opis sesije, vreme početka i vreme završetka. 2. **Medijski tokovi**: SDP definiše karakteristike medijskih tokova, kao što su tip medija (audio, video ili tekst), transportni protokol (npr. RTP ili SRTP) i format medija (npr. informacije o kodeku). 3. **Informacije o vezi**: SDP pruža informacije o mrežnoj adresi (IP adresa) i broju porta na koji bi mediji trebali biti poslati ili primljeni. 4. **Atributi**: SDP podržava korišćenje atributa za pružanje dodatnih, opcionalnih informacija o sesiji ili medijskom toku. Atributi se mogu koristiti za specificiranje raznih funkcija kao što su ključevi za enkripciju, zahtevi za propusnošću ili mehanizmi kontrole medija. SDP se obično koristi u sledećem procesu: 1. Inicirajuća strana kreira SDP opis predložene multimedijalne sesije, uključujući detalje o medijskim tokovima i njihovim atributima. 2. SDP opis se šalje primajućoj strani, obično ugrađen u poruku signalizacijskog protokola kao što su SIP ili RTSP. 3. Primajuća strana obrađuje SDP opis, i na osnovu svojih mogućnosti, može prihvatiti, odbiti ili modifikovati predloženu sesiju. 4. Konačni SDP opis se šalje nazad inicirajućoj strani kao deo poruke signalizacijskog protokola, završavajući proces pregovaranja. Jednostavnost i fleksibilnost SDP-a čine ga široko usvojenim standardom za opisivanje multimedijalnih sesija u raznim komunikacionim sistemima, igrajući ključnu ulogu u uspostavljanju i upravljanju real-time multimedijalnim sesijama preko IP mreža. ### RTP / RTCP / SRTP / ZRTP 1. **RTP (Protokol za prenos u realnom vremenu)**: RTP je mrežni protokol dizajniran za isporuku audio i video podataka, ili drugih medija u realnom vremenu, preko IP mreža. Razvijen od strane **IETF** i definisan u **RFC 3550**, RTP se obično koristi sa signalizacijskim protokolima kao što su SIP i H.323 za omogućavanje multimedijalne komunikacije. RTP pruža mehanizme za **sinhronizaciju**, **sekvenciranje** i **vremensko označavanje** medijskih tokova, pomažući da se osigura glatko i pravovremeno reprodukovanje medija. 2. **RTCP (Protokol za kontrolu prenosa u realnom vremenu)**: RTCP je prateći protokol za RTP, koji se koristi za praćenje kvaliteta usluge (QoS) i pružanje povratnih informacija o prenosu medijskih tokova. Definisan u istom **RFC 3550** kao RTP, RTCP **periodično razmenjuje kontrolne pakete između učesnika u RTP sesiji**. Deljenje informacija kao što su gubitak paketa, jitter i vreme povratka pomaže u dijagnostikovanju i prilagođavanju mrežnim uslovima, poboljšavajući ukupni kvalitet medija. 3. **SRTP (Sigurni protokol za prenos u realnom vremenu)**: SRTP je proširenje RTP-a koje pruža **enkripciju**, **autentifikaciju poruka** i **zaštitu od ponovnog korišćenja** za medijske tokove, osiguravajući sigurnu transmisiju osetljivih audio i video podataka. Definisan u **RFC 3711**, SRTP koristi kriptografske algoritme kao što su AES za enkripciju i HMAC-SHA1 za autentifikaciju poruka. SRTP se često koristi u kombinaciji sa sigurnim signalizacijskim protokolima kao što je SIP preko TLS za pružanje end-to-end sigurnosti u multimedijalnoj komunikaciji. 4. **ZRTP (Zimmermann protokol za prenos u realnom vremenu)**: ZRTP je protokol za dogovor o kriptografskim ključevima koji pruža **end-to-end enkripciju** za RTP medijske tokove. Razvio ga je Phil Zimmermann, tvorac PGP-a, ZRTP je opisan u **RFC 6189**. Za razliku od SRTP-a, koji se oslanja na signalizacijske protokole za razmenu ključeva, ZRTP je dizajniran da funkcioniše nezavisno od signalizacijskog protokola. Koristi **Diffie-Hellman razmenu ključeva** za uspostavljanje zajedničke tajne između komunikacionih strana, bez potrebe za prethodnim poverenjem ili infrastrukturom javnog ključa (PKI). ZRTP takođe uključuje funkcije kao što su **Kratke autentifikacione niske (SAS)** za zaštitu od napada "čoveka u sredini". Ovi protokoli igraju ključne uloge u **isporuci i obezbeđivanju real-time multimedijalne komunikacije preko IP mreža**. Dok RTP i RTCP upravljaju stvarnim prenosom medija i praćenjem kvaliteta, SRTP i ZRTP osiguravaju da je preneseni medij zaštićen od prisluškivanja, manipulacije i napada ponovnog korišćenja. {{#include ../../../banners/hacktricks-training.md}}