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-Nachrichten
AWS End User Messaging unterstützt bidirektionales RCS-Messaging, sodass Sie Textnachrichten von Ihren Kunden empfangen können. Eingehende RCS-Nachrichten folgen demselben Muster wie bidirektionale SMS-Nachrichten: Eingehende Nachrichten werden an ein von Ihnen konfiguriertes Amazon SNS SNS-Thema zugestellt und Sie verarbeiten sie mithilfe von Lambda-Funktionen oder anderen SNS-Abonnenten.
Wichtig
Um eingehende RCS-Nachrichten verarbeiten zu können, müssen Sie auf Ihrem AWS RCS Agent ein SNS-Thema für bidirektionales Messaging einrichten. Bidirektionales Messaging ist standardmäßig deaktiviert, wenn Sie einen Agenten erstellen. Nachdem Sie ihn aktiviert und ein SNS-Thema konfiguriert haben, werden eingehende Nachrichten an dieses Thema zugestellt. Den Kunden werden alle eingehenden RCS-Nachrichten zu Standardtarifen in Rechnung gestellt.
In diesem Abschnitt wird erklärt, wie bidirektionales RCS-Messaging funktioniert, wie Sie es für Ihren AWS RCS-Agenten aktivieren, das Payload-Format für eingehende Nachrichten und wie Sie Schlüsselwörter verwalten. Informationen zur Verwaltung von AWS RCS Agents finden Sie unterVerwaltung von RCS-Agenten. Informationen zum Senden von RCS-Nachrichten finden Sie unter. RCS-Nachrichten senden
Topics
So funktioniert bidirektionales RCS-Messaging
Wenn ein Kunde eine Textnachricht an Ihren AWS RCS-Agenten sendet, empfängt AWS End User Messaging die Nachricht und veröffentlicht sie unter einem von Ihnen festgelegten Amazon SNS SNS-Thema. Von dort aus können Sie die Nachricht mit einem beliebigen SNS-Abonnenten verarbeiten, z. B. mit einer Lambda-Funktion, einer Amazon SQS SQS-Warteschlange oder einem Endpunkt. HTTP/HTTPS
Der bidirektionale RCS-Messaging-Ablauf funktioniert wie folgt:
-
Ein Kunde sendet von seinem RCS-fähigen Gerät aus eine Textnachricht an Ihren AWS RCS-Agenten.
-
AWS End User Messaging empfängt die eingehende Nachricht und vergleicht sie mit Ihren konfigurierten Schlüsselwörtern. Wenn die Nachricht mit einem Schlüsselwort übereinstimmt, sendet der Dienst die konfigurierte automatische Antwort (falls vorhanden).
-
AWS End User Messaging veröffentlicht die Nachrichten-Payload als JSON-Objekt für das Amazon SNS SNS-Thema, das Sie für bidirektionales Messaging auf dem AWS RCS Agent konfiguriert haben.
-
Ihre SNS-Abonnenten (z. B. eine Lambda-Funktion) erhalten die Nachrichtennutzdaten und verarbeiten sie gemäß Ihrer Anwendungslogik.
RCS in AWS End User Messaging unterstützt derzeit eingehende Textnachrichten. Wenn ein Kunde eine Medienmitteilung (z. B. ein Bild oder Video) an Ihren AWS RCS-Agenten sendet, wird die Nachricht mit dem Status IGNORIERT protokolliert. Ihre Anwendung empfängt keine Mediennachrichten über das SNS-Thema.
Konfiguration Ihres Ziels für bidirektionales Versenden
Um eingehende RCS-Nachrichten in Ihrer Anwendung zu empfangen und zu verarbeiten, müssen Sie bidirektionales Messaging aktivieren und ein Ziel auf Ihrem AWS RCS Agent konfigurieren. Bidirektionales Messaging ist standardmäßig deaktiviert. Wenn Sie es aktivieren, geben Sie ein Amazon SNS SNS-Thema an, in dem AWS End User Messaging eingehende Nachrichten zustellt. Sie können das Ziel mithilfe der AWS End User Messaging-Konsole oder der API konfigurieren.
Berechtigungen für das SNS-Thema
Das Amazon SNS SNS-Thema, das Sie für bidirektionales RCS-Messaging konfigurieren, muss es AWS Endbenutzernachrichten ermöglichen, Nachrichten an dieses Thema zu veröffentlichen. Sie haben zwei Möglichkeiten, Zugriff zu gewähren.
Option 1: Verwenden Sie eine IAM-Rolle
Erstellen Sie eine IAM-Rolle, von der AWS End User Messaging die Veröffentlichung von Nachrichten zu Ihrem SNS-Thema übernehmen kann. Die Rolle benötigt sowohl eine Vertrauensrichtlinie als auch eine Berechtigungsrichtlinie.
Im Folgenden finden Sie die Vertrauensrichtlinie für die IAM-Rolle. accountIdErsetzen Sie durch die eindeutige ID für Ihre AWS-Konto.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMSVoice", "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" } } } ] }
Im Folgenden finden Sie die Berechtigungsrichtlinie für die IAM-Rolle. Die SMSVoiceAllowSNSPublish Sid ermöglicht die Veröffentlichung in Amazon SNS SNS-Themen und die SMSVoiceAllowEncryptedSNSTopics Sid ist optional für verschlüsselte Amazon SNS SNS-Themen. Nehmen Sie die folgenden Änderungen vor:
-
partitionErsetzen Sie es durch die AWS Partition, in der Sie AWS End User Messaging verwenden. -
regionErsetzen Sie es durch AWS-Region die, in der Sie AWS End User Messaging verwenden. -
accountIdErsetzen Sie durch die eindeutige ID für Ihre AWS-Konto. -
snsTopicNameErsetzen Sie es durch den Namen des Amazon SNS SNS-Themas, das eingehende Nachrichten empfängt.
{ "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" } } } ] }
Option 2: Verwenden Sie eine SNS-Themenrichtlinie
Alternativ können Sie dem SNS-Thema direkt eine Richtlinienerklärung hinzufügen, die es AWS Endbenutzernachrichten ermöglicht, Nachrichten zu veröffentlichen. snsTopicArnErsetzen Sie es durch den ARN Ihres SNS-Themas.
{ "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sns:Publish", "Resource": "snsTopicArn" }
Payload-Format für eingehende Nachrichten
Wenn Ihr AWS RCS-Agent eine eingehende Textnachricht empfängt, veröffentlicht AWS End User Messaging eine JSON-Payload für das konfigurierte Amazon SNS SNS-Thema. Die Payload für eingehende RCS-Nachrichten verwendet dasselbe Format wie die bidirektionale SMS-Nachrichtenübermittlung:
{ "originationNumber": "+14255550182", "destinationNumber": "+12125550101", "messageKeyword": "JOIN", "messageBody": "EXAMPLE", "inboundMessageId": "cae173d2-66b9-564c-8309-21f858e9fb84", "previousPublishedMessageId": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }
Die Payload für eingehende Nachrichten enthält die folgenden Felder:
| Feld | Description |
|---|---|
|
Die Telefonnummer, von der die eingehende Nachricht gesendet wurde (die Telefonnummer des Kunden). |
|
Die ID des AWS RCS-Agenten, der die Nachricht erhalten hat. |
|
Das registrierte Schlüsselwort, das mit der eingehenden Nachricht übereinstimmt, falls vorhanden. Schlüsselwörter werden anhand des Anfangs des Nachrichtentexts ausgewertet. |
|
Der Textinhalt der eingehenden Nachricht. |
|
Eine eindeutige Kennung für die eingehende Nachricht. |
|
Die eindeutige Kennung der ausgehenden Nachricht, auf die der Kunde antwortet, wenn es sich bei der eingehenden Nachricht um eine Antwort auf eine frühere ausgehende Nachricht handelt. |
Unterstützte Nachrichtentypen
RCS in AWS End User Messaging unterstützt derzeit den Empfang eingehender Textnachrichten. Wenn ein Kunde eine Textnachricht an Ihren AWS RCS-Agenten sendet, wird die Nachricht zur Verarbeitung an Ihr konfiguriertes Amazon SNS SNS-Thema gesendet.
Wenn ein Kunde eine Medienmitteilung (z. B. ein Bild, ein Video oder eine Datei) an Ihren AWS RCS-Agenten sendet, protokolliert AWS End User Messaging die Nachricht mit dem Status IGNORIERT. Mediennachrichten werden nicht zu Ihrem SNS-Thema zugestellt und von Ihrer Anwendung nicht verarbeitet. Dem Absender wird kein Fehler zurückgegeben.
Schlüsselwortverwaltung für RCS
Mithilfe von Schlüsselwörtern können Sie automatische Antworten konfigurieren, wenn Kunden bestimmte Wörter oder Ausdrücke an Ihren AWS RCS-Agenten senden. Wenn eine eingehende Nachricht mit einem konfigurierten Schlüsselwort übereinstimmt, sendet AWS End User Messaging die zugehörige automatische Antwortnachricht zurück an den Kunden.
Für RCS werden die Schlüsselwörter auf dem AWS RCS Agent konfiguriert und gelten für alle zugehörigen RCS for Business IDs (Testing Agent und Country Launch Agents). Sie können bis zu 30 Schlüsselwörter pro AWS RCS-Agent konfigurieren.
Verwenden Sie die AWS End User Messaging-Konsole oder die API, um Keywords für Ihren AWS RCS Agent zu verwalten. Allgemeine Informationen zur Schlüsselwortverwaltung finden Sie unterSchlüsselwörter in SMS-Nachrichten für AWS Endbenutzer.
Anmerkung
Auf dem AWS RCS Agent konfigurierte Schlüsselwörter gelten für alle zugehörigen Registrierungen. Sie können nicht unabhängig voneinander unterschiedliche Schlüsselwörter für Ihren Testagenten und Ihre Country Launch Agents festlegen.
Verarbeitung eingehender Nachrichten mit Lambda
Ein gängiges Muster für die Verarbeitung eingehender RCS-Nachrichten besteht darin, eine Lambda-Funktion für das Amazon SNS SNS-Thema zu abonnieren, das für bidirektionales Messaging konfiguriert ist. Die Lambda-Funktion empfängt die Nutzlast eingehender Nachrichten und kann Ihre Anwendungslogik implementieren, z. B. die Beantwortung von Kundenanfragen, die Verarbeitung von Befehlen oder die Weiterleitung von Nachrichten an andere Systeme.
Das folgende Python-Beispiel zeigt eine Lambda-Funktion, die eingehende RCS-Nachrichten verarbeitet und mithilfe der API eine Antwort sendet: 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}
In diesem Beispiel die Lambda-Funktion:
-
Analysiert die Nutzdaten der eingehenden Nachricht aus dem SNS-Ereignis.
-
Überprüft das
messageKeywordFeld, um die Absicht des Kunden zu ermitteln. -
Sendet eine Antwort mit poolbasiertem Senden (empfohlen) über die
SendTextMessageAPI. Der Pool verarbeitet die Kanalauswahl automatisch.
Anmerkung
Verwenden Sie beim Senden von Antworten auf eingehende Nachrichten den poolbasierten Versand, um einen automatischen SMS-Fallback sicherzustellen, falls das Gerät des Kunden RCS nicht mehr unterstützt. Einzelheiten zu den Sendemustern finden Sie unter. RCS-Nachrichten senden
Bewährte Methoden für eingehende RCS-Nachrichten
Beachten Sie bei der Implementierung von bidirektionalem RCS-Messaging die folgenden bewährten Methoden:
-
Implementieren Sie die Fehlerbehandlung — Ihre Lambda-Funktion oder Ihr SNS-Abonnent sollte Fehler ordnungsgemäß behandeln. Wenn Ihre Funktion eine Nachricht nicht verarbeiten kann, konfigurieren Sie im SNS-Abonnement eine Warteschlange für unzustellbare Briefe (DLQ), um unverarbeitete Nachrichten aufzuzeichnen und sie später erneut zu versuchen.
-
Fallback-Antworten senden — Wenn Ihre Anwendung eine Nachricht erhält, die sie nicht verarbeiten kann, senden Sie eine hilfreiche Ausweichantwort, anstatt den Kunden ohne Antwort zu lassen. Antworten Sie beispielsweise mit verfügbaren Befehlen oder leiten Sie den Kunden an einen alternativen Supportkanal weiter.
-
Poolbasiertes Senden für Antworten verwenden — Verwenden Sie beim Senden von Antworten auf eingehende Nachrichten das poolbasierte Senden, um einen automatischen SMS-Fallback sicherzustellen. Dadurch wird garantiert, dass Ihre Antwort den Kunden auch dann erreicht, wenn sein Gerät RCS nicht mehr unterstützt.
-
Nachrichtenverarbeitung überwachen — Verwenden Sie CloudWatch Amazon-Metriken, um das Volumen Ihrer eingehenden Nachrichten und die Erfolgsquote bei der Verarbeitung zu überwachen. Richten Sie Alarme für ungewöhnliche Muster ein, z. B. einen plötzlichen Anstieg eingehender Nachrichten oder eine hohe Rate von Verarbeitungsfehlern. Einzelheiten zu RCS-Metriken finden Sie unter. CloudWatch RCS-Metriken und Überwachung
-
Gehen Sie konsistent mit Keyword-Antworten um — Stellen Sie sicher, dass automatische Keyword-Antworten und die programmatischen Antworten Ihrer Anwendung nicht in Konflikt geraten. Wenn Sie eine automatische Schlüsselwort-Antwort für ein bestimmtes Schlüsselwort konfigurieren, empfängt Ihre Lambda-Funktion die Nachricht trotzdem. Gestalten Sie Ihre Funktion so, dass keine doppelte Antwort für Keywords gesendet wird, für die bereits automatische Antworten konfiguriert sind.