View a markdown version of this page

Recebendo mídia RCS de entrada - AWSSMS de mensagens para o usuário final

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 mídia RCS de entrada

Os usuários podem enviar mídia (imagens, vídeos, arquivos de áudio e documentos) em conversas RCS com seu agente. Quando você configura o armazenamento de mídia de entrada, o AWS End User Messaging baixa a mídia do provedor RCS, a carrega em seu bucket do Amazon S3 e publica uma notificação em seu tópico bidirecional do Amazon SNS com a localização do S3 e os metadados do arquivo.

Para obter informações gerais sobre o recebimento de mensagens RCS de entrada (respostas de texto, localização e sugestões), consulte. Receber mensagens RCS de entrada Para obter informações sobre o envio de mídia avançada aos usuários, consulteEnviando mensagens ricas de RCS.

Como funciona a mídia de entrada

Quando um usuário envia um arquivo de mídia em uma conversa RCS, o AWS End User Messaging processa a mensagem por meio das seguintes etapas:

  1. O usuário envia uma imagem, vídeo, arquivo de áudio ou documento do aplicativo de mensagens RCS.

  2. AWSO End User Messaging baixa a mídia do provedor RCS.

  3. AWSO End User Messaging carrega a mídia em seu bucket S3 configurado usando a função do IAM que você especifica.

  4. AWSO End User Messaging publica uma notificação para seu tópico bidirecional do SNS. A notificação inclui o bucket do S3, a chave, o tipo MIME e os metadados da mensagem.

Para tipos de SUGGESTION mensagem LOCATION e tipo, nenhum upload do S3 ocorre. O conteúdo é entregue diretamente no corpo de notificação do SNS. Para obter detalhes sobre esses tipos de mensagem, consulteReceber mensagens RCS de entrada.

Configurando o armazenamento de mídia de entrada

Para receber mídia de entrada, configure os seguintes campos em seu agente RCS usando a UpdateRcsAgent API. Two-way as mensagens devem ser habilitadas no agente antes de você configurar o armazenamento de mídia.

Campos de configuração de mídia de entrada
Campo Obrigatório Descrição
TwoWayMediaS3BucketName Sim O nome do bucket do S3 em que o AWS End User Messaging armazena arquivos de mídia de entrada.
TwoWayMediaS3KeyPrefix Não Um prefixo opcional para chaves de objeto do S3. Se especificado, os objetos de mídia são armazenados sob esse prefixo no bucket.
TwoWayMediaS3Role Sim O ARN da função do IAM que o AWS End User Messaging assume para fazer upload de arquivos de mídia para seu bucket do S3.

O bucket do S3 e a função do IAM são necessários juntos. Se você especificar um, deverá especificar os dois.

Formato de chave S3

Os objetos de mídia são armazenados com o seguinte formato de chave, em que o nome do arquivo original é anexado após um # separador:

{prefix}/rcs/{messageId}#{fileName}

Por exemplo, se você definir o prefixo da chave comoinbound-media, um arquivo de mídia poderá ser armazenado como:

inbound-media/rcs/msg-abc123def456#photo_2026.jpg

Criação da função do IAM para mídia de entrada

Crie uma função do IAM que permita que o serviço AWS End User Messaging faça upload de arquivos de mídia para seu bucket do S3. A função exige uma política de confiança que permita que o serviço a assuma e uma política de permissão que conceda s3:PutObject acesso ao seu bucket.

Política de confiança

A política de confiança a seguir permite que o diretor do serviço de mensagens do usuário AWS final assuma a função. 123456789012Substitua pelo ID AWS da sua conta.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

Política de permissão

