如何获取在Lync 2013中点击的联系人的电话号码?

问题描述:

我想知道在Lync中右键单击联系人并选择呼叫,然后单击某个号码时,获取单击的电话号码的正确方法。如何获取在Lync 2013中点击的联系人的电话号码?

预计是一个电话字符串,其中包含被点击的电话号码。

难道有人请概述我们在这种情况下使用的事件和代码来检索数字吗?

目前我使用的ConversationManager.ConversationAdded事件和检索从接触终点URI的电话号码,但是只运作时间的一半,有时默认端点来通过为SIP字符串,即使我点击了实际的电话号码。

这里的代码。

Private Sub ConversationManager_ConversationAdded(ByVal sender As Object, ByVal e As Microsoft.Lync.Model.Conversation.ConversationManagerEventArgs) Handles m_lyncConversationManager.ConversationAdded 

Dim ConvParticipants As IList(Of Participant) = e.Conversation.Participants 
Dim ContactURI() As String = ConvParticipants.Item(1).Contact.Uri.ToString().Split(":") 
If e.Conversation.Modalities(ModalityTypes.AudioVideo).State = ModalityState.Connecting Then 

Dim outboundContact As Contact = ConvParticipants.Item(1).Contact 
Dim _ContactSettings As IDictionary(Of ContactSetting, Object) = outboundContact.Settings 
Dim outObject As Object = Nothing 
Dim PhoneNumber() As String 

If _ContactSettings.TryGetValue(ContactSetting.DefaultContactEndpoint, outObject) Then 
PhoneNumber = DirectCast(outObject, ContactEndpoint).Uri.Split(":") 

最有可能你会得到一个SIP URI与手机参数,像这样:sip:[email protected];user=phone。这会告诉您的Lync服务器要与此用户发起电话呼叫,然后根据其有关该用户的信息决定如何进行相应路由。

如果你想有一个电话号码,让ContactCard此联系人,这包含(除其他事项外)的PHONENUMBER(S)。

+1

感谢您的答复。但是这不会起作用,因为您需要知道实际点击的号码。联系人卡片会给我多个号码,所以无法知道实际点击了哪个号码。 – user2264109 2013-04-17 23:20:48

我假设你想要这个音频/视频通话。

您必须像参与者那样获取参与者,但是您必须获取该参与者的模式并获取端点。

C#代码:

ContactEndpoint ep = Participant.Modalities[ModalityTypes.AudioVideo].Endpoint