2014-03-06 56 views
2

我正嘗試在UI抑制模式下使用Lync 2013 sdk創建消息應用程序,我正在使用以下代碼向所有參與者發送消息談話,但我找不到一種方法發送消息給他們中的特定人,有誰知道如何做到這一點?發送IM消息給特定用戶在UI抑制模式下的對話Lync 2013 SDK

我的代碼:

public void StartIMConversation(string participantUri) 
     {   
      _Conversation.PropertyChanged += _Conversation_PropertyChanged; 
      _Conversation = _LyncClient.ConversationManager.AddConversation(); 
     } 

void ConversationsManager_ConversationAdded(Object source, ConversationManagerEventArgs data) 
     { 
      data.Conversation.ParticipantAdded += Conversation_ParticipantAdded; 
      data.Conversation.StateChanged += Conversation_StateChanged; 
data.Conversation.AddParticipant(_LyncClient.ContactManager.GetContactByUri(this.myRemoteParticipantUri)); 
data.Conversation.AddParticipant(_LyncClient.ContactManager.GetContactByUri(this.myRemoteParticipantUri2)); 
data.Conversation.AddParticipant(_LyncClient.ContactManager.GetContactByUri(this.myRemoteParticipantUri3)); 


    InstantMessageModality imModality = (InstantMessageModality)participant.Conversation.Modalities[ModalityTypes.InstantMessage]; 
          imModality.BeginSendMessage(message, SendMessageCallback, imModality); 

     } 
    private void SendMessageCallback(IAsyncResult ar) 
     { 
      InstantMessageModality imModality = (InstantMessageModality)ar.AsyncState; 

      try 
      { 
       imModality.EndSendMessage(ar); 
      } 
      catch (LyncClientException lce) 
      { 
       MessageBox.Show("Lync Client Exception on EndSendMessage " + lce.Message); 
      } 

     } 

如果不能使用對話,請指引我正確的方式來完成,任何幫助表示讚賞。

回答

2

沒有辦法在給定的對話中選擇IM的接收者。您最好的選擇可能是與您需要的參與者開始單獨的對話。

+0

我相信這不是性能優化,我會用它作爲最後的解決方案(如果我沒有找到另一種方法來解決它),謝謝@保羅。 – Anas

+0

我瞭解您的擔憂,但是Lync服務器仍可保持高性能,並擁有數千次開放式對話,並且客戶端對話的開銷極小。我認爲,即使這是一個功能(不是這樣),通過開始另一個對話很可能會起作用,因爲這基本上就是你想要做的。 –

1

我同意所選擇的答案......但是...當你正在寫一個UI抑制應用程序時,你可以使用一個單獨的IM對話(按照答案),然後以內聯方式呈現它。當你控制會議的顯示時,你可以根據需要顯示它,如果這真的是你想要做的。

+0

謝謝,其實這就是我做的解決方法。 – Anas

相關問題