A política de permissão a seguir concede à função acesso para gravar objetos em seu bucket do S3. Substitua my-rcs-media-bucket pelo nome do seu bucket.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::my-rcs-media-bucket/*" } ] }
nota

Defina o escopo da função do IAM de forma restrita a s3:PutObject apenas. O serviço não exige s3:GetObject nem outras permissões para entrega de mídia de entrada. s3:DeleteObject

Configurando o armazenamento de mídia (CLI)

O comando AWS CLI a seguir configura o armazenamento de mídia de entrada em um agente RCS existente:

aws pinpoint-sms-voice-v2 update-rcs-agent \ --rcs-agent-id rcs-agent-1234567890abcdef0 \ --two-way-media-s3-bucket-name my-rcs-media-bucket \ --two-way-media-s3-key-prefix "inbound-media" \ --two-way-media-s3-role arn:aws:iam::123456789012:role/RcsInboundMediaRole \ --region us-east-1

Carga útil de notificação de mídia de entrada

Quando o AWS End User Messaging recebe um arquivo de mídia, ele publica uma notificação em seu tópico bidirecional do SNS. A notificação é um objeto JSON com um messageBody campo que contém um documento JSON em sequência com o status da mídia e, em caso de sucesso, a localização do S3 e os metadados do arquivo.

O exemplo a seguir mostra uma notificação de mídia de entrada bem-sucedida:

{ "originationNumber": "+14255551234", "destinationNumber": "rcs-cb1e6e519e9049fabf8c0ae38e4d876b", "messageBody": "{\"mediaStatus\":\"SUCCESS\",\"s3Bucket\":\"my-rcs-media-bucket\",\"s3Key\":\"inbound-media/rcs/msg-abc123def456#photo_2026.jpg\",\"mimeType\":\"image/jpeg\",\"fileName\":\"photo_2026.jpg\",\"fileSizeBytes\":1211843}", "inboundMessageId": "8821d750-4bc5-4cb1-a8c3-c3d64a38d019" }

A notificação de nível superior contém os seguintes campos:

originationNumber

O número de telefone do usuário que enviou a mídia.

destinationNumber

O identificador do agente RCS que recebeu a mensagem.

messageBody

Um documento JSON em sequência de caracteres descrevendo a mídia. Ele contém os campos na tabela a seguir.

inboundMessageId

O identificador exclusivo da mensagem de entrada.

O messageBody JSON contém os seguintes campos:

mediaStatus

O resultado do processamento de mídia. Os valores válidos são SUCCESS, UPLOAD_FAILED e ROLE_ASSUME_FAILED.

mediaStatusMessage

Uma descrição legível por humanos do status. Presente quando mediaStatus é um valor de falha.

s3Bucket

O nome do bucket do S3 em que o arquivo de mídia está armazenado. Presente sobre o sucesso.

s3Key

A chave do objeto S3 para o arquivo de mídia armazenado. Presente sobre o sucesso.

mimeType

O tipo MIME do arquivo de mídia (por exemplo,, image/jpegvideo/mp4,application/pdf).

fileName

O nome do arquivo original, conforme fornecido pelo dispositivo do usuário.

fileSizeBytes

O tamanho do arquivo de mídia em bytes.

nota

Atualmente, a notificação de mídia de entrada não inclui um campo de tipo de mensagem. Use mediaStatus para determinar o resultado.

Tratamento de falhas no download de mídia

Se o AWS End User Messaging não puder baixar ou armazenar mídia do provedor de RCS, o serviço ainda publicará uma notificação para seu tópico bidirecional do SNS. O messageBody carrega uma falha mediaStatus (UPLOAD_FAILEDouROLE_ASSUME_FAILED) e uma mediaStatusMessage descrição da causa, sem campos de localização do S3.

Por exemplo, uma falha na suposição de uma função do IAM produz o seguinte messageBody conteúdo:

{ "mediaStatus": "ROLE_ASSUME_FAILED", "mediaStatusMessage": "Media received but could not assume the configured IAM role", "mimeType": "image/heic", "fileName": "IMG_7115.heic", "fileSizeBytes": 1211843 }

As causas comuns de falhas no download de mídia incluem:

  • A mídia não está mais disponível no provedor de RCS (por exemplo, ela expirou ou foi excluída).

  • A função do IAM não tem permissão para gravar no bucket do S3 especificado.

  • O bucket do S3 não existe ou está em uma região diferente da esperada.

Para solucionar falhas de entrega, verifique se suas políticas de confiança e permissão da função do IAM estão configuradas corretamente e se o bucket do S3 existe e pode ser acessado pelo serviço. Monitore CloudWatch as métricas do seu agente quanto a falhas no upload de mídia.

Tipos de mídia aceitos

AWSO End User Messaging aceita os seguintes tipos de MIME de mídia de entrada:

  • Imagens:image/jpeg,image/jpg,image/gif, image/png

  • Áudio: audio/aacaudio/mp3,audio/mpeg,,audio/mpg,audio/mp4,audio/mp4-latm,audio/3gpp,audio/ogg, application/ogg

  • Vídeo:video/h263,video/m4v,video/mp4,video/mpeg,video/mpeg4, video/webm

  • Documentos: application/pdf

nota

AWSO End User Messaging não impõe um limite de tamanho na mídia de entrada.

Práticas recomendadas

  • Sempre configure o armazenamento de mídia se você espera que os usuários enviem imagens, vídeos ou arquivos em conversas RCS.

  • Use um bucket S3 dedicado para mídia de entrada RCS para isolar controles de acesso e políticas de ciclo de vida.

  • Defina uma política de ciclo de vida do S3 para expirar objetos de mídia antigos (por exemplo, após 90 dias) para gerenciar os custos de armazenamento.

  • Processe mídia de entrada de forma assíncrona usando uma função AWS Lambda acionada pelo seu tópico do SNS.

  • Defina o escopo da função do IAM s3:PutObject somente para. O serviço não exige permissões mais amplas.

  • Monitore CloudWatch as métricas de falhas no upload de mídia e defina alarmes para detectar problemas de configuração.