Conferencing Activation/Deactivation Deep Dive

Recently was asked the question: how long will this meeting last if I log out?  It’s a common question I’ve seen and although I knew the answer, I asked myself, how well documented is the Lync Conference tear down behavior.  So I did some quick searching and found only this one article by Justin Morris.

Overview

The above article does a good job of explaining what happens.  We see that meetings expire 14 days after the last activation (i.e. someone joining them) for single and recurring meetings (with end dates).  There are different behaviors based on ad-hoc and recurring meetings without end dates.  Make sure to read the above article to fully understand those case scenarios.

Additionally, we can control the expire time of meetings using the set-csconferencingconfiguration cmdlet.  You can see here:

pic0

NOTE: Remember that 15:00:00 means one second beyond 14 days, 23 hours, 59 minutes, 59 second.  So when we say 14 days, we mean 14 full days.  I’ve seen organizations get caught up on this where there are strict retention periods and they set it wrong.

With all of that said, I want to know the why and how so lets dig into a few thing.

Activation of a Conference

This part is pretty simple.  A conference is activated when someone joins it.  When an individual joins a conference, the Focus checks the backend database for the related permissions to the conference.  At that point in time, the Focus communications to the MCU Factory to get the details of available Conferencing Servers and the Focus than starts building those Conferencing Servers for the conference.

All of this information can be found in the database as well.  As soon as a conference is activated, that information is placed into the RTCLocal | RTCDYN | ActiveConference database.  In my screen shot below, you can see that we have five active conferences.

pic1

There are a few interesting items of note in table.  (SIDE NOTE: I started a Lync Data Dictionary for the SQL database years ago and never finished the project.  People should tell me if there is any interest in that since Microsoft doesn’t appear willing to share theirs.  🙁 )

  • ConfID: The conference ID is important to note, as it’s a primary key to other tables.
  • ConfStateVersion: The ConfStateVersion is a counter of changes occurring in your meeting.
  • Locked: This is a bit field and tells us if the meeting is locked (True – 1).  A locked meeting will not allow any new participants.
  • AdmissionType: A TinyInt field with a few different options.
    • 3 – Anyone (No Restrictions)
    • 2 – Anyone from my organization or the meeting organizer.
    • 1 – People I Invite
  • AutoPromote: Another TinyInt field.
    • 0 – People scheduled as presenters
    • 1 – Anyone from my organization
    • 2 – Anyone (No Restrictions)
  • PstnLobbyBypass: Exactly what it sounds like.  If set to True (1) than PSTN users get into meetings directly.
  • LastPartID: Not 100% sure what the role of this field is.
  • LastEnterprisePartLeaveTime: Date and time of the last authenticated users to leave a meeting.  This is important later on.
  • ActivationInstance: GUID used by the system.
  • IsLargeMeeting: True (1) or False (0) if it’s a large meeting.

The moral of this section is.  Once a meeting is joined, than we create an instance in the database for an active conference.  There are several moving parts to the creation of a conference.

Focus is a SIP endpoint that represents the actual conference in the system.  It’s job is a central gatekeeper.  It’s pretty much responsible for everything for the conference.  From authentication, requesting conferencing servers, etc.

Focus Factory handles the logical creation of deletion of conferences for scheduled meetings in the database.

Conferencing Server Factory determines the availability and health of the Conferencing Servers in the environment.  During the meeting creation process, it’s responsible for telling the Focus which servers to place which modalities on.

Here is a great picture buried on one slide that was on the screen for about 7 seconds at Lync Conf 13.

pic4

Here we can see how the communication is done between each of the different elements that goes into creating a conference.

Deactivation of a Conference

The deactivation of a conference has nothing to do with the expire time we spoke about above.  Instead, the deactivation refers to the act of tearing down a particular instance of a conference.  This is a job of the Focus to monitor activation and deactivation requests.  There are two ways that meetings can be deactivated: Manual and Automatic.

Manual Deactivation itself can occur three different ways.

Presenter Ends the Meeting

This is most likely a rarely used feature as it’s buried under the three dots (more menu) but from here is an option to End Meeting.

pic2

When this is done all users are immediately disconnected from the conference.  In the back ground, the client is sending an Exit and End Conference command to the Focus and it terminates all active Conference Servers and disconnects all users.

Delete Meeting from Outlook

In this case, the organization of the meeting sends a cancellation notice and deletes a meeting.  If users are currently in the meeting, the Focus will immediately delete the meeting from all of the Conference Servers and all users will be removed from the conference.

NOTE: This would not apply to the users default meeting space.  If you want to test this you need to make sure to create a unique meeting space.

User is Deleted from Server

When a user is deleted from Lync, part of that process is to remove any active conferences that might be running in the background, and remove all users.

Automatic Deactivation can also occur three ways.

No Active Participants

