Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Lync 2010 SDK:如何获取用户';s语音邮件URI?_C#_Lync 2010_Voicemail - Fatal编程技术网

C# Lync 2010 SDK:如何获取用户';s语音邮件URI?

C# Lync 2010 SDK:如何获取用户';s语音邮件URI?,c#,lync-2010,voicemail,C#,Lync 2010,Voicemail,我正在编写一个简单的C#应用程序,它响应Lync调用,并根据数据库值将其转发到另一个电话号码。那很好用。但是,有时我想将呼叫转发到用户的语音信箱。我不知道如何获取语音信箱的URI:( 假设我在ConversationAdded事件的处理程序中。我尝试了以下方法: Conversation conv = args.Conversation; string voicemailURI = String.Format("{0};opaque=app:voicemail",conv.SelfPartici

我正在编写一个简单的C#应用程序,它响应Lync调用,并根据数据库值将其转发到另一个电话号码。那很好用。但是,有时我想将呼叫转发到用户的语音信箱。我不知道如何获取语音信箱的URI:(

假设我在ConversationAdded事件的处理程序中。我尝试了以下方法:

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);
此外:


UC voicemail的设置和工作方式不同。我不确定确切的术语是什么,但它是由Exchange处理的,邮件会出现在我的收件箱中。如果我只是让电话铃响,它最终会出现在语音邮件中,但我的应用程序知道它应该立即发送到那里,所以我想立即转发它。

我想我不太清楚你为什么要这样做是否关心获取联系人?您的第一个示例将为您提供直接转到语音邮件的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);
var automation=LyncClient.GetAutomation();
var conversationModes=自动模式。音频;
var conversationSettings=新字典();
列表参与者=新列表();
Conversation conv=args.Conversation;
string voicemailURI=string.Format(“{0};不透明=app:voicemail”,conv.SelfParticipant.Contact.Uri);
添加(voicemailUri);
automation.begintarconversation(AutomationModalities.Audio,参与者,null,StartConversationCallback,automation);

如果您不知道,Lync支持开箱即用的呼叫转接。是的,我知道。我们正在从POTS转移到Lync,在旧系统下,我们有一台带调制解调器的计算机和一些软件来接听电话并进行转接。然后,一个自定义的webapp与此软件交互,我们的用户通过webapp更改转接(另外,webapp会在论坛侧栏中显示当前的转发设置,供所有人查看)。我正在尝试对Lync执行相同的操作,我没有访问服务器API的权限,只有客户端SDK。我们的大多数用户甚至不会安装Lync,我们也不想让他们安装Lync只是为了转发手机。
        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);