Hi,
I would recommend to pass all traffic throuhg port 443/tcp since in most cases port 443/tcp will be open in firewalls but not port 3478/udp. So I would recommend the following instead :
in file /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml :
...
<bean id="stun1" class="org.bigbluebutton.web.services.turn.StunServer">
<constructor-arg index="0" value="stun:
turn.example.com:443"/>
</bean>
...
<bean id="turn1" class="org.bigbluebutton.web.services.turn.TurnServer">
<constructor-arg index="0" value="
<yourChosen/GeneratedTurnSecret>"/>
<constructor-arg index="1" value="turn:
turn.example.com:443?transport=tcp"/>
<constructor-arg index="2" value="86400"/>
</bean>
...
I propose to use turn protocole (no-dtls) instead of turns since I think voice and video traffic is already encrypted end-to-end so using DTLS is an overhead. Please confirm that traffic is actually encrypted and-to-end !
In accordance, CoTurn could be setup the following (easy) way :
----
listening-port=443
fingerprint
lt-cred-mech # Only on coTURN below v4.5.0.8!
use-auth-secret
static-auth-secret=<yourChosen/GeneratedSecret>
----------------
You then only need to open port 443/tcp and 49152-65535/udp on the turn server to have it work correctly in every situations with BigBlueButton.
I tested this configuration successfully on a virtual machine that was configured to only allow 443/tcp outbounds (and 53/udp for DNS requests).
Kind regards,
Thierry