Even if it is not advised to have this software behind NAT, I just wanted to do so for some reasons that are not the scope of this post.
Since I think thate the BigBlueButton documentation regarding NAT is not clear and complete, I had a very bad time to install a single server.
As soon ad you understand that BigBlueButton is the integration of several instruments, you start to understand how to manage it.
So, after following the instructions, I had a system with no audio, then with audio but not able to use webcam and screen share (it is the same component indeed)
Now follows the changes I made to a fresh 2.2 BigBlueButton install.
First of all you have to have an alias on loopback address with the public ip address just to make things work properly and to have the following parameters effective.
in /etc/network/interfaces add
auto lo:0 iface lo:0 inet static address PUBLIC_IP netmask 255.255.255.255
then restart networking and make sure that the IP is shown like this
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet PUBLIC_IP/32 brd 184.108.40.206 scope global lo:0 valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever
<param name="ext-rtp-ip" value="PUBLIC_IP"/> <param name="ext-sip-ip" value="PUBLIC_IP"/> <param name="ws-binding" value="PUBLIC_IP:5066"/> <param name="wss-binding" value="PUBLIC_IP:7443"/>
<param name="ext-rtp-ip" value="PUBLIC_IP"/> <param name="ext-sip-ip" value="PUBLIC_IP"/>
<X-PRE-PROCESS cmd="set" data="bind_server_ip=PRIVATE_IP"/> <X-PRE-PROCESS cmd="set" data="external_rtp_ip=PUBLIC_IP"/> <X-PRE-PROCESS cmd="set" data="external_sip_ip=PUBLIC_IP"/>
freeswitch: ip: PUBLIC_IP sip_ip: PUBLIC_IP
Hope this will help someone because of the need in this COVID-19 pandemic because more people will need remote teaching and conferencing. BigBlueButton is a great software and very easy interface and this my notes make possibile to install it on premises even if you prefer to have the server on which BigBlueButton is hosted behind NAT.