View a markdown version of this page

Empfangen eingehender RCS-Medien - AWSSMS-Nachrichten für Endbenutzer

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Empfangen eingehender RCS-Medien

Benutzer können Medien (Bilder, Videos, Audiodateien und Dokumente) in RCS-Konversationen mit Ihrem Agenten senden. Wenn Sie den Speicher für eingehende Medien konfigurieren, lädt AWS End User Messaging die Medien vom RCS-Anbieter herunter, lädt sie in Ihren Amazon S3 S3-Bucket hoch und veröffentlicht eine Benachrichtigung zu Ihrem bidirektionalen Amazon SNS SNS-Thema mit dem S3-Standort und den Dateimetadaten.

Allgemeine Informationen zum Empfang eingehender RCS-Nachrichten (Text, Standort und Antwortvorschläge) finden Sie unter. Empfangen eingehender RCS-Nachrichten Informationen zum Senden von Rich Media an Benutzer finden Sie unter. Senden umfangreicher RCS-Nachrichten

So funktionieren eingehende Medien

Wenn ein Benutzer in einer RCS-Konversation eine Mediendatei sendet, verarbeitet AWS End User Messaging die Nachricht anhand der folgenden Schritte:

  1. Der Benutzer sendet ein Bild, ein Video, eine Audiodatei oder ein Dokument aus seiner RCS-Messaging-App.

  2. AWSEnd User Messaging lädt die Medien vom RCS-Anbieter herunter.

  3. AWSEnd User Messaging lädt die Medien mithilfe der von Ihnen angegebenen IAM-Rolle in Ihren konfigurierten S3-Bucket hoch.

  4. AWSEnd User Messaging veröffentlicht eine Benachrichtigung zu Ihrem bidirektionalen SNS-Thema. Die Benachrichtigung enthält den S3-Bucket, den Schlüssel, den MIME-Typ und die Nachrichtenmetadaten.

Für SUGGESTION Nachrichtentypen LOCATION und -typen findet kein S3-Upload statt. Der Inhalt wird direkt im SNS-Benachrichtigungstext übermittelt. Einzelheiten zu diesen Nachrichtentypen finden Sie unterEmpfangen eingehender RCS-Nachrichten.

Konfiguration des Speichers eingehender Medien

Um eingehende Medien zu empfangen, konfigurieren Sie die folgenden Felder auf Ihrem RCS-Agenten mithilfe der API. UpdateRcsAgent Two-way Messaging muss auf dem Agenten aktiviert sein, bevor Sie den Medienspeicher konfigurieren.

Felder für die Konfiguration eingehender Medien
Feld Erforderlich Beschreibung
TwoWayMediaS3BucketName Ja Der Name des S3-Buckets, in dem AWS End User Messaging eingehende Mediendateien speichert.
TwoWayMediaS3KeyPrefix Nein Ein optionales Präfix für S3-Objektschlüssel. Falls angegeben, werden Medienobjekte unter diesem Präfix im Bucket gespeichert.
TwoWayMediaS3Role Ja Der ARN der IAM-Rolle, von der AWS End User Messaging ausgeht, um Mediendateien in Ihren S3-Bucket hochzuladen.

Der S3-Bucket und die IAM-Rolle sind zusammen erforderlich. Wenn Sie einen angeben, müssen Sie beide angeben.

S3-Schlüsselformat

Medienobjekte werden mit dem folgenden Schlüsselformat gespeichert, wobei der ursprüngliche Dateiname nach einem # Trennzeichen angehängt wird:

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

Wenn Sie das key prefix beispielsweise auf setzeninbound-media, kann eine Mediendatei wie folgt gespeichert werden:

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

Die IAM-Rolle für eingehende Medien erstellen

Erstellen Sie eine IAM-Rolle, die es dem AWS End User Messaging-Dienst ermöglicht, Mediendateien in Ihren S3-Bucket hochzuladen. Die Rolle erfordert eine Vertrauensrichtlinie, die es dem Dienst ermöglicht, sie zu übernehmen, und eine Berechtigungsrichtlinie, die s3:PutObject Zugriff auf Ihren Bucket gewährt.

Vertrauensrichtlinie

Die folgende Vertrauensrichtlinie ermöglicht es dem Principal des AWS End User Messaging-Dienstes, die Rolle zu übernehmen. 123456789012Ersetzen Sie es durch Ihre AWS Konto-ID.

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

Berechtigungsrichtlinie

Die folgende Berechtigungsrichtlinie gewährt der Rolle Zugriff zum Schreiben von Objekten in Ihren S3-Bucket. my-rcs-media-bucketErsetzen Sie es durch Ihren Bucket-Namen.

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

Schränken Sie die IAM-Rolle eng auf „Nur“ ein. s3:PutObject Für den Service sind keines3:GetObject,s3:DeleteObject, oder andere Berechtigungen für die Übertragung eingehender Medien erforderlich.

Medienspeicher (CLI) konfigurieren

Der folgende AWS CLI-Befehl konfiguriert den eingehenden Medienspeicher auf einem vorhandenen RCS-Agenten:

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

Payload für Benachrichtigungen über eingehende Medien

