我对 Lync 2013 SDK 相当陌生(现在已经使用了几个星期)并且已经能够弄清楚我需要的几乎所有东西,除了这个......
当我加入一个会议(使用 ConversationManager.JoinConference())时,它可以正常加入。但是,在某些情况下(不是全部),我想在会议上连接 AVModality。有时它可以工作,有时它只是位于“正在连接”中并且从不连接(即使我已经调用了 EndConnect)。
我发现 Skype 的选项 -> Skype 会议 -> 加入电话会议部分中的设置似乎覆盖了我的代码。也许是比赛条件?
当设置为“不加入音频”和“在我加入会议之前,询问我要使用哪个音频设备”时未选中(意味着我加入时没有提示):会议加入,AVModality 断开连接 ->连接 -> 断开连接。然后我的代码触发 BeginConnect 并且 AVModality 断开连接 - > 连接 - 并且永远不会解决(有时我会听到快速忙音音频)。
当“在我加入会议之前,询问我要使用哪个音频设备”被选中时(意味着我收到提示):会议加入,提示询问如何连接,如果我选择 Skype for business - 它连接音频正常(预期的)。有趣的是,如果我使用 Lync UI 挂断电话(AVModality 转为断开连接),它会立即重新连接(假设我的 BeginConnect 这样做)。
这是真正令人费解的地方:如果我在 ModalityStateChanged 事件处理程序中的 AVmodality 上的状态为 Connecting 时调用 BeginConnect ......会发生以下情况:会议加入,提示询问我如何连接(此时 AVmodality 状态为“正在连接”直到根据提示做出决定)-这意味着我的 BeginConnect 触发。然后,如果我在提示中选择“不加入音频”... AVModality 状态变为 Connecting -> Disconnected -> Connecting -> Joining -> Connected。所以 - 我的 BeginConnect 已经在进行中并且在这种情况下仍然可以工作,只要它在选择“不加入音频”之前触发。
所以我想知道“不加入音频”选择(无论是否有提示)实际上是否在某些东西上设置了一些其他属性,从而阻止 AVModality 在那之后连接而不做一些额外的恶作剧?如果是这样 - 我想知道我需要执行的额外恶作剧:)
感谢您的任何帮助!