@@ -884,7 +894,7 @@
Welcome to VDO Ninja! We've rebranded! Nothing else is changing and we're staying 100% free.
- ๐๐ Site last updated on Nov.18th (v22 release notes). You can also still access the previous version, which is hosted here. Development updates are here.
+ ๐ This is Version 23; it's still in development. ๐งช Please report any issues you have with it. Development updates are here.
@@ -2256,7 +2288,7 @@
var session = WebRTC.Media; // session is a required global variable if configuring manually. Run before loading main.js but after webrtc.js.
- session.version = "22.11"; // nov 18th
+ session.version = "23.0b";
session.streamID = session.generateStreamID(); // randomly generates a streamID for this session. You can set your own programmatically if needed
session.defaultPassword = "someEncryptionKey123"; // Change this password if self-deploying for added security/privacy
@@ -2264,7 +2296,7 @@
session.stunServers = [{ urls: ["stun:stun.l.google.com:19302", "stun:stun4.l.google.com:19302"]}]; // google stun servers. default
- /////////////// ------ Custom TURN SETUP SECTION STARTS Here --------
+ /////////////// ------ Custom basic TURN SETUP SECTION STARTS Here --------
// session.configuration = { // uncomment to disable the default usage of the vdo.ninja turn servers.
// iceServers: session.stunServers,
// sdpSemantics: 'unified-plan'
@@ -2282,11 +2314,51 @@
// session.configuration.iceServers.push(turn);
/////////////// ------------ END OF TURN SETUP SECTION -------
- // session.configuration.iceTransportPolicy = "relay"; // uncomment to enable "&privacy" and force the TURN server
+ /////////////// -------- Alternative custom TURN SETUP SECTION here ---------
+ // Use this section if you plan to use the turn-credentials.php sample and its use-auth-secret and static-auth-secret method, rather than a plain password
+ //
+ // try {
+ // session.ws = false; // prevents connection
+ // var phpcredentialsRequest = new XMLHttpRequest();
+ // phpcredentialsRequest.onload = function() {
+ // if (this.status === 200) {
+ // try {
+ // var res = JSON.parse(this.responseText);
+ // } catch(e){
+ // console.error(e); // not proper JSON
+ // return;
+ // }
+ // session.configuration = {};
+ // session.configuration.sdpSemantics = "unified-plan";
+ // session.configuration.iceServers = [];
+ // // session.configuration.iceServers = session.stunServers; // Uncomment to use the hard-coded Google STUN servers, if we don't provide our own STUN
- // session.wss = "wss://api.vdo.ninja:443"; // US-East (Default)
+ // let phpIceServers = {"username": res[0], "credential": res[1], urls:[]};
+ // for (let i = 2; i < res.length; i++){ // Supports one or multiple TURN/STUN servers, but assumes same credientials for each.
+ // phpIceServers['urls'].push(res[i]);
+ // };
+ // session.configuration.iceServers.push(phpIceServers);
- /// If wanting to fully-self-host, uncomment the following and deploy your own websocket server; good for air-gapped deployments
+ // if (session.ws===false){
+ // session.ws=null; // allows connection (clears block state)
+ // session.connect(); // connect if not already connected.
+ // }
+ // }
+ // // system does not connect if php script does not respond.
+ // };
+ // phpcredentialsRequest.open('GET', './turn-credentials.php', true); // `false` makes the request synchronous
+ // phpcredentialsRequest.send();
+ // } catch (e) {
+ // console.error(e);
+ // errorlog("php-credentials script Failed");
+ // }
+ //////////////////// -------------- END OF ALTERNATIVE TURN SETUP SECTION -------
+
+ // session.configuration.iceTransportPolicy = "relay"; // uncomment to enable "&privacy" and force the TURN server's use
+
+ // session.wss = "wss://wss.vdo.ninja:443"; // US-East (Default)
+
+ // If wanting to fully-self-host, uncomment the following and deploy your own websocket server; good for air-gapped deployments
// session.wss = "wss://wss.yourdomainhere.com:443"; // https://github.com/steveseguin/websocket_server
// session.customWSS = true;
//////
@@ -2328,11 +2400,11 @@
// session.defaultBackgroundImages = ["./media/bg_sample1.webp", "./media/bg_sample2.webp"]; // for &effects=5 (virtual backgrounds)
// session.hidehome = true; // If used, 'hide home' will make the landing page inaccessible, along with hiding a few go-home elements.
-
+
-
+