2013-04-29 30 views
0

這是我需要做的:Lync客戶端:如何登錄和發送短消息

我需要建立一個控制檯應用程序,體徵(不使用當前用戶或Lync會議)到的Lync Server和發送消息給特定聯繫人(userUri)。就這些。

但是,每次使用Microsoft.Lync.Model.LyncClient.GetClient()時,它似乎都會返回當前會話。我已經能夠發送消息,所以唯一的問題是在不使用當前用戶/會話的情況下登錄。

如何設置新的?

我注意到另一個奇怪的事情:我提到我能夠通過控制檯應用程序發送消息與我當前的會話(消息發送給我的同事並顯示)。但是,當我從LyncClient.SignInConfiguration獲得SignInConfiguration時,如果我假定它顯示我的用戶名/ userAndDomain,則UserName屬性爲空。下面

代碼:

lyncClient = Microsoft.Lync.Model.LyncClient.GetClient();    

       if (lyncClient == null) 
       { 
        Console.WriteLine("Unable to obtain client interface"); 
       } 
       if (lyncClient.InSuppressedMode == true) 
       { 
        Console.WriteLine("Lync is uninitialized"); 
       } 

       if (lyncClient.State == ClientState.SignedIn) 
       { 
        Console.WriteLine("Lync is signed in"); 
       } 
       else 
       { 
        Console.WriteLine("Lync is NOT signed in"); 
       } 

       SignInConfiguration config = lyncClient.SignInConfiguration; 

       internalUrl = config.InternalServerUrl; 
       externalUrl = config.ExternalServerUrl; 
       signedInFromIntranet = config.SignedInFromIntranet.ToString(); 
       signedInAvailability = config.SignInAsAvailability.ToString(); 
       signedInAutoRetry = config.SignInAutoRetry.ToString(); 
       signedInUser = config.UserName; 

       Console.WriteLine("Internal Url: " + internalUrl); 
       Console.WriteLine("External Url: " + externalUrl); 
       Console.WriteLine("Signed-in from Intranet: " + signedInFromIntranet); 
       Console.WriteLine("Signed-in as availability: " + signedInAvailability); 
       Console.WriteLine("Signed-in as auto-retry: " + signedInAutoRetry); 
       Console.WriteLine("Signed-in User: " + signedInUser); 

       conversation = lyncClient.ConversationManager.AddConversation(); 
       conversation.AddParticipant(lyncClient.ContactManager.GetContactByUri(recipientUri)); 

       if (((Microsoft.Lync.Model.Conversation.InstantMessageModality)conversation.Modalities[Microsoft.Lync.Model.Conversation.ModalityTypes.InstantMessage]).CanInvoke(Microsoft.Lync.Model.Conversation.ModalityAction.SendInstantMessage)) 
       { 
        ((Microsoft.Lync.Model.Conversation.InstantMessageModality)conversation.Modalities[Microsoft.Lync.Model.Conversation.ModalityTypes.InstantMessage]).BeginSendMessage(
         message, 
         null, 
         null 
         ); 
       } 
+1

你有沒有使用UCWA連接到您的Lync Server,而不是Lync客戶端SDK考慮?由於Lync Client SDK需要Lync Client,因此Lync Client SDK實際上並不允許您使用很多獨立功能。 – 2014-10-21 11:41:04

回答

0

請檢查下面的鏈接,這說明爲Lync 2013,但我相信同樣可以與2010年的API也。

http://msdn.microsoft.com/en-us/library/lync/jj937241.aspx

+0

謝謝,我已經看到,已經有一些問題在控制檯應用程序上實現。感謝您的回覆,雖然:) – AnimaSola 2013-05-07 02:22:45

+0

我實際上已經實施Lync SDK,並得到了這種情況下糾正,我會發送你的代碼tdy – 2013-05-09 06:49:36

+0

-1爲一個鏈接唯一的答案。 – 2014-05-22 20:53:32

相關問題