Lync Client: как войти и отправить сообщение

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

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

1 ответ

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

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

Другие вопросы по тегам