Anforderungen und Überlegungen für anwendungsgehostete Medienbots

Ein von einer Anwendung gehosteter Medienbot benötigt die Microsoft.Graph.Communications.Calls.Media .NET-Bibliothek, um auf die Audio- und Videomedienströme zuzugreifen. Der Bot muss auf einem lokalen Windows Server-Computer oder einem Windows Server-Gastbetriebssystem (OS) in Azure bereitgestellt werden.

Hinweis

  • Die Anleitung zum Entwickeln von Bots für Nachrichten und interaktive Sprachantworten (Interactive Voice Response, IVR) gilt nicht vollumfänglich für das Erstellen von durch Anwendungen gehosteten Medienbots.
  • Da sich die Microsoft Real-time Media Platform für Bots in der Entwicklervorschau befindet, können sich die Anleitungen in diesem Dokument ändern.

C# oder .NET und Windows Server für die Entwicklung

Ein von der Anwendung gehosteter Medienbot erfordert Folgendes:

  • Der Bot muss in C# und dem standardmäßigen .NET Framework entwickelt und in Microsoft Azure bereitgestellt werden. Sie können C++- oder Node.js-APIs nicht verwenden, um auf Echtzeitmedien zuzugreifen, und .NET Core wird für einen von einer Anwendung gehosteten Medienbot nicht unterstützt.

  • Der Bot kann in einer der folgenden Azure-Dienstumgebungen gehostet werden:

    • Cloud-Dienst.
    • Service Fabric mit Virtual Machine Scale Sets (VMSS).
    • Infrastructure as a Service (IaaS) Virtuelle Maschine (VM).
  • Der Bot kann nicht als Azure-Webapp bereitgestellt werden.

  • Der Bot muss auf einer aktuellen Version der Microsoft.Graph.Communications.Calls.Media.NET-Bibliothek ausgeführt werden. Der Bot muss entweder die neueste verfügbare Version des NuGet-Pakets verwenden, oder eine Version, die nicht älter als drei Monate ist. Ältere Versionen der Bibliothek sind veraltet und funktionieren nach einigen Monaten nicht mehr. Die Aktualisierung der Microsoft.Graph.Communications.Calls.Media Bibliothek stellt die beste Interoperabilität zwischen dem Bot und Microsoft Teams sicher.

Der nächste Abschnitt enthält Einzelheiten darüber, wo sich Echtzeit-Medienaufrufe befinden.

Echtzeit-Medienanrufe bleiben dort, wo sie erstellt werden

Echtzeit-Medienanrufe bleiben auf dem Computer, auf dem sie erstellt wurden. Ein Echtzeit-Medienanruf wird an die Instanz der virtuellen Maschine (VM) angeheftet, die den Anruf angenommen oder gestartet hat. Medien aus einem Teams-Anruf oder einer Besprechung fließen an diesen virtuellen Computer instance, und Medien, die der Bot an Teams zurücksendet, müssen ebenfalls von diesem virtuellen Computer stammen. Wenn beim Stoppen der VM Echtzeit-Medienaufrufe ausgeführt werden, werden diese Aufrufe abrupt beendet. Wenn der Bot Vorkenntnisse über das bevorstehende Herunterfahren der VM hat, kann er die Anrufe beenden.

Der nächste Abschnitt enthält Details zur Zugänglichkeit von anwendungsgehosteten Medien-Bots.

Anwendungsgehostete Medien-Bots, auf die über das Internet zugegriffen werden kann

Von der Anwendung gehostete Medien-Bots müssen direkt im Internet zugänglich sein. Diese Bots müssen die folgenden Funktionen enthalten:

  • Auf jede VM-Instanz, die einen von der Anwendung gehosteten Medienbot in Azure hostet, muss direkt über das Internet mit einer öffentlichen IP-Adresse (ILPIP) auf Instanzebene zugegriffen werden können.

  • Der Dienst, der einen von einer Anwendung gehosteten Medienbot hostet, muss außerdem jede VM-Instanz mit einem öffentlich zugänglichen Port konfigurieren, welcher der jeweiligen Instanz zugeordnet ist.

  • Von einer Anwendung gehostete Medienbots werden vom Botframework-Emulator nicht unterstützt.

