

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Habilitación de videollamadas, llamadas web y llamadas multiusuario dentro de la aplicación
<a name="enable-multiuser-inapp"></a>

Connect Customer permite añadir usuarios adicionales para que se unan a la videollamada dentro de la aplicación, a la web o a la videollamada de una llamada existente. Puede agregar hasta cuatro usuarios adicionales a una videollamada, llamada web o llamada dentro de la aplicación, hasta un total de seis participantes: el agente, el primer usuario y cuatro participantes más (usuarios o agentes).

## Cómo agregar participantes a una llamada de varios usuarios
<a name="how-to-add-participants"></a>

1. Para habilitar las llamadas entre varios usuarios, debes habilitar la [supervisión mejorada de los contactos entre varios](monitor-conversations.md) usuarios desde la Connect Customer consola.

1. Una vez hecho esto, puedes aprovechar la Connect Customer [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)API existente para crear un contacto y redirigirlo a un agente.

1. Para añadir un participante adicional, primero cree un participante que pase `ContactId` de la respuesta de la [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)API a la [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)no tendrá éxito hasta que la persona que llamó originalmente se haya conectado al agente. Las capacidades de vídeo y de pantalla compartida del participante se pueden configurar en el campo `ParticipantDetails.ParticipantCapabilities`.

1. Cuando se [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)completa correctamente, devuelve un [token de participante](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html#connect-CreateParticipant-response-ParticipantCredentials). Este token se puede usar en una solicitud [CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html)con el valor `Type` establecido en`WEBRTC_CONNECTION`. La respuesta incluye información [ConnectionData](https://docs.aws.amazon.com/connect/latest/APIReference/API_ConnectionData.html#connect-Type-ConnectionData-Meeting)que se puede utilizar para unirse a la reunión mediante las [bibliotecas de cliente del SDK de Amazon Chime](https://docs.aws.amazon.com/chime-sdk/latest/dg/mtgs-sdk-client-lib.html) para el participante adicional creado. Siga las [instrucciones de integración](config-com-widget2.md) para permitir que el usuario final de la aplicación se una a la reunión.
**nota**  
[CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)devuelve un error de solicitud errónea si el agente aún no está conectado al contacto. Para ver cuáles son las aplicaciones empresariales a las que los usuarios pueden intentar unirse antes de que el agente esté conectado, consulte [Gestión de las uniones simultáneas de usuarios](#handling-concurrent-joins).

1. Los clientes adicionales pueden conectarse en cualquier momento después de la [CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html)devolución. Cuando los participantes se unen, [todo el comportamiento adicional de voz y grabación es similar al de la función de varios participantes](multi-party-calls.md). Los nuevos participantes pueden habilitar el uso compartido de vídeo y pantalla si sus capacidades están habilitadas en la [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)solicitud.
**nota**  
En una llamada activa, solo pueden unirse seis participantes (clientes y agentes) como máximo. Cuando se lleva a cabo una acción para añadir más participantes de modo que se supere el límite, las bibliotecas de clientes de Amazon Chime SDK devuelven un código de estado que indica que la llamada está llena.

1. Cuando los participantes se hayan conectado a la llamada y, a continuación, se hayan desconectado, de un modo controlado o no controlado, durante un tiempo preconfigurado, sus credenciales de participante dejarán de ser válidas. Si el `onAudioVideoDidStop` observador de la biblioteca cliente recibe un código de estado que indica que el asistente ya no es válido, las solicitudes pueden activar una nueva llamada [CreateParticipantConnection](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html)desde [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html)y hacia el back-end de su empresa para volver a unirse a la llamada.

1. [Por cada conexión de usuario adicional, Connect Customer crea un nuevo contacto y registro de contactos.](ctr-data-model.md) Todos los contactos adicionales PreviousContactId se han establecido en el InitialContactId (es decir, el que creó la [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)API) para rastrearlo hasta el contacto original. Todos los registros de contacto disponen de lo siguiente:
   + Tiene un **"InitiationMethod«: «WEBRTC\_API**»
   + Tienen los siguientes atributos de segmento:

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

   Además, cada registro de contacto tiene el nombre público suministrado en `CreateParticipant`. La información del agente no se rellena para ningún contacto de usuario adicional. Esto se hace para evitar la duplicación de la información del agente.

   El siguiente diagrama ilustra cómo IDs se mapean el contacto anterior y el siguiente en un escenario en el que se agregan varios participantes y agentes en una llamada web, en la aplicación o por videollamada.  
![Diagrama que muestra cómo IDs se mapean los contactos para las llamadas WebRTC multipartitas](http://docs.aws.amazon.com/es_es/connect/latest/adminguide/images/multiparty-webrtc-contact-mapping.png)

## Gestión de las uniones simultáneas de usuarios
<a name="handling-concurrent-joins"></a>

Es posible que las empresas deseen crear aplicaciones en las que los usuarios puedan unirse en cualquier orden y en cualquier momento. Por ejemplo, su aplicación puede enviar por correo electrónico un enlace con un identificador de cita externo a varios usuarios, lo que debería usarse para unirse a una llamada a una hora programada. Para lograr este comportamiento, los backends empresariales deben confirmar lo siguiente:
+ El primer usuario que se une activa una solicitud. StartWeb RTCContact 
+ Todos los usuarios adicionales lo utilizan CreateParticipant CreateParticipantConnection, pero **solo después de que el primer usuario se haya conectado a un agente**.

En esta sección, se describe una posible implementación, suponiendo que el backend de su empresa contenga un almacén (como DynamoDB) que pueda almacenar metadatos sobre las citas programadas. Tenga en cuenta que las citas programadas no son una característica de la implementación Connect Customer, sino una característica de la misma.

Cuando el usuario navegue a la página, debe enviar una solicitud al backend. El backend comprueba lo siguiente:
+ Si el usuario puede iniciar la cita y si es la hora correcta.
+ Si el Connect Customer contacto ya se creó al llamar [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html).

**Si el contacto aún no se ha creado**, el cliente debe llamar a la [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)API con un [flujo](connect-contact-flows.md) personalizado y un [atributo](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html#connect-StartWebRTCContact-request-Attributes) que indique la cola de agentes del agente correspondiente que se esperaba que se uniera a la llamada. El flujo debe incluir un bloque [Establecer cola de trabajo](set-working-queue.md) configurado para usar la cola de agente suministrada en atributos. A continuación, el flujo debe terminar con un bloque [Transferir a la cola](transfer-to-queue.md). Antes de llamar a la API, el backend debe actualizar la tienda de forma granular para pasar la llamada del estado “Ninguna” al estado “Creando” y gestionar cualquier excepción de modificación simultánea.

Las credenciales de [StartWebRTCContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartWebRTCContact.html)deben devolverse al cliente y este debe unirse inmediatamente a la llamada. El contacto debe estar marcado como “Creado” en la tienda de la empresa, junto con su ID de contacto. **Esta API empresarial debe estar sincronizada entre todos los posibles asistentes que se unan**. Esto se puede hacer utilizando las operaciones granulares proporcionadas por una base de datos.

**Si el contacto se encuentra en estado de creación**, se debe devolver este estado al usuario adicional, mostrar la información relevante y volver a intentarlo tras un breve periodo de espera.

**Si se crea el contacto**: deben recuperar el ID del contacto y llamar a la [DescribeContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribeContact.html)API. El backend empresarial debe buscar el campo **`Contact.AgentInfo.ConnectedToAgentTimestamp`**. Si no existe, esto significa que el primer usuario no se ha conectado al agente, y el usuario adicional debería mostrar la información pertinente y volver a intentarlo tras un breve periodo de espera.

Si el campo existe, el backend debería llamar y, después [CreateParticipant](https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateParticipant.html), a get [CreateParticipantConnection[ConnectionData](https://docs.aws.amazon.com/connect/latest/APIReference/API_ConnectionData.html#connect-Type-ConnectionData-Meeting)](https://docs.aws.amazon.com/connect/latest/APIReference/API_connect-participant_CreateParticipantConnection.html), tal y como se ha descrito en las secciones anteriores.

El flujo del backend debe ser similar a lo siguiente.

![Diagrama del flujo de backend para gestionar las uniones de usuarios simultáneas](http://docs.aws.amazon.com/es_es/connect/latest/adminguide/images/multiparty-backend-flow.png)


Puedes consultar los [ejemplos de llamadas integradas en la aplicación de Amazon Connect](https://github.com/amazon-connect/amazon-connect-in-app-calling-examples/tree/main/Web) GitHub para obtener información sobre la implementación.

**El agente no se unirá a través del mismo sitio web**. El agente debe establecer su estado en el [panel de control de contacto](launch-ccp.md) como **Disponible**. Cuando el primer cliente se una, se llamará automáticamente al agente.

## Facturación
<a name="multiuser-billing"></a>

La facturación para los participantes adicionales equivale a la facturación existente para el cliente inicial y cualquier agente que participe en la llamada. El audio, el vídeo y la pantalla compartida conllevan sus propios cargos, específicos para cada participante.

## Comportamiento de espera
<a name="multiuser-hold-behavior"></a>

Durante una videollamada o una sesión de pantalla compartida, los agentes pueden ver el vídeo o la pantalla compartida del participante, aunque este esté en espera. El participante debe gestionar la PII en consecuencia. Si utiliza la aplicación CCP nativa, el vídeo del agente se desactiva si algún participante que no sea un agente está en espera. Si quiere cambiar este comportamiento, puede crear un CCP personalizado y un widget de comunicación. 

Para obtener más información, consulte [Integración de la pantalla compartida, las videollamadas, las llamadas web y las llamadas dentro de la aplicación de forma nativa en su aplicación](config-com-widget2.md). 

## Limitación
<a name="multiuser-limitations"></a>

Existe la siguiente limitación al crear participantes adicionales para la aplicación, la web, las videollamadas y el uso compartido de pantalla:
+ Los participantes adicionales no pueden tener las funciones de vídeo configuradas en **Enviar** si el contacto original se creó con las funciones de vídeo del cliente configuradas en **Ninguna**.