如何获取在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)。
答
我假设你想要这个音频/视频通话。
您必须像参与者那样获取参与者,但是您必须获取该参与者的模式并获取端点。
C#代码:
ContactEndpoint ep = Participant.Modalities[ModalityTypes.AudioVideo].Endpoint
感谢您的答复。但是这不会起作用,因为您需要知道实际点击的号码。联系人卡片会给我多个号码,所以无法知道实际点击了哪个号码。 – user2264109 2013-04-17 23:20:48