Microsoft Teams Integration

Suggested completion time: 40 minutes

Use section #12 of the lab sheet.

Initial setup of the Pexip Infinity deployment

The first step will be to configure your Pexip Infinity deployment with the integration details of the Teams connector:

  1. Install the Teams license (Platform --> Licenses). This may have already been completed depending on the license keys used.
  2. Configure your Microsoft Teams Tenant (Call Control --> Microsoft Teams Tenant).
  3. Add a Teams Connector (Call Control --> Microsoft Teams Connectors).
    • Ensure you tick the Enable enhanced status information property and fill in the Azure Event Hub connection string to enable more advanced monitoring.
      NOTE: The Azure Event Hub connection string should be one continuous line of text, however, the PDF creation process for the Lab Sheet inserts non-printing paragraph characters and the end of the lines. Please copy the entire string to notepad++ (or similar) and ensure that the lines are concatenated. We will try to fix this in a later version of the Lab Sheets.
  4. Assign the Connector to a Location (Platform --> Locations and select the required location).

 

Setting up Pexip to act as a gateway to Teams

Creating the Virtual Reception (lobby) for indirect dialling into a Teams meeting:

To configure the Virtual Reception:

  1. Add a Teams Virtual Reception (Services --> Virtual Receptions).
  2. Then enter the Name, “Teams VR”.
  3. Select the correct Virtual reception type.
  4. Select the Teams Connector.
  5. Set the Lookup Location to be your “DMZ” location.
  6. Set the Post-lookup RegEx match to (.*).
  7. Set the Post lookup RegEx replace string to teams.\1@<your Pexip Infinity domain>.
  8. Add the Aliases you wish to use
    NOTE: These would normally match the Teams invite IVR URI that would be set as part of the New-CsVideoInteropServiceProvider Cmdlet run during the connector installation. As the Teams connector is shared for this lab, this is an alias pointing to your trainer's deployment (vc20), but you should create something that would be matched for your deployment (e.g. teams@vc1-osl.pexip.net). You may also wish to use the IPv4 static NAT address of your Edge node as an alias to your Teams VR, but if you do and you have completed the other steps correctly from session 2, you will receive an error as you can only use unique aliases. In a production environment, if you want to use IP address aliases for multiple VRs, you will require multiple Conferencing nodes to target. 
  9. Save.

 

Teams call routing rules for direct and indirect routing

Rule 1 – Trusted Gateway to Teams from the internal network:

Options not listed can remain as-is:

  1. Name: “To Teams from LAN (trusted)”.
  2. Select a Priority that is NOT currently in use, for example, “20”.
  3. Ensure “Incoming gateway calls” is Selected.
  4. Set “Calls being handled in location” to your “LAN” location.
  5. Match incoming calls from registered devices only: Unselected.
  6. Select protocol matches as appropriate.
  7. Destination alias RegEx match:
  8. teams\.(\d{9,12})(@<your Pexip Infinity domain>)?.

  9. Destination alias RegEx replace string: \1.
  10. Call target: Microsoft Teams meeting.
  11. Outgoing location: Your Edge Location.
  12. Teams Connector: either Your Teams Connector or leave unselected (why?).
  13. Treat as trusted is selected.
  14. Then Save.

 

Rule 2 – Trusted gateway to Teams from any network for registered devices:

Options not listed can remain as-is:

  1. Name: “To Teams from Registered devices (trusted)”.
  2. Select a Priority that is NOT currently in use, for example, “30”.
  3. Ensure “Incoming gateway calls” is Selected.
  4. Set “Calls being handled in location” to “Any” location.
  5. Match incoming calls from registered devices only: Selected.
  6. Select protocol matches as appropriate.
  7. Destination alias RegEx match:
  8. teams\.(\d{9,12})(@vcX-osl\.pexip\.net)?

  9. Destination alias RegEx replace string: \1.
  10. Call target: Microsoft Teams meeting.
  11. Outgoing location: Your Edge Location.
  12. Teams Connector: either Your Teams Connector or leave unselected (why?)
  13. Treat as trusted is selected.
  14. Then Save.

 

