SDKs and REST APIs

Azure Communication Services capabilities are conceptually organized into discrete areas based on their functional area. Most areas have fully open-sourced SDKs programmed against published REST APIs that you can use directly over the Internet. The Calling SDK uses proprietary network interfaces and is closed-source.

In the tables below we summarize these areas and availability of REST APIs and SDK libraries. We note if APIs and SDKs are intended for end-user clients or trusted service environments. APIs such as SMS should not be directly accessed by end-user devices in low trust environments.

Development of Calling and Chat applications can be accelerated by the Azure Communication Services UI library. The customizable UI library provides open-source UI components for Web and mobile apps, and a Microsoft Teams theme.

SDKs

Assembly Protocols Environment Capabilities
Azure Resource Manager REST Service Provision and manage Communication Services resources
Common N/A Client & Service Provides base types for other SDKs
Identity REST Service Manage users, access tokens
Phone numbers REST Service Acquire and manage phone numbers
SMS REST Service Send and receive SMS messages
Email REST Service Send and get status on Email messages
Chat REST with proprietary signaling Client & Service Add real-time text chat to your applications
Calling Proprietary transport Client Voice, video, screen-sharing, and other real-time communication
Call Automation REST Service Build customized calling workflows for PSTN and VoIP calls
Network Traversal REST Service Access TURN servers for low-level data transport
UI Library N/A Client Production-ready UI components for chat and calling apps

Languages and publishing locations

Publishing locations for individual SDK packages are detailed below.

Area JavaScript .NET Python Java SE iOS Android Other
Azure Resource Manager npm NuGet PyPi Maven - - Go via GitHub
Common npm NuGet N/A Maven GitHub Maven -
Identity npm NuGet PyPi Maven - - -
Phone Numbers npm NuGet PyPi Maven - - -
Chat npm NuGet PyPi Maven GitHub Maven -
SMS npm NuGet PyPi Maven - - -
Email npm NuGet PyPi Maven - - -
Calling npm NuGet - - GitHub Maven -
Call Automation NuGet Maven
Network Traversal npm NuGet PyPi Maven - - -
UI Library npm - - - GitHub GitHub GitHub, Storybook
Reference Documentation docs docs - docs docs docs -

SDK platform support details

iOS and Android

  • Communication Services iOS SDKs target iOS version 13+, and Xcode 11+.
  • Android Java SDKs target Android API level 21+ and Android Studio 4.0+

.NET

Except for Calling, Communication Services packages target .NET Standard 2.0, which supports the platforms listed below.

Support via .NET Framework 4.6.1

  • Windows 10, 8.1, 8 and 7
  • Windows Server 2012 R2, 2012 and 2008 R2 SP1

Support via .NET Core 2.0:

  • Windows 10 (1607+), 7 SP1+, 8.1
  • Windows Server 2008 R2 SP1+
  • Max OS X 10.12+
  • Linux multiple versions/distributions
  • UWP 10.0.16299 (RS3) September 2017
  • Unity 2018.1
  • Mono 5.4
  • Xamarin iOS 10.14
  • Xamarin Mac 3.8

The Calling package supports UWP apps build with .NET Native or C++/WinRT on:

  • Windows 10 10.0.17763
  • Windows Server 2019 10.0.17763

REST APIs

Communication Services APIs are documented alongside other Azure REST APIs. This documentation will tell you how to structure your HTTP messages and offers guidance for using Postman. REST interface documentation is also published in Swagger format on GitHub. You can find throttling limits for individual APIs on service limits page.

API stability expectations

Important

This section provides guidance on REST APIs and SDKs marked stable. APIs marked pre-release, preview, or beta may be changed or deprecated without notice.

In the future we may retire versions of the Communication Services SDKs, and we may introduce breaking changes to our REST APIs and released SDKs. Azure Communication Services will generally follow two supportability policies for retiring service versions:

  • You'll be notified at least three years before being required to change code due to a Communication Services interface change. All documented REST APIs and SDK APIs generally enjoy at least three years warning before interfaces are decommissioned.
  • You'll be notified at least one year before having to update SDK assemblies to the latest minor version. These required updates shouldn't require any code changes because they're in the same major version. Using the latest SDK is especially important for the Calling and Chat libraries that real-time components that often require security and performance updates. We strongly encourage you to keep all your Communication Services SDKs updated.

API and SDK decommissioning examples

You've integrated the v24 version of the SMS REST API into your application. Azure Communication releases v25.

You'll get three years warning before these APIs stop working and are forced to update to v25. This update might require a code change.

You've integrated the v2.02 version of the Calling SDK into your application. Azure Communication releases v2.05.

You may be required to update to the v2.05 version of the Calling SDK within 12 months of the release of v2.05. This should be a simple replacement of the artifact without requiring a code change because v2.05 is in the v2 major version and has no breaking changes.

Next steps

For more information, see the following SDK overviews:

To get started with Azure Communication Services: