New Policy to Control the Need for Explicit Consent for Teams Recordings
I see that some of the sites that I refer to as the “ChatGPT of the Microsoft 365 world” (capable only of repeating what has been written beforehand by someone else) are very excited about message center notification MC523053 (3 March 2023). The notification covers the introduction of explicit recording consent for Teams meetings (Microsoft 365 roadmap item 107781), due to roll out in general availability later this month for commercial and GCC tenants. GCC-High and DOD tenants will see the feature by June.
I’m surprised that the recording of Teams meetings has got this far without explicit recording consent. In the absence of a feature to capture user consent, many organizations where I have joined Teams calls resort to someone reading out prepared text at the start of the call. The text normally goes something like this: “welcome to this call hosted by the XYZ corporation. If you don’t consent to the recording of the call, please disconnect now.” Essentially, the new feature is a computer-enforced version with some added smarts.
Updating Teams Meeting Policies
Explicit recording consent is disabled by default, meaning that Teams works like it always has unless an administrator enables the feature. This can’t be done through the Teams admin center today (support is coming), so you’ll need to update Teams meeting policies with PowerShell. The policy setting is per-user and applies to the meeting organizer. After the setting is enabled in a meeting policy, any meeting organized by accounts assigned the policy will use explicit consent for recorded meetings. The setting is retrospective and applies to meetings organized by users within the scope of the policy.
If you update some but not all meeting policies, users will have different experiences in meetings where consent is required in some but not all calls. For this reason, it’s generally best to be consistent across all meeting policies and have consent enabled or disabled everywhere.
Exceptions to the general rule will occur. For instance, local regulations might mandate that consent is necessary to join a recorded call. In that case, you could assign a Teams meeting policy with consent enabled to users where those regulation apply.
To enable explicit recording consent for a meeting policy, run the Set-CsTeamsMeetingPolicy from the MicrosoftTeams PowerShell module. For example, this command updates the default (global) policy:
Like any change to a Teams policy, expect to wait several hours before the new setting is effective.
What Explicit Recording Consent Does
When people join a meeting organized by someone that an explicit consent for recordings applies to and a recording starts, each participant gets the chance to give their consent for recording. In terms of a Teams meeting, this covers:
Audio (spoken comments).
Video (their video feed from a workstation camera or mesh avatar).
Basically, Teams blocks any contribution that could come from a participant until they consent to recording. While the block is in place, the user can see and hear contributions from other meeting participants.
When the meeting organizer (or a presenter) starts a meeting with explicit consent, Teams highlights the need to gain consent before it allows recording to start (Figure 1).
Figure 1: Teams warns about the need for explicit consent before it allows recording to start
When recording starts, users see that Teams disabled their microphone and video in the join screen. After joining the call, Teams informs them that they must give consent to be recorded. To start the consent process, they unmute their audio or turn on their camera (Figure 2).
Figure 2: The warning after a user joins a meeting that they need to give consent for recording
The final step is for the user to give consent (Figure 3). When this happens, Teams enables their microphone, camera, and sharing.
Figure 3: How users give explicit consent for Teams recordings
Client UI Needed to Give Consent
Microsoft points out that the enable recording consent feature depends on the meeting attendance report to track when users give consent. If your organization blocks the generation of attendance reports (by setting AllowEngagementReport to Disabled in Teams meeting policies)., tracking consent can’t work. Microsoft says that these customers should wait “for a future release.”
Older clients don’t include the UI necessary to give consent, so to make sure that people can give consent for recording, they’ll need to use a Teams client released after March 1, 2023. Microsoft makes an exception for Teams meeting rooms and PSTN participants as these interfaces cannot give explicit consent. For now, Teams notes their consent data in the attendance report as “not applicable” or “auto consent.” Current CarPlay clients don’t have the necessary UI either, so you won’t be able to participate fully in calls either. The audio component is obviously the most important loss for CarPlay users. Using Teams on a mobile device connected to the car via Bluetooth is an available workaround.
Welcome Change for Many Organizations
I’m sure that many organizations will welcome the introduction of explicit consent for meeting recording. Any organization that grapples with privacy issues and employee concerns in this area will see the value of explicit consent for recording. It’s the kind of feature that you never knew was so valuable until it’s needed.
Support the work of the Office 365 for IT Pros team by subscribing to the Office 365 for IT Pros eBook. Your support pays for the time we need to track, analyze, and document the changing world of Microsoft 365 and Office 365.
Thanks for the prompt response Tony! I actually managed to test using the Windows Teams client just now and there has been no change in client behavior. As you say then it has has yet to reach our tenant. Will just have to be patient at the mercy of the cloud!
Loading...
Does anyone know if the software has been fully deployed yet to all tenants? Still awaiting any change in client functionality when testing.
Thank you so much! Would you happen to have a screen shot of what that looks like in the attendance report in teams and in the spreadsheet, since I still don’t have it yet in our tenant?
Loading...
Patience is a virtue – I can confirm Microsoft has now pushed this functionality to our tenant.
Tony, Since I enabled the feature, external or guest participants are unable to open their microphones and camera after we start a recording.
I’ve already updated the client, tested it via teams web and mobile, and the scenario is the same.
Am I missing something?
The meeting organizer sets the default language for the meeting. Individual users can choose to see live captions in a different language if they have a Teams Premium license.
We have explicit consent enabled and it works well. However, for one scenario it fails.
If the user is an anonymous user (as in they join and enter their name in the lobby before connecting) joining for the web app – when recording starts, they get the consent pop up. However, when they click ‘Ok’ to accept – it fails with an error that makes no sense as all of this is on in our tenant:
“To be recorded, ask your admin to run on attendance reports and allow them in your privacy settings.”
All of this is on and in place – both in meeting policy and in the meeting options.
Currently, all a user in the scenario can do, is listen and not participate if recording is in use.
You should flag this problem to Microsoft support and give them the precise details of how the issue occurs so that it can be passed to the development group. Flagging a problem officially is the only dependable way for it to be recorded and become a candidate for fixing. I could complain to Microsoft on your behalf, but I don’t have the full details of how your tenant is configured and I don’t have responsibility for the tenant, so Microsoft will ignore my pleadings.
Thanks, Tony. Logging a call with them now. I’ll provide an update here for anyone else seeing this too.
Loading...
Spoke with Microsoft (2 engineers) and they have explained that this is expected behaviour. Therefore we have disabled explicit consent, as this is no good to us. There is a very good chance that a participant will join a recorded meeting either via anonymous on the web or via a client that isn’t up to date.
We’ll keep an eye on it, in a test policy, but until this is sorted or they at least put a better error message up – it’s off!
{"id":null,"mode":"button","open_style":"in_modal","currency_code":"EUR","currency_symbol":"\u20ac","currency_type":"decimal","blank_flag_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":100,"top_media_type":"featured_image","featured_image_url":"https:\/\/office365itpros.com\/wp-content\/uploads\/2022\/11\/cover-141x200.jpg","featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Virtual Tip Jar","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"Office 365 for IT Pros","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"Office 365 for IT Pros","form_subtitle":null,"currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for supporting the work of Office 365 for IT Pros!","payment_confirmation_title":"Office 365 for IT Pros","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to tip?","initial":{"instruction_type":"normal","instruction_message":"How much would you like to tip? Choose any currency."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to tip? Choose any currency."},"invalid_curency":{"instruction_type":"error","instruction_message":"Please choose a valid currency."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to give this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to give this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to give this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}
Tony any idea if this is supported on the Teams Web client on Edge (which I’m using to test)? I’ve made the policy change and allowed almost 24 hours.
Yes. It works on Edge – but the software has to reach your tenant. It’s not fully deployed yet.
Thanks for the prompt response Tony! I actually managed to test using the Windows Teams client just now and there has been no change in client behavior. As you say then it has has yet to reach our tenant. Will just have to be patient at the mercy of the cloud!
Does anyone know if the software has been fully deployed yet to all tenants? Still awaiting any change in client functionality when testing.
Does the consent get stored anywhere for legal and compliance purposes?
In the attendance records.
Thank you so much! Would you happen to have a screen shot of what that looks like in the attendance report in teams and in the spreadsheet, since I still don’t have it yet in our tenant?
Patience is a virtue – I can confirm Microsoft has now pushed this functionality to our tenant.
Tony, Since I enabled the feature, external or guest participants are unable to open their microphones and camera after we start a recording.
I’ve already updated the client, tested it via teams web and mobile, and the scenario is the same.
Am I missing something?
Sounds like the full code to implement the policy is not in your tenant. There are server-side and client-side components that need to be in place.
Is the server side component to set explicit consent to enabled on all polices?
What is the client-side component?
The client reads the policies from the server and then implements whatever the policy settings are.
Do you still have this issue? we just turned this on and now users reporting the same. We have not enabled the Setting on all MeetingPolicies..
Is the language shown to the meeting participants customizable, or is the language shown in your Figure 3 the only option?
The meeting organizer sets the default language for the meeting. Individual users can choose to see live captions in a different language if they have a Teams Premium license.
We have explicit consent enabled and it works well. However, for one scenario it fails.
If the user is an anonymous user (as in they join and enter their name in the lobby before connecting) joining for the web app – when recording starts, they get the consent pop up. However, when they click ‘Ok’ to accept – it fails with an error that makes no sense as all of this is on in our tenant:
“To be recorded, ask your admin to run on attendance reports and allow them in your privacy settings.”
All of this is on and in place – both in meeting policy and in the meeting options.
Currently, all a user in the scenario can do, is listen and not participate if recording is in use.
You should flag this problem to Microsoft support and give them the precise details of how the issue occurs so that it can be passed to the development group. Flagging a problem officially is the only dependable way for it to be recorded and become a candidate for fixing. I could complain to Microsoft on your behalf, but I don’t have the full details of how your tenant is configured and I don’t have responsibility for the tenant, so Microsoft will ignore my pleadings.
Thanks, Tony. Logging a call with them now. I’ll provide an update here for anyone else seeing this too.
Spoke with Microsoft (2 engineers) and they have explained that this is expected behaviour. Therefore we have disabled explicit consent, as this is no good to us. There is a very good chance that a participant will join a recorded meeting either via anonymous on the web or via a client that isn’t up to date.
We’ll keep an eye on it, in a test policy, but until this is sorted or they at least put a better error message up – it’s off!
Hi is it possible to add your own consent text?
Nope.
Hi, is there an additional setting for teams rooms devices? Because it doesnt work there.
I don’t know. I don’t have a Teams device to test. Maybe you should ask Microsoft or the device vendor.