Azure Communication Services (ACS)
repository·master·Indexed 43 days ago
https://github.com/azure/communicationCloud-based APIs and SDKs for integrating voice, video, chat, SMS, and email into applications. Provides specialized libraries for Calling, Chat, Email, and Identity across JavaScript, .NET, Python, Java SE, iOS, and Android, as well as production-ready UI components and administrative tools for phone number management and porting.
What's inside Azure Communication Services
- Azure Communication Services provides cloud-based services with REST APIs and client library SDKs to integrate communication features (like voice, video, chat, and SMS) into applications without requiring expertise in telecommunications networking, media encoding, or PSTN.
Overview of Azure Communication Services Email APIs
masterAzure Communication Services provides new Email APIs designed for Application-to-Person (A2P) communication. These APIs support high-volume use cases such as appointment reminders, alerts, MFA notifications, and password resets.
Key capabilities include:
- Simple REST APIs and SDKs (.NET and JavaScript).
- Custom domain support for sending emails from verified domains.
- Provisioning of Azure Managed Domains.
- Near real-time delivery status tracking.
Available features in ACS Calling Windows SDK
masterThe ACS Calling Windows SDK supports the following capabilities for building communication applications:
- Calling: Place and receive 1-1 audio/video calls and 1-N (group) audio/video calls. You can also join existing group calls.
- Call Escalation & Dial-out: Escalate a 1-1 call to a group call by adding a VoIP participant, or dial-out to a VoIP participant to join an ongoing group call.
- Video Management: Preview local video camera, share local video camera streams, render video from participants, and render screenshare from participants.
- Device & Media Control: List audio/video devices and perform mid-call operations such as Mute/Unmute, Turn Video on/off, and switching between video devices.
- Participant Management: Add or remove participants from an ongoing audio/video call.
- PSTN Support: Place calls to PSTN (Public Switched Telephone Network) participants.
- Notifications: Support for push notifications for incoming audio/video calls.
- Testing: Test microphone, speaker, and camera via the audio testing service by calling
8:echo123.
View the Azure Communication Services roadmap
masterThe Azure Communication Services roadmap provides visibility into significant features currently in development or planned for upcoming quarters. The roadmap tracks features by Area (e.g., Calling, SMS, Chat, Rooms), Release status (Public Preview or GA), and current Status (Launched, In Progress, etc.).
Note that these plans are subject to change and are intended to provide visibility into key investments rather than a comprehensive list of all work.
Initial capabilities of the ACS Calling Web (JavaScript) SDK
masterThe initial release (v1.0.0-beta.1) of the Azure Communication Services for JavaScript (Web) SDK provides core audio and video calling capabilities.
Supported Features:
- Call Types: 1-1 audio/video calls, 1-N (group) audio/video calls, and joining existing group calls.
- Call Management: Escalate 1-1 calls to group calls by adding VOIP participants, joining calls with microphone muted, and hold/unhold functionality.
- Media Control: Mid-call operations including mute/unmute, turning video on/off, and adding/removing participants.
- Device Management: Using
DeviceManagerto list and set audio/video devices, setting camera devices before or during a call, and local camera previews. - Visuals & Sharing: Remote video rendering, screen-sharing support, and remote participant states.
- Events: Monitoring
CallandRemoteParticipantstates via property changed and collection updated events. - PSTN: Ability to place calls to PSTN participants (requires a PSTN number in ACS).
- Testing: Audio testing service available by calling
8:echo123to test mic, speaker, and camera.
Access transaction forms for Azure Communication Services
masterThis repository contains specific forms required to perform certain administrative or bulk transactions within Azure Communication Services. These forms are used for:
- Number porting: Moving existing phone numbers to Azure Communication Services.
- Special bulk orders: Placing large-scale orders for communication resources.
- Bulk file for toll-free verification: Submitting files to verify toll-free numbers for compliance.
For conceptual guidance on how these resources work, refer to the official Azure documentation for phone number types, telephony concepts, and SMS concepts.
Send emails with Azure Communication Services Email SDK
masterThe Azure Communication Services SDK for Email (available in Java and Python) allows you to:
- Send emails to multiple recipients.
- Include attachments in emails.
- Retrieve the status of a sent message.
Chat SDK features for Android and iOS
masterRecent updates to the Azure Communication Services Chat SDKs include:
Android (v1.1.0):
- General Availability (GA) support for push notifications.
iOS (v1.1.0):
- General Availability (GA) release of the SDK.
- Support for adding metadata to chat messages.
- Support for adding a display name to typing indicators.
Available features in ACS Calling iOS SDK (Public Preview)
masterThe following calling capabilities are available in the SDK:
- Call Types: Place and receive 1-1 and 1-N (group) audio/video calls; join group calls; escalate 1-1 calls to group calls by adding a VOIP participant; dial-out to a VOIP participant to join an ongoing group call.
- Media & Video: Preview local video camera; share local video camera stream; render video from participants; render screenshare from participants.
- Device Management: List audio/video devices; switch between video devices.
- Mid-call Operations: Mute/Unmute; Turn Video on/off; Add/Remove participants from an ongoing call.
- Connectivity: Push notification support for incoming calls; place calls to PSTN participants.
- Testing: Test mic, speaker, and camera via the audio testing service by calling
8:echo123.
Note on PSTN: While the SDK supports PSTN calls, you must have a PSTN number in ACS. PSTN functionality is subject to availability and may be under private preview.
Render up to 16 incoming videos (4x4 grid) on desktop
masterThe ability to render a 4x4 grid (16 incoming videos) is GA on desktop browsers.
Minimum Recommended Requirements:
- 16GB RAM
- 4-core CPU (no older than 3 years)
Implementation Note: Use the
OVC(Optimal Video Count) API to determine and render the most optimal count of incoming videos for the user's environment.Handle User Facing Diagnostics (UFDs)
masterThe SDK provides User Facing Diagnostics (UFDs) to help developers identify and communicate device or network issues to the end user.
Key UFDs include:
capturerStartFailed: Triggered when failing to start screen-share or recovery.capturerStoppedUnexpectedly: Triggered when screen-share stops working unexpectedly.cameraStoppedUnexpectedly: Triggered when the camera stops working unexpectedly.networkSendQuality: Triggered when network send quality is poor or during recovery.isSpeakingWhileDeviceIsMuted: Triggered when a user speaks while their microphone is muted.
Manage Room Participant Roles with Collaborator Role
masterTheCollaboratorrole can be assigned to participants in Rooms. This role grants specific permissions for using audio, video, and screensharing features within the virtual room or call.