WebRTC, Differing stream ids and formatting between chrome/FF and edge - javascript

I'm working on establishing a RTC connection between a Chrome/ff client and Edge client. I'm using the most up to date adapter.js shim. I have everything working without a hiccup except for the following two:
1) The call can only be initiated by the Edge user, otherwise the transfer of sdp information doesn't complete.
2) When initiated by Edge user, the full exchange happens, but remote videos can't be seen, which I think I've narrowed down to a discrepancy in stream ids between the two clients.
Chrome local streamid: "aPshOXkbsPHswpajCqzaJcLowZzSHZr6QrPD"
Edge local streamid: "89077962-9A1B-47B9-8754-7B80FAAC82DF"
Chrome remote streamid (Edge local): "89077962-9A1B-47B9-8754-7B80FAAC82DF"
Edge remote streamid (should be chrome local): "3750A59D-7E90-450A-96BB-63EED7D564C3"
So it seems that Chrome has an issue with the id of the Edge stream, and then for whatever reason Edge is interpreting the Chrome stream and/or its id.
One ancilliary issue that I've noticed with Edge is that when the success function fires from the navigator.mediaDevices.getUserMedia function, the video camera starts up, but then immediately shuts down. I have to enable it afterwards through javascript and then obtain stream ids, otherwise chrome/other client won't even get correct stream information of edge's running stream.
I haven't submitted an issue on the webrtc-adapter github repo yet, I'm firstly curious if anyone has any tips on how to tackle this issue. All the browsers are fully up to date. The clients are communicating from debian wheezy and Windows 10 (pro, creator's update edition). Works fine between the two machines if any combination of chrome and firefox are used.

Related

Quickblox connection is not successfully established every time in Edge Browser

I'm using 2.12.2 version of Quickblox, and Edge 42+ version. The call is made from iPhone8+ to the browser, and video chat isn't successfully established every time.
The console is displaying an error:
ORTC18614: ORTC RTCIceGatherer: Transport endpoint allocation failed. hr=c004e00e.
And next:
SCRIPT5022: InvalidStateError quickblox.min.js (1,363529).
Quickblox documents state that Edge 14+ is supported, but there seems to be an issue.
Is anyone having a similar problem with Quickblox and Edge? It seems that Edge is not fully supported. Is there any solution to this problem?
EDIT: The same behavior is reproducible with the QuickBlox sample code. Also, after 30 seconds, the call is disconnected.

Media Source Extension with Firefox

My application receives a RTP Stream (H264 or VP8), put it into Fragmented MP4 or WebM and send it over Websocket to my Javascript App where I display video using Media Source Extension.
Chrome works ok with both Codecs but Firefox shows a huge CPU usage, 50%-60%.
Chrome only 6%.
Javascript calls mediaSource.updateBuffer, wait for updateend and then call again mediaSource.updateBuffer. Nothing different as any example out there.
Anyone having also this problem with Firefox?
Without a lot more specific information (profiling your code, checking your browser flags and capabilities) it isn't possible to definitively say what the issue is.
I suspect that in Chrome, your codecs are hardware accelerated, and in Firefox they are not.

Is Chrome microphone supposed to be not working if there is no Internet Connection?

I'm using a JS plug-in called Annyang, a Speech Recognition tool and of course it requires a working mic. Everything works just fine with normal Internet connection, but when I disable my Internet Connection, the plug in won't work at any level. (and I did check the plug-in's JS file and found nothing that needs any Internet Connection to be functioned.
Is Chrome microphone supposed to be not working if there is no Internet Connection ? Or something is wrong with the plug-in..?
Thanks a lot for reading this question. Have a good day :)
It's not the microphone that needs internet connection,
it's google's implementation of speech-recognition API, which sends the recorded data to their server to get the computed STT.
Nothing you can do on your side, not an Annyang bug either.

Configuring maximum number of simultaneous open WebSockets (in IE)

I've got this JS application. All client side JS communicating with a third party stream server via web sockets. I have about 18 different web sockets open for one page. Firefox and Chrome handle this many open web sockets at once just fine. IE11 seems to have a limitation of 4 open web sockets at once. Once I open that 5th web socket, regardless of socket call to the third-party server, I get an error thrown by IE, which closes the socket and gives the general error "SecurityError" and expanding the proto section it gives me . Seems to be pretty generic errors from my searches. At first I thought there may be a trusted zone type issue with IE, but I've added the client site to my trusted zone as well as the server providing the data.
This post provides info on max number of websockets for Firefox & Chrome, but I don't see anything specific about IE. Are there any known limitations to IE and web sockets? Answered, see edit below.
This MDN site talks about increasing the max value, but again, I can't find anything about IE. Is there some IE setting to up the amount of open connections? Answered: see below edit.
EDIT: This site shows the max connections settings for IE. It looks like it's a registry setting in Windows that controls the amount of web socket connections. Interestingly enough, I don't have that registry Key anywhere, but there is still a limit for this. The page speaks of IE10, and I'm working with IE11 specifically. Does anyone know if there are registry settings for this in regards to IE11? Has anyone just added these feature web socket registry keys and solved this issue?
The MSDN documentation you referenced is clear on the default being 6 concurrent connections (which means if not specified in the registry, that's what you'll get); and, if the documentation doesn't specify differently, it's probably safe to assume newer versions of Internet Explorer act in the same way as version 10.
Try setting through group policy. It worked for me.
https://jwebsocket.org/documentation/reference-guide/internet-explorer-tips

Web worker won't start in IE unless the cache is cleared

I'm having a really weird bug in my HTML5 script. I wrote a sharepoint app completely in OData which uses a few HTML 5 webworker to do the number crunching in the background. This works perfect on all major browsers (FF, IE10+ Chrome, ...). However, when I perform a refresh or browse to the page again. The script still works as intended on FF and Chrome, but hangs on IE.
In my network view I see a request for the Worker.js file, but with a 304 NOT MODIFIED response. IE then just hangs there on that request with a status of (Pending). This issue only gets resolved when I clear my browser cache.
I correctly close all my threads with self.close().
Any idea what the issue could be? I'm not sure if it's a code issue, a browser issue or a server side issue but I can replicate the bug on Sharepoint online as well as on a local server. The whole project is JS only, so I can't modify headers as a workaround either.
UPDATE: I ran exactly the same code outside of a sharepoint environment, and it worked perfectly. Issue is Sharepoint related.
using a time based querystring parameter prevents caching showing http status 200 on each refresh. tested on latest chrome, ie, ff;
var opus = new Worker("worker.js?q=" + new Date().getTime().toString() );
to be honest this a long shot as i do not have sharepoint right now
SharePoint sends the header:
Content-Disposition: attachment; filename="xyz.js"
X-Download-Options: noopen
and the IE Web Worker Implantation then does not run this web worker. (Tested in IE11) In the IE Network Monitor the request still on pending, even the Response text is visible.
I know so fare two workarounds:
Place the web worker js in the layouts folder (needs a Farm Solution, with the downside of this)
Set the Browser File Handling for the Web application to Permissive (maybe your security is not amused)

Categories

Resources