microsoftgraph / microsoftgraph/microsoft-graph-comms-samples

Invalid Participant Removed Update from Large Gallery Participant

Open
#763 10 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
253
Forks
275
Avg merge
1d 5h
Merged PRs (30d)
1

Description

Following Scenario causes an issue in policy recording solutions with large gallery I am currently working on:

Initial situation without bot
We have a meeting with 12 participants all main video enabled streaming an image into the meeting, without large gallery in use.

Joining situation of the bot

  • Now we add the bot into the meeting either by policy, with an additional user under compliance recording policy, or manually via ICommunicationsClient.Add()-method.
  • The bot establishes the call to the meeting. (It also waits that the call has state established)
  • [The bot sets recording status] // Optional
  • The bot uses the ICall.AddLargeGalleryAsync()-method to add the large gallery into the meeting.
  • The bot receives a participant collection update that a large gallery participant was added(the large gallery participant that was added has a main video media stream with direction SendReceive and is sending a valid video)
  • The bot receives a participant collection update that another large gallery participant was added(this large gallery participant has IsOnHold-Property set to true and the video media stream is set to ReceiveOnly)
  • The bot receives a participant collection update that the large gallery participant that is sending video was removed from the participant collection.
  • [If we try to readd the large gallery we get error code 400, large gallery already added] // Optional

Workarround to receive large gallery video, after the large gallery that is sending was removed
To still receive large gallery video we can keep a video socket subscription to the msi that was sending the large gallery video, even after the large gallery participant, from which we got the msi we are subscribed to, was removed from the participant collection.

Summary
The bot receives the notification that LargeGallery was removed from the participant collection of a call but can still receive the large gallery video of the removed large gallery participant.

Example Call ID
1c003a80-15dc-43de-ae37-1c87d2580c93

I do not want to share any more logs as they might expose data that I do not want to share in public.

@samarthasthana
@Hunterjet
@ssulzer

Can you please explain why the initial LargeGallery participant is leaving the call?
A proper solution would be greatly appreciated, as the current workaround seems very unstable and adds a lot of difficult to understand code paths for just recording a simple LargeGallery participant.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the call flow around ICommunicationsClient.Add() and ICall.AddLargeGalleryAsync(), then inspect participant collection updates, IsOnHold, and video stream direction. Use the example call ID and the described workaround as reproduction evidence. Done means explaining why the sending LargeGallery participant is removed and establishing a stable resolution or documented behavior.

Written by the indexing model from the issue text.

Assessment

Domain
audio-video-rtc
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.