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 |
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 | - | - | - |
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:
- Calling SDK Overview
- Call Automation SDK Overview
- Job Router SDK Overview
- Chat SDK Overview
- SMS SDK Overview
- Email SDK Overview
- Advanced Messaging SDK Overview
To get started with Azure Communication Services:
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for