这是我的问题: 我从3个月开始从事大型UCMA项目,现在我想添加一些小功能。
我有很多可以动态添加,修改或删除的ApplicationEndpoints,我希望每次创建ApplicationEndpoint时都指定一个将在Microsoft Lync上显示的图片。
我已经有很多其他的功能,但我真的很喜欢这个。
我搜索了几天,但在告诉自己无法完成之前我没有找到任何东西,我想问一下!
有谁知道这是否可能?在那种情况下,你能告诉我这样做的方法吗?
谢谢
答案 0 :(得分:1)
迟到总比没有好,但这可能对某人有所帮助。
我不确定这是否可以用于应用程序端点,但您可以确定发布用户端点的照片设置(我已经完成了这个并且它可以工作)。有关发布状态的一些基本信息可以在MSDN上找到:Publishing Presence。
在LocalEndpoint.LocalOwnerPresence
上发布在线状态信息(包括照片设置)。 UserEndpoint
和ApplicationEndpoint
都来自LocalEndpoint
,所以这应该是可行的。
实际发布稍微复杂一些,因为要发布的“级别”有很多不同的组合:
首先,您需要了解一堆InstanceID
值,请在此处阅读:Presence data source and category instance ID
其次,这种存在适用于哪个值,请参阅Microsoft.Rtc.Collaboration.Presence.PresenceRelationshipLevel
。不要在Unknown
上发布,您将获得例外。
public enum PresenceRelationshipLevel
{
Unknown = -1,
Everyone = 0,
External = 100,
Colleagues = 200,
Workgroup = 300,
Personal = 400,
Blocked = 32000,
}
您需要为用户照片属性发布PresenceCategoryWithMetaData
,该属性是容器0x5
的一部分,“现状信息”。
var photoPresence = new PresenceCategoryWithMetaData(
0x5, // The container id
(int)PresenceRelationshipLevel.Everyone,
new ContactCard(0x5) // Same container ID again
{
IsAllowedToShowPhoto = true,
PhotoUri = "<uri to your photo here"
});
您也可以在此对象上设置ExpiryPolicy
,应该是自我解释的。然后在端点上发布此状态对象:
Endpoint.LocalOwnerPresence.BeginPublishPresence(new[] { photoPresence }, cb => {
Endpoint.LocalOwnerPresence.EndPublishPresence(cb);
}, null);
那应该这样做,真的。我最终明确发布到所有关系级别,因为它没有按逻辑预期级联数据。这变成了相当冗长的回复,也是为了我将来的参考。如果这适用于应用端点,请告诉我。
答案 1 :(得分:0)
很确定你不能这样做。因为它是一个应用程序端点,根据定义它与任何一个特定用户无关。这肯定会很好。 :)