0
votes

I want to make a webservice which sends lync meeting invitations to attendees. I've done the UCWA Part, for generate the meeting conference adress.

But now i'm trying to create the invitation using EWS. I can send standard appointment, with the meeting URL as body, but the Outlook Lync addin dont recognize it as a lync meeting.

Thanks to the Outlook Spy addin, I can see the right tags for transform my appointment into a lync meeting. So I think that i just have to add the same tags than an original Lync meeting (created with the lync addin for outlook).

I've tried to set extended properties of my appointment:

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);

The two [XMLVALUES] are just copy/paste from outlook spy, this is a pretty long text that i don't write here for clarity purpose.

After that I recieve my invitation but, these tags doesn't appear as property tags in Outlookspy, so my appointment is not reconized as a "Lync meeting".

Do you have any ideas?

Thanks a lot.

2

2 Answers

0
votes

You may consider executing the Lync Meeting button on the ribbon in Outlook programmatically to get the right meeting item. The ExecuteMso method of the CommandBars class executes the control identified by the idMso parameter. This method is useful in cases where there is no object model for a particular command. Works on controls that are built-in buttons, toggleButtons and splitButtons. See Office 2013 Help Files: Office Fluent User Interface Control Identifiers.

-1
votes

This what you need to make EWS meeting to online meeting.

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

appointment.SetExtendedProperty(extendedUCMeetingSetting, skype_meeting_join_url)