17 Jan Installing and integrating Pexip Infinity in Azure with Microsoft Teams (CVI)
This is a level 100 build guide on the high level steps i took to deploy, configure and test Pexip Cloud Video Interop in Azure with Microsoft Teams.
The Pexip Infinity platform can be deployed in a dedicated public or hybrid cloud. I chose to install it in Azure so the service was geographically as close as possible to my Microsoft 365 tenant to maximise A/V performance.
The service consists of 3 core components. The Pexip Managment Server. The Pexip Conferencing Node and the Pexip Teams Connector. These 3 roles are required at a minimum to run Cloud Video Interop (CVI) for Microsoft Teams.
The PMS and PCN are Linux based servers used for managment of the conference node and conferencing respectively. The PTC is fundamentally a Microsoft Windows Server that handles Teams communications and meeting requests from the Pexip Conference Node and passes them on to the Microsoft Teams service. The PTC must be deployed in Azure.
The following diagram shows the Teams Connector elements that are deployed in Azure, and how they interact with the Pexip Infinity platform and Microsoft Teams. These components are all created as part of the deployment process. For lab purposes and to save on compute costs i installed a single ‘Connector Instance’ as part of the Azure VM Scale Set. Not all regions and Azure datacentres are equal so ensure all the services below are available in your region before attempting to deploy in Azure.
Note:- All VM’s can be stopped and deallocated to save on compute costs.
To test Cloud Video Interop Pexip have their own WebRTC client called Pexip Infinity Connect. The client can be downloaded here https://support.pexip.com/hc/en-us/articles/360015877891-Infinity-Connect-Client-Download
When installation and configuration of the PCN is completed this client can be used to test interop with Teams with the PIC Client joining the MCU running on the PCN and the Teams client joining natively. Transcoding, conference join is then handled by the PCN and the PTC.
The PCN and PMS need to be deployed first. I followed steps 1-6 of @Graham_Walsh post here https://support.pexip.com/hc/en-us/articles/115004642126-Deploying-Pexip-Infinity-in-Microsoft-Azure. As i was only interested in Teams CVI so completing step 7 wasn’t neccesary.
The recommended VM sizes can be found here https://docs.pexip.com/admin/azure_guidelines.htm#recommended. I elected to use Standard A2 VMs for the PCN and the PMS to save on compute costs.
Note: – When applying the ‘Config file to the Conferencing Node’ in step 2 of part 5 in the guide above i noticed port 8443 was not open in the Network Security Group. You may need to manually open this port so the conference node config can be uploaded.
Pexip publishes Azure-optimized disk images for the Management Node and for Conferencing Nodes. This includes a PowerShell script that copies and prepares your disk images, and instructions for running the script via a Windows client.
If preferred deployment entirely via Powershell rather than through the Azure portal is also possible which @Graham_Walsh covers here https://www.graham-walsh.com/deploying-pexip-infinity-in-azure-with-powershell/
To check the health of the deployment and replication status between the PMS and the PCN browse to Status > Conference Nodes.
So that i could log my PIC client into the Conference Node i created a a new device alias, User & Devices > Device Aliases. I enabled this account for ‘Enable Infinity Connect registration (non-SSO)’ and provided a username and password. The device alias must be in a ‘UPN’ format, EG email@example.com
To check succesful registration browse to Status > Registered Aliases.
The PIC client will also show registered.
Placing any calls does require a license. So ensure you have valid licenses with the appropriate call concurrency before attempting to make any calls.
Installing and configuring the Teams Connector is covered here https://docs.pexip.com/admin/teams_connector.htm. ALL steps in this guide must be completed.
A valid certificate is required for Teams integration. The chosen CA for the Pexip Teams Connector must also be trusted by the Pexip Conference Node. I choose to use AlwaysOnSSL as they issued ‘free’ certificates. Curiously though AlwaysOnSSL seems to be offline. As the PCN and the PTC have to communicate with each other over a secure channel any CA may suffice. So it may be possible to use LetsEncrypt which is also another ‘free’ CA assumiung you’re trying to keep lab costs down.
Once the certificate and the certificate chain have been installed on the PCN the certificate needs to be assigned to the PCN as well. Platform Configuration > Conferencing Nodes and select the appropriate certificate.
The installation of the PTC is entirely via Powershell which creates 3 Resource Groups.
The first RG contains two Teams Bots. This is the code responsible for Teams CVI. The second RG contains a number of items including the Virtual Machine Scale Set along with the Windows Server that has the Pexip Teams service installed, load balancer, network security group and more. The last contains the Public IP address that’s been assigned the Azure Load Balancer VIP. The FQDN assigned to the PTC will point to this VIP.
To access the PTC RDP to the Public IP address of the server instance in the “Virtual Machine Scale Set”.
If installed correctly the Pexip services should be started on the Teams Connector.
Configuring the PCN for Teams is covered here https://docs.pexip.com/admin/teams_configuration.htm. ALL steps in this guide must be completed.
I choose to route calls via Virtual Reception resulting in the call/communication flow below.
To test i used the PIC mobile client to join. The Teams roster shows my mobile PIC client.
Status > Live View is very useful for viewing a call in real time. There are some excellent statistics that are useful for knowing exactly what is going on on the wire mid call.
Drilling down into the ‘Pexip’ participant reveals the bit rate, codecs, jitter buffer and so on.
Of all the CVI supported vendors Pexip offers the most flexbility in terms of deployment options. That said it would be good to see a SaaS ‘turn key’ option delivered directly by Pexip, as IaaS may not be as cost effective as a commodity delivered SaaS service. Both Polycom and Bluejeans offer SaaS only CVI.
It would also be useful if Pexip could also collocate the Conference Node, Management Server and Teams Connector on one server Azure MarketPlace appliance. This could help to streamline the solution architecture, increase deployment time, as well as possibly increasing peformance.