检测在传入会议上连接哪些 MCU
Posted
技术标签:
【中文标题】检测在传入会议上连接哪些 MCU【英文标题】:Detecting which MCUs to connect on an incoming conference 【发布时间】:2010-04-07 20:33:05 【问题描述】:所以。我正在使用 OCS UCCAPI,开发自定义 OCS 客户端。
我目前很难确定我的客户被邀请参加哪种“类型”的会议。使用 Office Communicator 客户端,我可以开始“IM 会议”(邀请超过 1 人并选择“开始 IM 对话”)或“视频会议”(通过选择超过 1 人并选择“开始视频通话”) . Office Communicator 客户端在受邀者端正确启动适当的会话(仅 IM、仅视频或 IM+视频)。
但是,在我的自定义客户端上收到会议邀请时,没有关于我被邀请的会话类型的数据。我需要这些信息来决定是否连接到 AV MCU 并捕获/显示视频。
我已经试过了:
在处理_IUccSessionManagerEvents.OnIncomingSession
时,解析UccIncomingInvitationEvent
对象上的RemoteSessionDescription
属性:不走运,有关会议模式的唯一数据是XML 上有关是否启用IM 的元素(@ 987654326@ 或 <im available="false">
),但没有关于会议是否有视频可用的信息。
在处理_IUccConferenceSessionEvents.OnEnter
时,请检查UccConferenceSession
上的Media
属性。不工作,所有媒体类型都存在(MESSAGE、AUDIO、VIDEO、DATA e TELEPHONY),无论我被邀请的会议类型如何。
此外,在处理_IUccConferenceSessionEvents.OnEnter
时,检查UccConferenceView
对象上的Entities
集合,以检查哪些MCU 已为本次会议启用。也不行,所有 MCU 都列为可用(IM、AV、DATA 和 CONTROL),无论我被邀请的会议类型如何。
我的想法已经不多了。
我正在使用的一些参考资料:
http://msdn.microsoft.com/en-us/library/bb664307.aspx http://msdn.microsoft.com/en-us/library/dd170830.aspx非常感谢。
【问题讨论】:
据我了解,您使用的是 UCC API 的 COM 对象,实际上没有 UCMA? @AOI 没错,我在 C# 上通过 COM 互操作使用 UCC API。 AFAIK,UCMA 不是编写新 OCS 客户端的推荐方法。但是,任何关于如何解决我的问题的提示都会有所帮助,即使是 UCMA 示例。 我只是想确定一下,因为我根本没有接触过 UCMA。然而。 【参考方案1】:好吧,在我的自定义客户端中,我得到了这样的东西:
void _IUccSessionManagerEvents.OnIncomingSession(IUccEndpoint eventSource, UccIncomingSessionEvent eventData)
// Handle incoming IM session
if (eventData.Session.Type == UCC_SESSION_TYPE.UCCST_INSTANT_MESSAGING)
// ...
else if (eventData.Session.Type == UCC_SESSION_TYPE.UCCST_AUDIO_VIDEO)
// ... check here first if it's audio only or av...
// ...
【讨论】:
该测试适用于 P2P 对话,但不适用于会议:在您的示例中,会议是第三种会话,eventData.Session.Type == UCC_SESSION_TYPE.UCCST_APPLICATION
。见msdn.microsoft.com/en-us/library/bb664307(v=office.12).aspx。我的问题是,一旦我获得应用程序会话并提取会议信息(焦点 URI、可用的 MCU 等),我无法区分“仅 IM 会议”和“IM 加 AV 会议”。
以上是关于检测在传入会议上连接哪些 MCU的主要内容,如果未能解决你的问题,请参考以下文章
Linux + Apache 检测每个 Vhosts 的连接数?