Rule 3 – Untrusted gateway to Teams from the External network:

  1. Name: "To Teams from External (untrusted)".
  2. Select a lower priority than the previous rules, that is NOT currently in use, for example, “40”.
  3. Ensure “Incoming gateway calls” is Selected.
  4. Set “Calls being handled in location” to your “DMZ” location.
  5. Select protocol matches as appropriate.
  6. Destination alias RegEx match:
  7. teams\.(\d{9,12})(@vcX-osl\.pexip\.net)?

  8. Destination alias RegEx replace string: \1.
  9. Call target: Microsoft Teams meeting
  10. Outgoing location: Your Edge Location
  11. Teams Connector: either Your Teams Connector or leave unselected (why?)
  12. Treat as trusted is unselected.
  13. Then Save.

 

Testing

NOTE: there is a limitation in this lab exercise as we are using a single Azure tenant and MS365 subscription for all lab groups. Ideally, we would use a single tenant per group, but we have yet to find a practical way to achieve this. This limitation means that we can only add one CVI setting, and this points to just one group, which is the demo deployment used by the trainer (group vc20). All users will therefore get Teams Invite links that point to this group rather than your group, however, you can substitute this groups domain information for your own group’s details. For example, the Teams meeting Invite would always link to the Virtual Reception teams@vc20-osl.pexip.net, however, if you were in group vc1, you would use teams@vc1-osl.pexip.net.

To create a Teams meeting, you need to log into the Teams client (on your OWN laptop/PC, NOT in the RDP session) with the credentials for your user and group (see Section #12 in the lab sheet). If you already use a Teams login, you could either:

 

You can set up a Teams meeting in a couple of ways via the calendar:

Using New Meeting:

Click the Calendar Tab, then “New Meeting

 image

You MUST ensure that you add an attendee (such as your email address) otherwise the Teams Meeting invite details will not be added. Even so, these details will not appear until you have saved the invite and re-opened it:

Initial Meeting invite with no Join instructions:

image

Meeting Invite re-opened once it has been “Sent”:

image

E.g, you now see in the body of the message:

Join with a video conferencing device
teams@vc20-osl.pexip.net
Video Conference ID: 127 557 862 4
Alternative VTC dialling instructions
Learn more | Meeting options

NOTE: Be aware that the domain seen will be that of “vc20-osl.pexip.net”, and the “Alternate VTC dialling instructions” link will also point to the VC20 edge node. Please ignore this and use the domain for your group. Calls should be therefore routed through your groups Infinity deployment, and if you have set things up correctly, all will work just fine.

 

Using Meet Now: 

This is a little clunky and it may be that Microsoft will continue to work on this (it has changed a few times recently), but at the time of writing, you should be able to follow these steps:

Click the Calendar Tab, then “Meet Now”, then “Start Meeting”:

image

Click “Join Now”(there is a link that says “Other join options”, but it simply seems to turn from purple to white and nothing else),. Once in the meeting, Click “More actions” (the three dots in the action bar), then select

image

NOTE: As before, the domain seen will be that of “vc20-osl.pexip.net”, and the “Alternate VTC dialling instructions” link will also point to the VC20 edge node. Please ignore this and use the domain for your group. Calls should be therefore routed through your groups Infinity deployment, and if you have set things up correctly, will work just fine.

 

Using the Pexip Infinity Virtual Reception to Teams gateway service:

After the Virtual Reception and Call Routing Rule have been configured, third-party systems and devices can now dial the alias of the Virtual Reception (e.g. teams@<your Pexip Infinity domain>) and then, when prompted by the IVR service, enter the meeting code of the Teams conference they want to join. The Pexip Infinity distributed gateway will then route the call into the appropriate Teams conference.

 

Using the direct gateway service:

After the Call Routing Rule has been configured, third-party systems and devices can now dial an alias that matches your specified pattern (e.g. teams.1234567890@<your Pexip Infinity domain>) to be routed directly into the appropriate Teams conference (in this example the conference with a meeting code of 1234567890).

In both cases, try dialling from a registered device or internal connection, and from an external connection to ensure that lobby bypass is working as expected. 


 

Screenshot 4: Demonstrate a Pexip Infinity system with a working Microsoft Teams integration.

To ensure you have the Teams integration working correctly, grab some screenshots of Live View that show the gateway calls in operation, using both the trusted and untrusted connection methods. You should be able to join the same Microsoft Teams meeting for these different devices. Remember to drill down into the gateway call instance in Live View to show the participant graph, for example:

 

A screenshot of the main Live View for an untrusted Gateway instance to Microsoft Teams:

image

A screenshot of the graph view of participants in an untrusted Gateway instance to Microsoft Teams:

image

A screenshot of the main Live View for a trusted Gateway instance to Microsoft Teams:

image

A screenshot of the graph view of participants in a trusted Gateway instance to Microsoft Teams:

image