SDKs and REST APIs

Azure Communication Services capabilities are conceptually organized into discrete areas based on their functional area. Most areas have fully open-source 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 shouldn't 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.

Creating a practice to use the latest SDK

Browsers and operating systems are constantly evolving to support the latest enhancements and to fix existing bugs. Using the most recent Azure Communication Services SDK can help you achieve the best overall end user experience for your application when used with updated browsers and operating system updates. The most update Azure Communication Services SDK offers many benefits, such as better performance, security, compatibility, quality, and usability. Updating allows you to access the newest features and updates that are regularly added to the browser and operating system. Azure Communication Services SDKs are updated frequently (approximately every 6 weeks to once a quarter). It's advised that you create a process to ensure that you're always updating to the most recent SDKs.

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
Job Router REST Service Optimize the management of customer interactions across various applications
Rooms REST Service Create and manage structured communication rooms
UI Library N/A Client Production-ready UI components for chat and calling apps
Advanced Messaging REST Service Send and receive WhatsApp Business messages

Languages and publishing locations

Publishing locations for individual SDK packages:

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 - - CocoaPods Maven -
Call Automation npm NuGet PyPi Maven
Job Router npm NuGet PyPi Maven
Rooms npm NuGet PyPi Maven - - -
UI Library npm - - - GitHub GitHub GitHub, Storybook
Advanced Messaging npm NuGet PyPi Maven - - -
Reference Documentation docs docs docs docs docs docs -

SDK platform support details

Android Calling SDK support

  • Support for Android API Level 21 or Higher
  • Support for Java 7 or higher
  • Support for Android Studio 2.0
  • Android Auto (AAOS) and IoT devices running Android are currently not supported

iOS Calling SDK support

  • Support for iOS 10.0+ at build time, and iOS 12.0+ at run time
  • Xcode 12.0+
  • Support for iPadOS 13.0+

.NET

Calling supports the following platforms:

  • UWP with .NET Native or C++/WinRT
    • Windows 10/11 10.0.17763 - 10.0.22621.0
    • Windows Server 2019/2022 10.0.17763 - 10.0.22621.0
  • WinUI3 with .NET 6
    • Windows 10/11 10.0.17763.0 - net6.0-windows10.0.22621.0
    • Windows Server 2019/2022 10.0.17763.0 - net6.0-windows10.0.22621.0

All other Communication Services packages target .NET Standard 2.0, which supports the following platforms:

  • 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

SDK package size

SDK Compressed size (MB) Uncompressed size (MB)
iOS SDK ARM64 - 17.1 MB ARM64 - 61.1 MB
Android SDK x86 – 13.3 MB x86 – 33.75 MB
x86_64 – 13.3 MB x86_64 – 35.75 MB
ARM64-v8a – 13.1 MB ARM64-v8a – 37.02 MB
armeabi-v7a – 11.4 MB armeabi-v7a – 23.97 MB

If you want to improve your app, we suggest read the Best Practices article. It provides recommendations and a checklist to review before releasing your app.

REST APIs

Communication Services APIs are documented alongside other Azure REST APIs. This documentation tells 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 generally follows two supportability policies for retiring service versions:

  • You're 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're 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. The update should be a 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: