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á.
Recebendo mensagens RCS de entrada
AWS O End User Messaging suporta mensagens RCS bidirecionais, permitindo que você receba mensagens de texto de seus clientes. As mensagens RCS de entrada seguem o mesmo padrão das mensagens bidirecionais SMS: as mensagens recebidas são entregues a um tópico do Amazon SNS que você configura e você as processa usando funções Lambda ou outros assinantes do SNS.
Importante
Para consumir mensagens RCS de entrada, você deve configurar um tópico de SNS de mensagens bidirecionais em seu AWS RCS Agent. As mensagens bidirecionais são desativadas por padrão quando você cria um agente. Depois de habilitá-lo e configurar um tópico do SNS, as mensagens de entrada são enviadas para esse tópico. Os clientes são cobrados por todas as mensagens RCS recebidas com taxas padrão.
Esta seção explica como as mensagens RCS bidirecionais funcionam, como habilitá-las para seu AWS RCS Agent, o formato da carga útil da mensagem de entrada e como gerenciar palavras-chave. Para obter informações sobre o gerenciamento de agentes do AWS RCS, consulteGerenciando agentes RCS. Para obter informações sobre o envio de mensagens RCS, consulteEnviando mensagens RCS.
Tópicos
Como funcionam as mensagens RCS bidirecionais
Quando um cliente envia uma mensagem de texto para seu agente do AWS RCS, o AWS End User Messaging recebe a mensagem e a publica em um tópico do Amazon SNS que você designar. A partir daí, você pode processar a mensagem usando qualquer assinante do SNS, como uma função Lambda, uma fila do Amazon SQS ou um endpoint. HTTP/HTTPS
O fluxo bidirecional de mensagens RCS funciona da seguinte maneira:
-
Um cliente envia uma mensagem de texto para seu agente do AWS RCS a partir de seu dispositivo compatível com RCS.
-
AWS O End User Messaging recebe a mensagem de entrada e a avalia em relação às palavras-chave configuradas. Se a mensagem corresponder a uma palavra-chave, o serviço enviará a resposta automática configurada (se houver).
-
AWS O End User Messaging publica a carga da mensagem como um objeto JSON no tópico do Amazon SNS que você configurou para mensagens bidirecionais no AWS RCS Agent.
-
Seus assinantes do SNS (por exemplo, uma função Lambda) recebem a carga útil da mensagem e a processam de acordo com a lógica do seu aplicativo.
O RCS no AWS End User Messaging atualmente suporta mensagens de texto recebidas. Se um cliente enviar uma mensagem de mídia (como uma imagem ou vídeo) para seu agente do AWS RCS, a mensagem será registrada com o status IGNORADO. Seu aplicativo não recebe mensagens de mídia por meio do tópico SNS.
Configurando seu destino de mensagens bidirecionais
Para receber e processar mensagens RCS de entrada em seu aplicativo, você deve habilitar mensagens bidirecionais e configurar um destino em seu AWS RCS Agent. As mensagens bidirecionais estão desativadas por padrão. Ao habilitá-lo, você especifica um tópico do Amazon SNS em que o AWS End User Messaging entrega mensagens de entrada. Você pode configurar o destino usando o console AWS End User Messaging ou a API.
Permissões de tópicos do SNS
O tópico do Amazon SNS que você configura para mensagens RCS bidirecionais deve permitir que o AWS End User Messaging publique mensagens nele. Você tem duas opções para conceder acesso.
Opção 1: usar uma função do IAM
Crie uma função do IAM que o AWS End User Messaging possa assumir para publicar mensagens em seu tópico do SNS. A função precisa de uma política de confiança e de uma política de permissão.
A seguir, apresentamos a política de confiança para o perfil do IAM. accountIdSubstitua pelo ID exclusivo do seu Conta da AWS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMSVoice", "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" } } } ] }
A seguir está a política de permissões para o perfil do IAM. O SMSVoiceAllowSNSPublish Sid permite a publicação em tópicos do Amazon SNS e SMSVoiceAllowEncryptedSNSTopics o Sid é opcional para tópicos criptografados do Amazon SNS. Faça as seguintes alterações em:
-
partitionSubstitua pela AWS partição na qual você usa o AWS End User Messaging. -
regionSubstitua por Região da AWS aquela em que você usa o AWS End User Messaging. -
accountIdSubstitua pelo ID exclusivo do seu Conta da AWS. -
snsTopicNameSubstitua pelo nome do tópico do Amazon SNS que recebe mensagens de entrada.
{ "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" } } } ] }
Opção 2: usar uma política de tópicos do SNS
Como alternativa, adicione uma declaração de política diretamente ao tópico do SNS que permita que o AWS End User Messaging publique mensagens. snsTopicArnSubstitua pelo ARN do seu tópico do SNS.
{ "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sns:Publish", "Resource": "snsTopicArn" }
Formato de carga útil da mensagem de entrada
Quando seu AWS RCS Agent recebe uma mensagem de texto de entrada, o AWS End User Messaging publica uma carga JSON no tópico configurado do Amazon SNS. A carga útil da mensagem de entrada do RCS usa o mesmo formato das mensagens bidirecionais SMS:
{ "originationNumber": "+14255550182", "destinationNumber": "+12125550101", "messageKeyword": "JOIN", "messageBody": "EXAMPLE", "inboundMessageId": "cae173d2-66b9-564c-8309-21f858e9fb84", "previousPublishedMessageId": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }
O payload da mensagem de entrada contém os seguintes campos:
| Campo | Description |
|---|---|
|
O número de telefone que enviou a mensagem de entrada (o número de telefone do cliente). |
|
O identificador do AWS RCS Agent que recebeu a mensagem. |
|
A palavra-chave registrada que corresponde à mensagem de entrada, se houver. As palavras-chave são avaliadas em relação ao início do corpo da mensagem. |
|
O conteúdo do texto da mensagem de entrada. |
|
Um identificador exclusivo para a mensagem de entrada. |
|
O identificador exclusivo da mensagem de saída à qual o cliente está respondendo, se a mensagem de entrada for uma resposta a uma mensagem de saída anterior. |
Tipos de mensagens com suporte
O RCS no AWS End User Messaging atualmente suporta o recebimento de mensagens de texto recebidas. Quando um cliente envia uma mensagem de texto para seu agente do AWS RCS, a mensagem é entregue ao tópico configurado do Amazon SNS para processamento.
Se um cliente enviar uma mensagem de mídia (como imagem, vídeo ou arquivo) para seu agente do AWS RCS, o AWS End User Messaging registrará a mensagem com o status IGNORADO. As mensagens de mídia não são enviadas ao tópico do SNS e não são processadas pelo seu aplicativo. Nenhum erro é retornado ao remetente.
Gerenciamento de palavras-chave para RCS
As palavras-chave permitem que você configure respostas automáticas quando os clientes enviam palavras ou frases específicas para seu agente do AWS RCS. Quando uma mensagem de entrada corresponde a uma palavra-chave configurada, o AWS End User Messaging envia a mensagem de resposta automática associada de volta ao cliente.
Para o RCS, as palavras-chave são configuradas no AWS RCS Agent e se aplicam a todos os RCS for Business associados IDs (agente de teste e agentes de lançamento do país). Você pode configurar até 30 palavras-chave por AWS RCS Agent.
Para gerenciar palavras-chave para seu AWS RCS Agent, use o console AWS End User Messaging ou a API. Para obter informações gerais sobre gerenciamento de palavras-chave, consultePalavras-chave em SMS de mensagens para usuários AWS finais.
nota
As palavras-chave configuradas no AWS RCS Agent se aplicam a todos os registros associados. Você não pode definir palavras-chave diferentes para seu agente de teste e para os agentes de lançamento do país de forma independente.
Processamento de mensagens recebidas com o Lambda
Um padrão comum para o processamento de mensagens RCS de entrada é inscrever uma função Lambda no tópico do Amazon SNS configurado para mensagens bidirecionais. A função Lambda recebe a carga útil da mensagem de entrada e pode implementar a lógica do seu aplicativo, como responder às consultas dos clientes, processar comandos ou rotear mensagens para outros sistemas.
O exemplo de Python a seguir mostra uma função Lambda que processa mensagens RCS de entrada e envia uma resposta usando a 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}
Neste exemplo, a função Lambda:
-
Analisa a carga útil da mensagem de entrada do evento SNS.
-
Verifica o
messageKeywordcampo para determinar a intenção do cliente. -
Envia uma resposta usando o envio baseado em pool (recomendado) por meio da
SendTextMessageAPI. O pool gerencia a seleção de canais automaticamente.
nota
Ao enviar respostas às mensagens recebidas, use o envio baseado em pool para garantir o retorno automático de SMS se o dispositivo do cliente não suportar mais o RCS. Para obter detalhes sobre padrões de envio, consulteEnviando mensagens RCS.
Práticas recomendadas para mensagens RCS de entrada
Siga estas melhores práticas ao implementar mensagens RCS bidirecionais:
-
Implemente o tratamento de erros — Sua função Lambda ou assinante do SNS deve lidar com os erros normalmente. Se sua função falhar ao processar uma mensagem, configure uma fila de cartas mortas (DLQ) na assinatura do SNS para capturar mensagens não processadas para tentar novamente mais tarde.
-
Envie respostas alternativas — Quando seu aplicativo receber uma mensagem que não consegue processar, envie uma resposta alternativa útil em vez de deixar o cliente sem uma resposta. Por exemplo, responda com os comandos disponíveis ou direcione o cliente para um canal de suporte alternativo.
-
Use o envio baseado em pool para respostas — Ao enviar respostas às mensagens recebidas, use o envio baseado em pool para garantir o retorno automático de SMS. Isso garante que sua resposta chegue ao cliente mesmo que o dispositivo não ofereça mais suporte ao RCS.
-
Monitore o processamento de mensagens — Use CloudWatch as métricas da Amazon para monitorar o volume de mensagens recebidas e a taxa de sucesso do processamento. Configure alarmes para padrões incomuns, como um aumento repentino nas mensagens recebidas ou uma alta taxa de falhas de processamento. Para obter detalhes sobre as métricas do RCS, consulteCloudWatch Métricas e monitoramento do RCS.
-
Lide com respostas de palavras-chave de forma consistente — garanta que as respostas automáticas de palavras-chave e as respostas programáticas do seu aplicativo não entrem em conflito. Se você configurar uma resposta automática de palavra-chave para uma palavra-chave específica, sua função Lambda ainda receberá a mensagem. Crie sua função para evitar o envio de uma resposta duplicada para palavras-chave que já tenham respostas automáticas configuradas.