0

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

预期是一个带有被点击号码的电话字符串。

有人可以概述一下我们在这种情况下将使用的事件以及检索号码的代码吗?

目前,我正在使用该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(":")
4

2 回答 2

1

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

你必须像你一样得到参与者,但你必须得到那个参与者的模态,然后得到端点。

C#代码:

ContactEndpoint ep = Participant.Modalities[ModalityTypes.AudioVideo].Endpoint
于 2016-11-18T17:16:53.553 回答
0

很可能您会得到一个带有电话参数的 Sip Uri,如下所示:sip:user@domain.ext;user=phone. 这会告诉您的 Lync 服务器您要与该用户发起电话呼叫,然后它将根据它所拥有的关于该用户的信息来决定如何进行相应的路由。

如果您想要电话号码,请获取ContactCard此联系人的电话号码,其中包含(除其他外)电话号码。

于 2013-04-11T11:55:28.353 回答