Version bump

This commit is contained in:
Jörg Deckert 2021-02-03 18:54:02 +01:00
parent 210fada08c
commit acf7859648
13 changed files with 1179 additions and 2 deletions

View File

@ -1,7 +1,13 @@
AUX config-1.0.692.example 998 BLAKE2B e239aeba7c1cee97a529a8a09a6abaa59db8dcae99e5b9c0f0c217d5dcfe42f8b7f00fb3ea9c05db109e5ef0a646f0de15f385d394117f014cac6783faa66603 SHA512 3861da6f912d47eefd64800175b0e63a67d196d0b6bfc18e5a68958c53d55f8eee8dc5f8cd70a660f0feade241487c5d2e9dc8644647a2699932741b31a35d5e
AUX config.example 1155 BLAKE2B cd6df035d4794dafad63695b6b6e8359646c06dbac7ca1c2919e2bebfeeb61b7d74b120bacccf5346c39ceca995e2350926d4770515b38b364a63d2a607d10d1 SHA512 16db498c90bd4375ad7630f1f5d07bacc42cb3b3c7b0b0ed01e3b89c1111e5cd9afcd8f6a39b8b1745ae46ab588051c055316e1151acb3e1210826720896c30d AUX config.example 1155 BLAKE2B cd6df035d4794dafad63695b6b6e8359646c06dbac7ca1c2919e2bebfeeb61b7d74b120bacccf5346c39ceca995e2350926d4770515b38b364a63d2a607d10d1 SHA512 16db498c90bd4375ad7630f1f5d07bacc42cb3b3c7b0b0ed01e3b89c1111e5cd9afcd8f6a39b8b1745ae46ab588051c055316e1151acb3e1210826720896c30d
AUX jicofo-1.0.692.service 628 BLAKE2B a683019d819fd63f911ed576a93d8bdb4ea92bd525125e59d5f1b11473992ece348e9f080614dbf256991ecebd016e43e76809df06426c782f7c611b32895b85 SHA512 1a38aa3506666139c00fda5d9d3549fb436e1d2747551feb2f544b35f321457a2658a5490c6026f1ef4a114a64a59ec34246d37e5f6b9b7625df8d7ec458d3a5
AUX jicofo-i-1.0.692.service 640 BLAKE2B ee97539a8975fa5000a03c4258d3c235c5b66ba46725e49ca52b991f209771b5f32258edebd5df37b2a3ab2650f8da3cb43fcf15ed67c216085728f7c81e98f3 SHA512 39b783acf55cdc99ae682151b6db149015fdb5ee6ab4cc5c09e6ae8f89104ff06ff29ae4cc7108329c8386a7aacd316373f42c4c0cb8abd2d9210f2a84a39c5c
AUX jicofo-i.service 688 BLAKE2B 20fcf15d7db8a42783f9800ba480babc73521daf14d314c69047155d00ea7f463287a6c2d0a8373ad0ffca006d80f89922a3167acdab5b6a38e8ec068b4b96ce SHA512 44710ac556ea1d203824e72964fb6bcbaf3959d6145491772e93d14ff13a784dfbc83fdf225a6a5363e88bbff939c1511b7b267c57159b168332fc1242688633 AUX jicofo-i.service 688 BLAKE2B 20fcf15d7db8a42783f9800ba480babc73521daf14d314c69047155d00ea7f463287a6c2d0a8373ad0ffca006d80f89922a3167acdab5b6a38e8ec068b4b96ce SHA512 44710ac556ea1d203824e72964fb6bcbaf3959d6145491772e93d14ff13a784dfbc83fdf225a6a5363e88bbff939c1511b7b267c57159b168332fc1242688633
AUX jicofo-init-1.0.692.d 1014 BLAKE2B 1a949db8c638795960e066412e01bc33d09427c374b6c15d2ce0ab9c198b7e6a94711ce77bb1edc2672beadb4a225b9d4695538e690cf910223b33a5782e2f73 SHA512 4766a39452bb1f62d8f86e90f2c3cc14aae4540445111a7276a7f563ff603e3fe60b453b7b77159a526c4f5a05cb20a9bd3ed1ad7fbca511b0c8b7efa421da18
AUX jicofo-init.d 1058 BLAKE2B 32467d7085786efb52eedc16c59b7ab560d3bbbb122bc9fd7306368432f901e5da18f07df7c4f91157231e3c07fa9479065ea87a005e629d5aeeb80cc3f95441 SHA512 90bf80dd87eed14d2421ee5ce886768103ee09ae8940ff0f1e10d4020cda54d0080d6527fd5988014c8a1a4f869439c5d8e2305389a84f97bff43b810205cca8 AUX jicofo-init.d 1058 BLAKE2B 32467d7085786efb52eedc16c59b7ab560d3bbbb122bc9fd7306368432f901e5da18f07df7c4f91157231e3c07fa9479065ea87a005e629d5aeeb80cc3f95441 SHA512 90bf80dd87eed14d2421ee5ce886768103ee09ae8940ff0f1e10d4020cda54d0080d6527fd5988014c8a1a4f869439c5d8e2305389a84f97bff43b810205cca8
AUX jicofo.conf.example 142 BLAKE2B 40578c19110b466df3b97dcfab05e77836e708d35ac009ff1a48c493ac7e9b49b22105e4b2da5f8db61e56ff2bd93bbaead23e68f413b88393a80adeed00a2cf SHA512 d984c78e9ea7b9bf0b6531db3b24dca1d9dcf0693732b9807e6921084a763ab4c9d98c5b40eb058e588b2ca9b5600fcb534f53e4102731a7adc243cdaf60e39f AUX jicofo.conf.example 142 BLAKE2B 40578c19110b466df3b97dcfab05e77836e708d35ac009ff1a48c493ac7e9b49b22105e4b2da5f8db61e56ff2bd93bbaead23e68f413b88393a80adeed00a2cf SHA512 d984c78e9ea7b9bf0b6531db3b24dca1d9dcf0693732b9807e6921084a763ab4c9d98c5b40eb058e588b2ca9b5600fcb534f53e4102731a7adc243cdaf60e39f
AUX jicofo.service 676 BLAKE2B e92278434e80f0c9bbce47ed1df8609b2eb6a591f649be0af94a45dae308cbe0a62361466fe7422a7a6daa9c9be708767d92605dcd02f82f30fc63b1e47d990f SHA512 ba2b78105c318755960ec53c89780b6accdbd9e934308a9fe0e93128b55ccc77edd2e157ad1d90cc1a38cb6cc09c89f1fe8a0b929af09c340e18920faa6e98c6 AUX jicofo.service 676 BLAKE2B e92278434e80f0c9bbce47ed1df8609b2eb6a591f649be0af94a45dae308cbe0a62361466fe7422a7a6daa9c9be708767d92605dcd02f82f30fc63b1e47d990f SHA512 ba2b78105c318755960ec53c89780b6accdbd9e934308a9fe0e93128b55ccc77edd2e157ad1d90cc1a38cb6cc09c89f1fe8a0b929af09c340e18920faa6e98c6
DIST jicofo_1.0-644-1_all.deb 38471940 BLAKE2B cf93692b888022546871ac55cc4c782d40c743c2dd062724d30d2f4134e7a01ed76bc62f189a252450609d4a9569c574e6f52cd3474af3e8365e25932574187d SHA512 f476e60f948acb4f7e34d6529e989a4d8acd3552107f9fa11d18847505c0257d4a38cd5c8d0b33eff50c8cd7af9fc42a6aca105a9bd712b666066cf8ade97940 DIST jicofo_1.0-644-1_all.deb 38471940 BLAKE2B cf93692b888022546871ac55cc4c782d40c743c2dd062724d30d2f4134e7a01ed76bc62f189a252450609d4a9569c574e6f52cd3474af3e8365e25932574187d SHA512 f476e60f948acb4f7e34d6529e989a4d8acd3552107f9fa11d18847505c0257d4a38cd5c8d0b33eff50c8cd7af9fc42a6aca105a9bd712b666066cf8ade97940
DIST jicofo_1.0-692-hf-1_all.deb 38709980 BLAKE2B 19ef9ee59a12e2816ffcf9e34bad59cda73cff9f726a5da1babd33aa0ff4e6238a043b7dda4763e3f85b50febc16973b06c023ad4720bc760a97d9bb9aead0ca SHA512 3b53e5e535c0a07ab7614127dfd074602fffbc633f079d5db06c4e33c93f48ea6113f3c8e9f43b771fb56aded80d57acb9b7b56348688f4afe53c7dd77e40ddf
EBUILD jicofo-bin-1.0.644.ebuild 1544 BLAKE2B 7db7ddc02334689b5ebfe131316e352af7d9b349058014058b5d45d8e5c607d42a363b7d36da2e5a7ae878152db5a6338e0dc443bdbd8c360fa272ce02720535 SHA512 b2e6c618e5f8945bcf2b7a5cdff7ca5fc075ae2c666bf2f72e20fd73df658f41799316b2ecf42f0d20c52afaca1ef3aae9645c050d018a0f747c5266395a3cca EBUILD jicofo-bin-1.0.644.ebuild 1544 BLAKE2B 7db7ddc02334689b5ebfe131316e352af7d9b349058014058b5d45d8e5c607d42a363b7d36da2e5a7ae878152db5a6338e0dc443bdbd8c360fa272ce02720535 SHA512 b2e6c618e5f8945bcf2b7a5cdff7ca5fc075ae2c666bf2f72e20fd73df658f41799316b2ecf42f0d20c52afaca1ef3aae9645c050d018a0f747c5266395a3cca
EBUILD jicofo-bin-1.0.692.ebuild 1604 BLAKE2B 6367991ed0073c3ac422d17403502b019452575d7daddb5b4edf5e1a41c61702ee94bcd37f4b283acaeba728ab3dea01ca6b0b765b1ad27063dc02f70c8ccb1f SHA512 4e1eff9d93bc304ba4fc6170dccb48187c6f4d6b501819417d4b58244202fff694606ac9aafb9a19cb585e6af8c4af42b7382021460460a5ba4f85fecd54a8eb

