best-before-date

Although on-premises web conferencing meetings organized with Office Communications Server (OCS) are not perishable products (and thus they don’t require a “best-before date”), there is some configuration involved around meeting life-cycle that I would like to explore a little bit further.

Suppose you organize a web conference using the Live Meeting client or the Conferencing Add-in for Microsoft Outlook. You invite some attendees and during the meeting some content is generated and uploaded (e.g. PowerPoint slides, polls, whiteboard, etc.).

Three weeks after this specific meeting has occurred, you want to review some of the annotations that were made on the slides and some of the brainstorming carved on the whiteboard. “No problem”, you think. After locating the appointment on the Outlook Calendar, you click the “Join the meeting” hyperlink, but suddenly the following error pops-up:


The meeting has ended or the information you entered was not recognized. Contact the meeting organizer for more information.

lm-expired

Before going any further, let’s review some of the concepts associated with meeting life-cycle:

  • Deactivation – The meeting is deactivated when the organizer terminates it and all the authenticated users leave. When you deactivate a meeting, you end the instance of the meeting, but the meeting continues to exist in the database and can be reactivated and rejoined.
  • Expiration – After the meeting is deactivated, the expiration clock starts ticking. When you reach the expiration time, it’s no longer possible to rejoin the conference, unless it’s reactivated. The default expiration time for scheduled meetings is 14 days.
  • Reactivation If the meeting still exists in the database, it can be reactivated simply by rescheduling it using Outlook. Since you can reschedule it to occur in the past (although I can’t think on a reason to do this), the meeting will only reactivate if it falls in the last 14 days, because this is the default expiration time.
  • Content Expiration Grace Period – Grace period in addition to the expire time, after which the Web Conferencing Server should clean up content for a conference. When you reach the end of the grace period, the meeting and all associated meeting content are deleted from the database. The default grace period is 14 days after the expiration time.

With the present release of OCS it’s not possible to control the duration of the meeting expiration period (although the content grace period can be extended). This is the default behavior for the meeting expiration time (txs Tarang Mittal):

  • For a single one time scheduled meeting, the conferences expires after 14 days.
  • For a recurring meeting, the conference expires 14 days after the last instance of that meeting.
  • For a recurring meeting with no end date, the conference never expires.
  • For a Meet Now, the session expires in under 8 hours.

Hopefully, after this explanation we can now understand the error message we got when trying to rejoin a meeting that had ended 3 weeks before. Since the expiration time is 14 days, it’s no longer possible to rejoin it. The good news is that we have an additional 14 days for the content to expire, after the default meeting expiration period. So, by simply rescheduling the meeting using Outlook, we can now successfully reopen it and check the content we were looking for.

LM

 

Managing Meeting Life Cycles with WMI

There are some parameters in OCS that can only be controlled using WMI, such as the ones involved with meeting life-cycle.

For conference deactivation, there are two pool-level WMI settings that are stored as properties in the MSFT_SIPMeetingScheduleSetting WMI class in the root\CIMV2 namespace:

  • UnAuthenticatedUserGracePeriod [Integer (0~60) minutes] Grace period allowed for anonymous or federated users to stay in the meeting without any authenticated user in the meeting. The default value is 10 minutes.
  • MaxMeetingLength [Integer (0 ~ 8760) hours] Maximum length of any meeting without join activity. The default value is 24 hours.

For conference expiration, there is one pool-level WMI setting that is stored as a property in the MSFT_SIPDataMCUCapabilitySetting WMI class in the root\CIMV2 namespace:

  • ContentExpirationGracePeriod [Integer (0~365) days] Grace period in addition to the expire time, after which the Web Conferencing Server should clean up content for a conference. The default value is 14 days.


To use VBScript to modify deactivation and expiration WMI settings

The following 2 scripts will modify the WMI properties previously discussed. They must be run on the OCS Web Conferencing Server using the appropriate administrative permissions.

