1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/jitsi_ynh.git synced 2024-09-03 19:35:57 +02:00

Missing mod_http_altconnect

This commit is contained in:
yalh76 2020-06-18 15:03:24 +02:00
parent b0bad7bc12
commit 7b652984f6
8 changed files with 82 additions and 57 deletions

View file

@ -46,7 +46,7 @@ var config = {
testing: {
// P2P test mode disables automatic switching to P2P when there are 2
// participants in the conference.
p2pTestMode: false
// p2pTestMode: false
// Enables the test specific features consumed by jitsi-meet-torture
// testMode: false
@ -379,7 +379,7 @@ var config = {
// { urls: 'stun:__DOMAIN__:4446' },
{ 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',

View file

@ -1,55 +1,10 @@
component_ports = { __PORT_COMPONENT__ }
--c2s_require_encryption = false --Why would it be needed?
-- c2s_require_encryption = false --Why would it be needed?
-- s2s_secure_auth = false
plugin_paths = { "__FINAL_PATH__/jitsi-meet-prosody/" }
modules_enabled = {
-- Generally required
"roster"; -- Allow users to have a roster. Recommended.
"saslauth"; -- Authentication for clients. Recommended if you want to log in.
"tls"; -- Add support for secure TLS on c2s/s2s connections
"disco"; -- Service discovery
-- Not essential, but recommended
"private"; -- Private XML storage (for room bookmarks, etc.)
"vcard"; -- Allow users to set vCards
"pep"; -- Allows setting of mood, tune, etc.
"posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
"bidi"; -- Enables Bidirectional Server-to-Server Streams.
-- Nice to have
"version"; -- Replies to server version requests
"uptime"; -- Report how long server has been running
"time"; -- Let others know the time here on this server
"ping"; -- Replies to XMPP pings with pongs
"register"; -- Allow users to register on this server using a client and change passwords
"stream_management"; -- Allows clients and servers to use Stream Management
"stanza_optimizations"; -- Allows clients to use Client State Indication and SIFT
"message_carbons"; -- Allows clients to enable carbon copies of messages
"mam"; -- Enable server-side message archives using Message Archive Management
"push"; -- Enable Push Notifications via PubSub using XEP-0357
"lastactivity"; -- Enables clients to know the last presence status of an user
"adhoc_cm"; -- Allow to set client certificates to login through SASL External via adhoc
"admin_adhoc"; -- administration adhoc commands
"bookmarks"; -- XEP-0048 Bookmarks synchronization between PEP and Private Storage
"sec_labels"; -- Allows to use a simplified version XEP-0258 Security Labels and related ACDFs.
"privacy"; -- Add privacy lists and simple blocking command support
-- Other specific functionality
--"admin_telnet"; -- administration console, telnet to port 5582
--"admin_web"; -- administration web interface
"bosh"; -- Enable support for BOSH clients, aka "XMPP over Bidirectional Streams over Synchronous HTTP"
--"compression"; -- Allow clients to enable Stream Compression
--"spim_block"; -- Require authorization via OOB form for messages from non-contacts and block unsollicited messages
--"gate_guard"; -- Enable config-based blacklisting and hit-based auto-banning features
--"incidents_handling"; -- Enable Incidents Handling support (can be administered via adhoc commands)
--"server_presence"; -- Enables Server Buddies extension support
--"service_directory"; -- Enables Service Directories extension support
--"public_service"; -- Enables Server vCard support for public services in directories and advertises in features
--"register_api"; -- Provides secure API for both Out-Of-Band and In-Band registration for E-Mail verification
"websocket"; -- Enable support for WebSocket clients, aka "XMPP over WebSockets"
-- For Jitsi Meet
"http_altconnect";
}
@ -85,7 +40,7 @@ VirtualHost "__DOMAIN__"
"ping"; -- Enable mod_ping
"speakerstats";
"conference_duration";
"extdisco";
"extdisco";
}
c2s_require_encryption = false
external_services = {

View file

@ -0,0 +1,59 @@
-- mod_http_altconnect
-- XEP-0156: Discovering Alternative XMPP Connection Methods
module:depends"http";
local mm = require "core.modulemanager";
local json = require"util.json";
local st = require"util.stanza";
local array = require"util.array";
local function get_supported()
local uris = array();
if mm.is_loaded(module.host, "bosh") or mm.is_loaded("*", "bosh") then
uris:push({ rel = "urn:xmpp:alt-connections:xbosh", href = module:http_url("bosh", "/http-bind") });
end
if mm.is_loaded(module.host, "websocket") or mm.is_loaded("*", "websocket") then
uris:push({ rel = "urn:xmpp:alt-connections:websocket", href = module:http_url("websocket", "xmpp-websocket"):gsub("^http", "ws") });
end
return uris;
end
local function GET_xml(event)
local request, response = event.request, event.response;
local xrd = st.stanza("XRD", { xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0' });
local uris = get_supported();
for i, method in ipairs(uris) do
xrd:tag("Link", method):up();
end
response.headers.content_type = "application/xrd+xml"
response.headers.access_control_allow_origin = "*";
return '<?xml version="1.0" encoding="UTF-8"?>' .. tostring(xrd);
end
local function GET_json(event)
local request, response = event.request, event.response;
local jrd = { links = get_supported() };
response.headers.content_type = "application/json"
response.headers.access_control_allow_origin = "*";
return json.encode(jrd);
end;
local function GET_either(event)
local accept_type = event.request.headers.accept or "";
if ( accept_type:find("xml") or #accept_type ) < ( accept_type:find("json") or #accept_type+1 ) then
return GET_xml(event);
else
return GET_json(event);
end
end;
module:provides("http", {
default_path = "/.well-known";
route = {
["GET /host-meta"] = GET_either;
-- ["GET /host-meta.xml"] = GET_xml; -- Hmmm
["GET /host-meta.json"] = GET_json;
};
});

View file

@ -60,6 +60,9 @@ ynh_backup --src_path="/usr/share/yunohost/templates/jitsi/auth.$domain.cfg.lua"
# Backup Metronome Hook
ynh_backup --src_path="/usr/share/yunohost/hooks/conf_regen/50-metronome_$app"
# Backup Metronome Module
ynh_backup --src_path="/usr/lib/metronome/modules/mod_http_altconnect.lua"
#=================================================
# BACKUP THE APP CONFIG
#=================================================

View file

@ -181,9 +181,11 @@ touch "/usr/share/yunohost/templates/jitsi/auth.$domain.cfg.lua"
# Add Metronome hook
cp -R ../conf/metronome_regen_conf.hook /usr/share/yunohost/hooks/conf_regen/50-metronome_$app
yunohost tools regen-conf metronome --force
ynh_systemd_action --service_name=metronome --action=restart
# Add Metronome modules
cp ../conf/mod_http_altconnect.lua /usr/lib/metronome/modules/mod_http_altconnect.lua
yunohost tools regen-conf metronome
metronomectl adduser $focus_user@auth.$domain $focus_password || true
metronomectl adduser $videobridge_user@auth.$domain $videobridge_secret || true

View file

@ -115,6 +115,11 @@ fi
#=================================================
ynh_script_progression --message="Reconfiguring Metronome..."
# Remove Metronome modules
ynh_secure_remove --file="/usr/lib/metronome/modules/mod_http_altconnect.lua"
ynh_systemd_action --service_name=metronome --action=restart
metronomectl deluser $focus_user@auth.$domain || true
metronomectl deluser $videobridge_user@auth.$domain || true
@ -129,7 +134,7 @@ fi
# Remove Metronome Hook
ynh_secure_remove --file="/usr/share/yunohost/hooks/conf_regen/50-metronome_$app"
yunohost tools regen-conf metronome --force
yunohost tools regen-conf metronome
# Delete focus user
# yunohost user delete $focus_user --purge

View file

@ -120,9 +120,11 @@ ynh_restore_file --origin_path="/usr/share/yunohost/templates/jitsi/auth.$domain
# Restore Metronome Hook
ynh_restore_file --origin_path="/usr/share/yunohost/hooks/conf_regen/50-metronome_$app"
yunohost tools regen-conf metronome --force
ynh_systemd_action --service_name=metronome --action=restart
# Restore Metronome modules
ynh_restore_file --origin_path="/usr/lib/metronome/modules/mod_http_altconnect.lua"
yunohost tools regen-conf metronome
#=================================================
# RESTORE THE APP CONFIG

View file

@ -64,7 +64,7 @@ if ynh_version_gt "1.0.3387~ynh2" "${current_version}" ; then
# Add Metronome hook
cp -R ../conf/metronome_regen_conf.hook /usr/share/yunohost/hooks/conf_regen/50-metronome_$app
yunohost tools regen-conf metronome --force
yunohost tools regen-conf metronome
fi
if ynh_version_gt "1.0.3969~ynh1" "${current_version}" ; then
@ -75,7 +75,6 @@ if ynh_version_gt "1.0.3969~ynh1" "${current_version}" ; then
# Remove Previously installed Metronome modules
ynh_secure_remove --file="/usr/lib/metronome/modules/mod_carbons.lua"
ynh_secure_remove --file="/usr/lib/metronome/modules/mod_http_altconnect.lua"
ynh_secure_remove --file="/usr/lib/metronome/modules/mod_smacks.lua"
# Remove nodejs