Lync 2010 SDK:如何获取用户的语音邮件 URI

本文关键字:获取 用户 URI 语音邮件 SDK 2010 何获取 Lync | 更新日期: 2023-09-27 18:36:42

我正在编写一个简单的 C# 应用程序,该应用程序应答 Lync 呼叫并根据数据库值将其转发到另一个电话号码。这非常有效。但是,有时我想将呼叫转接到用户的语音邮件。我不知道如何获取语音信箱的URI:(

假设我在 ConversationAdd 事件的处理程序中。我试过这个:

Conversation conv = args.Conversation;
string voicemailURI = String.Format("{0};opaque=app:voicemail",conv.SelfParticipant.Contact.Uri);
// the contact returned here, however, does not contain the opaque=app:voicemail
Contact forwardContact = lync.ContactManager.GetContactByUri(voicemailURI);

也:

Conversation conv = args.Conversation;
// following throws ArgumentException: Value does not fall within the expected range
Phone voicemail = lync.Self.GetPhone(ContactEndpointType.VoiceMail);
string voicemailURI = voicemail.Endpoint.Uri
Contact forwardContact = lync.ContactManager.GetContactByUri(voicemailURI);

UC语音邮件已设置并以其他方式工作。我不确定该术语到底是什么,但它由 Exchange 处理,邮件出现在我的收件箱中。如果我只是让手机响起,它最终会在语音邮件中结束,但我的应用程序知道它应该立即转到那里,所以我想立即转发它。

Lync 2010 SDK:如何获取用户的语音邮件 URI

我想我不太确定你为什么关心获得联系?您的第一个示例将为您提供直接转到语音邮件的 URI。此时,您可以这样做:

        var automation = LyncClient.GetAutomation();
        var conversationModes = AutomationModalities.Audio;
        var conversationSettings = new Dictionary<AutomationModalitySettings, object>();
        List<string> participants = new List<string>();
        Conversation conv = args.Conversation;            
        string voicemailURI = String.Format("{0};opaque=app:voicemail",conv.SelfParticipant.Contact.Uri);
        participants.Add(voicemailUri);
        automation.BeginStartConversation(AutomationModalities.Audio, participants, null, StartConversationCallback, automation);