' 
' ContentExpirationGracePeriod
'

  Dim objLocator
  Dim objService
  Dim objInstances
  Dim objInstance

  Wscript.Echo "Connecting to local WMI store..."

  Set objLocator = CreateObject("WbemScripting.SWbemLocator")
  Set objService = objLocator.ConnectServer(".", "root\cimv2")

  Wscript.Echo "select * from MSFT_SIPDataMCUCapabilitySetting"
  Set objInstances = objService.ExecQuery _
    ("select * from MSFT_SIPDataMCUCapabilitySetting where backend=""(local)\\rtc""")
    ' For OCS Enterprise Edition: backend=""server name\\sql instance""

  If IsNull(objInstances) Or (objInstances.Count = 0) Then
    Wscript.Echo "Error: No instance"
  Else
    For Each objInstance in objInstances
      objInstance.Properties_.Item("ContentExpirationGracePeriod").Value = 365
      objInstance.Put_
      wscript.Echo objInstance.Properties_.Item("ContentExpirationGracePeriod").Value
      wscript.Echo "Done!"
    Exit For
    Next
  End If

  Wscript.Echo ""

 

' MaxMeetingLength
'

  Dim objLocator
  Dim objService
  Dim objInstances
  Dim objInstance

  Wscript.Echo "Connecting to local WMI store..."

  Set objLocator = CreateObject("WbemScripting.SWbemLocator")
  Set objService = objLocator.ConnectServer(".", "root\cimv2")

  Wscript.Echo "select * from MSFT_SIPMeetingScheduleSetting"
  Set objInstances = objService.ExecQuery _
    ("select * from MSFT_SIPMeetingScheduleSetting where backend=""(local)\\rtc""")
    ' For OCS Enterprise Edition: backend=""server name\\sql instance""

  If IsNull(objInstances) Or (objInstances.Count = 0) Then
    Wscript.Echo "Error: No instance"
  Else
    For Each objInstance in objInstances
      objInstance.Properties_.Item("MaxMeetingLength").Value = 8760
      objInstance.Put_
      wscript.Echo objInstance.Properties_.Item("MaxMeetingLength").Value
      wscript.Echo "Done!"
    Exit For
    Next
  End If

  Wscript.Echo ""
 

To use WBEMTest to modify deactivation and expiration WMI settings
  1. Log on to a server with Office Communications Server 2007 R2 administrative tools installed, as a member of the RTCUniversalServerAdmins group or an account with equivalent user rights.
  2. Click Start, click Run, type wbemtest, and then click OK.
  3. In the Windows Management Instrumentation Tester dialog box, click Connect.
  4. In the Connect dialog box, in Namespace, type root\cimv2, and then click Connect.
  5. In the Windows Management Instrumentation Tester dialog box, click Query.
  6. In the Query dialog box, type the following in the Enter Query box according to the WMI class name to be modified and then click Apply:
    MSFT_SIPMeetingScheduleSetting
    Select * from MSFT_SIPMeetingScheduleSetting where backend="(local)\\rtc"
    MSFT_SIPDataMCUCapabilitySetting
    Select * from MSFT_SIPDataMCUCapabilitySetting where backend="(local)\\rtc"

    For an OCS Enterprise pool backend="server name\\sql instance"
    01-meeting-lifecycle  
  7. In the Query Result dialog box, double-click the result.
    02-meeting-lifecycle
  8. In the Object editor dialog box for the WMI class, double-click the property you want to edit in Properties:
  9. If you specified the MSFT_SIPMeetingScheduleSetting WMI class in step 6 of this procedure, double-click UnAuthenticatedUserGracePeriod or MaxMeetingLength.
    03-meeting-lifecycle
  10. If you specified the MSFT_SIPDataMCUCapabilitySetting WMI class in step 6 of this procedure, double-click ContentExpirationGracePeriod.
  11. In the Property Editor dialog box, change the value to the new value in the Value box, and then click Save Property.
  12. When you are finished with the editing, in the Object editor dialog box, click Save Object.
  13. Close all dialog boxes, and then close Windows Management Instrumentation Tester.
  14. To verify that the change was applied, open Event Viewer and look for event ID 56015.

For more information, please read Managing Meeting Life Cycles.