mirror of
https://github.com/Ylianst/MeshCentral.git
synced 2024-11-25 01:45:41 +03:00
fix webrtcconfig and allow stun servers #6309
Signed-off-by: si458 <simonsmith5521@gmail.com>
This commit is contained in:
parent
7b48e3b5f5
commit
ac0d805378
@ -1520,7 +1520,17 @@ function CreateMeshCentralServer(config, args) {
|
|||||||
if (obj.args.redirport == null) obj.args.redirport = 80;
|
if (obj.args.redirport == null) obj.args.redirport = 80;
|
||||||
if (obj.args.minifycore == null) obj.args.minifycore = false;
|
if (obj.args.minifycore == null) obj.args.minifycore = false;
|
||||||
if (typeof obj.args.agentidletimeout != 'number') { obj.args.agentidletimeout = 150000; } else { obj.args.agentidletimeout *= 1000 } // Default agent idle timeout is 2m, 30sec.
|
if (typeof obj.args.agentidletimeout != 'number') { obj.args.agentidletimeout = 150000; } else { obj.args.agentidletimeout *= 1000 } // Default agent idle timeout is 2m, 30sec.
|
||||||
if ((obj.args.lanonly != true) && (obj.args.webrtconfig == null)) { obj.args.webrtconfig = { iceservers: [{ urls: 'stun:stun.l.google.com:19302' }, { urls: 'stun:stun.services.mozilla.com' }] }; } // Setup default WebRTC STUN servers
|
if ((obj.args.lanonly != true) && (typeof obj.args.webrtconfig == 'object')) { // fix incase you are using an old mis-spelt webrtconfig
|
||||||
|
obj.args.webrtcconfig = obj.args.webrtconfig;
|
||||||
|
delete obj.args.webrtconfig;
|
||||||
|
}
|
||||||
|
if ((obj.args.lanonly != true) && (obj.args.webrtcconfig == null)) { obj.args.webrtcconfig = { iceServers: [{ urls: 'stun:stun.l.google.com:19302' }, { urls: 'stun:stun.cloudflare.com:3478' }] }; } // Setup default WebRTC STUN servers
|
||||||
|
else if ((obj.args.lanonly != true) && (typeof obj.args.webrtcconfig == 'object')) {
|
||||||
|
if (obj.args.webrtcconfig.iceservers) { // webrtc is case-sensitive, so must rename iceservers to iceServers!
|
||||||
|
obj.args.webrtcconfig.iceServers = obj.args.webrtcconfig.iceservers;
|
||||||
|
delete obj.args.webrtcconfig.iceservers;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (typeof obj.args.ignoreagenthashcheck == 'string') { if (obj.args.ignoreagenthashcheck == '') { delete obj.args.ignoreagenthashcheck; } else { obj.args.ignoreagenthashcheck = obj.args.ignoreagenthashcheck.split(','); } }
|
if (typeof obj.args.ignoreagenthashcheck == 'string') { if (obj.args.ignoreagenthashcheck == '') { delete obj.args.ignoreagenthashcheck; } else { obj.args.ignoreagenthashcheck = obj.args.ignoreagenthashcheck.split(','); } }
|
||||||
|
|
||||||
// Setup a site administrator
|
// Setup a site administrator
|
||||||
|
@ -23,6 +23,7 @@ var CreateAgentRedirect = function (meshserver, module, serverPublicNamePort, au
|
|||||||
obj.ctrlMsgAllowed = true;
|
obj.ctrlMsgAllowed = true;
|
||||||
obj.attemptWebRTC = false;
|
obj.attemptWebRTC = false;
|
||||||
obj.webRtcActive = false;
|
obj.webRtcActive = false;
|
||||||
|
obj.webrtcconfig = null;
|
||||||
obj.webSwitchOk = false;
|
obj.webSwitchOk = false;
|
||||||
obj.webchannel = null;
|
obj.webchannel = null;
|
||||||
obj.webrtc = null;
|
obj.webrtc = null;
|
||||||
@ -158,7 +159,7 @@ var CreateAgentRedirect = function (meshserver, module, serverPublicNamePort, au
|
|||||||
|
|
||||||
if (obj.attemptWebRTC == true) {
|
if (obj.attemptWebRTC == true) {
|
||||||
// Try to get WebRTC setup
|
// Try to get WebRTC setup
|
||||||
var configuration = null; //{ "iceServers": [ { 'urls': 'stun:stun.services.mozilla.com' }, { 'urls': 'stun:stun.l.google.com:19302' } ] };
|
var configuration = obj.webrtcconfig; //{ "iceServers": [ { 'urls': 'stun:stun.cloudflare.com:3478' }, { 'urls': 'stun:stun.l.google.com:19302' } ] };
|
||||||
if (typeof RTCPeerConnection !== 'undefined') { obj.webrtc = new RTCPeerConnection(configuration); }
|
if (typeof RTCPeerConnection !== 'undefined') { obj.webrtc = new RTCPeerConnection(configuration); }
|
||||||
else if (typeof webkitRTCPeerConnection !== 'undefined') { obj.webrtc = new webkitRTCPeerConnection(configuration); }
|
else if (typeof webkitRTCPeerConnection !== 'undefined') { obj.webrtc = new webkitRTCPeerConnection(configuration); }
|
||||||
if ((obj.webrtc != null) && (obj.webrtc.createDataChannel)) {
|
if ((obj.webrtc != null) && (obj.webrtc.createDataChannel)) {
|
||||||
|
@ -1560,6 +1560,8 @@
|
|||||||
var debugmode = 0;
|
var debugmode = 0;
|
||||||
var windowsBrowser = detectWindowsBrowser();
|
var windowsBrowser = detectWindowsBrowser();
|
||||||
var attemptWebRTC = ((features & 128) != 0);
|
var attemptWebRTC = ((features & 128) != 0);
|
||||||
|
var webrtcconfiguration = '{{{webrtcconfig}}}';
|
||||||
|
if (webrtcconfiguration == '') { webrtcconfiguration = null; } else { try { webrtcconfiguration = JSON.parse(decodeURIComponent(webrtcconfiguration)); } catch (ex) { console.log('Invalid WebRTC config: "' + webrtcconfiguration + '".'); webrtcconfiguration = null; } }
|
||||||
var passRequirements = '{{{passRequirements}}}';
|
var passRequirements = '{{{passRequirements}}}';
|
||||||
if (passRequirements != '') { passRequirements = JSON.parse(decodeURIComponent(passRequirements)); }
|
if (passRequirements != '') { passRequirements = JSON.parse(decodeURIComponent(passRequirements)); }
|
||||||
var customui = '{{{customui}}}';
|
var customui = '{{{customui}}}';
|
||||||
@ -9292,6 +9294,7 @@
|
|||||||
desktop.debugmode = debugmode;
|
desktop.debugmode = debugmode;
|
||||||
desktop.m.debugmode = debugmode;
|
desktop.m.debugmode = debugmode;
|
||||||
desktop.attemptWebRTC = attemptWebRTC;
|
desktop.attemptWebRTC = attemptWebRTC;
|
||||||
|
desktop.webrtcconfig = webrtcconfiguration;
|
||||||
desktop.options = {};
|
desktop.options = {};
|
||||||
if (tsid != null) { desktop.options.tsid = tsid; }
|
if (tsid != null) { desktop.options.tsid = tsid; }
|
||||||
if (consent != null) { desktop.options.consent = consent; }
|
if (consent != null) { desktop.options.consent = consent; }
|
||||||
|
@ -83,7 +83,7 @@
|
|||||||
var meshMessengerImage = '{{{meshMessengerImage}}}';
|
var meshMessengerImage = '{{{meshMessengerImage}}}';
|
||||||
var remoteUserName = '{{{username}}}';
|
var remoteUserName = '{{{username}}}';
|
||||||
var remoteUserId = '{{{userid}}}';
|
var remoteUserId = '{{{userid}}}';
|
||||||
var webrtcconfiguration = '{{{webrtconfig}}}';
|
var webrtcconfiguration = '{{{webrtcconfig}}}';
|
||||||
if (webrtcconfiguration == '') { webrtcconfiguration = null; } else { try { webrtcconfiguration = JSON.parse(decodeURIComponent(webrtcconfiguration)); } catch (ex) { console.log('Invalid WebRTC config: "' + webrtcconfiguration + '".'); webrtcconfiguration = null; } }
|
if (webrtcconfiguration == '') { webrtcconfiguration = null; } else { try { webrtcconfiguration = JSON.parse(decodeURIComponent(webrtcconfiguration)); } catch (ex) { console.log('Invalid WebRTC config: "' + webrtcconfiguration + '".'); webrtcconfiguration = null; } }
|
||||||
var windowFocus = true;
|
var windowFocus = true;
|
||||||
var chatTextSession = new Date().toString() + '\r\n';
|
var chatTextSession = new Date().toString() + '\r\n';
|
||||||
|
14
webserver.js
14
webserver.js
@ -3127,6 +3127,11 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
|||||||
if ((serverFeatures & 2) != 0) { serverFeatures -= 2; } // Disallow simple server restore
|
if ((serverFeatures & 2) != 0) { serverFeatures -= 2; } // Disallow simple server restore
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get WebRTC configuration
|
||||||
|
var webRtcConfig = null;
|
||||||
|
if (obj.parent.config.settings && obj.parent.config.settings.webrtcconfig && (typeof obj.parent.config.settings.webrtcconfig == 'object')) { webRtcConfig = encodeURIComponent(JSON.stringify(obj.parent.config.settings.webrtcconfig)).replace(/'/g, '%27'); }
|
||||||
|
else if (args.webrtcconfig && (typeof args.webrtcconfig == 'object')) { webRtcConfig = encodeURIComponent(JSON.stringify(args.webrtcconfig)).replace(/'/g, '%27'); }
|
||||||
|
|
||||||
// Refresh the session
|
// Refresh the session
|
||||||
render(dbGetFunc.req, dbGetFunc.res, getRenderPage('default', dbGetFunc.req, domain), getRenderArgs({
|
render(dbGetFunc.req, dbGetFunc.res, getRenderPage('default', dbGetFunc.req, domain), getRenderArgs({
|
||||||
authCookie: authCookie,
|
authCookie: authCookie,
|
||||||
@ -3155,7 +3160,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
|||||||
webRelayDns: ((args.relaydns != null) ? args.relaydns[0] : ''),
|
webRelayDns: ((args.relaydns != null) ? args.relaydns[0] : ''),
|
||||||
hidePowerTimeline: (domain.hidepowertimeline ? 'true' : 'false'),
|
hidePowerTimeline: (domain.hidepowertimeline ? 'true' : 'false'),
|
||||||
showNotesPanel: (domain.shownotespanel ? 'true' : 'false'),
|
showNotesPanel: (domain.shownotespanel ? 'true' : 'false'),
|
||||||
userSessionsSort: (domain.usersessionssort ? domain.usersessionssort : 'SessionId')
|
userSessionsSort: (domain.usersessionssort ? domain.usersessionssort : 'SessionId'),
|
||||||
|
webrtcconfig: webRtcConfig
|
||||||
}, dbGetFunc.req, domain), user);
|
}, dbGetFunc.req, domain), user);
|
||||||
}
|
}
|
||||||
xdbGetFunc.req = req;
|
xdbGetFunc.req = req;
|
||||||
@ -3632,11 +3638,11 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
|||||||
|
|
||||||
// Get WebRTC configuration
|
// Get WebRTC configuration
|
||||||
var webRtcConfig = null;
|
var webRtcConfig = null;
|
||||||
if (obj.parent.config.settings && obj.parent.config.settings.webrtconfig && (typeof obj.parent.config.settings.webrtconfig == 'object')) { webRtcConfig = encodeURIComponent(JSON.stringify(obj.parent.config.settings.webrtconfig)).replace(/'/g, '%27'); }
|
if (obj.parent.config.settings && obj.parent.config.settings.webrtcconfig && (typeof obj.parent.config.settings.webrtcconfig == 'object')) { webRtcConfig = encodeURIComponent(JSON.stringify(obj.parent.config.settings.webrtcconfig)).replace(/'/g, '%27'); }
|
||||||
else if (args.webrtconfig && (typeof args.webrtconfig == 'object')) { webRtcConfig = encodeURIComponent(JSON.stringify(args.webrtconfig)).replace(/'/g, '%27'); }
|
else if (args.webrtcconfig && (typeof args.webrtcconfig == 'object')) { webRtcConfig = encodeURIComponent(JSON.stringify(args.webrtcconfig)).replace(/'/g, '%27'); }
|
||||||
|
|
||||||
// Setup other options
|
// Setup other options
|
||||||
var options = { webrtconfig: webRtcConfig };
|
var options = { webrtcconfig: webRtcConfig };
|
||||||
if (typeof domain.meshmessengertitle == 'string') { options.meshMessengerTitle = domain.meshmessengertitle; } else { options.meshMessengerTitle = '!'; }
|
if (typeof domain.meshmessengertitle == 'string') { options.meshMessengerTitle = domain.meshmessengertitle; } else { options.meshMessengerTitle = '!'; }
|
||||||
|
|
||||||
// Get the userid and name
|
// Get the userid and name
|
||||||
|
Loading…
Reference in New Issue
Block a user