{"id":30842,"date":"2019-10-31T21:37:44","date_gmt":"2019-10-31T18:37:44","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb\/"},"modified":"2021-02-01T11:37:06","modified_gmt":"2021-02-01T09:37:06","slug":"ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb","title":{"rendered":"De la Skype la WebRTC: cum am organizat video-conferin\u021bele prin web","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"De la Skype la WebRTC: cum am organizat video-conferin\u021bele prin web\" src=\"\/wp-content\/uploads\/2019\/04\/92ea7848049d68c0b41b821bc8b83d54.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Video-conferin\u021ba este principalul mod de comunicare \u00eentre profesor \u0219i student pe platforma Vimbox. Am renun\u021bat demult la Skype, am \u00eencercat mai multe solu\u021bii externe \u0219i, \u00een final, ne-am oprit la combina\u021bia WebRTC \u2014 Janus-gateway. O vreme, totul a fost \u00een regul\u0103, dar au ap\u0103rut unele momente negative. \u00cen cele din urm\u0103, a fost creat\u0103 o direc\u021bie separat\u0103 pentru video.<\/p>\n<p>L-am rugat pe Kiril Rogovoi, liderul noii direc\u021bii, s\u0103 vorbeasc\u0103 despre evolu\u021bia video-conferin\u021belor \u00een Skyeng, problemele \u00eent\u00e2mpinate, solu\u021biile adoptate \u0219i workaround-urile pe care le-am aplicat. Sper\u0103m c\u0103 articolul va fi util pentru companiile care \u00ee\u0219i desf\u0103\u0219oar\u0103 video prin aplica\u021bia web.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"nemnogo-istorii\">Pu\u021bin istorie<\/h2>\n<p>\u00cen vara anului 2017, \u0219eful dezvolt\u0103rii Skyeng, Serghei Safonov, a sus\u021binut o prezentare la Backend Conf despre cum am \"renun\u021bat la Skype \u0219i am implementat WebRTC\". Cei interesa\u021bi pot viziona \u00eenregistrarea prezent\u0103rii pe <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/0BiE1Rt-bak\">linkul<\/a><\/noindex> (~45 min), iar aici voi rezuma esen\u021ba acesteia.<\/p>\n<p>Pentru \u0219coala Skyeng, video-conferin\u021ba a fost \u00eentotdeauna modalitatea prioritar\u0103 de comunicare dintre profesor \u0219i elev. La \u00eenceput, am folosit \"Skype\", dar acesta nu ne-a satisf\u0103cut deloc dintr-o serie \u00eentreag\u0103 de motive, \u00een primul r\u00e2nd din cauza lipsei de loguri \u0219i a imposibilit\u0103\u021bii integr\u0103rii directe \u00een aplica\u021bia web. Prin urmare, am efectuat diverse experimente.<\/p>\n<p>A\u0219adar, cerin\u021bele noastre pentru video-conferin\u021b\u0103 erau cam a\u0219a:<br \/>\n\u2014 stabilitate;<br \/>\n\u2014 cost redus per lec\u021bie;<br \/>\n\u2014 \u00eenregistrarea lec\u021biilor;<br \/>\n\u2014 monitorizarea timpului de vorbire (ne intereseaz\u0103 ca elevii s\u0103 vorbeasc\u0103 mai mult dec\u00e2t profesorul \u00een timpul lec\u021biilor);<br \/>\n\u2014 scalare liniar\u0103;<br \/>\n\u2014 posibilitatea de a utiliza at\u00e2t UDP, c\u00e2t \u0219i TCP.<\/p>\n<p>Primul, \u00een 2013, am \u00eencercat s\u0103 implement\u0103m Tokbox. Totul a fost bine, dar costurile erau foarte mari \u2013 113 ruble pe lec\u021bie \u2013 \u0219i afecta profiturile.<\/p>\n<p>Apoi, \u00een 2015, am integrat Voximplant. Aici aveam func\u021bia necesar\u0103 de monitorizare a timpului de vorbire, iar solu\u021bia era semnificativ mai ieftin\u0103: cu condi\u021bia \u00eenregistr\u0103rii doar a sunetului, costul era de 20 ruble pe lec\u021bie. Cu toate acestea, func\u021biona doar prin UDP \u0219i nu putea s\u0103 comute pe TCP. Cu toate acestea, \u00een cele din urm\u0103, aproximativ 40% dintre elevi \u00eel foloseau.<\/p>\n<p>Dup\u0103 un an, am \u00eenceput s\u0103 avem clien\u021bi corporate cu cerin\u021be specifice. De exemplu, totul trebuie s\u0103 func\u021bioneze prin browser, iar \u00een companie sunt deschise doar http \u0219i https; adic\u0103, f\u0103r\u0103 \u201eSkype\u201d \u0219i UDP. Clien\u021bii corporate = bani, a\u0219a c\u0103 ne-am \u00eentors la Tokbox, dar problema pre\u021bului a r\u0103mas neschimbat\u0103.<\/p>\n<h2 id=\"reshenie----webrtc-i-janus\">Solu\u021bia \u2014 WebRTC \u0219i Janus<\/h2>\n<p>Am decis s\u0103 folosim <noindex><a rel=\"nofollow\" href=\"https:\/\/webrtc.org\/\">platforma browser pentru comunica\u021bii video peer-to-peer WebRTC<\/a><\/noindex>. Aceasta se ocup\u0103 de stabilirea conexiunii, codarea \u0219i decodarea fluxurilor, sincronizarea pistelor \u0219i controlul calit\u0103\u021bii prin gestionarea glicurilor de re\u021bea. Din partea noastr\u0103, trebuie s\u0103 asigur\u0103m citirea fluxurilor de la camer\u0103 \u0219i microfon, redarea video, gestionarea conexiunii, stabilirea conexiunii WebRTC \u0219i transmiterea fluxurilor c\u0103tre aceasta, precum \u0219i transmiterea mesajelor de semnalizare \u00eentre clien\u021bi pentru stabilirea conexiunii (WebRTC descrie doar formatul datelor, dar nu \u0219i mecanismul de transmitere a acestora). \u00cen cazul \u00een care clien\u021bii sunt \u00een spatele unui NAT, WebRTC se conecteaz\u0103 la serverele STUN, iar dac\u0103 asta nu ajut\u0103, la serverele TURN.<\/p>\n<p>O conexiune p2p obi\u0219nuit\u0103 nu este suficient\u0103, deoarece dorim s\u0103 \u00eenregistr\u0103m lec\u021biile pentru analiza ulterioar\u0103 \u00een caz de pl\u00e2ngeri. Prin urmare, trimitem fluxurile WebRTC printr-un retransmi\u021b\u0103tor <noindex><a rel=\"nofollow\" href=\"https:\/\/janus.conf.meetecho.com\/\">Janus Gateway de la Meetecho<\/a><\/noindex>. Ca urmare, clien\u021bii nu cunosc adresele unii altora, v\u0103z\u00e2nd doar adresa serverului Janus; acesta \u00eendepline\u0219te \u0219i func\u021biile serverului de semnalizare. Janus are o mul\u021bime de func\u021bii necesare: trece automat la TCP dac\u0103 UDP este blocat pentru client; poate \u00eenregistra at\u00e2t fluxuri UDP, c\u00e2t \u0219i TCP; se scaleaz\u0103; exist\u0103 chiar \u0219i un plugin \u00eencorporat pentru teste de ecou. Dac\u0103 este necesar, se conecteaz\u0103 automat serverele STUN \u0219i TURN de la Twilio.<\/p>\n<p>\u00cen vara anului 2017, aveam dou\u0103 servere Janus plus un server suplimentar pentru procesarea fi\u0219ierelor brute \u00eenregistrate de audio \u0219i video, pentru a nu ocupa procesoarele principale. La conectare, serverele Janus erau selectate pe principiul par-impar (num\u0103rul de conexiune). Atunci, aceasta era suficient\u0103, oferind un confort de aproximativ patru ori, iar procentul de implementare a fost de aproximativ 80. \u00cen acela\u0219i timp, pre\u021bul a sc\u0103zut la ~2 ruble pe lec\u021bie, plus dezvoltare \u0219i asisten\u021b\u0103.<\/p>\n<p><img decoding=\"async\" alt=\"De la Skype la WebRTC: cum am organizat video-conferin\u021bele prin web\" src=\"\/wp-content\/uploads\/2019\/04\/fd1cd47a6625f1ddaa20ed2a6067be60.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<h2 id=\"vozvraschenie-k-teme-videosvyazi\">Revenind la tema comunica\u021biilor video<\/h2>\n<p>Monitoriz\u0103m constant feedback-ul de la elevi \u0219i profesori pentru a identifica \u0219i a rezolva problemele la timp. P\u00e2n\u0103 \u00een vara anului 2018, calitatea conexiunii s-a situat pe primul loc \u00een r\u00e2ndul pl\u00e2ngerilor. Pe de o parte, asta \u00eensemna c\u0103 am reu\u0219it s\u0103 remediem alte deficien\u021be. Pe de alt\u0103 parte, trebuia s\u0103 ac\u021bion\u0103m rapid: \u00een cazul unei lec\u021bii anulate, risc\u0103m s\u0103 pierdem valoarea acesteia, uneori chiar \u0219i valoarea achizi\u021biei urm\u0103torului pachet, iar \u00een cazul unei lec\u021bii introductive anulate \u2013 putem pierde complet un client poten\u021bial.<\/p>\n<p>\u00cen acel moment, videoconferin\u021ba noastr\u0103 se afla \u00eenc\u0103 \u00een regimul MVP. Mai simplu spus, am lansat, a func\u021bionat, am scalat o dat\u0103, am \u00een\u021beles cum se face \u2013 \u0219i a fost grozav. If it works, don\u2019t fix it. Nimeni nu s-a ocupat \u00een mod special de calitatea conexiunii. P\u00e2n\u0103 \u00een august a devenit evident c\u0103 nu mai putem continua astfel, a\u0219a c\u0103 am lansat o direc\u021bie separat\u0103 pentru a \u00een\u021belege ce nu merge bine cu WebRTC \u0219i Janus.<\/p>\n<p>La \u00eenceput, aceast\u0103 direc\u021bie a primit: o solu\u021bie MVP, f\u0103r\u0103 metrici, f\u0103r\u0103 obiective, f\u0103r\u0103 procese de \u00eembun\u0103t\u0103\u021bire, \u00een timp ce 7% dintre profesori se pl\u00e2ng de calitatea conexiunii (datele despre elevi nu erau disponibile).<\/p>\n<p><img decoding=\"async\" alt=\"De la Skype la WebRTC: cum am organizat video-conferin\u021bele prin web\" src=\"\/wp-content\/uploads\/2019\/04\/f8134229567f1187b00ec5c21a79800c.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<h2 id=\"novoe-napravlenie-beretsya-za-rabotu\">Noua direc\u021bie \u00ee\u0219i ia angajamentele<\/h2>\n<p>Echipa arat\u0103 cam a\u0219a:<\/p>\n<ul>\n<li>\u0218eful direc\u021biei, care este \u0219i principalul dezvoltator.<\/li>\n<li>QA ajut\u0103 la testarea schimb\u0103rilor, caut\u0103 noi modalit\u0103\u021bi de a crea condi\u021bii instabile pentru conexiune, raporteaz\u0103 problemele de pe linia frontului.<\/li>\n<li>Analistul caut\u0103 constant diverse corela\u021bii \u00een datele tehnice, \u00eembun\u0103t\u0103\u021be\u0219te analiza feedback-ului utilizatorilor, verific\u0103 rezultatele experimentelor.<\/li>\n<li>Product manager-ul ajut\u0103 cu direc\u021bia general\u0103 \u0219i alocarea resurselor pentru experimente.<\/li>\n<li>La programare \u0219i sarcini conexe, adesea ajut\u0103 un al doilea dezvoltator.<\/li>\n<\/ul>\n<p>La \u00eenceput, am configurat o metric\u0103 relativ fiabil\u0103, care monitoriza schimb\u0103rile \u00een evaluarea calit\u0103\u021bii conexiunii (media pe zile, s\u0103pt\u0103m\u00e2ni, luni). La acel moment, acestea erau evalu\u0103ri din partea profesorilor, iar ulterior au fost ad\u0103ugate \u0219i evalu\u0103rile din partea studen\u021bilor. Apoi, am \u00eenceput s\u0103 formul\u0103m ipoteze despre ce nu func\u021bioneaz\u0103, s\u0103 corect\u0103m \u0219i s\u0103 observ\u0103m schimb\u0103rile \u00een dinamica lor. Am abordat fructele la \u00eendem\u00e2n\u0103: de exemplu, am \u00eenlocuit codec-ul vp8 cu vp9, iar indicatorii s-au \u00eembun\u0103t\u0103\u021bit. Am \u00eencercat s\u0103 modific\u0103m set\u0103rile Janus, s\u0103 desf\u0103\u0219ur\u0103m alte experimente \u2013 \u00een majoritatea cazurilor neav\u00e2nd rezultate.<\/p>\n<p>\u00cen a doua etap\u0103 a ap\u0103rut ipoteza: WebRTC este o solu\u021bie peer-to-peer, iar noi folosim un server la mijloc. Poate c\u0103 problema se afl\u0103 aici? Am \u00eenceput s\u0103 investig\u0103m \u0219i am descoperit aici cea mai semnificativ\u0103 \u00eembun\u0103t\u0103\u021bire de p\u00e2n\u0103 acum.<\/p>\n<p>\u00cen acel moment, serverul era selectat din pool printr-un algoritm destul de simplu: fiecare server avea o \u201egreutate\u201d proprie, \u00een func\u021bie de l\u0103\u021bimea de band\u0103 \u0219i puterea acestuia, iar noi \u00eencercam s\u0103 trimitem utilizatorul pe cel cu \u201egreutatea\u201d mai mare, f\u0103r\u0103 a lua \u00een considerare loca\u021bia geografic\u0103 a utilizatorului. Astfel, un profesor din Sankt Petersburg putea comunica cu un elev din Siberia prin Moscova, \u0219i nu prin serverul nostru Janus din Sankt Petersburg.<\/p>\n<p>Algoritmul a fost ref\u0103cut: acum, atunci c\u00e2nd utilizatorul deschide platforma noastr\u0103, noi colect\u0103m prin Ajax ping-uri de la el c\u0103tre toate serverele. La stabilirea conexiunii, alegem o pereche de ping-uri (profesor-server \u0219i elev-server) cu suma cea mai mic\u0103. Un ping mai mic \u00eenseamn\u0103 o distan\u021b\u0103 mai mic\u0103 p\u00e2n\u0103 la server; o distan\u021b\u0103 mai mic\u0103 \u2014 o probabilitate mai mic\u0103 de pierdere a pachetelor; pierderea pachetelor este cel mai mare factor negativ \u00een comunicarea video. Propor\u021bia negativului a sc\u0103zut de dou\u0103 ori \u00een trei luni (de\u0219i, \u00een aceast\u0103 perioad\u0103, s-au desf\u0103\u0219urat \u0219i alte experimente, dar acesta a influen\u021bat cu siguran\u021b\u0103 cel mai mult).<\/p>\n<p><img decoding=\"async\" alt=\"De la Skype la WebRTC: cum am organizat video-conferin\u021bele prin web\" src=\"\/wp-content\/uploads\/2019\/04\/a106f7701b34c03080251710adf2a7a0.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p><img decoding=\"async\" alt=\"De la Skype la WebRTC: cum am organizat video-conferin\u021bele prin web\" src=\"\/wp-content\/uploads\/2019\/04\/2cd6782e5f4182004a0c0d9dd05dba5b.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>Recent, we discovered another non-obvious but seemingly important thing: instead of a single powerful Janus server on a thick channel, it's better to have two simpler ones with lower bandwidth. This became clear after we purchased powerful machines in hopes of cramming as many rooms (communication sessions) as possible at the same time. Servers have a bandwidth limit that can precisely translate into the number of rooms\u2014we know how many can be opened, for example, on 300 Mbit\/s. As soon as there are too many rooms open on the server, we stop selecting it for new sessions until the load decreases. The idea was that by purchasing a powerful machine, we would maximize the channel loading until we hit the CPU and memory, rather than the bandwidth. However, it turned out that after a certain number of opened rooms (420), despite CPU, memory, and disk usage being far from the limits, negative feedback would start arriving at tech support. Apparently, something deteriorates inside Janus, perhaps there are also limitations there. We began experimenting, reduced the bandwidth limit from 300 to 200 Mbit\/s, and the problems disappeared. Now we've bought three new servers with lower limits and specifications, thinking this will lead to a stable improvement in communication quality. We didn\u2019t dive into what the issue was; quick fixes are our approach. In our defense, we needed to solve the pressing issue as quickly as possible, rather than beautifully; additionally, Janus is a black box for us, written in C, and digging into it is very costly.<\/p>\n<p><img decoding=\"async\" alt=\"De la Skype la WebRTC: cum am organizat video-conferin\u021bele prin web\" src=\"\/wp-content\/uploads\/2019\/04\/21ad5290ed3e40bdf0b26dfb5c20cdf8.jpg\" style=\"display:block;margin: 0 auto;\"><\/p>\n<p>During the process, we:<\/p>\n<ul>\n<li>updated all dependencies that could be updated, both on the server and on the client (these were also experiments, we monitored the results);<\/li>\n<li>fixed all identified bugs related to specific cases, for example when the connection dropped and didn't recover automatically;<\/li>\n<li>held numerous meetings with companies working in the field of video communication and familiar with our problems: streaming games, hosting webinars; tested everything that seemed useful to us;<\/li>\n<li>conducted a technical review of the hardware and communication quality from teachers who received the most complaints.<\/li>\n<\/ul>\n<p>Experimentele realizate \u0219i modific\u0103rile ulterioare au permis reducerea nemul\u021bumirii legate de calitatea comunic\u0103rii \u00een r\u00e2ndul profesorilor de la 7,1% \u00een ianuarie 2018 la 2,5% \u00een ianuarie 2019.<\/p>\n<h2 id=\"chto-dalshe\">Ce urmeaz\u0103<\/h2>\n<p>Stabilizarea platformei noastre Vimbox este unul dintre cele mai importante proiecte ale companiei pentru 2019. Avem mari speran\u021be c\u0103 vom reu\u0219i s\u0103 men\u021binem aceast\u0103 dinamic\u0103 \u0219i s\u0103 nu mai vedem comunicarea video \u00een topul pl\u00e2ngerilor. \u00cen\u021belegem c\u0103 o parte semnificativ\u0103 din aceste pl\u00e2ngeri este legat\u0103 de lagurile calculatoarelor \u0219i internetului utilizatorilor, dar trebuie s\u0103 definim aceast\u0103 parte \u0219i s\u0103 rezolv\u0103m restul problemelor. Restul sunt probleme tehnice, iar se pare c\u0103 ar trebui s\u0103 ne putem descurca cu ele.<\/p>\n<p>Principalul obstacol este c\u0103 nu \u0219tim la ce nivel putem \u00eembun\u0103t\u0103\u021bi calitatea. Identificarea acestui plafon este sarcina principal\u0103. De aceea, au fost planificate dou\u0103 experimente:<\/p>\n<ol>\n<li>s\u0103 compar\u0103m video prin Janus cu p2p obi\u0219nuit \u00een condi\u021bii reale. Acest experiment a fost deja realizat, f\u0103r\u0103 o diferen\u021b\u0103 statistic semnificativ\u0103 \u00eentre solu\u021bia noastr\u0103 \u0219i p2p;<\/li>\n<li>vom instala servicii (costisitoare) de la companii care c\u00e2\u0219tig\u0103 exclusiv din solu\u021bii de videoconferin\u021b\u0103 \u0219i vom compara cantitatea de feedback negativ primit de la acestea cu ceea ce avem.<\/li>\n<\/ol>\n<p>Aceste dou\u0103 experimente ne vor permite s\u0103 definim un obiectiv realizabil \u0219i s\u0103 ne concentr\u0103m asupra acestuia.<\/p>\n<p>\u00cen plus, exist\u0103 o serie de sarcini care sunt rezolvate \u00een mod curent:<\/p>\n<ul>\n<li>cre\u0103m o metric\u0103 tehnic\u0103 pentru calitatea comunica\u021biei \u00een loc de feedback subiectiv;<\/li>\n<li>realiz\u0103m jurnale mai detaliate ale sesiunilor pentru a analiza mai precis \u00eentreruperile care au loc, \u00een\u021beleg\u00e2nd c\u00e2nd \u0219i unde au ap\u0103rut, precum \u0219i evenimentele aparent nesemnificative care s-au \u00eent\u00e2mplat \u00een acel moment;<\/li>\n<li>preg\u0103tim un test automatizat pentru calitatea comunica\u021biei \u00eenainte de lec\u021bie, precum \u0219i vom oferi clientului posibilitatea de a testa manual comunicarea, pentru a reduce num\u0103rul de pl\u00e2ngeri cauzate de hardware-ul \u0219i conexiunea acestuia;<\/li>\n<li>vom dezvolta \u0219i vom desf\u0103\u0219ura mai multe teste de stres pentru videoconferin\u021b\u0103 \u00een condi\u021bii proaste, cu pierderi variabile de pachete, etc.;<\/li>\n<li>vom modifica comportamentul serverelor \u00een caz de probleme pentru a \u00eembun\u0103t\u0103\u021bi rezilien\u021ba;<\/li>\n<li>vom alerta utilizatorul dac\u0103 are probleme cu comunicarea, a\u0219a cum face \u0219i Skype, pentru a-l ajuta s\u0103 \u00een\u021beleag\u0103 c\u0103 problema este de partea lui.<\/li>\n<\/ul>\n<p>\u00cencep\u00e2nd din aprilie, direc\u021bia video devine un proiect distinct \u0219i complet \u00een cadrul Skyeng, dedicat unui produs propriu, nu doar o parte din Vimbox. Asta \u00eenseamn\u0103 c\u0103 \u00eencepem s\u0103 c\u0103ut\u0103m oameni pentru <noindex><a rel=\"nofollow\" href=\"https:\/\/spb.hh.ru\/vacancy\/30766332\">a lucra cu video \u00een regim full-time<\/a><\/noindex>. Ei bine, ca de obicei <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skyeng\/blog\/446444\/\">caut\u0103m mul\u021bi oameni buni<\/a><\/noindex>.<\/p>\n<p>\u0218i, bine\u00een\u021beles, continu\u0103m s\u0103 comunic\u0103m activ cu persoanele \u0219i companiile care lucreaz\u0103 \u00een domeniul videoconferin\u021belor. Dac\u0103 dori\u021bi s\u0103 \u00eemp\u0103rt\u0103\u0219i\u021bi experien\u021ba cu noi \u2014 ne-ar face pl\u0103cere! L\u0103sa\u021bi comentarii, contacta\u021bi-ne \u2014 vom r\u0103spunde tuturor.<\/p>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skyeng\/blog\/446444\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0438\u0434\u0435\u043e\u0441\u0432\u044f\u0437\u044c \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Vimbox. \u041c\u044b \u0434\u0430\u0432\u043d\u043e \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043e\u0442 Skype, \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u0441\u0432\u044f\u0437\u043a\u0435 WebRTC \u2014 Janus-gateway. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0441 \u0432\u0441\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e, \u043d\u043e \u0432\u0441\u0435 \u0436\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u043b\u0438 \u0432\u044b\u043b\u0435\u0437\u0430\u0442\u044c. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0431\u044b\u043b\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u0432\u0438\u0434\u0435\u043e. \u042f \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b \u041a\u0438\u0440\u0438\u043b\u043b\u0430 \u0420\u043e\u0433\u043e\u0432\u043e\u0433\u043e, \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":22826,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-30842","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0438\u0434\u0435\u043e\u0441\u0432\u044f\u0437\u044c \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u0449\u0435\u043d\u0438\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u0442 Skype \u0434\u043e WebRTC: \u043a\u0430\u043a \u043c\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u0438\u0434\u0435\u043e\u0441\u0432\u044f\u0437\u044c \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0438\u0434\u0435\u043e\u0441\u0432\u044f\u0437\u044c \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u0449\u0435\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:37:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-02-01T09:37:06+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47De la Skype la WebRTC: cum am organizat videoconferin\u021be prin web | ProHoster","description":"Videoconferin\u021ba este principalul mod de comunicare.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u0442 Skype \u0434\u043e WebRTC: \u043a\u0430\u043a \u043c\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u0438\u0434\u0435\u043e\u0441\u0432\u044f\u0437\u044c \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431 | ProHoster","og:description":"\u0412\u0438\u0434\u0435\u043e\u0441\u0432\u044f\u0437\u044c \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u0449\u0435\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/ot-skype-do-webrtc-kak-my-organizovali-videosvyaz-cherez-veb","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:37:44+00:00","article:modified_time":"2021-02-01T09:37:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30842","title":null,"description":"","keywords":"","keyphrases":null,"primary_term":null,"canonical_url":"","og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 03:14:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:28:46","updated":"2026-01-21 03:14:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/30842","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=30842"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/30842\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/22826"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=30842"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=30842"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=30842"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}