Вам нужно будет начать с Lync SDK .Вы можете создать свое приложение как приложение Winforms или WPF.
Вход в систему
Чтобы подключиться и выполнить вход в работающий экземпляр Lync, проверьте thisстраница из 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 .В противном случае инструкции здесь должны помочь.