アプリケーションでホストされるメディア ボットの要件と考察
アプリケーションでホストされるメディア ボットでは、オーディオおよびビデオ メディア ストリームにアクセスするには、Microsoft.Graph.Communications.Calls.Media
.NET ライブラリが必要です。 ボットは、オンプレミスのWindows Server コンピューターまたは Azure の Windows Server ゲスト オペレーティング システム (OS) にデプロイする必要があります。
注:
- メッセージング ボットや対話型音声応答 (IVR) ボットの開発に関するガイダンスは、アプリケーションでホストされるメディア ボットの構築には完全には適用されません。
- Microsoft Real-Time Media Platform for Bots は開発者向けプレビュー段階であるため、このドキュメントのガイダンスは変更される可能性があります。
開発用の C# または .NET および Windows Server
アプリケーションでホストされるメディア ボットには、次の要件があります。
ボットは、C# と標準の.NET Frameworkを使用して開発し、Microsoft Azure にデプロイする必要があります。 C++ または Node.js API を使用してリアルタイム メディアにアクセスすることはできません。 ただし、.NET Core はアプリケーションでホストされるメディア ボットでサポートされており、SDK では .NET 6.0 のサポートが提供されます。
このボットは、次のいずれかの Azure サービス環境内でホストできます。
- クラウド サービス。
- Virtual Machine Scale Sets (VMSS) を使用した Service Fabric。
- サービスとしてのインフラストラクチャ (IaaS) 仮想マシン (VM)。
- Azure Kubernetes Service (AKS)。
このボットは、Azure Web アプリとしてデプロイすることはできません。
このボットは、最新バージョンの
Microsoft.Graph.Communications.Calls.Media
.NET ライブラリで実行されている必要があります。 このボットは、使用可能な最新バージョンの NuGet パッケージか、3 か月以下のバージョンを使用する必要があります。 以前のバージョンのライブラリは非推奨となり、数か月後には機能しません。Microsoft.Graph.Communications.Calls.Media
ライブラリを最新の状態に保つことで、ボットと Microsoft Teams の間の最適な相互運用性を確保できます。
次のセクションでは、リアルタイム メディア呼び出しがどこに存在するかについて詳しく説明します。
リアルタイム メディア通話は、作成された場所に留まる
リアルタイム メディア呼び出しは、その呼び出しが作成されたコンピューターに留まります。 リアルタイム メディア呼び出しは、呼び出しを受け入れたか開始した仮想マシン (VM) インスタンスにピン留めされます。 Teams 通話または会議からのメディアは、その VM インスタンスにフローし、ボットが Teams に送信するメディアも、その VM から発信する必要があります。 その VM が停止されたときに処理中のリアルタイム メディア呼び出しがある場合、それらの呼び出しは突然終了します。 保留中の VM シャットダウンに関する予備知識をボットが持っている場合は、ボットが呼び出しを終了できます。
次のセクションでは、アプリケーションでホストされるメディア ボットのアクセシビリティについて詳しく説明します。
インターネット上でアクセス可能なアプリケーションでホストされるメディア ボット
アプリケーションでホストされるメディア ボットは、インターネット上で直接アクセスできる必要があります。 これらのボットには、次の機能が含まれている必要があります。
- アプリケーションでホストされるメディア ボットを Azure でホストしている各 VM インスタンスには、インスタンス レベルのパブリック IP アドレス (ILPIP) を使用してインターネットから直接アクセスできる必要があります。
- Azure クラウド サービス用の ILPIP を取得して構成する方法については、「インスタンス レベル パブリック IP (クラシック) の概要」を参照してください。
- VM スケール セット用の ILPIP を構成する方法については、「仮想マシンごとのパブリック IPv4」を参照してください。
- アプリケーションでホストされるメディア ボットをホストしているサービスでは、特定のインスタンスにマップされる公開ポートを使用して各 VM インスタンスを構成する必要もあります。
- Azure クラウド サービスの場合、これにはインスタンス入力エンドポイントが必要です。 詳細については、Azure でロール インスタンスの通信を有効にする方法に関する記事を参照してください。
- VM スケール セットの場合は、ロード バランサーに関する NAT 規則を構成する必要があります。 詳細については、「Azure における仮想ネットワークと仮想マシン」を参照してください。
- Bot Framework Emulatorでは、アプリケーションでホストされるメディア ボットはサポートされていません。
次のセクションでは、アプリケーションでホストされるメディア ボットのスケーラビリティとパフォーマンスに関する考慮事項について詳しく説明します。
スケーラビリティとパフォーマンスに関する検討事項
アプリケーションでホストされるメディア ボットには、次のスケーラビリティとパフォーマンスに関する考慮事項が必要です。
- アプリケーションでホストされるメディア ボットでは、メッセージング ボットよりも多くのコンピューティングとネットワーク (帯域幅) 容量が必要であり、運用コストが高くなる可能性があります。 リアルタイム メディア ボット開発者は、ボットのスケーラビリティを慎重に測定し、ボットが管理できるよりも多くの同時呼び出しを受け入れないようにする必要があります。 ビデオ対応ボットでは、CPU コアあたり 1 つか 2 つの同時メディア セッションしか維持できない可能性があります ("RAW" RGB24 または NV12 ビデオ形式を使用している場合)。
- リアルタイム メディア プラットフォームでは、VM で使用できるグラフィックス処理装置 (GPU) を利用して H.264 ビデオエンコード/デコードをオフロードすることはできません。 代わりに、ビデオのエンコードとデコードは、CPU 上のソフトウェアで行われます。 GPU が使用可能な場合、ボットは独自のグラフィックス レンダリングにその GPU を利用できます (ボットが 3D グラフィックス エンジンを使用している場合など)。
- リアルタイム メディア ボットをホストする VM インスタンスには、少なくとも 2 つの CPU コアが必要です。 Azure の場合は、Dv2 シリーズの仮想マシンをお勧めします。 その他の Azure VM の種類では、4 つの仮想 CPU (vCPU) を備えたシステムが必要な最小サイズです。 Azure VM の種類の詳細については、Azure のドキュメントを参照してください。
ボットでサポートされているメディア形式
Microsoft Teams上のボットでは、オーディオとビデオのコンテンツに対して次のメディア形式のみがサポートされます。
フォーマット | 詳細 |
---|---|
Vorbis | http://www.vorbis.com/ |
PCM_U8、PCM_S16LE、PCM_S32LE、PCM_F32LE、PCM_S16BE、PCM_S24BE、PCM_MULAW | https://wiki.multimedia.cx/?title=PCM |
Ogg | http://www.vorbis.com/ |
Matroska | https://matroska.org/ |
WAV | https://en.wikipedia.org/wiki/WAV |
AAC | https://en.wikipedia.org/wiki/Advanced_Audio_Coding |
H264 | https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC |
MP3 | https://en.wikipedia.org/wiki/MP3 |
Opus | http://opus-codec.org/ |
MP4 | https://en.wikipedia.org/wiki/MPEG-4 |
コード サンプル
アプリケーションでホストされるメディア ボットのサンプルは次のとおりです。
サンプルの名前 | 説明 | Graph |
---|---|---|
ローカル メディアのサンプル | さまざまなローカル メディア シナリオを示すサンプル。 | 表示 |
リモート メディアのサンプル | さまざまなリモート メディア シナリオを示すサンプル。 | 表示 |
関連項目
Platform Docs