Architecture


APIs are grouped into relevant services as shown in the architecture diagram. The service objects are available after the iOS Client SDK instantiation, however, all services are not active at all times. When the services are inactive, the APIs will be null or undefined. 

As seen in the architecture diagram below, the BlueJeans iOS Client SDK is made up of "Services". These objects provide a static interface to the state of the SDK as well as methods to operate on it.

You can retain references to these objects for your convenience. We'll start with the MeetingService and VideoDeviceService, which will let us join/leave a meeting and get at the video streams in it.

let meetingService = BlueJeansSDK.meetingService
let videoDeviceService = BlueJeansSDK.videoDeviceService

The SDK is made up of several services. These fall into two main categories, in-meeting, and out-of-meeting. While they can be accessed at any time, in-meeting services will return nil or default values when a meeting is not active. In-meeting services are all accessed from the MeetingService.

List of Services

  • Globally Active Services: The following services will be active at all times once you initialize the Android Client SDK.
    • MeetingServiceProvides meeting-related APIs and all in-meeting services.
    • PermissionServiceProvides for permission handling related APIs
    • LoggingServiceProvides SDK logging related APIs.
    • VideoDeviceService: Provides video device enumeration and self-video preview enablement APIs. 
    • AudioDeviceService: The service provides APIs for controlling sound and audio devices. Make sure microphone permission is granted to have an audio experience.
    • VideoStreamService: The service provides APIs that allow you to create custom video layouts.
    • CustomVideoService: The service provides APIs that allow you to use variety of video frames, as a video input, offering endless possibilities for video customization. The CustomVideoService can be used to display custom video content.
  • In-Meeting Active Services: The following services will be active when the MeetingState transition to Connected (in the meeting) and the services will not be active when the MeetingState transition to Idle (meeting ends).
    • ContentShareService: Provides the APIs to manage content sharing during an ongoing meeting.
    • ModeratorControlsServiceThis is an in-meeting service that provides moderator privileged controls.
    • PublicChatService: Provides APIs for sending and receiving public messages. A public message is sent to all users in the session.
    • PrivateChatService: Provides the APIs to manage chat with individual participants.
    • ParticipantsServiceThis is an in-meeting service that offers a bunch of observables related to the participants present in a meeting.
    • ModeratorWaitingRoomServiceModeratorWaitingRoomService provides a set of APIs and observable data related to all waiting room operations that a moderator can perform.
    • ClosedCaptioningService: The Captioning Service provides APIs for enabling and disabling dynamic captions. The currently supported language is English.

Detailed documentation of iOS Client SDK functions is available here.

APIs are exposed through major services such as Meeting Service, Video Device service, Participant Service, Moderator Controls Service, Chat Service, Moderator Control Service, Closed Captioning Service, Waiting Room Service, and Permission Service.