I want to make voice calling with nodejs and webrtc.When I call to other user then getting error'ICE failed, see about:webrtc for more details'. The HTML just contains a button that calls offer().
I can confirm the offer and SessionDescriptions are transferring successfully from one client to the other. Please help me
Client Side Javasrcipt:
navigator.getUserMedia({video:false, audio:true}, function(stream) {
document.getElementById("localvideo").mozSrcObject = stream;
document.getElementById("localvideo").play();
document.getElementById("localvideo").muted = true;
// var pc = new mozRTCPeerConnection();
var pc = new PeerConnection(iceServers, options);
pc.addStream(stream);
pc.onaddstream = function(obj) {
log("Got onaddstream of type " + obj.type);
document.getElementById("remotevideo").mozSrcObject = obj.stream;
document.getElementById("remotevideo").play();
document.getElementById("dialing").style.display = "none";
document.getElementById("hangup").style.display = "block";
};
pc.createOffer(function(offer) {
console.log("Created offer" + JSON.stringify(offer));
pc.setLocalDescription(offer, function() {
// Send offer to remote end.
pc.iceCandidate = new RTCIceCandidate();
console.log(pc.iceCandidate);
peerc = pc;
jQuery.post(
"offer", {
to: user,
from: document.getElementById("user").innerHTML,
offer: JSON.stringify(offer)
},
function() { console.log("Offer sent!"); }
).error(error);
}, error);
}, error);
});
And my Server Side script-
app.post("/offer", function(req, res) {
var channel = users[req.body.to];
channel.write("event: offer\n");
channel.write("data: " + JSON.stringify(req.body));
channel.write("\n\n");
res.send(200);
});