2011-08-22 91 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