Как я могу интегрировать Lync 2010 с программой, которая ищет БД и показывает небольшое всплывающее окно, с найденной информацией и несколькими кнопками с некоторыми опциями.
Программа уже работает с некоторыми другими типами телефонных систем, мне нужен разъем для Lync.
Я не хочу помещать вкладку или другой пользовательский интерфейс внутри Lync.
Интеграция Lync 2010 с внешней программой
Ответ 1
Вам нужно начать с Lync SDK. Вы можете создать свое приложение как приложение Winforms или WPF.
Вход в систему
Чтобы подключиться и войти в работающий экземпляр Lync, откройте эту страницу из SDK. Убедитесь, что вы сохранили ссылку на объект LyncClient
который представляет Lync. Это можно получить, вызвав статический метод LyncClient.GetClient()
Обнаружение входящего звонка
Чтобы обнаружить входящий вызов, вы можете прослушать событие ConversationManager.ConversationAdded
. ConversationManager
- это свойство вашего экземпляра LyncClient
.
Чтобы определить, является ли вызов а) аудиовызовом и б) входящим (в отличие от исходящего вызова, сделанного пользователем), вы можете использовать следующий метод:
bool IsIncomingAVCall(Conversation conversation)
{
// Test to see if the call contains the AV modality
bool containsAVModality = conversation.Modalities.ContainsKey(ModalityTypes.AudioVideo);
if (containsAVModality)
{
// Get the state of the AV modality
var state = conversation.Modalities[ModalityTypes.AudioVideo].State;
// 'Notified' means the call is incoming
if (state == ModalityState.Notified) return true;
}
return false;
}
В событии ConversationAdded
вы должны зарегистрироваться в событии Conversation.ParticipantAdded
, чтобы вы могли проверить, кто является вызывающим абонентом. У объекта EventArgs есть свойство Participant
, которое, в свою очередь, имеет свойство Contact
. Свойство Contact
имеет ряд свойств, включая Uri
, который должен дать вам номер телефона (если это то, что вам нужно).
Затем вы можете позвонить в БД и получить информацию.
Редактировать: я написал пост в блоге о всплывающих окнах, который входит в гораздо более подробно - здесь
Размещение звонка
Если ваше приложение WPF, самый простой способ разрешить вызов - это использовать элемент управления StartAudioCallButton. В противном случае, инструкции здесь должны помочь.