Lync 2013 客户端,当 2 个传入 AV 呼叫时,ExtensibilityWindow 未打开
Posted
技术标签:
【中文标题】Lync 2013 客户端,当 2 个传入 AV 呼叫时,ExtensibilityWindow 未打开【英文标题】:Lync 2013 client, ExtensibilityWindow does not open when 2 incoming AV calls 【发布时间】:2015-03-16 16:56:06 【问题描述】:我在使用 Lync2013 Client SDK 时遇到了一些问题。这是一件小事,但在我看来它应该可以工作。
我正在创建一个应用程序,它使用 ExtensibilityWindow 显示调用者的一些数据。在应用程序启动时,我注册应用程序等并在接受的呼叫时,程序在 ConversationWindow 上调用 BeginOpenExtensibilityWindow。这在几乎所有情况下都可以正常工作。但是,正如我现在所知道的那样,有一种特定情况下这不起作用:当一个新的传入 AV 呼叫出现时,同时有一个活动的(onHold 与否无关紧要)传入呼叫。
(所以调用者 A 给我打电话,我接听,在通话期间,调用者 B 给我打电话。然后函数 BeginOpenExtensibilityWindow 什么都不做)
如果其中一个是出站的,则没有问题,但是当两个都是入站时,对 BeginOpenExtensibilityWindow 的调用会通过而无需执行任何操作。 EndOpenExtensibilityWindow 不会引发任何错误,它只是通过了。
为了找出问题所在,我尝试了以下方法:
没有缓存检索到的 ConversationWindow:每次我需要它时,我都会调用 Automation.GetConversationWindow(conversation)
延迟调用 BeginOpenExtensibilityWindow:启动后台线程,连接后等待 5 秒再调用。
在 BeginOpenExtensibilityWindow 之前调用 CloseExtensibilityWindow
我发现:在 BeginOpenExtensibilityWindow 之前调用 CloseExtensibilityWindow 时,第一次对话引发错误。然而,第二个不会,而是调用 CloseExtensibilityWindow 关闭第一个对话的可扩展性窗口!!!我绝对 100% 确定我正在通过调用automation.GetConversationWindow(_conversation) 来检索对第二个窗口的引用,而“_conversation”是第二个调用!
所以可以肯定的是,我记录了对窗口的每次调用,如下所示:
internal ConversationWindow ConversationWindow
get
_window = _automation.GetConversationWindow(_conversation);
debugA.Add(string.Format("ConvId: 0, WinHandle: 1", _conversation.Properties[Microsoft.Lync.Model.Conversation.ConversationProperty.Id], _window.Handle));
return _window;
debugA 是一个静态列表,
当然,唉...,conversationId一直是空的(问题的根源??)所以我把它切换到_conversation.GetHashCode(),然后debugA的内容是:
ConvId:21950498,WinHandle:1902160
...还有一些...
ConvId:13391695,WinHandle:1902160
...还有一些...
显然,自动化为不同的对话返回相同的句柄!同样,这仅适用于两个传入的 AV 呼叫,IM 工作正常且没有混淆引用。
在我看来这像是一个错误……但我不是专家……
任何帮助,不胜感激!
【问题讨论】:
【参考方案1】:忘了提,这是一个错误,微软修复了它: Lync 2013 (Skype for Business) 的 2015 年 9 月 8 日安全更新 (KB3085500)
【讨论】:
以上是关于Lync 2013 客户端,当 2 个传入 AV 呼叫时,ExtensibilityWindow 未打开的主要内容,如果未能解决你的问题,请参考以下文章
Lync Server 2013 共享PPT经过一段时间报演示错误(ID3240261045)
尝试在 Lync 2013 中接受音频呼叫时出现 System.UnauthorizedAccessException
如何在使用 Lync Client API 2010 拒绝后接受传入的视频呼叫?
配置Lync 2013/Skype for Business 2015/Skype for Business 2019联盟用户模糊搜索