提交 6b0396d6 authored 作者: Anthony Minessale II's avatar Anthony Minessale II

Merge pull request #469 in FS/freeswitch from bugfix/FS-8117 to master

* commit '93b2fb47':
  FS-8117 #resolve [VC ignoring useSTUN settings]
...@@ -29,11 +29,6 @@ ...@@ -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,
...@@ -536,7 +531,7 @@ var iceTimer; ...@@ -536,7 +531,7 @@ var iceTimer;
self.constraints.mandatory.OfferToReceiveVideo = false; self.constraints.mandatory.OfferToReceiveVideo = false;
} }
} }
self.peer = RTCPeerConnection({ self.peer = RTCPeerConnection({
type: self.type, type: self.type,
attachStream: self.localStream, attachStream: self.localStream,
...@@ -604,12 +599,13 @@ var iceTimer; ...@@ -604,12 +599,13 @@ 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,
SessionDescription = w.mozRTCSessionDescription || w.RTCSessionDescription, SessionDescription = w.mozRTCSessionDescription || w.RTCSessionDescription,
IceCandidate = w.mozRTCIceCandidate || w.RTCIceCandidate; IceCandidate = w.mozRTCIceCandidate || w.RTCIceCandidate;
var STUN = { var STUN = {
url: !moz ? 'stun:stun.l.google.com:19302' : 'stun:23.21.150.121' url: !moz ? 'stun:stun.l.google.com:19302' : 'stun:23.21.150.121'
}; };
...@@ -655,104 +651,74 @@ var iceTimer; ...@@ -655,104 +651,74 @@ var iceTimer;
openOffererChannel(); openOffererChannel();
var x = 0; var x = 0;
peer.onicecandidate = function(event) { function ice_handler() {
if (event.candidate) {
options.onICE(event.candidate); done = true;
clearTimeout(iceTimer); gathering = null;
iceTimer = setTimeout(function() {
iceTimerSent = 1; if (options.onICEComplete) {
options.onICEComplete();
if (iceTimerCompleted == 0) { }
if (options.onICEComplete) { if (options.type == "offer") {
options.onICEComplete(); if ((!moz || (!options.sentICESDP && peer.localDescription.sdp.match(/a=candidate/)) && !x && options.onICESDP)) {
} options.onICESDP(peer.localDescription);
//x = 1;
if (options.type == "offer") { /*
/* new mozilla now tries to be like chrome but it takes them 10 seconds to complete the ICE x = 1;
Booooooooo! This trickle thing is a waste of time...... We'll all have to re-code our engines peer.createOffer(function(sessionDescription) {
to handle partial setups to maybe save 100m sessionDescription.sdp = serializeSdp(sessionDescription.sdp);
*/ peer.setLocalDescription(sessionDescription);
if ((!moz || (!options.sentICESDP && peer.localDescription.sdp.match(/a=candidate/)) && !x && options.onICESDP)) { if (options.onICESDP) {
options.onICESDP(peer.localDescription); options.onICESDP(sessionDescription);
//x = 1; }
/* }, onSdpError, constraints);
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 { } else {
if (iceTimerSent == 0) { if (!x && options.onICESDP) {
clearTimeout(iceTimer); options.onICESDP(peer.localDescription);
iceTimerCompleted = 1; //x = 1;
/*
if (options.onICEComplete) { x = 1;
options.onICEComplete(); peer.createAnswer(function(sessionDescription) {
} sessionDescription.sdp = serializeSdp(sessionDescription.sdp);
peer.setLocalDescription(sessionDescription);
if (options.type == "offer") { if (options.onICESDP) {
/* new mozilla now tries to be like chrome but it takes them 10 seconds to complete the ICE options.onICESDP(sessionDescription);
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 }, onSdpError, constraints);
*/ */
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;
if (options.attachStream) peer.addStream(options.attachStream); if (options.attachStream) peer.addStream(options.attachStream);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论