Guida Come effettuare meeting senza Zoom/Hangouts con alternative open-source

Stefano Novelli

Fondatore
Amministratore
19 Novembre 2007
7,113
821
8,179
3,236
È inevitabile, specie in questo periodo, che ci si trovi a dover vivere la vita d’ufficio in videoconferenza. Chi lavora con un computer questi sono tempi duri; le nostre vite dovevano essere più semplici e credo che così non è.
Ma ora siamo dentro alla spirale del lavoro in smartworking (quanto fa fico dirlo ultimamente?) che però è spesso poco smart (intelligente) ma molto working.
Ed ecco che risbucano dalla tomba Google Hangouts (sinceramente pensavo avesse chiuso, come da tradizione Google) e soprattutto Zoom. Mi aspetttavo anche la ribalta di Skype, invece ci ho fatto un solo meeting fino ad oggi (contro una ventina su Google e una cinquantina su Google).
[TITOLO]La dura legge del Closed Source[/TITOLO]
Sposare il Closed-Source è un atto di fede che si fa con la Software House. Non si conosce il motore all’interno del programma, sappiamo solo che funziona e basta.
Con l’Open-Source la fiducia fra sviluppatori e utenti è reciproca. Non c’è bisogno di essere programmatori, né tantomeno di leggere il codice sorgente per sapere che fine fanno i vostri dati, però confidiamo che la Community della rete lo abbia spolpato per benino, e che alcune anime pie abbiano contribuito a renderlo un programma migliore.
[TITOLO]Il caso Zoom-Gate[/TITOLO]
Il recente caso di breach ai danni di Zoom, con un furto di circa 500.000 account in vendita a 0.002$/login, ha fatto traballare i tavoli di diversi utenti “smart”. Alcuni sono scappati a gambe levate, altri — come sempre — non hanno mai niente da nascondere.
Non che il resto dei software sia inviolabile — come non lo è nessun software — ma la sua struttura decentralizzata ci consente di avere una sicurezza relativamente maggiore rispetto ad un unico endpoint.
Inoltre, i sistemi che vediamo oggi sono esenti da ogni registrazione (su Jitsi ci si può registrare via app per una più pratica gestione), consentendo una più difficile associazione dei dati.
[TITOLO]Io Resto a Casa… .work[/TITOLO]
Ecco che mentre navigo sul web mi capita di imbattermi in iorestoacasa.work, un aggregatore di canali basati su Jitsi/Multiparty Meeting. Prima di addentrarci in virtuosismi tecnici cerchiamo di capire cos’è.
Il progetto iorestoacasa.work fornisce, a chi ne ha bisogno, un canale in cui poter avviare una stanza virtuale in cui è possibile comunicare via video e chat, esattamente come fanno Google Hangouts o Zoom.
Le stanze vengono ospitate da aziende terze, le quali forniscono i server su cui si appoggiano gli utenti. Le aziende forniscono questi server, in cambio di una visibilità
1*DfszIhgRNx63XCIa3s8cHg.jpeg

È possibile scegliere tra un server Multiparty Meeting (in blu) e/o Jitsi (in fucsia). Nel riquadro rosso lo sponsor.

[TITOLO]Jitsi o Multiparty Meeting[/TITOLO]
La scelta di uno o l’altro dipende fondamentalmente da come si intende gestire la conversazione:
  • Multiparty Meeting: è interamente basato sul protocollo WebRTC. Questo permette di collegarsi ad una live-chat usando solo un browser. Ha meno funzioni di Jitsi, ed una qualità (video) leggermente peggiore, ma è più stabile per chi ha una connessione lenta.
  • Jitsi: è possibile utilizzarlo sia tramite WebRTC (browser) che tramite App (da smartphone). Rispetto a MM ha più funzioni (come la gestione di moderazione o l’alzata di mano) ed è relativamente migliore, ma è meno indicata per chi ha una connessione lenta. *Al momento Safari e altri browser non-Webkit non sono supportati.