View File

@ -0,0 +1,21 @@
# Jitsi Conference Focus settings
# sets the host name of the XMPP server
JICOFO_HOST=localhost
# sets the XMPP domain (default: none)
JICOFO_HOSTNAME=meet.example.com
# sets the XMPP domain name to use for XMPP user logins
JICOFO_AUTH_DOMAIN=auth.meet.example.com
# sets the username to use for XMPP user logins
JICOFO_AUTH_USER=focus
# sets the password to use for XMPP user logins
JICOFO_AUTH_PASSWORD=secretfocus
# extra options to pass to the jicofo daemon
JICOFO_OPTS=""
# adds java system props that are passed to jicofo (default are for home and logging config file)
JAVA_SYS_PROPS="-Dconfig.file=/etc/jitsi/jicofo/jicofo.conf -Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION=/etc/jitsi -Dnet.java.sip.communicator.SC_HOME_DIR_NAME=jicofo -Dnet.java.sip.communicator.SC_LOG_DIR_LOCATION=/var/log/jitsi -Djava.util.logging.config.file=/etc/jitsi/jicofo/logging.properties -Djavax.net.ssl.trustStore=/etc/ssl/certs/java/cacerts -Djavax.net.ssl.trustAnchors=/etc/ssl/certs/java/cacerts"

View File

@ -0,0 +1,18 @@
[Unit]
Description=Jitsi conference Focus
After=network.target
[Service]
Restart=always
EnvironmentFile=/etc/jitsi/jicofo/config
Environment=LOGFILE=/var/log/jitsi/jicofo.log
User=jicofo
RuntimeDirectory=jicofo
RuntimeDirectoryMode=0750
PIDFile=/var/run/jicofo/jicofo.pid
WorkingDirectory=/usr/share/jicofo
ExecStart=/bin/bash -c "/usr/share/jicofo/jicofo.sh --host=${JICOFO_HOST} --domain=${JICOFO_HOSTNAME} --port=${JICOFO_PORT} --user_domain=${JICOFO_AUTH_DOMAIN} --user_password=${JICOFO_AUTH_PASSWORD} < /dev/null >> ${LOGFILE} 2>&1"
ExecStartPost=/bin/bash -c "echo $MAINPID > /var/run/jicofo/jicofo.pid"
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,18 @@
[Unit]
Description=Jitsi conference Focus
After=network.target
[Service]
Restart=always
EnvironmentFile=/etc/jitsi/jicofo.%i/config
Environment=LOGFILE=/var/log/jitsi/jicofo-%i.log
User=jicofo
RuntimeDirectory=jicofo
RuntimeDirectoryMode=0750
PIDFile=/var/run/jicofo/jicofo-%i.pid
WorkingDirectory=/usr/share/jicofo
ExecStart=/bin/bash -c "/usr/share/jicofo/jicofo.sh --host=${JICOFO_HOST} --domain=${JICOFO_HOSTNAME} --port=${JICOFO_PORT} --user_domain=${JICOFO_AUTH_DOMAIN} --user_password=${JICOFO_AUTH_PASSWORD} < /dev/null >> ${LOGFILE} 2>&1"
ExecStartPost=/bin/bash -c "echo $MAINPID > /var/run/jicofo/jicofo-%i.pid"
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,28 @@
#!/sbin/openrc-run
# Copyright 1999-2020 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# Include jicofo defaults if available
if [ -f /etc/jitsi/jicofo/config ]; then
. /etc/jitsi/jicofo/config
fi
# Assign default host if not configured
if [ ! $JICOFO_HOST ]; then
JICOFO_HOST=localhost
fi
command="/usr/share/jicofo/jicofo.sh"
command_args=" --host=$JICOFO_HOST --domain=$JICOFO_HOSTNAME --user_name=$JICOFO_AUTH_USER --user_domain=$JICOFO_AUTH_DOMAIN --user_password=$JICOFO_AUTH_PASSWORD $JICOFO_OPTS"
start_stop_daemon_args="--chdir /usr/share/jicofo --user jicofo:jitsi"
start_stop_daemon_args="${start_stop_daemon_args} --stdout /var/log/jitsi/jicofo.log"
start_stop_daemon_args="${start_stop_daemon_args} --stderr /var/log/jitsi/jicofo.log"
start_stop_daemon_args="${start_stop_daemon_args} --env JAVA_SYS_PROPS=\"$JAVA_SYS_PROPS\""
required_dirs="/var/log/jitsi"
pidfile="/run/jicofo.pid"
command_background="true"
depend() {
use net logger
}

View File

@ -0,0 +1,65 @@
# Copyright 1999-2020 Unitas Network GmbH
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit eutils systemd unpacker user
MY_PN=${PN/-bin/}
MY_PV=$(ver_rs 2 '-')
MY_EV="-hf-1"
DESCRIPTION="JItsi Meet COnference FOcus: a conference focus for Jitsi Meet application"
HOMEPAGE="https://jitsi.org/"
SRC_URI_BASE="https://download.jitsi.org/stable"
SRC_URI=${SRC_URI_BASE}/${MY_PN}_${MY_PV}${MY_EV}_all.deb
RESTRICT="mirror strip"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE=""
DEPEND=""
RDEPEND="virtual/jre"
S=${WORKDIR}
##QA_PREBUILT="*"
pkg_setup() {
enewgroup jitsi
enewuser jicofo -1 /bin/bash /usr/share/jicofo jitsi
}
src_install() {
insinto /etc/jitsi/jicofo/
newins ${FILESDIR}/config-${PV}.example config.example
doins ${FILESDIR}/jicofo.conf.example
echo "org.jitsi.jicofo.BRIDGE_MUC=JvbRoom@conference.example.com" > etc/jitsi/jicofo/sip-communicator.properties.example
dodoc usr/share/doc/jicofo/README.Debian
rm -rf usr/share/doc
rm -rf etc/init.d
insinto /
doins -r etc usr
keepdir /var/log/jitsi
fowners root:jitsi /var/log/jitsi
fperms 775 /var/log/jitsi
fowners -R jicofo:jitsi /usr/share/jicofo
fperms 755 /usr/share/jicofo/collect-dump-logs.sh
fperms 755 /usr/share/jicofo/jicofo.sh
fowners -R jicofo:jitsi /etc/jitsi/jicofo
fperms 750 /etc/jitsi/jicofo
fperms 600 /etc/jitsi/jicofo/sip-communicator.properties.example
newinitd "${FILESDIR}/${MY_PN}-init-${PV}.d" "${MY_PN}"
systemd_newunit "${FILESDIR}"/${MY_PN}-${PV}.service ${MY_PN}.service
systemd_newunit "${FILESDIR}"/${MY_PN}-i-${PV}.service ${MY_PN}@.service
}

