0

Вот что мне нужно сделать:Lync Клиент: Как зарегистрироваться в и Отправить сообщение

Мне нужно создать консольное приложение, которое знаки в (не используя текущего пользователя или Lync сеанса) к серверу Lync и отправьте сообщение конкретному контакту (userUri). Вот и все.

Однако каждый раз, когда я использую Microsoft.Lync.Model.LyncClient.GetClient(), кажется, что он возвращает текущую сессию. Я уже смог отправить сообщение, поэтому единственной проблемой является вход в систему без использования текущего пользователя/сеанса.

Как настроить новый?

Еще одна странная вещь, которую я заметил: я упомянул, что смог отправить сообщение через консольное приложение с моим текущим сеансом (сообщение отправляется моему коллеге и отображается). Однако, когда я получаю SignInConfiguration от LyncClient.SignInConfiguration, свойство UserName пустое, если я предполагаю, что он должен показывать мое имя пользователя/userAndDomain.

код ниже:

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 Client SDK? Lync Client SDK фактически не позволяет вам выполнять автономные функции, так как для этого требуется Lync Client. –

ответ

0

Пожалуйста Проверьте следующую ссылку, это объясняет, для Lync 2013, но я уверен, что то же самое можно с 2010 API также.

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

+0

спасибо, я уже это видел и имел некоторые проблемы с реализацией этого приложения в консоли. оцениваю ваш ответ хотя :) – AnimaSola

+0

Я действительно реализовал Lync SDK и получил этот сценарий исправлен, я отправлю вам код tdy –

+0

-1 для ответа только на ссылку. –

 Смежные вопросы

  • Нет связанных вопросов^_^