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.
Recepción de mensajes RCS entrantes
AWS La mensajería para el usuario final admite la mensajería RCS bidireccional, lo que le permite recibir mensajes de texto de sus clientes. Los mensajes RCS entrantes siguen el mismo patrón que la mensajería bidireccional SMS: los mensajes entrantes se entregan en un tema de Amazon SNS que usted configure y usted los procesa mediante funciones de Lambda u otros suscriptores de SNS.
importante
Para consumir los mensajes RCS entrantes, debe configurar un tema de SNS de mensajería bidireccional en su agente RCS de AWS. La mensajería bidireccional está deshabilitada de forma predeterminada al crear un agente. Después de habilitarla y configurar un tema de SNS, los mensajes entrantes se envían a ese tema. A los clientes se les cobra por todos los mensajes RCS entrantes según las tarifas estándar.
En esta sección se explica cómo funciona la mensajería RCS bidireccional, cómo habilitarla para su agente RCS de AWS, el formato de carga útil de los mensajes entrantes y cómo administrar las palabras clave. Para obtener información sobre la administración de los agentes de AWS RCS, consulteAdministrar los agentes de RCS. Para obtener información sobre el envío de mensajes de RCS, consulte. Envío de mensajes RCS
Temas
Cómo funciona la mensajería RCS bidireccional
Cuando un cliente envía un mensaje de texto a su agente de AWS RCS, AWS End User Messaging recibe el mensaje y lo publica en un tema de Amazon SNS que usted designe. Desde allí, puede procesar el mensaje con cualquier suscriptor de SNS, como una función Lambda, una cola de Amazon SQS o un punto final. HTTP/HTTPS
El flujo de mensajería RCS bidireccional funciona de la siguiente manera:
-
Un cliente envía un mensaje de texto a su agente de AWS RCS desde su dispositivo compatible con RCS.
-
AWS La mensajería para el usuario final recibe el mensaje entrante y lo evalúa comparándolo con las palabras clave configuradas. Si el mensaje coincide con una palabra clave, el servicio envía la respuesta automática configurada (si la hay).
-
AWS End User Messaging publica la carga útil del mensaje como un objeto JSON en el tema de Amazon SNS que configuró para la mensajería bidireccional en el agente RCS de AWS.
-
Sus suscriptores de SNS (por ejemplo, una función Lambda) reciben la carga útil del mensaje y la procesan de acuerdo con la lógica de la aplicación.
En la mensajería de usuario AWS final, el RCS admite actualmente los mensajes de texto entrantes. Si un cliente envía un mensaje multimedia (como una imagen o un vídeo) a su agente de AWS RCS, el mensaje se registra con el estado IGNORADO. Su aplicación no recibe mensajes multimedia relacionados con el tema de las redes sociales.
Configuración del destino de mensajería bidireccional
Para recibir y procesar los mensajes RCS entrantes en su aplicación, debe habilitar la mensajería bidireccional y configurar un destino en su agente RCS de AWS. La mensajería bidireccional está deshabilitada de forma predeterminada. Al habilitarla, especificas un tema de Amazon SNS en el que AWS End User Messaging entregue los mensajes entrantes. Puede configurar el destino mediante la consola de mensajería para el usuario AWS final o la API.
Permisos de temas de SNS
El tema de Amazon SNS que configure para la mensajería RCS bidireccional debe permitir que AWS End User Messaging publique mensajes en él. Tiene dos opciones para conceder el acceso.
Opción 1: utilizar un rol de IAM
Cree una función de IAM que la mensajería de usuario AWS final pueda asumir para publicar mensajes en su tema de SNS. El rol necesita una política de confianza y una política de permisos.
Esta es la política de confianza para el rol de IAM. accountIdSustitúyalo por el identificador único de su Cuenta de AWS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMSVoice", "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" } } } ] }
Esta es la política de permisos para el rol de IAM. El SMSVoiceAllowSNSPublish Sid permite publicar temas en Amazon SNS y el SMSVoiceAllowEncryptedSNSTopics Sid es opcional para temas cifrados de Amazon SNS. Realice los siguientes cambios:
-
partitionSustitúyalo por la AWS partición en la que utiliza la mensajería de usuario AWS final. -
regionSustitúyala por la Región de AWS que utilizas la mensajería para el usuario AWS final. -
accountIdSustitúyalo por el identificador único de su Cuenta de AWS. -
snsTopicNameSustitúyalo por el nombre del tema de Amazon SNS que recibe los mensajes entrantes.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMSVoiceAllowSNSPublish", "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:partition:sns:region:accountId:snsTopicName", "Condition": { "StringEquals": { "aws:ResourceAccount": "accountId" } } }, { "Sid": "SMSVoiceAllowEncryptedSNSTopics", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:sns:topicArn": "arn:partition:sns:region:accountId:snsTopicName", "aws:CalledViaLast": "sns.amazonaws.com" } } } ] }
Opción 2: utilice una política de temas de SNS
Como alternativa, puede añadir directamente al tema del SNS una declaración de política que permita a AWS End User Messaging publicar mensajes. snsTopicArnSustitúyalo por el ARN de su tema de SNS.
{ "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sns:Publish", "Resource": "snsTopicArn" }
Formato de carga útil de los mensajes entrantes
Cuando su agente de AWS RCS recibe un mensaje de texto entrante, AWS End User Messaging publica una carga útil JSON en el tema de Amazon SNS configurado. La carga útil de los mensajes entrantes de RCS utiliza el mismo formato que la mensajería bidireccional SMS:
{ "originationNumber": "+14255550182", "destinationNumber": "+12125550101", "messageKeyword": "JOIN", "messageBody": "EXAMPLE", "inboundMessageId": "cae173d2-66b9-564c-8309-21f858e9fb84", "previousPublishedMessageId": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }
La carga útil de los mensajes entrantes contiene los siguientes campos:
| Campo | Description (Descripción) |
|---|---|
|
El número de teléfono que envió el mensaje entrante (el número de teléfono del cliente). |
|
El identificador del agente RCS de AWS que recibió el mensaje. |
|
La palabra clave registrada que coincide con el mensaje entrante, si existe. Las palabras clave se evalúan al principio del cuerpo del mensaje. |
|
El contenido de texto del mensaje entrante. |
|
Un identificador único para el mensaje entrante. |
|
El identificador único del mensaje saliente al que responde el cliente, si el mensaje entrante es una respuesta a un mensaje saliente anterior. |
Tipos de mensajes admitidos
Actualmente, el RCS de la mensajería para usuarios AWS finales admite la recepción de mensajes de texto entrantes. Cuando un cliente envía un mensaje de texto a su agente de AWS RCS, el mensaje se entrega en el tema de Amazon SNS configurado para su procesamiento.
Si un cliente envía un mensaje multimedia (como una imagen, un vídeo o un archivo) a su agente de AWS RCS, AWS End User Messaging registra el mensaje con el estado IGNORADO. Los mensajes multimedia no se envían a su tema de SNS ni los procesa su aplicación. No se devuelve ningún error al remitente.
Administración de palabras clave para RCS
Las palabras clave le permiten configurar respuestas automáticas cuando los clientes envían palabras o frases específicas a su agente de AWS RCS. Cuando un mensaje entrante coincide con una palabra clave configurada, la mensajería del usuario AWS final devuelve al cliente el mensaje de respuesta automática asociado.
En el caso de RCS, las palabras clave se configuran en el agente de AWS RCS y se aplican a todos los RCS for Business asociados IDs (agente de pruebas y agentes de lanzamiento nacionales). Puede configurar hasta 30 palabras clave por agente de AWS RCS.
Para administrar las palabras clave de su agente RCS de AWS, utilice la consola de mensajería para el usuario AWS final o la API. Para obtener información general sobre la administración de palabras clave, consultePalabras clave en los SMS de mensajería para usuarios AWS finales.
nota
Las palabras clave configuradas en el agente RCS de AWS se aplican a todos los registros asociados. No puede establecer palabras clave diferentes para el agente de pruebas y para los agentes de lanzamiento de su país de forma independiente.
Procesamiento de mensajes entrantes con Lambda
Un patrón común para procesar los mensajes RCS entrantes consiste en suscribir una función Lambda al tema Amazon SNS configurado para la mensajería bidireccional. La función Lambda recibe la carga útil de los mensajes entrantes y puede implementar la lógica de la aplicación, como responder a las consultas de los clientes, procesar comandos o enrutar mensajes a otros sistemas.
El siguiente ejemplo de Python muestra una función Lambda que procesa los mensajes RCS entrantes y envía una respuesta mediante la API: SendTextMessage
import json import boto3 sms_client = boto3.client('pinpoint-sms-voice-v2') def lambda_handler(event, context): # Parse the SNS message for record in event['Records']: sns_message = json.loads(record['Sns']['Message']) origination_number = sns_message['originationNumber'] message_body = sns_message['messageBody'] keyword = sns_message.get('messageKeyword', '') print(f"Received message from {origination_number}: {message_body}") # Process the message and determine a response if keyword.upper() == 'HELP': response_text = 'Available commands: HELP, STATUS, STOP' elif keyword.upper() == 'STATUS': response_text = 'Your account is active. No action needed.' else: response_text = ( f'Thanks for your message. ' f'Reply HELP for available commands.' ) # Send a response back to the customer try: response = sms_client.send_text_message( DestinationPhoneNumber=origination_number, OriginationIdentity='pool-a1b2c3d4e5f6g7h8i', MessageBody=response_text, MessageType='TRANSACTIONAL' ) print(f"Response sent. Message ID: {response['MessageId']}") except Exception as e: print(f"Failed to send response: {str(e)}") return {'statusCode': 200}
En este ejemplo, la función Lambda:
-
Analiza la carga útil del mensaje entrante del evento SNS.
-
Comprueba el
messageKeywordcampo para determinar la intención del cliente. -
Envía una respuesta mediante un envío basado en grupos (recomendado) a través de la
SendTextMessageAPI. El grupo gestiona la selección de canales automáticamente.
nota
Cuando envíes respuestas a los mensajes entrantes, utiliza el envío por grupos para garantizar que los SMS se envíen automáticamente en caso de que el dispositivo del cliente deje de ser compatible con RCS. Para obtener más información sobre los patrones de envío, consulte. Envío de mensajes RCS
Prácticas recomendadas para la mensajería RCS entrante
Siga estas prácticas recomendadas al implementar la mensajería RCS bidireccional:
-
Implemente la gestión de errores: su función Lambda o suscriptor de SNS debe gestionar los errores correctamente. Si su función no procesa un mensaje, configure una cola de mensajes sin procesar (DLQ) en la suscripción de SNS para capturar los mensajes sin procesar y volver a intentarlo más adelante.
-
Envía respuestas alternativas: cuando tu aplicación reciba un mensaje que no pueda procesar, envía una respuesta alternativa útil en lugar de dejar al cliente sin respuesta. Por ejemplo, responda con los comandos disponibles o dirija al cliente a un canal de asistencia alternativo.
-
Utilice el envío basado en grupos para las respuestas: al enviar respuestas a los mensajes entrantes, utilice el envío basado en grupos para garantizar que los SMS se envíen automáticamente como alternativa. Esto garantiza que tu respuesta llegue al cliente incluso si su dispositivo ya no es compatible con RCS.
-
Supervisa el procesamiento de mensajes: usa CloudWatch las métricas de Amazon para monitorear el volumen de mensajes entrantes y la tasa de éxito del procesamiento. Configura alarmas para detectar patrones inusuales, como un aumento repentino de los mensajes entrantes o una alta tasa de errores de procesamiento. Para obtener más información sobre las métricas de RCS, consulte. Monitorización y CloudWatch métricas de RCS
-
Gestione las respuestas de palabras clave de forma coherente: asegúrese de que las respuestas automáticas de las palabras clave y las respuestas programáticas de su aplicación no entren en conflicto. Si configura una respuesta automática de palabras clave para una palabra clave específica, la función Lambda seguirá recibiendo el mensaje. Diseña tu función para evitar enviar una respuesta duplicada para las palabras clave que ya tienen configuradas las respuestas automáticas.