View File

@ -1,4 +1,8 @@
AUX meet.example.com-config-1.0.4628.js 32385 BLAKE2B 8ecc1cfbf8788ab54c852e0154d068e049413754ef8ac8f17bcab57174992b94e19301c88819970ea6c7ba9ff1a2f4b3b686b2bcc9147c5303d196f40c98deb6 SHA512 409530290f4c663355c791f4260953c8c1af3ae0890f93941bcbf75449fbea850051a255f26f004f8d3eaa0c8d4b98f38930e780b1fec70e767e7d1224ddcf40
AUX meet.example.com-config.js 27299 BLAKE2B 2f66750b918497960b415236e5a6e1f45c07725a7b2c0512e5ee0dfc672b610b8892eb4c2f124f51bd074d3a05d89e8e16f31fbb0c4558fbcb6c5db55efe4014 SHA512 c32776448cddfb3dccbbfaa61b6789cbed5f0a081d2df65197163b1c600907526b87536ec8486d9d06c2bc74f91806e0000fd524ff63984cf9e447d775c3db1f AUX meet.example.com-config.js 27299 BLAKE2B 2f66750b918497960b415236e5a6e1f45c07725a7b2c0512e5ee0dfc672b610b8892eb4c2f124f51bd074d3a05d89e8e16f31fbb0c4558fbcb6c5db55efe4014 SHA512 c32776448cddfb3dccbbfaa61b6789cbed5f0a081d2df65197163b1c600907526b87536ec8486d9d06c2bc74f91806e0000fd524ff63984cf9e447d775c3db1f
AUX nginx-jitsi-meet-1.0.4628.example 4101 BLAKE2B c887a3c09ad603bbe283c89f9f57125830c7a3b10612d2291864642c7994fea2aced90fd1c542d5bde5b9b7e39b8d24c76f955e30a17320a497e0e6b508f0871 SHA512 2e988dc3134087a18091bba9a6fdbd61fb11f46e3d23c8631118bd867cf53a0af86231d27153371f6a79070b288fc9b3c17942f704e014cc2728a6c6da2cbcd7
AUX nginx-jitsi-meet.example 4080 BLAKE2B 07bd9f0bb00bfadfd0672fe0daa4b22f3bcaf0c0d81344a921963231e2de542c0d6afd1d7294badfa5f704eecd885df86a724b6e2127a1e36646bb1d9cc48983 SHA512 5f71c6bda56779ceb6848ba22a95949ef3e941fdd6ea66f6f25e0a016c5c7f21ce0fcad96a31931751a893c260b6335ceab77a5cbb5c3c46d7c0e21db310271e AUX nginx-jitsi-meet.example 4080 BLAKE2B 07bd9f0bb00bfadfd0672fe0daa4b22f3bcaf0c0d81344a921963231e2de542c0d6afd1d7294badfa5f704eecd885df86a724b6e2127a1e36646bb1d9cc48983 SHA512 5f71c6bda56779ceb6848ba22a95949ef3e941fdd6ea66f6f25e0a016c5c7f21ce0fcad96a31931751a893c260b6335ceab77a5cbb5c3c46d7c0e21db310271e
DIST jitsi-meet-web_1.0.4466-1_all.deb 7166032 BLAKE2B beb10469bfa3156227e3306b8c8a29a07f3ac0acd4e317430b3b831b6a1da47a263bdaa4c6f9ae577e65a3df5aa9ced23e1effefc4c633ae0028e7fec2268dea SHA512 b7101095b7fabfb9c6feb3eccd293930872382357fe81b1aa8c98752ae44318fa69aed364735e1c5be12b52debddc1762e7cf0db307a650b6fd031b9561cc80d DIST jitsi-meet-web_1.0.4466-1_all.deb 7166032 BLAKE2B beb10469bfa3156227e3306b8c8a29a07f3ac0acd4e317430b3b831b6a1da47a263bdaa4c6f9ae577e65a3df5aa9ced23e1effefc4c633ae0028e7fec2268dea SHA512 b7101095b7fabfb9c6feb3eccd293930872382357fe81b1aa8c98752ae44318fa69aed364735e1c5be12b52debddc1762e7cf0db307a650b6fd031b9561cc80d
DIST jitsi-meet-web_1.0.4628-1_all.deb 7682636 BLAKE2B af69b94a23163ef144c5baa916630855142eafd1728d901662e797b633d16e7267525fa7ba606e5361445879d1dcae7858cd19a770fca48440bfe493af3f9acd SHA512 878ece98e51d4f2614912b1c38c3ca405ddcb4afca3710d744437433f4d0bb442068a4d2d071568d7d472a1e6d721fa238a6331fe911a7cf983152f9ac1fb8fa
EBUILD jitsi-meet-web-bin-1.0.4466.ebuild 881 BLAKE2B a6b44c581229df30c450abe377a5274cb860e5237781d9b7a0780cd813e27bf8a579bb40228728f3f16b95ff7d96f80a43de43a242d32fdb421757bbdc0a62c7 SHA512 08ea5cc3bcd4d33c4d220c87be37b8f236ace5c4ae2bd964804069c8ed99ea0cd2ba3de0b37d5c7d1e507ac283134cba4d69455420b74fce07a8051515dffe0f EBUILD jitsi-meet-web-bin-1.0.4466.ebuild 881 BLAKE2B a6b44c581229df30c450abe377a5274cb860e5237781d9b7a0780cd813e27bf8a579bb40228728f3f16b95ff7d96f80a43de43a242d32fdb421757bbdc0a62c7 SHA512 08ea5cc3bcd4d33c4d220c87be37b8f236ace5c4ae2bd964804069c8ed99ea0cd2ba3de0b37d5c7d1e507ac283134cba4d69455420b74fce07a8051515dffe0f
EBUILD jitsi-meet-web-bin-1.0.4628.ebuild 947 BLAKE2B 8c32fd51636319fac07c786eb6e3ef259b01e51984ebb8ac1caced2476f9d6745d0d7965c34526e13b4c6b105139bbc0202870ac36c028d44d3d6fd9f83d4004 SHA512 c61298839899fa1c8f298373408c2b9db07ceef44d89f9893847a8fb68af867ad05550854732afc73779b250856fcc87dcc3dca6ddf638f1b3ec8dab0cc0ff07

View File

