Session and Client Identification

A session is responsible for a connection between a client application and the Communications APIs Platform. A client application can connect to the platform only after providing the local users's identification information and opening a session. The following optional information can be provided by an application via the open method (Web, iOS, Android, C++, .NET, Flutter, React Native) to help uniquely identify an application user:

  • An external name
  • An external ID
  • An external avatar URL
  name: externalName,
  externalID: externalID,
  avatarUrl: url
let participantInfo = VTParticipantInfo(
    externalID: "external ID",
    name: "external name",
    avatarURL: "external avatar URL"
) participantInfo) { error in
    // The block to execute when the query completes.
ParticipantInfo participantInfo = new ParticipantInfo(userName, externalId, avatarUrl);

Promise<Boolean> promise = VoxeetSDK.session().open(participantInfo);
// in a coroutine scope
val participantInfo = ParticipantInfo(userName, externalId, avatarUrl)

val opened = VoxeetSDK.session().open(participantInfo).await()
dolbyio::comms::services::session::user_info user; = "User";
    user.avatarUrl = "...";
    user.externalId = "...";
        .then([](auto&& new_user_info) {
          std::cerr << "user ID = " << new_user_info.participant_id.value() << std::endl;
        .on_error([](auto&& err) { std::cerr << "Can not log in!" << std::endl; });
DolbyIOSDK sdk = new DolbyIOSDK();

UserInfo user = new UserInfo();
user.Name = "My Name";
user.ExternalId = "External identifier";
user.AvatarURL = "";

await sdk.Session.OpenAsync(user);
var participantInfo = ParticipantInfo(
    "name": name, 
    "avatarUrl": avatarUrl, 
    "externalId": externalId
var participantInfo: ParticipantInfo = {
  "name": name, 
  "avatarUrl": avatarUrl, 
  "externalId": externalId


Client identification

The external ID allows an application to establish a unique identifier for each participant. This ID can be a free-form string with a limit of 1,024 bytes. This flexible scheme allows adding supplementary metadata information to the local participant's identity in the application. If you do not provide an external ID, you can still initiate a session but cannot verify the participant's identity in a conference.

The identification information provided before opening a session becomes a part of ParticipantInfo (Web, iOS, Android, C++, .NET, Flutter, React Native) and is available to all remote participants.

Privacy considerations

After a conference, the supplied external name, external ID, and avatar URL are stored in the Communications API Platform and are available to customers through the Monitor API for troubleshooting and data analysis purposes. If end-user privacy is critical for you to ensure HIPAA compliance and you do not wish to share Personal Identifiable Data (PID) with, then use only an anonymized ID as the external ID and an anonymized name as the external name. Doing so guarantees that will never know who the end user is. This also means that your application needs to be responsible for managing the mapping of the end user's human-readable identity, such as the user name to the participant ID.