SDKs and REST APIs
Azure Communication Services capabilities are conceptually organized into eight areas. 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 also note if APIs and SDKs are intended for end-user clients or trusted service environments. APIs and SDKs such as SMS should not be directly accessed by end-user devices in low trust environments.
Development of Web-based Calling and Chat applications can be accelerated by Azure Communication Services UI libraries. The UI library provides production-ready UI components that you can drop into your applications.
REST APIs
Communication Services APIs are documented alongside other Azure REST APIs in docs.microsoft.com. This documentation will tell you how to structure your HTTP messages and offers guidance for using Postman. REST interface documentation is also offered in Swagger format on GitHub.
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 |
| 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 |
| Calling Server | REST | Service | Make and manage calls, play audio, and configure recording |
| 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 | - | - | - |
| Calling | npm | NuGet | - | - | GitHub | Maven | - |
| Call Automation | NuGet | Maven | |||||
| Network Traversal | npm | NuGet | PyPi | Maven | - | - | - |
| UI Library | npm | - | - | - | - | - | GitHub, Storybook |
| Reference Documentation | docs | docs | - | docs | docs | docs | - |
The mapping between friendly assembly names and namespaces is:
| Assembly | Namespaces |
|---|---|
| Azure Resource Manager | Azure.ResourceManager.Communication |
| Common | Azure.Communication.Common |
| Identity | Azure.Communication.Identity |
| Phone numbers | Azure.Communication.PhoneNumbers |
| SMS | Azure.Communication.SMS |
| Chat | Azure.Communication.Chat |
| Calling | Azure.Communication.Calling |
| Calling Server | Azure.Communication.CallingServer |
| Network Traversal | Azure.Communication.NetworkTraversal |
| UI Library | Azure.Communication.Calling |
REST API Throttles
Certain REST APIs and corresponding SDK methods have throttle limits you should be mindful of. Exceeding these throttle limits will trigger a429 - Too Many Requests error response. These limits can be increased through a request to Azure Support.
| API | Throttle |
|---|---|
| All Search Telephone Number Plan APIs | 4 requests/day |
| Purchase Telephone Number Plan | 1 purchase a month |
| Send SMS | 200 requests/minute |
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
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: