Single Server Licode behind Static NAT


I have installed a Licode Single Server instance behind a static NAT and clearly it does not work.

How and where do I set the Public IP ?

Do I only need to return the client the public IP for the Erizo Controller or also the ErizoJS ?

Let’s say my pub ip is can you provide an example on how to configure everything to work ?

After install (see Install scripts under ./scripts directory) you will get a copy of the configuration file[0] at your project root directory, you need to edit that and provide your public ip’s.

You don’t provide ErizoController public ip/host, Nuve does that, usually you have an intermediate layer that connects your browser’s client application with Nuve API to handle rooms, tokens, etc. Take a look at the basic example[1] that illustrates a complete roundtrip.


first of all thank you for your answer.

In the settings file (licode_default.js) I see two “publicIP” entries:

config.erizoController.publicIP and config.erizoAgent.publicIP

Let’s say the Box running everything in on the DMZ with

Scenario 1: only “external users”

Do I only need to set config.erizoController.PublicIP=YYY.YYY.YYY.YYY or also need the Agent Public IP set?

Scenario2: Lan and Wan Users

In this case need to return an FQDN and use DNS Split meaning that the same FQDN will be resolved internally to the Priv IP and Externally to the Public one.
In this case need to set the ErizoController.hostname instead, correct?


Scenario 1:

If you plan to use the MCU, yes, you should assign ErizoAgent a public ip in order to exchange media, if you only setup ErizoController public ip you will be able to signaling only. If you are using P2P room mode that should not be necessary.

Scenario 2:

Yes, that’s correct.


Thanks it worked but noticed takes a few seconds to rexeive the video back from Licode.

Do we need to set Stun and Turn servers somewhere ? If so where ?


Absolutely you should provide stun server, notice Licode add google’s one
by default. If you want to be able to make it work in every network you
also need to provide turn server, and also make it listen 443 to avoid
firewalls blocking standard turn ports.