This sample demonstrates how to use the Azure Communication Services within an immersive mixed reality application, running on HoloLens 2.
- Install Visual Studio 2022
- Install Windows 10.0+ SDK
- Install Unity 2022 LTS with Universal Windows Platform Build Support
- Install .Net 6 SDK
- Install git lfs
- Clone repository
- Access to an Azure Tenant with the necessary privileges for creating new resources and app registrations.
- Access to a work/school Teams account with administrative privileges.
Azure Communication Services (ACS) empower developers to seamlessly integrate voice, video, chat, telephony, and email communications into their applications. In this HoloLens 2 sample application, we focus on Teams interoperability, specifically joining Teams meetings. Here’s what our app demonstrates:
- Authenticated Teams Integration: Connect to ACS as an authenticated Teams user using your work/ school credentials.
- Microsoft Graph Integration: Retrieve coworker information and upcoming meetings.
- Teams Meeting Participation: Join Teams meetings with video and audio.
- Live Captions: Render live captions during Teams meetings.
- Incoming Calls: Accept 1:1 Teams video and audio calls.
- XR Interactions with MRTK3: Utilize the Mixed Reality Toolkit 3 for seamless XR interfaces.
There are many more Azure Communication Services features not covered by this sample application. Please visit the Azure Communication Services documentation for additional features and pricing.
This immersive HoloLens 2 sample is made up of two parts:
- Unity App. A native application that runs on HoloLens 2 devices.
- Web App. An Azure Function application that returns an Azure Communication Services access tokens for an authenticated user using a Microsoft Entra ID.
The following Microsoft components are used by this sample:
- ACS Calling SDK. Unity app uses this to connect to ACS meetings and participate in video calls.
- ACS Identity SDK. The provided sample Azure Function App uses this to obtain ACS access tokens.
- Azure Identity SDK. Also used by the provided sample Azure Function App.
- Azure Functions SDK. Used by the provided sample Azure Function App.
- Mixed Reality Toolkit 3. Used to create mixed reality user experiences in Unity.
- Web Account Manager (WAM) for UWP. Windows authentication broker to authenticate users on HoloLens.
- Microsoft Authentication Library (MSAL). Authentication library used to authenticate users in the Unity editor.
The next step, Setting Up Azure Communication Services, will walk you through how to create an Azure Communication Services resource.
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.