

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.

# Habilite la transmisión de mensajes de chat en tiempo real en Connect Customer
<a name="chat-message-streaming"></a>

Connect Customer Chat proporciona [API](https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html) que le permiten suscribirse a una transmisión de mensajes de chat en tiempo real. Con estas API, puede: 
+ Transmitir mensajes de chat en tiempo real cuando se cree un nuevo contacto de chat.
+ Amplíe la funcionalidad actual de Connect Customer Chat para admitir casos de uso, como la creación de integraciones con soluciones de SMS y aplicaciones de mensajería de terceros, la habilitación de notificaciones push móviles y la creación de paneles de análisis para monitorear y rastrear la actividad de los mensajes de chat. 

**nota**  
En esta página se describe cómo suscribirse a un punto final de SNS para la transmisión en tiempo real de los mensajes de chat en Connect Customer. Si está intentando habilitar la transmisión de mensajes para las interacciones conversacionales de IA en Connect Customer, consulte[Habilitar la transmisión de mensajes para el AI-powered chat](message-streaming-ai-chat.md).

## Cómo funcionan las API de streaming de mensajes
<a name="how-chat-message-streaming-apis-work"></a>

[Las API de transmisión de mensajes de Connect Customer](https://docs.aws.amazon.com/connect/latest/APIReference/Welcome.html) se activan cuando se producen determinados eventos en un contacto de Connect Customer Chat. Por ejemplo, cuando un cliente envía un nuevo mensaje de chat, el evento envía una [carga](sns-payload.md) a un punto de conexión especificado que contiene datos sobre el mensaje que se acaba de enviar. Los mensajes se publican mediante [Amazon Simple Notification Service](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) (Amazon SNS) en un punto de conexión específico. 

En este tema se describe cómo configurar la transmisión de mensajes en tiempo real mediante Connect Customer y Amazon SNS. Los pasos son: 

1. Utilice la consola de Amazon SNS para crear un nuevo tema SNS estándar y configurar los mensajes.

1. Llame a la [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API para iniciar el contacto de chat.

1. Llama a la [StartContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartContactStreaming.html)API para iniciar la transmisión de mensajes. 

1. Llama a la [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)API para crear la conexión del participante.

## Paso 1: crear tema de SNS estándar
<a name="step1-chat-streaming"></a>

1. Vaya a la consola de Amazon SNS. 

1. [Crea un tema de SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) en tu AWS cuenta. En la sección **Detalles**, para **Tipo**, elija **Estándar**, introduzca un nombre para el tema y, a continuación, elija **Crear tema**.
**nota**  
Actualmente, las API de streaming de mensajes solo admiten SNS estándar para el streaming de mensajes en tiempo real. No son compatibles con los [temas FIFO (primero en entrar, primero en salir) de Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-fifo-topics.html). 

1. Tras crear el tema, su nombre de recurso de Amazon (ARN) aparece en la sección **Detalles**. Copie el ARN del tema en el portapapeles. Utilizará el ARN de tema en el siguiente paso y en [Paso 3: habilitar el streaming de mensajes en el contacto](#step3-chat-streaming). 

   El ARN de tema tiene un aspecto similar al del ejemplo siguiente: 

   ```
   arn:aws:sns:{{us-east-1}}:{{123456789012}}:{{MyTopic}}                                
   ```

1. Elija la pestaña **Política de acceso**, elija **Editar** y, a continuación, agregue una política basada en recursos sobre el tema de SNS para que Connect Customer tenga permiso para publicar en ella. A continuación, encontrará un ejemplo de política de SNS que puede copiar y pegar en el editor JSON y, a continuación, personalizar con sus valores: 

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Principal":{
               "Service":"connect.amazonaws.com"
            },
            "Action":"sns:Publish",
            "Resource":"arn:aws:sns:{{us-east-1}}:{{111122223333}}:{{TopicName}}",
            "Condition":{
               "StringEquals":{
                   "aws:SourceAccount":"{{111122223333}}"
               },
               "ArnEquals":{
               "aws:SourceArn":"arn:aws:connect:{{us-east-1}}:{{111122223333}}:instance/{{InstanceId}}"
               }
            }
         }
      ]
   }
   ```

------
**nota**  
La **política de acceso** predeterminada incluye condiciones aplicadas a `sourceOwner`, como:   

   ```
   "Condition": {
           "StringEquals": {
             "AWS:SourceOwner": "921772911154"
           }
         }
   ```
Asegúrese de quitarla y reemplazarla por `SourceAccount`, por ejemplo:  

   ```
   "Condition":{
               "StringEquals":{
                  "aws:SourceAccount":"YOUR_AWS_ACCOUNT_ID"
               },
               "ArnEquals":{
                  "aws:SourceArn":"YOUR_CONNECT_INSTANCE_ARN"
               }
            }
   ```
Esto evita un problema de [suplente confuso entre servicios](cross-service-confused-deputy-prevention.md). 

1. Si utiliza el cifrado del servidor en SNS, verifique que tiene el permiso `connect.amazonaws.com` habilitado en la KMS key. A continuación, se muestra una política de ejemplo:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "key-consolepolicy-3",
       "Statement": [
           {
               "Sid": "Enable IAM User Permissions",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::{{111122223333}}:root",
                   "Service": "connect.amazonaws.com"
               },
               "Action": "kms:*",
               "Resource": "*"
           },
           {
               "Sid": "Allow access for Key Administrators",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::{{111122223333}}:root",
                   "Service": "connect.amazonaws.com"
               },
               "Action": [
                   "kms:Create*",
                   "kms:Describe*",
                   "kms:Enable*",
                   "kms:List*",
                   "kms:Put*",
                   "kms:Update*",
                   "kms:Revoke*",
                   "kms:Disable*",
                   "kms:Get*",
                   "kms:Delete*",
                   "kms:TagResource",
                   "kms:UntagResource",
                   "kms:ScheduleKeyDeletion",
                   "kms:CancelKeyDeletion"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

## Paso 2: iniciar el contacto de chat
<a name="step2-chat-streaming"></a>

1. Llame a la [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)API Connect Customer para iniciar el contacto de chat. 

   Para obtener información sobre cómo crear el cliente SDK para llamar a las API de Connect Customer, consulte los siguientes temas:
   + [Clase AmazonConnectClientBuilder](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/connect/AmazonConnectClientBuilder.html) 
   + [Creación de clientes de servicio](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/creating-clients.html) 

1. Realice un seguimiento de la [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html)respuesta `ContactId` y `ParticipantToken` desde ella, ya que estos atributos de respuesta se utilizan para llamar a otras API de chat necesarias para habilitar la transmisión. Esto se describe en los siguientes pasos.

## Paso 3: habilitar el streaming de mensajes en el contacto
<a name="step3-chat-streaming"></a>
+ Llama [StartContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartContactStreaming.html)para activar la transmisión de mensajes en tiempo real a tu tema de SNS.
  + **Límites**: puede suscribirse a un máximo de dos temas de SNS por contacto.
  + Cuando llames [StartContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartContactStreaming.html), tendrás que proporcionar el nombre del recurso de Amazon (ARN) del tema de SNS (consulte). [Paso 1: crear tema de SNS estándar](#step1-chat-streaming)

    Se puede usar un único ARN de tema de SNS en Cuentas de AWS varios, pero debe estar en la misma región que la instancia de Connect Customer. **Por ejemplo, si el ARN del tema está en us-east-1, la instancia de Connect Customer debe estar en **us-east-1**.**
  + En el caso de los mensajes de chat iniciales que no se reciben en el terminal de streaming, puedes llamar a la [GetTranscript](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_GetTranscript.html)API para recibir los mensajes iniciales.

## Paso 4: crear la conexión de participante
<a name="step4-chat-streaming"></a>
+ Llama [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)con el `ConnectParticipant` atributo asignado como true. 
  + Debe llamar [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)en un plazo de cinco minutos a partir de la creación del chat.
  + Llamar [CreateParticipantConnection](https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html)con `ConnectParticipant` el valor «true» solo funciona si has activado la transmisión [Paso 2: iniciar el contacto de chat](#step2-chat-streaming) y la persona que llama es `Customer` participante.
  + Este paso (crear la conexión del participante) es opcional si ya se ha conectado correctamente al contacto de chat mediante `WEBSOCKET`.

## Siguientes pasos
<a name="nextsteps-chat-streaming"></a>

Ya está todo listo para trabajar con las API de streaming de mensajes.

1. Para comprobar que funciona, compruebe que los mensajes se publican en el tema de SNS que ha creado. Puedes hacerlo con las CloudWatch métricas de Amazon. Para obtener instrucciones, consulte [Supervisar los temas de Amazon SNS mediante](https://docs.aws.amazon.com/sns/latest/dg/sns-monitoring-using-cloudwatch.html). CloudWatch 

1. Como SNS tiene una [retención limitada](https://aws.amazon.com/blogs//aws/sns-ttl-control/), le recomendamos que establezca [Amazon Simple Queue Service (Amazon SQS)](https://aws.amazon.com/sqs/), [Amazon Kinesis](https://aws.amazon.com/kinesis/) u otro servicio para retener los mensajes. 

1. [StopContactStreaming](https://docs.aws.amazon.com/connect/latest/APIReference/API_StopContactStreaming.html)El uso es opcional y no obligatorio si los chats se [desconectan](disconnect-hang-up.md) a través de un flujo de contactos o si el cliente desconecta el chat. No obstante, `StopContactStreaming` ofrece la opción de detener el streaming de mensajes en el tema de SNS, aunque el chat esté activo y en curso.