
Danas je lansirana decentralizirana komunikacijska platforma Jami, koja se distribuira pod kodnim imenom Together. Prije toga, projekt se razvijao pod drugim imenom — Ring, a prije toga — SFLPhone. Godine 2018. decentralizirani messenger je preimenovan kako bi se izbjegli mogući sukobi s trgovinskim markama.
Kod messengera distribuira se pod GPLv3 licencom. Jami je dostupan za GNU/Linux, Windows, MacOS, iOS, Android i Android TV. Po želji se može odabrati jedan od sučelja temeljenih na Qt, GTK i Electronu. No, ovdje je najvažnije, naravno, da Jami razmjenu poruka bez oslanjanja na namjenske vanjske poslužitelje.
Umjesto toga, uspostavlja se izravna veza između korisnika pomoću end-to-end enkripcije. Ključevi su prisutni samo na strani klijenta. Postupak autentifikacije temelji se na X.509 certifikatima. Osim poruka, platforma omogućava audio i video pozive, organiziranje telekonferencija, razmjenu datoteka, te zajednički pristup datotekama i sadržaju ekrana.
Prvotno je ovaj projekt bio pozicioniran i razvijan kao softverski SIP telefon. No, kasnije su programeri odlučili proširiti funkcionalnosti projekta, zadržavajući kompatibilnost s SIP-om i omogućujući pozivanje putem ovog protokola. Program podržava različite kodeke, uključujući G711u, G711a, GSM, Speex, Opus, G.722, uz protokole ICE, SIP, TLS.
Među komunikacijskim funkcijama su otkazivanje prosljeđivanja poziva, zadržavanje poziva, snimanje poziva, povijest poziva s pretraživanjem, automatska kontrola glasnoće, integracija s adresarima GNOME i KDE.
Povezano s pouzdanim sustavom autentifikacije korisnika. Mehanizam se temelji na blockchainu — adresar radi na bazi Ethereuma. Povezivanje je moguće istovremeno s više uređaja, povezujući se s korisnikom bez obzira na to koji uređaj je aktivan. Adresar, koji odgovara za prijenos imena u RingID, realiziran je uz pomoć čvorova koje podržavaju različiti sudionici. Uz njihovu pomoć moguće je pokrenuti vlastiti čvor za održavanje lokalne kopije globalnog adresara.
Što se tiče adresiranja korisnika, programeri su koristili protokol OpenDHT za rješavanje ovog zadatka, koji ne zahtijeva primjenu centraliziranih registara s informacijama o korisnicima. Osnova Jami je jami-daemon, odgovoran za obradu veza, organizaciju komunikacije, te rad s videom i zvukom.
Interakcija s jami-daemon implementirana je na osnovi biblioteke LibRingClient. Ona je osnovna za izgradnju klijentskog softvera i osigurava potrebnu funkcionalnost, koja nije vezana za korisničko sučelje i platforme. A već na površini LibRingClient razvijaju se klijentske aplikacije.
Pri preradi P2P-mesendžera u telekomunikacijsku platformu, programeri nove i ažurirali postojeće funkcije. Evo ih:
- Poboljšan rad u mrežama s niskim propusnim opsegom.
- Smanjen broj korištenih resursa prilikom rada pod Androidom i iOS-om.
- Klijent za Windows je ponovno napisan. Može raditi i u načinu rada s tabletima.
- Pojavila su se sredstva za održavanje telekonferencija s više sudionika.
- Dodana je mogućnost mijenjanja načina prijenosa u konferenciji.
- Aplikaciju možete pretvoriti u server jednim klikom (to može biti potrebno, na primjer, za održavanje konferencija).
- Implementiran je server za upravljanje računima JAMS.
- Postoji mogućnost povezivanja dodataka koji proširuju mogućnosti osnovnog mesendžera.
Izvor: habr.com