That’s all! Il mio consiglio è quello di adattarsi in base alle esigenze:
  • Per poche persone: se è una call tra amici probabilmente Multiparty fa al caso vostro. Quando tutti saranno connessi, consiglio di bloccare l’accesso (per evitare l’ingresso di cazzeggiatori). È consentita una chat e lo share screen.
  • Per tante persone e conferenze di lavoro: Jitsi integra tutto ciò che ha Multiparty Meeting, in più permette di assegnare una password al canale, di alzare la mano, di mutare altri utenti e così via.
1*bm4ULNCCtDX5oBtY9SXPKA.png

Test video di Multiparty Meeting
1*qvM1tirhtR1uVs69wOJTVQ.png

Test video di Jitsi

Complessivamente, alla fine ho scelto Jitsi per le mie attività di conference-call. Oltretutto da app offre la pratica funzione (come Hangouts e Zoom) di condividere un link di una stanza ad un evento in calendario.

1*3QDpjkRZXHnuHtvI3C3pwQ.jpeg

Jitsi — da app smartphone — permette anche di organizzare call e di condividerle in calendario!

E ora va, il mondo delle conference-call (sicure) ti aspetta!
Se invece vuoi crearti il tuo server Multiparty Meeting/Jitsi, continua la lettura :)

[TITOLO]Ti vuoi creare un server?[/TITOLO]
Bene bene, eccoci nella parte più tecnico/laboriosa, quella pensata per chi è privacy-paranoico e vuole un serverino tutto per sé! Puoi anche decidere di condividerlo su iorestoacasa.work: a tal proposito ti consiglio di visitare il sito ufficiale per ulteriori informazioni.
Se vuoi solo videochattare con i tuoi amici/collaboratori ti ricordo che potrai avvalerti di iorestoacasa.work o dei server ufficiali messi a disposizione da Multiparty Meeting (https://letsmeet.no) o da Jitsi (https://meet.jit.si).
Innanzitutto dovrai procurarti un server con queste caratteristiche:
  • Una macchina dedicata allo scopo, non condivisa con altri servizi (http, posta etc…)
  • IPv4 statico, se possibile in Italia
  • Connessione 100 Mbps simmetrica, consigliata 1Gbps (4Mbps/utente)
  • 4 CPU server grade (Xeon o analogo)
  • 4GB RAM
Se non hai un server puoi decidere di affittarne uno da un rivenditore. Se vuoi contribuire al mio lavoro puoi decidere di prenderlo da Netsons da qui, è un’azienda seria e Italia che opera nel settore da anni.
Nota: nella nostra guida useremo Ubuntu Server 19.04. Sentiti libero di usare altre distribuzioni, purché tu ne abbia le competenze per amministrarle!
Nota 2: se stai creando un server privato (quindi non collegato ai repository di iorestoacasa.work) probabilmente la macchina dedicata potrà essere molto meno performante. Anche una VPS da pochi €/mese potrà essere adeguata. Fai le dovute prove e se vuoi fammi sapere com’è andata :)
Idea: sai che potresti creare un server aziendale interno, dove i vari reparti potrebbero collegarsi, passando direttamente dalla rete locale? In questo caso, addio sale riunioni! O, se siete una famiglia numerosa, anche in casa! :)
[TITOLO]Cosa e come installare[/TITOLO]
Di seguito vediamo come installare Multiparty Meeting e Jitsi. In caso di problemi, fai sempre riferimento alle sorgenti linkate degli How-To.
Giusto un paio di termini:
  • IRAC: si fa riferimento al repository “IoRestoACasa.work”. Se si vuole contribuire al progetto, segui questo percorso.
  • Vanilla: si fa riferimento all’installazione dei servizi, senza influenze esterne. Se si vuole un server privato, segui questo percorso.
  • Docker: ci si riferisce ai contenitori docker. Questi solitamente sono più semplici da utilizzare e hanno al loro interno tutto il necessario per funzionare, con poche configurazioni da fare.
