We were looking to setup a new html5 client for big blue button to test out its specifications for evaluation & testing.
We started out by following the bigbluebutton 1.0 install document along with replacing the current package repository to bigbluebutton-2 as mentioned in docs, followed by api demos, html5 client installation & html5 dev client installation on an Ubuntu 16.05 linux vm running on google cloud compute vm.
To run the meteor bundle we used pm2-meteor & pm2-meteor results in success.
The installation of bigbluebutton-2.0 core, dev was both successfull & this is the client check status we got -
Except the sip connections, since it is showing success for all the components we thought everything should work as expected now. So, when trying the bigbluebutton-api with the secrets from bbb-conf on a
https://server_domain/html5client/check returns
{"html5clientStatus":"running"}
pm2-meteor logs show nothing on this check request, but when I load - https://server_domain/html5client
I get "unauthorized" response & this in the logs -
0|bigblueb | error: CLIENT LOG: [object Object]
0|bigblueb | language=en-US, userAgent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36, width=1366, height=768, width=1366, height=637, bbbVersion=2.0-rc, location=http://livetuitions.urtutors.com/html5client, meetingId=null, requesterUserId=null, requesterToken=null, logoutURL=null, sessionToken=null
So, I figure that meteor is working correctly, not sure about from where html5client/check api is running so I checked
sudo service bbb-html5 status
● bbb-html5.service - BigBlueButton HTML5 service
Loaded: loaded (/usr/lib/systemd/system/bbb-html5.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2018-03-14 07:40:29 UTC; 31min ago
Process: 18077 ExecStart=/usr/share/meteor/bundle/systemd_start.sh (code=exited, status=1/FAILURE)
Main PID: 18077 (code=exited, status=1/FAILURE)
Mar 14 07:40:28 online-teaching-prod systemd_start.sh[18077]: MongoDB shell version v3.6.3
Mar 14 07:40:29 online-teaching-prod systemd_start.sh[18077]: connecting to: mongodb://127.0.0.1:27017/html5client
Mar 14 07:40:29 online-teaching-prod systemd_start.sh[18077]: 2018-03-14T07:40:29.094+0000 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll),
Mar 14 07:40:29 online-teaching-prod systemd_start.sh[18077]: 2018-03-14T07:40:29.095+0000 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
Mar 14 07:40:29 online-teaching-prod systemd_start.sh[18077]: connect@src/mongo/shell/mongo.js:251:13
Mar 14 07:40:29 online-teaching-prod systemd_start.sh[18077]: @(connect):1:6
Mar 14 07:40:29 online-teaching-prod systemd_start.sh[18077]: exception: connect failed
Mar 14 07:40:29 online-teaching-prod systemd[1]: bbb-html5.service: Main process exited, code=exited, status=1/FAILURE
Mar 14 07:40:29 online-teaching-prod systemd[1]: bbb-html5.service: Unit entered failed state.
Mar 14 07:40:29 online-teaching-prod systemd[1]: bbb-html5.service: Failed with result 'exit-code'.
So, I figured my mongodb is not getting connected on localhost so I tried -
sudo service mongod status
mongod.service - High-performance, schema-free document-oriented database
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/mongod.service.d
└─override.conf
Active: active (running) since Wed 2018-03-14 07:40:20 UTC; 32min ago
Docs: https://docs.mongodb.org/manual
Main PID: 17571 (mongod)
So, it was running & running mongo opens the mongo shell too, so no issues there I believe.
But anyway my since my dev env html5 setup is overriding this service so, now I thought that may be meteor is also not able to connect to mongodb so to test it I tried to run use the
http://mconf.github.io/bigbluebutton-api-js/
create meeting call with my secret & api url. the create meetings response was successful.
So, that means meteor is able to connect to mognodb but not the html5client.
So, to test the default installation I tried the join as presenter, attendee from the api-js generated urls.
The flash client loaded successfully & I am able to use all components in the flash version.
So, to test the html5client in a similar fashion -
1) I tried to use the existing session token I had in my flash client & opened -
https://livetuitions.urtutors.com/html5client/join?sessionToken=j2h4lllp5hmpthaw
Now, I it redirected my browser to https://livetutions.urtutors.com/html5client/
but shows nothing in screen (so I guess there could be an issue with the layout settings app) or html5client is being redirected to incorrect endpoint / params or an ssl certificate issue.
To rule out the ssl certificate issue, i tried to run -
https://www.ssllabs.com/ssltest/analyze.html?d=livetuitions.urtutors.com&latest
which resulted in A rating, so i guess certs are not an issue here.
Although, when we followed the lets encrypt setup section in setup documentation we generated the certs with this following command -
letsencrypt --webroot -w /var/www/bigbluebutton-default/ -d livetuitions.urtutors.com certonly
so, I suspect that they were generated for the default bbb-demos nginx root directory & not for the html5 dev version I am using.
Or it can be that my meteor dev server instance (~/dev/bigbluebutton/bigbluebutton-html5) is deployed / configured incorrectly.
Anyways, I am not sure about the reason as to why I am seeing empty html in browser after joining html5client so after checking the pm2 logs after hitting the join & attend meeting call from apimate I got -
0|bigblueb | ~~~~ REDIS RECEIVED: UserRegisteredRespMsg {"envelope":{"name":"UserRegisteredRespMsg","routing":{"sender":"bbb-apps-akka"}},"core":{"header":{"name":"UserRegisteredRespMsg","meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881"},"body":{"meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881","userId":"w_kg5xefvekhtu","name":"User 9802715","role":"VIEWER"}}}
0|bigblueb | info: User 'w_kg5xefvekhtu' is trying to validate auth token for meeting 'e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881'
0|bigblueb | ~~~~ REDIS PUBLISHING: {"envelope":{"name":"ValidateAuthTokenReqMsg","routing":{"sender":"bbb-apps-akka"}},"core":{"header":{"name":"ValidateAuthTokenReqMsg","meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881","userId":"w_kg5xefvekhtu"},"body":{"userId":"w_kg5xefvekhtu","authToken":"g0xl4bx2zvab"}}}
0|bigblueb | info: Created dummy user id=w_kg5xefvekhtu token=g0xl4bx2zvab meeting=e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881
0|bigblueb | ~~~~ REDIS RECEIVED: ValidateAuthTokenRespMsg {"envelope":{"name":"ValidateAuthTokenRespMsg","routing":{"msgType":"DIRECT","meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881","userId":"w_kg5xefvekhtu"}},"core":{"header":{"name":"ValidateAuthTokenRespMsg","meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881","userId":"w_kg5xefvekhtu"},"body":{"userId":"w_kg5xefvekhtu","authToken":"g0xl4bx2zvab","valid":true,"waitForApproval":false}}}
0|bigblueb | info: User 'w_kg5xefvekhtu' is joining meeting 'e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881'
0|bigblueb | ~~~~ REDIS PUBLISHING: {"envelope":{"name":"UserJoinMeetingReqMsg","routing":{"sender":"bbb-apps-akka"}},"core":{"header":{"name":"UserJoinMeetingReqMsg","meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881","userId":"w_kg5xefvekhtu"},"body":{"userId":"w_kg5xefvekhtu","authToken":"g0xl4bx2zvab"}}}
0|bigblueb | info: Removing system messages from: (w_kg5xefvekhtu)
0|bigblueb | ~~~~ REDIS RECEIVED: UserJoinedMeetingEvtMsg {"envelope":{"name":"UserJoinedMeetingEvtMsg","routing":{"msgType":"BROADCAST_TO_MEETING","meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881","userId":"w_kg5xefvekhtu"}},"core":{"header":{"name":"UserJoinedMeetingEvtMsg","meetingId":"e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881","userId":"w_kg5xefvekhtu"},"body":{"intId":"w_kg5xefvekhtu","extId":"w_kg5xefvekhtu","name":"User 9802715","role":"VIEWER","guest":false,"authed":false,"waitingForAcceptance":false,"emoji":"none","presenter":false,"locked":true,"avatar":"https://livetuitions.urtutors.com/client/avatar.png"}}}
0|bigblueb | info: Validated auth token as true user=w_kg5xefvekhtu meeting=e63fe056dd094d57eda400e8a8b49bef4a5716f3-1521015841881
0|bigblueb | info: Added chat from= to=SYSTEM_MESSAGE time=1521015968383
which suggests that adding user was success, & this is the response I get in the browser -
which suggests expected response from all the three calls - "enter", "info", "_timesync".
So i tried to load the same token with flash client & it works like a charm -
https://livetuitions.urtutors.com/client/BigBlueButton.html?sessionToken=3b1pfrn4l8hdyr4d
Can anyone here help me find / debug / fix this issue or what additional information can I provide that could help in possibly identifying / debugging / fixing the issue, so that I can load & test bigbluebutton's html5client
----------------Switched to Default Bigbluebutton-HTML5----------
So, when the dev screenshare module was not working I tried to stop the meteor app & restarted the bbb-html5 service. which resulted in success. so I thought everything should work now & voila, things worked (well mostly).
I read in a changelog that html5 now supported screenshare too, but It wasn't working with the default html5 client I installed with (sudo apt-get install bbb-html5) [I guess that is because of the certificate / ssl issue posted here at - https://stackguides.com/questions/49303377/how-to-use-letsencrypt-nginx-certificates-for-ant-sign-jar-to-sign-screenshare-e]
.
So, couple of issues that I found here were 1) Audio kept disconnecting. Had to go through echo test again & again. [I tried to change /var/www/bigbluebutton/client/conf/config.xml to enable skip audio check from config but not effect after conf restart] 2) Video kept disconnecting with this message in the console on interaction with chat, other screen elements -
21:09:58.876 User shared webcam w_4eawbbe3zwxu
21:10:06.979 CLIENT LOG (ERROR): Camera share has not suceeded in 10000
21:10:06.981 CLIENT LOG (INFO): Unsharing webcam
21:10:06.981 User unshared webcam w_4eawbbe3zwxu
21:10:07.262 Sending message: {"type":"video","role":"share","id":"stop","cameraId":"w_4eawbbe3zwxu"}
21:10:07.263 CLIENT LOG (INFO): Stopping WebRTC peer
21:10:07.263 Disposing WebRtcPeer
21:10:07.269 Disposing WebRtcPeer
3) Screenshare also is not working.
Can anyone can help in fixing / finding possible issues in any of these 3 components.
Hi,
So, as per @Fred's suggestion to test out things with the new automated build script for bigbluebutton.
It ran successfully on a new Ubuntu 16.04 VM running on GCE with 8GB of ram. So to check systems status I tried to load the bigbluebutton client again in my browser, I found all systems were operational.
[PS I had to install bbb-check package from Ubuntu ppa to access its web ui, so guessing it is still not a part of the bbb-install.sh script.]
Also, after checking the client status I found that bigbluebutton was not using ssl. So I am guessing again this is still not a part of bbb-install.sh. But, if it is as you mentioned in the answer below then there might be an issue / bug here.
Also, the configuration files that get reloaded after a bbb-conf restart are shown as -
So, I am guessing dev env setup is also not a part of the build script. Anyways, to test the html5client I tried to install it & check bbb-html5 service status.
So, to install html5 we needed node, meteor, mongodb, etc. which were unavailable so I am guessing bbb-install.sh might not be handling these,
Also, for some reason upon installing mongodb on my ubuntu with apt (mongodb-org) mongod service wasn't getting created. So, I was looking for an alternative option to pass env variables like MONGO_URL to the bbb-conf as part of bigbluebutton config / properties. But i did not find one. Although, I saw such an option while setting up my dev environment with bbb-html5 while using pm2-meteor, which used dev env variables like nodeenv, mongourl, etc. to pass to the bbb html5 meteor server, so not sure how it is handled within the bbb-install.sh script or how do i pass these variables to the bbb-conf for all operations like restart, check, start, stop, etc. [because this would be required ultimately for us, as we would want to keep the database distributed & separate from the machine handling the bbb-client for scaling purposes.
Anyways, so I created the service manually & started it to test stuff. Then i tried to start the bbb-html5 service with -
sudo service bbb-html5 start
it fails to start with errors shown as below -
kladdha_bhl68@online-teaching-dev-classroom:~$ sudo /usr/share/meteor/bundle/systemd_start.sh
cat: programs/server/assets/app/config/settings-production.json: No such file or directory
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017/html5client
MongoDB server version: 3.6.3
{ "dropped" : "html5client", "ok" : 1 }
/usr/share/meteor/bundle/programs/server/node_modules/fibers/future.js:280
throw(ex);
^
TypeError: Object.getOwnPropertyDescriptors is not a function
at insert (packages/mongo/collection.js:435:12)
at updateVersions (packages/autoupdate.js:125:20)
at packages/autoupdate.js:189:3
at Function.time (/usr/share/meteor/bundle/programs/server/profile.js:309:28)
at /usr/share/meteor/bundle/programs/server/boot.js:423:13
at /usr/share/meteor/bundle/programs/server/boot.js:464:5
at Function.run (/usr/share/meteor/bundle/programs/server/profile.js:510:12)
at /usr/share/meteor/bundle/programs/server/boot.js:462:11
So I am guessing it is not able to find the meteor deploy conf. (settings-production.json)
So, to find it I tried (sudo find / -iname "settings-") but got no results. So, I am guessing this was not generated as part of bbb-install.sh either. Now, I am thinking whether to create & configure those settings again & test this install script or go back to my original setup & debug that error so as to proceed forward at the earliest.
Can anyone suggest anything that might help.


