NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
Flutter plugin for Microsoft Azure Communication Services (ACS). Provides voice/video calling, UI Library composites, and identity management capabilities.
Last release 7 days ago
01 Oct 2026
Ships fairly regularly
a new release about every 6 weeks
Most releases are documented
notes for 15 of 18 stable releases
Nothing withdrawn
no release was ever pulled
11 months old
18 releases · first in 2025
One column per month.
Release v0.2.13: diagnostics payload fixes, audio output device names…
Release v0.2.13: diagnostics payload fixes, audio output device names…
Includes everything in 0.2.12 (audio output device names, in-call noise suppression): 0.2.12 was not released to pub.dev; its changes ship in 0.2.13.
lastUpdated type, iOS diagnostic name).
report.lastUpdated is now epoch milliseconds (an integer, as on Android) instead of an ISO-8601 string, which made MediaStatisticsEvent.timestamp throw a TypeError. timestamp now also tolerates numbers, ISO strings and falls back to data['timestamp']; it never throws.diagnostic (same as name), isFlagDiagnostic, valueBool (flag events) and a lower-case valueQuality (quality events), so the DiagnosticsEvent getters return real values. Existing name/value keys stay (see the iOS name note below). The getters are tolerant of missing or wrongly typed fields (valueBool on a non-bool now returns null instead of throwing).diagnosticsSnapshot, getLatestDiagnostics) carry both isCameraFrozen and the legacy isCameraFreeze on Android and iOS (iOS previously had only isCameraFreeze).unknown qualities skipped). Previously the attach-time snapshot was dropped and a stable call emitted nothing.name may change: diagnostic name values are now fixed literals identical to Android's (for example isCameraFrozen) instead of the string the SDK supplied. Consumers on iOS that matched the previous SDK-supplied name should re-check; diagnostic carries the same literal.packetsLostPerSecond is a rate), that incoming audio statistics have no participant identifier, and that raw quality values keep each platform's casing (Android upper-case, iOS lower-case) while valueQuality is always lower-case. Live iOS quality events keep their previous value form, whereas replayed events send a lower-case value; use valueQuality for a stable lower-case form.Feature — dynamic audio-output API: the calling client can now switch the in-call audio output at runtime via setAudioRoute(AudioOutput target), read
setAudioRoute(AudioOutput target), read the current output with getAudioRoute(), and list selectable outputs with getAvailableAudioOutputs(). The new AudioOutput enum covers auto, speaker, earpiece, bluetooth, and wiredHeadset. auto (the default) keeps the existing behaviour — built-in loudspeaker, switching to a connected external device — while an explicit value is honoured until changed or reset to auto; if a selected external device disconnects, routing reverts to automatic. Implemented natively on Android (AudioManager) and iOS (AVAudioSession) with unit-tested routing logic.Fix — release renderers before detaching the call channel: when a call screen closes, the SDK now asks the native side to tear down every video render
iOS — fix video-call freeze on iOS 26: Remote video renderer teardown no longer blocks the platform/UI thread. The view is detached synchronously whil
Cleanup: Removed the deprecated chat module and its tests (chat was retired in 0.2.3); package description and topics updated accordingly.
flutter_lints 6.0.0; static analysis passes with no issues.Critical Bug Fix: Prevent crash when ACS SDK throws NSException during LocalVideoStream initialization
LocalVideoStream initializationACSLocalVideoStream init: failuresLocalVideoStream constructor for defensive error handlingCritical Bug Fix: Fixed NullPointerException crash in media statistics serialization on both platforms
serializeOutgoingStatistics() and serializeIncomingStatistics() methodsserialize(outgoingStatistics:) and serialize(incomingStatistics:) methodsBug Fix: Prevent crash when camera permission is denied during video call initialization
AVCaptureDevice.authorizationStatus check before creating LocalVideoStreamContextCompat.checkSelfPermission check before creating LocalVideoStreamUpdated Chat section with deprecation notice
BREAKING: Chat SDK removed to reduce app size - createChatClient() now throws UnsupportedError
createChatClient() now throws UnsupportedErrorFix deprecated Color.value usage (now uses toARGB32)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix Android compilation errors for Azure Chat SDK 2.0.3 API compatibility
Add joinTeamsMeeting APIs on Dart, Android, and iOS bridges
joinTeamsMeeting APIs on Dart, Android, and iOS bridgesAdd cross-platform ACS video calling support
Add cross-platform ACS video calling support
Initial release of Azure Communication Services Flutter SDK
Your coding agent can read these notes before it upgrades. Set up the MCP server →