[TITOLO]Installare Multiparty Meeting Server[/TITOLO]
Prendi sempre come riferimento il repository ufficiale Github (per la versione stand-alone); se vuoi contribuire al progetto iorestoacasa.work, il repository è qui.
[SOTTOTITOLO]Metodo automatico (Docker/IRAC)[/SOTTOTITOLO]
Questa è la procedura ufficiale del team di iorestoacasa.work. Se avete bisogno e volete contribuire potete collegarvi al canale Telegram ufficiale. NB: non si fa supporto (credo) a server Vanilla ma solo quelli che vogliono contribuire!
  1. Per prima cosa sarà necessario installare docker e docker-compose. Puoi cliccare sui link oppure scendere in fondo a questa pagina e seguire gli “extra” consigliati. A te la scelta.
  2. Seguirà l’installazione di git con il comando:
    $ sudo apt install git
  3. Avrai bisogno di un certificato SSL valido; puoi utilizzare Let’s Encrypt, così da ottenerne gratuitamente uno. Puoi anche usare certbot per ottenerne uno:
    $ sudo apt install certbot $ sudo certbot certonly -d nomedominio.com --standalone
  4. Clona il repository e accedi alla cartella:
    $ cd /opt $ git clone https://github.com/iorestoacasa-work/mm.git $ cd mm
  5. Copia il certificato:
    $ cp /etc/letsencrypt/live/TUODOMINIO/fullchain.pem certs/ $ cp /etc/letsencrypt/live/TUODOMINIO/privkey.pem certs/
  6. Modifica i file di configurazione, prendendo la struttura dagli esempi. I tre file dovranno essere modificati; i parametri saranno quelli con il valore CHANGEME.
    $ cp coturn.example.conf coturn.conf $ cp configs/app/config.example.js configs/app/config.js $ cp configs/server/config.example.js configs/server/config.js
  7. Avvia il container:
    $ docker-compose up -d
  8. Puoi verificare che il server sia online visitando http://hostname.scelto.it:8081/metrics
A questo punto non ti resta che comunicare l’esito agli admin avviando una issue su Github; tutte le informazioni puoi trovarle sul repository ufficiale.
[SOTTOTITOLO]Metodo automatico (Docker/Vanilla)[/SOTTOTITOLO]
La procedura è molto simile a quella vista in precedenza. Cambiano alcuni valori, che puoi trovare insieme all’immagine docker, a questo link.
[SOTTOTITOLO]Metodo automatico (Ansible/Vanilla)[/SOTTOTITOLO]
Questa è probabilmente la procedura più semplice di tutte ma è limitata solo per distribuzioni basate su Debian/Ubuntu. È necessario l’uso di ansible, un modulo presente in pip3. La procedura è facilmente descritta in questo meraviglioso asciicinema. Buona visione!
[SOTTOTITOLO]Metodo manuale (Vanilla)[/SOTTOTITOLO]
Se vuoi procedere all’installazione manuale, senza contribuire a IoRestoACasa.work, dovrai seguire questa procedura step-by-step.
Questa procedura potrebbe cambiare da un momento all’altro (causa cambio versione) ma gli step sono pressappoco quelli che vedrai. Puoi usarli come reference in qualunque momento.
  1. Installa nodejs in versione v10.*. Le istruzioni per ogni tipo di distribuzione sono linkate qui.
  2. Installa il software necessario:
    $ sudo apt install npm build-essential redis
  3. Clona il progetto dal repository git:
    $ git clone [URL]https://github.com/havfo/multiparty-meeting.git[/URL] $ cd multiparty-meeting
  4. Rinomina la configurazione del server d’esempio con quella che userai:
    $ cp server/config/config.example.js server/config/config.js
  5. Fai la stessa cosa, stavolta per la configurazione dell’app:
    $ cp app/public/config/config.example.js app/public/config/config.js
  6. I due file config.js andranno configurati, riempiendo i campi richiesti (porte in ascolto, tipi di login, certificato TLS valido e così via).
  7. Avvia il browser app:
    $ cd app $ npm install $ npm run build
    tutti i file lato client saranno salvati in server/public.
  8. Avvia il server:
    $ cd .. $ cd server $ npm install
  9. Procedi al test in locale. È consigliabile non avviarlo da root:
    $ cd server $ npm start
  10. Testa il servizio collegandoti all’indirizzo https://ip-o-dominio:3443/roomname.
  11. Se tutto funziona stoppa il servizio, quindi copia i file .service nella location di systemd, così da averlo sempre a portata di mano.
    $ cp multiparty-meeting.service /etc/systemd/system/ $ edit /etc/systemd/system/multiparty-meeting.service
  12. Riavvia il systemd e avvia il servizio:
    $ systemctl daemon-reload $ systemctl start multiparty-meeting
  13. Per abilitare il servizio in start-up mode con il server, abilitalo con:
    $ systemctl enable multiparty-meeting
