There is no user database in BigBlueButton that you can query to ask "How long did user X stay in session Y". Doing so would put business logic inside the BigBlueButton server and make it more complex to maintain.
Currently, if you want to update your BigBlueButton server, you simple setup a new server and copy over the recordings. Give this new server the same hostname and shared secret and your done. There is no data in the server that a 3rd party front-end is depending upon. This design makes the server easier to upgrade (no need to back up or migrate a database).
There are two API calls that you can use (as a developer in your application) to poll the BigBlueButton server for activity: getMeetings and getMeetingInfo.
See
and
How to determine how long a user has been in a session? Have your front-end (or a process running on your front-end application) periodically poll the BigBlueButton server for active meetings (using getMeetings) and then, for each meeting, poll for the active users (using getMeetingInfo).
Poll every 10 minutes, for example. Each time you poll you'll see new meetings appear and old meetings expire (they are no longer returned in getMeetingInfo). It's the same for users -- you'll see a user appear in the session and, in a subsequent poll, the user will disappear.
By recording the results, you can keep track of how long a user has been in a session. This approach works for any BigBlueButton server -- you don't need to install anything on the server, just poll it for activity and store the results in a database.
Thereafter, you can use that database for querying how long (within the accuracy of your polling interval) a particular user was in a particular session or all sessions.
Regards,... Fred