【问题标题】:Send Lync meeting Invitations using Exchange web service and UCWA使用 Exchange Web 服务和 UCWA 发送 Lync 会议邀请
【发布时间】:2015-02-24 15:22:10
【问题描述】:

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

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

感谢Outlook Spy addin,我可以看到将我的约会转换为 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 会议”。

你有什么想法吗?

非常感谢。

【问题讨论】:

    标签: c# outlook-addin exchangewebservices ucwa


    【解决方案1】:

    您可以考虑以编程方式执行 Outlook 功能区上的 Lync 会议 按钮,以获得正确的会议项目。 CommandBars 类的ExecuteMso 方法执行由idMso 参数标识的控件。此方法在特定命令没有对象模型的情况下很有用。适用于内置按钮、toggleButtons 和 splitButtons 的控件。见Office 2013 Help Files: Office Fluent User Interface Control Identifiers

    【讨论】:

      【解决方案2】:

      这是您将 EWS 会议转变为在线会议所需要的。

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

      appointment.SetExtendedProperty(extendedUCMeetingSetting, skype_meeting_join_url)

      【讨论】:

        猜你喜欢
        • 2015-07-27
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多