我想知道在Lync中右键单击联系人并选择呼叫然后单击某个号码时获取单击的电话号码的正确方法。
预期是一个tel字符串,其中包含单击的数字。
有人可以概述我们在这种情况下使用的事件和检索号码的代码吗?
目前我正在使用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(":")
答案 0 :(得分:1)
我假设你想要这个用于音频/视频通话。
你必须像现在这样得到参与者,但是你必须得到那个参与者的模式并获得终点。
C#代码:
ContactEndpoint ep = Participant.Modalities[ModalityTypes.AudioVideo].Endpoint
答案 1 :(得分:0)
很可能你会得到一个带有手机参数的Sip Uri:sip:user@domain.ext;user=phone
。这告诉您的Lync服务器您要与该用户发起电话呼叫,然后它将根据有关该用户的信息决定如何进行相应的路由。
如果您需要电话号码,请获取此联系人的ContactCard
,其中包含(其中包括)电话号码。