1

I run an self-hosted instance of BigBlueButton and signed up for Xirsys TURN server services because we need to serve clients behind (pretty restrictive) firewalls. Before I had been running my own instance of coturn, but as this led to problems recently, I thought I will got someone who does this for a living a try.

Now the configuration in BBB is explained here:

https://docs.bigbluebutton.org/2.2/setup-turn-server.html

Yet so far I completely failed to match the parameters I receive from Xirsys with what I have to put into the /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml file in the place of the <turn.example.com> and <secret_value>.

Did anyone ever make this work? I did try and find a tutorial but also failed.

TorstenS
  • 127
  • 10

2 Answers2

0

bbb_web, is returning this the turn uris. passwords to the html5 client, that the client is using in sip.js

so you can either get bbb-web to send valid username/passwords is same method is used, or modify the html5 client to make a Xirsys api call, to get access to the turn candidates.

Would need to look at api docs. twilio has a similar service.

regards, Stephen

  • what I did for a first try is changing the html5 client stunTurnServer fetch url to a static hosted JSON file with the credientials. This seems to work, but only if I force Firefox to use the STUN server (setting media.peerconnection.ice.relay_only = true in about:config). With this flag set, the TURN server is used and everything works, without this flag the STUN servers are also fetched but no ICE candidates appear for it and ICE fails. Do you know if I need to change this anywhere else so the STUN servers are used all the time ? – Georg Jun 09 '21 at 09:53
0

not the most elegant solution but the easiest one for me:

modify the final bbb js bundle to load the stunturn info from a fixed url in e.g.

/usr/share/meteor/bundle/programs/web.browser/f30716b2b57e2862c4db2325                                                                                                                                                             b7aac63f4622842b.js

the minified part should then look somewhat like:

const r=Meteor.settings.public.media,i='https://<yourbbburl>/html5client/stunturn.json',a=r.cacheStunTurnServers,s=r.fallbackStunServer;

and put either the static credentials or generated ones in a file stunturn.json besides the js bundle.

Georg
  • 183
  • 4
  • 18