I mentioned this before but people most likely rarely use the End Meeting option.  What happens when everyone just leaves a meeting without ending it?  The meeting will remain in the background active.  This is done on the chance that you open up the meeting again immediately.  The exact timer surrounding this one is a bit of a mystery and I couldn’t find any documented values.  Based on my testing, is appears as though the Conferencing Announcement Services (CAS) remains in the conference for 20 minutes.

90 Minute Rule

I often refer to this as the fantasy football rule.  You may recall in our database lookup above, within the ActiveConference table was a LastEnterpriseLeaveTime field.  This field maintains a roster of when the last authenticated user leaves a meeting.  At the 90 minute mark, the Focus will terminate the conference if no enterprise user joined the meeting or if all of the enterprise users have left.  It’s important to note that Federated and PSTN/Anonymous users are not considered enterprise users.

Why call it the fantasy football rule?  90 minutes is just long enough to hold your draft.  🙂

If we look at the SIP Message that is sent at the 90 minute mark, we can clearly see that the Focus is sending a BYE request to the conferencing announcement service (CAS).

pic3

24 Hour – No Join Rule

In order to prevent runaway conferences that are left open forever, the system will terminate conferences that have no new users join in a 24 hour period of time.  That is a long time for a meeting to remain active and a long time for no one new to join your meeting.  In this case, the Focus will terminate the conference with a ‘Conference Terminated – Inactivity’ reason code.

Conclusion

There you have it.  The ins and outs of the conference activation and deactivation process.  Maybe in a future post I’ll break down the C3P requests between each element for some super geeky fun but that is all for today.

11 thoughts on “Conferencing Activation/Deactivation Deep Dive

  • June 6, 2014 at 8:22 pm
    Permalink

    Great article.
    I have one question? Does a newly ceated user have is own personal conferencing URL as “permanent”?
    (without going to the dialin page to generate a new one) does this link never expires?

    Reply
    • June 6, 2014 at 10:31 pm
      Permalink

      A new use needs to request a conference URL, one will not be created for them when the user is enabled for Lync. They can do this by either going to the dial-in page or using Outlook and scheduling a meeting. This of course assumes your policies are configured in such a way to support the default conference ID’s.

      Reply
      • June 6, 2014 at 10:41 pm
        Permalink

        I looked up on the database that the user conference has the static field is true.
        My question is that, in this case the conference will never expires (URL remains valid) get deleted and also the content?

        Reply
        • June 7, 2014 at 2:16 pm
          Permalink

          I don’t think the default meeting space of user is deleted until you delete the user. In that case, probably only the meeting is deactivated. However, if a user creates a private meeting space then the meeting is expired after a hard-coded time which I am not sure what is. So expiry only applies to private meeting spaces. But Richard can advise I am incorrect.

          Reply
        • June 9, 2014 at 12:59 pm
          Permalink

          Correct, a static meeting space will never be deleted (unless the user resets their default meeting URL) and the content uploaded will remain from meeting to meeting. I love the default meeting space and prefer that they are used to prevent Conference ID explosion but it is a training issue with departments like HR and Execs.

          And as noted below, the expiration (deletion of content) really only applies to private meeting spaces.

          Thanks,

          Richard

          Reply
          • June 25, 2015 at 7:35 am
            Permalink

            Deleting of just the content can be configured using the ContentGracePeriod under Set-csConferencingConfiguration

            The above time is not dependent on meeting expiration.

            I agree the entire meeting and its content is permanently purged when it Expires.

            However, you can still purge just the meeting content (like attachments, ppts, etc) before the meeting Expires.

            This is done by modifying the value for ContentGracePeriod using the Set-csConferencingConfiguration.

            For example, if you set it to the lowest acceptable value (30 minutes). The content gets deleted after 30 minutes after the meeting is DEACTIVATED. (not Expired)

            One can notice that the content is gone if they re-use the static meeting at a later time (as long as they do not re-use it within 30 minutes after the last meeting deactivation)

            In this example, If they do reactivate the meeting within 30 minutes after it was last completed, the ContentGracePeriod timer is reset. The old content will be still there. The timer will start again upon the completion (deactivation) of the latest instance of the meeting.

  • Pingback: NeWay Technologies – Weekly Newsletter #98 – June 5, 2014 | NeWay

  • Pingback: Skype for Business Conferencing Activation/Deactivation | Mastering Lync

  • February 1, 2016 at 2:38 pm
    Permalink

    Nice outline of the conf activation/deactivation process thank you!

    Are you aware of anyway to pull out information of all the scheduled lync conferences and get the confID and the organizers info?
    I can see the confID info in the backend database but how do I pull the organizers info?

    Reply
  • Pingback: Lync 2013 Conference Lifespan Chronicles | Clarity Blogs

  • January 12, 2017 at 4:54 pm
    Permalink

    Is there a way in the logs to show who ended a conference? We had a lot of participants and someone ended the conference kicking everyone out.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *