Twilio-video.js: Support for MS Edge 15

Created on 27 Apr 2017  路  16Comments  路  Source: twilio/twilio-video.js

Hi folks,

after the creator update is now released and Edge officially supports WebRTC it would be nice to support the browser for video consultations as well.

For fun, we tried it out today resulting some connection problem that might be related to:
https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10163458/

2 questions are related to this:

  1. Why is it necessary to specify 3 TURN servers? Wouldn't it be enough to provide the last entry (turn via tcp and port 443) as this might work for most firewalls?

  2. If there are good reasons to keep an udp based turn server is there the chance to compute a reduced array for Edge (just 1 STUN and 1 TURN server)?

Check also:
https://blogs.windows.com/msedgedev/2017/01/31/introducing-webrtc-microsoft-edge/

Best,
Patrick

Edge

Most helpful comment

@markandrus any update here? Looks like one of the main issues https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12639118/ has been resolved. It would be incredibly helpful to our business if we at least had an updated timeline or a priority level of Edge support. Thanks.

All 16 comments

Hi @ZuSe,

Awesome that you tested it out! The issue is interesting. As Shijun writes,

We currently do not support multiple servers of the same type. For the time being, please limit your TURN servers to one UDP server and one TCP server.

So one workaround would be to provide them at connect time, e.g.

connect(token, {
  iceServers: []
});

and ensure at most one STUN and one TURN server are provided. This should override the internal call that acquires the STUN and TURN servers, although if you go this route, you'll probably still want to pull a TURN server via Twilio's REST API and filter the results. As to your question:

  1. Why is it necessary to specify 3 TURN servers? Wouldn't it be enough to provide the last entry (turn via tcp and port 443) as this might work for most firewalls?

It really depends on the end user's network. We include the TCP entry in case UDP is blocked, and we include 443 in case only "HTTPS"-like traffic is allowed (although I believe there could be some boxes that still reject TURN traffic over 443). We don't want to provide only TCP, since UDP should be more performant; but we may be able to provide a single 443 TCP URL. I will check with the team (we've also discussed letting the individual TURN URLs be configurable via the Twilio Console).

  1. If there are good reasons to keep an udp based turn server is there the chance to compute a reduced array for Edge (just 1 STUN and 1 TURN server)?

Yes, I'd be open to such a workaround in the short-term. If you look in our lib/webrtc/rtcpeerconnection directory, we currently have adapters for Chrome and Firefox that workaround certain platform limitations. I expect we will have an Edge adapter as we begin to build in Edge support.

So I'd be interested to know if you get any further setting the iceServers option in connect.

Thanks,
Mark

Any time-frame on adding Edge support?

For our Windows 10 clients, we use Hosted Web Apps (running on the Edge engine) and this is the last platform we'd like to get working before releasing Twilio Video in our apps. We also support Android, iOS, and other modern web browsers - everything's looking great there.

I tried the suggested workaround and was able to get Edge connected to a room. Other clients could receive and display video from Edge, but Edge did not appear to receive any tracks from them. I tested connecting to both Chrome and the iOS SDK to ensure it wasn't a problem interacting with a specific platform.

The only errors in the Edge console were periodic failures calling getStats() on RTCPeerConnection, but as far as I can tell those appear to be a separate issue.

Thanks,
Tony

I agree that having Edge as an option would blunt some of the Chrome/FF only criticism we are sure to get when launching with Twilio-video. Safari is far off, but if this can be done soon, it will greatly help us.

We've captured some of these work items. Limiting the TURN servers is in-progress (tracking internally as VIDEO-717), we've captured the media issues (JSDK-1302) and getStats issues (JSDK-1303). We are much closer to beginning work on this, although the next couple weeks will be busy due to Twilio's conference. Thank you all for your feedback and experimentation.

Hey @markandrus, do you have a timeframe for Edge support?

Should we be using the workaround you mentioned until then? If so which server should we use?

connect(token, {
  iceServers: []
});

Also looking for a timeframe, with Safari now supporting WebRTC in the latest developer preview it would be fantastic to have Twilio Video working on all 4 major browsers this summer. My team and I are planning to launch multiple products using the platform soon but are going to hold off and continue polishing until that happens.

Hey @markandrus, do have still think E15 support will arrive in July?

We resolved the multiple ICE servers issue (VIDEO-717) and conducted a spike with Microsoft Edge. Unfortunately, there are still limitation's with Edge's WebRTC API. For example, Edge does not yet support MediaStreamTrack addition to existing MediaStream in renegotiation. This means adding and removing Tracks will not work yet (at least without hacks).

We've been advised that Edge's ORTC APIs may be the best path forward for now, and so we'd likely look at shimming the RTCPeerConnection APIs on top of ORTC. However of the two open source options, testing showed that rtc-peerconnection-shim is not a drop-in solution for us yet and ortc-adapter would need a lot of updates. So there is a non-trivial amount of work to get Edge fully-working at this time.

@jamesgraham @carterbryden based on this, we will not have Edge 15 support in July. We've instead reprioritized Safari support (which is currently working in one direction right now).

Great work on the Safari support, since you added Group room support it works really well. But: Does that mean we can assume Microsoft Edge will be supported next, and if so is there a rough timeline?

@markandrus Any news?

@my-name-was-already-taken we will probably return to Edge support again before EOY using the ORTC APIs.

@markandrus Have we news about the support of Twilio Video in MS Edge? Thanks!

@markandrus Any news or an idea when someone might start looking into this again?

@markandrus Any news on Edge Support?

@markandrus any update here? Looks like one of the main issues https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12639118/ has been resolved. It would be incredibly helpful to our business if we at least had an updated timeline or a priority level of Edge support. Thanks.

Hi all,

We now support Chromium-based Edge starting from version 2.0.0. So, I'm closing this issue.

Manjesh Malavalli
JSDK Team

Was this page helpful?
0 / 5 - 0 ratings