Lync

2012-02-09 5 views
6

में आने वाली कॉल का पता लगाना मैं Lync क्लाइंट में आने वाली कॉल का पता लगाने की कोशिश कर रहा हूं। यह वार्तालाप प्रबंधक की सदस्यता के द्वारा किया जाता है। रूपांतरण this postLync

हालांकि, इस विधि का उपयोग करके मैं आने वाली कॉल का पता लगाने में सक्षम नहीं हूं अगर कॉलर के साथ वार्तालाप विंडो पहले से ही कॉलर से पहले खुलती है बुला रहा है। उदाहरण के लिए यदि मैं किसी मित्र के साथ चैट कर रहा हूं और इसलिए एक खुली बातचीत विंडो है और यह मित्र मुझे कॉल करने का निर्णय लेता है, तो वार्तालाप जोड़ा गया ईवेंट ट्रिगर नहीं होता है।

कॉलर के साथ पहले से सक्रिय बातचीत होने पर मैं आने वाली कॉल का पता कैसे लगाऊंगा?

धन्यवाद, Nicklas

उत्तर

5

आप Conversation.Modalities [ModalityTypes.AudioVideo], इस आप घटनाओं जब ए वी साधन बनाया है या परिवर्तन राज्य है दे देंगे पर ModalityStateChanged घटना की सदस्यता चाहिए।

8

आपको वार्तालाप पर विधियों के राज्यों की निगरानी करने की आवश्यकता है। दो तो उपलब्ध तौर तरीकों आईएम और ए वी कर रहे हैं, ताकि आप तो की तरह, इन पर राज्य में परिवर्तन के लिए देखने के लिए की आवश्यकता होगी: तो

void ConversationManager_ConversationAdded(object sender, Microsoft.Lync.Model.Conversation.ConversationManagerEventArgs e) 
{ 
    e.Conversation.Modalities[ModalityTypes.InstantMessage].ModalityStateChanged += IMModalityStateChanged; 
    e.Conversation.Modalities[ModalityTypes.AudioVideo].ModalityStateChanged += AVModalityStateChanged; 
} 

void IMModalityStateChanged(object sender, ModalityStateChangedEventArgs e) 
{ 
    if (e.NewState == ModalityState.Connected) 
     MessageBox.Show("IM Modality Connected"); 
} 

void AVModalityStateChanged(object sender, ModalityStateChangedEventArgs e) 
{ 
    if (e.NewState == ModalityState.Connected) 
     MessageBox.Show("AV Modality Connected"); 
} 

यह नमूना साधन परिवर्तन के लिए ईवेंट हैंडलर्स ऊपर तार की ConversationAdded घटना उपयोग कर रहा है, यह केवल उन बातचीत के लिए काम करेगा जो आपके एप्लिकेशन के चलते शुरू होने पर शुरू हो गए हैं। आपके एप्लिकेशन के शुरू होने से पहले पहले से सक्रिय बातचीत के लिए ऐसा करने के लिए, आप इस कोड को अपने एप्लिकेशन के स्टार्टअप रूटीन में जोड़ सकते हैं:

foreach (var conv in _lync.ConversationManager.Conversations) 
{ 
    conv.Modalities[ModalityTypes.InstantMessage].ModalityStateChanged += new EventHandler<ModalityStateChangedEventArgs>(IMModalityStateChanged); 
    conv.Modalities[ModalityTypes.AudioVideo].ModalityStateChanged += new EventHandler<ModalityStateChangedEventArgs>(AVModalityStateChanged); 
}