2011-08-22 93 views
13

如何将Lync 2010与执行数据库查找并显示小型弹出窗口的程序(包含找到的信息)以及一些带有某些选项的按钮进行集成。
程序已经在运行一些其他类型的电话系统,我需要一个Lync连接器。
我不想在Lync中放置选项卡或其他UI。将Lync 2010与外部程序集成

+0

大概这是一个屏幕弹出类型的应用程序 - 即它检测到传入的音频呼叫,然后弹出关于呼叫者的信息? –

+0

是的,确切地说。而且它还允许用户从源自DB的列表中调出。此呼叫应发送给Lync,然后发出呼叫。 – Martin

+0

我刚才看到2010 SDK中的例子AudioVideoConversation几乎做我想做的事,我会调查它。 – Martin

回答

21

您需要以Lync SDK开头。您可以将您的应用程序构建为Winforms或WPF应用程序。

登录

连接并登录到Lync的运行实例,从SDK退房this page。确保您保留对表示Lync的LyncClient对象的引用。这可以通过调用静态方法LyncClient.GetClient()

检测来电

为了检测来电来了,你可以听为ConversationManager.ConversationAdded事件。 ConversationManager是您的LyncClient实例的财产。

为了确定该呼叫是否是一个)的音频呼叫,以及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,它应该给你的电话号码(如果这是你所需要的)。

然后,您可以进行数据库调用并弹出您的信息。

编辑:我写了一个博客文章屏幕弹出其进入更多的细节 - here

将呼叫

如果你的应用程序是WPF,允许最简单的方法要放置的呼叫是使用StartAudioCallButton控件。否则,说明here应该有所帮助。

+0

太棒了!我会尝试您的建议,并深入了解AudioVideoConversation示例。 – Martin

+0

太棒了!如果这能解决您的问题,请不要忘记标记为答案(使用勾号),以帮助其他人浏览此问题 - 欢呼 –

+0

到达目的地可能需要一天或三天的时间,但我会记住。感谢您的时间。 – Martin