Der nächste Abschnitt enthält Details zu Skalierbarkeits- und Leistungsüberlegungen von anwendungsgehosteten Medien-Bots.

Überlegungen zu Skalierbarkeit und Leistung

Die von der Anwendung gehosteten Medien-Bots erfordern die folgenden Skalierbarkeits- und Leistungsüberlegungen:

  • Anwendungsgehostete Medienbots erfordern mehr Compute- und Netzwerkkapazität (Bandbreite) als Messaging-Bots und können höhere Betriebskosten verursachen. Ein Echtzeit-Media-Bot-Entwickler muss die Skalierbarkeit des Bots sorgfältig messen und sicherstellen, dass der Bot nicht mehr gleichzeitige Anrufe akzeptiert, als er bewältigen kann. Ein videofähiger Bot kann möglicherweise nur eine oder zwei gleichzeitige Mediensitzungen pro CPU-Kern aufrechterhalten (bei Verwendung der „rohen“ RGB24- oder NV12-Videoformate).
  • Die Real-Time Media Platform nutzt derzeit keine auf der VM verfügbaren Graphics Processing Units (GPU), um H.264-Videokodierung/-dekodierung auszulagern. Stattdessen werden Videocodierung und -decodierung in Software auf der CPU durchgeführt. Wenn eine GPU verfügbar ist, kann der Bot diese zum Beispiel für sein eigenes Grafik-Rendering nutzen, wenn der Bot eine 3D-Grafik-Engine verwendet.
  • Die VM-Instanz, die den Echtzeit-Medienbot hostet, muss mindestens 2 CPU-Kerne haben. Für Azure wird ein virtueller Computer der Dv2-Serie empfohlen. Für andere Azure-VM-Typen ist ein System mit vier virtuellen CPUs (vCPU) die erforderliche Mindestgröße. Ausführliche Informationen zu Azure-VM-Typen finden Sie in der Azure-Dokumentation.

Codebeispiel

Beispiele für von der Anwendung gehostete Medien-Bots lauten wie folgt:

Beispielname Beschreibung Graph
Lokale Medienprobe Beispiel, das verschiedene lokale Medienszenarien veranschaulicht. Anzeigen
Remote-Medienbeispiel Beispiel, das verschiedene Remotemedienszenarien veranschaulicht. View

Nächster Schritt

Siehe auch

  • Graph Calling SDK-Dokumentation
  • Anwendungsbeispiele
  • Die Bots benötigen mehr Compute- und Netzwerkbandbreitenkapazität als Messaging-Bots und verursachen höhere Betriebskosten. Ein Echtzeit-Media-Bot-Entwickler muss die Skalierbarkeit des Bots sorgfältig messen und sicherstellen, dass der Bot nicht mehr gleichzeitige Anrufe akzeptiert, als er bewältigen kann. Ein videofähiger Bot kann nur eine oder zwei gleichzeitige Mediensitzungen pro CPU-Kern aufrechterhalten, wenn er die rohen RGB24- oder NV12-Videoformate verwendet.
  • Die Echtzeitmedienplattform nutzt derzeit keine auf dem virtuellen Computer verfügbaren Gpus (Graphics Processing Units), um die H.264-Videocodierung oder -decodierung auszuschalten. Stattdessen werden Videocodierung und -decodierung in Software auf der CPU durchgeführt. Wenn eine GPU verfügbar ist, nutzt der Bot diese für sein eigenes Grafik-Rendering, beispielsweise wenn der Bot eine 3D-Grafik-Engine verwendet.
  • Die VM-Instanz, die den Echtzeit-Medienbot hostet, muss mindestens 2 CPU-Kerne haben. Für Azure wird ein virtueller Computer der Dv2-Serie empfohlen. Für andere Azure-VM-Typen ist ein System mit 4 virtuellen CPUs (vCPU) die erforderliche Mindestgröße. Weitere Informationen zu Azure-VM-Typen finden Sie in der Azure-Dokumentation.