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.
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
Private IP: XXX.XXX.XXX.XXX <- NAT -> Public IP: YYY.YYY.YYY.YYY
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?
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.
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.