Merge pull request #469 in FS/freeswitch from bugfix/FS-8117 to master
* commit '93b2fb47add5b0411033100b7aca8b5045c97062': FS-8117 #resolve [VC ignoring useSTUN settings]
This commit is contained in:
commit
6b0396d67f
|
@ -29,11 +29,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
var iceTimerSent = 0;
|
|
||||||
var iceTimerCompleted = 0;
|
|
||||||
var iceTimer;
|
|
||||||
|
|
||||||
(function($) {
|
(function($) {
|
||||||
|
|
||||||
// Find the line in sdpLines that starts with |prefix|, and, if specified,
|
// Find the line in sdpLines that starts with |prefix|, and, if specified,
|
||||||
|
@ -604,6 +599,7 @@ var iceTimer;
|
||||||
window.moz = !!navigator.mozGetUserMedia;
|
window.moz = !!navigator.mozGetUserMedia;
|
||||||
|
|
||||||
function RTCPeerConnection(options) {
|
function RTCPeerConnection(options) {
|
||||||
|
var gathering = false, done = false;
|
||||||
|
|
||||||
var w = window,
|
var w = window,
|
||||||
PeerConnection = w.mozRTCPeerConnection || w.webkitRTCPeerConnection,
|
PeerConnection = w.mozRTCPeerConnection || w.webkitRTCPeerConnection,
|
||||||
|
@ -655,102 +651,72 @@ var iceTimer;
|
||||||
openOffererChannel();
|
openOffererChannel();
|
||||||
var x = 0;
|
var x = 0;
|
||||||
|
|
||||||
peer.onicecandidate = function(event) {
|
function ice_handler() {
|
||||||
if (event.candidate) {
|
|
||||||
options.onICE(event.candidate);
|
|
||||||
clearTimeout(iceTimer);
|
|
||||||
iceTimer = setTimeout(function() {
|
|
||||||
iceTimerSent = 1;
|
|
||||||
|
|
||||||
if (iceTimerCompleted == 0) {
|
done = true;
|
||||||
|
gathering = null;
|
||||||
|
|
||||||
if (options.onICEComplete) {
|
if (options.onICEComplete) {
|
||||||
options.onICEComplete();
|
options.onICEComplete();
|
||||||
}
|
|
||||||
|
|
||||||
if (options.type == "offer") {
|
|
||||||
/* new mozilla now tries to be like chrome but it takes them 10 seconds to complete the ICE
|
|
||||||
Booooooooo! This trickle thing is a waste of time...... We'll all have to re-code our engines
|
|
||||||
to handle partial setups to maybe save 100m
|
|
||||||
*/
|
|
||||||
if ((!moz || (!options.sentICESDP && peer.localDescription.sdp.match(/a=candidate/)) && !x && options.onICESDP)) {
|
|
||||||
options.onICESDP(peer.localDescription);
|
|
||||||
//x = 1;
|
|
||||||
/*
|
|
||||||
x = 1;
|
|
||||||
peer.createOffer(function(sessionDescription) {
|
|
||||||
sessionDescription.sdp = serializeSdp(sessionDescription.sdp);
|
|
||||||
peer.setLocalDescription(sessionDescription);
|
|
||||||
if (options.onICESDP) {
|
|
||||||
options.onICESDP(sessionDescription);
|
|
||||||
}
|
|
||||||
}, onSdpError, constraints);
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (!x && options.onICESDP) {
|
|
||||||
options.onICESDP(peer.localDescription);
|
|
||||||
//x = 1;
|
|
||||||
/*
|
|
||||||
x = 1;
|
|
||||||
peer.createAnswer(function(sessionDescription) {
|
|
||||||
sessionDescription.sdp = serializeSdp(sessionDescription.sdp);
|
|
||||||
peer.setLocalDescription(sessionDescription);
|
|
||||||
if (options.onICESDP) {
|
|
||||||
options.onICESDP(sessionDescription);
|
|
||||||
}
|
|
||||||
}, onSdpError, constraints);
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, 1000);
|
|
||||||
} else {
|
|
||||||
if (iceTimerSent == 0) {
|
|
||||||
clearTimeout(iceTimer);
|
|
||||||
iceTimerCompleted = 1;
|
|
||||||
|
|
||||||
if (options.onICEComplete) {
|
|
||||||
options.onICEComplete();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options.type == "offer") {
|
|
||||||
/* new mozilla now tries to be like chrome but it takes them 10 seconds to complete the ICE
|
|
||||||
Booooooooo! This trickle thing is a waste of time...... We'll all have to re-code our engines
|
|
||||||
to handle partial setups to maybe save 100m
|
|
||||||
*/
|
|
||||||
if ((!moz || (!options.sentICESDP && peer.localDescription.sdp.match(/a=candidate/)) && !x && options.onICESDP)) {
|
|
||||||
options.onICESDP(peer.localDescription);
|
|
||||||
//x = 1;
|
|
||||||
/*
|
|
||||||
x = 1;
|
|
||||||
peer.createOffer(function(sessionDescription) {
|
|
||||||
sessionDescription.sdp = serializeSdp(sessionDescription.sdp);
|
|
||||||
peer.setLocalDescription(sessionDescription);
|
|
||||||
if (options.onICESDP) {
|
|
||||||
options.onICESDP(sessionDescription);
|
|
||||||
}
|
|
||||||
}, onSdpError, constraints);
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (!x && options.onICESDP) {
|
|
||||||
options.onICESDP(peer.localDescription);
|
|
||||||
//x = 1;
|
|
||||||
/*
|
|
||||||
x = 1;
|
|
||||||
peer.createAnswer(function(sessionDescription) {
|
|
||||||
sessionDescription.sdp = serializeSdp(sessionDescription.sdp);
|
|
||||||
peer.setLocalDescription(sessionDescription);
|
|
||||||
if (options.onICESDP) {
|
|
||||||
options.onICESDP(sessionDescription);
|
|
||||||
}
|
|
||||||
}, onSdpError, constraints);
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (options.type == "offer") {
|
||||||
|
if ((!moz || (!options.sentICESDP && peer.localDescription.sdp.match(/a=candidate/)) && !x && options.onICESDP)) {
|
||||||
|
options.onICESDP(peer.localDescription);
|
||||||
|
//x = 1;
|
||||||
|
/*
|
||||||
|
x = 1;
|
||||||
|
peer.createOffer(function(sessionDescription) {
|
||||||
|
sessionDescription.sdp = serializeSdp(sessionDescription.sdp);
|
||||||
|
peer.setLocalDescription(sessionDescription);
|
||||||
|
if (options.onICESDP) {
|
||||||
|
options.onICESDP(sessionDescription);
|
||||||
|
}
|
||||||
|
}, onSdpError, constraints);
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!x && options.onICESDP) {
|
||||||
|
options.onICESDP(peer.localDescription);
|
||||||
|
//x = 1;
|
||||||
|
/*
|
||||||
|
x = 1;
|
||||||
|
peer.createAnswer(function(sessionDescription) {
|
||||||
|
sessionDescription.sdp = serializeSdp(sessionDescription.sdp);
|
||||||
|
peer.setLocalDescription(sessionDescription);
|
||||||
|
if (options.onICESDP) {
|
||||||
|
options.onICESDP(sessionDescription);
|
||||||
|
}
|
||||||
|
}, onSdpError, constraints);
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
peer.onicecandidate = function(event) {
|
||||||
|
|
||||||
|
if (done) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!gathering) {
|
||||||
|
gathering = setTimeout(ice_handler, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event) {
|
||||||
|
if (event.candidate) {
|
||||||
|
options.onICE(event.candidate);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
done = true;
|
||||||
|
|
||||||
|
if (gathering) {
|
||||||
|
clearTimeout(gathering);
|
||||||
|
gathering = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
ice_handler();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// attachStream = MediaStream;
|
// attachStream = MediaStream;
|
||||||
|
|
Loading…
Reference in New Issue