Fixing WebRTC dropouts

A few people have observed dropouts using WebRTC, including the new Debian community service at rtc.debian.org

I've been going over some of these problems and made some improvements. If you tried it before and had trouble, please try again (rtc.debian.org is running with some of the fixes already).

If anybody else has seen these problems or continues to experience them, please let the reSIProcate community know about it through the repro-users mailing list.

WebSocket link disconnects immediately when call starts

In this case, you may see the picture of the other person for a split second and then the websocket link disconnects and JSCommunicator re-initializes itself.

People observing this problem had sometimes found that audio-only calls would work more frequently.

I believe one reason for this problem has been some incorrect handling of the OpenSSL error queue. I posted my observations about this on the resiprocate developer's list and included a fix for it in the recent 1.9.7 release.

Call starts, no remote picture appears, call stops after 20 seconds or so

In this case, if you look closely in the JavaScript console, you may see that one of the endpoints has sent a SIP BYE message.

A BYE message usually includes a reason such as this:

Reason: SIP ;cause=200; text="RTP Timeout"

This particular reason (RTP Timeout) may indicate that the TURN server is faulty, not running at all or is not reachable due to one or both users being behind a firewall.

If you experience this problem but some other reason code appears, please share your observations on the repro-users mailing list so it can be improved.

For those people who have firewall problems, this will eventually be resolved when the browsers support TURN over a TLS connection through a HTTP proxy. We also hope to provide better feedback in the JavaScript UI of JSCommunicator to tell people their call was blocked by a firewall.