This page (revision-76) was last changed on 19-Mar-2022 23:42 by Christoph S.

This page was created on 25-Apr-2020 22:51 by Christoph S.

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
76 19-Mar-2022 23:42 26 KB Christoph S. to previous
75 22-Apr-2021 12:50 26 KB jitsi_meet to previous | to last
74 25-Jan-2021 23:20 26 KB Christoph S. to previous | to last
73 25-Jan-2021 23:20 26 KB Christoph S. to previous | to last
72 25-Jan-2021 23:13 26 KB Christoph S. to previous | to last
71 19-Jan-2021 00:23 26 KB Christoph S. to previous | to last
70 18-Jan-2021 22:51 25 KB Christoph S. to previous | to last
69 08-Jan-2021 13:36 24 KB Christoph S. to previous | to last
68 08-Jan-2021 13:36 24 KB Christoph S. to previous | to last
67 08-Jan-2021 13:30 23 KB Christoph S. to previous | to last
66 08-Jan-2021 13:24 23 KB Christoph S. to previous | to last
65 07-Jan-2021 07:26 22 KB Christoph S. to previous | to last
64 07-Jan-2021 07:20 22 KB Christoph S. to previous | to last
63 06-Jan-2021 19:34 22 KB Christoph S. to previous | to last
62 06-Jan-2021 19:19 21 KB Christoph S. to previous | to last
61 30-Dec-2020 17:10 21 KB Christoph S. to previous | to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 13 added 5 lines
Weitere Doku zur Architektur und Skalierung von meet.ffmuc.net:
* [https://www.slideshare.net/AnnikaWickert/freifunk-munich-how-to-scale-jitsi-231999167]
* [https://github.com/freifunkMUC/ffmuc-salt-public/tree/master/jitsi]
At line 21 added one line
* 1-mal SIP Node mit asterisk: Minimale Konfiguration, also 1 core, 500MB RAM ausreichend
At line 110 added 6 lines
wasm im nginx als mime-type bekannt machen, damit der Fehler "TypeError: Failed to execute 'compile' on 'WebAssembly'" behoben wird. Dazu in der {{{/etc/nginx/mime.types}}} Folgendes ergänzen:
{{{
application/wasm wasm;
}}}
At line 118 added 4 lines
Der oder die Video Node(s) sollten dedizierte Server mit dedizierten Netzwerkkarten sein, damit der Netzwerktraffic (Packets / Sekunde) auch bewältigt werden.
Installation der Software:
At line 116 changed one line
In {{{/etc/jitsi/videobridge/sip-communicator.properties}}} folgendes hinzufügen:
Nach Videobridge-Installation Passwort der JVB auf Signaling Node zurücksetzen:
At line 119 changed one line
org.jitsi.videobridge.xmpp.user.shard.DISABLE_CERTIFICATE_VERIFICATION=true
prosodyctl passwd jvb@auth.meet.example.org
At line 122 changed one line
Nach Videobridge-Installation Passwort der JVB auf Signaling Node zurücksetzen:
Dann in {{{/etc/jitsi/videobridge/config}}} und {{{/etc/jitsi/videobridge/jvb.conf}}} eintragen.
At line 140 added 2 lines
In {{{/etc/jitsi/videobridge/jvb.conf}}} folgendes hinzufügen:
At line 125 changed one line
prosodyctl passwd jvb@auth.meet.example.org
videobridge {
apis {
xmpp-client {
configs {
connection-id {
hostname = "meet.example.org"
domain = "auth.meet.example.org"
username = "jvb"
password = "...."
muc_jids = "JvbBrewery@internal.auth.meet.example.org"
muc_nickname = "..."
disable_certificate_verification = true
}
}
}
rest {
enabled = true
}
}
}
At line 128 removed 2 lines
Dann in {{{/etc/jitsi/videobridge/config}}} und {{{/etc/jitsi/jicofo/sip-communicator.properties}}} eintragen.
At line 135 changed one line
Setup von websocket als bridge channel:
Setup von websocket als Bridge channel:
At line 137 changed one line
In {{{/etc/jitsi/videobridge/sip-communicator.properties}}} folgendes hinzufügen:
In {{{/etc/jitsi/videobridge/jvb.conf}}} folgendes hinzufügen:
At line 139 changed 5 lines
# datachannel
org.jitsi.videobridge.rest.jetty.port=9090
org.jitsi.videobridge.rest.jetty.host=localhost
org.jitsi.videobridge.rest.COLIBRI_WS_TLS=true
org.jitsi.videobridge.rest.COLIBRI_WS_DOMAIN=jvb1.meet.example.org:443
http-servers {
public {
port = 9090
}
}
websockets {
enabled = true
domain = "jvb1.meet.example.org:443"
tls = true
}
At line 198 added 5 lines
upstream jvb {
zone upstreams 64K;
server 127.0.0.1:9090;
keepalive 2;
}
At line 173 changed one line
proxy_pass http://127.0.0.1:9090/colibri-ws/default-id/$1$is_args$args;
proxy_pass http://jvb/colibri-ws/default-id/$1$is_args$args;
At line 182 changed one line
Im Signaling Node in der {{{config.js}}} aktivieren:
Falls gewünscht, die Statistik-APIs in {{{/etc/jitsi/videobridge/jvb.conf}}} anschalten, evtl. mit {{{host = ...}}} auf internes Interface legen:
At line 185 changed 5 lines
// Enables / disables a data communication channel with the Videobridge.
// Values can be 'datachannel', 'websocket', true (treat it as
// 'datachannel'), undefined (treat it as 'datachannel') and false (don't
// open any channel).
openBridgeChannel: 'websocket',
http-servers {
private {
port = 8080
}
}
At line 237 added one line
Da auf den Video Nodes nur vertrauenswürdiger Code läuft, können die Spectre & Meltdown-Mitigations abgeschaltet werden. Dies verbessert die context-switching-Performance, siehe [https://www.phoronix.com/scan.php?page=article&item=3-years-specmelt&num=1].
At line 239 added 44 lines
Daher in der {{{/etc/default/grub}}} (oder bei Hetzner in der {{{/etc/default/grub.d/hetzner.cfg}}}) Folgendes zu {{{GRUB_CMDLINE_LINUX_DEFAULT}}} hinzufügen:
{{{
mitigations=off
}}}
Danach mit {{{sudo update-grub}}} aktivieren und den Server neu starten. Dann mit {{{lscpu}}} nachsehen, ob die Einstellung greift. Wenn bei den Vulnerabilties "Vulnerable" steht, dann ist alles in Ordnung:
{{{
Vulnerability Itlb multihit: KVM: Vulnerable
Vulnerability L1tf: Mitigation; PTE Inversion; VMX vulnerable
Vulnerability Mds: Vulnerable; SMT vulnerable
Vulnerability Meltdown: Vulnerable
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1: Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers
Vulnerability Spectre v2: Vulnerable, IBPB: disabled, STIBP: disabled
Vulnerability Srbds: Vulnerable
Vulnerability Tsx async abort: Vulnerable
}}}
Außerdem laufen die Videokonferenzen zuverlässiger, wenn die CPUs nicht hoch- und runtertakten. Dazu auf den CPU-Governor "performance" umstellen:
{{{
systemctl disable ondemand.service
apt install cpufrequtils
}}}
In der {{{/etc/default/cpufrequtils}}} Folgendes einstellen:
{{{
ENABLE="true"
GOVERNOR="performance"
}}}
Danach reboot und mittels {{{cpufreq-info}}} überprüfen:
{{{
cpufreq-info
...
The governor "performance" may decide which speed to use
...
}}}
At line 226 removed one line
error_log off;
At line 229 removed one line
Weitere Doku zur Architektur und Skalierung von meet.ffmuc.net: [https://www.slideshare.net/AnnikaWickert/freifunk-munich-how-to-scale-jitsi-231999167]
At line 334 added one line
* 40 User: 16% CPU-Auslasting für [PX61-NVMe|https://www.hetzner.com/de/news/dedicated-root-server-mit-dem-standard-der-zukunft/] (Xeon(R) CPU E3-1275 v5 @ 3.60GHz), 80MBit/s eingehend, 30 MBit/s ausgehend
At line 336 added 33 lines
Der "Stress-Level" eine einheitenlose Kennzahl, standardmäßig auf 50000pps (eingehend+ausgehend) normiert. Als Beispiel: Wenn die Video-Node 10000pps eingehend und 10000pps ausgehend hat, dann ergibt das 20000pps / 50000pps = 0.4, also einen "Stress-Level" von 0.4 oder 40%.
Kalibrierung des Stress-Berechnung an vorhandene Hardware. Dazu einmal eine "große" Konferenz, zB mit 15 Personen starten, dabei die Paket-Rate (pps) und CPU-Auslastung erfassen.
Als Beispiel: 25000pps auf 8-Core Intel(R) Xeon(R) CPU E3-1275 v5 @ 3.60GHz führten zu 16% CPU-Auslastung. Annahme: Bis zu 80% CPU ist ok, dann heißt das geschätzt 80%/16% = 5 * 25000pps = 125000pps als Lastgrenze:
In {{{/etc/jitsi/videobridge/jvb.conf}}} das Ergebnis eintragen:
{{{
load-management {
# Whether or not the reducer will be enabled to take actions to mitigate load
reducer-enabled = true
load-measurements {
packet-rate {
# 25000 pps produced 16% CPU utilization => load threshold at 80% CPU => 125000 pps
load-threshold = 125000
# 80% load-threshold
recovery-threshold = 100000
}
}
load-reducers {
last-n {
reduction-scale = .75
recover-scale = 1.25
impact-time = 1 minute
minimum-last-n-value = 0
maximum-enforced-last-n-value = 40
}
}
}
}}}
At line 341 removed 3 lines
/// Nur letzte 6 Sprecher als Video anzeigen, schont CPU auf Clients und Bandbreite
channelLastN: 6,
At line 505 added 5 lines
Jigasi REST-API in {{{/etc/jitsi/jigasi/sip-communicator.properties}}} auf localhost beschränken:
{{{
org.jitsi.jigasi.rest.jetty.host=localhost
}}}
At line 494 changed one line
same => n,Read(confid,conf-getpin&astcc-followed-by-pound)
same => n,Read(confid,hello&conf-getpin&astcc-followed-by-pound)
same => n,Log(NOTICE, query conferenceMapper for pin ${confid});
At line 496 changed one line
same => n,Verbose(0, conferenceMapper result is ${CURL_RESULT});
same => n,Log(NOTICE, conferenceMapper result is ${CURL_RESULT});
At line 500 changed one line
same => n,Verbose(0, Contacting Jigasi... Status is ${DIALSTATUS} );
same => n,Log(NOTICE, Contacting Jigasi... Status is ${DIALSTATUS} );
At line 636 added one line
same => n,Log(ERROR, conferenceMapper did not find a conference for pin ${confid});
At line 639 added one line
same => n,Log(ERROR, joining conference ${confid}, status is ${DIALSTATUS});
At line 642 added one line
same => n,Log(NOTICE, waiting 120 sec for conference with pin ${confid} to start);
At line 529 changed 2 lines
mkdir /var/lib/asterisk/sounds/de
cd /var/lib/asterisk/sounds/de
mkdir /usr/share/asterisk/sounds/de
cd /usr/share/asterisk/sounds/de
At line 535 changed 2 lines
chown -R asterisk.asterisk /var/lib/asterisk/sounds/de
find /var/lib/asterisk/sounds/de -type d -exec chmod 0775 {} \;
chown -R asterisk:asterisk /usr/share/asterisk/sounds/de
At line 588 changed one line
{"message":"Einwahlnummbern","numbers":{"DE":["FFFF/FFFF"]},"numbersEnabled":true}
{"message":"Einwahlnummern","numbers":{"DE":["FFFF/FFFF"]},"numbersEnabled":true}
At line 604 changed one line
* Codecs von jigasi und codecs von initialer DTMF-Übertragung stimmen nicht über ein -> Asterisk, sip.conf: disallow=all, allow=alaw sowohl bei Sipgate-Abschnitt als auch bei Jigasi-Abschnitt
* Codecs von jigasi und codecs von initialer DTMF/Menü-Übertragung stimmen nicht über ein -> Asterisk, sip.conf: disallow=all, allow=alaw sowohl bei Sipgate-Abschnitt als auch bei Jigasi-Abschnitt
* HD-Telefonie (G.722) funktioniert nicht reibungslos mit Jigasi, daher auch -> Asterisk, sip.conf: disallow=all, allow=alaw sowohl bei Sipgate-Abschnitt als auch bei Jigasi-Abschnitt
At line 739 added 2 lines
Frage: Kann Asterisk auch gleichzeitig für ausgehende Telefonate (dial out, call out) konfiguriert werden, so dass man die Telefoneinladung von Jitsi Meet nutzen kann? Was müsste man dann noch in der Konfiguration ergänzen? (Bitte entschuldigen Sie diesen Eintrag hier, ich konnte keine andere Möglichkeit finden diese Frage sonst zu stellen.)