如何将 Lync 2010 与执行数据库查找并显示一个小弹出窗口的程序集成,其中包含找到的信息,以及一些带有一些选项的按钮。
该程序已经在一些其他类型的电话系统上运行,我需要一个用于 Lync 的连接器。
我不想在 Lync 中放置选项卡或其他 UI。
1 回答
您需要从Lync SDK开始。您可以将您的应用程序构建为 Winforms 或 WPF 应用程序。
登录中
要连接并登录到正在运行的 Lync 实例,请从 SDK中查看此页面。确保保留对LyncClient
表示 Lync 的对象的引用。这可以通过调用静态方法得到LyncClient.GetClient()
检测来电
要检测来电,您可以监听ConversationManager.ConversationAdded
事件。ConversationManager
是您LyncClient
实例上的属性。
要确定呼叫是否是 a) 音频呼叫和 b) 传入(而不是用户发出的传出呼叫),您可以使用以下方法:
bool IsIncomingAVCall(Conversation conversation)
{
// Test to see if the call contains the AV modality
bool containsAVModality = conversation.Modalities.ContainsKey(ModalityTypes.AudioVideo);
if (containsAVModality)
{
// Get the state of the AV modality
var state = conversation.Modalities[ModalityTypes.AudioVideo].State;
// 'Notified' means the call is incoming
if (state == ModalityState.Notified) return true;
}
return false;
}
在ConversationAdded
活动中,您应该注册该Conversation.ParticipantAdded
活动,以便您可以检查来电者是谁。EventArgs 对象具有一个Participant
属性,而该属性又具有一个Contact
属性。该Contact
属性有许多属性,包括Uri
,它应该给你电话号码(如果你需要的话)。
然后,您可以拨打数据库电话并弹出您的信息。
编辑:我写了一篇关于屏幕弹出的博客文章,其中更详细 -这里
拨打电话
如果您的应用程序是 WPF,则允许发出呼叫的最简单方法是使用StartAudioCallButton控件。否则,此处的说明应该会有所帮助。