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 195.36.13.101 scope global lo:0
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
/opt/freeswitch/etc/freeswitch/sip_profiles/external.xml
<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"/>
/opt/freeswitch/etc/freeswitch/sip_profiles/internal.xml
<param name="ext-rtp-ip" value="PUBLIC_IP"/>
<param name="ext-sip-ip" value="PUBLIC_IP"/>
/opt/freeswitch/etc/freeswitch/vars.xml
<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"/>
/usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml
freeswitch:
ip: PUBLIC_IP
sip_ip: PUBLIC_IP
/etc/bigbluebutton/nginx/sip.nginx
proxy_pass https://PUBLIC_IP:7443;
/etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini
externalIPv4=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.
hello Mattia , i am an iranan network manager and i’m managing netwoks for many schools. we have online education servers. so this guide was very helpfull for me , my work and a lot of kids. thanks brother 🙂
Thank you man! I really appreciate your message! Sorry for my delay in response! 🙂
hi,
I cant even install single server behind NAT ,Please guide me
Sorry this place isn’t about tech support. If you want my company can deploy any kind of installation you want.
If you have any doubt, ask me. This post is something like copy-paste after standard automatic install of bigbluebutton, so I’m sorry but I don’t think there’s any other way I can help you.