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