diff --git a/net-misc/jicofo-bin/Manifest b/net-misc/jicofo-bin/Manifest index f931159..15b5dd8 100644 --- a/net-misc/jicofo-bin/Manifest +++ b/net-misc/jicofo-bin/Manifest @@ -1,7 +1,13 @@ +AUX config-1.0.692.example 998 BLAKE2B e239aeba7c1cee97a529a8a09a6abaa59db8dcae99e5b9c0f0c217d5dcfe42f8b7f00fb3ea9c05db109e5ef0a646f0de15f385d394117f014cac6783faa66603 SHA512 3861da6f912d47eefd64800175b0e63a67d196d0b6bfc18e5a68958c53d55f8eee8dc5f8cd70a660f0feade241487c5d2e9dc8644647a2699932741b31a35d5e 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-init-1.0.692.d 1014 BLAKE2B 1a949db8c638795960e066412e01bc33d09427c374b6c15d2ce0ab9c198b7e6a94711ce77bb1edc2672beadb4a225b9d4695538e690cf910223b33a5782e2f73 SHA512 4766a39452bb1f62d8f86e90f2c3cc14aae4540445111a7276a7f563ff603e3fe60b453b7b77159a526c4f5a05cb20a9bd3ed1ad7fbca511b0c8b7efa421da18 AUX jicofo-init.d 1058 BLAKE2B 32467d7085786efb52eedc16c59b7ab560d3bbbb122bc9fd7306368432f901e5da18f07df7c4f91157231e3c07fa9479065ea87a005e629d5aeeb80cc3f95441 SHA512 90bf80dd87eed14d2421ee5ce886768103ee09ae8940ff0f1e10d4020cda54d0080d6527fd5988014c8a1a4f869439c5d8e2305389a84f97bff43b810205cca8 AUX jicofo.conf.example 142 BLAKE2B 40578c19110b466df3b97dcfab05e77836e708d35ac009ff1a48c493ac7e9b49b22105e4b2da5f8db61e56ff2bd93bbaead23e68f413b88393a80adeed00a2cf SHA512 d984c78e9ea7b9bf0b6531db3b24dca1d9dcf0693732b9807e6921084a763ab4c9d98c5b40eb058e588b2ca9b5600fcb534f53e4102731a7adc243cdaf60e39f 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-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.692.ebuild 1604 BLAKE2B 6367991ed0073c3ac422d17403502b019452575d7daddb5b4edf5e1a41c61702ee94bcd37f4b283acaeba728ab3dea01ca6b0b765b1ad27063dc02f70c8ccb1f SHA512 4e1eff9d93bc304ba4fc6170dccb48187c6f4d6b501819417d4b58244202fff694606ac9aafb9a19cb585e6af8c4af42b7382021460460a5ba4f85fecd54a8eb diff --git a/net-misc/jicofo-bin/files/config-1.0.692.example b/net-misc/jicofo-bin/files/config-1.0.692.example new file mode 100644 index 0000000..6b400ae --- /dev/null +++ b/net-misc/jicofo-bin/files/config-1.0.692.example @@ -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" diff --git a/net-misc/jicofo-bin/files/jicofo-1.0.692.service b/net-misc/jicofo-bin/files/jicofo-1.0.692.service new file mode 100644 index 0000000..23b191f --- /dev/null +++ b/net-misc/jicofo-bin/files/jicofo-1.0.692.service @@ -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 diff --git a/net-misc/jicofo-bin/files/jicofo-i-1.0.692.service b/net-misc/jicofo-bin/files/jicofo-i-1.0.692.service new file mode 100644 index 0000000..d7ef646 --- /dev/null +++ b/net-misc/jicofo-bin/files/jicofo-i-1.0.692.service @@ -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 diff --git a/net-misc/jicofo-bin/files/jicofo-init-1.0.692.d b/net-misc/jicofo-bin/files/jicofo-init-1.0.692.d new file mode 100755 index 0000000..666500f --- /dev/null +++ b/net-misc/jicofo-bin/files/jicofo-init-1.0.692.d @@ -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 +} diff --git a/net-misc/jicofo-bin/jicofo-bin-1.0.692.ebuild b/net-misc/jicofo-bin/jicofo-bin-1.0.692.ebuild new file mode 100644 index 0000000..46c001a --- /dev/null +++ b/net-misc/jicofo-bin/jicofo-bin-1.0.692.ebuild @@ -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 +} diff --git a/net-misc/jitsi-meet-web-bin/Manifest b/net-misc/jitsi-meet-web-bin/Manifest index 39d635e..a40be18 100644 --- a/net-misc/jitsi-meet-web-bin/Manifest +++ b/net-misc/jitsi-meet-web-bin/Manifest @@ -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 nginx-jitsi-meet-1.0.4628.example 4101 BLAKE2B c887a3c09ad603bbe283c89f9f57125830c7a3b10612d2291864642c7994fea2aced90fd1c542d5bde5b9b7e39b8d24c76f955e30a17320a497e0e6b508f0871 SHA512 2e988dc3134087a18091bba9a6fdbd61fb11f46e3d23c8631118bd867cf53a0af86231d27153371f6a79070b288fc9b3c17942f704e014cc2728a6c6da2cbcd7 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.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.4628.ebuild 947 BLAKE2B 8c32fd51636319fac07c786eb6e3ef259b01e51984ebb8ac1caced2476f9d6745d0d7965c34526e13b4c6b105139bbc0202870ac36c028d44d3d6fd9f83d4004 SHA512 c61298839899fa1c8f298373408c2b9db07ceef44d89f9893847a8fb68af867ad05550854732afc73779b250856fcc87dcc3dca6ddf638f1b3ec8dab0cc0ff07 diff --git a/net-misc/jitsi-meet-web-bin/files/meet.example.com-config-1.0.4628.js b/net-misc/jitsi-meet-web-bin/files/meet.example.com-config-1.0.4628.js new file mode 100644 index 0000000..bc9cf35 --- /dev/null +++ b/net-misc/jitsi-meet-web-bin/files/meet.example.com-config-1.0.4628.js @@ -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 . + // authdomain: 'jitsi-meet.example.com', + + // Focus component domain. Defaults to focus.. + // 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: '' // 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: '' + + // 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 */ diff --git a/net-misc/jitsi-meet-web-bin/files/nginx-jitsi-meet-1.0.4628.example b/net-misc/jitsi-meet-web-bin/files/nginx-jitsi-meet-1.0.4628.example new file mode 100644 index 0000000..e80f0b9 --- /dev/null +++ b/net-misc/jitsi-meet-web-bin/files/nginx-jitsi-meet-1.0.4628.example @@ -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; + } +} diff --git a/net-misc/jitsi-meet-web-bin/jitsi-meet-web-bin-1.0.4628.ebuild b/net-misc/jitsi-meet-web-bin/jitsi-meet-web-bin-1.0.4628.ebuild new file mode 100644 index 0000000..e3c6eb2 --- /dev/null +++ b/net-misc/jitsi-meet-web-bin/jitsi-meet-web-bin-1.0.4628.ebuild @@ -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 +} diff --git a/net-misc/jitsi-videobridge-bin/Manifest b/net-misc/jitsi-videobridge-bin/Manifest index c229959..4928857 100644 --- a/net-misc/jitsi-videobridge-bin/Manifest +++ b/net-misc/jitsi-videobridge-bin/Manifest @@ -1,6 +1,8 @@ AUX config.example 937 BLAKE2B 580435de59ba5f55307426e60b4ecc1efaca4b10dac39476c74f00daf986e1d2ac375824a9ed93eb8309bb6133d2a1728054ee14f5e36d1d5658913f4132e35c SHA512 b5f2b7f04179601656b2ea6fe602304c60812f469249830748abcbccfd28e19c7285e7446039587df8432c1322173a600e6702c2783321a9945759ee7f88aa50 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 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.416.ebuild 1557 BLAKE2B 0c329cc431158301ed4c84443a1252e254406e9533fd9a13af262df48d879174bd680e87fa432a9ccd6ea05777ec8833dc8b5deec1d0ede5a7f4954225541a37 SHA512 7d4374a5019c9d91dbf13ce38db48dfebd128ded56013b8ecf168051084d4ff871559deb094a2a6793c05d1b6412bcbf56d0cf88780ce33164fc0a84c60eb963 diff --git a/net-misc/jitsi-videobridge-bin/files/jvb.conf.example b/net-misc/jitsi-videobridge-bin/files/jvb.conf.example index 4d514b5..2b8faad 100644 --- a/net-misc/jitsi-videobridge-bin/files/jvb.conf.example +++ b/net-misc/jitsi-videobridge-bin/files/jvb.conf.example @@ -6,7 +6,7 @@ videobridge { } websockets { enabled = true - domain = meet.example.com:443" + domain = "meet.example.com:443" tls = true } } \ No newline at end of file diff --git a/net-misc/jitsi-videobridge-bin/jitsi-videobridge-bin-2.1.416.ebuild b/net-misc/jitsi-videobridge-bin/jitsi-videobridge-bin-2.1.416.ebuild new file mode 100644 index 0000000..99b06c9 --- /dev/null +++ b/net-misc/jitsi-videobridge-bin/jitsi-videobridge-bin-2.1.416.ebuild @@ -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 +}