iorestoacasa-work / iorestoacasa.work Goto Github PK
View Code? Open in Web Editor NEWFrontend of the video calling platform iorestoacasa.work
Home Page: https://iorestoacasa.work
License: GNU Affero General Public License v3.0
Frontend of the video calling platform iorestoacasa.work
Home Page: https://iorestoacasa.work
License: GNU Affero General Public License v3.0
questo è un compito adatto anche a non tecnici.
Sarebbe bello tradurre l'interfaccia del software Multiparty Meeting in italiano.
Sono 139 stringhe, nemmeno troppe 😄
Basta andare qua:
https://github.com/havfo/multiparty-meeting/blob/develop/app/src/translations/en.json
scaricare il file, rinominarlo in it.json
e tradurre le frasi.
le parole tra parentesi graffe vanno lasciate come sono.
Ad esempio:
"room.peerChangedDisplayName": "{oldDisplayName} is now {displayName}",
"room.peerChangedDisplayName": "{oldDisplayName} ora si chiama {displayName}",
https://it.wikibooks.org/wiki/Software_libero_a_scuola/Jitsi-installazione-su-vps
Usare questa guida come riferimento
not all servers are created equal, inserire la banda disponibile di ogni server aiuta di sicuro l'utente nella scelta
Bisogna eliminare i file generati, che di default vengono memorizzati in ~/.jitsi-meet-cfg/
docker-compose stop
rm -rf ~/.jitsi-meet-cfg/
docker-compose up -d
Installare/attivare Jibri https://github.com/jitsi/jibri, @tapionx prova nell'installazione docker
in maniera riproducibile, con uno script funzionante e una procedura documentata.
Si potrebbero lanciare su istanze spot di AWS
Il numero dei core delle singole istanze perdono di significato quando dietro ad un unico Front end ci sono più videobrigde. Si dovrebbe aggiungere un'icona per indicarne l'esistenza
Forse potrebbe essere modificato lo script per le metriche per:
Errati:
cp config/app/config.example.js config/app/config.js
cp config/server/config.example.js config/server/config.js
Corretti:
cp configs/app/config.example.js configs/app/config.js
cp configs/server/config.example.js configs/server/config.js
L'immagine docker che ha usato tapion include al possibilità di collegare facilmente un etherpad. Proviamola che può essere molto comodo. Istanze usabili: https://beta.etherpad.org o https://pad.befair.it
Sezioni:
A quanto pare se si usano caratteri speciali nel nome della stanza il server restituisce un 404.
Esempio: https://befair1.iorestoacasa.work/una-conferenza
oppure https://befair1.iorestoacasa.work/una%20conferenza
Leggendo le risposte a questo thread su meet.jit.si dicono che c'è da impostare una regex lato webserver.
Si può implementare la stessa cosa?
Per chiedere se vogliono aggiungere una loro istanza
Sarebbe utile in chat un bot che risponda ai primi messaggi dei nuovi arrivati. Che offra le opzioni per andare alla pagina "voglio contribuire" o alle "issues"(lavori in corso) o alla checklist personale (cosa manca da fare per il mio server?)
attualmente stiamo fornendo i CSS di boostrap non minificati, sono 300KB.
Bisogna fornire la versione minificata.
Occhio perchè abbiamo modificato il file https://iorestoacasa.work/dist/css/style.min.css
aggiungendo del CSS custom, che quindi va riportato su un foglio di stile extra nuovo.
Utilizzare Jekyll per tale scopo
accanto al nome della FAQ deve esserci il simbolino della catena che posso copiare ed incollare.
Incollando l'URL della singola FAQ l'utente può essere indirizzato (tramite fragment) alla risposta che cerca
nel nostro fork del repository docker di MM
https://github.com/iorestoacasa-work/mm
c'è bisogno di esportare (come minimo) le seguenti metriche tramite prometheus:
bisogna integrare nel repository
https://github.com/iorestoacasa-work/iorestoacasa_monitoring
le metriche esposte da MM del GARR:
http://edu.meet.garr.it:9550/metrics
Mi collego a
"Io Resto A Casa.work"
scelgo
"open.meet.garr.it"
Dopo aver dato un nome ad una nuova conferenza, schiaccio VAI ed entro.
A questo punto schiaccio il pulsante con il segno “+”, in basso a destra e compare la finestra “Invita persone a questo meeting”.
Aggiungo un numero di telefono e schiaccio “Invita” e mi compare il carattere “!” In un rombo quadrato rosso, con a fianco la scritta “Failed to add participants”.
Ho inserito il numero di telefono in tutti i formati possibili:
+123 456 7890123
+1234567890123
00123 456 7890123
001234567890123
456 7890123
4567890123
cioè con e senza il prefisso internazionale con il “+” e con “00”, con e senza gli spazi (“blank”), ma il risultato non cambia.
Cosa devo fare?
Grazie ed un saluto
Per il momento sono queste (senza metriche):
https://edu.meet.garr.it/
https://edumeet.imaa.cnr.it/
dove le inseriamo? Nella tabella con una pillola "BETA" ?
Sarebbe carino poter mettere una sezione news in cui scrivere "Oggi Open Solutions si è aggiunta al progetto", oppure "Oggi SEEWEB si è aggiunto al progetto", oppure... rendere come blogpost direttamente i commit al branch master :-D
Ci è stato segnalato che il comando sed
nello script add-metrics.sh
alla riga 32 non funziona correttamente.
Bisogna verificare ed eventualmente correggerlo.
https://github.com/iorestoacasa-work/iorestoacasa_addmetrics/blob/master/add-metrics.sh#L32
come noto a tutti, il carico su banda e risorse dei client, con le impostazioni di default, diventa insostenibile dopo un certo numero di partecipanti.
Noi del Jitsi Club stiamo testando alcune configurazioni che permettano di ridurre il carico sui client e, conseguentemente, consentano di tenere videoconferenze con un alto numero di partecipanti con webcam attiva.
La guida è in costante aggiornamento (sul punto v. sez. "tuning"), ma cerco di condividere anche qui i miei test in modo tale che sia più facile collaborare nella ricerca della configurazione ottimale.
Le modifiche al file /etc/jitsi/meet/*-config.js
che ho provato ieri sono le seguenti:
→ Selezione Codec H264
di default Jitsi sembra usare VP8: impostare la preferenza per H264 dovrebbe ridurre il carico per i client senza accelerazione hardware per VP8.
// If set to true, prefer to use the H.264 video codec (if supported).
// Note that it's not recommended to do this because simulcast is not
// supported when using H.264. For 1-to-1 calls this setting is enabled by
// default and can be toggled in the p2p section.
preferH264: true,
→ Riduzione della risoluzione
il parametro resolution
pare funzionare solo sui browser più vecchi, quindi bisogna agire anche sulla sezione constraints
. (Ok, 480 normalmente non è 16:9. Da valutare 360 e 540).
// Sets the preferred resolution (height) for local video. Defaults to 720.
resolution: 480,
// w3c spec-compliant video constraints to use for video capture. Currently
// used by browsers that return true from lib-jitsi-meet's
// util#browser#usesNewGumFlow. The constraints are independency from
// this config's resolution value. Defaults to requesting an ideal aspect
// ratio of 16:9 with an ideal resolution of 720.
constraints: {
video: {
aspectRatio: 16 / 9,
height: {
ideal: 480,
max: 480,
min: 240
}
}
},
→ Sospensione dei layer inutilizzati
Il funzionamento è spiegato qui.
// Enable / disable layer suspension. If enabled, endpoints whose HD
// layers are not in use will be suspended (no longer sent) until they
// are requested again.
enableLayerSuspension: true,
→ Riduzione del numero di stream ricevuti
Ispirandomi al funzionamento di Teams (che visualizza solo gli ultimi 4 ad aver parlato), ho trovato questo studio e queste istruzioni ufficiali. L'ideale forse è 4 (unico "problema" è che la schermata visualizza comunque tutti i parecipanti, anche quelli "spenti" - bisognerebbe vedere se si riesce a modificare l'interfaccia).
// Default value for the channel "last N" attribute. -1 for unlimited.
channelLastN: 6,
con queste impostazioni ieri ho tenuto una conferenza con 14 partecipanti (12 con video attivo) senza alcun problema né per il server (2 core 4gb ram 4gb swap) né per i client (la maggior parte smartphone, 1 tablet, 1 mac e qualche PC).
la cosa migliore sarebbe poterle testare in scenari diversi e con server più potenti e, per questo, chiedo il vostro aiuto (non è semplice mettere assieme 15/20 persone per un test).
un ulteriore parametro da testare è disableSimulcast
, nel caso in cui non non si attivi preferH264
.
downside: impostando una risoluzione massima lato server anche le conference con 2-3-4 partecipanti saranno in low-res
edit 28/03 h. 9.39: precisazioni sul codec H264
nel nostro repository Docker
assicurarsi che non ci siano problemi di licenze per farlo
replicare quanto già fatto per Jitsi:
https://github.com/iorestoacasa-work/docker-jitsi-meet/blob/master/README.md
Una guida di installazione in italiano, semplice, con procedure da seguire passo passo, ben testate e documentate.
Descrivo qua brevemente i passaggi da documentare per l'installazione.
cd /opt/
git clone https://github.com/iorestoacasa-work/mm/
cd mm
ottenere dei certificati SSL per il dominio su cui si vuole pubblicare MM
certbot certonly -d miodominio.it --standalone
assicurarsi che il dominio risolva correttamente all'IP della macchina
copiare i certificati (chiave pubblica e privata) nella cartella certs/
creare i file di configurazione di MM partendo dai template di esempio:
cp conturn.example.conf coturn.conf
ed modificare opportunamente i CHANGEME
cp configs/app/config.example.js configs/app/config.js
e modificare opportunamente i CHANGEME
cp configs/server/config.example.js configs/server/config.js
e modificare opportunamente i CHANGEME
ora lanciare docker
docker-compose up -d
verificare che MM stia funzionando collegandosi con il browser all'hostname scelto e facendo una videochiamata
verificare che le metriche siano esposte:
curl http://hostname.scelto.it:8081/metrics
la tabella deve mostrare il numero di utenti collegati su ogni server.
Per ottenere questo scopo c'è bisogno di:
volontari e attivisti devono capire al volo:
che possono aggiungere un loro server, gestito da loro, alla tabella
dove devono contattarci (chat telegram di supporto con link pubblico)
requisiti minimi?
esporre le metriche obbligatorio o no?
è opportuno contattare tutti i provider che hanno datacenter in Italia (e dintorni) per chiedere se mettono a disposizione una macchina per la durata dell'emergenza.
I datacenter italiani sono da preferire, per avere minore latenza e congestionamento.
https://github.com/jitsi/docker-jitsi-meet#external-ports
Quelle elencate qua, più una porta dove esporre le metriche con HTTP
Il nostro progetto può essere utile a chiunque voglia mostrare una lista di server Jitsi e il corrispondente carico di lavoro. Quindi direi di produrre ed inserire nella pagina "voglio contribuire" gli snippet che possono servire allo scopo. Mettiamoci dalla parte del Comune di Fabriano o di altra istituzione che volesse embeddare la nostra lista nel proprio sito, come può farlo velocemente ed ottenere un contenuto adattabile alla dimensione che gli occorre?
L'idea mi è venuta pensando che lo stesso codice si potrebbe inserire in: https://it.wikibooks.org/wiki/Software_libero_a_scuola/Jitsi#Scegliere_il_server_Jitsi che altrimenti rimane una lista agnostica.
Si può abilitare facilmente creando una app nel proprio account dropbox... creiamo un account dropbox dedicato?
in questo modo posso cliccarlo con la rotella del mouse per aprirlo in una nuova scheda, oppure usare tasto destro e copiare il link
Rendere la homepage più user-friendly e spostare di conseguenza la tabella dei server in una pagina dedicata.
Questo dovrebbe rendere il sito web più facile da comprendere per gli utenti visitatori.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.