Customizing Microsoft Teams Meeting Invitations

July 31, 2019 by · 10 Comments 

This brief article covers the customization of meeting invitations for Microsoft Teams for two different purposes.  One is focused on reviewing the same basic branding options which were previously made available in Skype for Business and have recently come to Microsoft Teams, while the other is related to the additional invitation details which are part of the Microsoft Cloud Video Interop (CVI) solution.

Organization Information

A feature that has been available since Lync Server was the ability to perform some limited customization of what automatically appears in Lync or Skype meeting invitations created in Outlook.  These options were limited to simply adding a small image file, typically used for adding a company logo, providing one or two additional URLs which would appear as links for users to find additional help or legal information, and adding basic text to a footer to contain any additional instructions.

This capability has recently been brought to Microsoft Teams by way of the Microsoft Teams Admin Center.  To globally configure any of these options for all users in the tenant simply follow these steps.

image

  • Under the Email invitation section configure any or all of the desired fields.

image

The Logo URL field should be populated with a publicly available link to a .JPG or .PNG image file that is no larger than 188×30 pixels. The file itself is not embedded in the invitation, only an HTML link is added which will load the source image if it is accessible on the client reviewing the invitation.

The Legal URL and Help URL fields can optionally be populated with any URL, although the link titles will only appear as ‘Legal’ and ‘Help’ in the actual invitation.

The Footer can contain only standard, unformatted text and is limited to 255 characters.  This text will appear in the invitation exactly as entered, so if HTML code was used, for example, then that would appear as raw HTML code in the invite as well.

  • Once customization is complete click the Preview button to see an example of what the meeting invitation will look like.

image

Note that the formatting in the preview will not look exactly as it will in a real invitation and the logo image is not currently displayed here either.  Also, if Cloud Video Interop is enabled on the tenant the additional VTC meeting information does not appear in the preview.

  • Once the desired results are seen then click the Save button at the bottom of the page to apply the changes to the tenant.

In order to see the final results simply schedule a new Teams meeting invitation using any of the supported clients, although it may take several hours after saving the changes before they begin to appear in new invitations.  As this change only applies to new invitations then obviously any previously scheduled Teams meetings created by any users in the tenant will remain unchanged.

Cloud Video Interop Details

Another minor, yet important detail which can be customized in Microsoft Teams meeting invitations is the hostname provided in the video conferencing device details provided by the Cloud Video Interop service.  By default when a tenant enables CVI for Microsoft Teams they would typically be using the hostname provided by the specific Microsoft partner solution which was opted for. For example, the Poly RealConnect Service utilizes the hostname "t.plcm.vc" to route all calls from standards-based endpoints to the Poly services resident in various Azure datacenters worldwide.

Users who are enabled for this service will have additional information provided in their Teams meeting invitations specifically designed to allow standards-based video endpoints to join.  This information appears under the "Join with a video conferencing device" section, as seen below.

image

Note that the standard configuration utilizes the CVI provider’s domain highlighted above, but if desired this can be customized to use any hostname which is part of an owned domain namespace.

A custom hostname can either be configured during the initial CVI configuration steps or after the solution has already been enabled.

Configure DNS

Before making any changes to the Microsoft Teams configuration a new custom hostname must be selected, configured, and allowed to replicate through DNS servers.

  • Select a new hostname in the desired domain (e.g. video.msteams.net).

  • Connect to the administration portal or application for the DNS provider or service which currently manages DNS records for the selected domain (e.g. msteams.net) and create a new DNS Alias (CNAME) record for the desired hostname which points to ‘t.plcm.vc‘.

image

Wait for some time to pass and then check to see if the new record has replicated throughout the Internet sufficiently.  Public DNS servers like Google (8.8.8.8) or Cloudflare (1.1.1.1) can give a good indication of replication status.

  • To check if the new DNS record is available open a command prompt and run the following nslookup command.

nslookup video.msteams.net 8.8.8.8

image

Once the new record has replicated then a successful resolution should look like the results shown above, where the ‘t.plcm.vc‘ record is listed as an alias.  Now the custom hostname is ready to be added to the Teams invitations.

Configure Meeting Invitation

Now that the desired DNS record has been configured and replicated sufficiently the meeting invite creation process can be updated to leverage this new hostname.  Again, this change will only apply to newly created meetings so any previously scheduled Teams meetings will still display the originally configured hostname.

    • Open Windows PowerShell and connect to the Skype for Business Online PowerShell module using the following cmdlets, replacing the highlighted portion with the username of an administrative account in the target Office 365 tenant.  Enter the account password when prompted.

Import-Module SkypeOnlineConnector
$skype = New-CsOnlineSession -UserName "jeff@msteams.net"
Import-PSSession $skype

image

Get-CsVideoInteropServiceProvider

image

In this example the Polycom provider was already configured in the tenant and is using the default hostname. 

In the following command the configuration will be changed to replace the existing ‘t.plcm.vc‘ hostname with the customized ‘video.msteams.net‘ hostname.

Set-CsVideoInteropServiceProvider -Identity "Polycom" -TenantKey "680450644@video.msteams.net" -InstructionUri "https://dialin.plcm.vc/teams/?key=680450644&conf={ConfId}&domain=video.msteams.net"

The Identity parameter should match the identity shown in the previous cmdlet for the currently selected service provider.