A questo punto dovresti avere il servizio funzionante. È consigliabile inoltre proteggere il tutto con il TURN Server, che consentirà di veicolare e proteggere il traffico VoIP. Una volta installato, ricordati di compilare gli accessi all’interno di:
$ nano app/public/config/config.js
[TITOLO]Installare Jitsi Server[/TITOLO]
[SOTTOTITOLO]Metodo automatico (Docker/IRAC)[/SOTTOTITOLO]
Installare Jitsi da condividere con IRAC è molto simile alla procedura di MM.
  1. Preinstalla docker e docker-compose. Puoi usare i link che ti ho citato oppure scorri in fondo alla pagina e leggi gli extra, lì troverai le guide :)
  2. Installa GIT:
    $ sudo apt install git
  3. Clona i repository e accedi alla cartella:
    $ cd /opt $ git clone https://github.com/iorestoacasa-work/docker-jitsi-meet.git $ cd docker-jitsi-meet
  4. Genera il file di configurazione, prendendo la struttura dall’esempio e modificane i primi 8 valori:
    $ cp env.example .env
  5. Genera la password di sicurezza tramite lo script:
    $ ./gen-passwords.sh
  6. Avvia il docker:
    $ docker-compose up -d
  7. Puoi verificare il funzionamento del server navigandolo su https://IPODOMINIO:8081
Se hai già un server Jitsi e vuoi condividerlo con iorestoacasa.work, qui troverai gli script per aggiungerne le metriche. Come sempre, in caso di dubbi, fai riferimento al sito web ufficiale.
[SOTTOTITOLO]Metodo manuale (Vanilla)[/SOTTOTITOLO]
  1. Se stai usando Ubuntu, per prima cosa abilita i repository universe da cui prenderemo le dipendenze richieste:
    $ sudo apt-add-repository universe
  2. Se vuoi che la macchina venga risolta tramite un FQDN (es. meet.example.org) per prima cosa assicurati che in /etc/hostname sia presente. A questo punto aggiungi l’hostname nel file /etc/hosts secondo questa sintassi:
    127.0.0.1 localhost meet.example.org
  3. Aggiungi i repository di Jitsi alla tua distribuzione:
    $ echo ‘deb [URL]https://download.jitsi.org[/URL] stable/’ >> /etc/apt/sources.list.d/jitsi-stable.list $ wget -qO — [URL]https://download.jitsi.org/jitsi-key.gpg.key[/URL] | sudo apt-key add -
  4. Assicurati che le porte del Firewall siano aperte, in particolare:
    - 80 TCP
    - 443 TCP
    - 10000 UDP
  5. L’autoinstaller verificherà la presenza di Nginx o Apache. Se uno di questi non fosse disponibile, verrà installato Nginx. Tienilo a mente qualora volessi installare Apache. Detto ciò, installiamo rispettivamente il supporto ai repository HTTPS, effettuiamo un update dei repo e avviamo l’installazione del server:
    $ apt-get install apt-transport-https $ apt-get update $ apt-get -y install jitsi-meet
  6. Ti verrà chiesto come configurare l’host. In particolare, assicurati di indicare lo stesso FQDN indicato sul punto 2 (in caso contrario, puoi sempre usare l’IP della macchina).
  7. Genera il certificato TLS:
    /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
