Вот что мне нужно сделать: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
);
}
Рассматривали ли вы с помощью UCWA для подключения к Lync Server вместо Lync Client SDK? Lync Client SDK фактически не позволяет вам выполнять автономные функции, так как для этого требуется Lync Client. –