acs_flutter_sdk library

Azure Communication Services Flutter SDK

A Flutter plugin that wraps Microsoft Azure Communication Services (ACS), providing token-based access to calling capabilities from Dart code.

Features

  • Identity helpers for development-time initialization (production flows remain server-side)
  • Audio/Video calling controls: start, join, mute, unmute, screen share, and hang up calls
  • Cross-platform support targeting Android API 24+ and iOS 16+

Getting Started

Installation

Add this to your package's pubspec.yaml file:

dependencies:
  acs_flutter_sdk: ^0.2.4

Platform Setup

Android

Add the following permissions to your AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

iOS

Add the following to your Info.plist:

<key>NSCameraUsageDescription</key>
<string>This app needs camera access for video calls</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app needs microphone access for calls</string>

Usage Example

import 'package:acs_flutter_sdk/acs_flutter_sdk.dart';

// Initialize the SDK
final sdk = AcsFlutterSdk();

// Create an identity client
final identityClient = sdk.createIdentityClient();

// Initialize with your connection string (server-side recommended)
await identityClient.initialize('your-connection-string');

// Create a calling client
final callingClient = sdk.createCallClient();

// Initialize with an access token
await callingClient.initialize('your-access-token');

// Start a call
final call = await callingClient.startCall(['user-id-1', 'user-id-2']);

Classes

AccessToken
Represents an access token for Azure Communication Services
AcsCallClient
Client for managing Azure Communication Services calling operations
AcsCallStateChangedEvent
Event fired when the call state changes
AcsCompositeDismissedEvent
Event fired when the composite is dismissed
AcsFlutterSdk
Main entry point for the Azure Communication Services Flutter SDK
AcsIdentityClient
Client for managing Azure Communication Services identity operations
AcsLocalizationOptions
Localization options for UI Library composites
AcsLocalVideoView
Displays the local ACS video preview rendered by the platform layer.
AcsMultitaskingOptions
Multitasking options for CallComposite (Android/iOS)
AcsRemoteParticipantJoinedEvent
Event fired when remote participants change
AcsRemoteVideoView
Displays a remote participant video feed rendered by the platform layer.
AcsThemeOptions
Theme options for UI Library composites
AcsUiErrorEvent
Event fired when an error occurs in the UI Library
AcsUiLibrary
Main entry point for Azure Communication Services UI Library
Call
Represents an active call
CallCompositeOptions
Options for launching CallComposite
CallFeatureEvent
Event emitted by call feature streams.
CallSurveyHandle
Survey handle returned when starting a survey.
CallSurveyRatingScaleInput
Input for a survey rating scale.
CallSurveyResult
Survey submission result.
CallSurveyScoreInput
Input for a survey score.
CallSurveySubmission
Payload for submitting a call survey.
CapabilitiesChangedEvent
Event emitted when call capabilities change.
CaptionsEvent
Event emitted when captions state or text updates arrive.
CaptionsState
Current captions configuration/state.
ChatCompositeOptions
Options for launching ChatComposite
CommunicationUser
Represents a user in Azure Communication Services
DataChannelEvent
Event emitted for data channel updates.
DataChannelSenderInfo
Data channel sender metadata.
DeviceInfo
Describes an audio or video device exposed by the native SDKs.
DiagnosticsEvent
Event emitted when diagnostics change.
IncomingCallEvent
Event emitted for incoming call lifecycle changes.
IncomingCallInfo
Details about an incoming call.
MediaStatisticsEvent
Event emitted when media statistics reports arrive.
ParticipantCapability
Describes a capability and whether it is currently allowed.
RaisedHandInfo
Raised hand entry.
RealTimeTextEvent
Event emitted when real-time text (RTT) arrives.
RemoteParticipantEvent
Event emitted from the native layer about participant changes.
RemoteParticipantState
Snapshot of a remote participant's state.
RemoteVideoInfo
Describes a remote video stream (camera or screen share).

Enums

AcsCallOrientation
Call orientation options
AcsCallState
Call state values
AcsUiErrorCode
Error codes that can be returned by the UI Library
CallState
Represents the state of a call
IncomingCallEventType
Incoming call event types.

Typedefs

AcsCallStateChangedHandler = void Function(AcsCallStateChangedEvent event)
AcsCompositeDismissedHandler = void Function(AcsCompositeDismissedEvent event)
AcsRemoteParticipantJoinedHandler = void Function(AcsRemoteParticipantJoinedEvent event)
AcsUiErrorHandler = void Function(AcsUiErrorEvent event)
Callback type definitions

Exceptions / Errors

AcsCallingException
Exception thrown by calling operations
AcsException
Exception thrown by Azure Communication Services operations