A questo punto il server dovrebbe essere accessibile all’indirizzo https://IP-O-DOMINIO (non è necessario specificare la porta, in quanto è la 80).
Inoltre, vorresti poter installare Jigasi, il gateway server. Per farlo ti basterà lanciare:
$ sudo apt-get -y install jigasi
oppure
$ wget [URL]https://download.jitsi.org/unstable/jigasi_1.0-107_amd64.deb[/URL] $ dpkg -i jigasi_1.0–107_amd64.deb
[TITOLO]Extra: installare Docker su Ubuntu Server[/TITOLO]
La procedura per installare i due pacchetti è abbastanza semplice. Vediamo come fare, step-by-step.
  1. Aggiorniamo la lista dei repository:
    $ sudo apt -y update
  2. Installiamo le dipendenze:
    $ sudo apt -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  3. Se presenti vecchie versioni, eliminiamole:
    $ sudo apt remove docker docker-engine docker.io containerd runc
  4. Importiamo la chiave GPG del repository Docker:
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  5. Aggiungi Docker CE ai repository:
    $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  6. Installa Docker:
    $ sudo apt update && sudo apt -y install docker-ce docker-ce-cli containerd.io
  7. Aggiungi il tuo utente al gruppo docker:
    $ sudo usermod -aG docker $USER $ newgrp docker
  8. Puoi verificare la presenza di docker lanciando:
    $ docker version
[TITOLO]Extra 2: installare Docker-Compose su Ubuntu Server[/TITOLO]
La procedura di installazione di Docker Compose è molto semplice. Per prima cosa scarichiamo il pacchetto:
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
quindi assegniamo i permessi di esecuzione:
$ sudo chmod +x /usr/local/bin/docker-compose
infine, eseguiamo lo script:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Puoi verificarne l’esecuzione lanciando:
$ docker-compose --version


1*RbChWHq80hJQNALJmbOYTw.png

L’immagine di copertina è ad opera di Ana Miminoshvili
 
Una guida davvero ben fatta! Peccato solo che Jitsi non supporti ancora ARM, credo che un Pi4 4GB sarebbe più che sufficiente per reggere una piccola videochiamata di gruppo. Ora come ora, il maggior svantaggio di Jitsi è che ancora non è pienamente supportato da Firefox (e Safari), anche se Mozilla ci sta lavorando (attenzione: link youtube :eek:)
Aggiungo che ci sarebbe anche BigBlueButton, è sempre opensource ma per qualche motivo non riceve molta attenzione. I suoi punti degni di nota sono che supporta note condivise e permette di scegliere se entrare da partecipante o spettatore. Non sapevo della sua esistenza fino a quando il mio prof linuxaro non ha deciso di provarlo. :)
 
Una guida davvero ben fatta! Peccato solo che Jitsi non supporti ancora ARM, credo che un Pi4 4GB sarebbe più che sufficiente per reggere una piccola videochiamata di gruppo. Ora come ora, il maggior svantaggio di Jitsi è che ancora non è pienamente supportato da Firefox (e Safari), anche se Mozilla ci sta lavorando (attenzione: link youtube :eek:)
Aggiungo che ci sarebbe anche BigBlueButton, è sempre opensource ma per qualche motivo non riceve molta attenzione. I suoi punti degni di nota sono che supporta note condivise e permette di scegliere se entrare da partecipante o spettatore. Non sapevo della sua esistenza fino a quando il mio prof linuxaro non ha deciso di provarlo. :)
Già, il supporto ARM speriamo arrivi presto, nel frattempo si può sempre usare un server gratuito offerto da loro :)
BigBlueButton sinceramente non lo conoscevo ma grazie per avermelo segnalato, lo aggiungerò appena possibile :)
 
  • Mi piace
Reazioni: user_w1th_@_smile