Registrar un bot de llamada para Microsoft Teams

Un bot que participa en llamadas de audio y vídeo y en reuniones en línea es un bot de Microsoft Teams ordinario con algunas características adicionales:

  • Hay una nueva versión del manifiesto de la aplicación de Microsoft Teams con dos opciones de configuración adicionales supportsCalling y supportsVideo . Esta configuración se incluye en la versión de vista previa para desarrolladores del manifiesto de la aplicación Microsoft Teams.
  • Los permisos de Microsoft Graph deben estar configurados para el identificador de aplicación de Microsoft de bot.
  • Los permisos llamadas de Microsoft Graph y las API de reuniones en línea requieren el consentimiento del administrador de inquilinos.

Hablemos sobre lo anterior con más detalle.

Nueva configuración del manifiesto

Los bots de llamadas y reuniones en línea tienen dos opciones de configuración adicionales en el manifest.jsque permiten el audio y el vídeo para el bot en Teams.

  • bots[0].supportsCalling. Si está presente y establecido en true , Microsoft Teams permitirá que el bot participe en las llamadas y las reuniones en línea.
  • bots[0].supportsVideo. Si está presente y establecido en true , Teams sabe que su bot admite vídeo.

Si desea que el IDE valide correctamente el manifest.jsdel esquema para el bot de llamadas y reuniones para estos valores, puede cambiar el atributo de la $schema siguiente manera:

"$schema": "https://raw.githubusercontent.com/OfficeDev/microsoft-teams-app-schema/preview/DevPreview/MicrosoftTeams.schema.json",

Creación de un nuevo bot o adición de capacidades de llamada a un bot existente

La creación de un nuevo bot se describe con más detalle en el tema crear un bot para Microsoft Teams , pero repetiremos parte de él:

  1. Use este vínculo para crear un nuevo bot: https://dev.botframework.com/bots/new . Si, en su lugar, selecciona el botón crear un bot en el portal de la plataforma de bot, creará su bot en Microsoft Azure, en el que necesitará una cuenta de Azure.
  2. Agregue el canal de Microsoft Teams. Haga clic en la pestaña "llamada" en la página de canal de Microsoft Teams y seleccione Habilitar llamada y, a continuación, actualizar webhook (para llamar) con la dirección URL https donde recibirá las notificaciones entrantes; por ejemplo, https://contoso.com/teamsapp/api/calling . Consulte Configuring Channels para obtener más información sobre cómo configurar los canales. Configurar información de canal de Microsoft Teams

Agregar permisos de Microsoft Graph

Microsoft Graph expone permisos granulares que controlan el acceso de las aplicaciones a los recursos. Como desarrollador, usted decide qué permisos de Microsoft Graph solicita la aplicación. Las API de llamada de Microsoft Graph admiten permisos de aplicación, que son usados por aplicaciones que se ejecutan sin la presencia de un usuario que ha iniciado sesión. Un administrador de inquilinos debe conceder consentimiento a los permisos de la aplicación. A continuación se muestra una lista de los permisos:

Permisos de aplicación: llamadas

Permiso Cadena para mostrar Descripción Se requiere el consentimiento del administrador
Calls.Initiate.All Iniciar llamadas salientes de 1:1 desde la aplicación (versión preliminar) Permite a la aplicación realizar llamadas a un único usuario y transferir las llamadas a usuarios en el directorio de su organización, sin que el usuario haya iniciado sesión en la aplicación.
Calls.InitiateGroupCall.All Iniciar llamadas de grupo salientes desde la aplicación (versión preliminar) Permite a la aplicación realizar llamadas a varios usuarios y agregar a participantes a las reuniones de su organización, sin que el usuario haya iniciado sesión en la aplicación.
Calls.JoinGroupCall.All Unirse a llamadas y reuniones de grupo como una aplicación (versión preliminar) Permite a la aplicación unirse a llamadas de grupo y reuniones programadas de la organización, sin que el usuario haya iniciado sesión en la aplicación. La aplicación se combinará con los privilegios de un usuario del directorio a las reuniones en su espacio empresarial.
Calls.JoinGroupCallasGuest.All Unirse a llamadas y reuniones de grupo como invitado (versión preliminar) Permite a la aplicación unirse a llamadas de grupo y reuniones programadas de la organización de forma anónima, sin que el usuario haya iniciado sesión en la aplicación. La aplicación se unirá como invitado a las reuniones de su espacio empresarial.
Calls. AccessMedia. All vea más adelante Accede a los flujos de medios en una llamada como aplicación (versión preliminar) Permite a la aplicación obtener acceso directo a los flujos de medios en una llamada, sin que el usuario haya iniciado sesión en la aplicación.

Importante

No puede usar la API de acceso a medios para grabar o conservar el contenido multimedia de llamadas o reuniones a las que accede su aplicación, o los datos derivados de ese contenido multimedia ("registro" o "grabación"), sin llamar primero a la updateRecordingStatus API para indicar que la grabación ha comenzado y recibir una respuesta correcta desde esa API. Si la aplicación empieza a grabar una reunión o llamada, debe finalizar la grabación antes de llamar a la updateRecordingStatus API para indicar que la grabación ha finalizado.

Permisos de aplicación: reuniones en línea

Permiso Cadena para mostrar Descripción Se requiere el consentimiento del administrador
OnlineMeetings.Read.All Leer detalles de la reunión en línea desde la aplicación (versión preliminar) Permite a la aplicación leer los detalles de las reuniones en línea de la organización, sin que un usuario haya iniciado sesión.
OnlineMeetings.ReadWrite.All Leer y crear reuniones en línea desde la aplicación (versión preliminar) en nombre de un usuario Permite a la aplicación crear reuniones en línea dentro de la organización en nombre de un usuario, sin que un usuario haya iniciado sesión.

Asignación de permisos

Debe configurar los permisos de la aplicación para su bot de antemano con el portal de Azure si prefiere usar el punto de conexión de Azure ad v1.

Para las aplicaciones que usan el punto de conexión de Azure AD v1, un administrador de inquilinos puede dar su consentimiento a los permisos de la aplicación mediante el portal de Azure cuando la aplicación está instalada en la organización, o puede proporcionar una experiencia de suscripción en su aplicación a través de la cual los administradores pueden dar su consentimiento a los permisos configurados. Una vez que Azure AD registra el consentimiento del administrador, la aplicación puede solicitar tokens sin tener que volver a solicitar el consentimiento.

Puede confiar en un administrador para conceder los permisos que necesita la aplicación en Azure portal; pero, a menudo, una mejor opción es proporcionar una experiencia de suscripción a los administradores mediante el punto de conexión de Azure AD V2 /adminconsent . Para obtener más información, consulte las instrucciones sobre cómo crear una dirección URL de consentimiento de administrador .

Nota

La construcción de la dirección URL de consentimiento del administrador del espacio empresarial requiere una URL de respuesta/URI de redireccionamiento configurada en el portal de registrode la aplicación. Para agregar direcciones URL de respuesta para el bot, obtenga acceso al registro de los robots, elija Opciones avanzadas: > editar manifiesto de la aplicación. Agregue la dirección URL de redireccionamiento a la replyUrls colección.

Importante

Siempre que realice un cambio en los permisos de la aplicación, también debe repetir el proceso de consentimiento del administrador. Los cambios realizados en el portal de registro de la aplicación no se reflejarán hasta que el administrador del inquilino haya vuelto a aplicar el consentimiento.