0

我想制作一个向与会者发送 lync 会议邀请的网络服务。我已经完成了 UCWA 部分,用于生成会议会议地址。

但现在我正在尝试使用 EWS 创建邀请。我可以发送标准约会,会议 URL 为正文,但 Outlook Lync 插件无法将其识别为 lync 会议。

感谢Outlook Spy 插件,我可以看到将我的约会转换为 lync 会议的正确标签。所以我认为我只需要添加与原始 Lync 会议(使用 Outlook 的 lync 插件创建)相同的标签。

我试图设置我的约会的扩展属性:

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 会议”。

你有什么想法?

非常感谢。

4

2 回答 2

0

您可以考虑以编程方式执行 Outlook 功能区上的Lync 会议按钮,以获取正确的会议项目。CommandBars 类的ExecuteMso方法执行由 idMso 参数标识的控件。此方法在特定命令没有对象模型的情况下很有用。适用于内置按钮、toggleButtons 和 splitButtons 的控件。请参阅Office 2013 帮助文件:Office Fluent 用户界面控件标识符

于 2015-02-25T10:03:40.367 回答
-1

这是您将 EWS 会议变为在线会议所需的内容。

ExtendedPropertyDefinition extendedUCMeetingSetting = new ExtendedPropertyDefinition(Guid.NewGuid(), "OnlineMeetingExternalLink",MapiPropertyType.String);

约会.SetExtendedProperty(extendedUCMeetingSetting, skype_meeting_join_url)

于 2017-11-09T14:22:13.060 回答