C# MS Teams Calling Bot:当启用视频的用户数超过8时,Bot将断开与团队呼叫的连接

C# MS Teams Calling Bot:当启用视频的用户数超过8时,Bot将断开与团队呼叫的连接,c#,botframework,microsoft-graph-sdks,microsoft-graph-teams,microsoft-graph-cloudcommunications,C#,Botframework,Microsoft Graph Sdks,Microsoft Graph Teams,Microsoft Graph Cloudcommunications,我们正在使用基于示例(AudioVideoPlaybackBot)的Microsoft呼叫机器人框架。Bot处理MS团队呼叫,检索音频和视频流,并将数据重新传输到外部应用程序进行实时处理。当我们用很少的用户测试我们的应用程序时,一切都很好。当同时连接到同一团队的呼叫数量超过8个启用摄像机的用户时,bot将断开与呼叫的连接。问题似乎与视频插座有关,因为没有视频,一切都正常。 当收到OnDominantSpeakerChanged通知时,我们尝试只订阅当前参与者视频,并取消订阅前一个演讲者视频,因此

我们正在使用基于示例(AudioVideoPlaybackBot)的Microsoft呼叫机器人框架。Bot处理MS团队呼叫,检索音频和视频流,并将数据重新传输到外部应用程序进行实时处理。当我们用很少的用户测试我们的应用程序时,一切都很好。当同时连接到同一团队的呼叫数量超过8个启用摄像机的用户时,bot将断开与呼叫的连接。问题似乎与视频插座有关,因为没有视频,一切都正常。 当收到OnDominantSpeakerChanged通知时,我们尝试只订阅当前参与者视频,并取消订阅前一个演讲者视频,因此只使用1个视频插座,但没有帮助

private void OnDominantSpeakerChanged(object sender, DominantSpeakerChangedEventArgs e)
        {
            this.GraphLogger.Error($"[{this.Call.Id}:OnDominantSpeakerChanged(DominantSpeaker={e.CurrentDominantSpeaker}, LastSpeaker = {e.DominantSpeakerHistory.LastOrDefault()})]");

            if (e.CurrentDominantSpeaker != DominantSpeakerNone)
            {
                IParticipant participant = this.GetParticipantFromMSI(e.CurrentDominantSpeaker);
                var participantDetails = participant?.Resource?.Info?.Identity?.User;

                var oldParticipantMsi = e.DominantSpeakerHistory.LastOrDefault();
                IParticipant oldParticipant = this.GetParticipantFromMSI(oldParticipantMsi);


                GraphLogger.Log(TraceLevel.Info, $"OnDominantSpeakerChanged.  participant?.Resource?.Info?.Identity?.User?.Id is {participantDetails?.Id}. oldParticipantUserId is {oldParticipant?.Resource?.Info?.Identity?.User?.Id}");
                if (participantDetails != null && participantDetails?.Id != _currentUserId)
                {
                    _currentUserId = participant?.Resource?.Info?.Identity?.User?.Id;
                    // we want to force the video subscription on dominant speaker events
                    this.SubscribeToParticipantVideo(participant, forceSubscribe: true);
                    GraphLogger.Log(TraceLevel.Info, $"OnDominantSpeakerChanged. UnsubscribeFromParticipantVideo. oldParticipantMsi = {oldParticipantMsi}, e.CurrentDominantSpeaker = {e.CurrentDominantSpeaker}");

                    if (oldParticipant != default && oldParticipantMsi != e.CurrentDominantSpeaker)
                    {
                        GraphLogger.Log(TraceLevel.Info,$"OnDominantSpeakerChanged. UnsubscribeFromParticipantVideo. ");
                        this.UnsubscribeFromParticipantVideo(oldParticipant);
                    }
                }
            }
        }

我们预计,当超过8个用户启用了视频时,bot不会断开与通话的连接。此外,我们只需要来自当前主要扬声器的一个视频流。 在断开bot连接之前,日志未显示任何错误或异常

8个视频流的限制是否与Bot框架相关?还是我们在代码中犯了一些错误?这对我们来说非常重要,因为这个问题正在阻止我们投入生产。如果需要更多细节,请告诉我