EasyRTC Documentation

Documentation

EasyRTC: Resolving Problems

Why this document

When you are new to WebRTC, you tend to make the same mistakes that everybody else made a year or two ago. Those experienced with WebRTC/EasyRTC tend to get bored answering the same question over and over, and as the person with problem, you can fix things much faster if you don't have to wait for someone to respond.

Common Problems And Their Symptoms

I can't get video from my camera and/or microphone

I can only access the camera if the browser url is "localhost://..."

Chrome requires an https url except in the case of localhost. This is for security reasons. You can get free SSL certificates at https://letsencrypt.org/ or at https://www.startssl.com/Support?v=1 . There is a document in the documents section that describes how to add ssl certificates to the EasyRTC server.

Only some WebRTC applications can't access my camera.

With Chrome, if you don't give a website permission to use your camera or your microphone, it remembers this and doesn't request camera permission in the future. If that is the case, the camera icon (in your browser's URL field, to the right) will show a 'X'ed out camera. Click the camera icon to pull up a dialog box that will let you change this.

No WebRTC application can access my camera.

A single camera can be shared by mutiple tabs in a browser, but whether a camera can be shared by multiple binary applications or not depends on the Operating system. We've seen MacOS share the camera, Linux can't, not sure about Windows 10. So the standard operating procedure is: kill any process that may be holding onto the camera (Skype, Ring central, etc) and try reloading your app.

With Linux, it is possible for operating system to get confused about the state of the camera if an application has been using died. Sometimes, it is suffcient to simply suspend the computer and wake it a few seconds later, other times it requires rebooting.

I can't establish a connection!

Just to re-iterate what you should already know by now so we have a common context:

The general order of testing is:

Common Sense Guidelines For Posting Questions to the Forum

The general theme here is

  There is no financial incentive to help you so 
  if you want to have any reasonable expectation of someone helping, 
  MAKE IT EASY FOR SOMEONE TO HELP YOU. 

If someone is helping you for free, their time is more valuable than yours because they know how to do something you don't, you just aren't being charged for it.

Be intelligible to the people you expect to answer your questions.

 "You have not experienced Shakepeare until you have read him in the original Klingon" (Star Trek, the Undiscovered Country).

For those of you who aren't English speakers, we appreciate the difficulties of translation, but be aware that Google Translate can produce gibberish. Try translating your question from your language to English, and then back; if the twice translated code looks like gibberish to you, the once translated code will probably look like gibberish to the people on the forum.

It will probably help to use complete sentences and avoid idioms/slang.

Supply sufficient information.

Supplying demonstrating code

If a forum reader has to spend more than five minutes trying to duplicate your environment, or wade through hundreds of lines of logic is that is irrelevant to the bug, your problem is much less likely to be answered. You should be paring it down to the minimum code body that demonstrates the problem. You should be explaining what it is trying to accomplish and how.

If your added or modified code is purely client side, it's going to be much easier for people to help you if you supply a URL they can simply point their browser at, rather than having to run their own server.

Realistic Expectations

The EasyRTC client code tends to have simple well-understood interfaces that happen in a single thread and lots of people have used it directly. The server code tends to be harder to follow and relatively few people have bothered to learn how it works. If you are changing/extending the server code, there are going to be fewer people who can help you; you may need to familarize youself with the server code yourself to be your own solution.

If you are looking for a WebRTC/EasyRTC expert and no-one steps up, that's possibly because they are busy with their own projects.