通話 SDK 概觀

Azure 通訊服務 可讓終端使用者瀏覽器、應用程式和服務驅動語音和視訊通訊。 此頁面著重於呼叫用戶端 SDK,其可內嵌在網站和原生應用程式中。 此頁面提供呼叫用戶端功能的詳細描述,例如平臺和瀏覽器支持資訊。 服務會以程序設計方式使用 呼叫自動化 API 來管理和存取呼叫。 會議室 API 是選擇性 Azure 通訊服務 API,可將其他功能新增至語音或視訊通話,例如角色和許可權。

注意

請透過進行這份簡短的調查,與我們分享您對 Azure 通訊服務 的看法和意見反應。

若要使用通話 SDK 建置您自己的用戶體驗,請參閱 通話快速入門通話主圖範例

如果您想要協助用戶體驗,Azure 通訊服務 UI 連結庫會提供開放原始碼生產就緒 UI 元件的集合,以放入您的應用程式。 透過這組預先建置的控件,您可以使用 Microsoft 的 Fluent 設計語言來建立美觀的通訊體驗。 如果您想要深入瞭解 UI 連結庫,請瀏覽 概觀網站或Storybook

開始開發之後,請查看 已知問題頁面 ,以找出我們正在處理的 Bug。

SDK 連結

平台 Web (JavaScript) Windows (.NET) iOS Android 其他
通話 npm \(英文\) NuGet (英文) GitHub Maven
UI 程式庫 npm \(英文\) - GitHub GitHub GitHubStorybook

主要功能

  • 裝置管理 和媒體 - 通話 SDK 提供系結至音訊和視訊裝置的功能、編碼內容以透過通訊數據平面有效率地傳輸,並將內容轉譯至您指定的輸出裝置和檢視。 也提供 API 以供螢幕和應用程式共用使用。
  • PSTN - 通話 SDK 可以使用您在 Azure 入口網站 或以程式設計方式取得的電話號碼,使用傳統的公開電話網路來起始語音通話。 您也可以使用工作階段框線控制器攜帶自己的數位。
  • Teams 會議與通話 - 通話 SDK 可以 加入 Teams 會議 ,並與 Teams 語音和視訊數據平面互動。
  • 加密 - 呼叫 SDK 會加密流量,並防止網路遭到竄改。
  • 尋址 - Azure 通訊服務 提供用來尋址通訊端點的一般分識別。 用戶端會使用這些身分識別向服務進行驗證,並彼此通訊。 這些身分識別用於呼叫 API 中,可讓客戶端瞭解誰已連線到通話(名冊)。
  • 使用者存取安全性
  • 通知 - 呼叫 SDK 提供 API,可讓用戶端收到連入呼叫的通知。 在應用程式未在前景中執行的情況下,模式可用來 引發快顯通知 (「快顯通知」),以通知終端用戶來電。
  • 媒體統計數據 - 通話 SDK 提供 VoIP 和視訊通話計量的完整深入解析。 有了這項資訊,開發人員就能更清楚瞭解通話品質,並做出明智的決策,以進一步增強其溝通體驗。
  • 視訊條件約束 - 通話 SDK 提供 API,藉由調整支援不同視訊品質層級不同通話情況的參數,藉此調整 視訊通話期間其他參數 的視訊品質
  • 使用者面向診斷 (UFD) - 通話 SDK 提供 事件 ,其設計目的是提供可能會影響通話品質的基礎問題見解。 開發人員可以訂閱觸發程式,例如弱式網路訊號或靜音麥克風,確保他們一律知道任何影響通話的因素。

詳細功能

下列清單提供目前在 Azure 通訊服務呼叫 SDK 中可用的功能集。

