Chamadas e bots de reuniões onlineCalls and online meetings bots

Com a adição das APIs do Microsoft Graph para chamadas e reuniões online, os aplicativos do Microsoft Teams agora podem interagir com usuários de maneiras ricas usando voz e vídeo.With the addition of Microsoft Graph APIs for calls and online meetings, Microsoft Teams apps can now interact with users in rich ways using voice and video. Essas APIs permitem que você adicione novos recursos, como resposta de voz interativa (IVR), controle de chamadas e acesso a fluxos de áudio e/ou vídeo em tempo real para chamadas e reuniões, incluindo área de trabalho e compartilhamento de aplicativos.These APIs allow you to add new features such as interactive voice response (IVR), call control, and access to real-time audio and/or video streams for calls and meetings, including desktop and app sharing.

Para usar essas APIs do Microsoft Graph em um aplicativo do Microsoft Teams, você cria um bot e especifica algumas informações adicionais e permissões que descreveremos em outros lugares, mas primeiro, é importante entender alguns conceitos principais, terminologia e convenções:To use these Microsoft Graph APIs in a Microsoft Teams app, you create a bot and specify some additional information and permissions which we'll describe elsewhere, but first, it's important to understand some core concepts, terminology, and conventions:

  • Chamadas de áudio/vídeo.Audio/video calls. As chamadas no Teams podem ser puramente áudio ou áudio + vídeo.Calls in Teams can be purely audio or audio+video. Para fins de brevidade, não dizem "chamada de áudio/vídeo" em qualquer lugar; apenas dizemos "Call".For brevity's sake, we don't say "audio/video call" everywhere; we just say "call."
  • Tipos de chamada.Call types. As chamadas são ponto a ponto (entre uma pessoa e seu bot) ou multiparty (seu bot e duas ou mais pessoas em uma chamada de grupo).Calls are either peer-to-peer (between a person and your bot) or multiparty (your bot and two or more people in a group call). Tiposde chamada:Call Types:
    • Um usuário pode iniciar uma chamada ponto a ponto com seu bot ou convidar seu bot para uma chamada de vários participantes existente (embora o último ainda não esteja habilitado na interface do usuário do Microsoft Teams).A user may initiate a peer-to-peer call with your bot or invite your bot into an existing multiparty call (although the latter is not yet enabled in the Microsoft Teams UI).
    • As permissões do Microsoft Graph não são necessárias para um usuário iniciar uma chamada ponto a ponto com seu bot, mas as permissões adicionais são necessárias para que seu bot participe de uma chamada de vários participantes ou para que o bot inicie uma chamada ponto a ponto com um usuário.Microsoft Graph permissions aren't necessary for a user to initiate a peer-to-peer call with your bot, but additional permissions are needed for your bot to participate in a multiparty call, or for your bot to initiate a peer-to-peer call with a user.
    • Uma chamada pode começar como ponto-a-ponto e escalar para vários participantes.A call may start as peer-to-peer and escalate to multiparty. Seu bot pode iniciar esse escalonamento convidando outros, contanto que seu bot tenha as permissões adequadas.Your bot can initiate this escalation by inviting others, provided your bot has the proper permissions. Se o seu bot não tiver permissões para participar de chamadas de grupo e um participante adicionar outra parte, seu bot será descartado da chamada.If your bot doesn't have permissions to participate in group calls and one participant adds another party, your bot is dropped from the call.
  • Sinalização.Signaling. Há dois tipos de sinais: chamada de entrada e em chamada:There are two types of signals — incoming call and in-call:
    • Para receber uma chamada de entrada, especifique um ponto de extremidade nas suas configurações de bot; Este ponto de extremidade recebe uma notificação quando chega uma chamada de entrada.To receive an incoming call, you specify an endpoint in your bot settings; this endpoint receives a notification when an incoming call arrives. Você pode responder à chamada, rejeitá-la ou redirecioná-la para qualquer lugar ou outra pessoa.You can answer the call, reject it, or redirect it to somewhere or someone else. Tipos de chamadaCall Types
    • Quando um bot está em uma chamada, há APIs para ativar mudo e desativação e para iniciar/parar o compartilhamento do conteúdo de vídeo/área de trabalho com outros participantes.When a bot is in a call, there are APIs for muting and unmuting itself and to start/stop sharing video/desktop content with the other participants.
    • O bot também pode acessar a lista de participantes, convidar novos participantes e mudo para eles.The bot can also access the list of participants, invite new participants, and mute them.
  • Chamadas e reuniões online.Calls and online meetings. Da perspectiva de um usuário do Team, há dois tipos de reuniões online: ad hoc e agendado.From a Teams user's perspective, there are two kinds of online meetings — ad hoc and scheduled. No entanto, da perspectiva de um bot, é diferente.However, from a bot's perspective, it's different. Para um bot, uma reunião online é apenas uma chamada de várias partes (o conjunto de participantes) mais "coordenadas da reunião", que você pode considerar como os botIdmetadados da reunião:, chatId associado à reunião, joinUrl startTime / endTimee mais.To a bot, an online meeting is just a multiparty call (the set of participants) plus "meeting coordinates," which you can think of as the metadata for the meeting: botId, chatId associated with the meeting, joinUrl, startTime/endTime, and more.
  • Mídia em tempo real.Real-time media. Quando um bot está participando em uma chamada ou reunião online, ele deve lidar com fluxos de áudio e vídeo.When a bot is participating in a call or online meeting, it must deal with audio and video streams. Quando os usuários falam em uma chamada, aparecem em uma webcam ou apresentam suas telas em uma reunião, um bot "vê" isso como áudio e/ou fluxos de vídeo.When users talk on a call, show themselves on a webcam, or present their screens in a meeting, a bot "sees" this as audio and/or video streams. Se um bot quiser dizer algo ou apresentar conteúdo de tela, que requer um fluxo de áudio ou vídeo.If a bot wants to say something or present screen content, that requires an audio or video stream. Até mesmo algo tão simples quanto o bot dizendo, "Pressione 0 para chegar ao operador" em um cenário IVR (resposta de voz interativa) significa reproduzir um. Arquivo WAV.Even something as simple as the bot saying, "press 0 to reach the operator" in an IVR (interactive voice response) scenario means playing a .WAV file. Coletivamente, vamos nos referir a isso como mídia ou mídia em tempo real (ao fazer referência a cenários em que a mídia deve ser processada em tempo real, em vez de reproduzir o áudio/vídeo gravado anteriormente).Collectively, we refer to this as media or real-time media (when referring to scenarios where media must be processed in real time, as opposed to playback of previously-recorded audio/video). Historicamente, lidar com fluxos de mídia, especialmente fluxos de mídia em tempo real, é extremamente complexo para os desenvolvedores.Historically, dealing with media streams, particularly real-time media streams, has been extremely complex for developers. A Microsoft criou a plataforma de mídia em tempo real para lidar com esses casos de uso e para descarregar o máximo possível de "trabalho pesado" do processamento de mídia em tempo real.Microsoft has created the Real-time Media Platform to handle these use cases and to offload as much of the traditional "heavy lifting" of real-time media processing as possible. Quando o bot responde a uma chamada recebida, ou se junta a uma chamada nova ou existente, ele precisa informar o RealTime Media Platform como a mídia será tratada.When the bot answers an incoming call, or joins a new or existing call, it needs to tell the Real-time Media Platform how media will be handled. Se você estiver criando um aplicativo de IVR, poderá transferir o alto processamento de áudio para a Microsoft.If you're building an IVR application, you can offload the expensive audio processing to Microsoft. Como alternativa, se o seu bot requer acesso direto a fluxos de mídia, oferecemos suporte a esse cenário também.Alternatively, if your bot requires direct access to media streams, we support that scenario too. Há dois tipos de processamento de mídia:There are the two types of media processing:
    • Mídia hospedada pelo serviço.Service-hosted media. O foco dos bots no gerenciamento do fluxo de trabalho do aplicativo (por exemplo, chamadas de roteamento) e o processamento de áudio para a plataforma de mídia em tempo real da Microsoft.Bots focus on managing application workflow (e.g., routing calls) and offload audio processing to the Microsoft Real-time Media Platform. Com a mídia hospedada em serviço, você tem várias opções para implementar e hospedar o bot.With service-hosted media, you have several options to implement and host your bot. Um bot de mídia hospedado pelo serviço pode ser implementado como um serviço sem monitoração de estado, pois ele não processa mídias localmente.A service-hosted media bot can be implemented as a stateless service since it doesn't process media locally. Os PlayPrompt bots de mídia hospedados pelo serviço podem usar APIs como reproduzir um clipe de Record áudio, para gravar clipes SubscribeToTone de áudio ou inscrever-se em tons DTMF (por exemplo, saber quando um usuário pressionou 0 para chegar ao operador).Service-hosted media bots can use APIs such as PlayPrompt for playing an audio clip, Record for recording audio clips, or SubscribeToTone for subscribing to DTMF tones (e.g., knowing when a user has pressed 0 to reach the operator).
    • Mídia hospedada por aplicativo.Application-hosted media. Para que um bot obtenha acesso direto à mídia, ela precisa de uma permissão de gráfico específica, mas depois que seu bot o tiver, a biblioteca de mídia em tempo real e o SDK de chamada de gráfico ajudam a criar mídias ricas e em tempo real, ligando para bots.For a bot to get direct access to the media, it needs a specific Graph permission, but once your bot has it, the Real-time Media Library and the Graph Calling SDK helps you build rich, real-time media, calling bots. Um bot hospedado por aplicativo deve ser hospedado em um ambiente do Windows, conforme descrito em mais detalhes aqui.An Application-hosted bot must be hosted in a Windows environment, as described in more detail here.

Leitura adicionalFurther reading

Veja mais informações sobre como criar e testar chamadas e bots de reuniões online:Here's more information on how to create and test calls and online meetings bots: