我想制作一个向与会者发送lync会议邀请的网络服务。我已经完成了UCWA Part,用于生成会议地址。
但现在我正在尝试使用EWS创建邀请。我可以发送标准约会,会议URL作为正文,但Outlook Lync插件不会将其识别为lync会议。
感谢Outlook Spy addin,我可以看到正确的标签,可以将我的约会转变为lync会议。所以我认为我只需要添加与原始Lync会议相同的标签(使用lync addin for outlook创建)。
我试图设置约会的扩展属性:
Guid MY_PROPERTY_SET_GUID0 = Guid.NewGuid();
Guid MY_PROPERTY_SET_GUID1 = Guid.NewGuid();
Guid MY_PROPERTY_SET_GUID2 = Guid.NewGuid();
Guid MY_PROPERTY_SET_GUID3 = Guid.NewGuid();
Guid MY_PROPERTY_SET_GUID4 = Guid.NewGuid();
Guid MY_PROPERTY_SET_GUID5 = Guid.NewGuid();
Guid MY_PROPERTY_SET_GUID6 = Guid.NewGuid();
Guid MY_PROPERTY_SET_GUID7 = Guid.NewGuid();
ExtendedPropertyDefinition EPD0 = new ExtendedPropertyDefinition(MY_PROPERTY_SET_GUID0, "MeetingType", MapiPropertyType.Long);
ExtendedPropertyDefinition EPD1 = new ExtendedPropertyDefinition(MY_PROPERTY_SET_GUID1, "OnlineMeetingConfLink", MapiPropertyType.String);
ExtendedPropertyDefinition EPD2 = new ExtendedPropertyDefinition(MY_PROPERTY_SET_GUID2, "UCMeetingSetting", MapiPropertyType.String);
ExtendedPropertyDefinition EPD3 = new ExtendedPropertyDefinition(MY_PROPERTY_SET_GUID3, "UCOpenedConferenceID", MapiPropertyType.String);
ExtendedPropertyDefinition EPD5 = new ExtendedPropertyDefinition(MY_PROPERTY_SET_GUID5, "UCMeetingSettingSent", MapiPropertyType.String);
ExtendedPropertyDefinition EPD4 = new ExtendedPropertyDefinition(MY_PROPERTY_SET_GUID4, "OnlineMeetingExternalLink", MapiPropertyType.String);
ExtendedPropertyDefinition EPD6 = new ExtendedPropertyDefinition(MY_PROPERTY_SET_GUID6, "UCInband", MapiPropertyType.String);
ExtendedPropertyDefinition EPD7 = new ExtendedPropertyDefinition(MY_PROPERTY_SET_GUID7, "UCCapabilities", MapiPropertyType.String);
appointment.SetExtendedProperty(EPD0, 65536);
appointment.SetExtendedProperty(EPD1, cd.HttpJoinLink);
appointment.SetExtendedProperty(EPD2, cd.getUCMeetingSettings());
appointment.SetExtendedProperty(EPD3, Guid.NewGuid().ToString());
appointment.SetExtendedProperty(EPD4, cd.ConfJoinLink);
appointment.SetExtendedProperty(EPD5, cd.getUCMeetingSettings());
appointment.SetExtendedProperty(EPD6,[XMLVALUE]);
appointment.SetExtendedProperty(EPD7, [XMLVALUE]);
string mailAddress;
foreach (string a in attendees)
{
if (a.StartsWith("sip:"))
{
mailAddress = a.Substring(4, a.Length - 4);
}
else
{
mailAddress = a;
}
appointment.RequiredAttendees.Add(mailAddress);
}
appointment.Save(SendInvitationsMode.SendToAllAndSaveCopy);
这两个[XMLVALUES]只是来自outlook spy的复制/粘贴,这是一个非常长的文本,为了清楚起见,我不在这里写。
之后我收到了邀请,但是这些标签在Outlookspy中没有显示为属性标签,因此我的约会未被重新统一为“Lync会议”。
你有什么想法吗?
非常感谢。
答案 0 :(得分:0)
您可以考虑以编程方式在Outlook功能区上执行 Lync Meeting 按钮,以获取正确的会议项目。 CommandBars类的ExecuteMso方法执行idMso参数标识的控件。在没有特定命令的对象模型的情况下,此方法很有用。适用于内置按钮,toggleButtons和splitButtons的控件。请参阅Office 2013 Help Files: Office Fluent User Interface Control Identifiers。
答案 1 :(得分:-1)
这是您将EWS会议设置为在线会议所需的内容。
ExtendedPropertyDefinition extendedUCMeetingSetting = new ExtendedPropertyDefinition(Guid.NewGuid(), "OnlineMeetingExternalLink",MapiPropertyType.String);
appointment.SetExtendedProperty(extendedUCMeetingSetting,skype_meeting_join_url)