功能群組 功能 JS Windows Java (Android) Objective-C (iOS)
核心功能 在兩位用戶之間撥打一對一通話 ✔️ ✔️ ✔️ ✔️
撥打超過兩個使用者的群組通話(最多100位使用者) ✔️ ✔️ ✔️ ✔️
將具有兩位使用者的一對一通話升級為具有兩個以上使用者的群組通話 ✔️ ✔️ ✔️ ✔️
啟動群組之後加入群組通話 ✔️ ✔️ ✔️ ✔️
邀請另一個 VoIP 參與者加入進行中的群組通話 ✔️ ✔️ ✔️ ✔️
中電話控制 開啟/關閉您的視訊 ✔️ ✔️ ✔️ ✔️
靜音/取消靜音麥克風 ✔️ ✔️ ✔️ ✔️
將其他參與者設為靜音 ✔️1 ✔️1 ✔️1 ✔️1
在相機之間切換 ✔️ ✔️ ✔️ ✔️
本機保留/取消保留 ✔️ ✔️ ✔️ ✔️
使用中喇叭 ✔️ ✔️ ✔️ ✔️
選擇通話的喇叭 ✔️ ✔️ ✔️ ✔️
選擇通話的麥克風 ✔️ ✔️ ✔️ ✔️
顯示參與者的狀態
閑置、早期媒體、連線、已 連線、擱置、在大廳、中斷連線
✔️ ✔️ ✔️ ✔️
顯示呼叫的狀態
早期媒體、傳入、連線、響鈴、連線、保留、中斷連線、已中斷連線
✔️ ✔️ ✔️ ✔️
顯示參與者是否為靜音 ✔️ ✔️ ✔️ ✔️
顯示參與者離開通話的原因 ✔️ ✔️ ✔️ ✔️
螢幕共用 從應用程式內共用整個畫面 ✔️ ✔️2 ✔️2 ✔️2
共用特定應用程式(從執行中的應用程式清單) ✔️ ✔️2
從開啟的索引標籤清單中共用網頁瀏覽器索引標籤 ✔️
在螢幕共用期間共享系統音訊 ✔️
參與者可以檢視遠端屏幕共用 ✔️ ✔️ ✔️ ✔️
名冊 列出參與者 ✔️ ✔️ ✔️ ✔️
拿掉參與者 ✔️ ✔️ ✔️ ✔️
PSTN 與 PSTN 參與者進行一對一通話 ✔️ ✔️ ✔️ ✔️
與 PSTN 參與者進行群組通話 ✔️ ✔️ ✔️ ✔️
將具有 PSTN 參與者的一對一通話升級為群組通話 ✔️ ✔️ ✔️ ✔️
以 PSTN 參與者身分從群組通話撥出 ✔️ ✔️ ✔️ ✔️
早期媒體的支援 ✔️ ✔️ ✔️ ✔️
一般 使用音訊測試服務來測試您的麥克風、喇叭和相機(可呼叫 8:echo123) ✔️ ✔️ ✔️ ✔️
裝置管理 要求使用音訊和/或視訊的許可權 ✔️ ✔️ ✔️ ✔️
取得相機清單 ✔️ ✔️ ✔️ ✔️
設定相機 ✔️ ✔️ ✔️ ✔️
取得選取的相機 ✔️ ✔️ ✔️ ✔️
取得麥克風清單 ✔️ ✔️ 3 3
設定麥克風 ✔️ ✔️ 3 3
取得選取的麥克風 ✔️ ✔️ 3 3
取得演講者清單 ✔️ ✔️ 3 3
設定喇叭 ✔️ ✔️ 3 3
取得選取的說話者 ✔️ ✔️ 3 3
視訊轉譯 在許多地方轉譯單一視訊 (本機相機或遠端串流) ✔️ ✔️ ✔️ ✔️
設定/更新調整模式 ✔️ ✔️ ✔️ ✔️
轉譯遠端視訊串流 ✔️ ✔️ ✔️ ✔️
視訊效果 背景模糊 ✔️ ✔️ ✔️ ✔️
自定義背景影像 ✔️
音訊效果 音樂模式 ✔️ ✔️ ✔️
音訊篩選器 ✔️ ✔️ ✔️
通知 4 推播通知 ✔️ ✔️ ✔️ ✔️

1 [靜音其他人] 的功能目前為公開預覽狀態。

2 您可以使用原始媒體 API 來達成共享畫面功能。 若要深入瞭解,請流覽 原始媒體存取快速入門指南

3 呼叫 SDK 沒有適用於這些函式的明確 API,您應該改用 Android 和 iOS OS API 來達成。

4 原生平臺 TTL 的最大值為 180 天(15,552,000 秒),最小值為 5 分鐘(300 秒)。 針對 CTE(自定義 Teams 端點)/M365 身分識別,最大 TTL 值為 24 小時(86,400 秒)。

OS 和瀏覽器支援的 JavaScript 呼叫 SDK

下表代表目前可用的一組支持瀏覽器。 除非另有說明, 否則我們支持瀏覽器的最新三個主要版本(Safari 的最新三個次要版本)。

