Azure Communication Services を使用すると、エンド ユーザーのブラウザー、アプリ、サービスで音声およびビデオ通信を促進できます。 この記事では、Web サイトとネイティブ アプリケーションに埋め込むことができるクライアント SDK の呼び出しについて説明します。 この記事では、プラットフォームやブラウザーのサポート情報などのクライアント機能の呼び出しについて詳しく説明します。 サービスは、 Call Automation API を使用してプログラムによって呼び出しを管理およびアクセスします。 Rooms API は、ロールやアクセス許可など、音声通話やビデオ通話にさらに多くの機能を追加するオプションの Azure Communication Services API です。
Calling SDK を使用して独自のユーザー エクスペリエンスを構築するには、 呼び出しのクイックスタート または ヒーローの呼び出しのサンプルを参照してください。
エンド ユーザー エクスペリエンスに関するヘルプが必要な場合、Azure Communication Services UI ライブラリには、アプリケーションにドロップする、運用環境に対応したオープンソースの UI コンポーネントのコレクションが用意されています。 この一連の事前構築済みコントロールを使用すると、 Microsoft の Fluent デザイン言語を使用して美しいコミュニケーション エクスペリエンスを作成できます。 UI ライブラリの詳細については、 概要サイトを参照してください。
開発を開始したら、 既知の問題 を確認して、取り組んでいるバグを見つけます。
SDK のリンク
プラットフォーム | Web (JavaScript) | Windows (.NET) | iOS | アンドロイド | その他 |
---|---|---|---|---|---|
通話 | npm | NuGet | GitHubの | Maven | |
UI ライブラリ | npm | - | GitHubの | GitHubの | GitHub、 ストーリーブック |
主な機能
- デバイス管理とメディア - Calling SDK は、オーディオ デバイスとビデオ デバイスへのバインド機能、通信データプレーンを介した効率的な送信のためのコンテンツのエンコード機能、指定した出力デバイスおよび出力ビューへのコンテンツのレンダリング機能を提供します。 画面とアプリケーションの共有用 API も用意されています。
- PSTN - 通話 SDK は、 Azure portal またはプログラムで取得した電話番号を使用して 、従来のパブリックに切り替えた電話網で音声通話を開始できます。 セッション ボーダー コントローラーを使用して、独自の番号を使用することもできます。
- Teams 会議と通話 - 通話 SDK は Teams 会議に参加 し、Teams の音声およびビデオ データ プレーンと対話できます。
- 暗号化 - Calling SDK はトラフィックを暗号化し、ネットワークの改ざんを防ぎます。
- アドレス指定 - Azure Communication Services は、通信エンドポイントのアドレス指定に使用される汎用 ID を 提供します。 クライアントは、これらの ID を使用してサービスに対する認証を行い、相互に通信します。 これらの ID は、通話に接続されているユーザーが誰なのか (名簿) をクライアントが可視化できるようにする通話 API で使用されます。
-
ユーザー アクセスセキュリティ
- 名簿 の制御、 スケジュール 制御、およびユーザー ロール/アクセス許可 は、 Virtual Rooms を通じて適用されます。
- ユーザーが新しい呼び出しを開始したり、既存の呼び出しに参加したりする機能は、ユーザー ID とトークンを使用して管理できます。
- 通知 - Calling SDK には、クライアントに着信呼び出しの通知を受け取ることができる API が用意されています。 アプリがフォアグラウンドで実行されていない場合は、パターンを使用して ポップアップ通知 または トースト を起動し、エンド ユーザーに着信通話を通知できます。
- メディア統計 - Calling SDK は、VoIP 通話とビデオ通話の メトリックに関する 包括的な分析情報を提供します。 この情報により、開発者は通話品質をより明確に理解し、情報に基づいて意思決定を行い、コミュニケーションエクスペリエンスをさらに向上させることができます。
- ビデオ制約 - Calling SDK は、解像度やフレーム レートなどのパラメーターを調整することで、ビデオ通話中の 他のパラメーター間でビデオ品質 を調整する機能を提供する API を提供し、さまざまなレベルのビデオ品質に対応するさまざまな呼び出し状況をサポートします
- ユーザー向け診断 (UFD) - 呼び出し元 SDK は、通話品質に影響を与える可能性がある根本的な問題に関する分析情報を提供するように設計された イベント を提供します。 開発者は、弱いネットワーク信号やミュートされたマイクなどのトリガーをサブスクライブして、通話に影響を与える要因を常に認識できます。
- リアルタイム テキスト (RTT) - リアルタイム テキスト (RTT) は、通話中にほぼリアルタイムでテキストを送信する機能を開発者に提供します。 この機能は、話すのが難しい個人を支援するために設計されており、話し言葉のコミュニケーションと同様に、テキスト メッセージが他の会議参加者に目立つように表示されます。
詳細な機能
次の一覧は、Azure Communication Services Calling SDK で現在使用できる機能のセットを示しています。
機能のグループ | 機能 | JavaScript | ウィンドウズ | Java (Android) | Objective-C (iOS) |
---|---|---|---|---|---|
コア機能 | 2 人のユーザー間で一対一の通話を行う | ✔️ | ✔️ | ✔️ | ✔️ |
3 人以上のユーザーでグループ通話を行う (最大 100 ユーザー) | ✔️ | ✔️ | ✔️ | ✔️ | |
2 人のユーザーによる一対一の通話を 3 人以上のユーザーによるグループ通話に昇格させる | ✔️ | ✔️ | ✔️ | ✔️ | |
開始後にグループ通話に参加する | ✔️ | ✔️ | ✔️ | ✔️ | |
別の VoIP 参加者を招待して、進行中のグループ通話に参加させる | ✔️ | ✔️ | ✔️ | ✔️ | |
通話中の制御 | ビデオをオンまたはオフにする | ✔️ | ✔️ | ✔️ | ✔️ |
マイクをミュート/ミュート解除する | ✔️ | ✔️ | ✔️ | ✔️ | |
他の参加者をミュートする | ✔️ | ✔️1 | ✔️1 | ✔️1 | |
カメラを切り替える | ✔️ | ✔️ | ✔️ | ✔️ | |
ローカルの保留/保留解除 | ✔️ | ✔️ | ✔️ | ✔️ | |
有効なスピーカー | ✔️ | ✔️ | ✔️ | ✔️ | |
通話用のスピーカーを選択する | ✔️ | ✔️ | ✔️ | ✔️ | |
通話用のマイクを選択する | ✔️ | ✔️ | ✔️ | ✔️ | |
参加者の状態を表示する アイドル状態、初期メディア、接続中、接続、保留中、ロビー、切断 |
✔️ | ✔️ | ✔️ | ✔️ | |
通話の状態を表示する 初期メディア、着信、接続中、呼び出し中、接続、保留、切断中、切断 |
✔️ | ✔️ | ✔️ | ✔️ | |
参加者がミュートされているかどうかを表示する | ✔️ | ✔️ | ✔️ | ✔️ | |
参加者が通話を終了した理由を表示する | ✔️ | ✔️ | ✔️ | ✔️ | |
画面共有 | アプリケーション内から画面全体を共有する | ✔️ | ✔️2 | ✔️2 | ✔️2 |
(実行中のアプリケーションの一覧から) 特定のアプリケーションを共有する | ✔️ | ✔️2 | ❌ | ❌ | |
開いているタブの一覧から Web ブラウザー タブを共有する | ✔️ | ||||
画面共有中にシステム オーディオを共有する | ✔️ | ❌ | ❌ | ❌ | |
参加者はリモート スクリーン共有を表示可能 | ✔️ | ✔️ | ✔️ | ✔️ | |
ロスター | 参加者の一覧表示 | ✔️ | ✔️ | ✔️ | ✔️ |
参加者の削除 | ✔️ | ✔️ | ✔️ | ✔️ | |
PSTN | PSTN 参加者と一対一の通話を行う | ✔️ | ✔️ | ✔️ | ✔️ |
PSTN 参加者とグループ通話を行う | ✔️ | ✔️ | ✔️ | ✔️ | |
PSTN 参加者との一対一の通話をグループ通話に昇格させる | ✔️ | ✔️ | ✔️ | ✔️ | |
グループ通話から PSTN 参加者としてダイヤルアウトする | ✔️ | ✔️ | ✔️ | ✔️ | |
初期メディアのサポート | ✔️ | ✔️ | ✔️ | ✔️ | |
全般 | オーディオ テスト サービスを使用して、マイク、スピーカー、およびカメラをテストする (8:echo123 に通話することで利用可能) | ✔️ | ✔️ | ✔️ | ✔️ |
デバイスの管理 | オーディオまたはビデオを使用するアクセス許可を求める | ✔️ | ✔️ | ✔️ | ✔️ |
カメラの一覧を取得する | ✔️ | ✔️ | ✔️ | ✔️ | |
カメラを設定する | ✔️ | ✔️ | ✔️ | ✔️ | |
選択したカメラを取得する | ✔️ | ✔️ | ✔️ | ✔️ | |
マイクの一覧を取得する | ✔️ | ✔️ | ❌ 3 | ❌ 3 | |
マイクを設定する | ✔️ | ✔️ | ❌ 3 | ❌ 3 | |
選択したマイクを取得する | ✔️ | ✔️ | ❌ 3 | ❌ 3 | |
スピーカーの一覧を取得する | ✔️ | ✔️ | ❌ 3 | ❌ 3 | |
スピーカーを設定する | ✔️ | ✔️ | ❌ 3 | ❌ 3 | |
選択したスピーカーを取得する | ✔️ | ✔️ | ❌ 3 | ❌ 3 | |
ビデオのレンダリング | 複数の場所で 1 つのビデオをレンダリングする (ローカル カメラまたはリモート ストリーム) | ✔️ | ✔️ | ✔️ | ✔️ |
スケーリング モードを設定または更新する | ✔️ | ✔️ | ✔️ | ✔️ | |
リモート ビデオ ストリームをレンダリングする | ✔️ | ✔️ | ✔️ | ✔️ | |
ビデオ効果 | 背景ぼかし | ✔️ | ✔️ | ✔️ | ✔️ |
カスタム背景画像 | ✔️ | ✔️ | ✔️ | ✔️ | |
オーディオ効果 | 音楽モード | ❌ | ✔️ | ✔️ | ✔️ |
エコーのキャンセル | ❌ | ✔️ | ✔️ | ✔️ | |
ノイズ抑制 | ✔️ | ✔️ | ✔️ | ✔️ | |
自動ゲイン制御 (AGC) | ❌ | ✔️ | ✔️ | ✔️ | |
アクセシビリティ | リアルタイム テキスト (RTT) | ✔️ | ✔️ | ✔️ | ✔️ |
通知 4 | プッシュ通知 | ✔️ | ✔️ | ✔️ | ✔️ |
カスタム コンテキスト | ユーザー間 (UUI) またはカスタム ヘッダーを呼び出しに追加する | ✔️ | ❌ | ❌ | ❌ |
1 他のユーザーをミュートする機能は、現在パブリック プレビュー段階です。
2 共有画面機能は、Raw Media API を使用して実現できます。 詳細については、 生メディア アクセスのクイック スタート ガイドを参照してください。
3 Calling SDK には、これらの関数用の明示的な API がありません。 代わりに、Android と iOS OS の API を使って実現します。
4 ネイティブ プラットフォームでの TTL の最大値は 180 日 (15,552,000 秒)、最小値は 5 分 (300 秒) です。 CTE (カスタム Teams エンドポイント)/M365 ID の場合、最大 TTL 値は 24 時間 (86,400 秒) です。
OS とブラウザーによる JavaScript Calling SDK のサポート
次の表は、現在使用可能な、サポートされているブラウザーのセットを示しています。 特に明記されていない限り、ブラウザーの最新の 3 つのメジャー バージョン (Safari の最新の 3 つのマイナー バージョン) がサポートされます。
プラットフォーム | クロム | サファリ | エッジ | Firefox | WebView | 電子 |
---|---|---|---|---|---|---|
アンドロイド | ✔️ | ❌ | ✔️ | ❌ | ✔️ | ❌ |
iOS | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ❌ |
macOS | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
ウィンドウズ | ✔️ | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
Ubuntu、Linux | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ |
- iOS および Android のモバイル ブラウザーでは、画面共有の発信側になることはサポートされていません。
- Firefox のサポートはパブリック プレビュー段階です。
- 現在、Calling SDK では Android 上の Android System WebView、パブリック プレビューの iOS WebView (WKWebView) のみがサポートされています。 他の種類の埋め込みブラウザーや、他の OS プラットフォーム上の WebView は、正式にサポートされていません (GeckoView、Chromium Embedded Framework (CEF)、Microsoft Edge WebView2 など)。 これらのプラットフォームで JavaScript Calling SDK を実行することは、積極的にテストされておらず、動作したりしなかったりする可能性があります。
- Safari 上の iOS アプリでは、マイクデバイスとスピーカー デバイス (Bluetooth など) を列挙または選択できません。 この問題は iOS の制限であり、オペレーティング システムによって既定のデバイスの選択が制御されます。
通話クライアント - ブラウザーのセキュリティ モデル
HTTPS 経由で WebRTC を使用する
getUserMedia
などの WebRTC API では、これらの API を呼び出すアプリが HTTPS 経由で提供される必要があります。 ローカル開発の場合は、http://localhost
を使用できます。
Communication Services 通話 SDK を iframe に埋め込む
新しい アクセス許可ポリシー (機能ポリシーとも呼ばれます) は、さまざまなブラウザーで使用できます。 このポリシーは、アプリケーションがクロスオリジン iframe 要素を介してデバイスのカメラとマイクにアクセスする方法を制御することで通話シナリオに影響を与えます。
iframe を使用して別のドメインからアプリの一部をホストする場合は、適切な値を指定した allow
属性を iframe に追加する必要があります。
たとえば、次の iframe では、カメラとマイクの両方へのアクセスを許可します。
<iframe allow="camera *; microphone *">
Android Calling SDK のサポート
- Android API レベル 21 以上のサポート
- Java 7 以上のサポート
- Android Studio 2.0 のサポート
サポートされている Android プラットフォームにアクセスして、シナリオを特定して検証することを強くお勧めします
iOS Calling SDK のサポート
- 最後の 2 つの主要な iOS オペレーティング システムの更新プログラムをサポートする (iOS 最小 OS サポートの場合は N と N-1)
- Xcode 12.0 以上
- iPadOS 13.0 以降のサポート
最大通話時間
最大通話時間は 30 時間 で、最大通話時間の有効期間 30 時間に達した参加者は通話から切断されます。
サポートされている受信ビデオ ストリームの数
Azuer Communication Services Calling SDK では、次のストリーミング構成がサポートされています。
制限 | ウェブ | Windows/Android/iOS |
---|---|---|
同時に送信できる送信ローカル ストリームの最大数 | 1 つのビデオと 1 つの画面の共有 | 1 つのビデオと 1 つの画面の共有 |
同時にレンダリングできる受信リモート ストリームの最大数 | 16 個のビデオ + デスクトップ ブラウザーで 1 つの画面共有*、4 個のビデオ + Web モバイル ブラウザーでの 1 つの画面共有 | 9 つのビデオと 1 つの画面の共有 |
* Azure Communication Services Web Calling SDK バージョン 1.16.3 以降。 Calling SDK ではこれらの制限は適用されませんが、それを超えた場合、パフォーマンスの低下をユーザーが感じる可能性があります。 最適なビデオ数の API を使用して、Web 環境でサポートできる受信ビデオ ストリームの数を決定します。 16 個の受信ビデオを適切にサポートするには、コンピューターには 16 GB 以上の RAM と、3 歳未満の 4 コア以上の CPU が必要です。
サポートされているビデオ解像度
Azure Communication Services Calling SDK は、通話中のビデオおよび画面共有ストリームの解像度を自動的に調整します。
注
解決は、通話の参加者の数、クライアントが使用できる帯域幅の量、リモート ビデオ ストリームをレンダリングするローカル参加者のハードウェア機能、その他の全体的な通話パラメーターによって異なる場合があります。
Azure Communication Services Calling SDK では、次のビデオ解像度の送信がサポートされています
最大ビデオ解像度 | WebJS デスクトップ | WebJS Mobile | iOS | アンドロイド | ウィンドウズ |
---|---|---|---|---|---|
ビデオの送信 | 1080p enable | 720p | 720p | 720p | 1080p |
画面共有の送信 | 1080p | NAの | 720p | 720p | 1080p |
リモート ビデオまたは画面共有の受信 | 1080p | 720p | 720p | 720p | 1080p |
通話参加者数のサポート
- Web デスクトップ ブラウザーから 1080p を有効にする方法の詳細な手順を参照してください。
- 最大 350 人のユーザーがグループ通話、会議室通話、または Teams + Azure Communication Services 通話に参加できます。
- 通話の参加者が 100 人を超えると、Calling SDK には、ビデオ カメラがアクティブになっている話者のうち最も活発な上位 4 人のみが表示されます。
- 通話中のユーザー数が 100 名を超えると、表示可能な着信ビデオの数が 4x4 (16 個の着信ビデオ) から 2x2 (4 個の着信ビデオ) に自動的に減ります。
- ユーザー数が 100 を下回ると、サポートされる着信ビデオの数は最大 4x4 (16 個の着信ビデオ) に戻ります。
- モバイル ブラウザー内の制限により、モバイル ブラウザーからの画面共有を利用できません。
Calling SDK のタイムアウト
Communication Services Calling SDK では、次のタイムアウトが適用されます。
アクション | タイムアウト (秒) |
---|---|
参加者の再接続/削除 | 六十 |
通話に対する新しいモダリティの追加または削除 (ビデオまたはスクリーン共有の開始/停止) | 40 |
通話転送操作に関わるタイムアウト | 六十 |
1:1 通話確立に関わるタイムアウト | 85 |
グループ通話確立に関わるタイムアウト | 85 |
PSTN 通話確立に関わるタイムアウト | 115 |
1:1 通話のグループ通話への昇格に関わるタイムアウト | 115 |
次のステップ
関連記事
- 一般的な 通話フローについて理解を深めます。
- 通話の種類について説明します。
- クライアント アプリケーションで 呼び出し をルーティングおよび制御できるサーバーベースの呼び出しワークフローを構築できる呼び出し自動化 API について説明します。
- PSTN ソリューションを計画します。