

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Habilitar chamadas na aplicação, pela web e por vídeo com vários usuários
<a name="enable-multiuser-inapp"></a>

Amazon Connect suporta a adição de usuários adicionais para participar da chamada no aplicativo, na web e em vídeo em uma chamada existente. É possível adicionar até quatro usuários a uma chamada de vídeo em andamento ou agendada pela web ou na aplicação, com um total de seis participantes: o atendente, o primeiro usuário e quatro outros participantes (usuários ou atendentes).

## Como adicionar participantes a uma chamada com vários usuários
<a name="how-to-add-participants"></a>

1. Para habilitar chamadas multiusuário, você precisa ativar o [monitoramento aprimorado de contatos multipartidários](monitor-conversations.md) a Amazon Connect partir do console.

1. Depois que isso for concluído, você poderá aproveitar a Amazon Connect [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)API existente para criar um contato e encaminhar esse contato para um agente.

1. Para adicionar mais um participante, primeiro crie um participante passando `ContactId` da resposta da [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)API para a [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)API. [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)não terá êxito até que o chamador original se conecte ao agente. Os recursos de vídeo e compartilhamento de tela do participante podem ser configurados no campo `ParticipantDetails.ParticipantCapabilities`.

1. Quando [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)concluído com sucesso, ele retorna um [token de participante](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html#connect-CreateParticipant-response-ParticipantCredentials). Esse token pode ser usado em uma solicitação para [CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html)com `Type` definido como`WEBRTC_CONNECTION`. A resposta inclui o [ConnectionData](https://docs.aws.amazon.com/connect/latest/APIReference/API_ConnectionData.html#connect-Type-ConnectionData-Meeting)que pode ser usado para participar da reunião usando as [bibliotecas de cliente do SDK do Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/dg/mtgs-sdk-client-lib.html) para o participante adicional criado. Siga as [instruções de integração](config-com-widget2.md) para permitir que o usuário final da aplicação participe da reunião.
**nota**  
[CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)retorna um erro de Solicitação inválida se o agente ainda não estiver conectado ao contato. Para aplicações de negócios nas quais os usuários podem tentar ingressar antes que o atendente esteja conectado, consulte [Processar a participação de usuários simultâneos](#handling-concurrent-joins).

1. Os clientes adicionais podem se conectar a qualquer momento após as [CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html)devoluções. Depois que os participantes ingressam, [todo o comportamento adicional de voz e gravação é semelhante ao recurso com vários participantes](multi-party-calls.md). Os novos participantes podem ativar o compartilhamento de vídeo e tela, se seus recursos tiverem sido ativados na [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)solicitação.
**nota**  
Um total de apenas seis participantes (clientes e atendentes) podem participar de uma chamada ativa a qualquer momento. As bibliotecas cliente do SDK do Amazon Chime exibem um código de status indicando que a chamada está lotada quando uma ação é realizada para adicionar mais participantes além do limite que ocorre durante o ingresso na reunião.

1. Depois que os participantes se conectam à chamada e, depois, são desconectados normalmente ou não por um tempo pré-configurado, as credenciais de participante deles não são mais válidas. Se o `onAudioVideoDidStop` observador da biblioteca cliente receber um código de status indicando que o participante não é mais válido, os aplicativos podem acionar uma nova chamada de [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)e para o back-end [CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html)da sua empresa para participar novamente da chamada.

1. Para cada conexão de usuário adicional, Amazon Connect cria um novo contato e [registro de contato](ctr-data-model.md). Todos os contatos adicionais foram PreviousContactId configurados como InitialContactId (ou seja, aquele que foi criado pela [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)API) para rastreá-lo até o contato original. cada registro de contato:
   + Tem um **"InitiationMethod“: “WEBRTC\$1API**”
   + Tem os seguintes atributos de segmento:

     ```
        "SegmentAttributes": {
           "connect:Subtype": {
             "ValueString": "connect:WebRTC"
           }
         },
     ```

   Além disso, cada registro de contato tem o nome de exibição fornecido em `CreateParticipant`. As informações do atendente não são preenchidas para nenhum contato adicional do usuário. Isso é para evitar a duplicação das informações do atendente.

   O diagrama a seguir ilustra como o contato anterior e o próximo IDs são mapeados em um cenário em que vários participantes e agentes são adicionados em uma chamada pela web, no aplicativo ou por vídeo.  
![\[Diagrama mostrando como IDs os contatos são mapeados para chamadas WebRTC de várias partes\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/multiparty-webrtc-contact-mapping.png)

## Processar a participação de usuários simultâneos
<a name="handling-concurrent-joins"></a>

É possível que as empresas queiram criar aplicações nas quais os usuários possam participar em qualquer ordem, a qualquer momento. Por exemplo, sua aplicação pode enviar por e-mail um link com um ID de compromisso externo a vários usuários, que deve ser usado para participar de uma chamada em um horário agendado. Para ter esse comportamento, os backends comerciais devem garantir que:
+ O primeiro usuário que entra aciona uma solicitação. StartWeb RTCContact 
+ Todos os usuários adicionais usam CreateParticipant e CreateParticipantConnection **somente depois que o primeiro usuário se conecta a um agente**.

Esta seção descreve uma possível implementação, supondo que o backend da sua empresa contenha uma loja (como o DynamoDB) que possa armazenar metadados sobre compromissos agendados. Observe que os compromissos agendados não são um recurso da implementação Amazon Connect, mas sim do exemplo.

Quando o usuário navega até a página, ele deve enviar uma solicitação ao backend. O backend confere:
+ Se o usuário pode iniciar o compromisso e se é o horário correto.
+ Se o Amazon Connect contato já foi criado por meio de uma chamada [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html).

**Se o contato ainda não tiver sido criado**, o cliente deve chamar a [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)API com um [fluxo](connect-contact-flows.md) personalizado e um [atributo](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html#connect-StartWebRTCContact-request-Attributes) indicando a fila de agentes do agente correspondente que deveria participar da chamada. O fluxo deve incluir um bloco [Definir fila de trabalho](set-working-queue.md) configurado para usar a fila de atendentes fornecida nos atributos. O fluxo deve então encerrar com um bloco [Transferir para a fila](transfer-to-queue.md). Antes de a API ser chamada, o backend deve atualizar atomicamente o armazenamento para mover a chamada do estado “Nenhuma” para “Criando” e lidar com quaisquer exceções de modificação simultânea.

As credenciais do [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)devem ser devolvidas ao cliente e ele deve entrar imediatamente na chamada. O contato deve ser marcado como “Criado” no armazenamento comercial, junto com o ID do contato. **Essa API de negócios precisa ser sincronizada entre todos os possíveis participantes que ingressam**. Isso pode ser feito usando as operações atômicas fornecidas por um banco de dados.

**Se o contato estiver no estado “criando”**, o usuário adicional deverá retornar a esse estado, exibir as informações relevantes e tentar novamente após uma breve espera.

**Se o contato for criado**: eles devem recuperar o ID do contato e chamar a [DescribeContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeContact.html)API. O backend de negócios deve procurar o campo **`Contact.AgentInfo.ConnectedToAgentTimestamp`**. Se não existir, o primeiro usuário não se conectou ao atendente, e o usuário adicional deverá exibir as informações relevantes e tentar novamente após uma breve espera.

Se o campo existir, o back-end deve chamar e [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html), em seguida [CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html), obter [ConnectionData](https://docs.aws.amazon.com/connect/latest/APIReference/API_ConnectionData.html#connect-Type-ConnectionData-Meeting), conforme descrito nas seções anteriores.

O fluxo de backend deve ser semelhante ao seguinte.

![\[Fluxograma de backend para processar participações de usuários simultâneos\]](http://docs.aws.amazon.com/pt_br/connect/latest/adminguide/images/multiparty-backend-flow.png)


Você pode consultar os [exemplos de chamadas no aplicativo do Amazon Connect](https://github.com/amazon-connect/amazon-connect-in-app-calling-examples/tree/main/Web) GitHub para implementação.

**O atendente não vai ingressar usando o mesmo site**. O atendente deve definir o status no [Painel de controle de contatos](launch-ccp.md) como **Disponível**. Quando o primeiro cliente entra, o atendente é chamado automaticamente.

## Faturamento
<a name="multiuser-billing"></a>

O faturamento para participantes adicionais é equivalente ao faturamento existente para o cliente inicial e qualquer atendente na chamada. Áudio, vídeo e compartilhamento de tela geram suas próprias cobranças específicas correspondentes a cada participante.

## Comportamento da espera
<a name="multiuser-hold-behavior"></a>

Durante uma videochamada ou sessão de compartilhamento de tela, os atendentes podem ver o vídeo ou o compartilhamento de tela do participante mesmo quando ele está em espera. É responsabilidade do participante lidar com as PII adequadamente. Se estiver usando o aplicativo CCP nativo, o vídeo do atendente será desabilitado se algum participante que não seja atendente estiver em espera. Se quiser alterar esse comportamento, crie um CCP personalizado e um widget de comunicação. 

Para obter mais informações, consulte [Integrar chamadas na aplicação, pela web, por vídeo e compartilhamento de tela de maneira nativa à sua aplicação](config-com-widget2.md). 

## Limitação
<a name="multiuser-limitations"></a>

A seguinte limitação existe ao criar participantes adicionais na aplicação, pela web e por vídeo e de compartilhamento de tela:
+ Os participantes adicionais não poderão ter os recursos de vídeo definidos como **Enviar**, se o contato original tiver sido criado com os recursos de vídeo do cliente definidos como **Nenhum**.