Wenn AWS End User Messaging eine Mediendatei empfängt, veröffentlicht es eine Benachrichtigung zu Ihrem bidirektionalen SNS-Thema. Die Benachrichtigung ist ein JSON-Objekt mit einem messageBody Feld, das ein stringifiziertes JSON-Dokument mit dem Medienstatus und, falls erfolgreich, dem S3-Speicherort und den Dateimetadaten enthält.

Das folgende Beispiel zeigt eine erfolgreiche eingehende Medienbenachrichtigung:

{ "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" }

Die Benachrichtigung auf oberster Ebene enthält die folgenden Felder:

originationNumber

Die Telefonnummer des Benutzers, der die Medien gesendet hat.

destinationNumber

Die ID des RCS-Agenten, der die Nachricht erhalten hat.

messageBody

Ein stringifiziertes JSON-Dokument, das die Medien beschreibt. Es enthält die Felder in der folgenden Tabelle.

inboundMessageId

Die eindeutige Kennung für die eingehende Nachricht.

Die messageBody JSON-Datei enthält die folgenden Felder:

mediaStatus

Das Ergebnis der Medienverarbeitung. Gültige Werte sind SUCCESS, UPLOAD_FAILED und ROLE_ASSUME_FAILED.

mediaStatusMessage

Eine menschenlesbare Beschreibung des Status. Geben Sie an, wann mediaStatus ein Fehlerwert vorliegt.

s3Bucket

Der Name des S3-Buckets, in dem die Mediendatei gespeichert ist. Bei Erfolg anwesend.

s3Key

Der S3-Objektschlüssel für die gespeicherte Mediendatei. Bei Erfolg anwesend.

mimeType

Der MIME-Typ der Mediendatei (z. B.image/jpeg,video/mp4,application/pdf).

fileName

Der ursprüngliche Dateiname, wie er vom Gerät des Benutzers bereitgestellt wurde.

fileSizeBytes

Die Größe der Mediendatei in Byte.

Anmerkung

Die eingehende Medienbenachrichtigung enthält derzeit kein Feld vom Typ Nachricht. Wird verwendetmediaStatus, um das Ergebnis zu bestimmen.

Behandlung von Fehlern beim Herunterladen von Medien

Wenn AWS End User Messaging keine Medien vom RCS-Anbieter herunterladen oder speichern kann, veröffentlicht der Dienst trotzdem eine Benachrichtigung zu Ihrem bidirektionalen SNS-Thema. Der messageBody enthält einen Fehler mediaStatus (UPLOAD_FAILEDoderROLE_ASSUME_FAILED) und eine mediaStatusMessage Beschreibung der Ursache, ohne S3-Standortfelder.

Ein Fehler bei der Annahme einer IAM-Rolle führt beispielsweise zu folgendem messageBody Inhalt:

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

Zu den häufigsten Ursachen für Fehler beim Herunterladen von Medien gehören:

  • Das Medium ist beim RCS-Anbieter nicht mehr erhältlich (es ist beispielsweise abgelaufen oder wurde gelöscht).

  • Die IAM-Rolle ist nicht berechtigt, in den angegebenen S3-Bucket zu schreiben.

  • Der S3-Bucket ist nicht vorhanden oder befindet sich in einer anderen Region als erwartet.

Stellen Sie zur Behebung von Zustellungsfehlern sicher, dass Ihre Vertrauens- und Berechtigungsrichtlinien für IAM-Rollen korrekt konfiguriert sind und dass der S3-Bucket vorhanden ist und vom Service aus darauf zugegriffen werden kann. Überwachen Sie die CloudWatch Metriken Ihres Agenten im Hinblick auf Fehler beim Hochladen von Medien.

Zulässige Medientypen

AWSEnd User Messaging akzeptiert die folgenden MIME-Typen für eingehende Medien:

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

  • Audio:audio/aac, audio/mp3audio/mpeg,audio/mpg,audio/mp4,audio/mp4-latm,audio/3gpp,audio/ogg, application/ogg

  • Video: video/h263video/m4v, video/mp4video/mpeg,video/mpeg4, video/webm

  • Dokumente: application/pdf

Anmerkung

AWSFür Endbenutzer-Nachrichten gibt es keine Größenbeschränkung für eingehende Medien.

Bewährte Methoden

  • Konfigurieren Sie den Medienspeicher immer dann, wenn Sie erwarten, dass Benutzer Bilder, Videos oder Dateien in RCS-Konversationen senden.

  • Verwenden Sie einen speziellen S3-Bucket für eingehende RCS-Medien, um Zugriffskontrollen und Lebenszyklusrichtlinien zu isolieren.

  • Richten Sie eine S3-Lebenszyklusrichtlinie ein, um alte Medienobjekte ablaufen zu lassen (z. B. nach 90 Tagen), um die Speicherkosten zu kontrollieren.

  • Verarbeiten Sie eingehende Medien asynchron mithilfe einer AWS Lambda-Funktion, die durch Ihr SNS-Thema ausgelöst wird.

  • Richten Sie die IAM-Rolle ausschließlich ein. s3:PutObject Für den Dienst sind keine umfassenderen Berechtigungen erforderlich.

  • Überwachen Sie CloudWatch Messwerte für Fehler beim Hochladen von Medien und richten Sie Alarme ein, um Konfigurationsprobleme zu erkennen.