Requisiciones y consideraciones para bots multimedia hospedados en la aplicación
Un bot multimedia hospedado en la aplicación requiere la Microsoft.Graph.Communications.Calls.Media
biblioteca .NET para acceder a las secuencias multimedia de audio y vídeo. El bot debe implementarse en una máquina local de Windows Server o en un sistema operativo (SO) invitado de Windows Server en Azure.
Nota:
- Las instrucciones para desarrollar bots de mensajería y respuesta interactiva de voz (IVR) no se aplican completamente a la creación de bots multimedia hospedados en aplicaciones.
- Dado que la plataforma multimedia en tiempo real de Microsoft para bots se encuentra en versión preliminar para desarrolladores, las orientaciones de este documento están sujetas a cambios.
C# o .NET y Windows Server para desarrollo
Un bot multimedia hospedado en la aplicación tiene los siguientes requisitos:
El bot debe desarrollarse con C# y .NET Framework estándar e implementarse en Microsoft Azure. No puede usar C++ ni Node.js API para acceder a medios en tiempo real. Sin embargo, .NET Core es compatible con un bot multimedia hospedado en la aplicación y el SDK proporciona compatibilidad con .NET 6.0.
El bot se puede hospedar en uno de los siguientes entornos de servicio de Azure:
- Servicio en la nube.
- Service Fabric con VMSS (Conjuntos de escalado de máquina virtual).
- Máquina virtual (VM) de infraestructura como servicio (IaaS).
- Azure Kubernetes Service (AKS).
El bot no se puede implementar como una aplicación web de Azure.
El bot debe ejecutarse en una versión reciente de la biblioteca .NET
Microsoft.Graph.Communications.Calls.Media
. El bot debe usar la versión más reciente disponible del paquete NuGet o una versión que no tenga más de tres meses de antigüedad. Las versiones anteriores de la biblioteca están en desuso y no funcionan después de unos meses. Mantener actualizada la bibliotecaMicrosoft.Graph.Communications.Calls.Media
garantiza la mejor interoperabilidad entre el bot y Microsoft Teams.
En la sección siguiente se proporcionan detalles sobre dónde se encuentran las llamadas multimedia en tiempo real.
Las llamadas multimedia en tiempo real permanecen donde se crean
Las llamadas multimedia en tiempo real permanecen en el equipo donde se crearon. Se ancla una llamada multimedia en tiempo real a la instancia de máquina virtual (VM) que aceptó o inició la llamada. Los medios de una llamada o reunión de Teams fluyen a esa instancia de máquina virtual y los medios que el bot devuelve a Teams también deben originarse en esa máquina virtual. Si hay llamadas multimedia en tiempo real en curso cuando se detiene la máquina virtual, esas llamadas finalizan repentinamente. Si el bot tiene conocimiento previo del apagado de la máquina virtual pendiente, puede finalizar las llamadas.
En la próxima sección se proporcionan detalles sobre la accesibilidad de los bots multimedia hospedados en la aplicación.
Bots multimedia hospedados en la aplicación accesibles en Internet
Los bots multimedia hospedados en la aplicación deben ser accesibles directamente en Internet. Estos bots deben incluir las siguientes características:
Cada instancia de máquina virtual que hospeda un bot multimedia hospedado en la aplicación en Azure debe ser accesible directamente desde Internet mediante una dirección IP pública de nivel de instancia (ILPIP).
- Para obtener y configurar una ILPIP para un servicio en la nube de Azure, consulte introducción a la IP pública a nivel de instancia clásica.
- Para configurar una ILPIP para un conjunto de escalado de máquina virtual, consulte IPv4 público por máquina virtual.
El servicio que hospeda un bot multimedia hospedado en la aplicación también debe configurar cada instancia de máquina virtual con un puerto de acceso público que se asigne a la instancia específica.
- Para un servicio en la nube de Azure, esto requiere un punto de conexión de entrada de instancia. Para obtener más información, consulte habilitar la comunicación para instancias de rol en Azure.
- Para un conjunto de escalado de máquina virtual, se debe configurar una regla NAT en el equilibrador de carga. Para obtener más información, consulte redes virtuales y máquinas virtuales en Azure.
Bot Framework Emulator no admite bots multimedia hospedados por la aplicación.
En la sección siguiente se proporcionan detalles sobre las consideraciones de escalabilidad y rendimiento de los bots multimedia hospedados en la aplicación.
Consideraciones de rendimiento y escalabilidad
Los bots multimedia hospedados en la aplicación requieren las siguientes consideraciones de escalabilidad y rendimiento:
- Los bots multimedia hospedados en la aplicación requieren más capacidad de proceso y red (ancho de banda) que los bots de mensajería y pueden incurrir en mayores costos operativos. Un desarrollador de bots multimedia en tiempo real debe medir cuidadosamente la escalabilidad del bot y asegurarse de que el bot no acepta más llamadas simultáneas de las que puede administrar. Un bot habilitado para vídeo puede admitir solo una o dos sesiones multimedia simultáneas por núcleo de CPU (si usa formatos de vídeo "raw" RGB24 o NV12).
- La plataforma multimedia en tiempo real no aprovecha las unidades de procesamiento de gráficos (GPU) disponibles en la máquina virtual para desactivar la carga de codificación y descodificación de vídeo H.264. En su lugar, la codificación y descodificación de vídeo se realizan en el software de la CPU. Si hay una GPU disponible, el bot puede aprovecharla para su propia representación gráfica, por ejemplo, si el bot usa un motor de gráficos 3D.
- La instancia de máquina virtual que hospeda el bot multimedia en tiempo real debe tener al menos dos núcleos de CPU. Para Azure, se recomienda una máquina virtual de la serie Dv2. Para otros tipos de máquina virtual de Azure, un sistema con cuatro CPU virtuales (vCPU) es el tamaño mínimo necesario. Puede encontrar información detallada sobre los tipos de máquina virtual de Azure en la documentación de Azure.
Ejemplo de código
Los ejemplos de bots multimedia hospedados en la aplicación son los siguientes:
Ejemplo de nombre | Descripción | Graph |
---|---|---|
Ejemplo de elementos multimedia locales | Ejemplo que muestra diferentes escenarios de medios locales. | View |
Ejemplo de elementos multimedia remotos | Ejemplo que muestra diferentes escenarios de medios remotos. | View |