diff --git a/html5/verto/js/src/jquery.FSRTC.js b/html5/verto/js/src/jquery.FSRTC.js
index f07188bedb..05501193b7 100644
--- a/html5/verto/js/src/jquery.FSRTC.js
+++ b/html5/verto/js/src/jquery.FSRTC.js
@@ -430,7 +430,8 @@
offerSDP: {
type: "offer",
sdp: self.remoteSDP
- }
+ },
+ turnServer: self.options.turnServer
});
onStreamSuccess(self, stream);
@@ -625,6 +626,7 @@
},
constraints: self.constraints,
iceServers: self.options.iceServers,
+ turnServer: self.options.turnServer
});
onStreamSuccess(self, stream);
@@ -674,13 +676,15 @@
function FSRTCPeerConnection(options) {
var gathering = false, done = false;
var config = {};
- var default_ice = {
- urls: ['stun:stun.l.google.com:19302']
- };
+ var default_ice = [{ urls: ['stun:stun.l.google.com:19302'] }];
+
+ if (self.options.turnServer) {
+ default_ice.push(self.options.turnServer)
+ }
if (options.iceServers) {
if (typeof(options.iceServers) === "boolean") {
- config.iceServers = [default_ice];
+ config.iceServers = default_ice;
} else {
config.iceServers = options.iceServers;
}
diff --git a/html5/verto/js/src/jquery.jsonrpcclient.js b/html5/verto/js/src/jquery.jsonrpcclient.js
index 702998cc58..7f5a68753a 100644
--- a/html5/verto/js/src/jquery.jsonrpcclient.js
+++ b/html5/verto/js/src/jquery.jsonrpcclient.js
@@ -322,6 +322,10 @@
self.options.onWSClose(self);
}
+ if (self.ws_cnt > 10) {
+ self.options.socketUrl = self.options.socketFallbackUrl;
+ }
+
console.error("Websocket Lost " + self.ws_cnt + " sleep: " + self.ws_sleep + "msec");
self.to = setTimeout(function() {
diff --git a/html5/verto/js/src/jquery.verto.js b/html5/verto/js/src/jquery.verto.js
index 20befd92d6..50fda9149a 100644
--- a/html5/verto/js/src/jquery.verto.js
+++ b/html5/verto/js/src/jquery.verto.js
@@ -110,6 +110,8 @@
login: verto.options.login,
passwd: verto.options.passwd,
socketUrl: verto.options.socketUrl,
+ socketFallbackUrl: verto.options.socketFallbackUrl,
+ turnServer: verto.options.turnServer,
loginParams: verto.options.loginParams,
userVariables: verto.options.userVariables,
sessid: verto.sessid,
@@ -2076,10 +2078,11 @@
videoParams: dialog.params.videoParams,
audioParams: verto.options.audioParams,
iceServers: verto.options.iceServers,
- screenShare: dialog.screenShare,
- useCamera: dialog.useCamera,
- useMic: dialog.useMic,
- useSpeak: dialog.useSpeak
+ screenShare: dialog.screenShare,
+ useCamera: dialog.useCamera,
+ useMic: dialog.useMic,
+ useSpeak: dialog.useSpeak,
+ turnServer: verto.options.turnServer
});
dialog.rtc.verto = dialog.verto;
diff --git a/html5/verto/verto_communicator/src/config.json.sample b/html5/verto/verto_communicator/src/config.json.sample
index a905c6161d..ae044c8e1c 100644
--- a/html5/verto/verto_communicator/src/config.json.sample
+++ b/html5/verto/verto_communicator/src/config.json.sample
@@ -9,5 +9,11 @@
"autologin": "true",
"autocall": "3500",
"googlelogin": "true",
- "wsURL": "wss://gamma.tollfreegateway.com/wss2"
+ "wsURL": "wss://gamma.tollfreegateway.com/wss2",
+ "socketFallbackUrl": "wss://gamma.tollfreegateway.com/wss2",
+ "turnServer": {
+ "urls": "turn:someturnserver.com:443?transport=tcp",
+ "credential": "1234",
+ "username": "username"
+ }
}
diff --git a/html5/verto/verto_communicator/src/vertoService/services/configService.js b/html5/verto/verto_communicator/src/vertoService/services/configService.js
index 9fd789e81f..05b0b2cbe8 100644
--- a/html5/verto/verto_communicator/src/vertoService/services/configService.js
+++ b/html5/verto/verto_communicator/src/vertoService/services/configService.js
@@ -41,6 +41,14 @@ vertoService.service('config', ['$rootScope', '$http', '$location', 'storage', '
verto.data.googleclientid = data.googleclientid;
}
+ if (data.wsFallbackURL) {
+ verto.data.wsFallbackURL = data.wsFallbackURL;
+ }
+
+ if (data.turnServer) {
+ verto.data.turnServer = data.turnServer;
+ }
+
angular.extend(verto.data, data);
/**
diff --git a/html5/verto/verto_communicator/src/vertoService/services/vertoService.js b/html5/verto/verto_communicator/src/vertoService/services/vertoService.js
index 808aba539c..b885f47154 100644
--- a/html5/verto/verto_communicator/src/vertoService/services/vertoService.js
+++ b/html5/verto/verto_communicator/src/vertoService/services/vertoService.js
@@ -175,6 +175,8 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
password: $cookieStore.get('verto_demo_passwd') || "1234",
hostname: window.location.hostname,
wsURL: ("wss://" + window.location.hostname + ":8082"),
+ socketFallbackUrl: null,
+ turnServer: null,
resCheckEnded: false
};
@@ -733,6 +735,8 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora
login: data.login + '@' + data.hostname,
passwd: data.password,
socketUrl: data.wsURL,
+ socketFallbackUrl: data.socketFallbackUrl,
+ turnServer: data.turnServer,
tag: "webcam",
ringFile: "sounds/bell_ring2.wav",
audioParams: {