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 de RCS entrantes
AWSLa 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. Two-way la mensajería está deshabilitada de forma predeterminada al crear un agente. Tras 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, consulteAdministración de agentes de RCS. Para obtener información sobre el envío de mensajes de RCS, consulte. Envío de mensajes de 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 RCS-capable dispositivo.
-
AWSLa 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).
-
AWSEnd 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.
Además de los mensajes de texto, los clientes pueden enviar contenido multimedia (imágenes, vídeos, archivos de audio y documentos) a su agente de AWS RCS. Al configurar el almacenamiento multimedia entrante, AWS End User Messaging guarda el contenido multimedia en su bucket de Amazon S3 y publica una notificación en su tema de SNS con la ubicación del archivo y los metadatos. Para obtener más información, consulte Recepción de medios RCS entrantes.
Configurar el 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. Two-way la mensajería 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 suCuenta 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. -
accountIdReemplácelo por el ID único de suCuenta 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
AWSLa mensajería para el usuario final admite los siguientes tipos de mensajes RCS entrantes. Cuando un cliente envía un mensaje a su agente de AWS RCS, AWS End User Messaging envía una notificación al tema de Amazon SNS configurado para su procesamiento.
-
Mensaje de texto. El texto del mensaje se entrega en el cuerpo de la notificación del SNS.
-
Mensajes multimedia (imágenes, vídeos, archivos de audio y documentos). Al configurar el almacenamiento multimedia entrante, AWS End User Messaging guarda el archivo multimedia en su bucket de Amazon S3 e incluye la ubicación de S3 en la notificación de SNS. Para obtener más información, consulte Recepción de medios RCS entrantes.
-
La ubicación se comparte y las respuestas a las sugerencias. Cuando un cliente comparte una ubicación o elige una sugerencia, el contenido se entrega directamente en el cuerpo de notificaciones del SNS.
Gestió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 ID de RCS for Business asociados (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 de 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 sin problemas. 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. 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.