@ -0,0 +1,773 @@
/* eslint-disable no-unused-vars, no-var */
var config = {
// Connection
//
hosts: {
// XMPP domain.
domain: 'jitsi-meet.example.com',
// When using authentication, domain for guest users.
// anonymousdomain: 'guest.example.com',
// Domain for authenticated users. Defaults to <domain>.
// authdomain: 'jitsi-meet.example.com',
// Focus component domain. Defaults to focus.<domain>.
// focus: 'focus.jitsi-meet.example.com',
// XMPP MUC domain. FIXME: use XEP-0030 to discover it.
muc: 'conference.jitsi-meet.example.com'
},
// BOSH URL. FIXME: use XEP-0156 to discover it.
bosh: '//jitsi-meet.example.com/http-bind',
// Websocket URL
// websocket: 'wss://jitsi-meet.example.com/xmpp-websocket',
// The name of client node advertised in XEP-0115 'c' stanza
clientNode: 'http://jitsi.org/jitsimeet',
// The real JID of focus participant - can be overridden here
// Do not change username - FIXME: Make focus username configurable
// https://github.com/jitsi/jitsi-meet/issues/7376
// focusUserJid: 'focus@auth.jitsi-meet.example.com',
// Testing / experimental features.
//
testing: {
// Disables the End to End Encryption feature. Useful for debugging
// issues related to insertable streams.
// disableE2EE: false,
// P2P test mode disables automatic switching to P2P when there are 2
// participants in the conference.
p2pTestMode: false
// Enables the test specific features consumed by jitsi-meet-torture
// testMode: false
// Disables the auto-play behavior of *all* newly created video element.
// This is useful when the client runs on a host with limited resources.
// noAutoPlayVideo: false
// Enable / disable 500 Kbps bitrate cap on desktop tracks. When enabled,
// simulcast is turned off for the desktop share. If presenter is turned
// on while screensharing is in progress, the max bitrate is automatically
// adjusted to 2.5 Mbps. This takes a value between 0 and 1 which determines
// the probability for this to be enabled.
// capScreenshareBitrate: 1 // 0 to disable
// Enable callstats only for a percentage of users.
// This takes a value between 0 and 100 which determines the probability for
// the callstats to be enabled.
// callStatsThreshold: 5 // enable callstats for 5% of the users.
},
// Disables ICE/UDP by filtering out local and remote UDP candidates in
// signalling.
// webrtcIceUdpDisable: false,
// Disables ICE/TCP by filtering out local and remote TCP candidates in
// signalling.
// webrtcIceTcpDisable: false,
// Media
//
// Audio
// Disable measuring of audio levels.
// disableAudioLevels: false,
// audioLevelsInterval: 200,
// Enabling this will run the lib-jitsi-meet no audio detection module which
// will notify the user if the current selected microphone has no audio
// input and will suggest another valid device if one is present.
enableNoAudioDetection: true,
// Enabling this will show a "Save Logs" link in the GSM popover that can be
// used to collect debug information (XMPP IQs, SDP offer/answer cycles)
// about the call.
// enableSaveLogs: false,
// Enabling this will run the lib-jitsi-meet noise detection module which will
// notify the user if there is noise, other than voice, coming from the current
// selected microphone. The purpose it to let the user know that the input could
// be potentially unpleasant for other meeting participants.
enableNoisyMicDetection: true,
// Start the conference in audio only mode (no video is being received nor
// sent).
// startAudioOnly: false,
// Every participant after the Nth will start audio muted.
// startAudioMuted: 10,
// Start calls with audio muted. Unlike the option above, this one is only
// applied locally. FIXME: having these 2 options is confusing.
// startWithAudioMuted: false,
// Enabling it (with #params) will disable local audio output of remote
// participants and to enable it back a reload is needed.
// startSilent: false
// Sets the preferred target bitrate for the Opus audio codec by setting its
// 'maxaveragebitrate' parameter. Currently not available in p2p mode.
// Valid values are in the range 6000 to 510000
// opusMaxAverageBitrate: 20000,
// Enables support for opus-red (redundancy for Opus).
// enableOpusRed: false
// Video
// Sets the preferred resolution (height) for local video. Defaults to 720.
// resolution: 720,
// How many participants while in the tile view mode, before the receiving video quality is reduced from HD to SD.
// Use -1 to disable.
// maxFullResolutionParticipants: 2,
// 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 independent from
// this config's resolution value. Defaults to requesting an ideal
// resolution of 720p.
// constraints: {
// video: {
// height: {
// ideal: 720,
// max: 720,
// min: 240
// }
// }
// },
// Enable / disable simulcast support.
// disableSimulcast: false,
// 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: false,
// Every participant after the Nth will start video muted.
// startVideoMuted: 10,
// Start calls with video muted. Unlike the option above, this one is only
// applied locally. FIXME: having these 2 options is confusing.
// startWithVideoMuted: false,
// 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.
// This option has been deprecated, use preferredCodec under videoQuality section instead.
// preferH264: true,
// If set to true, disable H.264 video codec by stripping it out of the
// SDP.
// disableH264: false,
// Desktop sharing
// Optional desktop sharing frame rate options. Default value: min:5, max:5.
// desktopSharingFrameRate: {
// min: 5,
// max: 5
// },
// Try to start calls with screen-sharing instead of camera video.
// startScreenSharing: false,
// Recording
// Whether to enable file recording or not.
// fileRecordingsEnabled: false,
// Enable the dropbox integration.
// dropbox: {
// appKey: '<APP_KEY>' // Specify your app key here.
// // A URL to redirect the user to, after authenticating
// // by default uses:
// // 'https://jitsi-meet.example.com/static/oauth.html'
// redirectURI:
// 'https://jitsi-meet.example.com/subfolder/static/oauth.html'
// },
// When integrations like dropbox are enabled only that will be shown,
// by enabling fileRecordingsServiceEnabled, we show both the integrations
// and the generic recording service (its configuration and storage type
// depends on jibri configuration)
// fileRecordingsServiceEnabled: false,
// Whether to show the possibility to share file recording with other people
// (e.g. meeting participants), based on the actual implementation
// on the backend.
// fileRecordingsServiceSharingEnabled: false,
// Whether to enable live streaming or not.
// liveStreamingEnabled: false,
// Transcription (in interface_config,
// subtitles and buttons can be configured)
// transcribingEnabled: false,
// Enables automatic turning on captions when recording is started
// autoCaptionOnRecord: false,
// Misc
// Default value for the channel "last N" attribute. -1 for unlimited.
channelLastN: -1,
// Provides a way to use different "last N" values based on the number of participants in the conference.
// The keys in an Object represent number of participants and the values are "last N" to be used when number of
// participants gets to or above the number.
//
// For the given example mapping, "last N" will be set to 20 as long as there are at least 5, but less than
// 29 participants in the call and it will be lowered to 15 when the 30th participant joins. The 'channelLastN'
// will be used as default until the first threshold is reached.
//
// lastNLimits: {
// 5: 20,
// 30: 15,
// 50: 10,
// 70: 5,
// 90: 2
// },
// Specify the settings for video quality optimizations on the client.
// videoQuality: {
// // Provides a way to prevent a video codec from being negotiated on the JVB connection. The codec specified
// // here will be removed from the list of codecs present in the SDP answer generated by the client. If the
// // same codec is specified for both the disabled and preferred option, the disable settings will prevail.
// // Note that 'VP8' cannot be disabled since it's a mandatory codec, the setting will be ignored in this case.
// disabledCodec: 'H264',
//
// // Provides a way to set a preferred video codec for the JVB connection. If 'H264' is specified here,
// // simulcast will be automatically disabled since JVB doesn't support H264 simulcast yet. This will only
// // rearrange the the preference order of the codecs in the SDP answer generated by the browser only if the
// // preferred codec specified here is present. Please ensure that the JVB offers the specified codec for this
// // to take effect.
// preferredCodec: 'VP8',
//
// // Provides a way to configure the maximum bitrates that will be enforced on the simulcast streams for
// // video tracks. The keys in the object represent the type of the stream (LD, SD or HD) and the values
// // are the max.bitrates to be set on that particular type of stream. The actual send may vary based on
// // the available bandwidth calculated by the browser, but it will be capped by the values specified here.
// // This is currently not implemented on app based clients on mobile.
// maxBitratesVideo: {
// low: 200000,
// standard: 500000,
// high: 1500000
// },
//
// // The options can be used to override default thresholds of video thumbnail heights corresponding to
// // the video quality levels used in the application. At the time of this writing the allowed levels are:
// // 'low' - for the low quality level (180p at the time of this writing)
// // 'standard' - for the medium quality level (360p)
// // 'high' - for the high quality level (720p)
// // The keys should be positive numbers which represent the minimal thumbnail height for the quality level.
// //
// // With the default config value below the application will use 'low' quality until the thumbnails are
// // at least 360 pixels tall. If the thumbnail height reaches 720 pixels then the application will switch to
// // the high quality.
// minHeightForQualityLvl: {
// 360: 'standard',
// 720: 'high'
// },
//
// // Provides a way to resize the desktop track to 720p (if it is greater than 720p) before creating a canvas
// // for the presenter mode (camera picture-in-picture mode with screenshare).
// resizeDesktopForPresenter: false
// },
// // Options for the recording limit notification.
// recordingLimit: {
//
// // The recording limit in minutes. Note: This number appears in the notification text
// // but doesn't enforce the actual recording time limit. This should be configured in
// // jibri!
// limit: 60,
//
// // The name of the app with unlimited recordings.
// appName: 'Unlimited recordings APP',
//
// // The URL of the app with unlimited recordings.
// appURL: 'https://unlimited.recordings.app.com/'
// },
// Disables or enables RTX (RFC 4588) (defaults to false).
// disableRtx: false,
// Disables or enables TCC support in this client (default: enabled).
// enableTcc: true,
// Disables or enables REMB support in this client (default: enabled).
// enableRemb: true,
// Enables ICE restart logic in LJM and displays the page reload overlay on
// ICE failure. Current disabled by default because it's causing issues with
// signaling when Octo is enabled. Also when we do an "ICE restart"(which is
// not a real ICE restart), the client maintains the TCC sequence number
// counter, but the bridge resets it. The bridge sends media packets with
// TCC sequence numbers starting from 0.
// enableIceRestart: false,
// Use TURN/UDP servers for the jitsi-videobridge connection (by default
// we filter out TURN/UDP because it is usually not needed since the
// bridge itself is reachable via UDP)
// useTurnUdp: false
// UI
//
// Disables responsive tiles.
// disableResponsiveTiles: false,
// Hides lobby button
// hideLobbyButton: false,
// Require users to always specify a display name.
// requireDisplayName: true,
// Whether to use a welcome page or not. In case it's false a random room
// will be joined when no room is specified.
enableWelcomePage: true,
// Disable app shortcuts that are registered upon joining a conference
// disableShortcuts: false,
// Disable initial browser getUserMedia requests.
// This is useful for scenarios where users might want to start a conference for screensharing only
// disableInitialGUM: false,
// Enabling the close page will ignore the welcome page redirection when
// a call is hangup.
// enableClosePage: false,
// Disable hiding of remote thumbnails when in a 1-on-1 conference call.
// disable1On1Mode: false,
// Default language for the user interface.
// defaultLanguage: 'en',
// Disables profile and the edit of all fields from the profile settings (display name and email)
// disableProfile: false,
// Whether or not some features are checked based on token.
// enableFeaturesBasedOnToken: false,
// When enabled the password used for locking a room is restricted to up to the number of digits specified
// roomPasswordNumberOfDigits: 10,
// default: roomPasswordNumberOfDigits: false,
// Message to show the users. Example: 'The service will be down for
// maintenance at 01:00 AM GMT,
// noticeMessage: '',
// Enables calendar integration, depends on googleApiApplicationClientID
// and microsoftApiApplicationClientID
// enableCalendarIntegration: false,
// When 'true', it shows an intermediate page before joining, where the user can configure their devices.
// prejoinPageEnabled: false,
// If etherpad integration is enabled, setting this to true will
// automatically open the etherpad when a participant joins. This
// does not affect the mobile app since opening an etherpad
// obscures the conference controls -- it's better to let users
// choose to open the pad on their own in that case.
// openSharedDocumentOnJoin: false,
// If true, shows the unsafe room name warning label when a room name is
// deemed unsafe (due to the simplicity in the name) and a password is not
// set or the lobby is not enabled.
// enableInsecureRoomNameWarning: false,
// Whether to automatically copy invitation URL after creating a room.
// Document should be focused for this option to work
// enableAutomaticUrlCopy: false,
// Base URL for a Gravatar-compatible service. Defaults to libravatar.
// gravatarBaseURL: 'https://seccdn.libravatar.org/avatar/';
// Stats
//
// Whether to enable stats collection or not in the TraceablePeerConnection.
// This can be useful for debugging purposes (post-processing/analysis of
// the webrtc stats) as it is done in the jitsi-meet-torture bandwidth
// estimation tests.
// gatherStats: false,
// The interval at which PeerConnection.getStats() is called. Defaults to 10000
// pcStatsInterval: 10000,
// To enable sending statistics to callstats.io you must provide the
// Application ID and Secret.
// callStatsID: '',
// callStatsSecret: '',
// Enables sending participants' display names to callstats
// enableDisplayNameInStats: false,
// Enables sending participants' emails (if available) to callstats and other analytics
// enableEmailInStats: false,
// Privacy
//
// If third party requests are disabled, no other server will be contacted.
// This means avatars will be locally generated and callstats integration
// will not function.
// disableThirdPartyRequests: false,
// Peer-To-Peer mode: used (if enabled) when there are just 2 participants.
//
p2p: {
// Enables peer to peer mode. When enabled the system will try to
// establish a direct connection when there are exactly 2 participants
// in the room. If that succeeds the conference will stop sending data
// through the JVB and use the peer to peer connection instead. When a
// 3rd participant joins the conference will be moved back to the JVB
// connection.
enabled: true,
// The STUN servers that will be used in the peer to peer connections
stunServers: [
// { urls: 'stun:jitsi-meet.example.com:3478' },
{ urls: 'stun:meet-jit-si-turnrelay.jitsi.net:443' }
]
// Sets the ICE transport policy for the p2p connection. At the time
// of this writing the list of possible values are 'all' and 'relay',
// but that is subject to change in the future. The enum is defined in
// the WebRTC standard:
// https://www.w3.org/TR/webrtc/#rtcicetransportpolicy-enum.
// If not set, the effective value is 'all'.
// iceTransportPolicy: 'all',
// If set to true, it will prefer to use H.264 for P2P calls (if H.264
// is supported). This setting is deprecated, use preferredCodec instead.
// preferH264: true
// Provides a way to set the video codec preference on the p2p connection. Acceptable
// codec values are 'VP8', 'VP9' and 'H264'.
// preferredCodec: 'H264',
// If set to true, disable H.264 video codec by stripping it out of the
// SDP. This setting is deprecated, use disabledCodec instead.
// disableH264: false,
// Provides a way to prevent a video codec from being negotiated on the p2p connection.
// disabledCodec: '',
// How long we're going to wait, before going back to P2P after the 3rd
// participant has left the conference (to filter out page reload).
// backToP2PDelay: 5
},
analytics: {
// The Google Analytics Tracking ID:
// googleAnalyticsTrackingId: 'your-tracking-id-UA-123456-1'
// Matomo configuration:
// matomoEndpoint: 'https://your-matomo-endpoint/',
// matomoSiteID: '42',
// The Amplitude APP Key:
// amplitudeAPPKey: '<APP_KEY>'
// Configuration for the rtcstats server:
// By enabling rtcstats server every time a conference is joined the rtcstats
// module connects to the provided rtcstatsEndpoint and sends statistics regarding
// PeerConnection states along with getStats metrics polled at the specified
// interval.
// rtcstatsEnabled: true,
// In order to enable rtcstats one needs to provide a endpoint url.
// rtcstatsEndpoint: wss://rtcstats-server-pilot.jitsi.net/,
// The interval at which rtcstats will poll getStats, defaults to 1000ms.
// If the value is set to 0 getStats won't be polled and the rtcstats client
// will only send data related to RTCPeerConnection events.
// rtcstatsPolIInterval: 1000
// Array of script URLs to load as lib-jitsi-meet "analytics handlers".
// scriptURLs: [
// "libs/analytics-ga.min.js", // google-analytics
// "https://example.com/my-custom-analytics.js"
// ],
},
// Logs that should go be passed through the 'log' event if a handler is defined for it
// apiLogLevels: ['warn', 'log', 'error', 'info', 'debug'],
// Information about the jitsi-meet instance we are connecting to, including
// the user region as seen by the server.
deploymentInfo: {
// shard: "shard1",
// region: "europe",
// userRegion: "asia"
},
// Decides whether the start/stop recording audio notifications should play on record.
// disableRecordAudioNotification: false,
// Information for the chrome extension banner
// chromeExtensionBanner: {
// // The chrome extension to be installed address
// url: 'https://chrome.google.com/webstore/detail/jitsi-meetings/kglhbbefdnlheedjiejgomgmfplipfeb',
// // Extensions info which allows checking if they are installed or not
// chromeExtensionsInfo: [
// {
// id: 'kglhbbefdnlheedjiejgomgmfplipfeb',
// path: 'jitsi-logo-48x48.png'
// }
// ]
// },
// Local Recording
//
// localRecording: {
// Enables local recording.
// Additionally, 'localrecording' (all lowercase) needs to be added to
// TOOLBAR_BUTTONS in interface_config.js for the Local Recording
// button to show up on the toolbar.
//
// enabled: true,
//
// The recording format, can be one of 'ogg', 'flac' or 'wav'.
// format: 'flac'
//
// },
// Options related to end-to-end (participant to participant) ping.
// e2eping: {
// // The interval in milliseconds at which pings will be sent.
// // Defaults to 10000, set to <= 0 to disable.
// pingInterval: 10000,
//
// // The interval in milliseconds at which analytics events
// // with the measured RTT will be sent. Defaults to 60000, set
// // to <= 0 to disable.
// analyticsInterval: 60000,
// },
// If set, will attempt to use the provided video input device label when
// triggering a screenshare, instead of proceeding through the normal flow
// for obtaining a desktop stream.
// NOTE: This option is experimental and is currently intended for internal
// use only.
// _desktopSharingSourceDevice: 'sample-id-or-label',
// If true, any checks to handoff to another application will be prevented
// and instead the app will continue to display in the current browser.
// disableDeepLinking: false,
// A property to disable the right click context menu for localVideo
// the menu has option to flip the locally seen video for local presentations
// disableLocalVideoFlip: false,
// Mainly privacy related settings
// Disables all invite functions from the app (share, invite, dial out...etc)
// disableInviteFunctions: true,
// Disables storing the room name to the recents list
// doNotStoreRoom: true,
// Deployment specific URLs.
// deploymentUrls: {
// // If specified a 'Help' button will be displayed in the overflow menu with a link to the specified URL for
// // user documentation.
// userDocumentationURL: 'https://docs.example.com/video-meetings.html',
// // If specified a 'Download our apps' button will be displayed in the overflow menu with a link
// // to the specified URL for an app download page.
// downloadAppsUrl: 'https://docs.example.com/our-apps.html'
// },
// Options related to the remote participant menu.
// remoteVideoMenu: {
// // If set to true the 'Kick out' button will be disabled.
// disableKick: true
// },
// If set to true all muting operations of remote participants will be disabled.
// disableRemoteMute: true,
// Enables support for lip-sync for this client (if the browser supports it).
// enableLipSync: false
/**
External API url used to receive branding specific information.
If there is no url set or there are missing fields, the defaults are applied.
None of the fields are mandatory and the response must have the shape:
{
// The hex value for the colour used as background
backgroundColor: '#fff',
// The url for the image used as background
backgroundImageUrl: 'https://example.com/background-img.png',
// The anchor url used when clicking the logo image
logoClickUrl: 'https://example-company.org',
// The url used for the image used as logo
logoImageUrl: 'https://example.com/logo-img.png'
}
*/
// dynamicBrandingUrl: '',
// The URL of the moderated rooms microservice, if available. If it
// is present, a link to the service will be rendered on the welcome page,
// otherwise the app doesn't render it.
// moderatedRoomServiceUrl: 'https://moderated.jitsi-meet.example.com',
// If true, tile view will not be enabled automatically when the participants count threshold is reached.
// disableTileView: true,
// Hides the conference subject
// hideConferenceSubject: true
// Hides the conference timer.
// hideConferenceTimer: true,
// Hides the participants stats
// hideParticipantsStats: true
// Sets the conference subject
// subject: 'Conference Subject',
// List of undocumented settings used in jitsi-meet
/**
_immediateReloadThreshold
debug
debugAudioLevels
deploymentInfo
dialInConfCodeUrl
dialInNumbersUrl
dialOutAuthUrl
dialOutCodesUrl
disableRemoteControl
displayJids
etherpad_base
externalConnectUrl
firefox_fake_device
googleApiApplicationClientID
iAmRecorder
iAmSipGateway
microsoftApiApplicationClientID
peopleSearchQueryTypes
peopleSearchUrl
requireDisplayName
tokenAuthUrl
*/
/**
* This property can be used to alter the generated meeting invite links (in combination with a branding domain
* which is retrieved internally by jitsi meet) (e.g. https://meet.jit.si/someMeeting
* can become https://brandedDomain/roomAlias)
*/
// brandingRoomAlias: null,
// List of undocumented settings used in lib-jitsi-meet
/**
_peerConnStatusOutOfLastNTimeout
_peerConnStatusRtcMuteTimeout
abTesting
avgRtpStatsN
callStatsConfIDNamespace
callStatsCustomScriptUrl
desktopSharingSources
disableAEC
disableAGC
disableAP
disableHPF
disableNS
enableTalkWhileMuted
forceJVB121Ratio
forceTurnRelay
hiddenDomain
ignoreStartMuted
websocketKeepAlive
websocketKeepAliveUrl
*/
/**
Use this array to configure which notifications will be shown to the user
The items correspond to the title or description key of that notification
Some of these notifications also depend on some other internal logic to be displayed or not,
so adding them here will not ensure they will always be displayed
A falsy value for this prop will result in having all notifications enabled (e.g null, undefined, false)
*/
// notifications: [
// 'connection.CONNFAIL', // shown when the connection fails,
// 'dialog.cameraNotSendingData', // shown when there's no feed from user's camera
// 'dialog.kickTitle', // shown when user has been kicked
// 'dialog.liveStreaming', // livestreaming notifications (pending, on, off, limits)
// 'dialog.lockTitle', // shown when setting conference password fails
// 'dialog.maxUsersLimitReached', // shown when maximmum users limit has been reached
// 'dialog.micNotSendingData', // shown when user's mic is not sending any audio
// 'dialog.passwordNotSupportedTitle', // shown when setting conference password fails due to password format
// 'dialog.recording', // recording notifications (pending, on, off, limits)
// 'dialog.remoteControlTitle', // remote control notifications (allowed, denied, start, stop, error)
// 'dialog.reservationError',
// 'dialog.serviceUnavailable', // shown when server is not reachable
// 'dialog.sessTerminated', // shown when there is a failed conference session
// 'dialog.tokenAuthFailed', // show when an invalid jwt is used
// 'dialog.transcribing', // transcribing notifications (pending, off)
// 'dialOut.statusMessage', // shown when dial out status is updated.
// 'liveStreaming.busy', // shown when livestreaming service is busy
// 'liveStreaming.failedToStart', // shown when livestreaming fails to start
// 'liveStreaming.unavailableTitle', // shown when livestreaming service is not reachable
// 'lobby.joinRejectedMessage', // shown when while in a lobby, user's request to join is rejected
// 'lobby.notificationTitle', // shown when lobby is toggled and when join requests are allowed / denied
// 'localRecording.localRecording', // shown when a local recording is started
// 'notify.disconnected', // shown when a participant has left
// 'notify.grantedTo', // shown when moderator rights were granted to a participant
// 'notify.invitedOneMember', // shown when 1 participant has been invited
// 'notify.invitedThreePlusMembers', // shown when 3+ participants have been invited
// 'notify.invitedTwoMembers', // shown when 2 participants have been invited
// 'notify.kickParticipant', // shown when a participant is kicked
// 'notify.mutedRemotelyTitle', // shown when user is muted by a remote party
// 'notify.mutedTitle', // shown when user has been muted upon joining,
// 'notify.newDeviceAudioTitle', // prompts the user to use a newly detected audio device
// 'notify.newDeviceCameraTitle', // prompts the user to use a newly detected camera
// 'notify.passwordRemovedRemotely', // shown when a password has been removed remotely
// 'notify.passwordSetRemotely', // shown when a password has been set remotely
// 'notify.raisedHand', // shown when a partcipant used raise hand,
// 'notify.startSilentTitle', // shown when user joined with no audio
// 'prejoin.errorDialOut',
// 'prejoin.errorDialOutDisconnected',
// 'prejoin.errorDialOutFailed',
// 'prejoin.errorDialOutStatus',
// 'prejoin.errorStatusCode',
// 'prejoin.errorValidation',
// 'recording.busy', // shown when recording service is busy
// 'recording.failedToStart', // shown when recording fails to start
// 'recording.unavailableTitle', // shown when recording service is not reachable
// 'toolbar.noAudioSignalTitle', // shown when a broken mic is detected
// 'toolbar.noisyAudioInputTitle', // shown when noise is detected for the current microphone
// 'toolbar.talkWhileMutedPopup', // shown when user tries to speak while muted
// 'transcribing.failedToStart' // shown when transcribing fails to start
// ]
// Allow all above example options to include a trailing comma and
// prevent fear when commenting out the last value.
makeJsonParserHappy: 'even if last key had a trailing comma'
// no configuration value should follow this line.
};
/* eslint-enable no-unused-vars, no-var */

