How Do I Schedule a BlueJeans Meeting?

Perhaps one of the most basic tasks for video communications is to schedule the actual meeting.

This step by step guide will provide you with an example of how to use the onVideo REST API's to schedule a meeting.

Things to keep in mind...

BlueJeans REST API messages must contain certain formatting values in order to be recognized as valid. Please ensure that each REST call has the following fields:

Step 1

Authenticating

Create a Session

The first step an application must do before calling any meaningful API's is to create a session. A BlueJeans session is the result of a successful authentication - just like just like logging into a web site or an application.

When an application authenticates, the BlueJeans cloud returns something called an access token which becomes your software passkey to call API's.

BlueJeans uses the industry standard OAuth protocol for authentication.

API Specification
https://api.bluejeans.com/oauth2/token?Password
JSON Calling Parameters
{
   grant_type: "password",
   username  : "myusername",
   password  : "mypwrd"
}
				
The function of the JSON variables are:
  • grant_type - string constant, "password" to designate the type of authentication method
  • username - the username for the BlueJeans account
  • password - the password for this account
JSON Return Values
{
  "access_token": "c2d18e8adbe7461c837ae187287a1261",
  "expires_in": 1209600,
  "scope": {
    "user": 1442589,
    "partitionName": "z2",
    "partition": {
      "id": 2,
      "name": "z2"
    },
  },
  "refresh_token": ""
}
				
The returned JSON variables are:
  • access_token - this is the time-bound software "passkey" that is required when making BlueJeans API calls.
  • expires_in - this is the duration (in seconds) for the access_token to remain value.
  • scope - this Object contains information related to the breadth of access that the access_token can engage.
    • user- this is the unique integer id number for the user account that made this Authentication request
    • partitionName - this is a BlueJeans internal reference
    • partition - this JSON is also BlueJeans internal information
CURL
curl -X POST "https://api.bluejeans.com/oauth2/token?Password" -H "accept: application/json" -H "content-type: application/json" -d "{ \"grant_type\": \"password\", \"username\": \"myusername\", \"password\": \"mypwrd\"}"

Step 2

Scheduling

Set a Meeting date/time

The next step is where you actually submit the API request to create a meeting for a set date and time.

Along with this API call, you must pass the access_token obtained from the Authentication step.

A normal end user can only schedule meetings for their account. An enteprise admin user is able to schedule on behalf of any user. In both cases you must specify the unique BlueJeans user ID number as part of the API request.

One important thing to do when submitting a meeting schedule request is to appropriately set the endpoint field values. For basic use, the endPointType should be "WEB_APP", and the endPointVersion should be "2.10". These values ensure that your meeting is listed in the user's BlueJean's web portal.

The example below successfully scheduled a meeting with these attributes

  • Date: October 5, 2017
  • Starting: 4:00pm (1507244400000 milliseconds since epoch)
  • Ending: 4:30pm (1507246200000 milliseconds since epoch)

BlueJeans assigned this meeting with the Meeting ID of: 752584732

API Specification
https://api.bluejeans.com/v1/user/{user_id}/scheduled_meeting?access_token={your access token}
JSON Calling Parameters
{
  "title": "My First API Scheduled Meeting",
  "description": "I am using BlueJeans' onVideo API's to schedule this meeting",
  "start": 1507244400000,
  "end": 1507246200000,
  "timezone": "America/Los_Angeles",
  "addAttendeePasscode": true,
  "endPointVersion": "2.10",
  "endPointType": "WEB_APP",
  "attendees": [
    {
      "email": "glenn@bluejeans.com"
    }
  ],
  "advancedMeetingOptions": {
    "autoRecord": false,
    "muteParticipantsOnEntry": false,
    "encryptionType": "NO_ENCRYPTION",
    "moderatorLess": true,
    "videoBestFit": true,
    "disallowChat": false,
    "publishMeeting": true,
    "showAllAttendeesInMeetingInvite": true
  }
}
				
The function of the JSON variables are:
  • title - string (50 chars) : the title for your meeting.
  • description - string (?? chars) : a short description for the meeting
  • start , end - integer (millisec. since epoch) : the expected starting and ending times of the scheduled meeting
  • timezone - string (100 chars) : the global timezone for the meeting, formated like: "America/Los_Angeles"
  • addAttendeePasscode - boolean : if true, have BlueJeans assign a random integer as a passcode presented before a participant can join the meeting
  • endPointVerson - string (?? chars) : a string designating the version of the endpoint that is making this scheduling request
  • endPointType - string (?? chars) : the string name of this endpoint making the scheduling request. You must use provide a value here
  • attendees - JSON array :
    • email - string (75 chars) : the fully qualified email address for an intended participant
  • advancedMeetingOptions - JSON object :
    • autoRecord - boolean : when the meeting starts, begin recording automatically
    • muteParticipantsOnEntry - boolean : when a participant joins the meeting, mute his/her audio feed
    • encryptionType - string : what type of encryption to use for this meeting. Default to "NO_ENCRYPTION"
    • moderatorLess - boolean : when set, moderatorLess does not create a moderator passcode
    • videoBestFit - boolean : when set videoBestFit will attempt to scale the video media to fit the screen
    • disallowChat - boolean : when set, BlueJeans client endpoints will not be enabled to access chat for the meeting
    • publishMeeting - boolean : (TBD)
    • showAllAttendeesInMeetingInvite - boolean : when set, any invited participant will be listed in the email inviration sent out to invitees
JSON Return Values
{
  "id": 12405075,
  "uuid": "55c9153b-2be5-4ca0-abd7-774900344339",
  "title": "My First API Scheduled Meeting",
  "description": "I am using BlueJeans' onVideo API's to schedule this meeting",
  "start": 1507244400000,
  "end": 1507246200000,
  "timezone": "America/Los_Angeles",
  "advancedMeetingOptions": {
    "videoBestFit": true,
    "publishMeeting": true,
    "encryptionType": "NO_ENCRYPTION",
    "moderatorLess": true,
    "allowStream": false,
    "autoRecord": false,
    "disallowChat": false,
    "muteParticipantsOnEntry": false,
    "showAllAttendeesInMeetingInvite": true,
    "editability": {
      "autoRecord": true,
      "enforceMeetingEncryption": true,
      "videoBestFit": true,
      "enforceMeetingEncryptionAllowPSTN": true,
      "disallowChat": true,
      "muteParticipantsOnEntry": true,
      "moderatorLess": true,
      "showAllAttendeesInMeetingInvite": true
    }
  },
  "notificationUrl": null,
  "notificationData": null,
  "moderator": {
    "id": 1442589,
    "username": "glenn.apitest",
    "firstname": "",
    "lastname": "",
    "profile_pic_url": ""
  },
  "numericMeetingId": "752584732",
  "attendeePasscode": "4396",
  "addAttendeePasscode": true,
  "deleted": false,
  "allow720p": false,
  "status": null,
  "locked": false,
  "sequenceNumber": 0,
  "icsUid": "IiN1S_EUsH46Krwt@xun48xfWzzi2nzd",
  "endPointType": "1",
  "endPointVersion": "Web",
  "attendees": [
    {
      "meeting": {
        "id": 12405075
      },
      "email": "glenn@bluejeans.com",
      "followupEmailSentDate": null,
      "inviteeid": 1407819,
      "firstname": "",
      "lastname": "",
      "profile_pic_url": ""
    }
  ],
  "isLargeMeeting": false,
  "created": 1507235408569,
  "lastModified": 1507235408607,
  "isExpired": false,
  "parentMeetingId": null,
  "parentMeetingUUID": null,
  "nextOccurrence": null,
  "timelessMeeting": false,
  "endlessMeeting": false,
  "first": {
    "start": 1507244400000,
    "end": 1507246200000
  },
  "last": {
    "start": 1507244400000,
    "end": 1507246200000
  },
  "next": {
    "start": 1507244400000,
    "end": 1507246200000
  },
  "nextStart": 1507244400000,
  "nextEnd": 1507246200000,
  "isPersonalMeeting": false,
  "inviteeJoinOption": 0
}
				
The returned JSON variables contain the set of parameters originally provided to this API call, as well as results for internal variables. The description of some of the more useful internal variables returned are:
  • id - This is an internal software handle for the meeting event.
  • uuid - The uuid is an internal global unique identifier for the meeting event
  • numericMeetingId - This is the Meeting ID that people will enter into their browsers or mobile clients, or onto conference room control pads.
  • attendeePasscode - If the meeting is protected by a passcode, all attendees must enter this value prior to being connected on video/audio

In the event that this meeting is part of a chain of recurring meetings, these fields designate:

  • parentMeetingId - The internal software handle for the meeting immediately prior in the recurrence chain of meetings
  • parentMeetingUUID - The internal global unique identifier for the meeting immediately prior in the recurrence chain
  • first - A JSON object containing the start and end times of the first meeting in the recurrence chain
  • last - A JSON object contaiing the start and end times for the next meeting in the recurrence chain
  • next - A JSON object containing the start and end times of the next meeting in the recurrence chain
CURL
curl -X POST "https://api.bluejeans.com/v1/user/1442589/scheduled_meeting?email=false&access_token=c2d18e8adbe7461c837ae187287a1261" -H "accept: application/json" -H "content-type: application/json" -d "{ \"title\": \"My First API Scheduled Meeting\", \"description\": \"I am using BlueJeans' onVideo API's to schedule this meeting\", \"start\": 1507244400000, \"end\": 1507246200000, \"timezone\": \"America/Los_Angeles\", \"addAttendeePasscode\": true, \"endPointVersion\": \"Web\", \"endPointType\": \"1\", \"attendees\": [ { \"email\": \"glenn@bluejeans.com\" } ], \"advancedMeetingOptions\": { \"autoRecord\": false, \"muteParticipantsOnEntry\": false, \"encryptionType\": \"NO_ENCRYPTION\", \"moderatorLess\": true, \"videoBestFit\": true, \"disallowChat\": false, \"publishMeeting\": true, \"showAllAttendeesInMeetingInvite\": true }}"

Step 3

Joining

Join the Meeting...

At this point you will be ready to join your scheduled meeting (from example in Step 2, the meeting has Meeting ID: 752584732).

You have multiple ways to join a BlueJeans meeting.

  • From a Conference room video endpoint:
    • BlueJeans Huddle
    • Cisco Telepresence
    • Polycom
    • Lifesize, and more...
  • Any of BlueJeans' Client Applications: Windows, MacOS, iPhone, Android
  • and WebRTC (if running on Google Chrome, Mozilla Firefox, or Apple Safari).

The quickest way to launch into the BlueJeans meeting is to use the meeting URL which is formed from http://bluejeans.com and the meeting ID.

http://bluejeans.com/752584732/webrtc
						

The "/webrtc" is optional. If included, it will try to use your browser as the video client by invoking WebRTC technology.

If your browser does not support WebRTC, then you will be guided to download the BlueJeans client application to connect to the meeting.