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 |
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 | - | - | - |
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:
- Calling SDK Overview
- Call Automation SDK Overview
- Chat SDK Overview
- SMS SDK Overview
- Email SDK Overview
To get started with Azure Communication Services:
Feedback
Submit and view feedback for