How Do I Call Out From a BlueJeans Meeting?

Sometimes you may have an application that needs to make a Public Switched Telephone Network (PSTN) phone call to quickly bring an individual into a meeting.

This step by step guide will provide you with an example of how to use the onVideo REST API's to create a participant space in an existing meeting, and then ask BlueJeans to place a phone call to an intended participant.

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

Get Access to the Meeting

The first step an application must do is get access to the meeting on behalf-of the intended participant..

For this authentication, you will need from the BlueJeans a meeting access token which becomes your software passkey to make API calls to add a participant, and outdial to them.

BlueJeans uses the industry standard OAuth protocol for authentication.

API Specification
https://api.bluejeans.com/oauth2/token?Meeting
JSON Calling Parameters
{
   grant_type: "meeting_passcode",
   meetingNumericId  : "12345678",
   meetingPasscode  : "1234"
}
				
The function of the JSON variables are:
  • grant_type - string constant, "meeting_passcode" to designate the type of authentication method
  • meetingNumericId - this is the meeting number sent in invitations.
  • meetingPasscode - this optional field is needed if the moderator scheduled the meeting to require a passcode
JSON Return Values
{
  "access_token": "80073a884e ... e7f8b70571077f@z1",
  "expires_in": 86400,
  "scope": {
    "meeting": {
      "id": 8675433,
      "leaderId": 1407819,
      "meetingNumericId": "4159908751",
      "meetingUri": "/v1/user/1407819/live_meetings/4159908751",
      "isModerator": false,
      "endpointUriSet": [],
      "meetingId": "8675433"
    },
    "partitionName": "z1",
    "partition": {
      "id": 1,
      "name": "z1"
    }
  }
}
				
The returned JSON variables are:
  • access_token - this is the time-bound software "passkey" to join this BlueJeans meeting. Note: the access token ends in "@Zn" where "n" is a number 1-9. This ending confirms that you have generated a Meeting Access token. Anything else, is an invalid token for this use-case.
  • 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.
    • id- this is the BlueJeans internal unique integer id number for this meeting
    • leaderId- this is the unique integer id number for the user account that owns the meeting
  • 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\": \"meeting_passcode\", \"meetingNumericId\": \"12345678\", \"meetingPasscode\": \"1234\"}"

Step 2

Pairing

Create a Space at the Table

In this step you must make BlueJeans create a space for the intended party to be able to join this virtual meeting.

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

API Specification
https://api.bluejeans.com/v1/user/1407819/live_meetings/4159908751/pairing_code/PSTN?role=USER?access_token={your access token}
JSON Calling Parameters
{
  endpointName : "Glenn on iPhone",
  endpointType : "PSTN",
  capabilities : ["AUDIO"]
}				
				
The function of the JSON variables are:
  • endpointName - string (?? chars) : The name for the participant's connection.
  • endpointType - string (?? chars) : Enumerated string constant the directs BlueJeans to make this a PSTN connection.
  • capabilities - array of string (?? chars) : This array lists the string enumerated constants that define the type of connectivity for this participant. In the cast of PSTN, the only connectivity is AUDIO
JSON Return Values
{
  pairingCode : "7169943",
  connectionGuid : "connguid:14b66f88-8c90-464e-a658-62977a725fef",
  seamEndpointGuid : "seamguid:ea863317-b3c1-4808-8ad6-b55268a4886a",
  endpointName : "Glenn on iPhone"
}				
				
The returned JSON variables contain connections parameters for this PSTN dial-out.
  • pairingCode - This is an internal integer connection id for this participant for this meeting.
  • connectionGuid - The connectionGuid is an internal global unique identifier for participant connecting to the meeting.
  • seamEndpointGuid - The seamEndpointGuid is an internal global unique identifier for participant's media connection to BlueJeans.
  • endpointName - This string is an echoing of the calling parameter for the name of the participant's connection.
CURL
curl -X POST "https://api.bluejeans.com/v1/user/1407819/live_meetings/4159908751/pairing_code/PSTN?role=USER?access_token={your access token}" -H "accept: application/json" -H "content-type: application/json" -d "{ \"endpointName\": \"Glenn on iPhone\", \"endpointType\": \"PSTN\", \"capabilities\": [\"AUDIO\"]}"

Step 3

Make the Phone Call

Get the Invitee ...

In this step you instruct the BlueJeans cloud to outdial to your intended participant.

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

API Specification
https://api.bluejeans.com/v1/user/1407819/live_meetings/4159908751/dialout/pstn??access_token={your access token}
JSON Calling Parameters
{
  connectionGuid : "connguid:14b66f88-8c90-464e-a658-62977a725fef",
  pairedParticipantGuid : "seamguid:ea863317-b3c1-4808-8ad6-b55268a4886a",
  countryCode : 1,
  phoneNumber : "4159908751"
}				
				
The function of the JSON variables are:
  • connectionGuid - The connectionGuid is the internal global unique identifier for participant connecting to the meeting.
  • pairedParticipantGuid - The pairedParticipantGuid is an internal global unique identifier for participant's media connection to BlueJeans.
  • countryCode - integer : This is the DTMF numeric code for the call's destination country.
  • phoneNumber - string (?? chars) : This is the recipient's phone number to be dialed.
JSON Return Values
{
  connectionGuid : "connguid:14b66f88-8c90-464e-a658-62977a725fef",
  endpointGuid : "seamguid:ea863317-b3c1-4808-8ad6-b55268a4886a"
}			
				
The returned JSON variables simply echo the connection parametsrs passed to this API
  • connectionGuid - The connectionGuid is the internal global unique identifier for participant connecting to the meeting.
  • endpointGuid - The pairedParticipantGuid is an internal global unique identifier for participant's media connection to BlueJeans.
CURL
curl -X POST "https://api.bluejeans.com/v1/user/1407819/live_meetings/4159908751/dialout/pstn??access_token={your access token}" -H "accept: application/json" -H "content-type: application/json" -d "{ \"connectionGuid\": \"onnguid:14b66f88-8c90-464e-a658-62977a725fef\", \"pairedParticipantGuid\": \"seamguid:ea863317-b3c1-4808-8ad6-b55268a4886a\", \"countryCode\": 1, \"phoneNumber\" : \"4159908751\" }"