Skype for Business Conferencing Activation/Deactivation

This is an updated article of my Lync 2013 Deep Dive

Overview

Conferences created within Skype for Business don’t last forever.  There is some point in time in which the information needs to be removed from the SQL Database Server to ensure it doesn’t last forever.  The following tables details how long a conference exists within the database.  Some changes have occurred since Lync Server 2013 and those are noted below as well.

We see that meetings expire 365 days (one year) 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.

Skype for Business Lync Server 2013
One-Time Scheduled Meeting End Date + 365 Days End Date + 14 Days
Recurring Meeting with End Date End Date + 365 Days End Date + 14 Days
Recurring Meeting without End Date Last Conf + 6 months
Ad-Hoc Meeting 8 Hours 8 Hours

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

1

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.

It’s important to remember that the content grace period doesn’t happen until the meeting lifespan has expired.  That means, content for a meeting will last 365 Days + the Content Grace Period above.  Your data, might be sitting on your server for a very long time.

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.

2

Each column has a very specific purpose.  Here is a quick run down of each column.

  • 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.

3

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.

5

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 draft 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.

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

4

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.

11 thoughts on “Skype for Business Conferencing Activation/Deactivation

  • Pingback: Skype for Business Conferencing Activation/Deactivation | Mastering Lync | JC's Blog-O-Gibberish

  • January 21, 2016 at 5:04 pm
    Permalink

    Hi Richard, when you create a new meeting with a new meeting space (new ConfID) the expiration time is the end of the meeting plus 14 days. At least this tells ‘dbanalyze.exe’…
    Great article!

    Reply
  • February 23, 2016 at 3:28 pm
    Permalink

    Hi Rich,

    Thanks for posting this! Based on your article, is it true then: The meeting will expire when activated, and *not when scheduled to end in the Outlook invitation*? Meaning that if a user were to schedule a meeting in January for December, and tests that meeting in January, or uploads content to it, come December, that link would not work for participants?

    Joe

    Reply
    • February 24, 2016 at 3:53 pm
      Permalink

      Yes, joining the meeting early would start the counter. So assuming it’s not the default meeting ID and past a full year (they moved it to 365 days in SfB) then yes.

      Reply
  • March 1, 2016 at 12:38 am
    Permalink

    Hi, Thanks for this wonderful article. Do you have any recommendations on how to check the health of a conference? Is there a way to monitor delays encountered to join a meeting and any tips to speed up a conference join?

    Reply
  • January 3, 2017 at 1:45 am
    Permalink

    I think your article may have been the needle that I’ve been looking for in my haystack.
    Short Story question: Is there a way to modify the “24 Hour – No Join Rule”?

    Long Story with Preamble:
    I am in charge of setting up a meeting in which there will be attendees outside of our company joining a meeting hosted with an on-premise SfB15 server. This is a quarterly shareholder meeting and i want to be able to allow external attendees to connect to a test meeting first so that they have time to figure out if their local client audio/video setup is functioning properly…since it’s not feasible to field all the questions or address every possible remote-user client scenario an hour before the meeting. My intent is to have the meeting run continuously, 24/7, for two weeks prior to the actual meeting.

    So I created a meeting to simulate the Shareholder meeting we are hosting. I have sent out a link to meeting and have joined the meeting. I then kick off a powerpoint presentation that loops until ESC is pressed. To simulate the presenter talking, I created an audio loop that I play through an iPod with earbud speakers coupled to the microphone on my laptop. (I don’t know if it’s more MacGuyver or Frankenstein, but the audio comes through quite well!)

    So everything works just fine and dandy…until I get a message about the meeting being no longer available. After a ton of searching, I believe it’s due to the “24 Hour – No Join Rule” that you reference. Hence, since I don’t know when external attendees will attempt to connect, I need to be able to have the meeting go at least x-number of hours/days before being forcefully deactivated by the server.

    Reply
  • May 17, 2017 at 5:57 am
    Permalink

    Thanks Richard, great post.
    I am thinking to create a long meeting, 1 year or more, for a closed group.
    Purpose is to have a “fixed” pin code which all members know and can join without having to send out a Skype meeting invite every time.
    Do you know if it is possible to keep a one-time meeting with start date like May 18, 2017 and end date May 17, 2018 ?
    Any limitations to such setup?

    Reply
  • August 9, 2018 at 3:28 pm
    Permalink

    Hello,
    I am facing an issue where when I create a meeting (shared mailbox) “Oops! Something didn’t connect just right. Please close this box and try again” When i checked the log by creating “MEET NOW” (getting same error) I see:

    SIP/2.0 403 maxConferencesExceeded

    However, I have deleted the meetings from the account after that. I still get the same error and when I checked the DBAnalyze, It shows 2000 meetings data.

    Any idea why this happens and how much would it take to replicate in the server end?

    Any assistance on this is highly appreciated!

    Thank you,

    Reply
  • July 15, 2019 at 4:21 pm
    Permalink

    What happens if I schedule a meeting in Skype but for Voice we use a different service and no one joins in voice and only use the meeting to share content? We have had a couple of use cases that people have been dropped and it says meeting end by presenter when in reality no one has ended the meeting.

    Reply
    • July 15, 2019 at 3:25 pm
      Permalink

      Same idea, if no one authenticed joins it will look like the presenter ended the meeting. That said in one of the later 2015 CUs there is an option to have authentication-less meetings for the purpose of dial in. I’ll see if I can find the items and post when I’m back.

      Reply

Leave a Reply

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