The TenantKey parameter needs to include the same numeric string shown in the existing configuration, with only the hostname changing to the desired string.  Any incorrect changes to the tenant key will render CVI unfunctional for newly scheduled meetings.

The InstructionUri parameter also needs to be updated to include an additional value for the domain which is leveraged by the Poly One Touch Dial app and service in order to identify the target FQDN in Teams meetings.

If this was a new CVI configuration then simply use the guidance above when initially running the New-CsVideoInteropServiceProvider cmdlet.

Once sufficient replication time has elapsed (typically within 8 hours) then the new hostname should begin to appear in new Teams meeting invitations.  The example invitation shown here includes both the custom organization details outlined earlier in this article and the custom CVI hostname.

image

About Jeff Schertz
Site Administrator

Comments

10 Responses to “Customizing Microsoft Teams Meeting Invitations”
  1. Graham Walsh says:

    Nice detailed post as always Jeff. Just wondered why the use of a CNAME record? This doesn’t follow the RFC? Or is it a case it works for most? Just like a wildcard cert. Works but not supported by Microsoft on the Sfb side?

    https://tools.ietf.org/html/rfc2782

    Target
           The domain name of the target host.  There MUST be one or more
           address records for this name, the name MUST NOT be an alias (in
           the sense of RFC 1034 or RFC 2181).  Implementors are urged, but
           not required, to return the address record(s) in the Additional
           Data section.  Unless and until permitted by future standards
           action, name compression is not to be used for this field.

           A Target of “.” means that the service is decidedly not
           available at this domain.

    I did a similar post here about using an Exchange Transport Rule to modify the invite as another option too. https://www.graham-walsh.com/using-microsoft-exchange-transport-rules-for-signatures/

    • Jeff Schertz says:

      This isn’t an issue of Microsoft supporting anything, it’s basically what ‘works’ when calling into the RealConnect Service. If the VTCs are registered to something which does not allow this type of lookup then customization in this manner may not be possible for that environment. An alternative could be to publish the standard SRV and A records in the desired domain, but these would need to refer directly to the host of IP addresses in the “edge-teams.plcm.vc” record. These IPs are mostly static, but over time some changes may occur so it would be a good idea to routinely check for changes in the service IPs (which should be advertise via subscribable alerts on status.plcm.vc) and then modify the custom DNS A record to match.

  2. Mateusz says:

    Hello Jeff

    I’ve just read this very interesting article and I’d like to ask regarding Poly OTD server. Tell us please if one-touch-join button wiil be also possible when we customize MS Teams Meetings invitation?

    Thanks in advance!

    Regards
    Mateusz

  3. BT says:

    Hello Jeff, Thank You for providing this detailed article. I have a question. I have configured a transform in our Cisco VCS so that when a user dials just 4 digits extension of 2010 from a VCS registered endpoint it transfers the call to TenantID@t.plcm.vc. This makes it easy to dial from endpoints that do not have OTD service enabled. Once the end user dials just 2010 they only have to dial the conference ID and they’re in the meeting. My question is, how can I replace the entire tenant ID in the Meeting invite to show 2010@domain.com instead of TenandIT@t.plcm.vc?

    Thank You in advance!
    -BT

    • Jeff Schertz says:

      You can change that in the invitation via PowerShell (Set-CsVideoInteropServiceProvider -Identity Polycom -TenantKey “2010@t.plcm.vc”). Keep in mind though that every invite will look like that, but will only work for your registered endpoints. If I were to receive that meeting it would not work from my VTC as the lack of a true tenant key would cause the call to fail when it hits the service. Also this approach is untested and unsupported.

      I would suggest that instead you use the invite’s Footer space (configurable in the Teams Admin Center) to include instructions stating something along the lines of “if you are joining this meeting from a corporate conferencing room, simply dial “2010” and then enter the Video Conferencing ID seen above when prompted.” This would instruct internal users to use the dialing prefix, but external users would ignore these directions and use the correct dial string.

      Another option is to create shortcut/favorites on all of your endpoints and then simply instruct users to call that shortcut, then enter the ConfID when prompted at the entry queue.

  4. Abhay Kamath says:

    Great Article Jeff. One of our customers is already using CVI solution for Teams from a different partner. Can we still add the Poly CVI Service and customize the invite? Or can 1 tenant only have 1 CVI Provider integration?

    • Jeff Schertz says:

      Yes, you can enable multiple CVI partners in a single tenant. Just follow the same directions to enable the specific provider, using that provider’s unique Application ID. The key point though is you can only select one of them as the default if you are enabling users at the global policy level. So you’d need to enable user accounts individually for the other provider. Your options are either to (a) leave the global policy set to the default disabled provider and then simply enable all users manually, selecting the preferred provider for each user, or (b) set one of the providers as the global default and then only enable the individual users you want on the other provider.

Trackbacks

Check out what others are saying about this post...
  1. […] Customizing Microsoft Teams Meeting Invitations | Jeff Schertz’s Blog — Read on blog.schertz.name/2019/07/customizing-microsoft-teams-meeting-invitations/ […]

  2. […] be t.plcm.vc, which is the common default.  If a custom hostname (e.g. video.msteams.net) is configured correctly then the service will parse that information to assemble the correct dial […]



Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!