Joining a Conference

πŸ“˜

Note

This document describes how to join conferences that are not protected by the conference access token. Joining protected conferences requires receiving a participant-specific conference access token via a conference invitation. For more information about protected conferences, see the Enhanced Conference Access Control document.

To join a conference, you need to have the conference object. You can obtain the object by calling either the create method with the conference alias or the fetch method with the conference ID. In the case of the C++ and .NET SDK, you can create the conference object out of the conference ID, without the fetch method.

Joining a conference using the conference alias

This approach requires all application users who want to join the same conference to call the create method using the same conference alias. If a conference with the provided alias exists on the platform, the platform does not create a new conference, it returns the conference object. To join the conference, participants need to call the join method (Web, iOS, Android, C++, .NET, Flutter, React Native) using the returned conference object.

const constraints = {
    audio: true,
    video: true,
};
await VoxeetSDK.conference.join(conference, { constraints: constraints });
let joinOptions = VTJoinOptions()
joinOptions.constraints.audio = true
joinOptions.constraints.video = true

VoxeetSDK.shared.conference.join(conference: conference, options: joinOptions) { conference in
  // success
} fail: { error in
  // fail
}
Conference conference = //previously obtained from conferenceAlias creation

// will with audio but no video
Promise<Conference> promise = VoxeetSDK.conference().join(conference);
Conference conference = //previously obtained from conferenceAlias creation

// will with audio but no video
// in a coroutine scope
val joinedConference = VoxeetSDK.conference().join(conference).await()
dolbyio::comms::services::conference::conference_options options{};
    options.alias = "MyConference";
    sdk->conference()
        .create(options)
        .then([](dolbyio::comms::conference_info&& conf) {
          dolbyio::comms::services::conference::join_options opts{};
          opts.constraints.audio = true;
          opts.constraints.video = true;
          return sdk->conference().join(conf, opts);
        })
        .then([](auto&&) { std::cerr << "Joined conference!" << std::endl; })
        .on_error([](auto&&) { std::cerr << "Failure!" << std::endl; });
JoinOptions joinOpts = new JoinOptions();
joinOpts.Constraints.Audio = true;
joinOpts.Constraints.Video = true;

Conference joinedConference = await _sdk.Conference.JoinAsync(conference, joinOpts);
var joinOptions = ConferenceJoinOptions();

/// The ConferenceConstraints model sets the conference WebRTC constraints. The model allows 
    enabling and disabling the audio and video constraints
/// audio: Bool - Enables and disables the audio constraints.
  
/// video: Bool - Enables and disables the video constraints.

joinOptions.constraints = ConferenceConstraints(audio:true, video:true);

Conference conference = await _dolbyioCommsSdkFlutterPlugin.conference
            .join(conference, conferenceJoinOptions()));
const joinOptions: ConferenceJoinOptions = {
  constraints: {
    audio: true,
    video: false,
  },
};

const joinedConference = await CommsAPI.conference.join(conference, joinOptions);

Joining a conference using the conference ID

This approach allows creating a conference using the Create REST API. After creating the conference, a conference creator needs to provide the conference ID received from the platform to application users who should join the conference. Then, all participants need to call the fetch (Web, iOS, Android, Flutter, React Native) method to create the conference object out of the conference ID. In the case of the C++ and .NET SDK, it is possible without the fetch method.

const conference = await VoxeetSDK.conference.fetch(conferenceId);
VoxeetSDK.shared.conference.fetch(conferenceID: conferenceId) { conference in }
Conference conference = VoxeetSDK.conference().getConference(conferenceId);
val conference = VoxeetSDK.conference().getConference(conferenceId)
dolbyio::comms::conference_info conf{};
conf.id = conferenceId;
var conference = new Conference { Id = "ConferenceId" };
var conference = await _dolbyioCommsSdkFlutterPlugin.conference
        .fetch(conferenceId)
        .then((value) => { }
const conference = await CommsAPI.conference.fetch(conferenceId);

Then, participants need to call the join (Web, iOS, Android, C++, .NET, Flutter, React Native) method to the returned conference object to join the conference.

const constraints = {
    audio: true,
    video: true,
};
await VoxeetSDK.conference.join(conference, { constraints: constraints });
let joinOptions = VTJoinOptions()
joinOptions.constraints.audio = true
joinOptions.constraints.video = true

VoxeetSDK.shared.conference.join(conference: conference, options: joinOptions) { conference in
  // success
} fail: { error in
  // fail
}
boolean audio = true;
boolean video = false;

ConferenceJoinOptions joinOptions = new ConferenceJoinOptions.Builder(conference)
    .setConstraints(new Constraints(audio, video))
    // add other parameters
    .build();

VoxeetSDK.conference().join(joinOptions);
val audio = true
val video = false

val joinOptions = ConferenceJoinOptions.Builder(conference)
    .setConstraints(Constraints(audio, video))
    // add other parameters
    .build()

// in a coroutine scope
val joinedConference = VoxeetSDK.conference().join(joinOptions).await()
dolbyio::comms::conference_info conf{};
    conf.id = conferenceId;

    dolbyio::comms::services::conference::join_options opts{};
    opts.constraints.audio = true;
    opts.constraints.video = true;
    sdk->conference()
        .join(conf, opts)
        .then([](dolbyio::comms::conference_info&& conf) {
          std::cerr << "Joined conference, alias = " << conf.alias.value_or("") << std::endl;
        })
        .on_error([](auto&&) { std::cerr << "Failure!" << std::endl; });
JoinOptions joinOpts = new JoinOptions();
joinOpts.Constraints.Audio = true;
joinOpts.Constraints.Video = true;

Conference joinedConference = await _sdk.Conference.JoinAsync(conference, joinOpts);
var joinOptions = ConferenceJoinOptions();

/// The ConferenceConstraints model sets the conference WebRTC constraints. The model allows 
    enabling and disabling the audio and video constraints
/// audio: Bool - Enables and disables the audio constraints.
  
/// video: Bool - Enables and disables the video constraints.

joinOptions.constraints = ConferenceConstraints(audio:true, video:true);

Conference conference = await _dolbyioCommsSdkFlutterPlugin.conference
            .join(conference, conferenceJoinOptions()));
const joinOptions: ConferenceJoinOptions = {
  constraints: {
    audio: true,
    video: false,
  },
};

const joinedConference = await CommsAPI.conference.join(conference, joinOptions);