Search code examples
c#bigbluebutton

Join meeting result "Authentication failed due to missing credentials." bigbluebutton?


I am very new to bigbluebutton. I successfully installed bbb on Ubuntu server and enabled API demo. It is working absolutely fine. I am calling API from c# and it is working fine too. I am creating a meeting like below which is working fine.

public CreateMeetingResponse CreateMeeting(CreateMeetingRequest request)
        {
            var qb = new QueryStringBuilder
            {
                {"meetingID", request.MeetingID},
                {"name", request.Name},
                {"attendeePW", request.AttendeePW},
                {"moderatorPW", request.ModeratorPW},
                {"record", request.Record.ToString()},
                {"allowStartStopRecording", request.AllowStartStopRecording.ToString()},
                {"autoStartRecording", request.AutoStartRecording.ToString()},
                {"voiceBridge", request.VoiceBridge.ToString()},
                {"welcome", request.Welcome},
                {"recordingmarks", "true"},
                {"logoutURL", request.LogoutURL}
            };
            qb.Add("checksum", GenerateChecksum("create", qb.ToString()));
            var createRequest = new RestRequest($"/api/create?{qb}", Method.GET);
            var response = Client.Execute<CreateMeetingResponse>(createRequest).Data;
            return response;
        }

After creating the meeting, i am trying to join the meeting like as below.

 public JoinMeetingResponse JoinMeeting(JoinMeetingRequest request)
        {
            var qb = new QueryStringBuilder
            {
                {"meetingID", request.MeetingID},
                {"fullName", request.FullName},
                {"userId", request.UserID},
                {"password", request.Password},
                {"joinViaHtml5","true" },
                {"redirect","false" },
                {"guest","true" }
            };
            qb.Add("checksum", GenerateChecksum("join", qb.ToString()));
            var joinRequest = new RestRequest($"/api/join?{qb}", Method.GET);
            var joinResponse = Client.Execute<JoinMeetingResponse>(joinRequest);
            return new JoinMeetingResponse();
        }

The response from bbb server API is "SUCCESS" and message is "You have successfully joined". But when i try to open meeting or join with URL it shows UNAUTHORIZED 401. "Authentication failed due to missing credentials."

I open browser console and it shows:

[18:07:28:0290] DEBUG: clientLogger: Initial connection status change. status: connecting, connected: false https://bbb.adorasoft.net/html5client/7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:121:1031295
7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:9 [18:07:28:0970] DEBUG: clientLogger: Initial connection status change. status: connected, connected: true https://bbb.adorasoft.net/html5client/7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:121:1031295
7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:9 [18:07:28:0971]  INFO: clientLogger: Connection to Meteor took 0.68s https://bbb.adorasoft.net/html5client/7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:121:1031466
7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:9 [18:07:29:0142] ERROR: clientLogger: User faced an error on main.joinRouteHandler. g.fetchToken (https://bbb.adorasoft.net/html5client/7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:121:1033747)
7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:9 [18:07:29:0144] ERROR: clientLogger: Encountered error while trying to authenticate t (https://bbb.adorasoft.net/html5client/7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:121:999188)
7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:9 [18:07:29:0146] ERROR: clientLogger: User could not log in HTML5, hit 401 z.renderByState (https://bbb.adorasoft.net/html5client/7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:121:1206397)
7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:9 [18:07:29:0327] ERROR: clientLogger: User could not log in HTML5, hit 401 z.renderByState (https://bbb.adorasoft.net/html5client/7df6acf6cb0f651dba4e71b3adac0efd23889793.js?meteor_js_resource=true:121:1206397)

What i am doing wrong?


Solution

  • So, after investing enough time i got the solution. There was no problem in bigBlueButton. The problem was that "Join" API request from server side.

    "The Join request should be made from the client side/Browser"

    So what I had to do is instead of passing XML response, I just need to pass the whole Big blue button Join URL with Checksum and redirect = true so whenever someone want to join they will redirect to the meeting directly.