通知 SDK の概要
Azure Communication Services を使用すると、エンド ユーザーのブラウザー、アプリ、サービスで音声とビデオの通信を促進できます。 このページでは、Web サイトとネイティブ アプリケーションに埋め込むことができる Calling Client SDK について説明します。 このページでは、プラットフォームとブラウザーのサポート情報を含め、Calling クライアントの機能について詳しく説明します。 サービスでは、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 | Android | その他 |
---|---|---|---|---|---|
通話 | npm | NuGet | GitHub | Maven | |
UI ライブラリ | npm | - | GitHub | GitHub | GitHub、Storybook |
主な機能
- デバイス管理とメディア - Calling SDK は、オーディオ デバイスとビデオ デバイスへのバインド機能、通信データプレーンを介した効率的な送信のためのコンテンツのエンコード機能、指定した出力デバイスおよび出力ビューへのコンテンツのレンダリング機能を提供します。 画面とアプリケーションの共有用 API も用意されています。
- PSTN - Calling SDK は、プログラムまたは Azure portal で取得した電話番号を使用することにより、従来の公衆交換電話網を使用して音声通話を開始することができます。 セッション ボーダー コントローラーを使用して、独自の番号を使用することもできます。
- Teams の会議および通話 - Calling 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) - Calling SDK は、通話品質に影響を与える可能性がある根本的な問題に関する分析情報を提供するように設計されたイベントを提供します。 開発者は、弱いネットワーク信号やミュートされたマイクなどのトリガーをサブスクライブして、通話に影響を与える要因を常に認識できます。
詳細な機能
次の一覧は、Azure Communication Services Calling SDK で現在使用できる機能のセットを示しています。
機能のグループ | 機能 | JS | Windows | Java (Android) | Objective-C (iOS) |
---|---|---|---|---|---|
コア機能 | 2 人のユーザー間で一対一の通話を行う | ✔️ | ✔️ | ✔️ | ✔️ |
3 人以上のユーザーでグループ通話を行う (最大 100 ユーザー) | ✔️ | ✔️ | ✔️ | ✔️ | |
2 人のユーザーによる一対一の通話を 3 人以上のユーザーによるグループ通話に昇格させる | ✔️ | ✔️ | ✔️ | ✔️ | |
開始後にグループ通話に参加する | ✔️ | ✔️ | ✔️ | ✔️ | |
別の VoIP 参加者を招待して、進行中のグループ通話に参加させる | ✔️ | ✔️ | ✔️ | ✔️ | |
通話中の制御 | ビデオをオンまたはオフにする | ✔️ | ✔️ | ✔️ | ✔️ |
マイクをミュート/ミュート解除する | ✔️ | ✔️ | ✔️ | ✔️ | |
他の参加者をミュートする | ✔️ | ✔️1 | ✔️1 | ✔️1 | |
カメラを切り替える | ✔️ | ✔️ | ✔️ | ✔️ | |
ローカルの保留/保留解除 | ✔️ | ✔️ | ✔️ | ✔️ | |
有効なスピーカー | ✔️ | ✔️ | ✔️ | ✔️ | |
通話用のスピーカーを選択する | ✔️ | ✔️ | ✔️ | ✔️ | |
通話用のマイクを選択する | ✔️ | ✔️ | ✔️ | ✔️ | |
参加者の状態を表示する アイドル状態、初期メディア、接続中、接続、保留中、ロビー、切断 |
✔️ | ✔️ | ✔️ | ✔️ | |
通話の状態を表示する 初期メディア、着信、接続中、呼び出し中、接続、保留、切断中、切断 |
✔️ | ✔️ | ✔️ | ✔️ | |
参加者がミュートされているかどうかを表示する | ✔️ | ✔️ | ✔️ | ✔️ | |
参加者が通話を終了した理由を表示する | ✔️ | ✔️ | ✔️ | ✔️ | |
画面共有 | アプリケーション内から画面全体を共有する | ✔️ | ✔️2 | ✔️2 | ✔️2 |
(実行中のアプリケーションの一覧から) 特定のアプリケーションを共有する | ✔️ | ✔️2 | ❌ | ❌ | |
開いているタブの一覧から Web ブラウザー タブを共有する | ✔️ | ||||
画面共有中にシステム オーディオを共有する | ✔️ | ❌ | ❌ | ❌ | |
参加者はリモート スクリーン共有を表示可能 | ✔️ | ✔️ | ✔️ | ✔️ | |
Roster | 参加者の一覧表示 | ✔️ | ✔️ | ✔️ | ✔️ |
参加者の削除 | ✔️ | ✔️ | ✔️ | ✔️ | |
PSTN | PSTN 参加者と一対一の通話を行う | ✔️ | ✔️ | ✔️ | ✔️ |
PSTN 参加者とグループ通話を行う | ✔️ | ✔️ | ✔️ | ✔️ | |
PSTN 参加者との一対一の通話をグループ通話に昇格させる | ✔️ | ✔️ | ✔️ | ✔️ | |
グループ通話から PSTN 参加者としてダイヤルアウトする | ✔️ | ✔️ | ✔️ | ✔️ | |
初期メディアのサポート | ✔️ | ✔️ | ✔️ | ✔️ | |
全般 | オーディオ テスト サービスを使用して、マイク、スピーカー、およびカメラをテストする (8:echo123 に通話することで利用可能) | ✔️ | ✔️ | ✔️ | ✔️ |
デバイスの管理 | オーディオまたはビデオを使用するアクセス許可を求める | ✔️ | ✔️ | ✔️ | ✔️ |
カメラの一覧を取得する | ✔️ | ✔️ | ✔️ | ✔️ | |
カメラを設定する | ✔️ | ✔️ | ✔️ | ✔️ | |
選択したカメラを取得する | ✔️ | ✔️ | ✔️ | ✔️ | |
マイクの一覧を取得する | ✔️ | ✔️ | ❌3 | ❌3 | |
マイクを設定する | ✔️ | ✔️ | ❌3 | ❌3 | |
選択したマイクを取得する | ✔️ | ✔️ | ❌3 | ❌3 | |
スピーカーの一覧を取得する | ✔️ | ✔️ | ❌3 | ❌3 | |
スピーカーを設定する | ✔️ | ✔️ | ❌3 | ❌3 | |
選択したスピーカーを取得する | ✔️ | ✔️ | ❌3 | ❌3 | |
ビデオのレンダリング | 複数の場所で 1 つのビデオをレンダリングする (ローカル カメラまたはリモート ストリーム) | ✔️ | ✔️ | ✔️ | ✔️ |
スケーリング モードを設定または更新する | ✔️ | ✔️ | ✔️ | ✔️ | |
リモート ビデオ ストリームをレンダリングする | ✔️ | ✔️ | ✔️ | ✔️ | |
ビデオ効果 | 背景ぼかし | ✔️ | ✔️ | ✔️ | ✔️ |
カスタム背景画像 | ✔️ | ✔️ | ✔️ | ✔️ | |
音声効果 | 音楽モード | ❌ | ✔️ | ✔️ | ✔️ |
エコーのキャンセル | ❌ | ✔️ | ✔️ | ✔️ | |
ノイズ抑制 | ✔️ | ✔️ | ✔️ | ✔️ | |
自動ゲイン制御 (AGC) | ❌ | ✔️ | ✔️ | ✔️ | |
通知 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 つの最新マイナー バージョン) がサポートされます。
プラットフォーム | Chrome | Safari | Edge | Firefox | WebView | Electron |
---|---|---|---|---|---|---|
Android | ✔️ | ❌ | ✔️ | ❌ | ✔️ | ❌ |
iOS | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ❌ |
macOS | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
Windows | ✔️ | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
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 のサポート
- ビルド時の iOS 10.0 以上と実行時の iOS 12.0 以上のサポート
- Xcode 12.0 以上
- iPadOS 13.0 以降のサポート
最大通話時間
最大通話時間は 30 時間で、その有効期間の 30 時間に達した参加者は通話が切断されます。
サポートされている受信ビデオ ストリームの数
Azuer Communication Services Calling SDK では、次のストリーミング構成がサポートされています。
制限 | Web | 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 個の着信ビデオを適切にサポートするには、コンピューターに最低 16GB の RAM と、3 年以内の 4 コア以上の CPU が必要です
サポートされているビデオ解像度
Azure Communication Services Calling SDK は、通話中のビデオおよび画面共有ストリームの解像度を自動的に調整します。
Note
解決は、通話の参加者の数、クライアントが使用できる帯域幅の量、リモート ビデオ ストリームをレンダリングするローカル参加者のハードウェア機能、その他の全体的な通話パラメーターによって異なる場合があります。
Azure Communication Services Calling SDK では、次のビデオ解像度の送信がサポートされています
最大ビデオ解像度 | WebJS | iOS | Android | Windows |
---|---|---|---|---|
ビデオの送信 | 720P | 720P | 720P | 1080P |
画面共有の送信 | 1080P | 1080P | 1080P | 1080P |
リモート ビデオ ストリームまたは画面共有の受信 | 1080P | 1080P | 1080P | 1080P |
通話参加者数のサポート
- 最大 350 人のユーザーがグループ通話、ルーム、または Teams と ACS 通話に参加できます。
- 通話の参加者が 100 人以上になると、ビデオ カメラがオンになっている上位 4 人の最も主要な発話者のみが表示されます。
- 通話中のユーザー数が 100 名以上の場合、表示可能な着信ビデオ レンダリングの数が 4x4 (16 個の着信ビデオ) から 2x2 (4 個の着信ビデオ) に自動的に減少します。
- ユーザー数が 100 を下回ると、サポートされる着信ビデオの数は最大 4x4 (16 個の着信ビデオ) に戻ります。
Calling SDK のタイムアウト
Communication Services Calling SDK では、次のタイムアウトが適用されます。
アクション | タイムアウト (秒) |
---|---|
参加者の再接続/削除 | 60 |
通話に対する新しいモダリティの追加または削除 (ビデオまたはスクリーン共有の開始/停止) | 40 |
通話転送操作に関わるタイムアウト | 60 |
1:1 通話確立に関わるタイムアウト | 85 |
グループ通話確立に関わるタイムアウト | 85 |
PSTN 通話確立に関わるタイムアウト | 115 |
1:1 通話のグループ通話への昇格に関わるタイムアウト | 115 |
次のステップ
詳細については、次の記事を参照してください。
- 一般的な通話のフローを理解する
- 通話の種類について学習する
- クライアント アプリケーションで呼び出しをルーティングおよび制御できるサーバーベースの呼び出しワークフローを構築できる呼び出し自動化 APIについて説明します。
- PSTN ソリューションを計画する