2011-08-22 41 views
13

Làm cách nào để tích hợp Lync 2010, với một chương trình thực hiện tìm kiếm và hiển thị cửa sổ bật lên nhỏ, với thông tin được tìm thấy và một vài nút.
Chương trình đang chạy với một số loại hệ thống điện thoại khác, tôi cần có trình kết nối cho Lync.
Tôi không muốn đặt tab hoặc giao diện người dùng khác bên trong Lync.Tích hợp Lync 2010 với một chương trình bên ngoài

+0

Có lẽ đây là ứng dụng loại màn hình-pop - tức là nó phát hiện cuộc gọi âm thanh đến, sau đó bật lên thông tin về người gọi? –

+0

Vâng, chính xác. Và nó cũng cho phép người dùng gọi ra từ một danh sách, xuất phát từ DB. Cuộc gọi này sẽ được gửi tới Lync, sau đó thực hiện cuộc gọi. – Martin

+0

Tôi chỉ thấy rằng ví dụ trong SDK 2010, AudioVideoConversation, là khá nhiều làm những gì tôi muốn, tôi sẽ điều tra nó. – Martin

Trả lời

21

Bạn cần bắt đầu với số Lync SDK. Bạn có thể xây dựng ứng dụng của mình dưới dạng ứng dụng Winforms hoặc WPF.

Ký Trong

Để kết nối và đăng nhập vào các trường hợp chạy của Lync, hãy kiểm tra this page từ SDK. Đảm bảo bạn giữ tham chiếu đến đối tượng LyncClient đại diện cho Lync. Điều này có thể nhận được bằng cách gọi phương thức tĩnh LyncClient.GetClient()

Phát hiện một cuộc gọi đến

Phát hiện cuộc gọi đến, bạn có thể nghe cho sự kiện ConversationManager.ConversationAdded. ConversationManager là thuộc tính trên cá thể LyncClient của bạn.

Để xác định nếu cuộc gọi là a) một cuộc gọi âm thanh, và b) đến (như trái ngược với một cuộc gọi đi đặt bởi người sử dụng), bạn có thể sử dụng các phương pháp sau đây:

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

Trong trường hợp ConversationAdded , bạn nên đăng ký sự kiện Conversation.ParticipantAdded để bạn có thể kiểm tra ai là người gọi. Đối tượng EventArgs có thuộc tính Participant, lần lượt có thuộc tính Contact. Các tài sản Contact có một số tài sản bao gồm Uri, mà sẽ cung cấp cho bạn số điện thoại (nếu đó là những gì bạn cần).

Sau đó, bạn có thể thực hiện cuộc gọi DB và bật thông tin của mình.

Edit: Tôi đã viết một bài đăng blog về pops màn hình mà đi vào chi tiết nhiều hơn nữa - here

Đặt một cuộc gọi

Nếu ứng dụng của bạn là WPF, cách dễ nhất để cho phép một cuộc gọi được đặt là bằng cách sử dụng điều khiển StartAudioCallButton. Nếu không, hướng dẫn here sẽ hữu ích.

+0

Tuyệt vời! Tôi sẽ thử các đề xuất của bạn và cũng xem xét kỹ hơn ví dụ về AudioVideoConversation. – Martin

+0

Tuyệt vời! Đừng quên đánh dấu câu trả lời (sử dụng dấu tích) nếu điều này giải quyết được vấn đề của bạn, để giúp bất kỳ ai khác duyệt câu hỏi này sau - chúc mừng –

+0

Có thể mất một hoặc ba ngày để đến đó, nhưng tôi sẽ nhớ. Cảm ơn bạn đã dành thời gian. – Martin

Các vấn đề liên quan