FS-8087 #comment fix issue in camera selection on recovery, refactor to use localStorage, change res detection, reload on network change

This commit is contained in:
Anthony Minessale
2015-08-28 09:42:37 -05:00
parent 5de2f7d7bd
commit c1628690b6
4 changed files with 77 additions and 42 deletions

View File

@@ -97,6 +97,7 @@ var iceTimer;
this.enabled = true;
this.mediaData = {
SDP: null,
profile: {},
@@ -352,10 +353,6 @@ var iceTimer;
self.remoteSDP = params.sdp;
console.debug("inbound sdp: ", params.sdp);
self.options.useCamera = params.useCamera || "any";
self.options.useMic = params.useMic || "any";
self.options.useSpeak = params.useSpeak || "any";
function onSuccess(stream) {
self.localStream = stream;
@@ -1052,6 +1049,9 @@ var iceTimer;
'validRes': $.FSRTC.validRes,
'bestResSupported': $.FSRTC.bestResSupported()
};
localStorage.setItem("res_" + cam, $.toJSON(res));
if (func) return func(res);
return;
}
@@ -1096,6 +1096,14 @@ var iceTimer;
$.FSRTC.getValidRes = function (cam, func) {
var used = [];
var cached = localStorage.getItem("res_" + cam);
if (cached) {
$.FSRTC.validRes = $.parseJSON(cached);
console.log("CACHED RES FOR CAM " + cam, $.FSRTC.validRes);
return func ? func() : null;
}
$.FSRTC.validRes = [];
resI = 0;

View File

@@ -83,7 +83,10 @@
sessid: null
}, options);
if (!verto.options.deviceParams.useCamera) {
if (verto.options.deviceParams.useCamera) {
$.FSRTC.getValidRes(verto.options.deviceParams.useCamera, undefined);
} else {
verto.options.deviceParams.useCamera = "any";
}
@@ -98,10 +101,8 @@
if (verto.options.sessid) {
verto.sessid = verto.options.sessid;
} else {
verto.sessid = $.cookie('verto_session_uuid') || generateGUID();
$.cookie('verto_session_uuid', verto.sessid, {
expires: 1
});
verto.sessid = localStorage.getItem("verto_session_uuid") || generateGUID();
localStorage.setItem("verto_session_uuid", verto.sessid);
}
verto.dialogs = {};
@@ -1853,10 +1854,10 @@
dialog.answered = false;
dialog.attach = params.attach || false;
dialog.screenShare = params.screenShare || false;
dialog.useCamera = params.useCamera;
dialog.useMic = params.useMic;
dialog.useSpeak = params.useSpeak;
dialog.useCamera = dialog.params.useCamera;
dialog.useMic = dialog.params.useMic;
dialog.useSpeak = dialog.params.useSpeak;
if (dialog.params.callID) {
dialog.callID = dialog.params.callID;
} else {
@@ -1909,15 +1910,26 @@
}
RTCcallbacks.onICESDP = function(rtc) {
console.log("RECV " + rtc.type + " SDP", rtc.mediaData.SDP);
if (dialog.state == $.verto.enum.state.requesting || dialog.state == $.verto.enum.state.answering || dialog.state == $.verto.enum.state.active) {
location.reload();
return;
}
if (rtc.type == "offer") {
console.log("offer", rtc.mediaData.SDP);
dialog.setState($.verto.enum.state.requesting);
dialog.sendMethod("verto.invite", {
sdp: rtc.mediaData.SDP
});
if (dialog.state == $.verto.enum.state.active) {
dialog.setState($.verto.enum.state.requesting);
dialog.sendMethod("verto.attach", {
sdp: rtc.mediaData.SDP
});
} else {
dialog.setState($.verto.enum.state.requesting);
dialog.sendMethod("verto.invite", {
sdp: rtc.mediaData.SDP
});
}
} else { //answer
dialog.setState($.verto.enum.state.answering);
@@ -2022,7 +2034,7 @@
return false;
}
console.info("Dialog " + dialog.callID + ": state change from " + dialog.state.name + " to " + state.name);
console.error("Dialog " + dialog.callID + ": state change from " + dialog.state.name + " to " + state.name);
dialog.lastState = dialog.state;
dialog.state = state;
@@ -2308,9 +2320,18 @@
}
dialog.params.callee_id_name = params.callee_id_name;
dialog.params.callee_id_number = params.callee_id_number;
dialog.useCamera = params.useCamera;
dialog.useMic = params.useMic;
dialog.useSpeak = params.useSpeak;
if (params.useCamera) {
dialog.useCamera = params.useCamera;
}
if (params.useMic) {
dialog.useMic = params.useMic;
}
if (params.useSpeak) {
dialog.useSpeak = params.useSpeak;
}
}
dialog.rtc.createAnswer(params);
@@ -2429,7 +2450,8 @@
},
requesting: {
trying: 1,
hangup: 1
hangup: 1,
active: 1
},
recovering: {
answering: 1,
@@ -2574,9 +2596,7 @@
}
$.verto.init = function(obj, runtime) {
checkDevices(function() {
$.FSRTC.getValidRes(obj.camera, runtime);
});
checkDevices(runtime);
}
$.verto.genUUID = function () {