平台 Chrome Safari Edge Firefox Webview Electron
Android ✔️ ✔️ ✔️
iOS ✔️ ✔️ ✔️
macOS ✔️ ✔️ ✔️ ✔️ ✔️
Windows ✔️ ✔️ ✔️ ✔️
Ubuntu/Linux ✔️
  • iOS 或 Android 行動瀏覽器不支援傳出畫面共用。
  • Firefox 支援處於公開預覽狀態。
  • 目前,呼叫的 SDK 僅支援 Android 上的 Android 系統 WebView、iOS WebView(WKWebView) 公開預覽。 其他操作系統平臺上的其他類型的內嵌瀏覽器或 WebView 則不受正式支援,例如 GeckoView、Chromium Embedded Framework (CEF)、Microsoft Edge WebView2。 在這些平台上執行 JavaScript 呼叫 SDK 不會主動測試,可能無法運作。
  • Safari 上的 iOS 應用程式無法列舉/選取麥克風和喇叭裝置(例如,藍牙)。 此問題是 iOS 的限制,而作業系統會控制預設裝置選取。

呼叫用戶端 - 瀏覽器安全性模型

透過 HTTPS 使用 WebRTC

這類 getUserMedia WebRTC API 需要透過 HTTPS 提供呼叫這些 API 的應用程式。 針對本機開發,您可以使用 http://localhost

在 iframe 中內嵌通訊服務呼叫 SDK

新的 許可權原則(也稱為功能原則) 可在各種瀏覽器中使用。 此原則會控制應用程式如何透過跨原始 iframe 元素存取裝置的相機和麥克風,來影響呼叫案例。

如果您想要使用 iframe 從不同的網域裝載應用程式的一部分,您必須將具有正確值的屬性新增 allow 至 iframe。

例如,此 iframe 允許相機和麥克風存取:

<iframe allow="camera *; microphone *">

Android 通話 SDK 支援

  • 支援 Android API 層級 21 或更高版本
  • 支援 Java 7 或更新版本
  • 支援 Android Studio 2.0
  • 目前不支持執行 Android 的 Android AutoIoT 裝置

iOS 通話 SDK 支援

  • 在建置階段支援 iOS 10.0+ 和運行時間的 iOS 12.0+
  • Xcode 12.0+
  • 支援 iPadOS 13.0+

通話持續時間上限

通話持續時間上限為 30 小時,達到 30 小時通話持續時間上限的參與者將會與通話中斷連線。

支援的傳入視訊串流數目

Azure 通訊服務 呼叫 SDK 支援下列串流設定:

限制 Web Windows/Android/iOS
可以同時傳送的傳出本機數據流上限 # 1 個影片和1個螢幕共用 1 個影片 + 1 個螢幕共用
可以同時轉譯的傳入遠端資料流上限 # 桌面瀏覽器上的 9 個影片 + 1 個螢幕共用*,4 個影片 + 1 個網頁行動瀏覽器的螢幕共用 9 個影片 + 1 個螢幕共用

* 從 Azure 通訊服務 Web 通話 SDK 1.16.3開始,雖然通話 SDK 未強制執行這些限制,但若超過限制,您的使用者可能會遇到效能降低的情況。 使用最佳視訊計數API,判斷 Web 環境可支援的目前傳入視訊串流數目。

支援的視訊解析度

Azure 通訊服務 通話 SDK 會在通話期間自動調整視訊和螢幕共用串流的解析度。

注意

解析度可能會因通話的參與者數目、用戶端可用的頻寬量、轉譯遠程視訊結構和其他整體通話參數的本機參與者的硬體功能而有所不同。

Azure 通訊服務 通話 SDK 支援傳送下列視訊解析度

視訊解析度上限 WebJS iOS Android Windows
傳送視訊 720P 720P 720P 1080P
傳送畫面共用 1080P 1080P 1080P 1080P
接收遠端視訊串流或屏幕共用 1080P 1080P 1080P 1080P

通話支援上的參與者數目

  • 最多 350 位使用者可以加入群組通話、會議室或 Teams + ACS 通話。
  • 一旦通話大小達到 100 個以上的參與者在通話中,就可以看到只有前 4 名最佔主導地位的喇叭已開啟其攝像機。
  • 當通話的人數是 100+時,可檢視的傳入視訊數目會自動從 3x3(9 個傳入影片)減少到 2x2(4 個傳入影片)。
  • 當用戶數目低於 100 時,支援的內送影片數目會回復為 3x3(9 個傳入影片)。

呼叫 SDK 逾時

下列逾時適用於通訊服務呼叫 SDK:

動作 逾時 (單位秒)
重新連線/移除參與者 60
從通話新增或移除新形式(開始/停止視訊或螢幕共用) 40
通話轉移作業逾時 60
1:1 通話建立逾時 85
群組通話建立逾時 85
PSTN 通話建立逾時 115
將 1:1 通話升級為群組通話逾時 115

下一步

如需詳細資訊,請參閱下列文章: