Клиент Lync: как войти в систему и отправить сообщение

Вот что мне нужно сделать:

Мне нужно создать консольное приложение, которое выполняет вход (без использования текущего пользователя или сеанса lync) на Lync Server и отправляет сообщение определенному контакту (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
                        );
                }

person AnimaSola    schedule 29.04.2013    source источник
comment
Рассматривали ли вы возможность использования UCWA для подключения к Lync Server вместо Lync Client SDK? Lync Client SDK на самом деле не предоставляет вам много автономных функций, поскольку для этого требуется клиент Lync.   -  person Guy Passy    schedule 21.10.2014


Ответы (1)


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

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

person Piyush Sardana    schedule 01.05.2013
comment
спасибо, я это уже видел, и у меня возникли проблемы с реализацией этого в консольном приложении. хотя ценю ваш ответ :) - person AnimaSola; 07.05.2013
comment
Я действительно внедрил Lync SDK и исправил этот сценарий, я пришлю вам код tdy - person Piyush Sardana; 09.05.2013