2011-08-22 18 views
13

W jaki sposób mogę zintegrować program Lync 2010 z programem, który wyszukuje bazę danych i pokazuje małe wyskakujące okienko z znalezionymi informacjami, a także kilka przycisków z niektórymi opcjami.
Program jest już uruchomiony z niektórymi innymi typami systemów telefonicznych, potrzebuję w tym celu złącza dla Lync.
Nie chcę umieszczać karty lub innego interfejsu w programie Lync.Integracja programu Lync 2010 z zewnętrznym programem

+0

Prawdopodobnie jest to aplikacja typu "pop-ekran" - tzn. Wykrywa przychodzące połączenie audio, a następnie wyświetla informacje o dzwoniącym? –

+0

Tak, dokładnie. Umożliwia także użytkownikowi wywoływanie z listy, która pochodzi z DB. To połączenie powinno zostać wysłane do Lync, które następnie wywołuje połączenie. – Martin

+0

Właśnie zobaczyłem, że przykład w 2010 SDK, AudioVideoConversation, prawie robi to, co chcę, będę badać to. – Martin

Odpowiedz

21

Musisz zacząć od Lync SDK. Możesz zbudować swoją aplikację jako aplikację WinForm lub WPF.

logowaniem

Aby połączyć i zalogować się do działającej instancji Lync, sprawdź this page z SDK. Upewnij się, że odwołujesz się do obiektu LyncClient, który reprezentuje Lync. To może być, ale poprzez wywołanie statycznej metody LyncClient.GetClient()

wykrycia połączenia przychodzącego

celu wykrycia połączenia przychodzącego można wykrywać zdarzenie ConversationManager.ConversationAdded. ConversationManager to właściwość w instancji LyncClient.

Aby ustalić, czy połączenie jest a) audio wezwanie, oraz b) przychodzące (w przeciwieństwie do połączenia wychodzącego umieszczony przez użytkownika) można wykorzystać następujące metody:

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; 
} 

W przypadku ConversationAdded , powinieneś zarejestrować się w wydarzeniu Conversation.ParticipantAdded, abyś mógł sprawdzić, kto jest dzwoniącym. Obiekt EventArgs ma właściwość Participant, która z kolei ma właściwość Contact. Właściwość Contact ma wiele właściwości, w tym Uri, które powinny podać numer telefonu (jeśli jest to potrzebne).

Następnie można wykonać połączenie DB i pop swoje informacje.

Edit: pisałem posta na blogu o wyskakuje ekran, który przechodzi w bardziej szczegółowo - here

nawiązaniem połączenia

Jeśli aplikacja jest WPF, najprostszym sposobem, aby umożliwić wywołanie, które należy umieścić, odbywa się za pomocą kontrolki StartAudioCallButton. W przeciwnym razie pomocne powinny być instrukcje: here.

+0

Fantastyczne! Wypróbuję Twoje sugestie, a także przyjrzę się dokładniej przykładowi AudioVideoConversation. – Martin

+0

Awesome! Nie zapomnij oznaczyć jako odpowiedzi (za pomocą kleszczy), jeśli to rozwiąże Twój problem, aby pomóc komukolwiek, kto przegląda to pytanie później - okrzyki –

+0

Może zająć dzień lub trzy, ale będę pamiętać. Dziękuję za Twój czas. – Martin

Powiązane problemy