This project demonstrates the integration of Azure Communication UI library into MAUI applications that utilizes the native Azure Communication UI library and Azure Communication Services to build a calling experience that features both voice and video calling.
Please refer to our native UI Library overview
We appreciate your feedback and energy helping us improve our services. If you've tried the service, please give us feedback through this survey.
/AndroidMauiBindings
and in this directory in terminal run ./downloadJarScript.sh
. GitBash
or Windows Subsystem for Linux (WSL)
should be enabled to run .sh
on Windows.CommunicationCallingSampleMauiApp/CommunicationCallingSampleMauiApp.sln
in Visual StudioCommunicationCallingSampleMauiApp/CommunicationCallingSampleMauiApp.csproj
and set <TargetFrameworks>net7.0-android</TargetFrameworks>
.CommunicationCallingSampleMauiApp
app.communication-services-ui-library-maui/iOSMauiBindings/ProxyLibs/CommunicationUI-Proxy
and in this directory in terminal run ./iOSFramework.sh -d
.CommunicationCallingSampleMauiApp/CommunicationCallingSampleMauiApp.sln
in Visual StudioCommunicationCallingSampleMauiApp/CommunicationCallingSampleMauiApp.csproj
and set <TargetFrameworks>net7.0-ios</TargetFrameworks>
.CommunicationCallingSampleMauiApp
app.| CommunicationCallingSampleMauiApp
| Platforms/(Android | iOS)/Composite.cs -> Class to communicate with native binding libraries
| CommunicationCallingSampleMauiApp.sln -> MAUI application
| MAUIiOSBindings
| iOS.CallingUI.Binding -> Bindings for Azure Communication UI library
| AndroidMauiBindings
| Android.CallingUI.Bindings -> Bindings for Azure Communication UI library
The common code for Android and iOS is all under the CommunicationCallingSampleMauiApp.sln
Depending on the platform we are running on we use the appropriate library.
#if ANDROID
using CommunicationCallingSampleMauiApp.Platforms.Android;
#elif IOS
using CommunicationCallingSampleMauiApp.Platforms.iOS;
#endif
JoinCallPage.xaml.cs
has common UI code for Android and iOS. On Button click, Android and iOS app is triggered to start a call.
void OnButtonClicked(object sender, EventArgs e)
{
if (!String.IsNullOrEmpty(tokenEntry.Text) && !String.IsNullOrEmpty(meetingEntry.Text))
{
callComposite.joinCall(name.Text, tokenEntry.Text, meetingEntry.Text, isTeamsCall, _localization, _dataModelInjection);
}
}
To learn more about how this sample was created and communicates with the native ACS Mobile UI Library, please refer to our bridging guides:
Please follow this Wiki to troubleshoot your issues.