Temasys / AdapterJS

AdapterJS Javascript Polyfill and Tools for WebRTC - Skylink WebRTC
http://skylink.io/web
Other
428 stars 100 forks source link

Internet Explorer hangs while using Temasys plugin #277

Open vinayakkedge opened 7 years ago

vinayakkedge commented 7 years ago

I am using adapter.js of Temasys alongwith signalling server of node js.

Everything works just fine with Chrome and Firefox.

But same application video calling getting hanged in IE.

Am I missing something? Any help in this regard will be most appreciable.

Thanks and regards, Vinayak

johache commented 7 years ago

Hi, I'm going to need a little bit more information than that.

vinayakkedge commented 7 years ago

Webrtc_working_example.zip I have attached my files in zip.

1) Which signaling/nodejs ? Yes 2) Did you follow the integration manual ? https://confluence.temasys.com.sg/display/TWPP/How+to+integrate+the+Temasys+WebRTC+Plugin+into+your+website Yes

3) It hangs on function onIceCandidateHandler(evt) { console.log("onIceCandidateHandler"); if (!evt || !evt.candidate) return; wsc.send(JSON.stringify({"candidate": evt.candidate })); };

Above function called infinitly and my application does not receive ICE candidate

This app works correctly with Mozilla and Chrome

Following STUN server I am using https://stackoverflow.com/questions/22233980/implementing-our-own-stun-turn-server-for-webrtc-application https://github.com/coturn/coturn

Sometimes get following exception:

Uncaught (in promise) DOMException: Failed to set remote answer sdp: Called in wrong state: STATE_INPROGRESS

Uncaught (in promise) DOMException: Failed to set remote answer sdp: Called in wrong state: STATE_RECEIVEDOFFER

johache commented 7 years ago

You test samples does not work, but you can't stringify evt.candidate. It is a plugin object, which is very complex NPAPI/ActiveX object. You need to make a temporary object with the attributes your are interested in, and stringify it.

Ex:

var c = {
candidate: evt.candidate.candidate,
sdpMLineIndex: evt.candidate.sdpMLineIndex,
sdpMid: evt.candidate.sdpMid
};
JSON.stringify(c);