Azure / azure-sdk

This is the Azure SDK parent repository and mostly contains documentation around guidelines and policies as well as the releases for the various languages supported by the Azure SDK.
http://azure.github.io/azure-sdk
MIT License
493 stars 302 forks source link

Board Review: Azure Communication Services (SPOOL) [Rooms] (Android & iOS) #4525

Closed garchiro7 closed 2 years ago

garchiro7 commented 2 years ago

Team members: antonsamson@microsoft.com elavarasid@microsoft.com radubulboaca@microsoft.com

Rooms overview

Azure Communication Services (ACS) Rooms is a set of APIs, used by Contoso server applications to create a server-managed conversation space with fixed set of lifetime and participants, pre-defining rules from server-tier both who and when can communicate (like scheduled meeting creation).

With the Public Preview release of ACS Rooms, Contoso will be able to: 1) create a meeting space with known time coordinates (start/end time), 2) join voice/video calls within that meeting space using the ACS web calling SDK or native mobile calling SDKs, 3) add participants to a room, 4) assign pre-defined roles to room participants, 5) set rooms call join policies (e.g., open or closed room), and 6) consume Event Grid notifications for calling events.

The server-side functionalities can be accessed via a refreshed API and a full set of SDKs (.NET, Java, Python, JavaScript/TypeScript).

The main scenarios where Rooms can best be used:

Champion scenarios

Contoso College is a fictional educational institution that provides both on-campus and online programs. Contoso College administrator would like to create a virtual space/room for each offered course where course owner can hold virtual meetings and exchange messages with students. Only registered students should have access to associated room.

Detailed champion scenario: Rooms Azure Board Review - Champion Scenarios - Overview (visualstudio.com)

Rooms Architecture specification

Rooms service builds on top of existing IC3 calling services. The service acts as abstraction and coordinating layer between public APIs and IC3 services. It is compute-only service at first, all storage being handled by IC3 Scheduling Service.

Room service itself will NOT be on active calling path. Call operations (e.g., join call) do not go via Rooms server API, except for roster-management. Rooms API is service-to-service, with no user-level actions.

Rooms service main responsibilities:

Rooms Architecture

Detailed rooms architecture document

Rooms Concept

Here are the main scenarios where rooms are useful:

When to use rooms: acs-rooms-decisiontree

Details: Azure Communication Services Rooms overview - An Azure Communication Services concept document | Microsoft Docs

API View links:

Android

Android: azure-communication-calling (version 2.4.0-beta.1) - Enable Rooms and roles in BETA - apiview.dev

iOS

iOS: AzureCommunicationCalling (version 2.4.0-beta.1) - Enable Rooms and roles in BETA - apiview.dev

kyle-patterson commented 2 years ago

Scheduled for 8/10 2p-4p PDT

tg-msft commented 2 years ago

Recording (MS INTERNAL ONLY)

antonsamson-msft commented 2 years ago

As requested in the review, we have uploaded a revision to the shared iOS API View and have since received a sign off for our proposed changes: AzureCommunicationCalling (version 2.4.0-beta.1)

However, we are exploring releasing the new Rooms functionality sooner as a part of the 2.3.0-beta.1 release instead of 2.4.0-beta.1 and are seeking feedback. The approved changes for 2.4.0-beta.1 are built on top of 2.3.0-beta.1 and should pose no additional risk if applied to 2.3.0-beta.1.

antonsamson-msft commented 2 years ago

API Views were approved for iOS and Android (offline) and PRs merged.

2.3.0-beta.1 iOS API View 2.4.0-beta.1 Android API View

Changes delivered as a part of Calling Client 2.4.0-beta.1 Android SDK and 2.3.0-beta.1 of iOS SDK.