View File

@ -0,0 +1,139 @@
server_names_hash_bucket_size 64;
server {
listen 80;
listen [::]:80;
server_name jitsi-meet.example.com;
location ^~ /.well-known/acme-challenge/ {
default_type "text/plain";
root /usr/share/jitsi-meet;
}
location = /.well-known/acme-challenge/ {
return 404;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name jitsi-meet.example.com;
# Mozilla Guideline v5.4, nginx 1.17.7, OpenSSL 1.1.1d, intermediate configuration
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m; # about 40000 sessions
ssl_session_tickets off;
add_header Strict-Transport-Security "max-age=63072000" always;
ssl_certificate /etc/jitsi/meet/jitsi-meet.example.com.crt;
ssl_certificate_key /etc/jitsi/meet/jitsi-meet.example.com.key;
root /usr/share/jitsi-meet;
# ssi on with javascript for multidomain variables in config.js
ssi on;
ssi_types application/x-javascript application/javascript;
index index.html index.htm;
error_page 404 /static/404.html;
gzip on;
gzip_types text/plain text/css application/javascript application/json image/x-icon application/octet-stream application/wasm;
gzip_vary on;
gzip_proxied no-cache no-store private expired auth;
gzip_min_length 512;
location = /config.js {
alias /etc/jitsi/meet/jitsi-meet.example.com-config.js;
}
location = /external_api.js {
alias /usr/share/jitsi-meet/libs/external_api.min.js;
}
# ensure all static content can always be found first
location ~ ^/(libs|css|static|images|fonts|lang|sounds|connection_optimization|.well-known)/(.*)$
{
add_header 'Access-Control-Allow-Origin' '*';
alias /usr/share/jitsi-meet/$1/$2;
# cache all versioned files
if ($arg_v) {
expires 1y;
}
}
# BOSH
location = /http-bind {
proxy_pass http://localhost:5280/http-bind;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
}
# xmpp websockets
location = /xmpp-websocket {
proxy_pass http://127.0.0.1:5280/xmpp-websocket?prefix=$prefix&$args;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
tcp_nodelay on;
}
# colibri (JVB) websockets for jvb1
location ~ ^/colibri-ws/default-id/(.*) {
proxy_pass http://127.0.0.1:9090/colibri-ws/default-id/$1$is_args$args;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
tcp_nodelay on;
}
location ~ ^/([^/?&:'"]+)$ {
try_files $uri @root_path;
}
location @root_path {
rewrite ^/(.*)$ / break;
}
location ~ ^/([^/?&:'"]+)/config.js$
{
set $subdomain "$1.";
set $subdir "$1/";
alias /etc/jitsi/meet/jitsi-meet.example.com-config.js;
}
# Anything that didn't match above, and isn't a real file, assume it's a room name and redirect to /
location ~ ^/([^/?&:'"]+)/(.*)$ {
set $subdomain "$1.";
set $subdir "$1/";
rewrite ^/([^/?&:'"]+)/(.*)$ /$2;
}
# BOSH for subdomains
location ~ ^/([^/?&:'"]+)/http-bind {
set $subdomain "$1.";
set $subdir "$1/";
set $prefix "$1";
rewrite ^/(.*)$ /http-bind;
}
# websockets for subdomains
location ~ ^/([^/?&:'"]+)/xmpp-websocket {
set $subdomain "$1.";
set $subdir "$1/";
set $prefix "$1";
rewrite ^/(.*)$ /xmpp-websocket;
}
}

View File

@ -0,0 +1,40 @@
# Copyright 1999-2020 Unitas Network GmbH
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit eutils unpacker
MY_PN=${PN/-bin/}
DESCRIPTION="Jitsi Meet is a WebRTC JavaScript application that uses Jitsi Videobridge to provide high quality, scalable video conferences."
HOMEPAGE="https://jitsi.org/"
SRC_URI_BASE="https://download.jitsi.org/stable"
SRC_URI="${SRC_URI_BASE}/${MY_PN}_${PV}-1_all.deb"
RESTRICT="mirror"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE=""
DEPEND=""
RDEPEND=""
S=${WORKDIR}
src_install() {
insinto /etc/jitsi/meet/
newins ${FILESDIR}/meet.example.com-config-${PV}.js meet.example.com-config.js
gunzip usr/share/doc/jitsi-meet-web/README.md.gz
dodoc usr/share/doc/jitsi-meet-web/README.md
dodoc usr/share/doc/jitsi-meet-web/README.Debian
newdoc ${FILESDIR}/nginx-jitsi-meet-${PV}.example nginx-jitsi-meet.example
rm -rf usr/share/doc
insinto /
doins -r usr
}

View File

@ -1,6 +1,8 @@
AUX config.example 937 BLAKE2B 580435de59ba5f55307426e60b4ecc1efaca4b10dac39476c74f00daf986e1d2ac375824a9ed93eb8309bb6133d2a1728054ee14f5e36d1d5658913f4132e35c SHA512 b5f2b7f04179601656b2ea6fe602304c60812f469249830748abcbccfd28e19c7285e7446039587df8432c1322173a600e6702c2783321a9945759ee7f88aa50 AUX config.example 937 BLAKE2B 580435de59ba5f55307426e60b4ecc1efaca4b10dac39476c74f00daf986e1d2ac375824a9ed93eb8309bb6133d2a1728054ee14f5e36d1d5658913f4132e35c SHA512 b5f2b7f04179601656b2ea6fe602304c60812f469249830748abcbccfd28e19c7285e7446039587df8432c1322173a600e6702c2783321a9945759ee7f88aa50
AUX jitsi-videobridge-init.d 1078 BLAKE2B 5f04bd6f54c3002ebb1ec8d4df9614942de2d6ee22ca531332ae83ed0a3558f33de3673a13e6c0528f6382c895f781300e7b39f32829645cfe48aea2536dbdaa SHA512 9300b363e578bd31967ef895fa33d919ad15ec9dd273367d342867999342e683d6e8f3694cf5d5b35bde6d36579f341bcab0e041b7117d6b425b8e8994596fdb AUX jitsi-videobridge-init.d 1078 BLAKE2B 5f04bd6f54c3002ebb1ec8d4df9614942de2d6ee22ca531332ae83ed0a3558f33de3673a13e6c0528f6382c895f781300e7b39f32829645cfe48aea2536dbdaa SHA512 9300b363e578bd31967ef895fa33d919ad15ec9dd273367d342867999342e683d6e8f3694cf5d5b35bde6d36579f341bcab0e041b7117d6b425b8e8994596fdb
AUX jvb.conf.example 195 BLAKE2B f10400f2d4cb5bb40eef213357d5d9fdbd829e25475757c617cc60a033ced6e7312603248c8223f9cec068e989fd29c69d97ddb33fce2c50bbb2781ba40c966e SHA512 90b4c7301b2bde83c7a823cb4934dc0268dfe13230591c535dee0d6c784bb4824d1fc775ba9b45bc8ef844abb00278761d316e1845d08f7e8a91fa5e6e7154ed AUX jvb.conf.example 196 BLAKE2B 63a895fb31f8788ab02ed8b45792e56f70ee6d3715d067b8a7ddf9c04ee2b2506ea8af1522d720fc3afad5052f162fb4ca9bed5acd94ec8c9908c46b56a281f6 SHA512 8c3abf0a628c0ec7e4033503b7b33ec973106d65ac5a739ab9c0967bab83e27da9924792efe484368d24192656315e8e0c617a56500a78ce670972d05bd365eb
AUX sip-communicator.properties.example 2816 BLAKE2B 6ffa5c9e01f1a71c666470aa841e5ad406486ccabd94aa87f5e292330dc2cb532f1df6961f0b29e94129992196602c9e68cae89cb1b5af3836ba2121b00f6519 SHA512 288aa842ae03d96ae0a4b56c9099683da719fb168b12cc962415a0bdbedaafbda069ca0e10383b230e38214e1ec1ba5b3d12d7e6a474222b67362cf880292323 AUX sip-communicator.properties.example 2816 BLAKE2B 6ffa5c9e01f1a71c666470aa841e5ad406486ccabd94aa87f5e292330dc2cb532f1df6961f0b29e94129992196602c9e68cae89cb1b5af3836ba2121b00f6519 SHA512 288aa842ae03d96ae0a4b56c9099683da719fb168b12cc962415a0bdbedaafbda069ca0e10383b230e38214e1ec1ba5b3d12d7e6a474222b67362cf880292323
DIST jitsi-videobridge2_2.1-376-g9f12bfe2-1_all.deb 33757760 BLAKE2B 9df4fa0e834e9a40d34cf048e7c50eaecef8ba853c3aba5378e6f2557baa02d62ea05db3fc355c75cd300cc9387dcbc81720c154bceb842da838c79e1ac9a855 SHA512 03e7fda31c4b5d699313a9c2d0d691a903d4e70939165532fb14e5f4bdd783626dc1da3f160046a348a7aca13001d9974587a465c8de64b1765a90fe07e87a8b DIST jitsi-videobridge2_2.1-376-g9f12bfe2-1_all.deb 33757760 BLAKE2B 9df4fa0e834e9a40d34cf048e7c50eaecef8ba853c3aba5378e6f2557baa02d62ea05db3fc355c75cd300cc9387dcbc81720c154bceb842da838c79e1ac9a855 SHA512 03e7fda31c4b5d699313a9c2d0d691a903d4e70939165532fb14e5f4bdd783626dc1da3f160046a348a7aca13001d9974587a465c8de64b1765a90fe07e87a8b
DIST jitsi-videobridge2_2.1-416-g2f43d1b4-1_all.deb 34049320 BLAKE2B 95b814cf78ef02eceb4e4f091b530b19623b21dc8eb3361f6deedb9e0cc3ea995d8c26eb3d68cabbbc497dec83a9cc7994b8f266a546415ecd30125188bb0520 SHA512 0139ad81d1fdf28cfa5d5a37acad8adb73f456cf1e5c4bedffc231b474c6a846ed658c72b62a3c32d34f2fc03c0ab6c40e8eb04cc194bfbf9e7738f3fc2d80f6
EBUILD jitsi-videobridge-bin-2.1.376.ebuild 1540 BLAKE2B ea2cc30ccc191cc77834c91424fe9728c167ecf3d0d219dd955401c9259be5cc6291a18a6f2b0501e6b50d58c39f6c62ab135a1074fc5886f3f1e818fc71450e SHA512 d0a6bbd05e11ac775ef97aceb8b2469a2718133e4d99fdda6f7fd913e2b7f9c708c3f228c5739b5c0feb5abfe4800ce0115a876c706ef8246aa2efce60ebd638 EBUILD jitsi-videobridge-bin-2.1.376.ebuild 1540 BLAKE2B ea2cc30ccc191cc77834c91424fe9728c167ecf3d0d219dd955401c9259be5cc6291a18a6f2b0501e6b50d58c39f6c62ab135a1074fc5886f3f1e818fc71450e SHA512 d0a6bbd05e11ac775ef97aceb8b2469a2718133e4d99fdda6f7fd913e2b7f9c708c3f228c5739b5c0feb5abfe4800ce0115a876c706ef8246aa2efce60ebd638
EBUILD jitsi-videobridge-bin-2.1.416.ebuild 1557 BLAKE2B 0c329cc431158301ed4c84443a1252e254406e9533fd9a13af262df48d879174bd680e87fa432a9ccd6ea05777ec8833dc8b5deec1d0ede5a7f4954225541a37 SHA512 7d4374a5019c9d91dbf13ce38db48dfebd128ded56013b8ecf168051084d4ff871559deb094a2a6793c05d1b6412bcbf56d0cf88780ce33164fc0a84c60eb963

View File

@ -6,7 +6,7 @@ videobridge {
} }
websockets { websockets {
enabled = true enabled = true
domain = meet.example.com:443" domain = "meet.example.com:443"
tls = true tls = true
} }
} }

View File

@ -0,0 +1,63 @@
# Copyright 1999-2020 Unitas Network GmbH
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit eutils systemd unpacker user
MY_PN=${PN/-bin/}
MY_PV=$(ver_rs 2 '-')
MY_EV="-g2f43d1b4-1"
DESCRIPTION="Jitsi Videobridge is a WebRTC compatible Selective Forwarding Unit"
HOMEPAGE="https://jitsi.org/"
SRC_URI_BASE="https://download.jitsi.org/stable"
SRC_URI=${SRC_URI_BASE}/${MY_PN}2_${MY_PV}${MY_EV}_all.deb
RESTRICT="mirror strip"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE=""
DEPEND=""
RDEPEND="virtual/jre"
S=${WORKDIR}
pkg_setup() {
enewgroup jitsi
enewuser jvb -1 /bin/bash /usr/share/jitsi-videobridge jitsi
}
src_install() {
insinto /etc/jitsi/videobridge/
doins ${FILESDIR}/config.example
doins ${FILESDIR}/jvb.conf.example
doins ${FILESDIR}/sip-communicator.properties.example
dodoc usr/share/doc/jitsi-videobridge2/README.Debian
rm -rf usr/share/doc
rm -rf etc/init.d
insinto /
doins -r etc usr
keepdir /var/log/jitsi
fowners root:jitsi /var/log/jitsi
fperms 775 /var/log/jitsi
fowners -R jvb:jitsi /usr/share/jitsi-videobridge
fperms 755 /usr/share/jitsi-videobridge/collect-dump-logs.sh
fperms 755 /usr/share/jitsi-videobridge/jvb.sh
fperms 755 /usr/share/jitsi-videobridge/graceful_shutdown.sh
fowners -R jvb:jitsi /etc/jitsi/videobridge
fperms 750 /etc/jitsi/videobridge
fperms 600 /etc/jitsi/videobridge/sip-communicator.properties.example
newinitd "${FILESDIR}/${MY_PN}-init.d" "${MY_PN}"
systemd_newunit lib/systemd/system/${MY_PN}2.service ${MY_PN}.service
}